3.4 程序的监控与调试
程序编写完成后,需要检查程序能否达到控制要求。检查方法主要有:一是从头到尾对程序进行分析来判断程序是否正确,这种方法最简单,但要求编程人员有较高的PLC理论水平和分析能力;二是将程序写入PLC,再给PLC接上电源和输入/输出设备,通过实际操作来观察程序是否正确,这种方法最直观可靠,但需要用到很多硬件设备并对其接线,工作量大;三是用软件方式来模拟实际操作,同时观察程序运行情况来判断程序是否正确,这种方法不用实际接线又能观察程序运行效果,所以适合大多数人使用,本节就介绍这种方法。
3.4.1 用梯形图监控调试程序
在监控调试程序前,需要先将程序下载到PLC,让编程软件中打开的程序与PLC中的程序保持一致,否则无法进入监控。进入监控调式模式后,PLC中的程序运行情况会在编程软件中以多种方式同步显示出来。
用梯形图监控调试程序操作过程如下。
(1)进入程序监控调试模式。
单击“调试”菜单下的“程序状态”工具,如图3-23(a)所示,梯形图编辑器中的梯形图程序马上进入监控状态,编辑器中的梯形图运行情况与PLC内的程序运行保持一致。图3-23(a)所示梯形图中的元件都处于“OFF”状态,常闭触点I0.1、I0.2中有蓝色的方块,表示程序运行时这两个触点处于闭合状态。
(2)强制I0.0常开触点闭合(模拟I0.0端子外接启动开关闭合)查看程序运行情况。
在I0.0常开触点的符号上右击,在弹出的快捷菜单中选择“强制”,会弹出“强制”对话框,将I0.0的值强制为“ON”,如图3-23(b)所示;这样I0.0常开触点闭合,Q0.0线圈马上得电(线圈中出现蓝色方块,并且显示Q0.0=ON,同时可观察到PLC上的Q0.0指示灯也会亮),如图3-23(c)所示,定时器上方显示“+20=T37”表示定时器当前计时为20×100ms=2s,由于还未到设定的计时值(50×100ms=5s),故T37定时器状态仍为OFF,T37常开触点也为OFF,仍处于断开状态。5s计时时间到达后,定时器T37状态值马上变为ON,T37常开触点状态也变为ON而闭合,Q0.1线圈得电(状态值为ON),如图3-23(d)所示。定时器T37计到设定值50(设定时间为5s)时仍会继续增大,直至计到32767停止,在此期间状态值一直为ON。I0.0触点旁出现的锁形图表示I0.0处于强制状态。
(3)强制I0.0常开触点断开(模拟I0.0端子外接启动开关断开)查看程序运行情况。
选中I0.0常开触点,再单击工具栏上的“取消强制”工具,如图3-23(e)所示,I0.0常开触点中间的蓝色方块消失,表示I0.0常开触点已断开,但由于Q0.0常开自锁触点闭合,使Q0.0线圈、定时器T37、Q0.1线圈状态仍为ON。
图3-23 梯形图的运行监控调试
图3-23 梯形图的运行监控调试(续)
图3-23 梯形图的运行监控调试(续)
(4)强制I0.1常闭触点断开(模拟I0.1端子外接停止开关闭合)查看程序运行情况。
在I0.1常闭触点的符号上右击,在弹出的快捷菜单中选择“强制”,会弹出“强制”对话框,将I0.1的值强制为“ON”,如图3-23(f)所示,这样I0.1常闭触点断开,触点中间的蓝色方块消失,Q0.0线圈和定时器T37状态马上变为OFF,定时器计时值变为0,由于T37常开触点状态为OFF而断开,Q0.1线圈状态也变为OFF,如图3-23(g)所示。
在监控程序运行时,若发现程序存在问题,可停止监控(再次单击“程序状态”工具),对程序进行修改,然后将修改后的程序下载到PLC,再进行程序监控运行,如此反复进行,直到程序运行符合要求为止。
3.4.2 用状态图表的表格监控调试程序
除了可以用梯形图监控调试程序外,还可以使用状态图表的表格来监控调试程序。
在项目指令树区域展开“状态图表”,双击其中的“图表1”,打开状态图表,如图3-24(a)所示。在图表1的“地址”栏输入梯形图中要监控调试的元件地址(I0.0、I0.1……),在“格式”栏选择各元件数据类型,I、Q元件都是位元件,只有1位状态位,定时器有状态位和计数值两种数据类型,状态位为1位,计数值为16位(1位符号位、15位数据位)。
图3-24 用状态图的表格监控调试程序
图3-24 用状态图的表格监控调试程序(续)
为了更好地理解状态图表的监控调试,可以让梯形图和状态图表监控同时进行。先后单击“调试”菜单中的“程序状态”和“图表状态”,启动梯形图和状态图表监控,如图3-24(b)所示,梯形图中的I0.1和I0.2常闭触点中间出现蓝色方块,同时状态图表的“当前值”栏显示出梯形图元件的当前值。比如,I0.0的当前值为2#0(表示二进制数0,即状态值为OFF),T37的状态位值为2#0,计数值为+0(表示十进制数0)。在状态图表I0.0的“新值”栏输入2#1,再单击状态图表工具栏上的“强制”,如图3-24(c)所示,将I0.0值强制为ON,梯形图中的I0.0常开触点强制闭合,Q0.0线圈得电(状态图表中的Q0.0当前值由2#0变为2#1),T37定时器开始计时(状态图表中的T37计数值的当前值不断增大,计到50时,T37的状态位值由2#0变为2#1),Q0.1线圈马上得电(Q0.0当前值由2#0变为2#1),如图3-24(d)所示。在状态图表T37计数值的“新值”栏输入+10,再单击状态图表工具栏上的“写入”,如图3-24(e)所示,将新值+10写入覆盖T37的当前计数值,T37从10开始计时,由于10小于设定计数值50,故T37状态位当前值由2#1变为2#0,T37常开触点又断开,Q0.1线圈失电,如图3-24(f)所示。
注意:I、AI元件只能用硬件(如闭合I端子外接开关)方式或强制方式赋新值,而Q、T等元件既可用强制方式也可用写入方式赋新值。
3.4.3 用状态图表的趋势图监控调试程序
在状态图表中使用表格监控调试程序容易看出程序元件值的变化情况,而使用状态图表中的趋势图(也称时序图),则易看出元件值随时间变化的情况。
在使用状态图表的趋势图监控程序时,一般先用状态图表的表格输入要监控的元件,再开启梯形图监控(即程序状态监控),单击状态图表工具栏上的“趋势视图”工具,如图3-25(a)所示,切换到趋势图,然后单击“图表状态”工具,开启状态图表监控,如图3-25(b)所示。可以看到随着时间的推移,I0.2、Q0.0、Q0.1等元件的状态值一直为OFF(低电平)。在梯形图或趋势图中用右键快捷菜单将I0.0强制为ON,I0.0常开触点闭合,Q0.0线圈马上得电,其状态为ON(高电平),5s后T37定时器和Q0.1线圈状态值同时变为ON,如图3-25(c)所示。在梯形图或趋势图中用右键快捷菜单将I0.1强制为ON,I0.1常闭触点断开,Q0.0、T37、Q0.1同时失电,其状态均变为OFF(低电平),如图3-25(d)所示。
图3-25 用状态图表的趋势图监控调试程序
图3-25 用状态图表的趋势图监控调试程序(续)