通过SNMP库读取交换机接口状态

2022-03-29 21:38:29 浏览数 (1)

1 SIMATIC PLC SNMP 库读取交换机接口状态

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 操作步骤

本例中,我们通过在S7-1500 PLC 调用SNMP 指令,来获取其他网络中交换机所有接口的连接状态。

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

通过使用“SnmpGetBulk”指令,可以批量读取交换机接口状态,该指令只能用于交换机,不支持针对PLC。

首先需要在数据类型中修改“returnValue”对应数组的长度,例如读取对象SCALANCE XC208,8 个接口,则数组长度需要大于等于8。

在DB 中生成“typeParamGetSetBulk”,参数如下。注意确保“connectionID”和“localPort”不要冲突。端口状态的OID 为“1.3.6.1.2.1.2.2.1.8”,适用于所有SCALANCE支持SNMP的设备。

本例中只需要调用一个“SnmpGetBulk”指令,用来批量读取IP:192.168.0.52 的SCALANCE XC208 8个接口状态。

“SnmpGetBulk”指令执行后,通过“returnValue”、“ returnValueLenght”显示读出的数据类型和有效长度。“returnValue[x]”中显示有效数据,数据的含义参考下表。

Return Value type

02

04

41

43

Integer

String

Counter

Timeticks

Return Value

1: Up

2: Down

如下图,SCALANCE XC208交换机的端口P1-P3为UP 状态,其余端口为Down。

如下图,SCALANCE XC208交换机的端口P2 出现了Down。

0 人点赞