5.1 状态转移图与步进指令

5.1.1 顺序控制与状态转移图

一个复杂的任务往往可以分成若干个小任务,当按一定的顺序完成这些小任务后,整个大任务也就完成了。在生产实践中,顺序控制是指按照一定的顺序逐步控制来完成各个工序的控制方式。在采用顺序控制时,为了直观表示出控制过程,可以绘制顺序控制图。

图5-1所示是一种三台电动机顺序控制图。由于每一个步骤称作一个工序,所以顺序控制图又称工序图,如图5-1(a)所示;在PLC编程时,绘制的顺序控制图称为状态转移图,简称SFC图,如图5-1(b)所示,它是图5-1(a)对应的状态转移图。

图5-1 一种三台电动机顺序控制图

顺序控制有三个要素:转移条件、转移目标和工作任务。在图5-1(a)中,当上一个工序需要转到下一个工序时必须满足一定的转移条件,如工序1要转到下一个工序2时,须按下启动按钮SB2,若不按下SB2,即不满足转移条件,就无法进行下一个工序2。当转移条件满足后,需要确定转移目标,如工序1转移目标是工序2。每个工序都有具体的工作任务,如工序1的工作任务是“启动第一台电动机”。

PLC编程时绘制的状态转移图与顺序控制图相似,图5-1(b)中的状态元件(状态继电器)S20相当于工序1,“SET Y1”相当于工作任务,S20的转移目标是S21, S25的转移目标是S0, M8002和S0用来完成准备工作,其中M8002为触点利用型辅助继电器,它只有触点,没有线圈,PLC运行时触点会自动接通一个扫描周期,S0为初始状态继电器,要在S0~S9中选择,其他的状态继电器通常在S20~S499中选择(三菱FX2N系列)。

5.1.2 步进指令说明

PLC顺序控制需要用到步进指令,三菱FX2N系列PLC有2条步进指令:STL和RET。

1.指令名称与功能

指令名称及功能如下:

2.使用举例

(1)STL指令使用

STL指令使用举例如图5-2所示。状态继电器S只有常开触点,没有常闭触点,在绘制梯形图时,输入指令“[STL S20]”即能生成S20常开触点,S常开触点闭合后,其右端相当于子母线,子母线可以直接连接线圈。

图5-2 STL指令使用举例

梯形图说明如下:

当X000常开触点闭合时→[SET S20]指令执行→状态继电器S20被置1(置位)→S20常开触点闭合→Y000线圈得电;若X001常开触点闭合,Y001线圈也得电;若X002常开触点闭合,[SET S21]指令执行,状态继电器S21被置1→S21常开触点闭合。

(2)RET指令使用

RET指令使用举例如图5-3所示。RET指令通常用在一系列步进指令的最后,表示状态流程的结束并返回主母线。

图5-3 RET指令使用举例

5.1.3 步进指令在两种编程软件中的编写形式

在三菱FXGP_WIN-C和GX Developer编程软件中都可以使用步进指令编写顺序控制程序,但两者的编写方式有所不同。

图5-4为FXGP_WIN-C和GX Developer软件编写的功能完全相同梯形图,虽然两者的指令语句表程序完全相同,但梯形图却有区别,FXGP_WIN-C软件编写的步程序段开始有一个STL触点(编程时输入“[STL S0]”即能生成STL触点),而GX Developer软件编写的步程序段无STL触点,取而代之的程序段开始是一个独占一行的“[STL S0]”指令。

图5-4 由两个不同编程软件编写的功能相同的程序

5.1.4 状态转移图分支方式

状态转移图的分支方式主要有:单分支方式、选择性分支方式和并行分支方式。图5-1(b)的状态转移图为单分支,程序由前往后依次执行,中间没有分支,不复杂的顺序控制常采用这种单分支方式。较复杂的顺序控制可采用选择性分支方式或并行分支方式。

1.选择性分支方式

选择性分支状态转移图如图5-5(a)所示,在状态器S21后有两个可选择的分支,当X1闭合时执行S22分支,当X4闭合时执行S24分支,如果X1较X4先闭合,则只执行X1所在的分支,X4所在的分支不执行。图5-5(b)是依据图5-5(a)画出的梯形图。

图5-5 选择性分支方式

三菱FX系列PLC最多允许有8个可选择的分支。

2.并行分支方式

并行分支方式状态转移图如图5-6(a)所示,在状态器S21后有两个并行的分支,并行分支用双线表示,当X1闭合时S22和S24两个分支同时执行,当两个分支都执行完成并且X4闭合时才能往下执行,若S23或S25任意一条分支未执行完,即使X4闭合,也不会执行到S26。图5-6(b)是依据图(a)画出的梯形图。

图5-6 并行分支方式

三菱FX系列PLC最多允许有8个并行的分支。

5.1.5 用步进指令编程时的注意事项

在使用步进指令编写顺序控制程序时,要注意以下事项:

①初始状态(S0)应预先驱动,否则程序不能向下执行,驱动初始状态通常用控制系统的初始条件,若无初始条件,可用M8002或M8000触点进行驱动。

②不同步程序的状态继电器编号不要重复。

③当上一个步程序结束,转移到下一个步程序时,上一个步程序中的元件会自动复位(SET、RST指令作用的元件除外)。

④在步进顺序控制梯形图中可使用双线圈功能,即在不同步程序中可以使用同一个输出线圈,这是因为CPU只执行当前处于活动步的步程序。

⑤同一编号的定时器不要在相邻的步程序中使用,不是相邻的步程序中则可以使用。

⑥不能同时动作的输出线圈尽量不要设在相邻的步程序中,因为可能出现下一步程序开始执行时上一步程序未完全复位,这样会出现不能同时动作的两个输出线圈同时动作,如果必须要这样做,可以在相邻的步程序中采用软连锁保护,即给一个线圈串联另一个线圈的常闭触点。

⑦在步程序中可以使用跳转指令。在中断程序和子程序中也不能存在步程序。在步程序中最多可以有4级FOR/NEXT指令嵌套。

⑧在选择分支和并行分支程序中,分支数最多不能超过8条,总的支路数不能超过16条。

⑨如果希望在停电恢复后继续维持停电前的运行状态时,可使用S500~S899停电保持型状态继电器。