前面陆陆续续写了报警消息的博文如下:

调整报警控件列宽

http://blog.sina.com.cn/s/blog_724246b90102wh0o.html

报警控件如何分区域显示

http://blog.sina.com.cn/s/blog_724246b90102wh0s.html

基于上位机的声音报警

http://blog.sina.com.cn/s/blog_724246b90102wh1p.html

 

有时我们会需要对报警按照来源所属的工艺片区不同划分为不同的组,当其他工艺画面上变量有报警时,当前页面上也可以看出来。前一篇文章《Wincc模拟PCS7运行风格》里面也提到消息分组后状态变量和报警变量存在一定关系,本文就描述如何实现分组以及分组和状态变量之间有何数据关系。

 

一 准备工作

1.  假定wincc报警变量分属于三个生产车间:一车间,二车间,三车间,在内部变量中建立三个32位无符号数workshop1,workshop2,workshop3。报警记录消息组下建立三个消息组:一车间,二车间,三车间。三个消息组的状态变量分别关联三个内部变量workshop1,workshop2,workshop3。再建立6个32位浮点数变量和6个二进制变量,并对这六个变量进行报警记录设置,分别归属三个消息组一车间,二车间,三车间。

 

2. 新建三个Wincc页面,由于本练习没有实际的外部设备,因此使用slider和按钮来模拟现场变化。再插入32个圆,全局颜色方案设定为否,背景颜色动态,分别关联workshop1的32位,位值为1绿色,为0灰色,插入一个报警控件监控报警是否已被系统记录下来。wincc项目计算机属性中启动项目中勾选报警记录功能。

wincc安装消息队列 wincc消息位_wincc安装消息队列

保存后运行,可以看到当车间一的报警到来时workshop1的0位和16位均为1,当workshop1的报警消失后,0位回0,16位仍然为1,此时点击报警空间组确认,workshop1的16位回0;当车间一的报警到来期间,如果报警没有消失但是点击了组确认,那么workshop1的0位仍然为1,16位回0。如果触发车间二的报警,那么workshop1的32位都没有反应,因此通过每个消息组的状态变量0位,我们就可以知道这个组内是不是有报警发生,如果我们把这个0位的值关联到页面跳转按钮的背景闪烁上,那么即使没有在发生报警所在页面,通过看按钮背景是不是闪烁,也可以知道该区域是不是有报警发生。

 

 

补充:其实我们在设定消息组的状态变量时候,已经可以看出系统默认使用的是状态变量0位了,这个位号是可以在编辑时修改的。