西门子S7-1500 CPU IO 设备的诊断功能(与1200完全相同),可使用 DeviceStates 和 ModuleStates 指令对分布式 IO 设备的站状态和子模块进行诊断。本文使用 1214C V4.0 CPU 和 ET200SP 的 PN 通信为例进行说明(DP通信同样适用)。
一、S7-1500与分布式IO设备的诊断准备
1硬件准备:
1.CPU 1214C DC/DC/DC,V4.0,一台
2.ET200SP 分布式 IO 站,PN 接口,两套
2、软件准备:
1.TIA Portal V14 SP1
3、使用 TIA Portal 创建一个新项目,正确配置,下载后,进入网络视图,所有站点状态正常。
二、使用 DeviceStates 指令对分布式 IO 子站进行诊断
1、创建全局数据块,用于存储状态数据
在全局数据块中创建数据类型为 Array of BOOL 数组,共计1024个元素。
2、编写程序
在 OB1 中调用 DeviceStates 指令,双击 LADDR 引脚,选择需要诊断的 IO 系统。将 MODE 设置为2,STATE 填写上述定义的全局数据块数组。
指令引脚说明:
参数 LADDR:
使用 LADDR 参数通过硬件标识符选择 PROFINET IO 或 DP 主站系统。
硬件标识符位于:
·PROFINET IO 或 DP 主站系统属性的网络视图中。
或数据类型为 HW_IOSYSTEM 的所列系统常量的 plc 变量表中。
参数 MODE:
使用 MODE 参数可读取状态信息。 可读取整个 PROFINET IO 或 DP 主站系统的下列一条状态信息:
·1: IO 设备/DP 从站已组态
·2: IO 设备/DP 从站故障
·3: IO 设备/DP 从站已禁用
·4: IO 设备/DP 从站存在
.5: 出现问题的 IO 设备/DP 从站。
参数 STATE:
通过 STATE 参数,输出由 MODE 参数选择的 IO 设备/DP 从站的状态。
如果使用 MODE 选择的状态适用于 IO 设备/DP 从站,则在 STATE 参数中将下列位设置为“1”:
·位 0 = 1: 组显示。 至少有一个 IO 设备/DP 从站的第 n 位设置为“1”。
·位 n = 1:通过 MODE 选择的状态将应用到 IO 设备/DP 从站。
o对于 PROFINET IO 系统,第 n 位对应于相应 IO 设备的设备编号(请参见设备视图和网络视图中的 PROFINET 接口属性)。
o对于 PROFINET DP 系统,第 n 位对应于 DP 从站的 PROFIBUS 地址(请参见设备视图和网络视图中的 DP 从站属性)。
使用“BOOL”或“Array of BOOL”作为数据类型:
·要仅输出状态信息的组显示位,可在 STATE 参数中使用 BOOL 数据类型。
·要输出所有 IO 设备/DP 从站的状态信息,请使用下列长度的 Array of BOOL:
·对于 PROFINET IO 系统:1024 位
对于 DP 主站系统:128 位
3、程序测试
将程序下载到 PLC 中。监控全局数据块 devicestate。当 IO device_2 故障时(掉电或网线拔除导致丢站),state[2]=1。