西门子丽水(中国)总代理
点击OK,双击CPU315-2DP,选择“Interrupts”选项,可以看到CPU支持OB82,见图7-16所示。硬件组态完成后,保存编译,下载到CPU中。
完成诊断程序。OB82程序当在硬件组态中设定的诊断中断发生后执行,但OB82执行时可以通过它的临时变量OB82_MDL_ADDR读出产生诊断中断的模块的逻辑地址。STEP7不能时时监控程序的运行。
在SIMATIC管理器中S7 Program(1)下插入一个STL Source文件STLSource(1),如图7-17所示。
打开OB1,在“Libraries”→“Standard Libraries”→“System FunctionBlocks”下找到SFC51“RDSYSSTDIAGNSTC”,按F1键,出现SFC51在线帮助信息,在帮助信息的部点击“Example for modulediagnostics with the SFC51”,点击“STL Source File”,选中全部STLSource源程序拷贝到STLSource(1)中,编译保存。这是在Blocks中生成OB1、OB82、DB13和SFC51。
打开OB82,对其中的程序做简单的修改,将19和20行的程序拷贝到go:后面,如图7-18所示。再进行保存,下载到CPU中。
下载完成后,将CPU上的模式选择开关切换到“RUN”状态,此时,CPU上的“RUN”灯和“SF”灯会亮,SM331模块上的“SF”灯也会亮。查看CPU的诊断缓冲区可以获得相应的故障信息。
打开DB13数据块,在线监控,见图7-19所示。因为通道断线是一到来事件,诊断信息存储到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通道相同。