1、第七章第七章 FX2N系列系列PLC步进指令步进指令 及状态编程法及状态编程法 状态法也叫功能表图法,是程序编制的重要方法及工具。近年来不少PLC厂商结合此法开发了相关的指令。FX2N系列PLC的步进顺控指令及大量的状态软元件就是为状态编程法安排的。状态转移图(SFC)是状态编程的重要工具,包含了状态编程的全部要素。进行状态编程时,一般先绘出状态转移图,再转换成状态梯形图(STL)或指令表。本章介绍状态指令、状态元件、状态三要素、状态编程思想,状态转移图与状态梯形图对应关系。然后说明常见状态转移图的编程方法,并结合实例介绍状态编程思想在顺序控制中的应用。一、一、FX2N系列步进指令及使用说明系
2、列步进指令及使用说明 1FX2N系列步进指令 FX2N系列步进指令有两条,其指令助记符与功能如表7-1所示。第一节第一节 步进指令与状态转移图表示方法步进指令与状态转移图表示方法表7-1 步进阶梯指令助记符与功能SR E T指令助记符、名称功能步进梯形图的表示程序步STL 步进接点指令步进接点驱动1RET 步进返回指令步进程序结束返回1 FX2N系列PLC步进指令所使用的状态软元件S有1000个,其分类、编号、数量和用途见表6-11。步进接点指令只有常开接点,连接步进接点的其它继电器接点用指令LD或LDI开始。步进返回指令(RET)用于状态(S)流程结束时,返回主程序(母线)。步进指令在状态转
3、移图和状态梯形图中的表示如图7-1所示。图7-1 步进指令表示方法 图7-1(b)中每个状态的内母线上都将提供三种功能:驱动负载(OUT Yi);指定转移条件(LD/LDI Xi);指定转移目标(SET Si)。称为状态的三要素。后两个功能是必不可少的。使用步进指令时应先设计状态转移图(SFC),再由状态转移图转换成状态梯形图(STL)。状态转移图中的每个状态表示顺序控制的每步工作的操作,因此常用步进指令实现时间或位移等顺序控制的操作过程。使用步进指令不仅可以简单、直观地表示顺序操作的流程图,而且可以非常容易地设计多流程顺序控制,并且能够减少程序条数,程序易于理解。2步进指令的使用说明 (1)
4、步进接点在状态梯形图中与左母线相连,具有主控制功能,STL右侧产生的新母线上的接点要用LD或LDI指令开始。RET指令可以在一系列的STL指令最后安排返回,也可以在一系列的STL指令中需要中断返回主程序逻辑时使用。(2)当步进接点接通时,其后面的电路才能按逻辑动作。如果步进接点断开,则后面的电路则全部断开,相当于该段程序跳过。若需要保持输出结果,可用SET和RST指令。(3)可以在步进接点内处理的顺控指令如表7-2所示。表7-2 可在状态内处理的顺控指令一览表 指令状态LD/LDI/LDP/LDFAND/ANI/ANDP/ANDFOR/ORI/ORP/ORF/INV/OUTSET/RST,PL
5、S/PLFANB/ORBMPS/MRD/MPPMC/MCR初始状态/一般状态可以使用可以使用不可使用 分支,汇 合状 态输出处理可以使用可以使用不可使用转移处理可以使用不可使用不可使用 表中的栈操作指令MPS/MRD/MPP在状态内不能直接与步进接点后的内母线连接,应接在LD或LDI指令之后,如图7-2所示。在STL指令内允许使用跳转指令,但其操作复杂,厂家建议最好不使用。Y001Y001Y001STL内母线S10X001X003X004X005MPSMRDMPPLD X001图7-2 栈操作指令在状态内的正确使用(4)允许同一编号元件的线圈在不同的STL接点后面多次使用。但是应注意,同一编号
6、定时器线圈不能在相邻的状态中出现。在同一个程序段中,同一状态继电器地址号只能使用一次。(5)在STL指令的内母线上将LD或LDI指令编程后,对图7-3(a)所示没有触点的线圈Y003将不能编程,应改成按图7-3(b)电路才能对Y003编程。或或(a a)(b b)图7-3 状态内没有触点线圈的编程 (6)为了控制电机正反转时避免两个线圈同时接通短路,在状态内可实现输出线圈互锁,方法如图7-4所示。S20X001S21Y001Y002Y001Y002正转反转状态地址号图7-4 输出线圈的互锁 二、状态转移图(二、状态转移图(SFC)的建立及其特点的建立及其特点 状态转移图是状态编程法的重要工具。
7、状态编程的一般设计思想是:将一个复杂的控制过程分解为若干个工作状态,弄清各工作状态的工作细节(如状态功能、转移条件和 转移方向),再依据总的控制顺序要求,将这些工作状态联系起来,就构成了状态转移图,简称为SFC图。SFC图可以在备有A7PHP/HGP等图示图像外围设备和与其对应编程软件的个人计算机上编程。根据SFC图进而可以编绘出状态梯形图STL。下面介绍图7-5中某台车自动往返控制的SFC建立。台车自动往返一个工作周期的控制工艺要求如下。(1)按下启动钮SB,电机M正转,台车前进,碰到限位开关SQ1后,电机M反转,台车后退。(2)台车后退碰到限位开关SQ2后,台车电机M停转,台车停车5s后,
8、第二次前进,碰到限位开关XSQ3,再次后退。(3)当后退再次碰到限位开关SQ2时,台车停止。下面运用状态编程思想说明建立SFC图的方法。(1)将整个过程按工序要求分解。由PLC的输出点Y021控制电机M正转驱动台车(前进),由Y023控制M反转(后退)。为了解决延时5S,选用定时器T0。将启动按钮SB及限位开关SQ1、SQ2、SQ3分别接于X000、X011、X012、X013。分析其一个工作周期的控制要求,有五个工序要顺序控制,如图7-6所示。(2)对每个工序分配状态元件,说明每个状态的功能与作用,转移条件。如表7-3所示。表7-3 工序状态元件分配、功能与作用、转移条件 工 序分配的状态元
9、件功能与作用转移条件0 初始状态S0PLC上电作好工作准备RUN后M8002产生1个脉冲1 第一次前进S20驱动输出线圈Y021,M正转X000(SB)2 第一次后退S21驱动输出线圈Y023,M反转X011(SQ1)3 暂停5秒S22驱动定时器T0延时5SX012(SQ2)4 第二次前进S23驱动输出线圈Y021,M正转T05 第二次后退S24驱动输出线圈Y023,M反转X013(SQ3)根据表7-3可绘出状态转移图如图7-7所示。图中初始状态S0要用双框,驱动S0的电路要在对应的状态梯形图中的开始处绘出。SFC图和状态梯形图结束时要使用RET和END指令。三、状态转移图(三、状态转移图(S
10、FC)转换成转换成 状态梯形图(状态梯形图(STL)、)、指令表程序指令表程序 由以上分析可看出,SFC图基本上是以机械控制的流程表示状态(工序)的流程,而STL图全部是由继电器来表示控制流程的程序。我们仍以图7-7的SFC图为例,将其转换成STL图和指令表程序,如图7-8所示。读者会发现,从SFC图转换成STL图,写出指令表程序是非常容易的。图7-8 台车自动往返控制的状态梯形图(STL图)和指令表 第二节第二节 编制编制SFC图的注意事项和规则图的注意事项和规则 一、编制一、编制SFC图的注意事项图的注意事项 (1)对状态编程时必须使用步进接点指令STL。程序的最后必须使用步进返回指令RE
11、T,返回主母线。(2)初始状态的软元件用S0S9,要用双框表示;中间状态软元件用S20S899等状态,用单框表示。若需要在停电恢复后继续原状态运行时,可使用S500S899停电保持状态元件。此外S10S19在采用状态初始化指令FNC60(IST)时,可用于特殊目的。(3)状态编程顺序为:先进行驱动,再进行转移,不能颠倒。(4)当同一负载需要连续多个状态驱动时,可使用多重输出,在状态程序中,不同时“激活”的“双线圈”是允许的,如图7-9(a)。另外,相邻状态使用的T、C元件,编号不能相同。如图7-9(b)所示。(5)负载的驱动、状态转移条件可能为多个元件的逻辑组合,视具体情况,按串、并联关系处理
12、,不能遗漏。如图7-10(a)。Y001Y001Y001S22S21S20STL(a)T 1K20K10S40T 1S42T 1S43T 1不能编程(b)图7-9 同一负载需要多个状态驱动可使用多重输出,但相邻状态定时器编号不能相同 图7-10 负载组合驱动、状态向不连续状态转移的处理 (7)在STL与RET指令之间不能使用MC、MCR指令。(8)初始状态可由其他状态驱动,但运行开始必须用其他方法预先作好驱动,否则状态流程不可能向下进行。一般用系统的初始条件,若无初始条件,可用M8002(PLC从STOPRUN切换时的初始脉冲)进行驱动。二、编制二、编制SFC图的规则图的规则 1若向上转移(称
13、重复)、向非相连的下面转移或向其他流程状态转移(称跳转),称为顺序不连续转移,顺序不连续转移的状态不能使用SET指令,要用OUT指令进行状态转移,并要在SFC图中用“”符号表示转移目标。如图7-11所示。图7-11 非连续转移在SFC图中的表示 2在流程中要表示状态的自复位处理时,要用“”符号表示,自复位状态在程序中用RST指令表示,如图7-12所示。3.SFC图中的转移条件不能使用ANB,ORB,MPS,MRD,MPP指令。应按图7-13(b)所示确定转移条件。4.状态转移图中和流程不能交叉,应按图7-14处理。5若要对某个区间状态进行复位,可用区间复位指令ZRST按图7-15(a)处理;若
14、要使某个状态中的输出禁止,可按图7-15(b)所示方法处理;若要使PLC的全部输出继电器(Y)断开,可用特殊辅助继电器M8034接成图7-15(c)电路,当M8034为ON时,PLC继续进行程序运算,但所有输出继电器(Y)都断开了。为了有效地编制SFC图,常需要采用表7-4所示的特殊辅助继电器。图7-15 状态区域复位和输出禁止的处理 表7-4 SFC图中常采用的特殊继电器功能与用途 地址号名称功能与用途M8000RUN监视器可编程控制器在运行过程中,它一直处于接通状态。可作为驱动所需的程序输入条件与表示可编程控制器的运行状态来使用。M8002初始脉冲在可编程控制器接通瞬间,产生1个扫描周期的
15、接通信号。用于程序的初始设定与初始状态的置位.M8040禁止转移在驱动该继电器时,禁止在所有程序步之间转移。在禁止转移状态下,状态内的程序仍然动作,因此输出线圈等不会自动断开.M8046STL动作任一状态接通时,M8046仍自动接通,可用于避免与其他流程同时启动,也可用作工序的动作标志.M8047STL监视器有效在驱动该继电器时,编程功能可自动读出正在动作中的状态地址号第三节第三节 多流程步进顺序控制多流程步进顺序控制 在顺序控制中,经常需要按不同的条件转向不同的分支,或者在同一条件下转向多路分支。当然还可能需要跳过某些操作或重复某种操作。也就是说,在控制过程中可能具有两个以上的顺序动作过程,
16、其状态转移流程图也具有两个以上的状态转移分支,这样的SFC图称为多流程顺序控制。常用的状态转移图的基本结构有单流程、选择性分支、并联性分支和跳步与循环四种结构。一、单流程结构程序一、单流程结构程序 所谓单流程结构,就是由一系列相继执行的工步组成的单条流程。其特点是:每一工步的后面只能有一个转移的条件,且转向仅有一个工步。状态不必按顺序编号,其它流程的状态也可以作为状态转移的条件。第一节中讨论的台车自动往返控制SFC就是这类结构。下面再分析一例转轴的旋转控制系统。(a)转轴的旋转控制示意图(b)系统监控梯形图(c)转轴旋转控制SFC图图7-16轮轴旋转控制系统*二、选择性分支与汇合及其编程二、选
17、择性分支与汇合及其编程(一)选择性分支SFC图的特点 从多个分支流程中根据条件选择某一分支,状态转移到该分支执行,其它分支的转移条件不能同时满足,即每次只满足一个分支转移条件,称为选择性分支。图7-17就是一个选择性分支的状态转移图。其特点是:1.该状态转移图有三个分支流程顺序。2S20为分支状态。根据不同的条件(X000、X010、X020),选择执行其中的一个分支流程。当X000为ON时执行第一分支流程;X010为ON时执行第二分支流程;X020为ON时执行第三分支流程。X000,X010,X020不能同时为ON。图7-17 选择性分支状态转移图*3S50为汇合状态,可由S22、S32、S
18、42任一状态驱动。(二)选择性分支、汇合的编程 编程原则是先集中处理分支状态,然后再集中处理汇合状态。1.分支状态的编程 编程方法是先对分支状态S20进行驱动处理(OUTY000),然后按S21、S31、S41的顺序进行转移处理。图7-17的分支状态S20如图7-18(a),图7-18(b)是分支状态的编程。图7-18 分支状态S20及其编程 2、汇合状态的编程 编程方法是先依次对S21、S22、S31、S32、S41、S42状态进行汇合前的输出处理编程,然后按顺序从S22(第一分支)、S32(第二分支)、S42(第三分支)向汇合状态S50转移编程。图7-19 汇合状态S50及其编程*3.选择
19、性分支状态转移图对应的状态梯形图 根据图7-17的选择性分支SFC图和上面的指令表程序,可以绘出它的状态梯形图如图7-20所示。图7-20 选择性分支SFC图对应的状态梯形图 (二)选择性分支状态转移图及编程实例 图7-21为使用传送带将大、小球分类选择传送装置的示意图。左上为原点,机械臂的动作顺序为下降、吸住、上升、右行、下降、释放、上升、左行。机械臂下降时,当电磁铁压着大球时,下限位开关LS2(X002)断开;压着小球时,LS2接通,以此可判断是大球还是小球。左、右移分别由Y004、Y003控制;上升、下降分别由Y002、Y000控制,将球吸住由Y001控制。图7-21 大小球分类选择传送
20、装置示意图*根据工艺要求,该控制流程可根据LS2的状态(即对应大、小球)有两个分支,此处应为分支点,且属于选择性分支。分支在机械臂下降之后根据LS2的通断,分别将球吸住、上升、右行到LS4(小球位置X004动作)或LS5(大球位置X005动作)处下降,此处应为汇合点。然后再释放、上升、左移到原点。其状态转移图如图722所示。图7-22 大小球分类选择传送的状态转移图 LD M8002 LD T1 SET S30SET S0 SET S23 STL 27STL S0 STL S23 LD X005LD X001 OUT Y002 SET S30AND X003 LD X003 STL S30AN
21、I Y001 SET S24 OUT Y000OUT Y007 STL S24 LD X002LD X000 LDI X004 SET S31AND Y007 OUT Y003 STL S31SET S21 STL S25 RST Y001STL S21 SET Y001 OUT T2OUT Y000 OUT T1 K10OUT T0 K10 LD T2 K20 LD T1 SET S32LD T0 SET S26 STL S32AND X002 STL S26 OUT Y002SET S22 OUT Y002 LD X003LD T0 LD X003 SET S33ANI X002 SET
22、S27 STL S33SET S25 STL S27 LDI X001STL S22 LDI X005 OUT Y004SET Y001 OUT Y003 LD X001OUT T1 STL S24 OUT S0 K10 LD X004 RET END分支状态程序分支输出程序转移到S30程序二、并行分支与汇合的编程二、并行分支与汇合的编程(一)并行分支状态转移图及其特点 当满足某个条件后使多个流程分支同时执行的分支流程称为并行分支,如图723所示。图中当X000接通时,状态同时转移,使S21、S31和S41同时置位,三个分支同时运行,只有在S22、S32和S42三个状态都运行结束后,若X002
23、接通,才能使S30置位,并使S22、S32和S42同时复位。它有二个特点:图7-23 并行分支流程结构*(二)并行分支状态转移图的编程 编程原则是先集中进行并行分支处理,再集中进行汇合处理。1并行分支的编程 编程方法是先对分支状态进行驱动处理,然后按分支顺序进行状态转移处理。图7-24(a)为分支状态S20图,图7-24(b)是并行分支状态的编程。2、并行汇合处理编程 编程方法是先进行汇合前状态的驱动处理,然后按顺序进行汇合状态的转移处理。图7-24 并行分支的编程 按照并行汇合的编程方法,应先进行汇合前的输出处理,即按分支顺序对S21、S22、S31、S32、S41、S42进行输出处理,然后
24、依次进行从S22、S32、S42到S30的转移。图725(a)为S30的并行汇合状态,图7-25(b)是各分支汇合前的输出处理和向汇合状态S30转移的编程。3.并行分支SFC图对应的状态梯形图 根据图7-23的SFC图和上面的指令表程序,可以绘出它的状态梯形图如图7-26所示。图7-25 并行汇合的编程 图7-26 并行分支SFC图的状态梯形图 4、并行分支、汇合编程应注意的问题 (1)并行分支的汇合最多能实现8个分支的汇合,如图727所示。(2)并行分支与汇合流程中,并联分支后面不能使用选择转移条件,在转移条件*后不允许并行汇合,如图728(a)所示,应改成图7-28(b)后,方可编程。(三
25、)并行分支、汇合编程实例 图729为按钮式人行横道交通灯控制示意图。车道信号由状态S21控制绿灯(Y003)亮,人行横道信号由状态S30控制红灯(Y005)亮。图7-29 人行横道交通灯控制 人过横道,应按路两边的人行横道按钮X000或X001,车道绿灯亮30秒后由状态S22控制车道黄灯(Y002)亮10秒,然后由状态S23控制车道红灯(Y001)亮5秒后,启动状态S31使人行横道的红灯变为绿灯(Y006)点亮。人行横道绿灯亮15秒后,由状态S32和S33交替控制横道绿灯进行0.5秒闪烁,闪烁5次,人行横道变为红灯亮,人行横道禁止通行。5秒后返回初始状态。人行横道交通灯控制的状态转移图及程序如
26、图7-30所示。在图中S33处有一个选择性分支,人行道绿灯闪烁不到五次,选择局部重复动作;闪烁五次后使横道红灯亮,车道绿灯亮。四、分支、汇合的组合流程及虚设状态四、分支、汇合的组合流程及虚设状态 运用状态编程思想解决问题,当状态转移图设计出后,发现有些状态转移图不单单是某一种分支、汇合流程,而是若干个或若干类分支、汇合流程的组合。如按钮式人行横道的状态转移图,并行分支、汇合中,存在选择性分支,只要严格按照分支、汇合的原则和方法,就能对其编程。但有些分支、汇合的组合流程不能直接编程,需要转换后才能进行编程,如图731,应将左图转换为可直接编程的右图形式。图7-31 组合流程的转移 另外,还有一些
27、分支、汇合组合的状态转图如图7-32所示,它们连续地直接从汇合线转移到下一个分支线,而没有中间状态。这样的流程组合既不能直接编程,又不能采用上述办法先转换后编程。这时需在汇合线到分支线之间插入一个状态,以改变直接从汇合线到下一个分支线的状态转移。但在实际工艺中这个状态并不存在,所以只能虚设,这种状态称为虚设状态。加入虚设状态之后的状态转换图就可以进行编程了。图7-32 虚拟状态的设置 一条并行分支或选择性分支的电路数限定为8条以下;有多条并行分支与选择性分支时,每个初始状态的电路总数应小于等于16条,如图7-33所示。五、跳转与循环结构五、跳转与循环结构 跳转与循环是选择性分支的一种特殊形式。
28、若满足某一转移条件,程序跳过几个状态往下继续执行,这是正向跳转,若要程序返回到上面某个状态再开始往下继续执行,这是逆向跳转,也称作循环。任何复杂的控制过程均可以由以上四种结构组合而成。下面图7-34所示就是跳转与循环结构的状态转移图和状态梯形图。图7-34 跳转与循环控制的SFC图和STL图*在图7-34中:在S23工作时,X003和X100均接通,则进入逆向跳转,返回到S21重新开始执行(循环工作);若X100断开,则 X100常闭触点闭合,程序则顺序往下执行S24。当X004和X101均接通时,程序由S24直接转移到S27状态,跳过S25和S26,执行状态S27,为正向跳转。当X007和X102均接通时,程序将返回到S21状态,逆向跳转,开始新的工作循环;若X102断开,X102常闭触点闭合时,程序返回到预备工作状态S0,等待新的启动命令。跳转与循环的条件,可以由现场的行程(位置)获取,也可以用计数方法确定循环次数,在时间控制中可以用定时器来确定。