发表于:2018/1/23 19:34:01
#2820楼
用博途中的指令诊断IO设备或DP从站状态的简易方法
博途的扩展指令的“诊断”文件夹中的“读取IO系统的模块状态信息”指令DeviceStates可用来诊断S7-1200/1500的IO设备或DP从站的状态信息。它的功能类似于S7-300/400的FC125,其使用非常方便。
《S7-1200/1500 PLC应用技术》的例程“用程序诊断故障”中,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不存在。
博途的扩展指令的“诊断”文件夹中的“读取IO系统的模块状态信息”指令DeviceStates可用来诊断S7-1200/1500的IO设备或DP从站的状态信息。它的功能类似于S7-300/400的FC125,其使用非常方便。
《S7-1200/1500 PLC应用技术》的例程“用程序诊断故障”中,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不存在。