首页 理论教育 西门子840D的PLC程序调试与故障诊断优化指南

西门子840D的PLC程序调试与故障诊断优化指南

时间:2023-06-24 理论教育 版权反馈
【摘要】:用户程序执行阶段 执行OB1中的程序:PLC在程序执行阶段,是按一定规律扫描用户程序的。另外,西门子提供诊断FB125标准块,可以查看详细故障信息。

西门子840D的PLC程序调试与故障诊断优化指南

1.PLC程序运行原理

西门子840D/810D数控系统中,集成了S7-300系列PLC,其存储区可以划分为三个区域:装载存储器、工作存储器、系统存储器。当PLC得电或从STOP切换到RUN模式时,CPU执行一次热启动(使用OB100),操作系统执行如下操作:清除非保持位存储器、定时器和计数器;删除中断栈和块堆栈;复位所有保存的硬件中断和诊断中断;启动扫描循环监视时间。

PLC采用循环扫描工作方式,并有一些特定的中断处理方式。CPU通过扫描完成各输入点的状态采集或输入数据采集、用户程序逻辑解算、各输出点状态的更新等功能。

(1)输入采样阶段 从模块读信号状态并保存到过程映像输入表:PLC在输入采样阶段,以扫描方式顺序读入所有输入端当前状态,并将此状态存入输入映象寄存器,接着转入程序执行阶段。在程序执行期间,即使输入状态发生变化,输入映象寄存器的内容也不会改变。也就是说,输入状态的变化,只能在每一次扫描工作周期的输入采样阶段被读入,用输入映象寄存器记忆其状态的变化。

(2)用户程序执行阶段 执行OB1中的程序:PLC在程序执行阶段,是按一定规律扫描用户程序的。在此阶段,PLC从输入映象寄存器读入所要用到的输入端状态,若程序需要读入输出状态,则也在此时读入,然后进行逻辑运算,并将运算结果再存入元件映象寄存器中。对每个元件来说,元件映象寄存器所寄存的内容,会随着程序执行的进程而变化。

(3)输出处理阶段 把过程映像输出表的值写到输出模块:在所有的指令执行完毕后,元件映象寄存器中所有输出继电器的状态,在输出刷新阶段才转存到输出锁存电路,再驱动输出线圈,这才是可编程序控制器的实际输出。输出元件映象寄存器的数据,由输出指令的执行结果决定,输出锁存电路的数据,由上一刷新时间输出元件映象寄存器的数据来决定,输出端器件上的状态,由输出锁存电路来决定。

2.PLC通用的诊断方法

PLC系统故障通过指示灯和STEP7软件诊断及PLC程序诊断。

(1)LED诊断 可以通过LED点亮或者闪烁来指示错误类型。

(2)通过STEP7软件诊断 当故障发生时,将读取诊断缓冲区内容或者调用工具“硬件诊断”。当发生系统检测错误时,一般CPU进入STOP状态,诊断缓冲区、I/B/L堆栈和硬件诊断等,建立与PLC在线连接后,在SIMATIC管理器中或在“Accessible Nodes”(可访问网络)窗口中选择要检查的站,执行菜单命令“PLC”→“Diagnostics/Settings”→“Module Information”,将打开模块信息窗口,显示该站中CPU模块信息,在模块信息窗口中打开“Diagnostics/Buffer”诊断缓冲区选项,给出CPU中发生事件一览表,选中“Events”窗口中的某一事件,下面灰色的“Details on”窗口将显示所选事件的详细信息,可以对系统的错误进行分析,查找停机原因。还可以使用Monitor/Modify Variable和Monitor Block以及“诊断/时钟”等测试功能给出错误原因和中断位置的详细信息。

(3)通过用户程序诊断 在用户程序中增加故障诊断功能的程序块OB86,OB86可以把故障信息和启动信息读出,以此作为诊断依据,并可以防止CPU进入STOP状态。也可以在用户程序中通过调用系统功能SFC13,查看EN50170标准定义的从站附加诊断信息。另外,西门子提供诊断FB125标准块,可以查看详细故障信息。

3.程序下载到设备调试

在机床改造设计PLC程序时,把程序下载到PLC的CPU中运行,然后在设备中调试程序。

(1)PLC程序功能错误的诊断方法

1)过程故障(例如接线错误)。对于输入端接线测试,可以采用“变量监控”的功能,而对于输出端接线测试,可以采用“变量修改”的功能以及“使能外设输出”EnablePe-ripheral Outputs(仅在CPU处于STOP时)。

2)逻辑编程错误(例如重复赋值)。如可以使用监视块状态、变量表、参考数据等测试功能搜索逻辑编程错误。

3)强制。该功能对地址进行强制控制,而不管程序逻辑如何。

4)断点。该断点测试功能用于在STL中以单步执行的方式来执行程序,并跟踪已执行指令的序列以及相关的寄存器内容,可以根据CPU设置多个断点。强制功能以及断点测试功能大多数情况下都是在程序设计阶段使用。

(2)利用程序监视调试程序

用途:Monitor Block测试功能用于跟踪块中的程序执行。为此,块中所用的地址的状态及内容在程序执行时被显示在屏幕上。

监视:通过用鼠标单击眼镜图标或选择菜单Debug->Monitor,可以在LAD/STL/FBD编辑器中激活当前所打开块的“监视”(“Block Status”)测试模式,如图4-13所示。

在测试功能开始时,被监视的块在编辑器中是在线还是离线被打开得并不重要。然而,离线被打开的块与CPU在线存储的块不同时,或者打开在线存储的块或者把离线打开的块下装到CPU然后监视它。在测试模式下,LAD/FBD的元件用不同的颜色显示。通过菜单Options→Customize进行选择。例如:状态满足→“元件显示绿色”

状态不满足→“元件显示蓝色”

注意:当CPU在RUN模式并且当被监视的指令正在被处理时,才能激活状态显示。

(3)利用变量表调试程序

用途:变量地址表(VAT)用于一个所选的格式察看(monitor)和改变(modify)CPU存储器区的地址的值。“Monitor/Modify Variables”功能从SIMATIC Manager或从LAD/STL/FBD编辑器启动。

输入变量表,如图4-14所示。

978-7-111-57103-2-Chapter04-28.jpg

图4-13 测试程序状态

978-7-111-57103-2-Chapter04-29.jpg

图4-14 输入变量表

变量表的设计:在变量表(VAT)中输入所选变量。除了块的局部、临时变量,可以监视和/或修改所有变量或地址,如图4-15所示。

可以在View菜单中选择显示变量表的列。每列的含义如下:

Address:变量的绝对地址。

Symbol:变量的符号地址。

Symbol comment:显示变量的注释。(www.xing528.com)

Display format:可通过单击鼠标左键选择数据格式(例如二进制十进制),以选择的数据格式显示变量内容。

Status value:所选的状态格式的变量的值。

Modify value:赋值给变量。

保存变量表可用Table→Save或Table→Saveas存储变量表。首次存储变量表时,“Save As”对话窗口打开。“Saveas”窗口允许用户选择存储变量表的文件夹。存储路径没有预设到用户当前打开的项目/程序上。

可以给变量表选择任何名称,名称插入到符号表中作为符号名。

978-7-111-57103-2-Chapter04-30.jpg

图4-15 监视和修改变量

可以再次使用存储的变量表用于监视和修改,不需要重新输入变量了。

为检查输入和输出的接线(与用户程序无关),也可以从硬件配置工具(HWConfig)直接调用Monitor/Modify/Force Variables Values(监视/修改/强制变量)工具(VAT),如图4-16所示。

用变量表监视和修改变量的基本步骤:

1)生成新的变量表或打开已存在的变量表,编辑和检查变量表的内容。

2)建立计算机与CPU之间的硬件连接,将用户程序下载到PLC。在变量表窗口中用菜单命令“PLC”→“Connectto”建立当前变量表与CPU之间的在线连接。

3)用菜单命令“Variable”→“Trigger”选择合适的触发点和触发条件。

4)PLC在RUN-P模式下,用菜单命令“Variable”→“Monitor”或“Variable”→“Modify”激活监视或修改功能。

978-7-111-57103-2-Chapter04-31.jpg

图4-16 强制变量

(4)利用参考数据调试程序

用途:对于复杂的程序,在查找故障时特别需要有一个概览,在哪里哪个地址被扫描或赋值、哪个输入或输出被实际使用、整个用户程序关于调用层次的基本结构如何。

“参考数据”工具提供用户程序结构的概览以及所用的地址。参考数据交叉表从离线存储的用户程序生成。

对于功能错误,例如可以跟踪逻辑程序错误(例如多重赋值),你将发现“程序状态”和“参考数据”非常有用。

例如,一个逻辑功能不满足是因为一个数据位被置位,可以利用参考数据工具来确定该位是在哪里被赋值的。

参考数据:可以在SIMATICManager中(离线选择“Blocks”文件夹)或在“LAD/STL/FBDEditor”中,使用Options→ReferenceData→Display或FilterandDisplay生成,使用“Cross-ReferenceOK”显示参考数据。

过滤器参考数据包含不同的表格,以过滤后的形式显示,不论是否在菜单Options中选择了Display或FilterandDisplay选项。当你选择显示参考信息时,可以在用户定制对话框中选择首先显示哪个表。然后可以选择任何的表。

在参考数据交叉表中执行菜单命令“View”→“Sort”,可以选择按地址或块,递增(Addres sascending)或递减(Address descending)的顺序排列表中各行的参考数据。

(5)利用断点调试程序

断点:借助于这个测试功能,可以单步地测试用语句表编程语言建立的程序。

例如:在编程时可以测试程序循环。有的CPU可以设置几个断点。

断点功能:在程序编辑器中通过菜单“Test”或通过断点栏选择断点功能。

断点栏:通过选择菜单程序编辑器中的View→Breakpoint Bar,选择显示断点栏,如图4-17所示。

打开断点工具栏,可以执行断点设置、断点调试等操作。

断点调试功能,通常会把PLC寄存器调用出来,同时查看寄存器的内容。

注意:为了执行这些测试功能,必须满足下面的要求:根据CPU可以设置几个断点。允许的断点数和所用的CPU有关。块必须没有被保护(Know_how_protect)。要测试的块必须在线打开。如果程序执行时碰到一个断点,则CPU从RUN模式切换到HOLD模式,在这一模式,STOPLED亮起,同时RUNLED闪烁,为了安全原因,输出被禁止。

978-7-111-57103-2-Chapter04-32.jpg

图4-17 断点栏选择断点

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈