WinCC V7.5 SP1报警消息的状态变量

在WinCC的报警消息中,一般情况下,在报警控件中的“确认状态”列中显示报警消息的状态。除此之外,还可以为报警的单个消息、报警组、报警类型和报警等级组态相关的状态变量和状态位。这样,就可以在不使用报警控件的情况下,而在其它动态或脚本等逻辑中通过状态变量来获取相关报警消息的状态信息。

状态变量包括两个状态信息,状态位和确认位。状态位表示报警消息是到达/离开,确认位表示报警消息是否需要确认。

注意:状态变量的数据类型必须为无符号8/16/32位值,分别可以对应4/8/16个消息对象。

在组态状态变量时需要定义状态位的位置,而确认位的位置取决于状态位的位置。

状态变量的数据类型为“无符号8位值”时,状态位为0~3位,分别对应的确认位为4~7位。状态位与确认位的位间隔为4位。如果状态变量的状态位为位号2,则位号2表示相应消息的到达/离开状态,而位号6表示该消息是否需要确认。

状态变量的数据类型为“无符号16位值”时,状态位为0~7位,分别对应的确认位为8~15位。状态位与确认位的位间隔为8位。如果状态变量的状态位为位号6,则位号6表示相应消息的到达/离开状态,而位号14表示该消息是否需要确认。

状态变量的数据类型为“无符号32位值”时,状态位为0~15位,分别对应的确认位为16~31位。状态位与确认位的位间隔为16位。如果状态变量的状态位为位号9,则位号9表示相应消息的到达/离开状态,而位号25表示该消息是否需要确认。

在报警编辑器中选择相应的消息,在“属性”-“消息”-“常规”中选择相应的“消息等级”、“消息类型”和消息组“后,在“变量”中选择相应的状态变量和状态位。

如果报警消息相应的状态变量的状态位为1,则表示该消息已到达;而状态位为0,则表示该消息已离开。如果报警消息相应的状态变量的确认位为1,则表示该消息尚未确认;而确认位为0,则表示该消息已确认。

在报警编辑器中选择相应的消息组,在“属性”-“消息组”-“”中相应的状态变量和状态位。

如果报警组相应的状态变量的状态位为1,则表示该组中有消息已到达;而状态位为0,则表示该组的消息均已离开。如果报警组相应的状态变量的确认位为1,则表示该组中有消息尚未确认;而确认位为0,则表示该组的消息均已确认。

在报警编辑器中选择相应的消息类型,在“属性”-“消息类型”-“变量”中选择相应的状态变量和状态位。

如果消息类型相应的状态变量的状态位为1,则表示该消息类型中有消息已到达;而状态位为0,则表示该消息类型中的消息均已离开。如果消息类型相应的状态变量的确认位为1,则表示该消息类型中有消息尚未确认;而确认位为0,则表示该消息类型的消息均已确认。

在报警编辑器中选择相应的消息等级,在“属性”-“消息等级”-“变量”中选择相应的状态变量和状态位。

如果消息等级相应的状态变量的状态位为1,则表示该消息等级中有消息已到达;而状态位为0,则表示该消息等级中的消息均已离开。如果消息等级相应的状态变量的确认位为1,则表示该消息等级中有消息尚未确认;而确认位为0,则表示该消息等级的消息均已确认。

注意:在不操作报警控件的情况下,组态报警消息的确认逻辑时,可以将确认变量和确认位与状态变量的状态位和确认位结合使用,例如,当报警消息到来后超过一定时间尚未被操作员手动确认(状态变量的状态位和确认位),即触发自动确认(确认变量的确认位),并向PLC反馈以执行相应的处理过程。而报警消息的状态变量的地址不得与报警消息的其它变量(例如确认变量)的地址重叠。

关于报警消息的确认变量,可以参考以下链接:

《WinCC V7.5 SP1报警消息的确认变量》