当前位置:首页 > 新型工业化 >读取时发生io访问错误 ob122(io读取错误)

读取时发生io访问错误 ob122(io读取错误)

例如:

#RetValue_konfiguriert :=DeviceStates(LADDR :='本地~PROFINET_IO-系统', MODE :=1, STATE :=#State_konfiguriert);

读取时发生io访问错误 ob122(io读取错误)

#RetValue_stoerung :=DeviceStates(LADDR :='本地~PROFINET_IO-系统', MODE :=2, STATE :=#State_stoerung);

#RetValue_deaktiviert :=DeviceStates(LADDR :='本地~PROFINET_IO-系统', MODE :=3, STATE :='DB_ARG'.State_deaktiviert);

#RetValue_vorhanden :=DeviceStates(LADDR :='本地~PROFINET_IO-系统', MODE :=4, STATE :=#State_vorhanden);

#RetValue_wartung :=DeviceStates(LAD:='本地~PROFINET_IO-系统', MODE :=5, STATE :=#State_wartung);

“DeviceStates”指令用于查询IO系统中所有模块的具体状态信息,即:

PROFINET IO 系统中所有IO 设备的状态信息

或DP 主站系统中所有DP 从站的状态信息

布尔值输出指示所选状态适用的模块。例如,读取PROFINET IO 系统中当前禁用的IO 设备。

该信息的显示还取决于要读取的状态信息是否适用于至少一个IO 设备或DP 从站。该指令可在循环OB 以及中断OB(例如OB82 - 诊断中断)中调用。

LADDRInputHW_IOSYSTEMPROFINET IO 或DP 主站系统的硬件标识符MODEInputUINT 选择要读取的状态信息RET_VALReturnINT 指令的状态STATEInOutVARIANTIO 设备或DP 从站的状态缓冲区参数LADDR

使用LADDR 参数通过硬件标识符选择PROFINET IO 或DP 主站系统。

硬件标识符位于:

在PROFINET IO 或DP 主站的系统属性的网络视图中。

或者在PLC 变量表中列出数据类型HW_IOSYSTEM 的系统常量。

参数模式

可以使用MODE 参数读取状态信息。可以读取整个PROFINET IO 或DP 主站系统的以下状态消息之一:

1:IO 设备/DP 从站已配置

2:IO设备/DP从站故障

3:IO 设备/DP 从站禁用

4:IO 设备/DP 从站存在

5:有问题的IO 设备/DP 从站。例如:

维护要求或建议

无法访问

不可用

发生错误

参数状态

通过STATE 参数,输出由MODE 参数选择的IO 设备/DP 从站的状态。

如果使用MODE 选择的状态适用于IO 设备/DP 从站,请将STATE 参数中的以下位设置为“1”:

位0=1:组显示。至少一个IO 设备/DP 从站的第n 位设置为“1”。

位n=1:通过MODE 选择的状态应用于IO 设备/DP 从站。

对于PROFINET IO 系统,第n 位对应于相应IO 设备的设备编号(请参见设备视图和网络视图中的PROFINET 接口属性)。

对于PROFINET DP 系统,位n 对应于DP 从站的PROFIBUS 地址(请参见设备视图和网络视图中的DP 从站属性)。

使用“BOOL”或“BOOL 数组”作为数据类型:

要仅输出状态信息的组显示位,请在STATE 参数中使用BOOL 数据类型。

要输出所有IO 设备/DP 从站的状态信息,请使用以下长度的BOOL 数组:

对于PROFINET IO 系统:1024 位

对于DP 主站系统:128 位

示例- 读取PROFINET IO 主站系统中是否存在IO 设备

在以下示例中,查询IO 系统是否存在IO 设备。 IO 系统包含两个S7-1500 系列CPU。 “PLC_14”CPU 将包含该程序,包括“DeviceStates”指令。 “PLC_13”CPU 被组态为IO 设备。

在“PLC_14”CPU 中: 在全局数据块中创建三个变量和一个“mySTATE”结构(数据类型为BOOL 数组)来存储数据。

在“PLC_14”CPU 中:调用循环OB 中的指令。指令参数互连如下:

在“PLC_13”CPU 中:使用CPU 属性将此CPU“PLC_13”设置为IO 设备。 IO 设备接收设备号1。

IO 系统显示在网络视图中。

在“PLC_14”CPU 中:“DeviceStates”指令通过参数LADDR (“myLADDR”) 了解IO 系统的硬件标识符。

根据参数MODE (“myMODE”) 的值“4”,在IO 系统中搜索IO 设备。

在参数STATE(“mySTATE”)中,输出IO设备是否存在(根据参数MODE的值)。位0 作为组值指示IO 设备的存在。位1 表示存在设备号为1 的IO 设备。

输出参数RET_VAL(“returnValue”)用于指示处理没有错误。

示例- 读取PROFINET IO 主站系统中的故障站

一个PROFINET IO系统包含4个IO设备,设备号分别为1、2、3和4。其中,2号IO设备出现故障。

对于MODE=2(故障/无故障)的PROFINET IO 系统,执行“DeviceStates”指令。

以下位在STATE 参数中设置:

位0=1:至少一个IO 设备发生故障。

位1=0:设备号1 的IO 设备未发生故障。

位2=1:设备号2 的IO 设备发生故障。

位3=0:设备号3 的IO 设备未发生故障。

位4=0:设备号4 的IO 设备未发生故障。

位5=0:不相关

位6=0:不相关

审稿人:刘庆

最新资讯

推荐资讯