1.同步错误
同步错误发生在执行某一特定指令的过程中,是与执行用户程序有关的错误,程序中如果有不正确的地址区、错误的编号或错误的地址,都会出现同步错误,操作系统将调用同步错误OB。OB121用于对程序错误的处理,OB122用于处理模块访问错误。
同步错误OB的优先级与检测到出错的块的优先级一致。因此OB121和OB122可以访问中断发生时累加器和其他寄存器中的内容。用户程序可以用它们来处理错误,例如出现对某个模拟量输入模块的访问错误时,可以在OB122中用SFC 44定义一个替代值。同步错误可以用SFC 36“MASK_FLT”来屏蔽,使某些同步错误不触发同步错误OB的调用,但是CPU会在错误寄存器中记录发生的被屏蔽的错误,并用错误过滤器中的一位来表示某种同步错误是否被屏蔽。错误过滤器分为程序错误过滤器和访问错误过滤器,分别占一个双字。调用SFC 37“DMSK_FLT”并且在当前优先级被执行完后,将解除被屏蔽的错误,可以用SFC 38“READ_ERR”读出已经发生的被屏蔽的错误。
对于S7-300(CPU318除外),不管错误是否被屏蔽,错误都会被送入诊断缓冲区,并且CPU的“组错误”LED会被点亮。
2.编程错误组织块(OB121)(www.xing528.com)
出现编程错误时,CPU的操作系统将调用OB121。局域变量OB121_SW_FLT给出了错误代码,可以查看《S7-300/400的系统软件和标准功能》中OB121部分的错误代码表。
3.I/O访问错误组织块(OB122)
STEP 7指令访问有故障的模块,例如直接访问I/O错误(模块损坏或找不到),或者访问了一个CPU不能识别的I/O地址,此时CPU的操作系统将会调用OB122。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。