找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4144|回复: 12

S7-300/400PLC编程Profibus DP总线诊断方法

 火.. [复制链接]
  • 打卡等级:常驻代表
  • 打卡总天数:34
  • 打卡月天数:6
  • 打卡总奖励:9027
  • 最近打卡:2025-12-17 23:15:51

2823

主题

541

回帖

2万

积分

管理员

积分
22569
发表于 2020-10-16 21:19:59 | 显示全部楼层 |阅读模式
在西门子自动化系统中Profibus DP总线的使用非常广泛,在使用的过程中如何对正在运行的总线设备进行诊断,故障检测,是很有必要的事情,今天老鬼就把这些问题做简要的总结,希望学习完成后大家能够完成对DP总线的诊断和监控。

应用PROFIBUS-DP和SIMATIC S7诊断评估远程组态时,用户程序可以使用两个不同的S7功能块。

如果除了诊断概要外还需要有关总线节点上错误和故障的详细信息,请使用功能块FB125。

功能块FC125是一个简化版本,它只提供有关“哪些总线节点上发生故障或者错误”的信息(诊断概要)。该功能块不能显示详细的信息。
一、FB125和FC125的应用领域
FB125和FC125可用于下列集成的DP接口和外部DP接口:
CPU 313C-2 DP
CPU 314C-2 DP
CPU 315-2 DP(从6ES7 315-2AF02-0AB0起)
CPU 315-2 DP(仅适用于6ES7 315-2AF01-0AB0):
不能使用FC125
FB125不能通过Start/RESET检测到有故障的从站
CPU 316-2 DP
CPU 318-2 DP
C7-626 DP(从6ES7 626-2AG01-0AE3起)
C7-633 DP和C7-634 DP
SINUMERIK 840D带有集成的CPU315-2 DP(6ES7 315-2AF01-0AB0):
不能使用FC125
FB125不能通过Start/RESET检测到有故障的从站
SINUMERIK 840DI,带有集成的CPU315-2 DP(6ES7 315-2AF03-0AB0)
CPU 41x-2/3/4 DP
CP 443-5
IM 467和IM 467 FO
WIN AC
WIN LC
不适用于CP 342-5
二、硬件配置实例
以下面的硬件配置为实例来介绍如何调用FC125【FC_Siemens_DP_Diag】来完成对Profibus总线的诊断。


三、FC125“FC_Siemens_DP_Diag”接口简介


接口参数说明
CHECK_ACTIVE :
为1时开始检测从站。
EXTERNAL_DP_INTERFACE :
选择DP 主站的接口,0 表示集成在CPU 上的DP 主站,1 表示外部DP 主站接口,如CP443-5 等。
DP_MASTERSYSTEM :
PROFIBUS 的ID 号,在硬件组态中可以查看到PROFIBUS的ID 号。有几条PROFIBUS网络,就要调用FC125 几次,分别赋值它们的PROFIBUS ID 号,数据类型为INT。
DATA_FIELD :
50 个字节的数据区,仅供FC125 内部使用,数据类型为POINTER。
SUM_SLAVES_DIAG :
从站诊断的总数,数据类型为INT。
LIST_SLAVES_NOT_PRESENT:
检查到丢失的从站(软件已经组态但是现场没有连接硬件),16个字节的数据区,每一个数据位对应一个从站,置1 表示一个从站丢失,如果丢失的从站返
回或维修好,相对应的位复位。数据类型为POINTER。
LIST_SLAVES_ERROR :
故障的从站(部分模块有故障,其他模块可以连续运行),16 个字节的数据区,每一个数据位对应一个从站,置1 表示一个从站故障,如果故障的从站返回或
维修好,相对应的位复位。数据类型为POINTER。
RETVAL :
调用FC125 时的状态返回值,数据类型为INT。
BUSY :
为1表示当前正在执行。
四、建立DB125数据块,保存FC125运行数据,如下:


五、在OB1中插入FC125按照下图进行接口参数赋值。
【注意:当CHECK_ACTIVE,m0.0=1时诊断功能使能】


六、如何读取诊断信息?


经过上面的程序处理,可以得到两个数据区 LIST_SLAVES_NOT_PRESENT 和LIST_SLAVES_ERROR。这两个参数,每个都具有16字节的数据。这16个字节的每个位,就代表一个DP从站设备。它可以表示16×8=128个站点。

某个位被置1,就表示该位代表的从站丢失或故障;但从站故障消失,该位会自动复位为0。对于DP网络1来说,它具有的4个从站,其诊断位

在"GLOBAL_DIAG_DB".DP_SLAVE1.LIST_SLAVES_NOT_PRESENT
或者"GLOBAL_DIAG_DB".DP_SLAVE1.LIST_SLAVES_ERROR数据区的1-4位,而DP网络2,其具有的3个从站,在"GLOBAL_DIAG_DB".DP_SLAVE2.LIST_SLAVES_NOT_PRESENT
或者"GLOBAL_DIAG_DB".DP_SLAVE2.LIST_SLAVES_ERROR数据区的1-3位。

下面的问题是,如何从从诊断数据集中取出对应从站的诊断位信息。
有很多方法,最直接的方法是,直接在DB中找到这些位的绝对地址,如DP网络1的第2个从站,其丢失诊断位的绝对地址是:DB100.DBX52.1,故障诊断位的绝对地址是:DB100.DBX68.1。
这种方法简单直接,但不利于程序移植。间接的办法是,将诊断数据集中诊断位,右移到双字的最右端,也就是双字的最低位,再与DW#16#1常数进行异或非运算,如结果=1,则被移动的诊断位代表的从站就存在丢失或者故障。具体使用哪种方法来取得诊断位的确切信息,取决于具体编程人员的习惯。重要的是,当取得了从站的诊断位信息,如何利用诊断位来控制流程。

工控课堂 www.gkket.com

0

主题

176

回帖

443

积分

注册会员

积分
443
发表于 2020-10-16 21:20:03 | 显示全部楼层
真是难得给力的帖子啊。
工控课堂 www.gkket.com

9

主题

429

回帖

2537

积分

高级会员

积分
2537
发表于 2020-10-16 21:24:29 | 显示全部楼层
感恩无私的分享与奉献
工控课堂 www.gkket.com

0

主题

91

回帖

138

积分

新手上路

积分
138
发表于 2025-11-15 10:07:00 | 显示全部楼层
来凑个热闹,为楼主增加点人气!
工控课堂 www.gkket.com

0

主题

85

回帖

134

积分

新手上路

积分
134
发表于 2025-11-15 10:37:57 | 显示全部楼层
浅蹲一个后续,楼主更新踢我一下
工控课堂 www.gkket.com

0

主题

89

回帖

140

积分

新手上路

积分
140
发表于 2025-11-15 11:49:36 | 显示全部楼层
被戳中笑点 / 泪点,太真实了!
工控课堂 www.gkket.com

0

主题

121

回帖

347

积分

注册会员

积分
347
发表于 2025-11-15 17:35:36 | 显示全部楼层
水贴也要有仪式感,我先来打卡~
工控课堂 www.gkket.com

0

主题

69

回帖

92

积分

新手上路

积分
92
发表于 2025-11-16 00:06:46 | 显示全部楼层
路过混个脸熟,顺便为优质内容打 call~
工控课堂 www.gkket.com

0

主题

107

回帖

413

积分

注册会员

积分
413
发表于 2025-11-16 00:12:02 | 显示全部楼层
楼主辛苦啦,期待下一篇分享!
工控课堂 www.gkket.com

0

主题

77

回帖

119

积分

新手上路

积分
119
发表于 2025-11-16 00:12:31 | 显示全部楼层
楼主辛苦啦,期待下一篇分享
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 19:54 , Processed in 0.087419 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表