付 斌,邹 华
(1.武汉工程职业技术学院,湖北武汉 430080;2.武钢金山店铁矿,湖北黄石 435006)
PLC广泛应用于各种生产机械的生产过程和自动控制中,成为一种最先进、最重要、最普及、应用场合最多的工业自动控制装置,它不仅可以实现逻辑运算,还具有算术运算、数据处理、联网通信等功能,是具有工业控制指令的微机系统。PLC技术是机电技术人员和操作人员必备的、重要的知识和技能。PLC技术的核心内容是根据生产工艺流程和控制要求使用某种编程语言进行程序设计,梯形语言形象直观、容易掌握,成为了应用最为广泛的编程语言,梯形图不但沿用和发展了电气控制技术,而且其功能和控制指令也远远超过电气控制范畴。由于梯形图的设计是计算机程序设计与电气控制设计思想结合的产物,因此,梯形图设计的难度大,是一项高端、复杂、烦琐的工作。在所有PLC技术的书籍中,关于梯形图语言的编程方法,要么介绍了经验编程法、顺序控制编程法、结构化编程及分部编程等4种编程方法,要么只介绍经验编程法和顺序控制编程法,但对于初学PLC技术的人员,无论采用哪种方法编写控制程序都并非易事,因此另辟蹊径,寻找一种易于掌握、易于理解,应用方便的编程方法十分必要。
作为电气技术人员和操作人员,一般都熟悉数字电子技术,基于此,本文提出了一种关于梯形图语言编程的新方法—数字逻辑法。数字逻辑法已经广泛地应用于生产实际中,例如对某矿选矿车间的天车及抓斗吊进行PLC改造时,编程采用的是数字逻辑法,取得了事半功倍的效果。
编程最常用的方法是经验法,但是经验法没有固定的步骤和模式可以遵循,具有很大的试探性和随意性,对于不同的控制系统,没有一种通用的容易掌握的设计方法。在设计复杂系统的梯形图时,要用大量的中间单元来完成记忆、联锁、互锁及封锁等功能,由于需要考虑的因素很多,它们往往又交织在一起,分析起来非常困难,在设计程序时,不可能把所有的问题考虑得很周到,程序设计出来后需要反复调试,发现错误时再进行修改,即使是非常有经验的工程师,也很难做到设计的程序试车能一次成功。当修改某一局部电路时,很可能会引发出别的问题,对程序的其它部分产生影响,因此对梯形图的修改也很麻烦,往往花费很长时间还得不到满意的结果。另外,用经验法设计的梯形图很难阅读,给系统的维修和改进带来了很大的困难。
所谓数字逻辑法是指根据系统的控制要求,列出类似真值表的状态表,然后根据状态表找出输出变量的逻辑关系式,最后根据逻辑关系式画出梯形图。
数字逻辑法编程时无需试探性编程,更不能随意画梯形图,必须遵循固定的、通用的模式,除了正反转需要联锁外,一般不用考虑联锁、互锁及封锁等功能,因此交织在一起的因素很少,能在较短的时间内完成程序设计,不用太省费省力,大部分情况下,能一次试车成功,特别适合PLC技术的初学者使用。数字逻辑法设计出来的梯形图非常简短、简洁,便于阅读。更重要的是,由于输出变量的状态与输入变量没有直接关系,因此可以将若干个开关或按钮并接在一个输入点上,控制系统所占用的PLC的输入点数大大减少。
下面用两个比较典型的编程实例介绍数字逻辑法的应用。
如图1所示为机床滑台往返、主轴正反转控制。
控制要求是:按下启动按钮→滑台右行,同时主轴电机正转(顺转)→滑台碰SQ2后左行,同时主轴反转(逆转)→滑台碰SQ1又右行。滑台每碰SQ2一次主轴改变一次旋转方向。滑台和主轴按上述规律运行。
图1 主轴-滑台示意图
按照数字逻辑法编程的步骤首先列出输出变量的状态表,如表1所示。同时分配I/O地址,如表2所示。
表1 机床滑台-主轴控制系统状态表
表2 控制系统I/O地址分配表
在表1中,M1.0和M1.1是字MW0的低2位,滑台每碰SQ1、SQ2一次,MW0的内容即计数值加1。M1.0及M1.1的内容以4个工步为一个循环周期,即从第5个工步开始,M1.0及M1.1的内容又从“00”开始按表1中的规律循环,因此只需列出4个工步的状态表。
由于SQ1、SQ2不可能同时动作,因此,在表2中,滑台的左、右限位开关并接在I0.2上,可以节省1个输入点。根据表1中输出变量与M1.0,M1.1的关系很容易找出输出变量的逻辑代数式:
在上述表达式中,Q4.2等于M1.0和M1.1异或,Q4.3等于M1.0和M1.1同或,根据上述逻辑表达式,很容易画出控制程序的梯形图,如图2所示,在程序段5和程序段6中对异或及同异逻辑的梯形图作了标注。
图2 机床滑台-主轴梯形图
如图3所示,某生产线上有一台运料小车停在A点,小车从A点出发,分别到B、C两处运送二种物料到A点,控制要求如下。
(1)如果先按下左行按钮,小车从A点出发先到B点停3s装物料1,然后返回A点停3s卸料,再从A点出发到C点停3s装物料2,返回A点停3s卸料;
(2)如果先按下右行按钮,小车从A点出发先到C点停3s装物料2,然后返回A点停3s卸料,再从A点出发到B点停3s装物料1,返回A点停3s卸料;
(3)物料1和物料2各运送二车到A点后系统停车。
图3 运料小车示意图
按照数字逻辑法编程的步骤首先列出输出变量的状态表,如表3所示。同时分配I/O地址,如表4所示。
表3 运料小车状态表
在表3中,M1.0和M1.1是字MW0的低2位,小车每碰SQ1、SQ2、SQ3一次,MW0的内容即计数值加1。
表4 控制系统I/O地址分配表
由于SQ1、SQ2、SQ3不可能同时动作,因此,在表4中,小车的左、中、右限位开关并接在I0.3上,可以节省2个输入点。根据照表3中输出变量与M1.0,M1.1的关系很容易找出输出变量的逻辑代数式。
如果先按左行按钮:
如果先按右行按钮:
根据上述逻辑表达式,很容易画出控制程序的梯形图,总共有5段。由于篇幅限制,仅给出梯形图的主干部分,如图4所示。
在图4中,M2.0、M2.1分别保持按下右行和按下左行按钮的状态,T0是小车碰SQ1、SQ2、SQ3后延时3s的接通延时定时器,C0是统计小车装料车数的减计数器。
图4 运料小车梯形图(主干部分)
上述二个例子如果采用经验法编程,不仅花费的时间和精力要比数字逻辑法多,而且程序的段数多,每段程序用到的指令也多,逻辑关系比较复杂。如果采用顺序控制法编程,画出顺序功能图也并非易事,特别是复杂的大型程序的顺序功能图更难画,顺序控制法编写的梯形图段数同样很多,花费的时间也比较长。而数字逻辑法只需掌握基本的数字电路知识,就能遵循规律画出梯形图,在很短的时间内完成程序设计,受到了PLC技术初学者的青睐。另外,从节省PLC的硬件资源方面来看,数字逻辑法的优点也十分显著,例如万能铣床的工作台有前后,左右,上下6个方向要进行限位控制,如果采用数字逻辑法编程,6个限位开关可以并接在一个输入点上,能节省5个输入点,意义重大。数字逻辑法不适用于很多厂家的PLC,应用范围广泛。
由于PLC外围电路接线非常简单,上述二个实例均略去了接线图。
[1]廖常初.S7-300/400PLC应用技术[M].北京:机械工业出版社,2011.