复杂报表的WinCC报表系统实现分析
本文介绍了两种在WinCC中实现复杂报表的方法:一是通过ConnectivityPack结合普通归档实现分班统计报表,利用用户登录触发不同归档变量,解决四班三运转中班次与数据对应关系问题,并通过特定语法访问归档数据计算最大值、最小值及平均值;二是使用用户归档实现分总式报表,通过控制变量定时存储每日数据,结合ODBC数据库表控件实现分页查询功能。
针对需求如何使用 WinCC 的报表系统实现复杂的报表呢?
本文介绍使用 Connectivity Pack 结合普通 归档如何实现复杂报表(以图 1 为例)。论坛上有位网友已经使用用户归档实现了该种报 表,那么我们看看如实使用普通归档实现。
要求:现场是四班三运转,月底的时候对各个班的数据情况进行统计分析。
难点:各个班的上班时间不固定,每月的天数不固定。涉及到最大值、最小值和平均值的计 算。
关键点:在于如何确立某班和某一时间段的对应关系
1 普通归档结合Connectivity Pack实现报表
首先数据存储问题。WinCC 的归档中,对应一个过程变量其实可以生成多个归档变量 (如图 12)。归档的启动和停止可以由事件来控制(图 13)。那么可以通过不同的用户登录来 确定启动哪一个归档。从而确定班组和数据的对应关系。


创建全局动作如下(针对两个班组的测试代码,三个班的类似):


该动作通过 WinCC 内部变量@CurrentUser 的变化来触发。

这样在项目中 A 班的用户登录就触发 ATagArc 变量的归档,B 班的用户登录就触发 BTagArc。从而达到分班统计的目的。过程变量属性在这里我们选择实际值。

其次数据分析。在归档设计中,已经确定了数据和班组的对应关系。那么下一步就是 如何整理数据了。在这里我们需要借助于 WinCC 的一个选件 Connectivity Pack 来实现,通 过该软件可以使用特定的语法格式访问 WinCC 的归档数据。在画面中添加一个按钮创建如 下脚本(只有安装了 Connectivity Pack 选件才支持下面的归档访问方式):




上面的方法就能得出 A 班的最大值、最小值和平均值,并把这些值存放在预先定义的 内部变量里。同样的方法可以求出别班的数据信息。
最后就是布局设计。这个布局的设计原理很简单,就是把“变量”添加到布局中。排列对 齐就可以了。如下图:

最后组态输出界面。在画面中组态如下界面,调用脚本和打印任务就可以了。

该程序可以实现对任意时间范围呢的数据进行统计打印。输出结果如下图:

.2 用户归档实现分总式报表
报表图 2 涉及到数据的统计。单纯的存储不难,关键如何统计。从报表上分析,一天只 会产生一条记录。完全可以选择使用用户归档实现。
首先在用户归档中创建一个归档,分别连接相应的需要记录的变量。并创建一个字符串 类型的域用于存储日期。

针对用户归档创建如下控制变量:

关于控制变量的说明参考: WinCC Information system-->选项--〉用户归档--〉组态--〉组态用户归档--〉控制变量 的属性。当 ID=-1 指令=6 时,就可以把过程值存放到归档数据库中。
关于日期可以通过如下脚本得到:
riqi=CStr(Year(Now))&"-"&CStr(Month(Now))&"-"&CStr(Day(Now))
可以新建一个系统变量选择日期函数,通过每天的变化触发用户归档控制变量的指令和 ID 的变化,从而达到定时触发的目的。如图:

这样我们就得到了每天的数据记录。下一步组态页面。在页面布局中添加一个用户归档 表格控件、一个静态文本和一个 ODBC 数据库表。为了实现分页功能需要对静态文本的属性 作如下设置:


下面我们分别设置用户归档和 ODBC 数据库表控件的参数。


画面中查寻按钮的代码

至此在画面中输入查询日期的条件执行上面的代码就能返回相应的数据集。最后调用打印任 务就可以了。
打印中常见问题的说明希望对大家有所帮助。
整点触发问题:
可以通过在变量管理 SYSTEM INFO 下创建变量用于取得系统小时值。这个值是随着系统 时钟而变化的。一旦改变就可以用来触发归档或者打印任务
对齐问题:WinCC 提供很好的数据接口,那么在报表格式上来讲如何控制一直是个难题。
下 面是一些细节介绍希望对大家能有所帮助。 通过菜单栏中的放大功能可以很好的查看控件的对齐效果。

通过菜单栏 工具—〉设置,可以把页面精确设置到毫米,同时可以设定控件是否和网 格对齐。从而方便我们的排版设计。

S7-200 SMART 与 S7-1200 之间 TCP 通信— S7-200 SMART 作为服务器
如何在 WinCC Runtime Professional 中自动调整画面分辨率适应窗口的大小?
巨控协议转换网关GRM321GRM322GRM323应用场景
精智面板/二代精简PN面板如何使用Modbus TCP/IP 通信组态
WinCC Flexible Smart快速导入 Smart PLC变量
S7_1200配方功能快速入门
更多推荐


所有评论(0)