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

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

3天内不再提示

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

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-05-19 14:19 次阅读

“ModuleStates”指令可用来读取 PROFINET IO 设备或 PROFIBUS DP 从站的模块状态信息

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

此信息的显示还依赖于要读取的状态信息是否适用于至少一个模块。

可在循环 OB 以及中断 OB(例如,OB82 - 诊断中断)中调用此指令。

LADDR Input HW_DEVICE 站的硬件标识符
MODE Input UINT 选择要读取的模块状态信息
RET_VAL Return INT 指令的状态
STATE InOut VARIANT 模块状态缓冲区

参数 LADDR

使用 LADDR 参数通过站硬件标识符选择 IO 设备或 DP 从站。

硬件标识符位于:

IO 设备站或 DP 从站属性的网络视图中。

或数据类型为 HW_DEVICE(对于 IO 设备)或 HW_DPSLAVE(对于 DP 从站)的所列系统常量的 PLC 变量表中。

参数 MODE

使用 MODE 参数可读取状态信息。可读取模块的下列一条状态信息:

1:模块已组态

2:模块故障

3:模块禁用

4:模块存在

5:模块中存在故障。例如:

维护要求或建议

不可访问

不可用

出现错误

参数 STATE

STATE 参数输出使用 MODE 参数选择的模块状态。

如果使用 MODE 选择的状态适用于某个模块,那么下列位将设置为“1”:

位 0 = 1:组显示。至少一个模块的第 n 位设置为“1”。

位 n = 1:使用 MODE 选择的状态将应用到插槽 n-1(例如:位 3 对应插槽 2)中的模块。

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

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

要输出所有模块的状态信息,请使用长度为 128 位的 Array of BOOL。

示例:

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

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

1ba0d544-f608-11ed-90ce-dac502259ad0.png

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

1bb7602a-f608-11ed-90ce-dac502259ad0.png

在“PLC_13”CPU 中:使用 CPU 属性将此 CPU“PLC_13”设为 IO 设备。

1bb7602a-f608-11ed-90ce-dac502259ad0.png

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

1bf4bcb8-f608-11ed-90ce-dac502259ad0.png

在“PLC_14”CPU 中:模块位于 IO 设备的插槽 1 中。

1bf4bcb8-f608-11ed-90ce-dac502259ad0.png

在“PLC_14”CPU 中:通过参数 LADDR(“myLADDR”)使“ModuleStates”指令了解 IO 设备的硬件标识符。根据参数 MODE(“myMODE”)的值“4”,在 IO 设备中搜索模块。

在参数 STATE(“mySTATE”)中,输出模块备是否存在(基于参数 MODE )的值。位 0 作为组值,指示模块存在。位 2 指示插槽 1 中存在模块。

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

1c3eb5b6-f608-11ed-90ce-dac502259ad0.png

示例

在一个 IO 设备中包含 4 个模块,分别位于插槽 1 到 4 中。其中,插槽 2 中的模块故障。

对于 MODE = 2(故障/无故障)的 IO 设备,执行“ModuleStates”指令。

在 STATE 参数中设置了下列位:

位 0 = 1:至少有一个模块发生了故障。

位 1 = 0:插槽编号 0(由 IO 设备使用)

位 2 = 0:插槽编号 1 中的模块未发生故障。

位 3 = 1:插槽编号 2 中的模块发生了故障。

位 4 = 0:插槽编号 3 中的模块未发生故障。

位 5 = 0:插槽编号 4 中的模块未发生故障。

位 6 = 0:不相关

位 7 = 0:不相关

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

    关注

    7

    文章

    2485

    浏览量

    46539
  • 硬件
    +关注

    关注

    11

    文章

    2922

    浏览量

    64817
  • Profinet
    +关注

    关注

    5

    文章

    791

    浏览量

    23000

原文标题:博途S7- 1500ModuleStates: 读取模块的模块状态信息

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

收藏 人收藏

    评论

    相关推荐

    profinet远程分布式IO模块国产型与西门子1200通讯方法

    profinet远程分布式IO模块JM9000同时还可以采用无线控制解决许多严酷的环境、成本问题。 PROFINET网络和外部设备的通讯是
    的头像 发表于 02-26 09:51 3584次阅读
    <b class='flag-5'>profinet</b>远程分布式<b class='flag-5'>IO</b><b class='flag-5'>模块</b>国产型与西门子1200通讯方法

    支持掉线自动报警Profinet远程分布式IO模块分享

    华杰智控Profinet远程分布式IO模块不但支持IO, 同时还支持把modbus RTU的终端设备如变频器,温控表,电表等等转成
    发表于 07-02 06:49

    Profinet分步式IO模块的特点

    profinet转Modubs分布式远程IO模块如今已应用在众多领域之中,华杰智控实现profinet远程io
    发表于 05-28 14:57 2217次阅读

    在线为PROFINET IO设备分配名称

    在“设备和网络”(Devices & networks) 编辑器中,右键单击所需的 PROFINET IO 设备,并选择“在线和诊断”(Online & diagnostics)。
    的头像 发表于 03-02 11:10 7567次阅读

    使用Get_Name指令读取PROFINET IO设备名称

    “Get_Name”指令读取 PROFINET IO 设备、PROFIBUS 从站或 AS-i slave 的名称。设备名称将显示在网络视图
    的头像 发表于 03-23 15:04 2788次阅读

    配置PROFINET IO设备

    在配置PROFINET IO控制器之前,需要先配置PROFINET IO设备。本文使用S7-400集成PN口作为
    的头像 发表于 07-31 11:32 2090次阅读

    MELSEC iQ R PROFINET IO控制器模块用户手册(应用篇)

    MELSEC iQ-R PROFINET IO控制器模块用户手册(应用篇) 产品规格书
    发表于 08-26 14:33 0次下载
    MELSEC iQ R <b class='flag-5'>PROFINET</b> <b class='flag-5'>IO</b>控制器<b class='flag-5'>模块</b>用户手册(应用篇)

    MELSEC iQ R PROFINET IO设备模块用户手册(入门篇)

    MELSEC iQ-R PROFINET IO设备模块用户手册(入门篇) 产品规格书
    发表于 09-01 09:29 1次下载
    MELSEC iQ R <b class='flag-5'>PROFINET</b> <b class='flag-5'>IO</b><b class='flag-5'>设备</b><b class='flag-5'>模块</b>用户手册(入门篇)

    PROFINET IO中的诊断机制分析

    PROFINET IO 支持您使用一致性诊断概念。PROFINET 以三种不同的方法提供有关系统错误和中断状态IO 诊断
    的头像 发表于 11-23 09:50 994次阅读

    怎样将IO设备分配给IO控制器?

    PROFINET IO 系统由一个 PROFINET IO 控制器和其分配的 PROFINET IO
    的头像 发表于 12-21 09:57 2439次阅读

    配置PROFINET IO设备

    在配置PROFINET IO控制器之前,需要先配置PROFINET IO设备。本文使用S7-400集成PN口作为
    的头像 发表于 12-28 09:13 999次阅读

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

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

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

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

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

    指令“DeviceStates”用于查询 IO 系统中所有模块的特定状态信息
    的头像 发表于 05-16 09:24 3737次阅读
    DeviceStates<b class='flag-5'>读取</b><b class='flag-5'>IO</b>系统的<b class='flag-5'>模块状态</b><b class='flag-5'>信息</b>

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

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