前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SNMP库巧用6-读取SCALANCE 交换机MRP 环网错误连接状态

SNMP库巧用6-读取SCALANCE 交换机MRP 环网错误连接状态

作者头像
科控物联
发布2022-03-29 14:58:12
1.3K0
发布2022-03-29 14:58:12
举报
文章被收录于专栏:科控自动化

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 使用有一定的局限性

  1. 我们仅能判断环网有插错的可能性,因为交换机的故障报警还有其他的可能,因此,在这种情况下,需要登录MRP管理器查看日志来确认具体报警的情况来确认。
  1. 通过PLC snmp 读取MRP管理器信息,无法获得环网在哪个节点接错的信息。如果环网的设备都是SCALANCE 网管型交换机,可以同时读取所有交换机环网端口状态,这样,如果某个交换机接错了环网口,而恰好环网口down 状态,这样可以判断出错误节点。但是,如果环网交换机较多,需要一定的编程量。
  1. 如果某个交换机接错了环网口,而恰好环网口up 状态,这种极端情况下,很难通过程序来判断出错误的节点。
  1. 可以考虑通过西门子的网管软件SINEC NMS,在拓扑中很容易获得环网的状态、故障的位置等。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 SIMATIC PLC SNMP 库
  • 1.2 工作原理
  • 1.3 操作步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档