您现在的位置是:首页 > PLC技术 > PLC技术
STEP 7编程错误的诊断
来源:艾特贸易2017-12-20
简介1 .程序结构 出现编程错误时, CPU 的操作系统将调用 OB121 。用新建项目向导生成一个名为“ OB121 ”的项目,可以选任意型号的 CPU 。 生成 FC 1 ,在 FC 1 中输入下面的程序,第一条指令
1.程序结构
出现编程错误时,CPU的操作系统将调用OB121。用新建项目向导生成一个名为“OB121”的项目,可以选任意型号的CPU。
生成FC 1,在FC 1中输入下面的程序,第一条指令访问了并不存在的DB 1中的地址:
L DB1.DBW 4
T MW 10
编写OB1的程序,在I0.0为1状态时调用FC 1(见图7-25)。
图7-25 OB1的程序
2.仿真实验
打开PLCSIM,将用户程序下载到CPU,将仿真PLC切换到RUN -P模式。
在PLCSIM中生成IB0的视图对象。单击I0.0对应的小方框,将I0.0置为1状态,OB1调用FC 1。由于FC 1中的编程错误,CPU视图对象上的SF LED亮。CPU要求调用OB121,因为没有生成和下载OB121,CPU自动切换到STOP模式。RUN LED熄灭,STOP LED亮。
在SIMATIC管理器中执行菜单命令“PLC”→“诊断/设置”→“模块信息”,打开模块信息对话框(见图7-26)。
图7-26 PLCSIM与诊断缓冲区
选中“诊断缓冲区”选项卡的3号事件“没有装载DB”,下面的窗口是事件的详细信息:因为没有下载DB 1,程序在FC 1中断,请求调用OB121,图7-26左下角的小图是3号事件详细信息的下半部分。单击对话框中的“打开块”按钮,将会打开出错的FC 1,显示出错的程序段,光标在出错的指令上。打开“模块信息”对话框的“堆栈”选项卡(见图7-27),B堆栈(块堆栈)中是与编程错误有关的块OB1和FC 1,表示出错时用户程序的调用路径。
单击该选项卡的“L堆栈”按钮,可以看到事件发生时OB1的局部变量。
单击该选项卡的“I堆栈”按钮,打开中断堆栈,可以看到程序执行被中断时累加器、地址寄存器和状态字的内容,在“中断点”区可以看到FC 1的执行被中断。单击“帮助”按钮,可以得到有关的帮助信息。
返回SIMATIC管理器,生成OB121(可以是一个空的块)和DB121,在DB 121中生成20B的数组ARY。在OB121中调用SFC 20,用数组APY保存OB121的局部变量。下载用户程序后切换到RUN -P模式。令I0.0为1状态,调用FC 1时出现编程错误,SF LED亮,但是CPU不会进入STOP模式。
图7-27 堆栈信息
3.OB121的局部变量
选中SIMATIC管理器中的OB121,按计算机键盘上的<F1>键,打开OB121的在线帮助。
有编程错误时,打开DB121。单击工具栏上的按钮,启动监控功能:图7-28是OB121的局部变量的前12B。
图7-28 OB121的局部变量
DBB1(OB121_SW_FLT)是错误代码,由OB121的在线帮助可知,16 #22表示读取数据时的区域长度错误。
DBB4(OB121_BLK_TYPE)是错误所在的块的类型,由在线帮助可知16#8C表示DB。
DBB5(OB121_RFSERVED_1)的值为16 #24,由在线帮助可知,第4~7位的2表示访问类型为字。第0~3位的4表示存储器区为共享数据块。
DBW6(错误源,OB121_FLT_REG)中的地址为4,即程序中读操作出错的DBW4的地址。
(部分原创文章应编辑稿费需求,每篇需要收取2元的稿费,如需查看全文请联系客服索取,谢谢理解!在线客服:)
点击排行
