2.4 同步时序逻辑编程
2.4.1 异步时序逻辑同步化
1.三个要点
PLC异步时序逻辑同步化有3个要点:
1)使用同步脉冲。除逻辑条件用持续的ON或OFF信号外,所有引起输出变量或内部状态变量变化的输入信号都使用脉冲信号,即用ON或OFF一个扫描周期的信号。以确保:只是在脉冲信号作用期间才有输出变量或内部状态变量变化;而无脉冲信号作用的扫描周期,输出变量或内部状态变量都不发生变化。
2)保持同一扫描周期各个输出的输入逻辑条件保持一致。具体是在存在脉冲作用的扫描周期中,应做到先执行的指令所引起的输出变量或内部状态变量变化,不改变后执行指令的执行条件。以确保如同步脉冲电路一样,在脉冲信号作用期间,所有输出变量及内部变量状态变量的变化都与脉冲信号作用前相同。
3)I/O刷新应在同步时序相关的程序执行后进行,以确保控制动作能按同步要求实现。
2.逻辑条件一致
有3种方法可做到前后逻辑条件一致:
1)合理地安排指令的先后顺序。在脉冲信号作用下执行“某一梯级指令”,可能产生某输出或内部状态改变,而这个改变又可能改变“别的一组指令”的执行条件,则应把这“某一梯级指令”排在后面,后执行;而可能被其变化的而改变指令执行条件的这个“别的梯级指令”排在前面,先执行。这可使得本输出或内部状态改变不会在本扫描周期内对别的变量的处理产生影响,可做到前后逻辑条件一致。
但是,在关系较复杂的梯形图中,有时难以对所有的输出或内部状态变量都能达到上述要求。这时,就要用以下两种方法。
2)利用有关输出或内部变量变化产生的脉冲信号,对变量的变化进行屏蔽。其目的是在本脉冲作信号作用周期中,如某个变量有所变化,但在其后的要执行的指令中,如有该变量,那该变量要按变化前的状态取值。
3)对输出作中间记录。在所设计的梯形图后面,加入一组逻辑,对输出及内部状态作中间记录,以把该梯形图的有关输出或内部变量变化记录下来。记录办法是用有关输出或内部变量作为常开触点,去控制一个对应的内部变量,并用这个对应的内部变量去取代在原梯形图中,用以建立各个逻辑条件的原输出与内部变量。
这3种方法较简单与便于使用的还是对输出作中间记录。尽管它可能要多用一些内部器件及增加一些指令。
2.4.2 同步时序逻辑表达式与状态图
1.表达式
同步时序逻辑的表达式与异步时序逻辑的相同,也是分为启动与保持两个部分。也可用置位(S)及复位(R)指令处理。某个位的置位,其逻辑条件即为它的启动,与启动电路(Qi)对应,而复位则只是它的保持逻辑条件的非,与保持电路中Bi的非对应。
2.状态图
状态图由一系列状态节点(圆圈及在其上的状态标识)及节点间的有向连线组成。用以代表同步时序逻辑各个节拍的状态及其转换与输出。
每一状态的标识都用一组布尔变量的不同取值表示。其各个位的取值,代表其因子(变量或变量的非)的乘积项(逻辑与)为1。如某个状态,代表它的因子乘积项为xyz,那就用101表示它的状态。因为,只有当X取值为1,Y取值为0,Z取值为1时,代表这个状态的乘积项xyz,才为1。为了简化,也可一个状态用一个二进制变量取值1代表它,0不代表它。只是,这么处理需多用些变量。但这对内部期间丰富的PLC是可以接受的。
有向连线代表状态转换,要标注实现这个转换的当前脉冲信号输入(注在斜线的左方),还要标注这个转换后的输出(注在斜线的右方)。
图2-15即为一部分状态图。表示了有3个节点Si-1、Si及Si+1。Si-1到Si,由于输入Xi的作用。在此转换后,产生Yi的输出组合。Si到Si+1,由于输入Xi+1的作用。在此转换后,产生Yi+1的输出组合。
2.4.3 同步时序逻辑分析
同步时序逻辑分析也是研究设计好的程序,也是在“纸面”上“运行”程序。具体方法是按脉冲输入的实际顺序,逐一分析所有器件的状态,确定其是0、OFF、不工作,还是1、ON、工作,进而弄清程序能否实现预定的功能。
图2-15 部分状态图
图2-16所示是“格雷码”计数器。其主令信号PA为脉冲信号(图中未列出它的产生)。G0、G1、G2为输出,而mG0、mG1、mG2用以记录G0、G1、G2。以下为用状态图对其分析:
图2-16 脉冲计数梯形图程序
起始时,G2、G1、G0全为0,其状态用000表示。mG2、mG1、mG0也全为0。这时,如计数脉冲PAON,在执行计数段指令时,mG2、mG1、mG0状态不会变,仍然全为0,从分析G0、G1、G2起动逻辑知,G0起动条件为1,将工作,ON。而G2、G1起动条件均为0,不可能工作,仍都为0。
接着,执行中间记录处的几条指令。执行后mG0、mG1、mG2对G2、G1、G0的变化了的状态做了记录,为以后计数脉冲的作用提供新的逻辑条件。但不会对本扫描周期计数段指令的执行起作用。因为,到了下一个扫描周期,计数脉冲已OFF,G1、G2不可能起动。G0则由于计数脉冲的非为1,保持条件为1,肯定将继续ON。可知,000状态,接受一个计数脉冲后,将变为001。
在001时,若计数脉冲PA再ON,在执行计数段指令时,mG2、mG1、mG0状态不变,为001,从分析知,G0保持条件为1,将保持工作,仍为ON。而G1起动条件为1,将起动、工作,变为ON。而G2起动条件为0,不能工作,仍为0。之后,执行中间记录处的几条指令。执行后,mG2、mG1、mG0将记录为011。又为下一次计数做准备。可知,001状态,接受一个计数脉冲PA后,将变为011。
在011时,若计数脉冲PA再ON,在执行计数段指令时,mG2、mG1、mG0状态不变,为011,从分析知,G0保持条件为0,起动条件也为0,G0将停止工作,转为OFF。而G1保持条件为1,将保持工作,仍为ON。而G2起动条件为0,不能工作,仍为0。之后,执行中间记录处的几条指令。执行后,mG2、mG1、mG0将记录为010。又为下一次计数做准备。可知,011状态,接受一个计数脉冲后,将变为010。
在010时,若计数脉冲PA再ON,还可做类似的分析,可知它将为110。再接着为111。再接着为101。再接着为100。再接着为000。
把上述分析,按状态图的约定,即可得出它的状态图,如图2-17所示。
从状态图分析可知,这里状态的变化正是按“格兰码”计数器的计数规律变化的。
2.4.4 同步时序逻辑综合
梯形图逻辑状态图法综合的目的也是要编写出满足设计要求并满足设计条件约束的PLC程序,是分析的反问题。
图2-17 “格兰码”计数器状态图
状态图法综合的步骤如下:
1)信号分析:确定有效主令信号及反馈信号,并使其变为所需要的脉冲信号。
2)状态分析:确定基本工作状态、可能工作状态及不使用状态,及这些状态间的转换与转换条件。
3)画状态图:按确定的状态及其转换初画状态图。
4)简化状态图:依据状态图化简原则简化状态图。简化的原则是,两个或多个状态,如原输出相同,进入次一个状态的信号及产生的输出又相同,则可合并、视为同一个状态。
5)定变量:确定用以表达状态的变量及其编码,确定输出变量。
6)列表达式:依各变量在状态图中的关系,列写各变量的逻辑表达式,并化简各表达式。
7)画梯形图:依据化简后的表达式画出梯形图。
以下用实例说明状态图法综合的过程。
2.4.5 同步时序逻辑综合实例
1.格兰码计数器设计
设计过程如下:
1)信号分析。有效信号用脉冲信号pA,它是本控制的主令信号,用以驱动计数。
2)状态分析。基本状态(用G0、G1、G2取值代表)有:000、001、011、010、110、111、101、100。之后又回到000。
3)画状态图。即图2-17。
4)列表达式。可简单依据状态转换顺序列写。
从状态000到001,G0置位,即
SET(G0)=(000)∗pA
从状态001到011,G1置位;
SET(G1)=(001)∗pA
从状态011到010,G0复位;
RESET(G0)=(011)∗pA
从状态010到110,G2置位;
SET(G2)=(010)∗pA
从状态110到111,G0置位;
SET(G1)=(110)∗pA
从状态111到101,G1复位;
RESET(G1)=(111)∗pA
从状态101到100,G1复位;
RESET(G1)=(101)∗pA
从状态100到000,G2复位;
RESET(G2)=(100)∗pA
5)根据所列表达式或梯形图程序如图2-18a所示。
这里用mG0、mG1、mG2记录G0、G1、G2。将此梯形图转化为起保停逻辑即为图2-18b所示程序(图2-18a的中间记录条9、10、11略)。再将多余触点去除即与图2-16所示程序类似。
2.旋转自动门工作控制
设计一个旋转自动门控制梯形图逻辑。其要求是:当电源开关处于ON时,进入工作状态;反之,为退出工作状态。在工作状态下,如检测到门前有人,则自动门正转;如检测不到门前有人,经若干延时,并到达给定位置后自动门停转。在正转时,如检测到自动门闯人或夹人,则自动门反转;这时,如检测到不再闯人或夹人,经若干延时,自动门又恢复正转。从设计要求可知:
(1)信号分析
图2-18 和利时或ABBPLC格兰码计数程序
主令信号有:电源开关信号,对应的有电源开关ON脉冲信号(Pd)及电源开关OFF脉冲信号(Pdn)。
反馈信号有:检测门前有否人,用光电开关。对应的有,检测到门前有人光电开关ON脉冲信号(Py),检测到门前有人光电开关OFF(门前没人)延时脉冲信号(Pyn)。
检测到门是否闯人或夹人,用光电开关。对应的有,检测到门闯人或夹人光电开关ON脉冲信号(Pc),检测到门闯人或夹人光电开关OFF(不闯人或夹人)延时脉冲信号(Pcn)。
自动门到位与否,用行程开关。对应的有,自动门到位脉冲信号(Pw)。
(2)状态分析
1)基本工作状态有:
状态0:自动门不工作。如检测到电源开关ON脉冲信号(Pd),则进入状态1。
状态1:自动门处工作状态。但既不正转,也不反转。如检测到门前有人光电开关ON脉冲信号(Py),则进入状态2。
状态2:自动门正转。如检测到门闯人或夹人光电开关ON脉冲信号(Pc),则进入状态4。如检测到门前有人光电开关OFF(门前没人)延时脉冲信号(Pyn),则进入状态3。
状态3:自动门正转。如检测到自动门到位脉冲信号(Pw),则进入状态1;如又检测到门前有人光电开关ON脉冲信号(Py),则又回到状态2;
状态4:自动门反转。如检测到门闯人或夹人光电开关OFF(不闯人或夹人)延时脉冲信号(Pcn),则又回到状态2。
2)可能状态有:
状态4A、状态4AA:处状态4时,自动门反转,但这时可能检测到Pyn信号。对此要用一个状态(状态4A)作记录,即从4转到4A,自动门仍应反转。这时,如检测到Pcn信号,也要用一个状态(状态4AA)对此作记录,但自动门仍正转。在状态4AA时,如接收到Pw信号,则转为状态1,自动门工作,但停转;如检测到Pc信号,那又要回到状态4A,自动门又反转。
状态1A、状态1AA:处状态1时,自动门处工作状态。但这时可能检测到Pc信号。这可用一个状态(状态1A)对此应作记录,并使自动门反转。这时,如检测到Pcn信号,则也要用一个状态(状态1AA)作记录,自动门转为正转。在状态1AA时,如接收到Pw信号,则转为状态1,自动门工作,但停转;如检测到Pc信号,那又要回到状态1A,自动门又反转。
状态1AAA:处状态1A时,也可能检测到Py信号。故要用一个状态(状态1AAA)作记录,自动门仍应反转。直到检测到Pcn信号时,转到状态2,自动门正转。当然,在1AAA时,也可能又检测到Pyn信号,那又要回到状态1A。
另外,在所有状态下,只要检测到电源开关OFF脉冲信号(Pdn),则进入状态0,自动门不工作。
总之,自动门所有可能的状态都要考虑到,不能遗漏。应避免有的有效信号得不到反应或记录,那样,PLC将不可能所要求的实现控制。
(3)画状态图
根据以上状态的描述,初画出如图2-19所示状态图。为了清晰,该图未把在任何状态下,如检测到Pdn信号,都转到状态0画出(只把状态1,检测到信号Pdn转到状态0画出)。
对初画的状态图可进行化简。其原则是:两个或多个状态,如原输出相同,进入次状态的信号及产生的输出又相同,则可合并,可视为同一状态。如图2-19的状态1AA、4AA与状态3,可视为同一状态,可合并。状态4及状态1AAA也可视为同一状态,也可合并。经合并后的状态图如图2-20所示。
图2-19 初画自动门控制状态图
再观测图2-20可以看出,状态1A与状态4A仍可合并,合并后如图2-21所示。到此没有可合并的状态了,因而,也就完成了状态图的设计。
图2-20 自动门控制状态图化简
从本例可知,状态图设计与通电表唯一性设计是不同的。状态图设计是状态化简,逐步减少状态;而通电表设计是避免逻辑条件相混,逐步增加内部变量(在某种意义上讲,也可说是增加状态)。同时,状态图的化简不是必要的,也可不化简。这时,只是内部变量要多用一些,但仍可实现所要求的控制。而通电表唯一性设计则是必要的,唯一性原则不满足,将不能实现所要求的逻辑控制。
图2-21 化简后自动门控制状态图
(4)确定变量
状态变量:本例共有6个状态,用3个内部变量M3、M2、M1的不同取值,即可把这6个状态分开。如本例各状态用二进制编码:
000(M3=0、M2=0、M1=0)代表状态0;
001(M3=0、M2=0、M1=1)代表状态1;
010(M3=0、M2=1、M1=0)代表状态2;
011(M3=0、M2=1、M1=1)代表状态3;
100(M3=1、M2=0、M1=0)代表状态4;
101(M3=1、M2=0、M1=1)代表状态1A。
输出变量:本例的输出变量有:
工作,用输出点YY0控制;
正转,用输出点YY1控制;
反转,用输出点YY2控制。
没有以上3个输出,即为不工作。
(5)列写逻辑表达式
有了化简后状态图及状态与输出变量,就可列写逻辑表达式。
状态变量逻辑表达式:
M1置位:在状态1、3及1A为1,从其它状态进入此状态应置位。从图2-21知:需置位的有:状态0到状态1(Pd作用);状态2到状态1(Pyn作用);状态4到状态1A(Pc或Pyn作用)。
具体表达式为
SET(M1)=(000)∗Pd+(010)∗Pyn+(100)∗(Pc+Pyn)
M1复位:状态0、2及4为0,从其它状态进入此状态应复位。从图2-21知:需复位的有:状态1到状态2(Py作用);状态1A到状态4(Py作用)。再有就是检测到Pdn时,也要复位。表达式为
RSET(M1)=(001)∗Py+(101)∗Py+Pdn
M2置位:在状态2、3为1,从其它状态进入此状态应置位。从图2-21知:需置位的有:状态1到状态2(Py作用);状态4到状态2(Pcn作用);状态1A到状态3(Pcn作用)。
具体表达式为
SET(M2)=(001)∗Py+(100)∗Pcn+(101)∗Pcn
M2复位:状态0、1、4及1A为0,从其它状态进入此状态应复位。从图2-21知:需复位的有:状态2到状态4(Pc作用);状态3到状态1(Pw作用);状态3到状态1A(Pc作用)。再有是检测到Pdn时,也要复位。表达式为
RSET(M2)=(010)∗Pc+(011)∗Pw+(011)∗Pc+Pdn
M3置位:在状态4及1A为1,从其它状态进入此状态应置位。从图2-21知:需置位的有:状态3到状态1A(Pc作用);状态2到状态4(Pc作用);状态1到状态1A(Pcn作用)。
具体表达式为
SET(M3)=(011)∗Pc+(010)∗Pc+(001)∗Pc
M3复位:状态0、1、2及3为0,从其它状态进入此状态应复位。从图2-21知需复位的有:状态1A到状态3(Pcn作用);状态4到状态2(Pcn作用)。再有就是检测到Pdn时,也要复位。表达式为
RSET(M3)=(101)∗Pcn+(100)∗Pcn+Pdn
输出变量逻辑表达式:
这式子可进行化简,但在此不做介绍。
(6)画梯形图
依化简后的逻辑表达式画出梯形图。
图2-22是它的梯形图程序,是按照未化简的逻辑关系画出的。同时,也未把脉冲信号的梯形图程序画出。因为M是西门子、三菱PLC的关键词,所以,图2-22b、图2-22c用H替代M,如H1替代M1、H22替代M22等。
图2-22是依据上述逻辑表达式画出的,有3个部分,一为状态转换逻辑;二为输出逻辑;三为中间记录逻辑。
图2-22 自动门控制梯形图程序
3.煤气加热炉切阀、转换阀控制
图2-23为煤气加热炉切阀、转换阀工作示意图。左右切阀、转换阀要定时切换,或按要求切换,以实现储热节能及喷嘴不超温。其具体工作过程是左、右煤气切阀交替开通,空气、烟气转换阀左右转换,总是处于图2-23a,或图2-23b状态之一。处于图2-23a状态时,空气从左喷嘴进入炉子,并冷却左喷嘴(加温空气);而烟气从右喷嘴排出,加温右喷嘴(储热);左切阀进煤气,右切阀关闭。处于图2-23b状态时,空气从右喷嘴进入炉子,并冷却右喷嘴(加温空气);而烟气从左喷嘴排出,加温左喷嘴(储热);右切阀进煤气,左切阀关闭。
图2-23 切阀、转换阀工作示意图
L—左切阀 R—右切阀 M—转换阀
输出用3个变量LL、MM、RR,分别代表左煤气切阀、空气、烟气转换阀、右煤气切阀。根据以上描述,系统总是处于100(左切阀开,转换阀置左位置)或011(右切阀开,转换阀置右位置)状态之一。其切换的工艺要求是,每当送入控制脉冲AA,则先关已开的切阀,切阀关到位后,转换阀转向,换向到位后,再开原关闭的切阀。
阀动作反馈信号用相应的行程开关。具体有:左切阀开到位开关(Ld),左切阀关到位开关(Ln),右切阀开到位开关(Rd),右切阀关到位开关(Rn),转换阀置右位置开关(Md),转换阀置左位置开关(Mn)。
设计过程如下:
(1)信号分析
有效信号有:脉冲信号pA,它是本控制的主令信号,用以驱动状态的转换。
反馈脉冲信号有:左煤气切阀开到位脉冲信号(pLd);左煤气切阀关到位脉冲信号(pLn);右煤气切阀开到位脉冲信号(pRd);右煤气切阀关到位脉冲信号(pRn);空气烟气转换阀置左位置到位脉冲信号(pMd);空气烟气转换阀置右位置到位脉冲信号(pMn)。
(2)状态分析
1)基本状态(用L、MM,、R取值代表)有:
100:左煤气切阀开(1表示);空气烟气转换阀置左位置(0表示);右煤气切阀关(0表示)。100是稳定的工作状态。此时,若来脉冲信号pA,则转换为000,即左煤气切阀关(0表示),其它不变。
000:左煤气切阀关(0表示);空气烟气转换阀置左位置(0表示);右煤气切阀关(0表示)。此时,若伴随的是脉冲信号pLn,则转换为010,即空气烟气转换阀置右位置(1表示),其它不变;若伴随的是脉冲信号pMn,则也转换为100,左煤气切阀开(1表示),又回到状态100。显然,000只是过渡状态。
010:左煤气切阀关(0表示);空气烟气转换阀置右位置(1表示);右煤气切阀关(0表示)。此时,若伴随的是脉冲信号pMd,则转换为011,即右煤气切阀开(1表示),其它不变;若伴随的是脉冲信号pRn,则也转换为100,又煤气切阀关(0表示),返回到状态100。显然,000也只是过渡状态。
011:左煤气切阀关(0表示);空气烟气转换阀置右位置(1表示);右煤气切阀开(1表示)。011也是稳定的工作状态。此时,此时,若来脉冲信号pA,则转换为010,即左煤气切阀关(0表示),其它不变。
2)可能状态:在工作开始时,可能系统未进入两个稳定状态(100、011)之一,而处于000状态。此时如接收到A脉冲信号,应进入100状态。
3)其它状态,如101、001、111,偶尔也可能出现。为了可靠,则应强制使其转入临近的稳定状态。如101转为100,如001转为011,如111转为011。
(3)画状态图
根据以上状态分析,可画出对应的状态图,如图2-24所示。
(4)列表达式
L置位:在状态100为1,从状态000进入此状态应置位。从图2-24知:需置位的有:状态000到状态100(pMn或pA作用)。
具体表达式为
SET(L)=(000)∗(pMn+A)
L复位:状态000、010、001、011为0,从其它状态进入此状态应复位。从图2-24知:需复位的有:状态100到状态000(pA作用);处状态111,应自动复位。
具体表达式为RSET(Y1)=(100)∗pA+(111)。
图2-24 切阀、转换阀控制状态图
MM置位:在状态010、011为1,从其它状态进入此状态应置位。从图2-24知:需置位的有:状态000到状态010(pLn作用)。
具体表达式为SET(MM)=(000)∗pLn。
MM复位:状态000为0,从其它状态进入此状态应复位。从图2-24知:需复位的有:状态010到状态000(pRn作用);处状态110应自动复位。
具体表达式为RSET(MM)=(010)∗pRn+110。
R置位:在状态011为1,从其它状态进入此状态应置位。从图2-24知:需置位的有:状态010到状态011(pMd作用);处状态001应自动置位。
具体表达式为SET(R)=(010)∗pMd+001。
R复位:状态010为0,从其它状态进入此状态应复位。从图2-24知:需复位的有:状态011到状态010(pA作用);处状态101应自动复位。
具体表达式为RSET(R)=(011)∗pA+101。
(5)画梯形图
依化简后的逻辑表达式画出梯形图。
根据以上表达式画出的梯形图如图2-25所示。图2-25a、图2-25b用KEEP指令替代SET与RESET指令。脉冲生成程序略。
图2-25 切阀、转换阀控制梯形图程序