确定STOP原因的基本步骤
要确定CPU为何进入"STOP"模式,可如下操作:
选择已进入STOP模式的CPU。
选择菜单命令PLC > 诊断/设置 > 模块信息。
选择"诊断缓冲区"选项卡。
可以从诊断缓冲区的zui后一个条目确定STOP停止原因。
如果发生编程错误:
例如,条目"由于没有加载编程错误OB而STOP"表示CPU检测到一个程序错误,尝试启动(不存在的)OB来处理该编程错误。前一个条目指代实际的编程错误。
选择与编程错误有关的消息。
单击"打开块"按钮。
选择"栈"选项卡。
STOP模式中的栈内容
通过评估诊断缓冲区和栈内容,可以确定用户程序处理期间发生的故障的原因。
例如,如果由于编程错误或"STOP"命令导致CPU进入STOP模式,那么模块信息中的"栈"选项卡显示块栈。可以使用"I栈"、"L栈"和"嵌套栈"按钮来显示其它栈的内容。栈内容给出哪个块中的哪条指令导致CPU进入STOP模式的信息。
B栈内容
B栈,或称块栈,列出了变为STOP模式之前调用的所有块以及没有*处理的块。
I栈内容
单击"I栈"按钮时,显示中断位置处的数据。I栈,或称中断栈,包含中断时有效的数据或状态,例如:
累加器内容和寄存器内容
打开的数据块及其大小
状态字的内容
优先级(嵌套等级)
中断块
中断后,继续进行程序处理的块
L栈内容
对于B栈中列出的每个块,通过选择该块并单击"L栈"按钮,可以显示相应的局部数据。
L栈,或称局部数据栈,包含发生中断时用户程序正在处理的块的局部数据值。
解释和评估所显示的局部数据要求非常熟悉系统。所显示数据的*部分对应于块的临时变量。
嵌套栈内容
单击"嵌套栈"按钮时,显示中断位置处嵌套栈的内容。
嵌套栈是逻辑操作A(、AN(、O(、ON(、X(和XN(使用的存储区。
只有在中断时仍然打开括号表达式时,才激活该按钮。
给诊断缓冲区条目打开块
通过引用了错误位置(块类型、块编号、相关地址)的诊断缓冲区条目,可以打开引起事件的块,从而更正错误。
在顶部列表框中选择诊断事件。
单击"打开块"按钮。块在适当的编辑器(例如,语句表)中打开,光标指向程序中引起错误的位置。
更正块中的错误。
从B栈列表中打开块
按如下进行操作:
单击"打开块"按钮。块在程序编辑器中打开。光标指向跳转到所调用块之后,再继续处理的程序位置。
进行修改。
从I栈列表中打开块
按如下进行操作:
单击"打开块"按钮。块在程序编辑器中打开。光标指向程序中引起错误的程序位置。
进行修改。