完整版应用OB86诊断站故障.docx
《完整版应用OB86诊断站故障.docx》由会员分享,可在线阅读,更多相关《完整版应用OB86诊断站故障.docx(11页珍藏版)》请在冰豆网上搜索。
![完整版应用OB86诊断站故障.docx](https://file1.bdocx.com/fileroot1/2022-12/11/564dae9c-b8c8-40d6-9931-d426d2b136da/564dae9c-b8c8-40d6-9931-d426d2b136da1.gif)
完整版应用OB86诊断站故障
应用OB86诊断站故障
一、组态
1.组态主站CPU412-DP
2.组态从站
注:
从站ET200M和ET200S需要从ProfibusDP—DPV0中拖出来。
并按照从站上拨码的数值设置PROFIBUS地址
二、调用OB86,并编程把OB86的临时变量存入DB86,以便进行故障分析
在OB86中编写程序如下
注:
OB86中的TEMP变量存在临时堆栈,故调用时可以在符号名前加#或者直接用L0.0LB0这样的表示
三、在DB86中读取故障信息并进行分析
1.从站掉电
故障离去
2.拔掉从站ET200S中一个模块
ET200S的指示灯:
BF红灯常亮
CPU的指示灯:
SF红灯常亮,BF闪烁
故障离去
3.拔掉从站ET200S的PROFIBUS线
ET200S的指示灯:
BF红灯常亮
CPU的指示灯:
SF红灯常亮BF闪烁
故障离去
附录1:
PROFIBUS故障诊断小结
1、使用西门子BT200 485总线测试仪测试PROFIBUS
BT200是一种对RS485物理层进行测试的检测工具,它不仅可测试电缆的情况,还可以测量从站的站地址。
BT200分为普通和专家两种测试模式,在普通模式下可检测出站点连接中断、接线反相、短路、AB相或屏蔽层断路、没有或多于2个终端电阻等信息;专家模式还可进行RS485接口测试、路径测试、网络距离测量和信号反射测试等功能。
站点测试:
将BT200连接到已通电的从站上,对于一个从站的RS485接口,可检测出485接口的好坏,还能测量实际总线电平(标准为5V)。
路径测量:
BT200可跨越中继器或光纤对整个网络进行测试,还可测出总线上的正常工作的从站数量和站地址。
距离测量:
BT200可测出PROFIBUS电缆的实际长度(测量误差0.5米,电缆较短时不能准确测量)。
2、使用带诊断功能的总线中继器对PROFIBUS网络进行在线诊断
诊断中继器用于在系统正常工作时进行线路诊断。
它作为一个RS485中继器集成在PROFIBUSDP网络中,并且具有线路诊断的强大功能。
诊断中继器可以检测出A或者B断线、信号线和屏蔽层之间发生短路、缺少总线终端电阻等电缆故障。
在STEP7中,可以使用COMPROFIBUS或者GSD文件将诊断中继器组态为一个标准从站。
3、用西门子STEP7软件进行网络诊断
在STEP7中的“HWconfig”中,使用菜单项“PLC-故障模块”在线打开可访问站的组态信息。
4、通过编程诊断PROFIBUS故障
▪调用SFC51;SFC58;SFC59;SFC13触发调用
▪调用OB82;OB83;OB86诊断中断,实时调用
▪调用FC125或FB125收费;功能强大
对于分布式I/O,如果机架、子网或者站发生故障被PLC识别后,CPU(CPU315-2DP或S7-400)操作系统会调用OB86机架故障处理组织块,并且这些事件的发生和离去都会触发调用。
在OB86中编程可识别PROFIBUS总线是否发生故障,并可编程对产生的不同故障分类处理。
通过调用SFC13系统功能(读出从站诊断信息)诊断PROFIBUS,在OB1中调SFC13系统功能,可将从站诊断信息存入一个DB数据块中进行分析,识别故障从站地址。
CALLSFC13
REQ:
=TRUE/读请求
LADDR:
=W#16#3FE /从站诊断地址
RET_VAL:
=MW0/SFC13的输出参数
RECORD:
=P#db100.DBX0.0BYTE64/诊断数据目的数据块
BUSY:
=M2.0/SFC13运行状态
通过调用功能块FB125和功能FC125PROFIBUS-DP诊断块诊断PROFIBUS网络,功能块FB125不仅可诊断出哪个从站发生了错误和故障,还可检测有关从站错误或者故障的详细信息。
调用功能块FB125(包括相同的背景数据块编号和实际的用户操作数)必须在OB1、OB82和OB86中执行。
功能FC125是一个简化版本,只能给出“哪一个从站发生了错误或者故障”的信息。
使用该功能无法显示更详细信息。
功能FC125在组织块OB1调用。
附录2:
机架故障组织块(OB86)
---来源于焦工给的中文资料《SFB/SFC手册(S7-300/S7-400标准功能参考手册》
只要在分布式I/O(PROFIBUSDP或PROFInetIO)中检测到中央扩展机架
(不带S7-300)、DP主站系统或站故障(进入事件与离开事件时),CPU的操作
系统调用OB86。
如果OB86尚未编程,当检测到此种类型的出错时,CPU将转为STOP模式。
可使用SFC39至42禁用或延迟,并重新启用OB86。
机架故障OB的本地数据
下表说明了机架故障OB的临时(TEMP)变量。
变量名为OB86的缺省名称。
如果要对依赖于可能错误代码的OB86进行编程,建议按如下方式组织局部变量:
下表给出了启动OB86的事件:
附录2:
插入/删除模块中断组织块(OB83)
在下列情况下,CPU操作系统会调用OB83:
•插入/删除已组态模块后
•在STEP7下修改模块参数以及在运行期间将更改下载至CPU后
可借助SFC39至42禁用/延迟/启用插入/删除中断OB。
模块插入和删除
每次在RUN、STOP和STARTUP模式期间删除或插入已组态模块时,都会生成插入/
删除中断(在这些模式下一定不能删除电源模块、CPU、适配器模块以及IM)。
此中
断会导致在诊断缓冲区和所涉及CPU的系统状态列表中生成一个条目。
如果CPU处
于RUN模式,则还会启动插入/删除OB。
如果此OB尚未编程,CPU将转为STOP模
式。
随后,系统会以数秒钟的时间间隔来轮询S7-400模块以检测插入或删除。
为使CPU
能够检测到S7-400模块的删除和插入,在删除和插入操作之间必须至少有2s的时间
间隔。
对于其它模块而言,此最短时间值会稍大一些。
如果在RUN模式下删除了已组态的模块,则启动OB83。
由于仅以1s为时间间隔来监
视模块的存在,因此当直接访问模块或更新过程映像时,可能会首先检测到访问错
误。
如果在RUN模式下将一个模块插入到已组态的插槽中,则操作系统将检查所插入模
块的类型是否与所记录的组态相符。
如果模块类型匹配,则启动OB83并分配参数。
重新组态模块
当在运行(CiR)期间修改系统组态时,可为现有模块重新分配参数。
参数的这种重新
分配通过将所需参数数据记录传送至模块实现。
步骤如下:
1.在STEP7下已为模块分配了新参数,且在RUN模式中将此组态下载到
CPU时,将启动OB83(启动事件W#16#3367)。
相关的OB启动信息为逻辑
基址(OB83_MDL_ADDR)和模块类型(OB83_MDL_TYPE)。
从现在起,模块
I/O数据可能不正确,这就意味着没有任何SFC忙于将数据记录发送到此模块。
2.在执行OB83后将重新分配模块参数。
3.在分配参数后,将重新启动OB83(假如成功地分配参数,则启动事件
W#16#3267,如果失败,则启动事件W#16#3968)。
模块的I/O数据
响应与其在插入中断后的响应相同,也就是说,当前它们可能不正确。
现在可再次调用SFC以便将数据记录发送到模块。
OB83的本地数据
下表说明了插入/删除模块中断OB的临时(TEMP)变量。
变量名为OB83
的缺省名称