当网络中使用较多交换机,且安装又比较分散时,对于端口链接状态的检查就不太方便。
2 问题
当交换机的端口链路发生中断时,如何通过 S7-1500CPU 获取这个故障信息,以便进行处理。
3 解决方法
S7-1500 提供了 PROFINET 数据记录库,把交换机作为 PROFINET IO 设备,通过读取数据
记录的方式可以获取端口链路状态。PROFINET 数据记录库下载地址
https://support.industry.siemens.com/cs/cn/zh/view/109753067。
4 操作方法
(1) 组态 CPU 为 PROFINET 控制器,组态交换机为 IO 设备,如图 1 所示。
图 1 网络组态
(2) 加载 PROFINET 数据记录库,如图 2 所示。
图 2 加载 PROFINET 数据记录库
(3) 调用库函数 LPNDR_ReadGlobalInfo 读取端口状态,如图 3 所示。
图 3 库函数 LPNDR_ReadGlobalInfo 参数设置
其中输入参数 execute 的上升沿启动读取任务,hwId 为交换机接口的硬件标识符,如图 4;
图 4 hwld 参数设置
对于端口链接状态读取 ,mode 应该设置为 4,DataRecord 需要定义为一个数组,数组元素
数量与交换机端口数量一致,每个元素对应一个端口状态,数据类型为
LPNDR_typePort
时表示端口链接中断。
图 5 DataRecord 参数设置
(4) 测试结果 交换机端口 1、2、3 和 6 为接通状态,其余断开,如图 6 所示。端口 1、2、3 和 6 为接通状态,其余断开,如图 6 所示。