7.3 用编程软件调试与监控程序
STEP 7-Micro/WIN V4.0编程软件提供了一系列工具,可直接在软件环境下调试与监视用户程序的执行。
7.3.1 使用程序编译器的程序状态监控
程序编译完成后,将程序下载到PLC中,执行菜单“调试”→“开始程序状态监控”命令,或单击工具栏中的“程序状态监控”按钮,可以监控程序的运行情况。
如需要暂停程序状态监控,单击“暂停程序状态监控”按钮。当前的数据保留在屏幕上。再次单击该按钮,继续执行程序状态监控。
1.梯形图程序的状态监控
1)运行状态时的程序状态监控
执行菜单“调试”→“使用执行状态”命令,程序进入执行状态,该命令行的前面出现一个“√”号。只有在PLC处于RUN模式时,才刷新程序段中的状态值。
在RUN模式下启动程序状态功能后,将通过颜色显示出梯形图中各元件的状态(见图7-11),左边的垂直“电源线”和与它相连的水平“导线”变为蓝色。如果某位操作数为1状态(为ON状态),其对应的常开触点或线圈变为蓝色,即在它们中间出现蓝色方块,有“能流”流过的“导线”也变为蓝色。如果有能流流入方块指令的EN(使能)输入端,且该指令被成功执行,则指令盒的方框变为蓝色。定时器和计数器的方框为绿色,表示它们包含有效数据,同时显示定时器和计数器中的当前值。红色方框表示执行指令时出现了错误。灰色表示无能流、指令被跳过、未调用,或PLC处于STOP模式。
可以执行菜单“工具”→“选项”命令,打开有关窗口,选择“程序编辑器”选项卡,在其中设置梯形图编辑器中栅格(即矩形光标)的宽度、字符的大小、仅显示符号或同时显示符号和地址等。
图7-11 梯形图程序的程序状态监控
只有在PLC处于RUN模式时才会显示强制状态,此时右击某一元件,在弹出的菜单中可以对该元件执行写入、强制或取消强制的操作。强制和取消强制功能不能用于V、M、AI和AQ的位。
2)扫描结束状态时的状态监控
在上述的运行状态时,执行菜单“调试”→“使用执行状态”命令,菜单中该命令行前面的“√”号消失,进入“扫描结束”状态。
“扫描结束”状态显示在程序扫描结束时读取的状态结果。这些结果可能不会反映PLC数据地址的所有数值变化,因为随后的程序指令在程序扫描结束之前可能会写入和重新写入数值。由于快速的PLC扫描周期和相对慢速的PLC状态数据通信之间存在的速度差别,“扫描结束”状态显示的是扫描周期结束时采样的数据值。
只有在RUN模式时才会显示触点和线圈中的颜色块,用于区别RUN和STOP模式。
对于强制的处理与运行状态,是基本上相同的,强制和取消强制功能不能用于V、M、AI和AQ的位。在PLC处于RUN和STOP模式时,都会显示强制状态。只有在“调试”菜单中选中了“STOP(停止)模式下写入-强制输出”命令(该项的左边出现“√”号),才能在STOP模式执行对输出Q和AQ的写操作。
2.语句表程序的状态监控
启动语句表和梯形图的程序状态监控功能的方法完全相同。图7-12所示的“操作数3”的右边是逻辑堆栈中的值。
执行菜单“工具”→“选项”命令,打开有关窗口,选择“程序编辑器”中的“STL状态监控”选项卡(见图7-13),可以选择语句表程序状态监控的内容,每条指令最多可以监控17个操作数、逻辑堆栈中4个当前值和1个指令状态位。
状态信息从位于编辑窗口顶端的第一条STL语句开始显示。向下滚动编辑窗口时,将从CPU获取新的信息。
图7-12 语句表程序的状态监控
图7-13 语句表程序状态监控的设置
7.3.2 用状态表监控与调试程序
如果需要同时监控的变量不能在程序编辑器中同时显示,则可以使用状态表监控功能。用户使用状态表可以跟踪程序的输入、输出和变量的状态,显示它们的当前值。
1.打开和编辑状态表
在程序运行时,可以用状态表来读、写、强制和监控PLC的内部变量。双击指令树的“状态表”文件夹的“用户定义1”图标,或者执行菜单“查看”→“组件”→“状态表”命令,均可以打开状态表,并对它进行编辑。如果项目中有多个状态表,可以用状态表编辑器底部的标签进行切换。
未启动状态表的监控功能时,可以在状态表中输入需要监控变量的地址和数据类型,定时器和计数器可以分别按位或按字监控。如果按位监控,则显示的是它们的输出位的ON/OFF状态;如果按字监控,显示的是它们的当前值。
在状态表中执行菜单“编辑”→“插入”→“行”命令,或者右击状态表中的单元,执行弹出的菜单中的“插入”→“行”命令,可以在状态表中当前光标位置的上部插入新的行。将光标置于状态表最后一行中的任一单元后,按向下的箭头键,在状态表的底部将会增添一个新的行。在符号表中选择变量并将其复制到状态表中(只复制符号列),可以快速创建状态表。
2.创建新的状态表
创建几个状态表,可以分别监控不同的元件组。右击指令树中的“状态表”图标或单击已经打开的状态表,执行菜单“插入”→“状态表”命令,可以创建新的状态表。
3.打开和关闭状态表的监控功能
执行菜单“调试”→“开始状态表监控”命令或单击工具栏上的“状态表监控”按钮(见图7-14),可以打开状态表的监控功能,在状态表的“当前值”列,将会出现从PLC中读取的动态数据。执行菜单“调试”→“停止状态表监控”命令或单击“状态表监控”按钮,可以关闭状态表。
状态表的监控功能被打开后,编程软件从PLC收集状态信息,并对表中的数据进行更新,这时还可以强制修改状态表中的变量。
图7-14 调试程序用的工具栏
4.单次读取状态信息
状态表被关闭时,执行菜单“调试”→“单次读取”命令或单击工具栏上的“单次读取”按钮,可以从PLC收集当前的数据,并在状态表的“当前值”列显示出来,执行用户程序时并不对它进行更新。如果要连续收集状态表信息,则启用状态表的监控功能。
5.用状态表强制改变数值
在RUN模式下,S7-200PLC的CPU允许强制性的给所有的I/O点赋值,还可以强制改变最多16个内部存储器V或M中的数据以及模拟量AI或AQ中的值。V 或M可以按字节、字或双字来改变;而模拟量只能从偶数字节开始,以字为单位来改变模拟量(例如AIW6)。强制的数据永久性地存储在CPU的EEPROM中。
打开状态表的监控功能后,可以用“调试”菜单的命令或工具栏中与调试有关的按钮(见图7-14)执行强制、取消强制、取消全部强制、单次读取和全部写入的操作。右击状态表中的某个操作数,从弹出的菜单中可以选择对该操作数强制或取消强制的命令。
(1)全部写入 完成了对状态中变量的改动后,可以用“全部写入”功能将所有的改动传送到PLC中。执行程序时,修改的数值可以被程序写成新的数值,物理输入点(I)的状态不能用此功能修改。
(2)强制 在状态表的地址列,选中一个操作数,在“新值”列中,写入希望的数值,然后单击工具栏的强制按钮。被强制的数值旁边将显示强制图标。一旦使用了强制功能,每次扫描都会将修改的数值用于该操作数,直到取消对它的强制为止。
(3)对单个操作数取消强制 选择一个被强制的操作数,然后单击工具栏的“取消强制”按钮,被选择的地址的强制图标将会消失。也可以右击该地址后在进行操作。
(4)取消全部强制 如果希望从状态表中取消全部强制,可以单击工具栏的“取消全部强制”按钮,使用该功能之前不必选中某个地址。
(5)读取全部强制 执行“读取全部强制”功能时,状态表中被强制的地址的当前值列将在曾经被显示强制、隐式强制或部分强制的地址处显示相应的图标。
在STOP模式下写入和强制输出时,必须执行菜单“调试”→“STOP(停止)模式下写入-强制输出”命令,才会在STOP模式下启用该功能。打开STEP 7-Micro/WIN V4.0或打开不同的项目时,作为默认操作,没有选中该菜单选项,以防止在PLC处于STOP模式时写入或强制输出。
6.趋势图
趋势图是用随时间变化而变化的PLC数据图形跟踪状态数据的,可以将状态表显示切换为趋势图显示,或作反向的切换。趋势图显示的行号与状态表的行号对应。
使用下列方法之一,可以在状态表的表格视图和趋势图之间进行切换。
(1)单击调试工具栏的“趋势图”按钮。
(2)执行菜单“查看”→“查看趋势图”命令。
(3)右击状态表,然后执行弹出的菜单中的“查看趋势图”命令。
图7-15所示趋势图对应的程序为:
图7-15 趋势图
右击趋势图,执行弹出的菜单中的命令,可以在趋势图运行时删除被单击的变量、插入新的行和修改趋势图的时间基准(即时间轴的刻度)。如果更改趋势图的时间基准(0.25s~5min),整个图的数据都会被清除,并用新的时间基准重新显示。执行弹出的菜单的“属性”命令,在弹出的对话框(见图7-16)中,可以修改被单击的行变量的地址和显示格式,以及显示时的上限和下限。
单击工具栏中的“暂停趋势图”按钮,或执行菜单“调试”→“暂停趋势图”命令,可以“冻结”趋势图。实时趋势功能不支持历史趋势,即不会保留超出趋势图窗口的时间范围的趋势数据。
图7-16 趋势图的属性设置
将光标放在分割趋势行的横线上,出现双箭头光标后,按住鼠标左键,上、下拖曳光标,可以调节各行的高度。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。