西门子博图软件提供DeviceStates和ModuleStates指令对远程I/O模块状态进行诊断。本文使用西门子1212C V4.5 PLC和PROFINET协议耦合器XB6S-PN2002通信为例进行说明。
新建程序,并成功和耦合器XB6S-PN2002通讯,准备工作完成。
一、通过DeviceStates指令读取网络中耦合器XB6S-PN2002的状态
1、建立全局数据块,并建立Device数组,用来查看模块状态
2、调用程序块并添加数组
单击LADDR选择需要诊断的系统,本例是检测PN网络系统,MODE参数如图所示,本案例使用2做说明,STATE添加上述建立的Device数组。
3、测试功能
下载程序,并监控Device数组。
根据设备编号查看模块的通讯状态,当设备1出现通讯不上,故障或网线接线不佳时,Decice[1]为TURE。
二、通过ModuleStates指令读取耦合器及子模块的状态
1、建立全局数据块,并建立Module数组用来监控耦合器和子模块状态
2、调用程序块并添加数组
单击LADDR选择要监控的耦合器,本案例选择设备名称为“pnio”的耦合器,MODE参数如图所示,本案例使用5做说明,STATE添加上述建立的Module数组。
3、测试功能
下载程序,并监控Module数组。
当前模块及子模块正常,当出现模块通讯不上,或子模块出现需要维护等告警信息均可通过监控数组查看。
例
在一个 I/O系统中包含5个模块,分别位于插槽1到5中。其中,插槽1和插槽3中的模块存在需要维护的告警。 对于MODE=5(维护要求或建议/不可访问/不可用/出错)的I/O系统,执行“ModuleStates”指令。
在 STATE 参数中设置了下列位——
位 0 = 1:至少有一个模块发生了故障。
位 1 = 0:插槽编号 0(由 IO 设备使用)
位 2 = 1:插槽编号 1 中的模块有告警。
位 3 = 0:插槽编号 2 中的模块未发生故障。
位 4 = 1:插槽编号 3 中的模块有告警。
位 5 = 0:插槽编号 4 中的模块未发生故障。
位 6 = 0:插槽编号 5 中的模块未发生故障。
位 7 = 0:不相关
以上就是实点科技远程I/O模块XB6S PROFINET协议耦合器通过程序内变量读取模块状态方法,感谢您的观看!