第3章三菱FX2N系列可编程控制器的步进指令3.1顺序控制的概念及状态转移图3.1.1顺序控制简介机械设备的动作过程大多数是按工艺要求预先设计的逻辑顺序或时间顺序的工作过程,即在现场开关信号的作用下,启动机械设备的某个机构动作后,该机构在执行任务中发出另一现场开关信号,继而启动另一机构动作,如此按步进行下去,直至全部工艺过程结束,这种由开关元件控制的按步控制方式,称为顺序控制。我们先看一个例子:三台电动机顺序控制系统。要求:按下按钮SB1,电动机1启动;当电动机1启动后,按下按钮SB2,电动机2启动;当电动机2启动后,按下按钮SB3,电动机3启动;当三台电动机启动后,按下按钮SB4,电动机3停止;当电动机3停止后,按下按钮SB5,电动机2停止;当电动机2停止后,按下按钮SB6,电动机1停止。三台电动机的启动和停止分别由接触器KM1、KM2、KM3控制。图3-1为电动机控制流程图、PLC接线图及电气控制原理图。PLCLNPECOMX0X1X2X3X4X5X624V+COM1COM2Y1Y0Y2Y3Y4Y5Y6Y7~220V~220VSB1KM1SB2SB3SB4SB5SB6KM2KM3a)控制流程图b)PLC接线及电气控制原理图图3-1电动机控制流程图、PLC接线图及电气控制原理图使用基本指令编制的PLC梯形图程序如图3-2图3-2三台电动机顺序控制梯形图从图3-3中可以看出,为了达到本次的控制要求,图中又增加了三只辅助继电器,其功能读者可自行分析。用梯形图或指令表方式编程固然广为电气技术人员接受,但对于一个复杂的控制系统,尤其是顺序控制程序,由于内部的联锁、互动关系极其复杂,其梯形图往往长达数百行,通常要由熟练的电气工程师才能编制出这样的程序。另外,如果在梯形图上不加上注释,则这种梯形图的可读性也会大大降低。3.1.2状态转移图基于经验法和基本指令编写复杂程序的缺点,人们一直寻求一种易于构思、易于理解的图形程序设计工具。它应有流程图的直观,又有利于复杂控制逻辑关系的分解与综合,这种图就是状态转移图。为了说明状态转移图,现将三台电动机顺序控制的流程各个控制步骤用工序表示,并工作顺序将工序连接成如图3-3所示工序图,这就是状态转移图的雏形。从图3—3可看到,该图有以下特点。(1)将复杂的任务或过程分解成若干个工序(状态)。无论多么复杂的过程均能分化为小的工序,有利于程序的结构化设计。(2)相对某一个具体的工序来说,控制任务实现了简化。给局部程序的编制带来了方便。(3)整体程序是局部程序的综合,只要弄清楚工序成立的条件、工序转移的条件和方向,就可进行这类图形的设计。(4)这种图很容易理解,可读性很强,能清晰地反映全部控制工艺过程。其实将图中的“工序”更换为“状态”,就得到了状态转移图——状态编程法的重要工具。状态编程的一般思想为:将一个复杂的控制过程分解为若干个工作状态,弄清楚个状态的工作细节(状态的功能、转移条件和转移方向)再依据总的控制顺序要求。将这些状态联系起来,形成状态转移图,进面编绘梯形图程序。启动第一台电动机启动第二台电动机启动第三台电动机停止第三台电动机停止第二台电动机停止第一台电动机准备工序1工序2工序3工序4工序5工序6按下启动按钮SB1按下启动按钮SB2按下启动按钮SB3按下停止按钮SB4按下停止按钮SB5按下停止按钮SB6S0S20S21S22S23S24S25X1X2X3X4X5X6SETSETSETRSTRSTRSTY0Y1Y2Y2Y1Y0M8002转移条件状态元件状态任务图3-3工序图图3-4状态转移图在状态转移图中,一个完整的状态包括以下3部分:(1)状态任务,即本状态做什么。(2)状态转移条件,即满足什么条件实现状态转移。(3)状态转移方向,即转移到什么状态去。3.1.3FX2N的状态元件SFX2N系列PLC中规定状态继电器S为控制元件,状态继电器有S0~S999共1000点,其分类、编号、数量及用途如表3-2。表3-1状态继电器S信息表类别元件编号个数用途及特点初始状态S0~S910用作初始状态返回原点状态S10~S1910多运行模式中,用作返回原点的状态一般状态S20~S499480用作中间状态掉电保持状态S500~S899400用作停电恢复后需继续执行的场合信号报警转台S900~S999100用作报警元件试用注:1.状态的编号必须在指定范围内选择。2.各状态元件的触点,在PLC内部可自由使用,次数不限。3.在不用步进顺控指令时,状态元件可作为辅助继电器在程序中使用。4.通过参数设置,可改变一般状态元件和掉电保持状态元件的地址分配。3.2步进指令及多流程步进顺序控制3.2.1步进指令IECl131—3标准中定义的SFC(SequentialFunctionChart)语言是一种通用的状态转移图语言,用于编制复杂的顺控程序,主要不同厂家生产的可编程控制器中用SFC语言编制的程序极易相互变换。利用这种先进的编程方法,初学者也很容易编出复杂的程序,熟练的电气工程师用这种方法后也能大大提高工作效率。另外,这种方法也为调试、试运行带来许多难以言传的方便。三菱的小型PLC在基本逻辑指令之外增加了两条简单步进顺控指令(STL,意为StepLadder),类似于SFC的语言的状态转移图方式编程。步进指令有两条:STL(步进接点指令)和RET(步进返回指令)。1.STL:步进接点指令STL指令的操作元件是状态继电器S,STL指令的意义为激活某个状态。在梯形图上体现为从主母线上引出的状态接点。STL指令有建立子母线的功能,以使该状态的所有操作均在子母线上进行。STL指令的应用如图3-5所示。S20X2SETY0转移条件状态任务a)状态转移图b)梯形图图3-5STL指令应用r我们可以看到,在状态转移图中状态有状态任务(驱动负载)、转移方向(目标)和转移条件三个要素。其中转移方向(目标)和转移条件是必不可少的,而驱动负载则视具体情况,也可能不进行实际的负载驱动。上图为状态转移图和梯形图的对应关系。其中SETY1为状态S20的状态任务(驱动负载),S21为其转移的目标,X3为其转移条件。图3-5的指令表程序如下:STLS20使用STL指令,激活状态继电器S20SETY000驱动负载LDX1转移条件SETS21转移方向(目标)处理STLS21使用STL指令,激活状态继电器S21步进顺控的编程思想是:先进行负载驱动处理,然后进行状态转移处理。从程序中可以看出,首先要使用STL指令,这样保负载驱动和状态转移均是在子母线上进行,并激活状态继电器S20;然后进行本次状态下负载驱动,SETY001;最后,如果转移条件X2满足,使用SET指令将状态转移到下一个状态继电器S21。步进接点只有常开触点,没有常闭触点。步进接点接通,需要用SET指令进行置位。步进接点闭合,其作用如同主控触点闭合一样,将左母线移到新的临时位置,即移到步进接点右边,相当于子母线,这时,与步进接点相连的逻辑行开始执行,与子母线相连的触点可以采用LD指令或者LDI指令。2.RET:步进返回指令RET指令没有操作元件。RET指令的功能是:当步进顺控程序执行完毕时,使子母线返回到原来主母线的位置,以便非状态程序的操作在主母线上完成,防止出现逻辑错误。RET指令的应用如图3-6。a)梯形图b)指令表图3-6RET指令的应用在每条步进指令后面,不必都加一条RET指令,只需在一系列步进指令的最后接一条RET指令即可。状态转移程序的结尾必须有RET指令。3.2.2单流程步进顺序控制所谓单流程,是指状态转移只可能有一种顺序。电动机顺序控制过程只有一种顺序:启动电动机1启动电动机2启动电动机三停止电动机3停止电动机2停止电动机1,没有其它可能,所以叫单流程。下面仍以电动机顺序控制为例,说明运用状态编程思想编写步进顺序控制程序的方法和步骤。1.状态转移图的设计(1)将整个工作过程按任务要求分解,其中的每个工序均对应一个状态,并分配状态元件。①准备(初始状态)S0②启动电动机1S20③启动电动机2S21④启动电动机3S22⑤停止电动机3S23⑥停止电动机2S24⑦停止电动机1S25注意:不同工序,状态继电器编号也不同。一个状态(步)用一个矩形框来表示,中间写上状态元件编号用以标识。一个步进顺控程序必须要有一个初始状态,一般状态和初始状态的符号如图3-7所示。S20S0a)一般状态b)初始状态图3-7状态(步)的符号(2)弄清每个状态的状态任务(驱动负载)。S0PLC上电作好工作准备S20启动电动机1(SETY0)S21启动电动机2(SETY1)S22启动电动机3(SETY2)S23停止电动机3(RSTY2)S24停止电动机2(RSTY1)S25停止电动机1(RSTY0)用右边的一个矩形框表示该状态对应的状态任务,多个状态任务对应多个矩形框。各状态的功能是通过PLC驱动其各种负载来完成的。负载可由状态元件直接驱动,也可由其他软元伴触点的逻辑组合驱动.S20X2SETY0S20X1X2SETY0X0Y0T0a)直接驱动b)软元件组台驱动图3-8负载的驱动(3)找出每个状态的转移条件。即在什么条件将下个状态“激活”。状态转移图就是状态和状态转移条件及转移方向构成的流程图,经分析可知,本例中各状态的转移条件如下。S0转移条件按下SB1S20转移条件按下SB2S21转移条件按下SB3S22转移条件按下SB4S23转移条件按下SB5S24转移条件按下SB6用一个有向线段来表示状态转移的方向,从上向下画时可以省略箭头,当有向线段从下向上画时,必须画上箭头,以表示方向。状态之间的有向线段上再用一段横线表示这一转移的条件。状态的转移条件可以是单一的,也可以有多个元件的串、并联组合。如图3-9所示。S20X0转移条件S20X2X1T0X0a)单一条件b)多条件组合图3-9状态的转移条件经过以上三步,可得到电动机顺序控制的状态转移图,如图3-10所示。S0S20S21S22S23S24S25X1X2X3X4X5X6SETSETSETRSTRSTRSTY0Y1Y2Y2Y1Y0图3-10电动机顺序控制系统状态转移图2.单流程状态转移图的编程要点(1)状态编程的基本原则是:激活状态,先进行负载驱动,再进行状态转移,顺序不能颠倒。(2)当使用STL指令将某个状态激活,该状态下的负载驱动和转移才有可能。若对应状态是关闭的,则负载驱动和状态转移不可能发生。(3)除初始状态下,其它所有状态只有在其前一个状态被激活且转移条件满足时才能被激活,同时一旦下一个状态被激活,上一个状态自动关闭。因此,对于单流程状态转移图来说,同一时间,只有一个状态是处于激活状态的。(4)若为顺序连续转移(即按状态继电器元件编号顺序向下),使用SET指令进行状态转移;若为顺序不连续转移,不能使用SET指令,应改用OUT指令进行状态转移。如图3-11。图3-11非顺序连续转移图(5)状态的顺序可自用选择,不一定非要按S编号的顺序选用,但在一系列的STL指令的最后,必须写入RET指令。(6)在STL电路不能使用MC指令,MPS指令也不能紧接着STL触点后使用。(7)初始状态可有其它状态驱动,但运行开始必须用其它方法预先做好驱动,否则状态流程不可能向下进行。一般用系统的初始条件,若无初始条件,可用M8002(PLC从STOPRUN切换时的初始脉冲)进行驱动。(8)在步进程序中,允许同一状态元件不同时“激活”的“双线圈”是允许的。同一定时器和计数器不要在相邻的状态中使用,可以隔开一个状态使用。在同一程序段中,同一状态继电器也只能使用一次。(9)状态元件S500~S899是由锂电池后备的,在运行中途发生停电、再通电时要继续运行的场合,请使用这些状态元件。3.三台电动机顺序控制系统的STL编程。图3-12电动机顺序控制步进梯形图LDM8002初始脉冲SETS0状态转移S0STLS0激活初始状态S0LDX001转移条件X1SETS20状态转移S20STLS20激活状态S20SETY000驱动负载LDPX002转移条件X2SETS21状态转移S21