SNMP库巧用5-读取SCALANCE 交换机MRP 环网状态

2022-03-29 14:50:56 浏览数 (1)

1 SIMATIC PLC SNMP 库读取SCALANCE交换机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的状态为例。

1.3 操作步骤

下载SNMP 库后,装载到博途软件全局库,通过拖拽“S7-1X00”到项目中的程序块下,包括了调用的程序块和数据类型会装载到当前项目。

首先在DB 中生成“typeParamGetSet”类型数据,参数如下。注意确保“connectionID”和“localPort”不要和其他连接冲突。交换机MRP的状态私有MIB OID 为“1.3.6.1.4.1.4329.20.1.1.1.1.24.1.3.0”。

注意,读/写操作可能需要调整“community”,需要设置与交换机设备一致,SCALANCE 交换机默认写操作为“private”、读操作“public”。

在程序中调用“SnmpGet”指令,“snmpData”DB 中选择创建好的变量。

“SnmpGet”指令执行后,通过“returnValue”、“returnValueLenght”显示读出的数据类型和有效长度。“returnValue[x]”中显示有效数据,数据的含义参考下表。可以看到当前交换机环网处于“Passive”状态,环网正常。

Return Value type

02

04

41

43

Integer 32bit

String

Counter

Timeticks

Return Value

1: Passive

2: Active

在交换机管理页面中也可以看到当前环网的实际状态,如下图。

当交换机的环网发生了中断,程序块中也会读到状态,如下图,“Active”环网中断。

交换机的私有MIB 针对当前交换机MRP 环网状态还提供了其他有用的OID,具体内容和网页中显示的内容一致,下面的表格中列出了一些,具体的读取方式和上面的例子一样

功能

OID

数值

数据类型

当前冗余模式

.1.3.6.1.4.1.4329.20.1.1.1.1.24.1.1.0

1

no redundancy

Integer (32 bit)

2

high speed redundancy protocol

3

media redundancy protocol

4

automatic redundancy detection

环网接口1

Portnumber of static port (HRP) or RingPort 2 (MRP)

.1.3.6.1.4.1.4329.20.1.1.1.1.24.1.5.0

Integer (32 bit)

环网接口2

Portnumber of isolated port (HRP) or RingPort 1 (MRP)

.1.3.6.1.4.1.4329.20.1.1.1.1.24.1.6.0

MRP 环网角色

MRP RM mode

.1.3.6.1.4.1.4329.20.1.1.1.1.24.1.9.0

1

Client

Integer (32 bit)

2

Manager

环网状态

RM State

.1.3.6.1.4.1.4329.20.1.1.1.1.24.1.3.0

1

Fine

Integer (32 bit)

2

Fault

MRP 切换次数

Number of changes to RM active state.

.1.3.6.1.4.1.4329.20.1.1.1.1.24.1.4.0

Integer (32 bit)

0 人点赞