1三菱PLC基础与应用第4章状态转移图编程4.4实训项目4.3状态编程思想在非状态元件编程中的应用4.2状态转移图的编程方法4.1状态元件、状态转移图4.5习题2三菱PLC基础与应用4.1状态元件、状态转移图4.1.1状态编程思想梯形图由于其编程简单、使用方便等优点,受到了很多技术人员的青睐,但在一些工艺流程控制方面,还存在以下缺点:1)自锁、互锁等连锁关系设计复杂、易出错、检查麻烦。2)难以直接看出具体工艺控制流程及任务。为此,人们经过不懈努力,开发了状态转移图,也称顺序功能图(SFC),它不仅具有流程图的直观,而且能够方便处理复杂控制中的逻辑关系。3三菱PLC基础与应用下面通过一个例子来说明状态编程思想的优点,某台车自动往返示意图如图4-1所示。SBSQ1SQ2SQ3启动前进后退图4-1台车自动往返示意图4三菱PLC基础与应用在图4-1某台车自动往返工作流程中,其在一个周期中的工艺控制要求如下:1)按下启动按钮,台车前进。2)台车前进过程中碰到行程开关SQ2时,停止前进并开始后退。3)台车后退过程中碰到行程开关SQ1时,台车停止,10s后第二次前进。4)台车前进过程中碰到行程开关SQ3时,停止前进并开始后退。5)台车后退过程中碰到行程开关SQ1时,台车停止。5三菱PLC基础与应用根据上述控制要求,该工艺控制可用如图4-2所示的工作步序图来表示,其具有的特点如下:1)复杂的控制任务分解成了若干个工序,有利于程序的结构化设计。2)工序任务明确且具体,方便局部编程。3)可读性强,容易理解,能清晰反映整个工艺流程。6三菱PLC基础与应用工序1SBSQ2SQ1准备台车前进台车后退台车前进SQ3台车后退SQ1工序2工序4工序5台车停止10s10s时间到工序3图4-2台车往返运行步序图7三菱PLC基础与应用4.1.2状态元件在图4-2中,可以将每个工序当作一种状态,该状态可以通过状态器S来表示。FX2N系列PLC中,状态器S共有1000点,其分配及用途如下:1)S0~S9,状态转移图的初始状态。2)S10~S19,多运行模式控制中用作原点返回状态。3)S20~S499,状态转移图的中间状态。4)S500~S899,停电保持作用。5)S900~S999,报警元件作用。8三菱PLC基础与应用4.1.3状态转移图在图4-2中,“准备”状态可以当作“初始状态”,用S0~S9中的一个来表示;工序1~工序5则相当于中间状态,用S20~S499中的元件来表示,行程开关即状态转换的条件,相当于输入继电器X,前进、后退等任务用输出继电器来表示,延时则用定时器来实现,因此图4-2可以转换成图4-3,即状态转移图SFC。9三菱PLC基础与应用S20X0X2X1S0X3X1S21S23S24T0S22Y1Y0T0Y0Y1K100前进后退延时前进后退Y1Y0Y1Y0图4-3台车往返运行状态转移图10三菱PLC基础与应用4.1.4步进顺序控制指令FX2N系列PLC有两条步进顺序控制指令(简称“步进指令”):步进接点指令和步进结束指令其指令助记符与功能表如表4-1所示。SRET指令名称助记符梯形图符号功能步进接点指令STL步进接点驱动步进结束指令RET步进程序结束返回表4-1步进顺序控制指令说明11三菱PLC基础与应用STL指令的意义为激活某个状态,首先它类似于主控触点,该触点后的所有操作均受该触点控制;其次,只有被激活的程序段才被扫描执行,而且在单流程状态转移图中,一次扫描只有一个状态被激活,被激活的状态有自动关闭激活它的前个状态的能力,因此,不必考虑状态之间的互锁,而且当某个状态被关闭后,该状态中所有以OUT指令的输出全部变为OFF。12三菱PLC基础与应用S20X1S21Y0S21Y0SETS21X1S21子母线主母线STLS20OUTY1LDX1SETS21STLS21(a)状态图(b)梯形图(c)指令表图4-4STL指令使用说明13三菱PLC基础与应用从图4-4中,可以总结出步进指令的使用要求如下:1)步进接点指令在梯形图上体现为从主母线引出的状态接点,具有建立子母线的功能,以使该状态的操作均在子母线上进行,与该子母线连接的接点开始要用LD或LDI指令开始。2)只有当步进接点处于激活状态时,其后面的电路才会动作;如果步进接点指令未激活,则该步进接点后的所有电路将被跳过不扫描。3)允许同一元件的线圈在不同的STL接点后多次使用,但定时器线圈不能在相邻的状态中出现。14三菱PLC基础与应用4)STL指令的新母线上可以有多个线圈同时输出,但经LD或LDI指令编程后,输出指令不得与新母线相连。5)STL指令可以驱动Y、M、S、T,若要保持元件的输出结果应使用SET/RST指令;同一状态寄存器只能使用一次。6)在执行完所有STL指令后,防止出现逻辑错误,一定使用RET指令表示步进功能结束,子母线返回到主母线。15三菱PLC基础与应用4.1.5状态转移图三要素状态转移图中,每个状态都具备下列三要素:1)驱动负载,即该状态所要执行的任务。表达输出可用OUT指令,也可用SET指令。二者区别在于使用SET指令驱动的输出可以保持下去直至使用RST指令使其复位,而OUT指令在本状态关闭后自动关闭。如图4-5中的Y0就是状态S20的驱动负载。2)转移条件,即在什么条件下状态间实现转移。转移条件可以为单一的,也可以是多个元件的串并联。如图4-5中的X1就是状态S20实现转移的条件。3)转移目标,即转移到什么状态。如图4-5中的S21为状态S20的转移目标。转移目标若是顺序非连续转移,转移指令不应使用SET,而应使用OUT,如图4-6所示。16三菱PLC基础与应用S20X1S21Y0驱动负载转移条件转移目标S20S0S21S23S22OUTOUTS20S0S21S22OUTS23OUT图4-5状态转移图三要素示意图图4-6非连续状态转移图17三菱PLC基础与应用4.2状态转移图的编程方法4.2.1状态转移图编制规则1.SFC图编制规则在使用SFC图编制程序时,必须遵守如下规则:1)顺序连续转移时,一般用SET指令;非连续转移时,则必须用OUT指令,并在相应状态标注“→”表示转移目标,如图4-6所示。2)转移条件可以是单个或多个,但转移条件使用时不能用ANB、ORB、MPS、MRD、MPP等指令,因此,遇到复合转移条件时应进行如图4-7的处理。3)状态自复位时,要用符号“↓”表示,程序中用RST指令表示,如图4-8所示。18三菱PLC基础与应用S20X1X2S23Y0X3X4X0S20S23Y0X0M0X1X2X3X4M0S20X1X0Y0STLS40LDX0OUTY0LDX1RSTS20图4-7复合转移条件的处理图4-8自复位处理19三菱PLC基础与应用2.相关注意事项在使用SFC图编制程序时,必须注意如下的相关事项:1)状态编程顺序:先驱动后转移,即先执行任务,再进行状态转移,顺序不能颠倒。2)如前所述,STL步进接点指令具有建立子母线的功能,但并不是所有的基本指令都能在STL接点后使用,具体情况见表20三菱PLC基础与应用指令状态LD/LDI/OUTAND/ANI/OR/ORISET/RST/PLS/PLFANB/ORBMPS/MRD/MPPMC/MCR初始状态可用可用不可用分支汇合状态输出处理转移处理不可用表4-2基本指令在步进指令内可用情况表21三菱PLC基础与应用4.2.2单流程状态转移图的编程单流程是指状态转移只有一种顺序,每一个状态只有一个转移条件和一个转移目标。单流程状态转移图编程是指根据状态转移图画出其相应的梯形图,并写出指令表程序。在编程时总要抓住状态转移图的三要素以及“先驱动、后转移”的编程顺序原则,初始状态可由其他状态驱动或初始条件驱动,如无初始条件,可用M8002驱动。单流程状态转移图的编程应用示例如图4-9所示。22三菱PLC基础与应用S20X0X2X1S0X3X1S21S23S24T0S22Y1Y0T0Y0Y1K100前进后退延时前进后退Y1Y0Y1Y0M800223三菱PLC基础与应用S20Y0SETS21X2M8002SETS0S0SETS20X0Y1S21SETS22X1Y0S22T0SETS23T0K100S23Y0SETS24X3Y1S24Y1X1Y0RETENDY1S0LDM8002SETS0STLS0LDX0SETS20STLS20LDIY1OUTY0LDX2SETS21STLS21LDIY0OUTY1LDX1SETS22STLS22OUTT0K100LDT0SETS23STLS23LDIY1OUTY0LDX3SETS24STLS24LDIY0OUTY1LDX1OUTS0RETEND图4-9台车自动往返控制系统编程24三菱PLC基础与应用4.2.3选择性分支与汇合的编程1.选择性分支状态转移图的特点从多个分支流程顺序中根据条件选择执行其中一个分支执行,而其余分支的转移条件不能满足,即每次只满足一个分支转移条件的分支方式称为选择性分支。如图4-10所示就是一个选择性分支的状态转移图。从图4-10中可以看出该图具有如下特点:1)该SFC具有三个分支流程顺序。2)S20为分支状态。25三菱PLC基础与应用根据不同的条件(X0,X10,X20),选择执行其中一个条件满足的分支流程,其分支流程分解图如图4-11所示。X0接通时执行图4-11(a),X10接通时执行图4-11(b),X20接通时执行图4-11(c)。同一时刻最多只能有一个接通状态。如当X10接通时,S20向S31转移,S20变为OFF,此后即使X0或X20再接通,S21或S41也不会被激活。3)S50为汇合状态,它可有S22、S32、S42任一状态驱动在转移条件满足时发生状态转移。26三菱PLC基础与应用S20X0X1X2S0X4S21S50X3S22Y1Y2Y3X11X12S31X13S32Y11Y12X21X22S41X23S42Y21Y22Y0图4-10选择性分支状态转移图27三菱PLC基础与应用S20X1X2S21S50X3S22Y1Y2Y3Y0S20X11X12S31S50X3S32Y11Y12Y3Y0S20X21X22X3Y21Y22Y3Y0S41S42S50(a)第一分支(b)第二分支(c)第三分支图4-11选择性分支流程分解图28三菱PLC基础与应用2.选择性分支与汇合的编程★(1)编程原则★(2)分支状态的编程选择性分支与汇合的编程一般按如下几个思路进行:先集中处理选择性分支状态,再集中处理汇合状态。编程方法是先进行分支状态的驱动处理,再依顺序进行转移处理,如图4-12所示,其中图4-12(a)是分支状态,图4-12(b)是分支状态程序。按分支状态的编程方法,首先对S20进行驱动处理(OUTY0),然后按S21、S31、S41的顺序进行转移处理。29三菱PLC基础与应用S20X1S21X11S31X21S41Y0STLS20OUTY0LDX1SETS21LDX11SETS31LDX21SETS41(a)分支状态图4-12选择性分支状态及其编程(b)分支状态程序30三菱PLC基础与应用★(3)选择性分支汇合状态的编程先进行汇合前状态的驱动处理,再依顺序进行向汇合状态的转移处理,如图4-13所示,其中图4-13(a)是选择性汇合状态,图4-13(b)是选择性汇合状态编程。按照汇合状态的编程方法,依次将S21、S31、S32、S41、S42的输出进行处理,然后按顺序进行从S22(第一分支)、S32(第二分支)、S42(第三分支)向S50的转移。31三菱PLC基础与应用X2S21S50X3S22Y1Y2Y3X12S31X13S32Y11Y12X22S41X23S42Y21Y22(a)选择性汇合状态32三菱PLC基础与应用STLS21第一分支汇合前处理OUTY1LDX2SETS22STLS22OUTY2STLS31第二分支汇合前处理OUTY11LDX12SETS32STLS32OUTY12STLS41第三分支汇合前处理OUTY21LDX