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

S7系列PLC的I/O访问错误组织块(OB122)

来源:艾特贸易2018-04-20

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

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

    4-19    OB122的临时变量表

OB122的临时变量表

    同样,在这里运用一个例子来说明OB122的用法。首先,新建一个项目,插入一个300的站,进行硬件组态。插入一个CPU315 - 2DP和一个模拟量输入模块SM331。同时配置SMM331的“Inputs”选项,把所有通道设置为电压类型,注意模块的量程卡要与设置的相同,并把模块的逻辑输入地址设置为256257,如图4-21所示。

 硬件组态

    4-21    硬件组态

    组态完成后,编译保存并下载到CPU中。OB122程序在出现I/O访问错误时被调用,通过临时变量“OB122_SW_FLT”可以读出错代码,通过“OB122_BLK_TYPE”得出出错的程序块,通过“OB122_MEM_ADDR”可以读出发生错误的存储器地址。使用STEP7不能时时监控程序的运行,可以用“VariableTable”监控实时数据的变化。打开在“Blocks”下插入的OB122编写程序,如图4-22所示。该程序也可以转换为梯形图。接着打开OB1编写程序,如图4-23所示。

OB122中编写的程序

    4-22    OB122中编写的程序

OB1中编写的程序

    4-23    OB1中编写的程序

    先将硬件组态和OB1下载到CPU中,这时CPU运行正常。在“Blocks”下插入“Vari-ableTable”,然后打开,填入MW0MW2MW4MW6M10.0,单击左键,程序运行正常。将M10.0置为“true”,CPU会报错并停机,查看CPU的诊断缓冲区信息,发现为I/O访问错误。将OB122下载到CPU中,再将M10.0置为“true”,CPU会报错但不停机,检查并修改OB1程序,如图4-24所示。重新下载OB1CPU不再报错,程序运行正常。对于某些同步错误,可以调用系统功能SFC44,为输入模块提供一个替代错误值,以便程序能继续执行。如果错误发生在输入模块,可以在用户程序中直接替代。如果是输出模块错误,输出模块将自动地用组态时定义的值替代。替代值虽然不一定能反映真实的过程信号,但是可以避免终止用户程序和进入STOP模式。

OB1修改后的程序

    4-24    OB1修改后的程序

(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:艾特贸易网客服为您服务