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

S7系列PLC的诊断中断处理组织块(OB82)

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

简介如果模块既有诊断能力又能使诊断中断,当它检测到错误时,会输出一个诊断中断请求给 CPU ;以及错误消失时,操作系统都会调用 OB82 。当一个诊断中断被触发时,有问题的模块自动

    如果模块既有诊断能力又能使诊断中断,当它检测到错误时,会输出一个诊断中断请求给CPU;以及错误消失时,操作系统都会调用OB82。当一个诊断中断被触发时,有问题的模块自动地在诊断中断OB的启动信息和诊断缓冲区中存入4个字节的诊断数据和模块的起始地址。可以用SFC39~42来禁用、延时或再使用诊断中断(OB82)。表4-12是诊断中断OB82的变量声明表。

    4-12    OB82的变量声明表

OB82的变量声明表

OB82的变量声明表

    在编写OB82的程序时,要从OB82的启动信息中获得与出现的错误有关的更确切的诊断信息,如是哪一个通道出错,出现的是哪种错误。使用SFC51RDSYSST”也可以读出模块的诊断数据,用SFC52WR_USMSG”可以将这些信息存入诊断缓冲区。

    现在通过结合模块的短线诊测应用和SFC51来说明诊断中断组织块OB82的使用方法。首先,在SIMATIC管理器中新建一个项目,插入一个300站并进行硬件组态,在机架上插入CPU315 -2DP和一块具有中断功能模拟量输入模块SM331,配置SM331模块的“Inputs”选项,选择0-1通道组为2线制电流(2DMU),其他通道组为电压,并注意模块的量程卡要与设置的相同。选中“Enable”框中的“Diagnosticlnterrupt”选项,选中“Diagnostics”选项中的0-1通道组中的“GroupDiagnostics”和“withCheckforWireBreak”选项,如图4-9所示。

 硬件组态

    4-9    硬件组态

    单击OK,然后双击CPU315 -2DP,选择“Interrupts”选项,可以看到CPU支持OB82,如图4-10所示。硬件组态完成后,保存编译,下载到CPU中。然后完成诊断程序。OB82程序当在硬件组态中设定的诊断中断发生后执行,但OB82执行时可以通过它的临时变量OB82_MDL_ADDR读出产生诊断中断的模块的逻辑地址。STEP7不能实时监控程序的运行。

CPU中的“Interrupts”选项

    4-10    CPU中的“Interrupts”选项

    SIMATIC管理器中S7Program(1)下插入一个STLSource文件STLSource(1),如图4-11所示。

插入STLSource文件

    4-11    插入STLSource文件

    打开OB1,在“Libraries”→“StandardLibraries”→“SystemFunctionBlocks”下找到SFC51RDSYSSTDIAGNSTC”,按F1键,出现SFC51在线帮助信息,在帮助信息的底部单击“Exampleformodulediagnostic swiththeS FC51”,然后单击“STLSourceFile”,选中全部STL-Source源程序并复制到STLSource(1)中,编译保存,这时在Blocks中生成OB1OB82DB13SFC51

    打开OB82,对其中的程序做简单的修改,将第19和第20行的程序复制到go:后面,如图4-12所示。再进行保存,下载到CPU中。

OB82的程序修改

    4-12    OB82的程序修改

    下载完成后,将CPU上的模式选择开关切换到“RUN”状态,此时,CPU上的“RUN”灯和“SF”灯会亮,SM331模块上的“SF”灯也会亮。同时,查看CPU的诊断缓冲区可以获得相应的故障信息。

    打开DB13数据块,在线监控,如图4-13所示。因为通道断线是一通道事件,所以诊断信息存储到COME数组中。本例中COME数组字节的含义如下所述。

   COME[1]=B#16#D:表示通道错误,外部故障和模块问题;

   COME[2]=B#16#15:表示此段信息为模拟量模块的通道信息;

   COME[3]=B#16#0:表示CPU处于运行状态,无字节2中标示的故障信息;

   COME[4] =B#16#0:表示无字节3中标示的故障信息;

   COME[5]=B#16#71:表示模拟量输入;

   COME[6]=B#16#8:表示模块的每个通道有8个诊断位;

   COME[7] =B#16#8:表示模块的通道数;

   COME[8]=B#16#3:表示0通道错误和1通道错误,其他通道正常;

   COME[9]=B#16#10:表示0通道断线;

   COME[10]=B#16#10:表示1通道断线;

   COME[11]=B#16#0:表示2通道正常,其他通道与2通道相同。

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