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

S7-300/400 PLC的同步错误组织块

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

简介同步错误是与执行用户程序有关的错误, OB121 用于对程序错误的处理, OB122 用于处理模块访问错误。 同步错误 OB 的优先级与检测到出错的块的优先级一致。 同步错误可以用 SFC 36 “

    同步错误是与执行用户程序有关的错误,OB121用于对程序错误的处理,OB122用于处理模块访问错误。

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

    同步错误可以用SFC 36MASK_ FLT”来屏蔽,用错误过滤器中的一位用来表示某种同步错误是否被屏蔽。错误过滤器分为程序错误过滤器和访问错误过滤器,分别占一个双字。屏蔽后的错误过滤器可以读出。

    可以用SFC 38READ ERR”读出已经发生的被屏蔽的错误。

    ①编程错误组织块(OB121)。当有关程序处理的故障事件发生时,CPU操作系统调用OB121OB121与被中断的块在同一优先级中执行,表4-59描述了编程错误OB121的临时变量。

    4-59    OB121的变量申明表

OB121的变量申明表

   OB121程序在CPU执行错误时执行,此错误不包括用户程序的逻辑错误和功能错误等,例如当CPU调用一个未下载到CPU中的程序块,CPU会调用OB121,通过临时变量“OB121_BLK_TYPE”可以得出出现错误的程序块。使用STEP 7不能实时监控程序的运行,可以用“变量表(Variable Table)”监控实时数据的变化。

    打开事先已经插入的OB121编写程序,如图4-134所示。

    接着在项目“Blocks”下插入FC1,打开FC1编写程序,如图4-135所示。

OB121中编写的程序

    4-134    OB121中编写的程序

FC1中编写的程序

    4-135    FC1中编写的程序

    然后打开OB1编写程序,如图4-136所示。

OB1中编写的程序

    4-136    OB1中编写的程序

    先将硬件和OB1下载到CPU中,此时CPU能正常运行。在“Blocks”下插入“变量表(Variable Table)”,然后打开,填入MW0M10.0,并单击“监控”按钮,程序运行正常。将M10.0置为“true”后,CPU就报错停机,查看CPU的诊断缓冲区信息,发现为编程错误,若将OB121也下载到CPU中,再将M10.0置为“true”,CPU会报错但不停机,MW0为“W#16#88”,“W#16#88”表示为OB程序错误,检查发现FC1未下载。下载FC1后,在将M10.0置为“true”,这时CPU不会再报错,程序也不会再调用OB121

    I/O访问错误组织块(OB122)。当对于模块的数据访问出现故障时CPU的操作系统调用OB122OB122与被中断的块在同一优先级中执行,表4-60描述了I/O访问错误OB122的临时变量。

    4-60    OB122的变量申明表

OB122的变量申明表