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

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

3天内不再提示

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

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-07-24 15:57 次阅读

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

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

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

83117fa4-29f6-11ee-a368-dac502259ad0.png

图01 在用户程序(OB1)中,使用 SFC51 "RDSYSST" 读出 CPU 的系统状态列表。

REQ INPUT‍ BOOL 启动处理
SSL_ID INPUT WORD 将要读取的系统状态列表或部分列表的SSL-ID。
INDEX INPUT WORD 对象类型和编号
RET_VAL OUTPUT INT 如果执行SFC时出错,则RET_VAL参数将包含错误代码。
BUSY OUTPUT BOOL TRUE:尚未完成读取
SSL_HEADER OUTPUT STRUCT SSL_HEADER SSL_HEADER参数是一个如下定义的结构: SSL_HEADER: STRUCT LENTHDR:WORD N_DR:WORD END_STRUCT LENTHDR是SSL列表或SSL部分列表的数据记录的长度。 如果仅读取了SSL列表的标题信息,则N_DR包含属于它的数据记录数。 否则,N_DR包含传送到目标区域的数据记录数。
DR OUTPUT ANY SSL列表读取或SSL部分列表读取的目标区域:?如果仅读取了SSL列表的标题信息,则不能评估DR的值,而只能评估SSL_HEADER的值。?否则,LENTHDR和N_DR的乘积将指示已在DR中输入了多少字节。

参数 SZL_HEADER

参数 SZL_HEADER 具有以下结构:

SZL_HEADER: STRUCT
LENTHDR: WORD
N_DR: WORD
END_STRUCT

LENTHDR 是 SZL 部分列表或 SZL 部分列表摘录的数据记录长度。

如果仅读取了 SZL 部分列表的标头信息,则 N_DR 包含属于它的数据记录数。

否则,N_DR 包含传输到目标区域的数据记录数。

调用 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" 的例子参数

8333747e-29f6-11ee-a368-dac502259ad0.png

图02

8344173e-29f6-11ee-a368-dac502259ad0.png

图03 输入 SSL_ID=694(HEX) 以确定 DP 主站系统或者 PROFINET IO 系统连接到 PN/DP CPU 站点的状态。

指定所读出的系统状态列表数据(诊断数据)的存储区域,诊断数据区大小为 258 字节。

SSL-ID为W#16#0x94的部分列表包含有关中央组态中的模块机架及PROFIBUS DP主站系统/PROFINET IO控制系统的站的期望组态和实际组态的信息。

SSL-ID 部分列表摘录的SSL-ID:?W#16#0094: IO控制器系统的中央机架/站中的机架的期望状态(状态位 = 1:机架/站已组态)?W#16#0194: 已组态并已取消激活的IO控制器系统的站的激活状态(状态位 = 1)?W#16#0294: IO控制器系统的中央机架/站中的机架的实际状态(状态位 = 1:机架/站存在,处于激活状态并且未出现故障)?W#16#0694: IO控制器系统的中央机架/站中的扩展单元的诊断状态(状态位 = 1:机架/站中至少有一个模块出现故障或被取消激活) ?W#16#0794: IO控制器系统的中央机架/站的诊断/维护状态(状态位 = 0:无故障,无维护要求;状态位 = 1:机架/站有问题,和/或有维护要求或维护请求)?W#16#0F94: 仅限报头信息
INDEX 0: 中央模块 1-32:PROFIBUS DP上的分布式模块 100-115:PROFINET IO上的分布式模块
LENTHDR 下列数据记录的长度
N_DR 下列数据记录的长度

表 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" 的例子参数

835c8260-29f6-11ee-a368-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





审核编辑:刘清

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

    关注

    5011

    文章

    13290

    浏览量

    463257
  • 西门子
    +关注

    关注

    94

    文章

    3039

    浏览量

    115847
  • LED指示灯
    +关注

    关注

    2

    文章

    94

    浏览量

    12658
  • 以太网接口
    +关注

    关注

    0

    文章

    147

    浏览量

    17101
  • SFC
    SFC
    +关注

    关注

    0

    文章

    44

    浏览量

    11292

原文标题:西门子PLC: 如何读取DP或PN总线上各站点的状态?V7.22

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

收藏 人收藏

    评论

    相关推荐

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

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

    如何使用XMC4700在变量中读取LIN总线上的可用数据?

    如何使用 XMC4700 在变量中读取 LIN 总线上的可用数据
    发表于 07-23 07:51

    MPI和PROFIBUS-DP的区别

    RS-485中继器扩展。MPI允许主-主通信和主-从通信。PROFIBUS-DP允许构成单主站多主站系统。在同一总线上最多可连接126个站点。系统配置的描述包括:站数、站地址、输入/
    发表于 06-17 05:00

    清徐回收西门子CPU317-2PN/DP 西门子CPU319-3PN/DP变频器,驱动器模块

    自动化结构中。例如,用于生产线上的集中控制器具有高速处理的机床控制器。 第1个内置 DP 接口可以最多同时建立 32 个与 S7-300/400 或与 PG、PC、OP 的连接。在这些连接中,始终分别为 PG 和 OP
    发表于 07-29 16:14

    PN5190读取数据报错的原因?

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

    基于PROFIBUS―DP总线的Danfoss变频器应用

    PROFIBUS―DP总线在现代烟草制丝生产线中有着越来越广泛的应用,如何正确使用好带DP口的I/O设备显得尤其重要!本文较详细地讲述了基于PROFIBUS―DP
    发表于 08-17 10:42 76次下载

    PROFIBUS-DP现场总线中时间性能分析

    PROFIBUS是现场总线技术的国际标准之一。本文在简要介绍PROFIBUS-DP令牌总线协议的基础上,深入分析了影响总线数据交换、令牌传递、系统
    发表于 12-08 14:02 21次下载

    PROFIBUS-DP现场总线中时间性能分析

    PROFIBUS是现场总线技术的国际标准之一。本文在简要介绍PROFIBUS-DP令牌总线协议的基础上,深入分析了影响总线数据交换、令牌传递、系统
    发表于 02-21 10:18 0次下载

    PROFIBUS–DP与PROFIBUS-PA总线的区别解析

    ,PROFIBUS-DP还提供智能化设备所需的非周期性通信以进行组态.诊断和报警处理。 ①传输技术:RS-485双绞线.双线电缆光缆。波特率从9.6K bit/s到12M bit/s。 ②总线存取:
    发表于 01-25 16:50 1.7w次阅读
    PROFIBUS–<b class='flag-5'>DP</b>与PROFIBUS-PA<b class='flag-5'>总线</b>的区别解析

    基于总线和组态软件WINCC实现水力机组状态监测系统的设计

    系统行为主要取决于DMPl的操作状态,这些状态由本地总线的配置设备所控制,主要有以下三种状态。运行:输入和输出数据的循环传送,DPM l由
    发表于 04-03 09:34 1185次阅读
    基于<b class='flag-5'>总线</b>和组态软件WINCC实现水力机组<b class='flag-5'>状态</b>监测系统的设计

    读取DPPN总线上站点状态的方法

    可以使用 SFC51 'RDSYSST' 读出 SSL 部分列表SSL 部分列表的摘录。下面的配置在文中所附的例程中创建。下
    的头像 发表于 09-05 11:41 2527次阅读

    怎样去读取DPPN总线上站点状态呢?

    在用户程序(OB1)中,使用 SFC51 "RDSYSST" 读出 CPU 的系统状态列表。
    的头像 发表于 01-08 09:34 1318次阅读

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

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

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

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

    Profibus DP转Modbus TCP总线协议网关

    和Profibus DP总线上的主站设备进行数据交换。该网关在Profibus DP总线侧工作在从站模式,在Modbus TCP总线侧可工作
    的头像 发表于 09-12 11:02 286次阅读
    Profibus <b class='flag-5'>DP</b>转Modbus TCP<b class='flag-5'>总线</b>协议网关