过程报警

Process Alarm

  • 对应了PLC中的硬件中断概念,由PLC中的OB4x捕获。

Process抓包

  • 如图.
    • AlarmType=0x02是重点
    • USI=0x00是重点
    • UserData的4个字节表达了发生过程报警的模块通道数,报警类型。(由二进制格式解析,解析方法参考对应的模块手册,这4个字节对应OB4x的LD8区域)。如需要知道报警的模块地址,由OB4x的LW6区域得到。

过程报警USI在IEC61158-6-10和在西门子官方介绍中的差异

  • 这是IEC61158
  • 这是西门子手册中提到支持的USI
  • 对比发现,西门子并不一一对应所有IEC中介绍的USI,并且过程报警(IEC介绍为0x8320)被用户特定USI(西门子中分为0x0000)代替了。

AlarmType分类

  • 能从IEC61158-6-10找到出处

模块中的硬件中断丢失诊断

  • 诊断码为16h.
  • 该诊断的产生推断和模块内部的硬件中断buffer堆满了而触发出来的,和程序中存不存在OB4x,以及中断进入OB4x的速度没有任何关系。
    • 程序中不管调用OB4x与否,中断报文的req - ack 格式不会变化
    • 程序中不管调用OB4x与否,还是可以依靠高频次触发中断导致产生硬件中断丢失诊断

硬件中断和诊断的报文结构以及优先级

  • 过程报警报文如下,四条报文为一组,从Notify到Ack的全过程:
  • 中过程报警中触发诊断报警,观察其优先级。红笔是诊断报文,蓝笔是中断报文。他们Notify到Ack逻辑一致,但是中断报文优先级高,所以优先响应中断报文:
  • 诊断报警消失有报文,过程报警没有消失报文,这是重要的不一致:

wireshark中如果看不到AL等具体的协议簇,可能是以太网的问题

  • 尝试在wireshark中修改以太网如下设置:
  • wireshark中如果需要标记某一条报文,使用Ctrl + M快捷方式实现。
posted @ 2026-06-18 17:33  你要去码头整点薯条吗  阅读(7)  评论(0)    收藏  举报