自贡西门子PLC模块授权代理商
西门子PLC错误处理组织块分类及其作用有哪些
1. 错误处理概述
S7-300/400有很强的错误(或故障)检测和处理能力。操作系统可以出下列错误不正确的CPU功能、操作系统执行中的错误、用户程序中的错误和I/O中的错误。
操作系统检测到一个异步错误时,将启动相应的组织块(见表4-9)。异步错误OB具有高等级的**级,如果当前正在执行的 OB的**级低于26,异步错误 OB的**级为26,如果当前正在执行的OB的**级为27(启动组织块),异步错误OB的**级为28,其他OB不能中断它们。如果同时有多个相同**级的异步错误OB出现,将按出现的顺序处理它们。
用户可以在组织块中编程,对发生的错误采取相应的措施,以减小或错误的影响。如果没有生成和下载处理某个错误的组织块,出现该错误时CPU将进入STOP模式。即使下载一个空的OB,出现该错误时CPU也不会进入STOP模式。
利用系统功能(SFC),用户可以屏蔽、延迟或禁止各种OB的启动事件。
表4-9 错误处理组织块
2. 错误的分类
被S7 CPU检测到并且用户可以通过组织块对其进行处理的错误分为两个基本类型∶
1)异步错误是与PLC的硬件或操作系统密切相关的错误,与用户程序的执行无关。异步错误的后果一般都比较严重。异步错误对应的组织块为OB70~OB73和OB80~OB87(见表4-9),具有高的**级。
2)同步错误是与程序执行有关的错误,OB121和OB122用于处理同步错误,它们的**级与出现错误时被中断的块的**级相同,即同步错误OB中的程序可以访问块被中断时累加器和状态寄存器的内容。对错误进行适当处理后,可以将处理结果返回被中断的块。
3.时间错误处理组织块(OB80)
循环时间的默认值为150ms,时间错误包括实际循环时间过设置的循环时间、因为向前修改时间而跳过时间中断、处理**级时延迟太多等。
为OB80编程时应判断是哪个时间中断被跳过,使用SFC29“CAN_TINT”可以取消被跳过的时间中断。只有新的时间中断才会被执行。
4. 电源故障处理组织块(OB81)
电源故障包括后备电池失效或未安装,S7-400的CPU机架或扩展机架上的DC24V电源故障。电源故障出现和消失时操作系统都要调用OB81。
5.诊断中断处理组织块(OB82)
OB82、OB85和OB86的功能将在7.1.1节详细介绍。
6.插入/拔出模块中断组织块(OB83)
S7-400和某些型号的ET 200在RUN、STOP或STARTUP模式下带电拔出和插入模块时,将产生插入/拔出模块中断。在这些操作模式不能拔出CPU模块、电源模块、接口模块和适配器模块。在下列情况下调用0B83被组态的模块插入或拔出,用STEP7修改了模块的参数,并且在RUN模式时将它下载。
S7-400 CPU 以数秒的间隔监视*机架和扩展机架上的模块。电源上电时,CPU 检测由STEP7生成的组态表中列出的模块是否都插入了。如果是,这个实际的组态被保存并作为对模块进行循环监控的依据。在每一扫描循环比较刚检测到的实际组态与原来检测到的组态。如果发现两个组态有差异,则发出插入/拔出模块中断信号,并且将有关信息存入诊断缓冲区和系统状态表。
如果在RUN模式下拔出组态的模块,将启动OB83。因为CPU以大约1s的间隔监视模块,在模块被直接访问或过程映像刷新时,可能首先检测到访问错误。
如果一个模块在RUN模式下插入,CPU会检测新模块的类型与原来的模块是否相同。如果相同,OB83被启动,将默认参数或用STEP7*的参数传送到该模块中。
7.CPU硬件故障组织块(OB84)
当检测到并正了内存错误、两个S7-400HCPU之间的冗余链接的性能下降和Wi RTX的操作系统出错,CPU的操作系统调用OB84。如果没有生成OB84,CPU不会切换到STOP模式。
8.通信错误组织块(OB87)
在使用通信功能块或全局数据(GD)通信进行数据交换时,如果出现下列通信错误,操作系统将调用0B87
1)接收全局数据时,检测到不正确的帧标识符(ID)。
2)全局数据通信的状态信息数据块不存在或太短。
3)接收到非法的全局数据包编号。