2.3 异步时序逻辑编程
关键词:分析、综合、梯形图逻辑、节拍、主令信号、反馈信号、有效输入、长信号、短信号、计数信号、通电表
继电器电路是典型的异步时序逻辑。PLC顺序控制也多是异步时序逻辑。本节将介绍异步时序逻辑编程。
2.3.1 异步时序逻辑表达式与通电表
1.表达式
(1)有关约定。继电器电路要用到线圈。所以,在触点代数约定的基础上,还应增加一些约定。具体为,线圈与受其控制的触点名称相同,线圈工作、ON,用1表示。这时,其常开触点接通,常闭触点断开。线圈不工作、OFF,也用0表示。这时,其常闭触点接通,常开触点断开。
PLC没有线圈及受其控制的触点,用的是操作数“位”的写与读。如果调用OUT指令,并用1写操作数“位”,相当于使线圈工作。这时,如直接调用它,相当于使用常开触点,则ON;如调用它的“非”,相当于使用常闭触点,则OFF。如果用0写操作数“位”,相当于使线圈不工作。这时,如调用它,则OFF;如调用它的“非”,则ON。
操作数“位”也可调用OUT-NOT(有的PLC无此指令,则没有这个操作;有的有此指令,但名称拼写可能不同)指令写它。它与上述OUT指令调用相反,为“非”的关系。OUT-NOT指令用0写,其结果相当于OUT指令用1写。OUT-NOT指令用1写,其结果相当于OUT指令用0写。
此外,PLC还可调用相关指令或功能块,以使用转换机构记录输入历史。其结果也可参与对输出的控制。
(2)基本表达式。为根据实际电路或PLC异步时序逻辑关系直接列写的表达式。
对继电器电路,与触点电路不同的是,表达式左边可能是线圈,如本书绪论图0-4串联起、保、停电路,根据以上约定,其表达式为
这里,等式左边的KM就是线圈。而等式右边的KM为线圈KM控制的常开触点,是对线圈工作的反馈控制。
对PLC异步时序逻辑程序,表达式左边为向变量写数据。如图2-2 PLC程序的各个“条”可列写逻辑表达式如下:
以上为“条”0与1的表达式。其他各“条”的也类似。这里略。
这里,等式左边为向WW1、MM1写数据,其结果值为等式左边的各变量,含WW1、MM1之前的原来值,逻辑运算后的结果值。WW1、MM1原来值就是对WW1、MM1新值的反馈。
提示:这里等式左右两边的WW1、MM1,虽然名称相同,但其取值存在时间差。实际数值不完全相同。
(3)一般表达式。把基本表达式按一般格式等价转换后的表达式。
一般讲,对仅是串并触点控制的继电器线圈,或仅用LD、OUT、AND、OR、AND-NOT、OR-NOT、AND-LD、OR-LD等基本指令控制的PLC写变量,其逻辑表达式为
Ji=fi(a1、a2、…、aj…an,J1、J2、…、Jk…Jm)
式中 aj——输入继电器的触点,可能为常开,也可能常闭;
Jk——内部辅助、输出继电器触点,可能为常开,也可能常闭。
可以不用证明,上式总是可以分解成式(2-2)所示的一般表达式。它分成两组,一组为含有自身触点这个因子,为起动;另一组不含自身触点这个因子,为保持。即
Ji=Qi+BiJi (2-2)
式中,Qi、Bi都不含Ji的因子。从硬件意义上讲,式左边的Ji代表线圈,右边Ji代表它的触点。
其对应的梯形图如图2-24所示。
读者可能要问,怎么没有Ji非的因子呢?主要是考虑以自身的常闭触点去控制自身的线圈,没有实际意义。不然,如图2-25所示,其含义是:每执行一次这组指令,Ji的状态变换一次。无特殊需要,一般不作这样设计。
图2-24 与式(2-2)对应的梯形图
图2-25 不稳定电路
有了这个思路,处理继电器电路或异步时序逻辑,也可用组合逻辑的方法了。分析时,分别分析起动与保持两个部分:
1)起动。关键看由0变为1的条件。只要它变为1,且“保持”也为1,这个输出如未起动,则起动(为1)。而且一旦起动,之后如“保持”一直为1,其输出将继续为1。
2)保持。关键看由1变为0的条件,只要变为0,且起动不为1,这个输出如为1,则停止,不再工作。而一旦断电,之后又没有起动,其输出将继续保持0。
PLC还用有锁存指令,它分有置位(S)及复位(R)。置位实质上即为起动,与起动电路(Qi)对应,复位实质也只是保持的非,与保持电路中Bi的非对应。
梯形图输出还有OUT-NOT指令。它是OUT取反。也可列写表达式,但由于OUT-NOT指令不常用,故这里略。
(4)多输出逻辑表达式。若上述逻辑关系作更一般用的讨论,其逻辑表达式将是:
这里有p个输入,即x1,x2、…、xp,同时还含有它们的非。r个输出,即y1、y2、…、yr,同时还含有它们的非。而且输入端的y与输出端的y的取值是有时差的,入端的y为前一次的值。对应的有r个y表达式。
此外,还有q个变量表示内部状态的变量,即m1、m2、…、mq,同时还含有它们的非。而且,输入端的m与输出端的m的取值也是有时差的,入端的m为前一次的值。对应的有q个m表达式。图2-26表示的为时序逻辑的入出关系。
从图2-26可知,它有两个网络:输出网络与内部状态网络。而且两个网络都可能有输出与内部状态变量的反馈,即它的输出又可能成为它自身的输入。只是t时刻的输出与内部状态的取值取决于t′时刻的输出、内部状态的取值及t时刻的输入的取值。这里t′可能(同步时序处理时)全为t-1,也可能(异步时序)有的为t-1,有的为t,以至于很多中间的过渡时间,关系较复杂。
图2-26 时序逻辑入出关系
2.通电表
异步时序逻辑的重要特点是讲究顺序关系。为此,这里引用继电器电路的通电表。
(1)通电表组成。通电表由行与列组成,见表2-7。它的“列”记录着各个器件在各个节拍的工作状况;“行”记录着各个节拍各个器件的工作情况。表中1代表器件在工作,其常开触点ON,常闭触点OFF;0代表器件不在工作,其常闭触点ON,常开触点OFF。
表2-7 通电表
节拍与输入有关,它的转换也是由输入引起的。而对异步时序逻辑的输入总是做以下两个假设:
1)在同一时间总是只有一个输入信号改变。
2)两次输入信号改变之间系统的内部及输出状态已趋于稳定。
事实上,绝大多数工作系统总是能满足这两个假设的。
因此,用这个表可从时、空两个角度看出时序逻辑的全貌。用“通电表”分析继电器电路,过程较清晰,不易“糊涂”,这正如用笔算比用心算不易“糊涂”的道理一样。而把它用于PLC顺序控制程序的分析与设计,也一样清晰,便于理解。
(2)有关概念说明。本书讨论的是PLC,所以,以下概念都是针对PLC而言。
1)输出器件与步。输出器件指PLC输出点连接的执行器。在通电表中,用输出点1、0代表它工作与否。
步是指输出点1、0状态改变之间的状态。不同的输出状态,处于不同的步。有多少不同的输出状态,就有多少步。在通电表中可列出步,但也可不列。
2)内部器件。指内部继电器,或自定义内部布尔变量,与实际输入、输出无关。但使用它,可记录输入的历史,间接地确定输出。
3)输入器件。指主令器件与反馈器件,它连接PLC的输入点。在通电表中,用输入点1、0代表工作状态。
主令器件发出信号为主令信号,它主动作用于电路;反馈器件发出的信号为反馈信号,是对PLC控制动作执行后的应答。
一般来讲,确定电路、自动控制电路主令信号较少,一个或最多两个(起、停)。但随机电路、手动控制电路可能较多,如电梯电路,各选择按钮都是主令器。
分清主令信号与反馈信号对分析与设计梯形图逻辑很有好处。因为多数电路开始工作时总是由主令信号发起,而以后的工作推进则多是反馈信号。找出主令信号就等于抓住了“顺序控制”的开头,也就有了头绪,这样,再进一步展开分析与设计自然也就不难了。
不是所有的输入改变都会改变输出,或改变内部器件状态。不会产生这种“改变”输入信号可视为无效信号。反之,为有效信号。如按钮,一般讲,从松开到按下为有效信号,而从按下到松开则多为无效信号。但这也不是绝对的。要看怎么去处理。如用一个按钮实现起、停控制,则按下与松开可能都将是有效信号。
对有效输入信号,还可分为长信号、短信号与计数信号。
(a)如用同一个输入变量的正与反取值作为相邻两次输入则为短信号。
(b)如不用同一个输入变量的正与反取值作为相邻两次输入,即在它们之间夹有其他输入,则为长信号。
(c)如用同一输入变量的正与反取值多次连续地作为相邻输入,则为计数信号。如用两个或多个输入变量的正与反取值多次交替连续地作为相邻输入,则也将为计数信号。
实际处理时,这些信号是可变动或可调整的。如用按钮起动一个动作,若按钮按下直到动作发生,并收到动作发生的应答信号后按钮才松开,则这个“按钮按”信号即为长信号。若按钮按下未到动作发生,并未接收到动作发生的应答信号按钮就松开,则这个“按钮按”信号即为短信号。
把信号处理成不同的特性,对其作逻辑分析或综合,结果有可能是不同的。所以,区分与了解信号的这些特性,将有助于梯形图逻辑的分析与综合。
4)节拍。节拍指两个有效输入之间的时间区段。而有效输入不仅与输出(器件)状态改变有关,还与内部(器件)状态改变有关。所以,节拍比步多,一个步可能包含有多个节拍。为分析方便,通电表一般是以节拍为处理单位的。
内部状态、输出状态及有效输入,是划分节拍的依据。这三者之一的改变即为节拍的改变。不同的内部状态、输出状态与有效输入,也就是处于不同的节拍。有多少不同的内部状态、输出状态与有效输入,也就有多少节拍。
5)当前输入。是进入新节拍的依据。可由有效输入改变生成,也可由内部器件状态及输出点状态改变生成。如果所生成的当前输入,没有改变内部器件或输出点状态,将不认为进入新的节拍。当前输入的表示方法是:如果信号从OFF到ON,用信号的名(变量本身)。如果信号从ON到OFF,用信号的名上加小横线(变量的非)。
提示:通电表与真值表不同。通电表输入可不涵盖所有的可能。但它的当前输入顺序不能是任意的,要根据实际工作过程确定。
2.3.2 异步时序逻辑分析
分析是研究设计好的程序。也可说是在“纸面”上“运行”程序。是检查程序正确性、可行性的一个方法。
具体方法是按有效输入的实际顺序,逐一分析所有器件的状态,确定是逻辑0、OFF、不工作,还是逻辑1、ON、工作,进而弄清程序能否实现预定的功能。
显然,如果程序正确,其输入、输出的对应关系也总是确定的。也就是说,对某个具体程序的分析,其答案只有一个。
时序逻辑程序分析比较复杂、繁琐。但若从原始状态开始,抓住当前输入的逐一变化及产生的后果,按节拍逐步推进,再运用通电表进行记录,还是不难的。
1.分析图2-2程序
该程序的主令器件为XK1,所有节拍的转换都由它的变化引起。原始状态时为节拍0。这时,XK1压下,ON,WW1 ON。显示处位置0。
节拍1:在节拍0,刀架转动,XK1松开、OFF,进入此节拍。这时,mm1 ON,而WW1继续ON。
节拍2:在节拍1,使mm1从OFF转为ON,进入此节拍。这时,由于mm1 ON,而使WW1 OFF。
节拍3:在节拍2,刀架转动到了挡块位置,XK1又压下、ON,进入此节拍。这时,WW2ON,显示位置2。而mm1继续ON。
节拍4:在节拍3,WW2 ON,进入此节拍。这时,由于WW2 ON,而使mm1 OFF。
节拍5:在节拍4,刀架转动,XK1松开、OFF,进入此节拍。这时,mm2 ON,而WW2继续ON。
节拍6:在节拍5,mm2 ON,进入此节拍。这时,由于mm2 ON,而使WW2 OFF。
节拍7:在节拍6,刀架转动到了挡块位置,XK1又压下、ON,进入此节拍。这时,WW3ON,显示位置3。而mm2继续ON。
节拍8:在节拍7,WW3 ON,进入此节拍。这时,由于WW3 ON,而使mm2 OFF。
节拍9:在节拍8,刀架转动,XK1松开、OFF,进入此节拍。这时,mm3 ON,而WW3继续ON。
节拍10:在节拍9,mm3 ON,进入此节拍。这时,由于mm3 ON,而使WW3 OFF。
节拍11:在节拍10,刀架转动到了挡块位置,XK1又压下、ON,进入此节拍。这时,WW1ON,显示位置1。而mm3继续ON。
节拍12:在节拍11,WW1 ON,进入此节拍。这时,由于WW1 ON,而使mm3 OFF。逻辑复原,与状态0相同。
以上分析结果记录见表2-8。
表2-8 梯形图通电表
显然,每当XK1从OFF到ON,说明刀架转过了一个位置。而从表中可知,这里相应的显示也将在WW1~WW3之间依次变换。因而,它正是有了这个时序逻辑,仅用一个行程开关,也可显示刀架的实际位置。当然,这里在原始位置时,须使WW1初始化为ON。
2.分析图2-2
图2-27所示为4种PLC的梯形图程序,用的是符号地址,有一个输出点“工作”、一个中间继电器“b”及一个输入“AA”。
图2-27 单按钮起停电路
从对应关系,可列出“工作”及“b”的逻辑表达式如下:
电路的主令器件为“AA”,所有节拍的转换都由它的变化引起。在原始状态,“AA”不输入,为0,内部器件“b”、输出器件“工作”均OFF。
这时,如输入“AA”转为1,从逻辑表达式计算可得,“工作”将ON,而“b”仍OFF;
进而,如“AA”转为非(为0),从逻辑表达式计算可得,这时,“工作”、“b”均ON;
接着,如再按“AA”(为1),从逻辑表达式计算可得,这时,“工作”OFF,而“b”仍ON;
再松开,“AA”再转为非(为0),从逻辑表达式计算可得,这时,则“工作”、“b”全OFF。其结果见表2-9。
表2-9 图2-27电路通电表
从表2-9可知,它是用一个按钮起、停输出器件工作的电路。其功能就是用一个按钮实现“工作”的起停。
提示:和利时PLC编程软件所用变量暂不支持中文命名,但ABB的已可以。
2.3.3 异步时序逻辑综合
1.综合的目标
综合就是,编写满足设计要求及约束条件的PLC程序,是程序分析的反问题。综合得到的结果可能较多,所以,还要从所有的结果中求出最好的结果。
此外,组合逻辑综合,由于不用内部器件,关系也简单,可以运用真值表,直接列表达式。异步时序逻辑综合,面对的只是要求与条件,输入变量少,无真值表可用,要使用哪些内部器件也不清楚。所以入手比较困难。
异步时序逻辑综合方法很多,但是如用以上介绍的通电表作为设计起点,则有其方便之处。其方法是:先确定节拍,设计好通电表,进而以通电表确定的条件,列写输出及内部继电器的逻辑表达式,最后再化简表达式、编写PLC程序。
怎么用通电表作为设计的起点呢?这要从电路正常工作应遵守的原则谈起。
2.电路正常工作应遵循的原则
电路,触点电路也好,继电器电路(PLC梯形图程序可与其对应),正常工作都要遵守一些原则。最重要的就是唯一性原则。这原则是:
(1)对于触点电路。输出取值对应于它的逻辑条件是唯一的。要想用相同的逻辑条件产生不同的输出,是不可能的。这是触点电路正常工作必须遵守的原则。
如用一个钮子开关控制一个指示灯的电路。可以有这样的情况,钮子扳把处在甲位置时,灯亮,而处在乙位置时,灯不亮;但不能有这样的情况,同样处于甲位置,灯有时亮,有时不亮。可以想象,除了另有所控(还有别的逻辑条件),否则是不可能的。
从本质上讲,触点电路是组合逻辑,而组合逻辑是单值函数,一种输入组合只对应一种输出。违背这个原则设计的触点电路,逻辑关系是混乱的,其设计意图是不可能实现的。一般把这种逻辑条件相混的情况,简称相混。
(2)对于继电器电路。输出对应于它的逻辑条件的取值不是唯一的。因为它有自身反馈。但是,继电器电路可分解为起动与保持两个部分。这两者又都是触点电路,所以也应遵守唯一性原则。
对起动电路,要检查起动节拍是否遵守唯一性原则。而起动节拍是指在多个连续ON节拍中第一个ON的节拍。
对保持电路,要检查断电节拍是否遵守唯一性原则。而断电节拍是指在多个连续ON节拍之后第一个OFF的节拍。
显然,要想在相同的逻辑条件下,使内部及输出继电器在某个节拍起动(或断电),而在另一个节拍又不起动(或断电)是不可能。
所设计的通电表如不满足这个唯一性原则,也称逻辑条件相混。可适当增加内部器件,把相混分开。
这里举一个例子说明这个原则,如要求设计一个时序电路,其要求是用输入点AA(用符号地址,下同)控制输出“工作”,各节拍的对应关系见表2-10。到第4节拍时,电路又复原,回到原始状态。显然,这个设计就是对图2-27分析的反问题。
表2-10 各节拍输入、输出对应关系
从表2-10可知,这里的1、3两个节拍,逻辑条件相同,但1节拍要求“工作”为1、起动,而3节拍又不要求“工作”为0、不起动,这种矛盾的要求,若没有增加内部器件是无法实现的。从断电检查,1、3节拍也有类似的情况。
为了排除这个相混,则要加一个内部器件“b”,其通断电过程见表2-11。由于这时“工作”与“b”可互为条件,所以,无论对“工作”与“b”,它的通断电都不相混,因而这个通电表也就不相混了。
表2-11 增加内部继电器后各节拍输入、输出对应关系
3.梯形图逻辑综合过程
唯一性原则给梯形图正常工作设置了约束,但也给梯形图设计提供了入门依据。以下介绍的编程就是从分析唯一性原则入手的。
(1)初列通电表。根据设计要求,按输出时序划分工作步,并确定各个步的输入与输出的对应关系,初列通电表。这个表也称原始通电表。用它可反映输出与输入在各个步的对应关系。这个表是不难设计的。因为它仅是设计要求的“表格化”而已。
(2)唯一性设计。对已建立的原始通电表进行唯一性检查,如不满足唯一性原则,可适当增加内部器件,以得到一个合乎唯一性原则的通电表。具体作法是:
1)依次对,在原始通电表中的,对每一输出点的起动与断电进行唯一性检查:
把所有起动的步或节拍的逻辑条件与所有不工作(OFF)节拍的逻辑条件进行比较,看是否存在相混,即存在逻辑条件相同的步或节拍;
把所有断电的步或节拍的逻辑条件与所有工作(ON)节拍的逻辑条件进行比较,看是否存在相混,即存在逻辑条件相同的步或节拍;
若有,建相混表。这个表可附在原始通电表右侧,亦即原始通电表的扩展。将逻辑条件相同者分成一组,占一列,用英文字母命名,起动(或断电)节拍处标写大写字母,其他与逻辑条件相混的节拍标与其同名的小写字母。然后,在同名的大小写字母间的节拍画上竖实线,其余的画上竖虚线。画时,应把第一节拍看作最后一个节拍的次拍。这主要因为电路总是要循环工作的,故须做这么处理。表2-12就是对表2-10检查后建的相混表。
表2-12 经检查后所建的相混表
2)在各组的实线处建立分界线,以便把相混的情况区分开。为了节省内部器件(对PLC此问题不大),最好“一线多用”,即用一个分界线,能区分尽可能多的组的相混。以上工作可借助集合运算求解,实现算法化。
3)分界线是靠增加内部器件实现。如新增的内部器件在分界线之前为OFF,而之后为ON,并把它作为因子,加入到相应的逻辑条件中,显然,这一对对的相混也不再有了。
4)既然分界线是靠增加内部器件建立,所以,还要对它的启动与断电逻辑条件也要作相混检查。办法同前。
5)如新增的内部器件也存在相混,则也要再建分界线。甚至还要再查,再建,直到不再有相混为止。
所增加的内部辅助器件在分界线处,从OFF变为ON,而到了最后一个节拍,再使其从ON变为OFF。这样虽然多用了内部辅助器件,但逻辑关系简单。由于PLC几乎有海量的内部辅助器件,故是可取的。
其实,也可在通电表唯一性设计之前,先检查输入信号的情况。如有短信号,则要用内部器件对其“记忆”,建分界线;如有计数信号,则要对它的每个输入节拍都要“记忆”,建分界线。这样建立的通电表将不会出现相混。读者可用这里介绍的办法检查,证明这个结论是正确的。
因此,本步骤的简化设计步骤是:
(a)分析输入信号,区分长、短信及计数信号;
(b)对短信号,在信号开始输入或次一输入节拍,用一个内部件的状态改变将其“记忆”,建分界线;
(c)对计数信号,在信号每次变化的节拍,如没有输出或内部状态改变,则用一个内部器件的状态改变将其作“记忆”,建分界线;
(d)在结束节拍,使这些作“记忆”的内部件全部复位,使电路复原。
上述4个步骤也可称为细列通电表。这样细列通电表肯定是不会出现相混的。可以不必进行上述繁琐的相混检查,进而简化唯一性设计。读者不妨根据以上4点对表2-10的实例作处理,肯定也会得到表2-11的结果。
(3)列写逻辑式子。根据通电表列写各输出点及内部器件的逻辑式子。分起动电路及保持电路分别进行。对运用锁存指令的,起动电路即为S电路;保持电路去掉自身触点的因子,而后再取反,即为R电路。
1)求起动电路逻辑表达式。其逻辑要求是:起动节拍的逻辑条件应为1,无电节拍应为0,其他节拍可任意。表达式可分为特解和一般解。特解仅对起动节拍进行分析,求其为1时的逻辑条件;一般解还把无关项(可任意取值的项)也考虑进去。特解为
式中 N——起动次数;
AQi——起动节拍,当前输入;
MQi——起动节拍的其他元件状态组合。
一般解为
式中 Q——所有OFF节拍的总数;
AWR·MWR——OFF节拍的逻辑条件。
一般讲,特解含的因子多,所用的触点多,一般解可能简单些,但也可能包含多余的项。正确的选择是化简一般解,并从中挑选出含特解的项。但要确保起动节拍的当前输入成为必备的因子。否则无法进入本节拍。
2)求保持电路逻辑表达式。其逻辑要求是:断电节拍的逻辑条件为0(对锁存指令的R电路,则为1),ON节拍为1(R电路,为0),其他的可以任意取值。也分为特解与一般解。特解仅考虑ON节拍的条件,一般解还考虑任意项。特解式为
式中 r——所有为ON的节拍数;
Arj·Mrj——为ON的节拍的逻辑条件;
J——求解元件自身触点,即自保触点。
一般解为
式中 N——断电次数;
ADi——断电节拍的当前输入;
MDi——断电节拍的其他元件状态组合;
J——求解元件自身触点,即自保触点。
化简时,同样也是先化简一般解,然后选含特解的项。但断电节拍的当前输入的反,也总要成为必备的因子。否则也无法进入本节拍。
在使用锁存指令时,其S电路的特解及一般解,与起动电路的有关逻辑表达式相同。其R电路表达式为除去J后的非,并将特解与一般解互换。即特解为
一般解为
式中右边各项含义与保持电路表达式中的各项含义相同。
(4)逻辑化简、列写指令、画梯形图。对逻辑式子进行化简,求最简式:这实际是数字逻辑问题。除了本章以上讲的代数法,还有很多方法,如卡诺图法、Q-M法、n-立方体法等。实质都是先求出最大蕴含项,然后,再找出必要质(最大)蕴含项,之后,进行列消去,再不能消去时可任取。
依最简的表达式列写指令或画梯形图。
2.3.4 异步时序逻辑综合举例
1.【例1】液体混合罐工作控制
有一个用于使两种液体进行混合的装置,如图2-28所示。控制要求是,起始状态容器是空的,三个阀门(XX1、XX2、XX3)均关闭,电动机M也不工作。液面传感器L、I、H也处于OFF状态。
起动操作后,先是XX1阀门打开,液体A流入容器。当液面位置达到II时,II开关ON,使XX1阀门关闭,而XX2打开,使液体B流入。当液面到达HH时,HH开关ON,XX2阀门关闭,并起动电动机MM,对两种液体作搅拌。搅拌6s后,电动机MM停止工作,并打开阀门XX3,把混合液放出,直到LL传感器OFF后,再过2s,阀门XX3关闭,并又开始新的周期。若要停止操作,可按停车按钮TT。但按后不立即停止工作,而是待完成一个工作循环后,才停止工作。
图2-28 两种液体进行混合的装置
设计过程:
(1)用的PLC可任选,其I/O分配略,但用相应符号XX1、XX2、XX3、QQ、TT、MM、HH、II、LL代表。时间继电器符号为TM、TL。
(2)用解析法编程。其步骤是先列原始通电表,次是检查通电表满足唯一性原则的情况,并完善之;再就是列写逻辑式子并进行化简,画梯形图。
初列通电表:用相应的符号列表,如起动按钮用QQ,TM为与MM共同工作的时间继电器等。所画出的原始通电表见表2-13。
表2-13 图2-28原始通电表
(续)
1)对原始通电表进行唯一性检查,可知:
XX1起动主要靠QQ信号,其他XX1 OFF的节拍均无此信号,所以,不存在相混。但是,第二循环及以后的循环,无QQ信号,仍应使XX1起动,这可用TL帮忙。这相当于把1、10节拍合并。XX1断电,其信号为II,其他ON节拍也无此信号,故也不存在相混。
XX2于第4节拍工作,其他节拍都不工作。第4节拍时,II、LL均ON,HH OFF。这种情况还出现在第7节拍。但第7节拍时XX3 ON,而第4节拍时XX3 OFF,这可把第4与第7节拍的逻辑条件区分开。故对XX2而言,唯一性原则也满足。
XX3于第6节拍起动,它用的信号为TM,是唯一的。其断电于第10节拍,用的信号为TL也是唯一的。
MM于第5节拍工作,这时HH ON。第6节拍也是这个情况。但两者可用TM区分开,故M也不存在相混。
TM靠HH ON起动,是唯一的。
TL靠XX3 ON再LL OFF起动,也是唯一的。
这样,通电表的唯一性设计后,可保持原始通电表不变。
停车按钮TT输入是随机的,但它输入后可对其进行记忆(如以Z表示),并用这记忆的信号去“切断”TL与XX1的联系,即可达到目的。其在通电表中表示略。
其实分析这里的输入信号得知,本例没有短信号及计数信号,所以,通电表是不会相混的。
2)列写逻辑式子。为了便于理解及使式子简练,这里用的也是原始符号。
对XX1:其起动电路,依上述分析应为QQ+;其保持电路应为。
对XX2:其保持电路不用,起动电路用做工作电路,应为II HHXX3。
对XX3:其起动电路为TM;其保持电路为。
对MM:其保持电路不用,起动电路即为工作电路,为HH TM。
对TM:工作电路为HH。
对TL:工作电路为XX3。
对Z:其起动电路为TT;保持为。
这样,它的完整的逻辑式子为
3)针对以上逻辑式画出的梯形图如图2-29所示。从梯形图可知,完成这样的控制,其电路并不复杂。
这里列写逻辑式子未完全套用以前的公式,而是用直接观察的办法。由于本例逻辑变量较多,相区分的信号又较明显,直接观察更为简便。自然,用式子去化简,或用其他的化简方法,进行化简,其结论也是这样的。
图2-29所示的虽为4种PLC程序,但由于用的都是基本逻辑处理指令,且又是用的符号地址,所以,这4种程序间的差别是不大的。所差的只是梯形图的个别符号上。这也说明,有了控制算法,用什么PLC去实现,一般也都是可能的。
图2-29 与表2-13对应的梯形图程序
提示:和利时与AB PLC用的是IEC标准编程,没有常规意义的定时器,而是用定时功能块。这里的TM、TL为结构变量,是该功能块的两个实例。TM.Q、TL.Q为该功能块实例的输出,相当于其他PLC的定时器输出点。
2.【例2】小车运动控制
图2-30所示的小车,有3个状态,向左(反转)、向右(正转)、停车。Ls为反映小车所处位置的行程开关,Ps为选择小车位置的按钮,各有5个。控制要求是:按下选择按钮,如其编号大于小车当前位置压下的行程开关号时,再按下起动按钮SW小车向右运动,直至小车当前位置压下的行程开关的编号与前者的编号相等时,小车停止运动;按下选择按钮,如其编号小于小车当前位置压下的行程开关的编号时,再按下起动按钮SW小车向左运动,直至小车当前位置压下的行程开关的编号与前者的编号相等时,小车停止运动。
图2-30 小车运动控制示意图
设计过程:
(1)输入用符号Ls1、Ls2、Ls3、Ls4、Ls5、Ps1、Ps2、Ps3、Ps4、Ps5、SW代表,分别对应的输入点编号略。输出用符号YY1代表向右(正转)、YY2代表向左(反转)。
(2)编程。
通电表设计:所设计的电路为随机电路,从输入入手,按所有可能情况列写通电表,相当复杂,也无此必要。如果从输出考虑,由于它只有向左、向右两种情况,故便于归纳。先不考虑起动按钮,仅考虑行程开关Ls及选择按钮Ps与向右、向左输出的置位与复位的逻辑关系,其通电表见表2-14。由于它是随机的,故这里省略了节拍的概念。节拍是与输入相联系的概念,现从输出考虑,故可不用它,这也是处理随机电路通电表的一种方法。
表2-14 例2通电表
从表知,对YY1、YY2,其S、R电路的逻辑条件,与可能出现的逻辑条件均不相混,故此表能满足唯一性原则。
列写逻辑式:
由于这里的输入Ls、Ps出现时,都仅为一个ON,这为我们列写逻辑式提供方便,即仅考虑变量本身,其他可不考虑。具体列写如下:
YY1S电路
S1=Ps5(Ls4+Ls3+Ls2+Ls1)+Ps4(Ls3+Ls2+Ls1)+
Ps2(Ls2+Ls1)+Ps2Ls3
YY1R电路
R1=Ps5Ls5+Ps4Ls4+Ps3Ls3+Ps2Ls2
YY2S电路
S2=Ps1(Ls2+Ls3+Ls4+Ls5)+Ps2(Ls3+Ls4+Ls5)+
Ps3(Ls4+Ls5)+Ps4Ls5
YY2R电路
R2=Ps1Ls1+Ps2Ls2+Ps3Ls3+Ps4Ls4
画梯形图:列出逻辑式后,可画出对应的梯形图,不过还要考虑几个实际问题:
①选择按钮给出的是短信号,按后即复原,故须对其记忆。设用内部辅助继电器MM1~MM5(也是用符号地址)分别对Ps1~Ps5作记忆,直到选择编号与实际编号相等时,再清除这个记忆。以YY1为例,其逻辑式为
其余的类推。这里用到位后的信号Ls1作为断电输入信号,故其保持电路为Ls1(MM1)。
用了MM1~MM5后,即可用它代换上述逻辑式中的Ps1~Ps5。
②起动输入信号SW应作为YY1、YY2置位电路的条件之一。
③YY2、YY1必须互锁、以保证安全。
④实际电路应尽可能简化,以节省指令条数。
考虑以上4点后的梯形图如图2-31所示。图中YY2的输出未画出,它与YY1类似。
本梯形图把KEEP YY1等指令画在前而OUT MM1等在后,这很重要。这可保证到达要求位置时,YY1等先复位,然后MM1等才复位。否则,即前后调一下,YY1等就复位不了了。
提示:本例是按单用户单资源的设定设计的。也就是同一时刻只能有一个需求,待这个需求处理完成后,这里单一资源才可能响应新的需求。所以编程要简单些。
3.【例3】组合机床动力头运动控制
设计组合机床动力头运动控制的电路。该机床动力头运动由液压驱动。电磁阀DT1得电,主轴前进;失电后退。同时,还用电磁阀DT2控制前进及后退速度。得电快速,失电慢速。要求机床的工作过程是:从原位(行程开关XK1 ON)开始工作。按下起动按钮QQ,先快速进;到行程开关XK2 ON,转为工进(慢速前进);加工一定深度,XK3 ON,快退;退到XK2 OFF(目的为了排屑),又快进;快进至XK3 ON,又转工进;加工到尺寸,XK4 ON,快退,直至原位XK1 ON停,完成一个工作循环。图2-32a所示为系统结构。其具体工作过程如图2-32b所示。这里,虚线为快速运动,而实线为慢速运动,箭头指明它的运动方向。
设计过程:
(1)输入输出分配。输入:QQ、XK1、XK2、XK3、XK4用输入符号地址;输出:DT1、DT2也用符号地址。具体分配略。
(2)程序设计。
通电表设计:先依照工作顺序,初列通电表,见表2-15。
对原始通电表进行唯一性原则检查:
检查DT1。它有两次起动。第一次起动输入信号为QQ,用它可与所有DT1为OFF节拍的逻辑条件区分开。第二次起动在第7节拍。其起动信号为及其他条件均与第13节拍(DT1为OFF)相混,即表2-15中标的B-b。DT1有两次断电,第一次在第5节拍,它与第9节拍的条件相混,即表2-15中标的A-a。第二次断电逻辑条件不相混。
图2-31 与表2-14对应梯形图程序
图2-32 机床动力头运动控制
检查DT2。它有三次起动,第一次起动不存在相混。第二次在第5节拍起动,与第9节拍相混,即表2-15中标的A-a。第三次在第10节拍起动,不存在相混。它也有三次断电,第一次在第4节拍断电,它与第8节拍相混,即表中标以C-c。第二次在第9节拍断电,如果做到在第5节拍DT1断电后,DT2再起动,可不相混。第三次断电在第14节拍,不存在相混。
按规定画完实线后(见表2-15),须在第3(或1,2)、6及10(或11、12)节拍建三条分界线,才能把全部相混区分开。再查所建的分界线也不存在相混。
三条分界线,需用内部辅助继电器。设用MM1及MM2。其工作情况也按“先逐个ON,ON后再逐个OFF”的原则布置,则见表2-15。
表2-15 例3通电表设计
对表2-15再做检查,可知无论是DT1、DT2,还是对MM1、MM2均不相混。
列写逻辑式子:
DT1起动电路特解
DT1起动电路通解,经化简后为
从中选出含有特解的项。可以是头两项,或第一及第三项。这里用头两项,即
DT1保持电路特解为第1、2、3、4及7、8、9节拍逻辑条件的或,其表达式略。
DT1保持电路通解为第5及第10节拍逻辑条件或的非,经化简为
画梯形图:
依上述逻辑表达式,可画出的对应梯形图,如图2-33所示。
图2-33 与表2-15对应的梯形图程序
4.【例4】计数信号应用
设计要求:要求设计用一个按钮控制的电路,按钮AA反复动作,到第4节拍时,产生输出,YY ON。第6节拍时,停止输出,YY OFF,电路复原。具体的要求见原始通电表,即表2-16。
表2-16 例4原始通电表
唯一性设计:从起动看,第4节拍和第0及2及第6节拍相混;从断电看,第6节拍和第4节拍相混。按上述原则,画出它的相混表,见表2-17。
表2-17 例4通电表设计
(续)
从表2-17可看出,只要在3、5节拍处建分界线,即可把上述相混区分开。再查所建分界线是否相混时,发现第3节拍的分界线建立条件与第1节拍相混,故应在第2节拍再建一分界线。再查第2节拍的分界线又与第0节拍(即第6节拍)相混,故还应于第一节拍建分界线。之后再查,再不相混了。
从表2-17可知,须建4条分界线,须用2个内部辅助继电器,并设其为MM1、MM2。
内部辅助继电器可按“依次通,全通后再依次断”的原则对其进行工作设定。如这里的10.00的取值为0的区,在第一条分界线处(即第一节拍)令MM1 ON、MM2 OFF;第二条分界线处(即第2节拍),令MM1 ON、MM2 ON(依次通的原则);第三分界线处,令MM1 OFF、MM2 ON(全通后,依次断开)。到第5节拍,则令MM1 OFF、MM2 OFF,电路复原,又可建一个分界线。加入内部继电器MM1、MM2后的通电表,见表2-18。再查表,已无逻辑相混。
表2-18 例4已无逻辑相混通电表
有了如2-18通电表,下一步可求与其对应的逻辑表达式。
该表仅4个逻辑变量,用卡诺图求解较方便。卡诺图每格中有三种值:一为1,是特解的最小项;一为0,必须为0的最小项;一为d,为任意项。分别对YY、MM1、MM2求解的卡诺图的步骤是:
①填写卡诺图。每格都要依给定的逻辑条件填入合适的值。
②画卡诺圈。要把所有含1的格全覆盖。
③列逻辑式。经选择把能包含所有1,但又是最简项组成逻辑表达式。
对10.00、MM1、MM2求解的卡诺图,如图2-34所示。
图2-34 求解的卡诺图
图2-34 求解的卡诺图(续)
求出逻辑表达,其相应的梯形图如图2-35所示。
图2-35 与表2-18对应的梯形图程序