您现在的位置是:首页 > 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    DB1DBW    4

   T    MW    10

    编写OB1的程序,在I0.01状态时调用FC 1(见图7-25)。

OB1的程序

    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,因为没有生成和下载OB121CPU自动切换到STOP模式。RUN LED熄灭,STOP LED亮。

    SIMATIC管理器中执行菜单命令“PLC”→“诊断/设置”→“模块信息”,打开模块信息对话框(见图7-26)。

PLCSIM与诊断缓冲区

    7-26    PLCSIM与诊断缓冲区

    选中“诊断缓冲区”选项卡的3号事件“没有装载DB”,下面的窗口是事件的详细信息:因为没有下载DB 1,程序在FC 1中断,请求调用OB121,图7-26左下角的小图是3号事件详细信息的下半部分。单击对话框中的“打开块”按钮,将会打开出错的FC 1,显示出错的程序段,光标在出错的指令上。打开“模块信息”对话框的“堆栈”选项卡(见图7-27),B堆栈(块堆栈)中是与编程错误有关的块OB1FC 1,表示出错时用户程序的调用路径。

    单击该选项卡的“L堆栈”按钮,可以看到事件发生时OB1的局部变量。

    单击该选项卡的“I堆栈”按钮,打开中断堆栈,可以看到程序执行被中断时累加器、地址寄存器和状态字的内容,在“中断点”区可以看到FC 1的执行被中断。单击“帮助”按钮,可以得到有关的帮助信息。

    返回SIMATIC管理器,生成OB121(可以是一个空的块)和DB121,在DB 121中生成20B的数组ARY。在OB121中调用SFC 20,用数组APY保存OB121的局部变量。下载用户程序后切换到RUN -P模式。令I0.01状态,调用FC 1时出现编程错误,SF LED亮,但是CPU不会进入STOP模式。

堆栈信息

    7-27    堆栈信息

    3OB121的局部变量

    选中SIMATIC管理器中的OB121,按计算机键盘上的<F1>键,打开OB121的在线帮助。

    有编程错误时,打开DB121。单击工具栏上的按钮,启动监控功能:图7-28OB121的局部变量的前12B

OB121的局部变量

    7-28    OB121的局部变量

   DBB1(OB121_SW_FLT)是错误代码,由OB121的在线帮助可知,16 #22表示读取数据时的区域长度错误。

   DBB4OB121_BLK_TYPE)是错误所在的块的类型,由在线帮助可知16#8C表示DB

   DBB5OB121_RFSERVED_1)的值为16 #24,由在线帮助可知,第47位的2表示访问类型为字。第0~3位的4表示存储器区为共享数据块。

   DBW6(错误源,OB121_FLT_REG)中的地址为4,即程序中读操作出错的DBW4的地址。

(部分原创文章应编辑稿费需求,每篇需要收取2元的稿费,如需查看全文请联系客服索取,谢谢理解!在线客服:艾特贸易网客服为您服务