news 2026/3/1 8:08:06

WINCC报表(7.0-7.5),画面自动全屏轮播是全屏哦,WEB发布网页可浏览(需安装web...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WINCC报表(7.0-7.5),画面自动全屏轮播是全屏哦,WEB发布网页可浏览(需安装web...

WINCC报表(7.0-7.5),画面自动全屏轮播是全屏哦,WEB发布网页可浏览(需安装webnavigate插件)。 需要实现其他任何一项功能可咨询! 客户机可登录访问(C/S架构多机访问)。 比如:我需要在B电脑访问Wincc服务器,但是只能访问部分界面(服务器可以分配权限分配页面)。 在C电脑也只能看部分页面。 这样就可以灵活控制工程师站的访问权限! 一键导入EXECL和导出EXECL数据。 注意是可读取,可导出!! 1、实现各类动画,里面包含丰富的VBS脚本(不需要Sql基础)一看就会。 2、报表功能包含: a:自定义时间存储:按秒,分,小时,日等单位,查询时可以自定义时间查询,同时求出每列的最大值,最小值,平均值。 b:可以设定查询的值范围,比如设定温度大于20和小于100范围出现的次数。 C:一键导出到报表成execl文件 d:统计设备的运行时间,故障时间,待机时间,产量,Oee等指标。 3、控件功能:自己封装好的.Net控件,里面有报表,图表,水球,和各种设备画面。 4、你可以很快熟悉运用全局脚本,画面脚本,按钮脚本,各种元素脚本。 运用结构变量,历史变量,OPC等。

最近在车间折腾WINCC报表系统(7.0-7.5版本),发现这玩意儿比想象中好玩多了。先说个特别实用的——全屏轮播功能不需要手动切画面,直接给操作工展示关键生产数据。实现起来也不难,在画面属性里塞段VBS:

Sub AutoScreenSwitch() Dim screens screens = Array("PumpStation","BoilerRoom","ValveGroup") For Each scrn In screens HMIRuntime.ActiveScreen = scrn HMIRuntime.Tags("ScreenTimer").Write 30 '30秒切换 Do While HMIRuntime.Tags("ScreenTimer").Read > 0 HMIRuntime.Trace "倒计时:" & HMIRuntime.Tags("ScreenTimer").Read & vbCrLf Delay 1000 Loop Next End Sub

这段脚本用了个倒计时变量控制画面停留时长,调试时打开Trace功能能看到实时切换日志。记得在全局脚本里设置开机自启动,工人连鼠标都不用碰。

WEB发布功能对远程监控特别友好,不过坑点在Webnavigate插件安装。实测发现必须用IE内核浏览器(别笑,还真有厂子用着Windows XP),安装包路径千万别带中文。分享个权限控制的骚操作——在用户管理里给不同电脑设置可见画面白名单:

Function CheckPermission(compName) Select Case compName Case "EngineerPC01": ScreenList = "Main,Debug,History" Case "OperatorPC02": ScreenList = "Main,Alarm" Case Else: ScreenList = "Main" End Select HMIRuntime.Tags("AllowedScreens").Write ScreenList End Function

这样B电脑工程师能看到调试界面,C电脑操作工只能看报警信息。配合结构变量食用更佳,比如把权限组和画面树形结构绑定。

报表模块的自定义查询才是重头戏,举个统计温度异常次数的例子:

Function TempAbnormalCount(startTime, endTime) Set logs = HMIRuntime.DataLogging.GetData("TempLog", startTime, endTime) abnormalCount = 0 For i = 1 To logs.Count If logs(i).Value > 20 And logs(i).Value < 100 Then abnormalCount = abnormalCount + 1 End If Next HMIRuntime.Tags("AbnormalCount").Write abnormalCount End Function

配合趋势控件的时间轴选择器,操作工自己拉取时间段就能生成统计报表。导出Excel直接调COM组件:

Set excelApp = CreateObject("Excel.Application") excelApp.Visible = True Set workbook = excelApp.Workbooks.Add() workbook.Sheets(1).Range("A1").Value = "设备运行报告" '...填充数据... workbook.SaveAs "D:\Report\Production_" & FormatDateTime(Now,2) & ".xlsx"

注意要关闭Excel进程避免内存泄漏,建议用后台导出模式。

WINCC报表(7.0-7.5),画面自动全屏轮播是全屏哦,WEB发布网页可浏览(需安装webnavigate插件)。 需要实现其他任何一项功能可咨询! 客户机可登录访问(C/S架构多机访问)。 比如:我需要在B电脑访问Wincc服务器,但是只能访问部分界面(服务器可以分配权限分配页面)。 在C电脑也只能看部分页面。 这样就可以灵活控制工程师站的访问权限! 一键导入EXECL和导出EXECL数据。 注意是可读取,可导出!! 1、实现各类动画,里面包含丰富的VBS脚本(不需要Sql基础)一看就会。 2、报表功能包含: a:自定义时间存储:按秒,分,小时,日等单位,查询时可以自定义时间查询,同时求出每列的最大值,最小值,平均值。 b:可以设定查询的值范围,比如设定温度大于20和小于100范围出现的次数。 C:一键导出到报表成execl文件 d:统计设备的运行时间,故障时间,待机时间,产量,Oee等指标。 3、控件功能:自己封装好的.Net控件,里面有报表,图表,水球,和各种设备画面。 4、你可以很快熟悉运用全局脚本,画面脚本,按钮脚本,各种元素脚本。 运用结构变量,历史变量,OPC等。

说到设备OEE统计,结构变量派上大用场了。定义个设备状态结构体:

#pragma code("useadmin.dll") #include "apdefap.h" struct DEVICE_STATUS{ BOOL isRunning; BOOL isFault; TIME_STRUCT startTime; TIME_STRUCT endTime; };

配合报警触发器记录状态变更时间点,运行时长计算直接取时间差就行。全局脚本里挂个定时器,每分钟更新一次OEE看板。

最后安利下自研的.NET控件库,比如这个动态水球图:

public class LiquidGauge : Control { protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); using (var path = new GraphicsPath()) { path.AddEllipse(ClientRectangle); using (var brush = new PathGradientBrush(path)) { brush.CenterColor = Color.FromArgb(120, 0, 255, 255); brush.SurroundColors = new[] { Color.Transparent }; e.Graphics.FillPath(brush, path); } } } }

扔到画面里绑定变量值,液位变化时会有流体效果。控件库还封装了实时曲线、3D管道图这些,直接拖拽就能用。

其实玩转WINCC的关键在于活用脚本和结构变量,官方文档里很多隐藏功能。比如用OPC DA读第三方PLC数据时,记得设置异步读取模式防止界面卡死。最近在尝试把历史数据推送到MQTT,有进展再分享。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/28 18:20:33

救命神器10个降AI率平台推荐!千笔AI帮你轻松降AIGC

AI降重工具&#xff1a;论文写作的得力助手 在当今学术写作中&#xff0c;AI生成内容&#xff08;AIGC&#xff09;已经成为一种常见现象&#xff0c;尤其是在本科生的论文写作过程中。然而&#xff0c;随着高校对AI痕迹检测的日益严格&#xff0c;如何有效降低AIGC率、去除AI…

作者头像 李华
网站建设 2026/3/1 5:57:10

java数据结构-堆

一.堆 ①堆的概念:如果有一个关键码的集合K {k0&#xff0c;k1&#xff0c; k2&#xff0c;…&#xff0c;kn-1}&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中&#xff0c;并满足&#xff1a;Ki < K2i1 且 Ki< K2i2 (Ki > K2i1 且 Ki…

作者头像 李华
网站建设 2026/2/25 17:16:26

Java计算机毕设之基于java+springboot+vue+mysql的攀枝花市鲜花销售系统基于springboot的攀枝花市鲜花销售系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/27 21:31:49

【课程设计/毕业设计】基于 SpringBoot 的鲜花电商与库存一体化运营平台 基于springboot的攀枝花市鲜花销售系统【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/25 23:22:17

2026必备!10个降AIGC工具推荐,千笔·降AIGC助手助你轻松降AI率

AI论文降重&#xff0c;如何在高效与精准中找到平衡点&#xff1f; 随着人工智能技术的飞速发展&#xff0c;AI生成内容&#xff08;AIGC&#xff09;在学术领域的应用越来越广泛。然而&#xff0c;对于本科生而言&#xff0c;如何确保论文既符合学术规范&#xff0c;又能有效降…

作者头像 李华
网站建设 2026/2/28 7:52:23

课件1-3:Python输入输出

文章目录 课件1-3:Python输入输出 1. print()函数的详细用法 1.1 基本输出 1.2 格式化输出方法 1.3 print()参数详解 2. input()函数获取用户输入 2.1 基本输入 2.2 输入验证与处理 2.3 创建简单的表单输入 3. 文件读写基础操作 3.1 打开文件的基本模式 3.2 文本文件读写 3.3 …

作者头像 李华