顺序控制继电器SCR( Sequence Control Relay)指令对于一个复杂的控制系统,尤其是顺序控制程序,由于内部的连锁、互动关系极其复杂,用梯形图或语句表方式编写通常要由熟练的电气工程师才能编制,这样的程序如果不加注释,其程序的可读性会大大降低,也为调试、试运行带来困难。
近年来,许多PLC增加了顺序控制指令,用于编制复杂的顺序控制程序,利用这种方法,使初学者也很容易编写复杂的顺序控制程序。这种方法也为调试、运行带来许多难以言传的方便。
西门子plc S7-200 CPU含有256个顺序控制继电器(S0.0~S31.7)用于顺序控制,在顺序控制或步进控制中,常常将控制过程分成若干个顺序控制继电器( SCR)段,一个SCR段有时也称为一个控制功能步,简称步。每个SCR都是一个相对稳定的状态,都有段开始,段转移,段结束。在S7-200中,有3条简单的SCR指令与之对应。
1)顺序控制指令
①段开始指令LSCR( Load Sequence Control Relay)。段开始指令的功能是标记一个SCR段(或一个步)的开始,其操作数是状态继电器Sx.y(范围为:S0.0~S31.7),Sx.y是当前SCR段的标志位,当Sx.y为1时,允许该SCR段工作。
②段转移指令SCRT( Sequence Control Relay Transition)。段转移指令的功能是将当前的SCR段切换到下一个SCR段,其操作数是下一个SCR段的标志位Sx.y(如S0.1)。当允许输入有效时,进行切换,即停止当前SCR段工作(复位),启动下一个SCR段工作(置位)。
③段结束指令SCRE( Sequece Control Relay End)。段结束指令的功能是标记一个SCR段(或一个步)的结束。段结束指令和段开始指令必须成对出现,否则无法下载程序。
顺序控制指令的格式如图4-64所示。
图4-64 顺序控制指令
2) SCR指令的特点
①SCR指令的操作数(或编程元件)只能是状态继电器Sx.y;反之,状态继电器S可应用的指令并不仅限于SCR,它还可以应用LD、LNN、A、AN、O、ON、=、S、R等指令。
②1个状态继电器Sx.y作为SCR段标志位,可以用于主程序、子程序或者中断程序中,但是只能使用1次,不能重复使用。
③在一个SCR段中,禁止使用循环指令FOR/NEXT、跳转指令JMP/LBL和条件结束指令END。
3)状态流程图。状态流程图是用状态继电器(即S继电器)代表工程中的工序,一个工序的任务就是一个状态的控制过程(即一步),确定每步的启动条件和转换条件。每个独立的步分别用方框表示,根据动作顺序用箭头将各个方框连接起来,在相邻的两步之间用短横线表示转换条件。在每步的右边画上要执行的控制程序。一个工序的完成就意味着一个状态的结束,另一状态的开始。
在大中型PLC中,可直接使用S7-GRAPH语言处理比较复杂的顺序控制或步进控制问题。而在小型PLC的程序设计中,对于大量遇到的顺序控制或步进控制问题,如果能采用状态流程图的设计方法,再使用步进指令将很容易地转化成梯形图程序,就可完成比较复杂的顺序控制或步进控制任务。
【例4-28】 图4-65是一个单一流程状态转移图转化成梯形图的例子。系统初始进入S0.0,当S0.0=1时,系统进入S0.0段,在这一程序段中,使Q0.1输出1,使Q0.2置位。当I0.1=1时,状态由S0.0转为S0.1(S0.0先复位,S0.1再置位)。
注意:
①用OUT指令输出只能在本程序段内保持(即只在本工序有输出),为了能在段外也有输出,应该使用置位指令S,但一定要有复位指令R配合使用。
图4-65 单一流程编程方法
②段内输出一般直接用常开点( SM0. 0)控制,不再设置其他条件,否则即使进入该步也不会有输出。
③是段转移指令使本步复位,而不是段结束指令。所以应该注意各语句的先后位置,应该是:段开始,段输出,段转移,段结束。
④状态转移图可以转化成梯形图程序,也可以直接写成语句表程序,梯形图程序需要画到6个网络里,而语句表程序都写到1个网络里也能编辑运行。所以建议直接转化成语句表来编辑运行,会减少大量的输入、调试时间。
4)多流程顺序控制的步进指令编程方法
在顺序控制中,任何复杂的控制流程都可以分解为以下几种基本组合形式。
①单一流程编程方法。单一流程由一系列相继执行的工步组成。每一工步的后面只能接一个转移条件;而每一转移条件之后仅有一个工步,其结构及转化成梯形图及语句表的方法如图4-65所示,分析见例4-27。
②选择分支结构。从多个分支流程中选择某一个分支,称为选择分支,同一时刻只允许选择一个分支。如图4-66a示例,若S1.0动作时,一旦I0.1接通,动作状态就向S1.1转移,则S1.0变为0状态;此后即使I0.0闭合,S2.0也不动作。分支结束称为汇合,任一分支流程结束时的转移条件成立(I0.2或I0.4接通),均可转移到汇合状态S1.3。
在将选择分支转化成梯形图及语句表时应注意以下几点:
·各个程序段中的操作应根据实际工程要求去编辑,在梯形图中应处在各段的段开始( LSCR)和段转移(SCRT)之间,用常开点(SM0.0)控制。本图中省略了这方面的编程内容。
·该种结构最需注意的是选择分支开始的梯形图转化,当S1.0动作时,下一步有可能转移到S1.1或S2.0,所以在S1.0段编程时,要有两个段转移指令,然后才是段结束指令。
·多个选择分支应按着从左到右的顺序转化为梯形图,当左边支路按着顺序结构转化方法编辑完成后,才转化右边支路。
·将每个支路的结束段(S1.2和S2.0)的段转移(SCRT)的目标段都指向汇合处(S1.3),则完成了选择结构汇合点的转化。
图4-66 选择分支结构编程方法
③并行分支的开始与汇合。满足某个条件后导致几个分支同时动作,称为并行分支。如图4-67a示例中,若S1.0动作时,I0.1一接通,S1.1和S1.4就同时接通,并按各自分支的条件向下转移,待各分支流程的动作全部结束时,若I0.3接通,汇合状态S2.0动作,同时将S1.2和S1.6全部复位。为了强调转移的同步实现,分支开始和汇合处的水平连线用双线表示。各个程序段中的操作应根据实际工程要求去编辑,本图中省略了这方面的编程内容。
图4-67 并行结构编程方法
在将并行结构转化成梯形图及语句表时应注意以下几点:
·首先需要注意的是并行分支的开始的转化,在S1.0程序段当I0.1接通时,同时激活S1.1和S1.4,如图4-67b的第一个“*”所示。
·如果系统有n条并行支路,在前n-1条支路的结束段不要使用段转移指令使该段复位,但要有段结束指令(格式需要),如图4-67b的第二个“*”所示。
·并行分支结束要求必须保证全部并行支路均已完成,且并行结束条件接通(I0.3=1),才能使各并行支路结束段同时复位,同时置位并行汇集段(采用R、S指令)。如图4-67b的第三个“*”所示。
④跳转与循环。跳转与循环是选择分支的一种特殊形式。图4-68a的示例中,在S1.0动作时,若转移条件I0.3接通,将跳过S1.1去执行S1.2,这种情况为正向跳转;当顺序执行完S1.2和S1.3后,I0.4仍未闭合,将返回去再执行S1.2和S1.3,直到I0.4闭合后,才转向下一步S1.4,这时为逆向跳转。S1.4完成后,若I0.5闭合,将转移到初始步S1.0,开始新一个工作循环。
由图4-68可以看出,将跳转与循环结构的状态转移图转化为梯形图是非常简单的,是单一流程和选择分支的组合,其中正跳转、逆跳转及循环的转化方法如图4-68b的标注处。
图4-68 跳转与循环的编程方法
【例4-29】 步进控制指令应用举例。
控制要求:
控制3台电动机M1(Q0. 0)、M2( Q0.1)、M3(Q0. 2)的起动/停止,要求依次延时顺序起动/逆序停止3台电动机,即按下起动按钮(I0.0)后,M1立即起动,延时3s起动M2,再延时4s起动M3;按下停止按钮(I0.1)后,M3立即停止,延时4s停止M2,再延时3s停止M1。
如果在起动的过程中,想终止起动过程,按下停止按钮,也要求逆序停车。例如在M1、M2已经起动,M3还没起动时,按下停止按钮,则终止起动过程,并立即停止M2,延时3s停止M1。
分析:
①系统要求延时起动,延时停车,所以必须在步进控制中用到延时,为了节省系统资源及便于调试、监控,可以将相同设定值的延时段采用一个定时器来完成,即只用两个定时器(T37为3s定时器,T38为4s定时器)。
②PLC运行初试(SM0.1 =1),应使第一步(初始化步)置位,其他系统工作步复位。目的是即使中途切断程序的运行(断电、PLC停止运行),下次再运行时,仍然能保证系统能从头开始工作。
③由于允许在起动过程中终止起动过程,并要求逆序停车,所以系统的状态流程图应含有跳转结构。由于系统停车后必须回到初试状态,准备下次起动,所以应包含循环部分。根据控制要求绘制的步进控制状态流程图如图4-69a所示。
④由于将延时时间相同的时间段采用一个定时器来控制,所以在将状态转移图转化成梯形图或语句表时,必须使定时器在段外编程(可以放置在程序的结尾处),将所有启用该
定时器的段(状态继电器S)并联后来控制定时器的运行。对应的语句表如图4-69b所示。
图4-69 步进控制应用举例