使用PCS7的过程中在极少数情况下,我们可能会遇到报警消息系统中不再出现的消息无法被确认,尤其是一些带有删除线的消息。通常重启OS运行系统会有所帮助。但是,并不是总是能够重启,例如冗余服务器器对,每次只允许关闭一个OS 服务器。
为什么会产生带有删除线的消息?为什么其中部分无法确认掉?针对这种问题有没有什么行之有效的解决方法呢?
图1-1 带删除线的消息
以下情况下将导致无效的时间标签(即报警消息的时间戳包含删除线)
· 在PLC中消息已经激活,
· 然后OS运行系统才被激活,
· AS-OS连接中断未恢复之间的消息
· OS运行中一条到来的消息被锁然后又被解锁
· 消息确认触发报告功能(Acknowledgment-triggered reporting(ART) funciton)被激活,但是该消息离开后才被确认。
哪种情况会导致消息无法确认?
即使带有删除线的消息,正常情况下依然可以确认,但此时报警消息状态为已确认未离开的状态。如果该报警依然存在,则消息离开后也会从已确认报警消息列表中消失,但是如果该报警不再存在则可能一直停留在已确认的消息列表中。另外一种,如果我们删除包含报警的下位机程序,但是OS未进行编译,而在删除程序之前正好报警到达未确认未离开的状态,此时因为AS中已经没有该消息则无法确认。当然对于后面一种情况,一般情况下进行OS编译之后正常情况下报警应该也可以自动消失。
针对无法确认的问题,以PCS7 V9.0为分水岭,介绍两种解决方案。对于PCS V9.0之前版本的解决方案同样适用于PCS7 V9.0之后的版本。但是对于第二种方案,仅适用于V9.0版本之后(含该版本)。
对于PCS7 V9.0之前的版本解决方案
1、重新触发消息
1.1 如果具备重新触发该消息的条件,可以通过重新触发消息的方式使得该报警消息可以获得一个有效的时间戳,此时可以进行确认。
1.2 如果现场不具备重新触发消息的情况,则可以通过以下方式,使用内部变量重新触发该消息。
· 记录当前带删除线无法确认的消息编号 (如果不修改系统画面,可以自己添加一个报警控件,并显示Number列即对应的消息编号)
图1-2 如何显示报警消息编号
· 在ES站打开服务器项目
· 在内部变量中创建一个新的内部变量
· 在报警记录中的AS消息或系统消息中查找对应的消息编号
· 修改对应消息编号的消息变量为第3步中创建的内部变量
· 在任一画面添加IO域并关联该内部变量
· 仅改变编译下载OS服务器项目
· 在OS服务器上控制该变量为1,重新触发消息。
此时,该消息被重新触发后将会获得一个有效的时间戳,并且可以被确认。
2、紧急确认
将报警控件工具栏中的紧急按钮释放出来,点击后,输入需要紧急确认的报警编号,并点击发送请求即可,如下图所示:
图1-3 紧急确认
对于PCS7 V9.0之后的版本解决方案
从PCS 7 V9.0或WinCC V7.5起,西门子官网提供了另外一种更为简单有效的解决方案。
如何在PCS 7 OS运行系统或者WinCC V7.5中删除无法确认的消息?
https://support.industry.siemens.com/cs/cn/zh/view/109751476(点击阅读原文跳转)
来看下具体步骤如何:
1、 在上述链接中下载例子项目,并复制项目路径下Gracs文件夹中的DeleteAalarm.PDL画面到自己项目中的Gracs文件夹下或对应的OS工厂层级目录下。
2、 在激活的OS项目中,切换到第一步复制过来的DeleteAlarm.PDL画面:如果是在工厂视图下复制可以直接点击区域按钮切换,如果非画面树画面,可以通过底部按钮区的Piture by name按钮打开对话框并选择DeleteAlarm.PDL画面。
3、 点击报警控件工具栏中的AutoScroll按钮,处于如下图红色方框所示的位置:
图1-4 AutoScroll按钮
4、 选择需要删除的不能确认的消息,然后点击画面中的Delete select message 按钮。
5、 紧接着会弹出为1003111消息输入注释的提示,如果需要输入Comment则输入后点击OK,如不需要注释则直接点击OK,点击OK后会自动删除选中的单条消息。
图1-5 为删除报警条目输入注释并确认
6、 在操作记录中会包含删除该消息的操作记录和Comment。
图1-6 删除消息的操作记录