- 收藏
- 加入书签
在WINCC项目中组态实时报警画面
摘 要:在西门子WINCC V7人机交互软件中的报警信息是十分重要的,他能够让操作者和检修工及时处理故障。但是有些重要的报警信息,也需要在任何一个画面中及时弹出,从而供操作者判断与确认。本文则是深入地研究了画面窗口与报警记录的应用,并且通过对报警记录中的消息变量、状态变量、确认变量的使用,组态出重要信息的实时报警画面。
关键词:WINCC;画面窗口;组态;实时报警
中图分类号:TN91
1 前景概述
我们在用WINCC做好的画面对自动控制系统过程监视时,时常用多个画面进行切换,其中报警画面是其中之一。当有报警信号过来时,我们一般都是要切换到报警画面去查询,然后进行现场确认以及报警画面确认。
这里有一个问题就是,我们用Wincc Alarm Control控件所编辑组态出来的画面,往往内容比较多,要逐个去查询与确认,有些信息并不是特别重要,我们可以直接勾选确认。
这样会造成当重要的报警信息过来时,操作工并不一定能够第一时间注意到,从而有时也无法第一时间通知现场检修人员去确认。
本文探索通过变量记录中设置消息变量、状态变量、确认变量,结合图形编辑器,组态出一个项目中需要重点管控的实时报警画面窗口,从而做到让操作者第一时间就能掌握并处理报警信息。
下面用一个简单的项目介绍如何在任何一个画面中组态出实时报警画面。
2 实时报警画面的介绍
2.1在工矿企业中,原燃料物质的输送系统,大部分都是通过多条输送带进行逐级传输。
那么输送带的紧急停机保护就有许多种,比如:拉绳开关,输送带跑偏,堵料开关,打滑开关等四种保护至关重要。
在报警信号没有来之前,所有画面都没有弹出报警窗口。如下图,我们取一个“欢迎画面”作解释(欢迎画面-1):
2.2当四种开关动作报警信号的任何信号传递到中心控制室时,操作者在wincc任何一个画面都能够看到这四种重要的报警信息。这样就做到了让操作者第一时间看到红框里的实时黄色报警,就可以立即通知检修人员去现场处理完故障后,在画面中确认。同样也是取同一个“欢迎画面”作解释(欢迎画面-2):
3 报警变量的组态
3.1 变量设置
我们现在变量管理中,我们任意选择一个通道,做好一个连接。在这个连接下,设置三个变量,分别是:
3.2 三个变量的关系
我们在报警记录中,把alarm作为消息变量,把state作为状态变量,把ack作为确认变量。当alarm的前8个位接收到报警信号时,state的前8个位也同样获得报警信号,并且state的后8位也相应的显示出报警状态信号。当alarm前8个任何一个报警信号位消失时,state的报警信号位也同步消失。但是state的8个状态信号却不随着报警信号的消失而消失,他们要随着ack的前8个对应位的操作确认之后才会相应的消失。
下面通过仿真器解释一下这3个变量的关系。
(1)给变量alarm(MW0)的前4个位勾上,表示来了四个报警信号,看看变量state(MW2)和变量ack(MW4)结果如下图3(仿真-1):
图3中可以看出alarm(MW0)的第0.1.2.3位和state(MW2)的第0.1.2.3位一一对应。而state(MW2)的第8.9.10.11位为相应的状态显示位。ack(MW4)则没有任何显示。说明state(MW2)的前8个位为和alarm(MW0)对应的报警信号位,后8位为报警信号状态位。
(2)给变量alarm(MW0)的前4个位的某一个位取消,变量state(MW2)和变量ack(MW4)结果如下图4(仿真-2):
图4中可以看出alarm(MW0)的第1位和state(MW2)的第1位相应消失。而state(MW2)的第9位仍然为对应的状态显示位,并没有消失。ack(MW4)则没有任何显示。因此state(MW2)的后8位状态显示位需要经过确认才会消失离开。
(3)给变量ack(MW4)的1号位勾上,观察变量state(MW2)的后8位,结果如下图5(仿真-3):
图5中可以看出,当ack(MW4)的1号位动作,则state(MW2)的第9位状态显示位消失离开。这就证明ack(MW4)是用来人为去确认报警信息的消失离开用的,这个正好可以提供给操作工用。就是当操作工得到检修工确认故障报警已经接触时,操作工就可以去操作ack(MW4)所以对应的位而编辑的画面确认按钮使用。
3.3 消息组态
因为此文举例的是四个报警信号,因此我们在报警记录中,对三个变量的头4个位作如下组态
4 报警实时画面组态
新建一个画面,命名为“M1报警画面”。该画面要显示的内容为:
4.1 组态标题“M1报警”。
只要组态一个静态文本即可。在对象属性中,把字体调整到自己希望的大小,并且调整为红色。
4.2 组态“M1拉绳报警”、“M1跑偏报警”、“M1堵料报警”、“M1打滑报警”。
这四项也是先组态静态文本,然后对齐,在对象属性中,字体也是调整到自己希望的大小以及红色。他们的显示分别对应state变量的前四个位。这里要强调一下,我们在对话框中,连接state变量时,数据类型要选择位。此事的状态显示位,我们在组态的时候,状态位描述为0-3位,但是因state变量前8位的显示要和变量alarm的前8位一一对应,所以实际上state变量的状态位要从8位开始,即8-15位。因此我们组态显示属性,连接变量及相对应的位时,不能搞错。他们的对应关系为:
详见下图6(组态-1):
4.3 组态四个报警的“确认”按钮。
我们用窗口对象中的方形按钮来编辑。这个“确认”按钮的组态相对比较复杂一些,需要组态他的“显示”属性,“允许操作员控制”属性,和“鼠标点击”事件。
4.3.1“显示”属性的组态。
和4.2一致,也是和变量state的状态显示位进行对位关联。注意也要从第8位开始,一直到第11位。
4.3.2“允许操作员控制”属性的组态。
得和变量alarm的消息位进行对位关联,并且是alarm消息位为0时,说明检修工已经处理完故障,并且通知了操作员,此时才允许操作员控制。这里的意思是,当现场的检修人员在现场处理了相应的故障,让变量alarm的报警消息离开之后,才允许操作员来操作“确认”这个按钮。见下图红框,alarm为1,说明报警信息未离开,不允许操作;alarm为0,说明报警信息离开了,可以操作了。详见下图(组态-2)
4.3.3“鼠标点击”事件的组态。
很显然,鼠标点击“确认”按钮,就应该让报警名称和“确认”按钮自身不显示。因为前面说过报警名称和“确认”按钮的显示属性都是和变量state的状态位相关联,因此我们在组态用鼠标点击“确认”按钮这个事件时,必须要和变量ack进行关联了,因为只有变量ack的相应的位置位位1时,变量state相应的位才会消失离开。点击“确认”按钮,变量ack相应的位设置1,按照我们前面对三个变量的介绍,此时变量state的状态相应的位就置0,这样就做到了报警信号的离开,同时报警名称和“确认”按钮也不再显示。
4.3.4“鼠标点击左键”事件的简单的C脚本编辑。
组态“点击左键”事件。选择“C动作”,在弹出来的C脚本编辑操作框中,写入如下指令:SetTagWord("ack",GetTagWord("ack")|0x1,如下图8(组态-3),注意别把分号(;)给漏了,否则编译不成功。
因此,点击左键后,ack的值就等于十六进制的1了。它转成二进制时,第一个位为1,其他位为0。这样就把变量state的第一个状态位设置为0了。那么第一个状态位的报警信息离开,其关联的画面中的对象“M1拉绳报警”和“确认”按钮也跟着不显示。
以此类推:如果希望第二个位为1,则让变量ack与十六进制2进行按位作或运算,那么第二个状态位的报警信息离开,其关联的画面中的对象“M1跑偏报警”和“确认”按钮也跟着不显示;如果希望第三个位为1,则让变量ack与十六进制4进行按位作或运算,那么第三个状态位的报警信息离开,其关联的画面中的对象“M1打滑报警”和“确认”按钮也跟着不显示。如果希望第四个位为1,则让变量ack与十六进制8进行按位作或运算,那么第四个状态位的报警信息离开,其关联的画面中的对象“M1堵料报警”和“确认”按钮也跟着不显示。
以上就完成了组态“点击左键”事件,点击编译,没有错误后关闭C脚本编辑窗口。这样及达到了用左键点击相应的“确认”按钮,都会让相应的报警信息离开的目的。
4.3.5“鼠标释放左键”事件的简单的C脚本编辑。
我们在设置变量ack的值时,都希望其当前值为0,就类似我们电气原理的“常开”按钮,好让在“点击左键”时,比较好运算。因此我们要在释放左键的时候,让变量ack的值重新归零。这里我们组态“释放左键”事件,就要用到按位作与运算的C指令。
右键点击“释放左键”,选择“C动作”,在弹出来的C脚本编辑操作框中,写入如下指令:SetTagWord(“ack”,GetTagWord(“ack”)&0xFFFE,如下图(组态-4),注意别把分号(;)给漏了,否则编译不成功。
这条指令的意思是,释放左键时,给变量ack设置一个值,他的值等于ack这个变量当前值和16进制的FFFE进行按位作与运算。
ack的当前值为1,用二进制表达为0000 0000 0000 0001
十六进制值为FFFE,用二进制表达为1111 1111 1111 1110
很明显,这两个值作与运算后的值为 0000 0000 0000 0000因此,释放左键后,ack的值就等于十六进制的0了。
以此类推,ack的当前值为十六进制2时,和十六进制7FFD作与运算;ack的当前值为十六进制4时,和十六进制FFFB作与运算;ack的当前值为十六进制8时,与十六进制值FFF7作与运算。它们的运算结果都是0。
以上就完成了组态“释放左键”事件,点击编译,没有错误后关闭C脚本编辑窗口。这样及达到了用左键点击相应的“确认”按钮后立即释放,变量ack重新设置为0的目的。
通过4.1,4.2,4.3,的描述与操作,我们完成了报警实时画面的组态。
5 将报警实时画面添加到各个画面中
在各个画面的空闲处,插入一个尺寸和报警实时画面尺寸一样的画面窗口,组态这个画面窗口的“显示”属性。在报警信号没有来之前不显示,报警信号来之后就显示。当然这个要PLC程序里面也要把四个报警信号并联起来接通一个变量,并且做一个自保和总确认功能。让这个变量和这里的“显示”属性相关联,变量为1,则显示该报警画面窗口,变量为0,则不显示该报警画面窗口。这样就做到了在任何一个画面都能及时接收到重要的实时的报警信息,并且及时通知检修工到现场处理故障以及操作者自己及时确认故障。因为本文最重要的是如何组态报警实时画面,所以这小节不再作详细的图解。
6 总结
WINCC是一个非常强大且智能的一款软件,他可以组态出各种各样的人机交互画面,本文介绍的就是在做项目过程中的一些经验积累。在今后的工程项目中,不断的尝试与创新,将会创造出更适合操作者需求的人机画面。
参考文献
[1]么淑华,任保平.西门子WinCC C/S结构在操作室合并项目中的应用[J].冶金自动化,2021(1).
[2]任骏锋,孟昶至,王奎升.基于PLC和Wincc的非晶合金涂层喷涂设备监控系统设计[J].石油化工设备,2016(03).
[3]朱学森,孟超.PLC在钢铁冶金企业电气自动化控制中的应用分析[J].冶金管理,2020(17).
京公网安备 11011302003690号