0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DeviceStates读取IO系统的模块状态信息

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-05-16 09:24 次阅读

例如:

#RetValue_konfiguriert := DeviceStates(LADDR := "Local~PROFINET_IO-System", MODE := 1, STATE := #State_konfiguriert);

#RetValue_stoerung := DeviceStates(LADDR := "Local~PROFINET_IO-System", MODE := 2, STATE := #State_stoerung);

#RetValue_deaktiviert := DeviceStates(LADDR := "Local~PROFINET_IO-System", MODE := 3, STATE := "DB_ARG".State_deaktiviert);

#RetValue_vorhanden := DeviceStates(LADDR := "Local~PROFINET_IO-System", MODE := 4, STATE := #State_vorhanden);

#RetValue_wartung := DeviceStates(LAD:= "Local~PROFINET_IO-System", MODE := 5, STATE := #State_wartung);

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

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

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

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

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

LADDR Input HW_IOSYSTEM PROFINET IO 或 DP 主站系统的硬件标识符
MODE Input UINT 选择要读取的状态信息
RET_VAL Return INT 指令的状态
STATE InOut VARIANT IO 设备或 DP 从站的状态缓冲区

参数 LADDR

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

6770da40-f36b-11ed-90ce-dac502259ad0.png

硬件标识符位于:

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 从站。

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

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

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

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

要输出所有 IO 设备/DP 从站的状态信息,请使用下列长度的 Array of 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”结构(数据类型为 Array of BOOL),用于存储数据。

67c85112-f36b-11ed-90ce-dac502259ad0.png

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

6827f090-f36b-11ed-90ce-dac502259ad0.png  
在“PLC_13”CPU 中:使用 CPU 属性将此 CPU“PLC_13”设为 IO 设备。IO 设备接收设备编号 1。

6869e7a2-f36b-11ed-90ce-dac502259ad0.png  
IO 系统显示在网络视图中。

68c35986-f36b-11ed-90ce-dac502259ad0.png

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

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

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

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

68c35986-f36b-11ed-90ce-dac502259ad0.png

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

在一个 PROFINET IO 系统中,包含设备编号为 1、2、3 和 4 的 4 个 IO 设备。其中,编号为 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:不相关






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    5011

    文章

    13286

    浏览量

    463222
  • Profinet
    +关注

    关注

    6

    文章

    1168

    浏览量

    23398

原文标题:VASS06使用的新系统函数:DeviceStates: 读取 IO 系统的模块状态信息

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STC的IO高阻模式读取外部状态是否和准双向IO一样要先锁存为1?

    STC的IO的高阻,的读取外部状态是否和准双向IO一样要先锁存为1?还是说即使高阻锁存为0也可以读取外部
    发表于 05-21 04:35

    怎样通过ipmitool检查电源模块状态

    1、通过ipmitool检查电源模块状态 :2、通过ipmitool获取服务器各元件温度信息 : 3、检查电源模块状态 :检查电源模块状态/4、...
    发表于 12-27 06:21

    如何对GPIO IO口的状态进行读取

    如何对GPIO IO口的状态进行读取呢?有什么方法吗?
    发表于 01-25 07:16

    机车状态管理信息系统

    基于 PC-104模块而开发的机车状态管理信息系统,可以在机车运行过程中将各种状态信息记录下来,并在机车运行结束后对此数据进行转储、处理和分
    发表于 04-07 09:47 19次下载

    车载信息娱乐系统IO端口和电子模块的电路保护注意事项

    车载信息娱乐系统IO端口和电子模块的电路保护注意事项
    发表于 01-24 16:54 13次下载

    西门子S7-1500与分布式IO设备的诊断

    西门子S7-1500 CPU IO 设备的诊断功能(与1200完全相同),可使用 DeviceStates 和 ModuleStates 指令对分布式 IO 设备的站状态和子
    发表于 02-11 17:27 1.1w次阅读
    西门子S7-1500与分布式<b class='flag-5'>IO</b>设备的诊断

    使用DeviceStates指令对分布式IO子站进行诊断

    S7-1200 CPU V2.1 开始支持分布式 IO 设备的诊断功能,可使用 DeviceStates 和 ModuleStates 指令对分布式 IO 设备的站状态和子
    的头像 发表于 03-23 10:15 1.5w次阅读
    使用<b class='flag-5'>DeviceStates</b>指令对分布式<b class='flag-5'>IO</b>子站进行诊断

    单片机检测IO口高电平、低电平、悬空三种状态

    单片机检测IO口高电平、低电平、悬空三种状态。步骤1:设置IO口为输入上拉模式,读取IO状态
    发表于 12-23 19:16 42次下载
    单片机检测<b class='flag-5'>IO</b>口高电平、低电平、悬空三种<b class='flag-5'>状态</b>。

    使用ipmitool命令检测电源模块状态

    1、通过ipmitool检查电源模块状态 :https://mp.weixin.qq.com/s/Z1g79Q1aMhOT9Xm9fvIkjg2、通过ipmitool获取服务器各元件温度信息
    发表于 01-05 14:25 2次下载
    使用ipmitool命令检测电源<b class='flag-5'>模块状态</b>

    使用1200-GetStationInfo读取PROFINET IO设备的IP地址

    GetStationInfo”指令读取位于本地 IO 系统中 PROFINET IO 设备或下级 IO
    的头像 发表于 01-29 14:44 5938次阅读

    TIA 读取IO系统模块状态信息

    多个设备通信中,查询系统中所有模块的特定状态信息。是否通信正常,故障时报警停机,设备网络视图如下。
    的头像 发表于 02-05 10:38 3413次阅读

    PROFINET IO 设备读取模块状态信息

    “ModuleStates”指令可用来读取 PROFINET IO 设备或 PROFIBUS DP 从站的模块状态信息
    的头像 发表于 05-19 14:19 3892次阅读
    PROFINET <b class='flag-5'>IO</b> 设备<b class='flag-5'>读取</b><b class='flag-5'>模块</b>的<b class='flag-5'>状态</b><b class='flag-5'>信息</b>

    如何读取 ET 200SP PROFINET IO 设备的站名称

    “Get_Name”指令读取 PROFINET IO 设备、PROFIBUS 从站或 AS-i slave 的名称。设备名称将显示在网络视图和 IO 设备的属性中。 1.STEP 7 会在插入指令
    的头像 发表于 08-08 10:11 2006次阅读
    如何<b class='flag-5'>读取</b> ET 200SP PROFINET <b class='flag-5'>IO</b> 设备的站名称

    程序中如何读取安全F-IO模块进入钝化状态呢?

    在编译硬件组态时,安全系统会为每个F-IO模块自动创建一个F-IO DB。
    的头像 发表于 10-17 10:05 913次阅读
    程序中如何<b class='flag-5'>读取</b>安全F-<b class='flag-5'>IO</b><b class='flag-5'>模块</b>进入钝化<b class='flag-5'>状态</b>呢?

    单片机io一般包含哪几种状态

    ) : 当IO口处于输入状态时,它可以接收外部信号,并将这些信号传递给单片机的内部电路进行处理。这种状态下,IO口主要用于读取外部传感器信号
    的头像 发表于 09-14 14:35 685次阅读