1.错误处理概述
S7-300/400有很强的故障检测和处理能力。这里所说的错误指的是PLC内部的功能性错误或编程错误,而不是外部设备的故障。CPU检测到错误后,操作系统调用对应的组织块,用户可以在组织块中编程,对发生的错误采取相应的措施。对于大多数错误,如果没有给组织块编程,出现错误时CPU将进入STOP模式。
系统程序可以检测出下列错误:不正确的CPU功能、系统程序执行中的错误、用户程序中的错误和I/O中的错误。根据错误类型的不同,CPU被设置为进入STOP模式或调用一个错误处理OB。
当CPU检测到错误时,会调用适当的故障处理组织块(见表6-11),如果没有相应的错误处理OB,CPU将进入STOP模式。用户可以在错误处理OB中编写如何处理这种错误的程序,以减小或消除错误的影响。为避免发生某种错误时CPU进入停机状态,可以在CPU中建立一个对应的空的组织块。
表6-11 错误处理组织块
2.错误的分类
被S7-CPU检测到,并且用户可以通过组织块对其进行处理的错误,可分为两个基本类型。
(1)异步错误
异步错误是与PLC的硬件或操作系统密切相关的错误,它们不会出现在用户程序的执行过程中。该类错误可能是优先级错误、PLC故障或冗余错误,后果较严重。异步错误OB具有最高等级的优先级,其他OB不能中断它们。同时有多个相同优先级的异步错误OB出现,将按出现的顺序处理。
(2)同步错误(OB121和OB122)
同步错误是与程序执行有关的错误,其OB的优先级与出现错误时被中断的块的优先级相同,即同步错误OB中的程序可以访问块被中断时累加器和状态寄存器中的内容。对错误进行处理后,可以将处理结果返回被中断的块。
3.电源故障处理组织块(OB81)
电源故障包括后备电池失效或未安装,S7-400的CPU机架或扩展机架上的DC 24V电源故障。电源故障出现和消失时操作系统都要调用OB81。
4.时间错误处理组织块(OB80)
循环监控时间的默认值为150ms,时间错误包括实际循环时间超过设置的循环时间、因为向前修改时间而跳过日期时间中断、处理优先级时延迟太多等。
5.诊断中断处理组织块(OB82)
如果模块有诊断功能并且激活了它的诊断中断,当它检测到错误时,以及错误消失时,操作系统都会调用OB82。
OB82在下列情况时被调用:有诊断功能的模块的断线故障,模拟量输入模块的电源故障,输入信号超过模拟量模块的测量范围等。用SFC 51“RDSYSST”可以读出模块的诊断数据。用SFC52“WR_USMSG”可以将这些信息存入诊断缓冲区,也可以发送一个用户定义的诊断报文到监控设备。
6.插入/拔出模块中断组织块(OB83)(www.xing528.com)
S7-400可以在RUN、STOP或STARTUP模式下带电拔出和插入模块,但是不包括CPU模块、电源模块、接口模块和带适配器的S5模块,上述操作将会产生插入/拔出模块中断。
7.CPU硬件故障处理组织块(OB84)
当CPU检测到MPI网络的接口故障、通信总线的接口故障或分布式I/O网卡的接口故障时,操作系统调用OB84。故障消除时也会调用该OB。
8.优先级错误处理组织块(OB85)
在以下情况下将会触发优先级错误中断:
1)产生了一个中断事件,但是对应的OB没有下载到CPU。
2)访问一个系统功能块的背景数据块时出错。
3)刷新过程映像表时I/O访问出错,模块不存在或有故障。
9.机架故障组织块(OB86)
在以下情况下将会触发机架故障中断:
1)机架故障,例如找不到接口模块或接口模块损坏,或者连接电缆断线。
2)机架上的分布式电源故障。
3)在SINEC L2-DP总线系统的主系统中有一个DP从站有故障。
10.通信错误组织块(OB87)
在以下情况下将会触发通信错误中断:
1)接收全局数据时,检测到不正确的帧标识符(ID)。
2)全局数据通信的状态信息数据块不存在或太短。
3)接收到非法的全局数据包编号。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。