TC3 PLC HMI 中报警功能的使用
TC3 PLC HMI 中报警功能的使用
TwinCAT 3 集成在 Visual Studio 中,相比 TwinCAT 2 在 HMI 方面有了很大的提升,
因此,越来越多的客户也更有意向的使用 TC3 的 HMI 作为人机界面。报警是工业应用中的
一项重要功能,在 3.1.4018.16 版本下,TC3 的 HMI 还中没有标准的 Alarm 控件,因此,
想实现这项功能,需要另外编写程序来配合实现。
一、 程序的构思及处理
1.创建结构体
Alarm 最常使用的功能就是实时报警表和历史报警表。无论是实时报警还是历史报警都
需要包含报警时间、报警代码(序号)、报警信息等元素。对此,使用结构体数据(Struct)
无疑是最佳选择。
Struct 描述如下:对于同一组的变量,可以用结构体数据类型进行定义,每个元素的数
据类型可以不同,结构体可以做成需要的数据类型,并且结构体数据可以方便进行数据的修
改,以方便日后的使用。
在 DUTs 下添加两个结构体 Struct_AlarmEvents 和 Struct_FautlEvents,如图 1 所示,
Struct_AlarmEvents 用于报警表显示,Struct_FautlEvents 用于所有的故障统计。
2.变量定义
图 1 结构体
为了方便程序在其他项目中可以直接使用,在定义变量时就需要考虑到变量使用的范围
问题。Struct_FautlEvents 结构体中的元素都是故障类的,在整个程序中使用的地方可能比较
多,因此需要定义为全局变量。Struct_AlarmEvents 结构体中的元素是作为显示用的,不需
要在程序中多个地方调用,定义为局部变量即可。
图 2 全局变量
1
TC3 PLC HMI 中报警功能的使用
在 POU 中新建一个程序,命名 Alarm,定义局部变量:
图 3 局部变量
3.程序思路及编写
A. 实时报警
实时报警需要故障触发时显示,故障消除后不再显示。
每个扫描周期执行 FOR 循环扫描数组的全部故障状态,因为 FOR 在单个扫描周期可
以完成整个数组的扫描,这样可以使响应速度更快。当故障出现的上升沿,记录当前时间,
并向报警显示数组中传输故障 ID,和故障时间,并累加记录。记录的信息转换成字符串
格式,否则显示上有些问题。此时,报警数组的排列是按照故障时间排列。
当有故障解除时,以下降沿检测,清除报警显示信息,重新扫描记录,时间仍写入之
前的报警时间。此时,报警数组的排列是按照故障 ID 的序号排列,从下个扫描周期开始,
后续发生的故障仍按照时间排列。
因为报警显示列表的条数是小于故障列表的,因此,当报警表显示满之后,故障仍在
记录,等待其它故障消除之后,有空余位置方能显示。
B. 历史报警
历史报警需要故障触发时显示,故障消除后仍记录,直至故障记录数满,被累计覆盖。
每次故障的上升沿把当前的故障记录到历史列表中,当到达最大循环记录数后,开始
循环覆盖,符合先进先出原则。
C. 时间功能
添加 Tc2_Utilities 功能库,编写获取系统时间的程序,以供 Alarm 调用。
2
TC3 PLC HMI 中报警功能的使用
图 4 Alarm 程序 1
图 5 Alarm 程序 2
3
TC3 PLC HMI 中报警功能的使用
图 6 Alarm 程序 3
图 7 Alarm 程序 4
二、 画面的实现
人机界面中报警表和历史表的实现方式主要有两种方法:使用 TextField 控件组合或使
用 Table 控件。使用多个 TextField 控件也可以组建成表格,但是这种方法需要手动连接的
变量较多,还要对每一个文本进行位置排列,比较繁琐。而 Table 控件可以快速方便的建立
表格,并且只需很少的变量链接即可实现功能。通过对比,选择使用 Table 控件。
A. 故障列表
在 VISUs 下添加 Text List,命名为 AlarmList,在右侧填写所有故障序号及信息,可
新添加语言列,做多种语言切换。
4
TC3 PLC HMI 中报警功能的使用
图 8 AlarmList
B. Table 表格
在工具箱中拖入 Table 控件,数组变量链接,修改 Header 名称及宽度,勾选需要显示
的列,并对报警信息的 Use Template 打钩,以报警表为例,修改为图 10 所示信息:
图 9 Table 链接
图 10 Table 报警信息
5
TC3 PLC HMI 中报警功能的使用
C. 语言切换
在 GlobalTextList 中添加语言栏,对中文信息翻译。
在视图管理器中将使用 Unicode 字符串打钩,添加 TargetVisualization,选择 Alarm 为
起始界面。
添加按钮,配置鼠标点击动作,如图 11 所示:
图 11 语言切换
三、 仿真
激活硬件配置,下载程序后,通过控制 GVL 中的故障的状态,就可以仿真测试
图 12 报警表仿真
郑州办事处技术支持
Nero Cui 崔晓磊
2015-12-15
6