[摘要]:本文介绍了
PLC 的故障诊断方式OB8x,并介绍如何使用OB8x来诊断PLC 和
PROFINET网络系统,讲述了相关的方法和编程方式。帮助用户了解OB8x诊断机制,能够
简单编程,迅速获取和认知故障,尽快解决现场问题为目的。入门相关文档请参考网上下载
中心的链接http://www2.ad .
Siemens.com.cn/download/Uploa d/AS/applic ation/A0059.zip ,
该文档对OB的参数以及诊断PLC 和
Profibus网络做了详细的描述。这里则不再进行描
述,仅对Profinet设备和网络所增加的一些新特性和新特点,结合OB8x诊断进行描述。
[关键词]:
PLC 诊断,故障,维护,OB82,OB83,OB86,PROFINET
例子程序如下:
A(
L #OB86_EV_CLASS
L B#16#39 //incoming event
==I
)
A(
L #OB86_FLT_ID
L W#16#CB //PROFINET IO station failure/station return
==I
)
A(
L B#16#C4
L #OB86_RESERVE D_1 //confirm again
)
JCN ne xt
L LD 8
L 2#111111 111 11
AW
T MW 140 //determine the devic e number
L MD 10 //set a fla g varia ble with initial value 16#1
SLD //shift to left with bits number of MW140
T MD 14
L DB1. DBD 0
OD
T DB1 . DBD 0 / / calcul ate device number into bit
L B#16#1
T MD 10 //set a fla g varia ble with initial value 16#1
next: NOP 0
通过上述简单的程序实例,得出机架故障的分布式IO的设备号Device number,确
定拿一个设备连接断开。当某一设备发生机架故障来Inco ming事件时,得出该设备号码。
但是如果IO设备串联在一起,前面的设备丢站导致后面的设备也丢失,简单编程获取站号
只有会有一个站的信息,无法表示多个设备掉站。通过编程使用左移指令左移位bit的方
式,但是需要给MD10 设置初始值16#1,目的就是保证末位为1,这样偏移后可以知道该位
1 的移动位置,然后通过站号存储地址DB1.DBD0 进行“或”运算,这样DB1.DBD0 相应的
位就置1,从而当多个设备掉站DB1.DBD0 相应的位会置1。例如DB1.DBD0 低字节为
2#00000 110 时,表示设备号1(bit1 )和2(Bit2 )掉站,Bit0 位0 保持不变。这样最多可
以获取63个设备掉站信息(63 设备编号需要<64), 对于一般应用是足够的。最后还要给
MD10 设置初始值,以保证最后一位Bit0 为1。这些Bit变量可以编写在WinCC/Wi nCC
flexible 中进行显示,方便用户维护现场故障。
