您现在的位置是:首页 > PLC技术 > PLC技术

S7-300/400的同步错误

来源:艾特贸易2017-06-05

简介同步错误是与执行用户程序有关的错误,程序中如果有不正确的地址区、错误的编号或错误的地址,都会出现同步错误,操作系统将调用同步错误 OB 。 OB121 用于对程序错误的处理,

    同步错误是与执行用户程序有关的错误,程序中如果有不正确的地址区、错误的编号或错误的地址,都会出现同步错误,操作系统将调用同步错误OB

   OB121用于对程序错误的处理,OB122用于处理模块访问错误。

    同步错误OB的优先级与检测到出错的块的优先级一致。因此OB121OB122可以访问中断发生时累加器和其他寄存器的内容。用户程序可以用它们来处理错误,例如出现对某个模拟量输入模块的访问错误时,可以在OB122中用SFC 44定义一个替代值。

    同步错误可以用SFC 36MASK_FLT”来屏蔽,使某些同步错误不触发同步错误OB的调用,但是CPU在错误寄存器中记录发生的被屏蔽的错误。用错误过滤器中的一位来表示某种同步错误是否被屏蔽。错误过滤器分为程序错误过滤器和访问错误过滤器,分别占一个双字。

    调用SFC 37DMSK FLT”并且在当前优先级被执行完后,将解除被屏蔽的错误,并且清除当前优先级的事件状态寄存器中相应的位。可以用SFC 38READ_ERR”读出已经发生的被屏蔽的错误。对于S7-300CPU 318除外),不管错误是否被屏蔽,错误都会被送入诊断缓冲区,并且CPU的“SFLED会被点亮。

    可以在不同的优先级屏蔽某些同步错误。在这种情况下,在特定的优先级中发生这类错误时不会停机,CPU把该错误存放到错误寄存器中。但是无法知道是什么时候发生的错误,也无法知道错误发生的频率。

    6-7中的变量PRGFLT_SET_MASKACCFLT_SET_MASK分别用来设置程序错误过滤器和访问错误过滤器,某位为1表示该位对应的错误被屏蔽。屏蔽后的错误过滤器可以用变量PRCFLT_MASKEDACCFLT_MASKED读出。错误信息返回值RET_VAL0时表示没有错误被屏蔽,为1时表示至少有一个错误被屏蔽。

    6-7    SFC 36MSK_ FLT”的局部变量表

SFC 36“MSK_ FLT”的局部变量表