摘要:以FX型PLC为例,对四选一程序的编制方法进行了介绍;给出了用SUB指令进行单个信号接通判别的一个方法,例举了用步进梯形图指令STL编制的四选一程序。
关键词:输入输出;SUB指令;STL指令;软件仿真
在某些设备中,有多个工位、而每次只允许一个工位工作,例如
《自学自会PLC指令——三菱FX2N编程技术及应用》 (莫操君 编著)一书中(下称文献[1]),图6-11所示的情况。
而在文献[1]的第6.3节,还专门谈到了“多选一程序的编写”;据此,本文以四选一为例,就FX型PLC谈谈程序的编制方法。
1.问题描述 实际问题中,随着工艺要求、产品对象的不同,对程序会有针对性的个体要求。由于本文主旨是编程方法的介绍,为具一般性,故把问题归结为输入对输出的控制,即:
给定四个输入X0、X1、X2、X3,四个输出Y0、Y1、Y2、Y3;每个输入对应一个输出,但每次最多仅允许一个输出接通;当输入X0~X3全部断开时,输出Y0~Y3保持前一状态不变;参见表1。
从表1可看出,输入信号的正确,是保证输出正确的前提。所以,对于该问题的编程思路,可以是:
(1)判断信号是否正确;
(2)根据输入信号状态决定输出。
也就是,有且仅有一个输入接通时,将转换到对应的输出。例如,开始时,X0~X3、Y0~Y3全是断开的;接通X0、则Y0接通,断开X0、Y0保持接通;再接通X1,则Y0断开、Y1接通;如此类推。
当然,在X0~X3全断开的情况下,也可以设定条件使Y0~Y3全断开。
2. 判别是否只有一个输入接通 对于输入信号数量的判别,文献[1]分别用SUM、ADD、FOR、LD=、INC等指令进行了介绍;按照文献[1]的思路,本文试用减法指令(SUB)来判别是否只有一个输入接通。
参见图1,M8020是零标志,当SUB指令运算结果为0时,M8020接通。例如,当X1接通,则M1接通,由位元件组合成的字(K4M0)=1,所以M20接通。
同样地,(K4M0)分别等于2、4、8时,有对应M21、M22、M23接通。
由于X1~X3有接通者时,(K4M0)有确定的值。也就是,当(K4M0)等于1,就不会等于2、4、8;等于8,就不会等于1、2、4。
因此,当M30接通时,就表示只有一个输入接通;若有输入接通而M30不通,则表示输入信号不正确。
在出现错误信号时,可以给出提示信号,或者将信号锁定、等待处理。具体如何编程,应根据试验要求或工艺要求而定。
3 对应输出的实现
3. 1 主要用基本指令编程
接图1程序,用基本指令实现四选一输出的程序见图2。该程序,当有多个接通信号时,输出保持原状态不变,后接通的信号无效。
倘若图2程序中的Y0~Y3,分别代表一个过程、或者一系列输出,则再按这种思路编程,程序将会比较复杂。
这时,可以试用其他方法编程,例如三菱FX系列PLC的步进梯形图指令(STL、RET)。
3. 2 采用STL指令编程
采用选择性分支,其状态转换图参见图3。当输入信号正确时,转换到相应的流程。例如,当仅有X0接通时,M0接通,则状态器转换到S21接通。实际程序中,在STL 21之后,还可以设立一系列动作或状态。
根据图3,接图1编制一个示意程序如图4所示。同样地,当有多个输入信号接通时,该程序将保持原输出不变。
将图1、图4程序结合,用“梯形图逻辑测试”进行仿真。
运行程序,强制接通X0,可见到Y0接通;同样,单个接通X1、X2、X3,则分别对应有Y1、Y2、Y3单个接通。
若需在多于一个输入接通信号时,禁止输出或作其他处理,可另编制相应的程序。图4程序可由编程软件转换为SFC程序。
4.后语 本文已将实际问题进行了简化,仅是一种思路的介绍,主要供初学者学习参考。实际编程时,根据要求的不同,会有更多的考虑。
图4程序,与文献[1]图6-18类似;关于该问题的更多讨论,可参见文献[1]。
(于2009年11月27日)
参考文献:
[1] 莫操君.自学自会PLC指令——三菱FX2N编程技术及应用[M].2009. [ 此帖被qlin在2009-12-08 12:44重新编辑 ]