首页 理论教育 同步错误组织块的优先级与检测到出错的块一致

同步错误组织块的优先级与检测到出错的块一致

更新时间:2025-01-10 工作计划 版权反馈
【摘要】:OB121用于对程序错误的处理,OB122用于处理模块访问错误。同步错误OB的优先级与检测到出错的块的优先级一致。

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。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈