如何在 STEP 7 V5 . x 的 CPU 的用户程序中读取 MRP 环网的状态?

有两种方式在 CPU 的用户程序中读取 MRP 环网状态。

1.使用系统功能块 SFB52“RDREC” 从冗余管理者中读取数据记录 8050(MrpInstanceDataReal)。

2.使用诊断 OB OB82

用系统功能块 SFB52“RDREC” 读出数据记录 8050
在 CPU 的用户程序中调用系统函数块 SFB52“RDREC” 读取冗余管理者的 MRP 环网数据记录 8050 并确定 MRP 环网的状态。
一个用 SCALANCE X208 作为冗余管理者的例子。

图1 显示了系统的调用功能块 SFB52“RDREC”。

如何在 STEP 7 V5 . x 的 CPU 的用户程序中读取 MRP 环网的状态?
图1
本例中最读取的最大数据记录长度是200字节

如何在 STEP 7 V5 . x 的 CPU 的用户程序中读取 MRP 环网的状态?
图2

PROFINET产品的逻辑地址存储在一个DWORD数据类型的变量中

如何在 STEP 7 V5 . x 的 CPU 的用户程序中读取 MRP 环网的状态?
图3

图4显示了调用系统功能块 SFB52 "RDREC".

如何在 STEP 7 V5 . x 的 CPU 的用户程序中读取 MRP 环网的状态?
图4

系统功能块 SFB52“RDREC” 的输入参数。

输入参数 数据类型 描述
REQ BOOL REQ = 1: 传送数据记录。
ID DWORD

PROFINET IO组件的逻辑地址

注意
指定冗余管理的诊断地址。 这可以在硬件组态中找到(见图2)。

INDEX INT 数据记录号
RECORD ANY 读取数据记录的目标区域。

表1

系统功能块 SFB52“RDREC” 的输出参数。

输出参数 数据记录 描述
VALID BOOL 新数据记录已被接收且有效。
BUSY BOOL BUSY = 1: 读操作尚未结束。
ERROR BOOL ERROR = 1: 发生读错误。
STATUS DWORD 块状态和错误信息
LEN INT 所获取数据记录信息的长度

表2

确定 SCALANCEX208(冗余管理者)的 诊断地址,在硬件配置标记 SCALANCE X208。SCALANCE X208 的诊断地址在槽 0 的 “诊断地址”列中。在本例中,SFB52 “RDREC” 的输入参数 ID 指定为诊断地址 2042(十进制)=0x7FA(十六进制)。
如何在 STEP 7 V5 . x 的 CPU 的用户程序中读取 MRP 环网的状态?
图5

读取数据记目标区域的结构

表3 显示了读取数据记录目标区域的结构指定的记录 SFB52 “RDREC” 指令的输入参数。

Byte Array[0..199] of Byte
Byte 0 and 1 块类型
Byte 2 and 3 块长度
Byte 4 块版本的高字节
Byte 5 块版本的低字节
Byte 6 to 199

数据:

  • MRP 域
  • 介质冗余角色
  • MRP 版本
  • MRP 域名称长度
  • MRP 域名称
  • 冗余管理或客户端的参数
  • MRP 环网状态 (MRP_RingState)

表3

读取数据记录的 MRP_RingState字节显示了 MRP 环网的当前状态。

  • 字节 MRP_RingState = 1:环网关闭,换句话说,冗余管理者是未激活的,只有一个环网端口将转发环网消息。

  • 字节 MRP_RingState = 0:环网打开,换句话说,冗余管理者是激活的,两个环网端口转发环网消息。

注意
MRP_RingState字节的地址是变化的,例如 MRP domain的名称长度在每个 MRP环中是不同的。本例中,MRP domain的名称长度是11个字节。MRP_RingState字节总是数据记录的最后一个字节。系统功能块 SFB52 "RDREC"的LEN输出参数制定了读出的数据记录的长度。本例中数据记录的长度是68个字节。这意味着 MRP 环网的当前状态 (MRP_RingState)存储在第68个字节。

诊断 OB OB82
如果冗余管理者是 PROFINET IO 网络的一个节点,也可以在 CPU 的用户程序中使用诊断 OB OB82 读取MRP环网的状态。对于这个需要使能冗余管理者的诊断报警。

在 SCALANCE X208(冗余管理者)中使能诊断报警需要进入硬件配置和打开 SCALANCE X208PROFINET 接口的属性。在 “介质冗余” 选项卡中启用 “诊断报警”功能。

如何在 STEP 7 V5 . x 的 CPU 的用户程序中读取 MRP 环网的状态?
图6

CPU 启用函数 “OB 82 / IOFaultTask - 通讯中断时调用”。对于这个需要进入硬件配置和打开的 CPU PROFINET 的属性界面。在 “PROFINET” 选项卡启用函数 “OB 82 / IOFaultTask - 通讯中断时调用”。
如何在 STEP 7 V5 . x 的 CPU 的用户程序中读取 MRP 环网的状态?
图7

现在 OB82 当环网打开(进入的事件)和当环网关闭(离开的事件)时被调用。

在 STEP 7 V5.xOB82 中使用 “OB82_MDL_ADDR”参数可以读取设备报告错误的基本逻辑地址。“OB82_EV_CLASS”参数报告是否是一个离开事件(B # 16 # 38)或者进入事件(B # 16 # 39)。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc321908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论