5.4 PLC程序的顺序控制设计法
在工业控制领域,许多控制系统的操作必须严格按照一定的先后顺序执行才能保证生产过程的正常进行,这样的控制系统称为顺序控制系统或步进控制系统。
顺序控制设计法就是针对顺序控制系统的一种有效的设计方法。对于初学者,这种方法容易被接受;而对于有经验的设计者,使用该方法可提高程序设计效率,并且程序的调试、修改和阅读也很方便。PLC的设计者不仅为顺序控制系统的程序编制提供了大量通用和专用的编程元件,并且开发了一种真正的图形化编程语言即顺序功能图(SFC)。
目前大部分基于IEC 61131—3编程的PLC都可使用顺序功能图直接编程,而多数非IEC 61131—3的PLC产品,包括S7-200PLC,还不支持顺序功能图直接编程,必须将其转换成梯形图才能正常进行。即使这样,由于使用顺序功能图可以将问题表达清楚、程序设计思路清晰,因此,这种有规律可循的设计方法已成为目前PLC程序设计的主要方法。
5.4.1 顺序控制设计法的设计步骤
采用顺序控制设计法进行程序设计的基本步骤及内容如下。
1.步的划分
顺序控制设计法的基本思想是将系统的一个工作周期划分为若干个顺序相连的阶段,这些阶段称为步或状态,并且用PLC内部的编程元件(常用位存储器M或顺序控制继电器S)来代替各步的逻辑状态。步是根据PLC输出状态的变化来划分的,在任何一步之内各输出线圈的逻辑状态不变,而相邻两步之间的输出逻辑状态是不同的。
图5-20 彩灯控制系统时序图
例如,在某彩灯控制系统中,按下启动按钮I0.0后,红灯Q0.0、黄灯Q0.1和绿灯Q0.2依次点亮,再同时熄灭,然后按上述步骤自动循环工作。根据PLC输出状态的变化,可将该系统的一个工作周期划分为4步,在任何一步之内,各输出量的0/1状态保持不变,其工作时序图如图5-20所示。
2.确定转换条件
在顺序控制系统中,使当前工作步转入下一步的信号称为转换条件。转换条件可以是外部输入信号,如按钮、限位开关等的通断状态信号;也可以是内部产生的信号,如定时器和计数器位的通断状态信号;或者是多个触点通过“与”、“或”、“非”逻辑组合后产生的输出信号。在上面的彩灯控制系统中,各步之间的转换条件分别是各定时器的定时时间到所产生的触发信号。
3.绘制顺序功能图
顺序功能图又称为功能流程图或状态转移图,它能完整地描述控制系统的工作过程、功能和特性。所以,根据被控对象的动作要求,绘制顺序功能图是顺序控制设计法中最关键的一个步骤,其具体方法将在下一节详细介绍。
4.编制梯形图
对于S7-200PLC,需要根据顺序功能图选择某种编程方式编制出梯形图程序。如果PLC支持顺序功能图,则可以直接使用顺序功能图编制程序。
5.4.2 顺序功能图的绘制
顺序功能图是一种通用的技术语言,可以用于专业人员之间进行技术交流,并据此进行程序设计。顺序功能图一般由步、有向连线、转换、转换条件和动作组成。
1.步与动作
步在顺序功能图中用矩形框来表示,方框内标注该步的编号或名称。如图5-21所示,用编号n、n+1和n+2表示各步。具体编程时用位存储器M或顺序控制继电器S来代表各步,如图5-22所示。
一个控制系统至少有一个初始步,它是顺序功能图运行的起点,其图形符号为双线的矩形框(如M0.0),其他的步用单线的矩形框表示。
在顺序功能图中的每一步都会完成相应的动作,这些动作用矩形框中的文字或符号表示。多个动作的表示方法有两种,如图5-22所示,既可以将多个动作的矩形框横向排列也可纵向排列,但矩形框的排列顺序不表示动作之间的顺序。
图5-21 顺序功能图的一般形式
图5-22 顺序功能图的示例
当某一步被执行时,称此步为活动步,其他没执行的步称为静止步。当某一步由活动步变为静止步时,相应的动作需要继续执行,则称此动作为保持型的动作,一般用置位指令S表示;相应的动作如果需要立即停止,则称此动作为非保持型的动作,一般用输出指令即可。
2.有向连线、转换和转换条件
在顺序功能图中,随着时间的推移和转换条件的实现,步的活动状态也将发生顺序变化,这种变化按有向线规定的路线和方向进行。在绘制顺序功能图时,将表示各步的方框按变成活动步的先后顺序排列,并用有向连线将各步连接起来。活动步的变化通常按从上到下或从左到右的方向进展。在这两个方向,有向连线上的箭头可以省略。如果不是按从上到下或从左到右的方向进展,则应在有向连线上用箭头标注活动步的转移方向。
转换是用有向连线上与之垂直的短画线来表示的,转换将相邻两步分隔开。两步之间的转换是依靠转换条件来实现的。转换条件可以用文字、逻辑代数式或图形符号标注在表示转换的垂直短线的旁边。如图5-22所示,从初始步M0.0转换到下一步M0.1,其转换条件是I0.0由0状态变为1状态。从步M0.1转换到下一步M0.2,其转换条件是定时器常开触点T38由0状态变为1状态,以此类推。对于由多个信号组合而成的较复杂的转换条件,则使用逻辑代数式来表示,如转换条件为(I0.1+T37)·M0.2等逻辑表达式。
3.顺序功能图的基本结构
根据步之间的进展形式,顺序功能图有单序列、选择序列和并行序列三种基本结构。
1)单序列结构
单序列是由一系列相继激活的步组成的,每一步的后面仅有一个转换条件,每一个转换条件后面仅有一步,任何时刻只有一步为活动步,如图5-23(a)所示。
2)选择序列结构
选择序列如图5-23(b)所示。它在某一步之后,有若干个单一顺序等待选择,称为分支。各分支的转换条件不同,但只允许选择进入一个顺序。转换条件标在水平线以下,当某个转换条件成立时,活动步就转入相应的步。例如,当第5步为活动步时,若f=1,则活动步转入第7步,同时第5步变为静止步。
选择序列的结束称为合并,如图5-23(c)所示,水平线以下不再有转换条件直接跟着。当某个分支上的步为活动步,且其下面的转换条件成立时,则活动步向下转移。例如,当第7步为活动步,且i=1时,活动步转入第9步,同时第7步变为静止步。
3)并行序列结构
当转换条件满足时,几个序列同时被激活,这些序列称为并行序列。并行序列的开始称为分支,用双水平线表示,如图5-23(d)所示。例如,当第11步为活动步,且k =1时,12、14和16这三步同时变为活动步,同时第11步变为静止步,并且每个分支上活动步的动作是独立进行的。
图5-23 顺序功能图的基本结构
并行序列的结束称为合并,用双水平线表示,如图5-23(e)所示。当分支上的所有步均为活动步且转换条件满足时,几个分支上的所有步均变为静止步。例如,当第13、15 和17步为活动步,且m=1时,活动步转入第18步,同时第13、15和17步变为静止步。
4.绘制顺序功能图的规则
绘制顺序功能图的规则表现为以下几个方面。
(1)两个步不能直接相连,必须用一个转换将它们分开。
(2)两个转换也不能直接相连,必须用一个步将它们隔开。
(3)顺序功能图中至少有一个初始步,它一般对应于系统等待启动的初始状态。
(4)步与步之间的连接采用有向线段表示,有向线段从上向下画时,箭头可以省略;有当向线段从下向上画时,必须画上箭头,表示步的转移方向。
例如,图5-20所示的彩灯控制系统的顺序功能图可用图5-24所示的表示。
图5-24 彩灯控制系统的顺序功能图
该控制系统的工作过程分成指示灯的依次点亮和全部熄灭4步,每一步分别直接用位存储器M0.1~M0.4来表示。转换条件由定时器T37、T38、T39和T40定时时间到,对应的常开触点闭合来实现。初始步用M0.0表示,SM0.1为初始化脉冲,通常用该信号来激活系统进入初始状态。
任何复杂的顺序功能图都是由单序列、选择序列和并行序列组成的,掌握了单序列的编程方法以及选择序列和并行序列的分支与合并的编程方法,就不难设计出任何复杂的由顺序功能图描述的控制系统的梯形图程序。
5.4.3 基于启保停电路的顺序控制梯形图设计法
由于S7-200PLC还不支持顺序功能图直接编程,因此必须将其转换成梯形图才能正常运行。用顺序功能图设计梯形图时,可以用位存储器M来代表步;当某一步为活动步时,对应的位存储器为ON状态;其转换实现时,该转换的后续步变为活动步,同时前级步变为静止步。
1.基于启保停电路的编程方法
假设图5-25所示的是某一单序列顺序功能图中顺序相连的3步,用启保停电路设计梯形图的关键是,找出它的启动条件和停止条件。根据转换实现的基本规则,转换实现的条件是它的前级步为活动步,并且满足相应的转换条件。例如,M0.2变为活动步的条件是它的前级步M0.1为活动步,并且两者之间的转换条件I0.1为1状态。因此,应将代表前级步的M0.1的常开触点和代表转换条件的I0.1的常开触点串联,作为控制M0.2的启动信号。
图5-25 用启保停电路设计梯形图
当M0.2和I0.2的常开触点均为1状态时,步M0.3变为活动步,同时步M0.2变为不活动步。因此,可以将M0.3为1状态作为使步M0.2变为0状态的条件,即将M0.3的常闭触点与M0.2的线圈串联。上述的逻辑关系可以用逻辑代数式表示为:
根据上述的编程方法和顺序功能图很容易画出梯形图,并且思路清楚。用它编制复杂顺序功能图的梯形图时,更能显示出它的优越性。下面通过几个例子来说明这种编程方法的应用。
2.单序列的编程方法
图5-20所示的彩灯控制系统的顺序功能图可用图5-24所示的表示,其顺序功能图和梯形图如图5-26所示。
PLC一旦开始运行程序,初始化脉冲SM0.1将置M0.0为1状态,使系统处在初始状态。当按下启动按钮I0.0,转换条件满足,使M0.1变为活动步,同时M0.0变为静止步。以此类推,当系统处在步M0.4且T40定时时间到时,满足转换条件M0.4· T40=1,使M0.1又变为活动步,同时M0.4变为静止步,开始新一轮的工作循环。
根据彩灯控制系统时序图可知,红灯Q0.0保持接通时间有3步,黄灯Q0.1保持接通时间有2步。因此,为了避免双线圈输出,在图5-26所示的梯形图中,将相应的步并联后再通过Q0.0和Q0.1输出。而绿灯Q0.2只接通一步,因此可直接通过M0.3输出。
3.选择序列的编程方法
例5-3的液体混合装置的控制程序设计采用的是经验法,现在用顺序控制设计法进行程序设计,其顺序功能图和梯形图如图5-27所示。
图5-26 彩灯控制系统的顺序功能图和梯形图
图5-27所示的M1.0完成中间继电器功能,用它来实现在按下停止按钮时,系统不会马上停止工作,而是在当前工作周期结束后,才停止工作,并回到初始状态的功能。用启动按钮I0.0和停止按钮I0.4来控制M1.0的状态。系统启动运行后,M1.0处于ON状态,系统完成一个工作周期后,步M0.5到步M0.1的转换条件满足,M0.1变为活动步,开始新一轮的工作循环。按下停止按钮I0.4后,M1.0变为OFF状态,要等系统完成最后一步M0.5的工作且满足转换条件后,才能返回初始步并停止系统运行。
图5-27 液体混合控制系统的顺序功能图和梯形图
在步M0.5之后有一个选择序列的分支,当它的后续步M0.0或M0.1变为活动步时,它都应该变成静止步,所以应将M0.0和M0.1的常闭触点都与M0.5的线圈串联。
在步M0.1之前有一个选择序列的合并,当M0.0为活动步并且转换条件I0.0= 1,或步M0.5为活动步并且转换条件时,步M0.1都应变成活动步,即控制M0.1的启保停电路的启动条件为M0.0·I0.0+M0.5·M1.0·T38。所以,对应的启动电路由两条并联支路组成。
为了避免双线圈输出,在图5-26所示的梯形图中,步M0.4和M0.5是并联后再通过Q0.3输出的。在梯形图中也可以用Q0.1、Q0.2和Q0.4分别代替步M0.1、步M0.2和步M0.3,这样可以节省编程元件。但是,PLC的内部位存储器M比较多,全部用位存储器M来代表步具有概念清楚、编程规范,梯形图易于阅读和查错的优点。
4.并行序列的编程方法
如图5-28所示的为某控制过程的顺序功能图和梯形图。
图5-28 并行序列的顺序功能图和梯形图
1)并行序列分支的编程方法
在图5-28(a)所示的顺序功能图中,步M0.1的后面有一个并行序列的分支,当步M0.1是活动步并且转换条件满足,即I0.1为ON状态时,步M0.2和步M0.4同时变为活动步,这是用M0.1和I0.1的常开触点组成的串联电路分别作为M0.2和 M0.4的启动信号来实现的;与此同时,步M0.1应变为静止步。因为,步M0.2和步M0.4是同时变为活动步的,所以,只需将M0.2或M0.4的常闭触点与M0.1的线圈串联即可。
2)并行序列合并的编程方法
步M0.0之前有一个并行序列的合并,该转换实现的条件是所有的前级步(即步M0.3和M0.5)都是活动步并且转换条件I0.4满足。因此,应将M0.3、M0.5和I0.4的常开触点串联,作为控制M0.0的启动信号。
5.4.4 基于SCR指令的顺序控制梯形图设计法
1.顺序控制继电器指令
在S7-200PLC中,顺序控制继电器(sequence control relay,SCR)专门用于编制顺序控制程序。它提供了4条顺序控制指令,其中最后一条SCR程序段条件结束指令CSCRE使用较少。它们的梯形图、语句表和功能描述如表5-4所示。
表5-4 顺序控制继电器指令
1)SCR指令
(1)装载顺序控制继电器(load sequence control relay)指令“LSCR S_bit”用来表示一个SCR段(即顺序功能图中的步)的开始。指令中的操作数“S_bit”规定为顺序控制继电器S的地址,其数据类型为布尔数据类型。当顺序控制继电器地址“S_bit”的状态为1时,执行对应的SCR段中的程序,反之则不执行该程序段。
(2)顺序控制继电器结束(sequence control relay end)指令“SCRE”用来表示一个SCR段的结束。
(3)顺序控制继电器转换(sequence control relay transition)指令“SCRT S_bit”用来表示SCR段之间的转换。当SCRT指令的输入端接通时,一方面下一个SCR段开始工作,另一方面该段又停止工作。
2)SCR指令的功能
每一个SCR程序段一般有以下三种功能。
(1)驱动处理:即当该SCR程序段有效时,完成该步要求的动作;有时如果处于初始状态,也可能不做任何工作。
(2)指定转移条件和目标:即指定需要满足什么条件,才能从状态为1的当前SCR程序段转移到下一个SCR程序段,也就是使下一个SCR程序段状态为1。
(3)转移源自动复位功能:状态发生转移后,在置位下一个SCR程序段的同时,自动复位原来的SCR程序段。
3)SCR指令的使用说明
(1)顺序控制继电器指令仅对S编程元件有效,如果编程元件S不用于SCR指令,它也具有一般继电器的功能。
(2)SCR段程序能否被执行,取决于该S编程元件是否被置位,SCRE与下一个LSCR之间的指令逻辑不影响下一个SCR段程序的执行。
(3)不能把同一个S地址用于不同程序中,例如,如果在主程序中用了S0.1,则在子程序中就不能再使用它。
(4)不能在SCR段之间使用JMP和LBL指令,即不允许用跳转的方法跳入或跳出SCR段。
(5)不能在SCR段中使用FOR、NEXT和END指令。
(6)在状态发生转移后,所有的原来SCR段中的线圈一般也要复位,如果希望继续保存原来的输出状态,可使用置位S或复位R指令来实现。
(7)在使用功能图时,编程元件的编号可以不按顺序安排。
图5-29 运输带控制的时序图和顺序功能图
2.单序列的编程方法
图5-29所示的为两条运输带顺序控制的时序图和顺序功能图,假设要求控制运输带能顺序启动和顺序停止。即按下启动按钮I0.0后,2号运输带开始运行(Q0.0接通),10s后1号运输带自动启动(Q0.1接通);当按下停止按钮I0.1后,1号运输带先停止运行,过12s后,2号运输带才停止运行。
使用SCR指令设计的顺序控制梯形图如图5-30所示。在SCR段中用SM0.0的常开触点驱动在该步中应为1状态的输出点(如Q)的线圈,并用转换条件对应的触点或电路来驱动SCR程序段转换指令SCRT。
图5-30 运输带控制的梯形图
程序一开始运行,SM0.1的常开触点接通一个扫描周期,使顺序控制继电器S0.0置位,初始步变为活动步,只执行S0.0对应的SCR段。本例中初始步不做任何工作,等待转换条件的到来。
如果按下启动按钮I0.0,转换条件满足,指令“SCRT S0.1”对应的线圈得电,使S0.1变为1状态,同时上一步S0.0变为0状态,此时操作系统只执行S0.1对应的SCR段;在该段中,SM0.0的常开触点一直闭合,使Q0.0置位(需要复位指令才能使Q0.0变为0状态),2号运输带开始运行,同时T37开始定时;定时10s时间到,转换条件满足,使S0.2变为1状态,S0.1则变为0状态,此时Q0.1得电,1号运输带开始运行;因为该步Q0.0也保持为1状态,则2号运输带保持运行;所以完成了顺序启动的功能。
按下停止按钮I0.1,使S0.3变为1状态,S0.2则变为0状态,S0.2程序段对应的输出线圈Q0.1失电,1号运输带停止运行,同时T38开始定时;定时12s时间到,一方面转换条件满足,使S0.0变为1状态,S0.3则变为0状态,系统返回初始步;另一方面使Q0.0复位,则2号运输带也停止运行;因此完成了顺序停止的功能。
3.选择序列与并行序列的编程方法
如图5-31(a)所示的为某控制过程的顺序功能图,其中包含了选择序列和并行序列的结构,下面介绍这两种序列的编程方法。
1)选择序列的编程方法
在图5-31(a)所示顺序功能图中,初始步S0.0后面有一个选择序列的分支。当步S0.0为活动步,并且转换条件I0.0变为ON状态,后续步S0.1将变为活动步,同时S0.0变为静止步。如果S0.0为活动步,并且转换条件I0.1得到满足,后续步S0.2将变为活动步,而S0.0变为静止步。
图5-31(b)所示的梯形图中程序一开始运行,SM0.1产生的初始化脉冲使S0.1~S1.0连续8个顺序控制继电器S的状态复位为0状态,而S0.0的状态为1状态,对应的SCR段被执行。此时若转换条件I0.0为1状态,该程序段中的指令“SCRT S0.1”被执行,程序将转换到步S0.1;若I0.1变为1状态,该程序段中的指令“SCRT S0.2”被执行,将转换到步S0.2。
在步S0.3之前有一个选择序列的合并,当步S0.1为活动步,并且转换条件I0.2得到满足,或者步S0.2为活动步,并且常开触点I0.3闭合时,步S0.3都应变为活动步。
在步S0.1和步S0.2对应的SCR段中,分别用I0.2和I0.3的常开触点驱动指令“SCRT S0.3”来实现选择序列的合并。
2)并行序列的编程方法
在图5-31(a)所示顺序功能图中,步S0.3后面有一个并行序列的分支。当步S0.3为活动步,并且转换条件I0.4变为ON状态时,步S0.4和步S0.5将同时变为活动步,此时用步S0.3对应的SCR段中I0.4的常开触点同时驱动指令“SCRT S0.4”和“SCRT S0.5”来实现。与此同时,步S0.3自动复位变为静止步。
图5-31 选择序列与并行序列的顺序功能图和梯形图
步S1.0之前有一个并行序列的合并,因为转换条件为1状态(条件总是满足),因此转换实现的条件是所有的前级步即步S0.6和步S0.7都是活动步。在图5-31(b)所示梯形图中,串联S0.6和S0.7的常开触点可实现对S1.0的置位和对S0.6、S0.7的复位,从而使步S1.0变为活动步,步S0.6和步S0.7变为静止步。
此外,顺序控制梯形图设计法还可以用移位寄存器指令设计程序,该指令的设计方法将在第6章介绍。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。