1 SIMATIC PLC SNMP 库读取交换机MRP 环网错误连接状态
1.1 SIMATIC PLC SNMP 库
SNMP,简单网络管理协议,是基于UDP/IP的开放以太网协议,通过访问标准的MIB数据库就可以获得网络设备的具体状态信息。
西门子为S7 自带以太网接口的CPU提供了标准的库,可以支持SNMP协议。这样S7 CPU通过指令可以作为SNMP的管理者获得网络节点的信息。
因为SNMP是开放的网络管理协议,绝大多数网络设备都支持,所以功能上具备良好的兼容性;又因为,SNMP规定了公开的MIB数据库,因此可以提供丰富多彩的信息给S7 CPU。
S7 CPU SNMP库的下载和具体使用可以参考以下链接:
https://support.industry.siemens.com/cs/cn/en/view/57249109
1.2 工作原理
MRP 环网是适用于PROFINET的环网协议。首先,简单介绍一下MRP工作的简单原理,作为MRP管理器的设备会在两个环网接口定时发送MRP的探测数据帧,环网上的MRP客户端仅会在环网接口转发MRP探测帧,如果管理器的任何一个环网接口能接收到另外接口的探测帧,则认为环网是闭合的。
相反,如果环网链路断了,管理器的两个接口都收不到对方的探测帧,则认为环网处于打开状态
西门子SCALANCE X 系列交换机,针对MRP的状态提供了一系列私有MIB,可以通过SNMP访问这些私有MIB,获得MRP有关系的信息。
通过交换机MRP的状态私有MIB OID “1.3.6.1.4.1.4329.20.1.1.1.1.24.1.3.0 ” 获得环网的状态,环网正常时读到的数为“1”,环网一旦发生了中断,数据变为“2”。
但是实际应用中有这样的一种可能,由于误操作,MRP设备插错了其中一个环网接口,连到了别的非环网接口。而MRP设备接收到MRP探测帧,不会在非环网接口转发,仅在环网接口转发。这种情况下,如下图,MRP管理器在一个环网接口仍然可以收到另外接口的探测帧,因此管理器认为环网仍然闭合。
这种情况下如果仍然读取交换机的MRP状态,不会获得环网连接错误的信息。但是默认状态下,交换机的一个环网接口不能获得对端接口的探测帧,此时“F”故障灯报警,日志中也会有相应的信息。我们可以通过读取交换机故障的状态来获得故障的信息,及时的做出人为干预。
1.3 操作步骤
下载SNMP 库后,装载到博途软件全局库,通过拖拽“S7-1X00”到项目中的程序块下,包括了调用的程序块和数据类型会装载到当前项目。
首先在DB 中生成“typeParamGetSet”类型数据,参数如下。注意确保“connectionID”和“localPort”不要和其他连接冲突。交换机故障状态私有MIB OID 为“1.3.6.1.4.1.4329.20.1.1.1.1.28.1.0”。
注意,读/写操作可能需要调整“community”,需要设置与交换机设备一致,SCALANCE 交换机默认写操作为“private”、读操作“public”。
在程序中调用“SnmpGet”指令,“snmpData”DB 中选择创建好的变量。
“SnmpGet”指令执行后,通过“returnValue”、“returnValueLenght”显示读出的数据类型和有效长度。“returnValue[x]”中显示有效数据,数据的含义参考下表。可以看到当前交换机处于“No fault”状态。
Return Value type | 02 | 04 | 41 | 43 |
---|---|---|---|---|
Integer 32bit | String | Counter | Timeticks | |
Return Value | 1: No fault | |||
2: Fault |
可以结合交换机MRP的状态私有MIB OID “1.3.6.1.4.1.4329.20.1.1.1.1.24.1.3.0 ” 检查环网的状态,如果环网闭合且没有故障报警,可以认为环网连接正常。
如果环网闭合但是出现了故障报警,疑似环网有差错的可能性,需要人为干预。
注意!这种应用下,使用PLC snmp 使用有一定的局限性
- 我们仅能判断环网有插错的可能性,因为交换机的故障报警还有其他的可能,因此,在这种情况下,需要登录MRP管理器查看日志来确认具体报警的情况来确认。
- 通过PLC snmp 读取MRP管理器信息,无法获得环网在哪个节点接错的信息。如果环网的设备都是SCALANCE 网管型交换机,可以同时读取所有交换机环网端口状态,这样,如果某个交换机接错了环网口,而恰好环网口down 状态,这样可以判断出错误节点。但是,如果环网交换机较多,需要一定的编程量。
- 如果某个交换机接错了环网口,而恰好环网口up 状态,这种极端情况下,很难通过程序来判断出错误的节点。
- 可以考虑通过西门子的网管软件SINEC NMS,在拓扑中很容易获得环网的状态、故障的位置等。