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

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

3天内不再提示

读取DP或PN总线上各站点状态的方法

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:微笑应对 2022-09-05 11:41 次阅读

如何读取DP或PN总线上各站点的状态?

可以使用 SFC51 'RDSYSST' 读出 SSL 部分列表或SSL 部分列表的摘录。

下面的配置在文中所附的例程中创建。

下面的配置在文中所附的例程中创建:

b4c0f648-2c21-11ed-ba43-dac502259ad0.png

图01

在用户程序(OB1)中,使用 SFC51 "RDSYSST" 读出 CPU 的系统状态列表。
调用 SFC51 "RDSYSST" 时,通过输入参数 SSL_ID 指定了用户想读取的系统状态列表。使用此方法可读出下列数据,例如:

模板标识。

模板 LED 指示灯状态。

DP 主站系统或 PROFINET I/O 系统中,已经连接上 CPU 集成的 DP 或 PN 口的站点状态。

所有有关 SSL_ID 的具体的可用信息请参看手册 :“用于 S7300/400系统和 标准功能的系统软件 卷1&2”

当调用 SFC51 "RDSYSST" 时,在输入参数INDEX,要以16进制格式指定 PROFIBUS DP 主站系统或者PROFINET IO 系统的编号,PROFIBUS DP 主站系统的编号或者PROFINET IO 系统的编号可以在硬件配置中找到(见图.01)。

SFC51 "RDSYSST" 的参数分配根据使用不同的 CPU 而不同:

CPU 有集成的 DP 和以太网接口

CPU 有集成的 DP 接口但是没有集成的以太网接口

在 PN/DP CPU 中调用 SFC51 "RDSYSST" 的例子参数

b4eb8480-2c21-11ed-ba43-dac502259ad0.png

图02

b4f9a1e6-2c21-11ed-ba43-dac502259ad0.png

图03

输入 SSL_ID=694(HEX) 以确定 DP 主站系统或者 PROFINET IO 系统连接到 PN/DP CPU 站点的状态。指定所读出的系统状态列表数据(诊断数据)的存储区域,诊断数据区大小为 258 字节。

表 01 为 258 字节长的诊断数据结构:

内容 长度 解释
index 1 word 0: 中央机架
1-31: 在 PROFIBUS DP 主站系统中的远程模块
100-115: 在 PROFINET IO 系统中的远程模块
status_0 BOOL 组信息
1: 下面状态位最少有一个值为 1
0: 下面所有状态位值为 0
status_1 BOOL 站 1 状态
1: 站 1 故障(仅对 694 有效)
status_2 BOOL 站2 状态
1: 站2 故障(仅对 694 有效)
...
status_2047 BOOL 站2047 状态
1: 站2047 故障(仅对 694 有效)

表 01

最大可以确定 2047 个站的状态。在诊断数据存储区域中每个站需要 1 bit。此外,需要另外 1 bit 作为组信息。就是说在诊断数据存储区域中,256 字节分配给每个站点的状态,2 字节为索引(关于 DP 主站系统或者 PROFINET IO 系统的信息)。

下面的例程中包含一个完整的 S7 站硬件组态,用户程序中有 SFC51 "RDSYSST" 的调用。

SSL_Status_PNDP.zip( 686 KB )

在没有集成以太网口的 CPU 中调用 SFC51 "RDSYSST" 的例子参数

b5079d3c-2c21-11ed-ba43-dac502259ad0.png

图04

输入 SSL_ID=292(HEX) 以确定连接到只有集成 DP 接口的 CPU 所带的 DP 主站系统中的站点状态。指定所读出的系统状态列表数据(诊断数据)的存储区域,诊断数据区大小为 16 字节。

表 02 为 16 字节长的诊断数据结构:

内容 长度 解释
status_0 1 byte Bit 0:基本单元 (INDEX=0) 或站 1
Bit 1:扩展设备或站 2
...
Bit 7: 扩展设备或站 8 ...
status_1 1 byte Bit 0: 扩展设备或站 9
Bit 1: 扩展设备或站 10
...
Bit 7: 扩展设备或站 16 ...
status_2 1 byte Bit 0: 扩展设备或站 17
Bit 1: 扩展设备或站 18
...
Bit 7: 扩展设备或站 24
status_3 1 byte Bit 0: 扩展设备或站 25
Bit 1: 扩展设备或站 26
...
Bit 6: S5 区域中的扩展设备或站 31
Bit 7: S5 区域中的扩展设备或站 32
...
status_15 1 byte Bit 0: S5 区域中的扩展设备或站 121
Bit 1: S5 区域中的扩展设备或站 122
...
Bit 7: S5 区域中的扩展设备或站 128



审核编辑:刘清

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

    关注

    68

    文章

    10456

    浏览量

    206614
  • LED指示灯
    +关注

    关注

    2

    文章

    91

    浏览量

    12260
  • 以太网接口
    +关注

    关注

    0

    文章

    136

    浏览量

    16884
  • DP接口
    +关注

    关注

    0

    文章

    22

    浏览量

    14159

原文标题:如何读取DP或PN总线上各站点的状态?

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

收藏 人收藏

    评论

    相关推荐

    如何通过I2C总线上的uProcessorFPGA与芯片通信?

    如何通过 I2C 总线上的 uProcessor FPGA 与芯片通信
    发表于 02-26 07:25

    说说IGBT中PN结的导通状态

    下面简要推导PN结导通状态下的电荷浓度分布以及电流、电压的关系。
    的头像 发表于 11-28 16:32 582次阅读
    说说IGBT中<b class='flag-5'>PN</b>结的导通<b class='flag-5'>状态</b>

    西门子博图GET_NAME读取IO设备或DP从站的名称

    “GET_NAME”指令用于读取 IO 设备或 DP 从站的名称。该名称将显示在网络视图和 IO 设备或 DP 从站的属性中。在以下截图中,以 IO 设备为例。
    的头像 发表于 11-15 12:29 1390次阅读
    西门子博图GET_NAME<b class='flag-5'>读取</b>IO设备或<b class='flag-5'>DP</b>从站的名称

    Profibus-DP在电路板自动清洗线上的应用

    电子发烧友网站提供《Profibus-DP在电路板自动清洗线上的应用.pdf》资料免费下载
    发表于 11-03 14:13 0次下载
    Profibus-<b class='flag-5'>DP</b>在电路板自动清洗<b class='flag-5'>线上</b>的应用

    采用单个ADC端口来读取多个按钮状态方法

    利用单片机的ADC端口,可以读取多个按钮的状态。在设计过程中,需要综合考虑到按扭的个数与读取的可靠性,特别是对选择电阻的阻值进行优化,使得不同分压数值之间相差最大。
    的头像 发表于 10-07 15:19 1495次阅读
    采用单个ADC端口来<b class='flag-5'>读取</b>多个按钮<b class='flag-5'>状态</b>的<b class='flag-5'>方法</b>

    通过SFC 51读取CPU的指示灯状态

    可以通过SFC 51读取CPU的指示灯状态,使用的SSL_ID参数为16#74(16#19)读取全部指示灯状态 或者16#174(16#119)读取
    的头像 发表于 07-24 16:34 877次阅读
    通过SFC 51<b class='flag-5'>读取</b>CPU的指示灯<b class='flag-5'>状态</b>

    如何读取DPPN总线上站点状态

    可以使用 SFC51 'RDSYSST' 读出 SSL 部分列表或SSL 部分列表的摘录。下面的配置在文中所附的例程中创建。下面的配置在文中所附的例程中创建
    的头像 发表于 07-24 15:57 1172次阅读
    如何<b class='flag-5'>读取</b><b class='flag-5'>DP</b>或<b class='flag-5'>PN</b><b class='flag-5'>总线上</b>各<b class='flag-5'>站点</b>的<b class='flag-5'>状态</b>?

    聊聊I2C总线上拉电阻

    I2C总线上拉电阻的选择以及作用,以及计算方法
    的头像 发表于 07-14 12:49 1909次阅读
    聊聊I2C<b class='flag-5'>总线上</b>拉电阻

    RS-485基础知识:处理空闲总线条件的两种常见方法

    在本文中,我将介绍处理空闲总线条件的两种常见方法,以便保证总线上的逻辑状态
    的头像 发表于 07-04 11:30 1661次阅读
    RS-485基础知识:处理空闲<b class='flag-5'>总线</b>条件的两种常见<b class='flag-5'>方法</b>

    用GPIO读取按钮状态

    树莓派的GPIO可以控制发光二极管,这是GPIO的Output(输出)能力,它也具有input(读取)的能力,所以才能叫做I/O(输入/输出)端口。今天我们就来用GPIO的引脚来读取按钮的状态
    的头像 发表于 07-02 15:06 920次阅读
    用GPIO<b class='flag-5'>读取</b>按钮<b class='flag-5'>状态</b>

    CAN总线错误分析与解决

    我们知道,CAN总线上的每个节点往总线上发送数据的同时,会读取总线上的数据,并与自己发送的数据作对比。
    发表于 06-07 09:32 1459次阅读
    CAN<b class='flag-5'>总线</b>错误分析与解决

    如何让用户可以键入命令来读取写入NFC TAG?

    nfc_example();显示 NFC TAG 信息。 ---------------------------------------------- ---------------------------------------------- ---------- 我要改;让用户可以键入命令来读取
    发表于 05-31 07:00

    博途系统变量-GET_NAME:读取IO设备或DP从站的名称

    GET_NAME”指令用于读取 IO 设备或 DP 从站的名称。该名称将显示在网络视图和 IO 设备或 DP 从站的属性中。在以下截图中,以 IO 设备为例。
    的头像 发表于 05-24 09:21 2456次阅读
    博途系统变量-GET_NAME:<b class='flag-5'>读取</b>IO设备或<b class='flag-5'>DP</b>从站的名称

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

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

    PN5190读取数据报错的原因?

    PN5190 就会唤醒并给出一个读取错误,因为它不再在现场。 它似乎在读取标签后立即得到校准。 我一直在玩这个选项 NXPBUILD__PHHAL_HW_PN5190_LPCD_C
    发表于 05-05 09:58