技术论坛

 用指令诊断IO设备或DP从站状态的简易方法

返回主题列表
作者 主题
Automann
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
楼主    2018-01-23 19:30:52
主题:用指令诊断IO设备或DP从站状态的简易方法

博途的扩展指令的“诊断”文件夹中的“读取IO系统的模块状态信息”指令DeviceStates可用来诊断S7-1200/1500的IO设备或DP从站的状态信息。它的功能类似于S7-300/400的FC125,其使用非常方便。

在某例程中,CPU 1516C-3 PN/DP为IO控制器,1号IO设备为ET 200SP。为了演示故障诊断功能,组态了一个并不存在的2号IO设备ET 200AL。

OB1中的指令“DeviceStates”的参数LADDR为PROFINET IO系统或DP主站系统的硬件标识符(见下图),参数MODE为1时读取已组态的IO设备/DP从站;为2读取有故障的IO设备/DP从站;为3读取已禁用的IO设备/DP从站;为4读取存在的IO设备/DP从站;为5读取出现问题的IO设备/DP从站。下图中该指令的MODE为2,用DeviceStates指令读取有故障的IO设备/DP从站。

InOut参数STATE用于输出由MODE参数选择的IO设备或DP从站的状态。在全局数据块“诊断状态”(DB1)中,生成数组“IO设备状态”,数据类型为Array[0..4] of Bool,作为参数STATE的实参。

在1号IO 设备有故障时监控DB1中的数组“IO设备状态”(见下图),数组元素“IO设备状态[0]”为组显示,它为1(TRUE)表示网络上至少有一个IO设备有故障。“IO设备状态[1]”和“IO设备状态[2]”为TRUE,表示1号IO设备ET 200SP和2号IO设备ET 200AL有故障。如果“IO设备状态[n]”为TRUE,表示n号IO设备有故障。可以用该数组的元素控制HMI画面上各IO设备对应的指示灯。

切换到离线模式后,将指令DeviceStates的参数MODE改为4(读取存在的IO设备),将程序下载后,“IO设备状态[1]”为TRUE,“IO设备状态[2]”为FALSE,表示1号IO设备ET 200SP存在,2号IO设备ET 200AL不存在。


追求完美
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。