过程报警
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快捷方式实现。

浙公网安备 33010602011771号