一组PLC程序的逻辑错误分析
5 第二个十字路口交通灯控制程序
本节讨论另一本书上的交通灯控制程序中的错误。这一程序没有处理强通控制这样的复杂问题,但是人行道控制同主干道控制分开处理,结果在人行道控制上出现了错误。
题目:交通灯控制程序
来源:plc应用开发实用子程序
编程平台:西门子s7-200
时序控制:(90秒周期)
南北主干道 左转绿10秒,绿30秒,绿闪3秒,黄2秒,红45秒;
东西人行道:红13秒,绿27秒,绿闪3秒,红47秒;
东西主干道: 红45秒,左转绿10秒,绿30秒,绿闪3秒,黄2秒;
南北人行道:红58秒,绿27秒,绿闪3秒,红2秒。
注:
(1)绿闪包括转向绿灯和转向绿灯;
(2)东西人行道指东西两端的人行道。
测试显示该程序时序上运行正确,但是在关机时出了问题。
程序错误:按下系统停止开关,大部分灯都熄灭,但两个方向的人行道上亮起红灯。
程序分析:
我们以控制东西方向人行道红灯的变量q1.3的计算为例进行分析。下面把相关程序段专门抽出来进行分析(见图10)。

图10 相关程序段分析图
图中可见,当m0.4为0时q1.3将输出1。当t7,t8为0时m0.4必定为0。系统停止开关是i0.2,它按下之后会使m0.1变为0,该变量是控制系统活动的主要变量,它变为0将使一系列变量变为0,也包括t7和t8。然而这样做却没有关掉东西两端人行道的红灯。南北两端人行道红灯采用的是类似程序,因此也没有关掉。
程序修正:
只需把m0.1直接加入到人行道红灯的控制中即可。
6 结束语
本文分析了来自两本plc教材的4个程序例子,从中找出大大小小8个错误,并对这些错误的原因进行了分析。我们希望这个分析能够帮助程序员减少编程错误。
本文目的是为了揭示plc程序错误的普遍性。这些错误不能简单归咎于作者的失误,主要原因是编程模式的复杂性以及测试手段的缺乏。
失误是人类的普遍行为。对于计算机程序这样复杂的对象,出错经常出现。程序编制过程本身就是一个不断尝试不断纠正错误的过程。然而,在plc领域,离线的调试工具比较薄弱,迄今为止的调试方式依然是现场调试,但是这一方式过于耗费时间,而且一般教师和学生都没有这样的条件。这是程序错误率高的根本原因。
同前一程序相比,这一程序中增加了t0,t1等定时器。定时器用t标识,它的上方是定时器变量名,下方是预定的定时延迟。本例使用的是ton类型定时器,这种定时器只要输入端由0转1计时就开始,在计时过程中,输入端必须始终保持为1,一旦定时器到时,它所对应的变量就立即由0转1。在计时过程中,如果输入端转0,则计时停止,定时器到时之后,只要输入端继续为1,那么计时器变量也继续保持为1,一旦输入变0,计时变量也转为0。本例中的定时器按十分之一秒为单位计时。
这个程序含有三个错误,它的某些喷头在预定停止的时刻没有停止,在预定开始的时刻没有开始。
程序错误(1):按照要求程序开始后20秒,c组喷发应该停止,但该程序却没有停止c的喷发。
原因分析
c的喷发受到m1,m2和m3的控制,它们分别控制c组的第一,第二和第三次喷发。在第二次喷发结束之后,m2为0,喷发本应停止,但调试中发现c的输出(y0002)继续为1,单步调试发现,此时m1为1,由此造成c组输出继续。分析发现,产生m1的梯形图有错。应该使用m1来产生反馈,但程序中用了b组的输出变量y0001。该变量恰好在c组第二次喷发之后重新置1,因此造成了c组继续喷发。将此处改成m1之后这一错误即可消除。
程序错误(2):程序开始后50秒,a组喷发应该重新开始,但实际运行中并未开始。
原因分析:
这是一个定时时间写错的简单错误。定时器t4设定的时间应为5秒(50),但梯形图中错写成100(该书指令表程序中也是写50,梯形图中是一个失误)。
程序错误(3):在纠正了上面两个错误之后,程序依然无法通过测试。50秒之后,c组不应该开始喷发,但实际运行中喷发。
原因分析:
50秒之后,程序进入下一周期。此时程序该如何运行在原书中没有清楚描述,这属于描述不全。根据程序的具体实现,可以看出作者的意图是在50秒之后把整个喷发过程重演一遍。基于这样的理解,程序应该在50秒之后开始a组喷发,但程序运行结果是,不但a组喷发,而且c组也喷发,后一行为不符合规定。
出现这一现象的原因在于,m0的梯形图中使用了y000来实现反馈。这一错误同第一个错误类似,只是这一方式在一个周期的运行中没有问题,在第二周期中就会出现问题。在该图中用m0取代y000就能消除这一错误。
在消除了以上问题之后得到梯形图如图6所示。

图5 定时器分配程序图

图6 梯形图
西门子PLC模块,变频器,触摸屏,交换机
从事智能科技、自动化科技、机电领域内的技术开发、技术转让、技术咨询、技术服务,工业自动化设备安装,工业自动化控制设备、电气设备、机申设备、电子产品、五金产品、金属材料、仪器仪表、橡塑制品销售,商务信息咨询,软件开发,建筑装修装饰建设工程专业施工,建筑安装工程(除特种设备),机械设备租赁(不得从事金融租赁),物业管理。工业自动化设备加工、销售。
本公司销售的一律为原装正品,假一罚十,可签正规的产品购销合同,可开增值税发票,税点另外算,24小时销售热线:15221406036 本公司销售的一律为原装正品假一罚十可签正规的产品购销合同可开增值税发票税点另外算24小时销售热线15221406036 西门子触摸屏代理商,西门子一级代理商,西门子中国授权总代理 ----浔之漫智控技术(上海)有限公司 本公司专业经销合信/CO-TRUST科思创西门子PLC;S7-200S7-300 S...