步进控制实际是将复杂的顺控过程分解为小的“状态”分别编程,再组合成整体程序的编程思想。步进控制可使编程工作程式化、规范化,是PLC程序编制的重要方法。
1.步进顺控指令
步进顺控指令是专门用于步进控制的指令。所谓步进控制是指控制过程按“上一个动作完成后,紧接着做下一个动作”的顺序动作的控制。
步进顺控指令共有两条,即步进指令(STL)和步进返回指令(RET)。它们专门用于步进控制程序的编写。FX系列PLC两条专用的步进指令见表3-1。
表3-1 步进顺控指令功能及梯形图符号
(1)STL指令
STL指令称为步进接点指令,其功能是将步进接点接到左母线,形成副母线。步进接点只有常开触点,没有常闭触点。步进指令在使用时,需要使用SET指令将其置位。
(2)RET指令
RET指令称作步进返回指令,其作用是使副母线返回原来的位置。
在使用SFC方式编程时,最后应使用RET指令。但是使用GX Developer编程软件编程时,不需要输入RET指令,系统会自动生成。
(3)使用步进指令注意事项
1)STL、RET指令与状态继电器S0~S899结合使用,才能形成步进控制,状态继电器S0~S899只有使用SET指令才具有步进控制功能,提供步接点。
2)使用STL、RET指令时,不必在每条STL指令后都加一条RET指令,但程序最后必须有RET指令,即在一系列的STL指令最后加一条RET指令。
2.步进指令软元件
(1)步进指令编程元件
步进指令须配合状态继电器进行编程,只能使用S0~S899,FX2N系列PLC状态元件的分类及编号见表3-2。
表3-2 FX2N系列PLC的状态元件
使用状态软元件注意事项如下:
1)步进状态的编号必须在指定用途范围内选择。
2)步进软元件在使用时,可以按从小到大的顺序使用,也可以以不按编号的顺序任意使用,但不能重复使用,也不能超过用途范围。如自动状态下,可以第一个状态使用S20,第二个状态使用S22(就是说不一定使用S21),但不能使用S0~S9(因这类状态是用作初始状态的)。
3)各状态元件的触点在PLC内部可自由使用,次数不限。
4)在不用步进顺控指令时,状态元件可作为辅助继电器在程序中使用。其功能相当于前文所讲的辅助继电器M。
(2)特殊辅助继电器
在步进顺控编程时,为了能更有效地编写步进梯形图,经常会使用表3-3中的特殊辅助继电器。
表3-3 步进编程常用的特殊辅助继电器
注:PLC由RUN→STOP时M8041、M8043、M8044关断。执行END指令时所有与STL状态相连的数据寄存器都被刷新。
3.步进顺控编程方法
(1)状态转移图
步进顺控编程通常采用状态转移图编程。状态转移图是用来描述被控对象每一步动作的状态以及下一步动作状态出现时的条件的。即它是用“状态”描述的工艺流程图。被控对象各个动作工序(状态),可分配到S20~S899状态寄存器中。在状态转移图中,定时器、计数器、辅助继电器等元件可任意使用。状态转移图的画法如图3-1所示。
从图3-1可以看出,状态转移图中的每一状态要完成以下三个功能:
1)状态转移条件的指定,如图中X001、X002。
图3-1 状态转移图
2)驱动线圈(负载),如图中Y000、Y001、Y002、T0。
3)指定转移目标(置位下一状态),如图中S20、S21等被置位。
当从上一状态转移到下一状态时,上一状态自动复位。若用SET指令置位M、Y,则状态转移后,该元件不能复位,直到执行RST指令后才复位。
状态转移图是状态编程的工具,图3-1中包含了程序所需用的全部状态及状态间的关联。对具体状态来说,状态转移图给出该状态的任务及状态转移的条件及方向。
需要注意的是,图3-1所示的状态转移图,只能在纸上表达,不能直接输入编程软件。状态转移图可转化为功能块图(SFC)或步进梯形图、指令表三种形式,这三种表达方式可以通过编程软件互相转换。
(2)步进梯形图
图3-1所示的状态转移图可转换成如图3-2所示的步进梯形图。与步进接点相连的接点要用LD/LDI指令编程,就好像母线移到了步进接点的后面成了副母线。用SET指令表示状态的转移,用RET指令表示步进控制结束,即相应指令的输入又返回到主母线上。
(3)STL指令编程要点
使用STL指令编写梯形图时,要注意以下事项:
1)关于顺序。状态三要素的表达要按先任务再转移的方式编程,顺序不得颠倒。
2)关于母线。STL指令有建立子(新)母线的功能,其后进行的输出及状态转移操作都在子母线上进行。这些操作可以有较复杂的条件。
图3-2 步进梯形图
3)栈操作指令MPS/MRD/MPP在状态内不能直接与步进接点指令后的新母线连接,应接在LD或LDI指令之后,如图3-3所示。
4)步进触点之后的电路块中,不能使用主控指令MC/MCR。虽然在STL母线后可使用CJ指令,但动作复杂,厂家建议不使用。
5)中断程序和子程序中不可以使用STL指令。这并非禁止在状态中使用跳转指令,而是由于使用了会生复杂的操作,厂家建议最好不要使用。(www.xing528.com)
图3-3 栈操作指令在状态内的使用
6)关于元器件的使用。允许同一元件的线圈在不同的STL接点后多次使用。但要注意,同一定时器不要用在相邻的状态中。在同一程序段中,同一状态继电器也只能使用一次。如图3-4所示。
7)步进控制系统中,在状态转移过程中会出现一个扫描周期内两个状态同时接通工作的可能,因此在两个状态中不允许同时动作的线圈之间应有必要的互锁,如图3-5所示。
8)在为程序安排状态继电器元件时,要注意状态继电器的分类和功用,初始状态要从S0~S9中选择,S10~S19是为需设置动作原位的控制安排的,在不需设置原位的控制中不要使用。在一个较长的程序中可能有状态编程程序段及非状态编程程序段。
图3-4 定时器重复使用
图3-5 输出互锁
9)图3-1中S0称为程序的初始状态,在程序运行开始时需要预先通过其他手段来驱动。程序进入状态编程区间可以使用M8002作为进入初始状态的信号(也可用M8000驱动)。在状态编程程序段转入非状态编程程序段时必须使用RET指令。
10)同一信号作为多个状态之间转移条件的处理方法如下:
在某些应用中,流程中各个状态之间的转移条件是同一信号。编程者的意图是当这一信号来时流程向下走一步,信号再来时再走一步。但若编程时写成如图3-6所示的例子,当M0信号来时整个流程会“走通”,即一次通过全部状态。对这种情况可采用以下两种方法处理。
方法1:在每个状态中设置一个阻挡元件,以防止“走通”现象。如图3-7所示,进入S30时,M1脉冲阻止进一步转移;在M0再次接通时,阻挡脉冲消失,可顺利向下转移。这样,在每个状态中都设一个阻挡元件,可保证M0接通一次向下走一步。
方法2:利用脉冲触点指令(LDP、LDF、ANP等)与M2800~M3071辅助继电器配合可得到与方法1同样的结果,如图3-8所示。
图3-6 “走通”例图
图3-7 加阻挡元件
图3-8 用脉冲指令
4.SFC编程示范
在FX系列可编程序控制器中,可以用顺序功能图块(Sequential Function Chart,SFC)实现顺控编程。用SFC编程可以实现状态转移图所实现的各项功能,它能使机械动作的各工序和控制流程设计变得更为简单。下面以喷泉控制系统为例来说明SFC的编程方法。
某花园中心广场有一喷泉控制系统,要求如下:
1)单周期运行,按下起动按钮(X0)后,按照Y0(待机显示)→Y1(中央指示灯)→Y2(中央喷水)→Y3(环状线指示灯)→Y4(环状线喷水)→Y0(待机显示)的顺序动作,然后返回到待机状态。
2)当X1为ON时连续运行,重复Y1~Y4动作。
3)当X2为ON时按步进方式运行,每次按起动按钮一次,各输出依次动作一次。
SFC程序设计方法步骤如下:
1)分析控制要求中的动作情况。
2)创建工序图。本例的工序图如图3-9所示。
①将控制要求中的动作分解成各个工序,按照从上至下的动作顺序用矩形框表示。
②用纵线连接各个工序,写明各工序推进的条件。执行重复动作的情况下,在一连串的动作结束时,须用箭头表示返回到哪个工序。
③在表示工序的矩形框的右边写各个工序中所执行的动作。
3)软元件的分配。
①给各矩形框分配状态元件S。
②给转移条件分配软元件。
③列出各工序动作的软元件。
④执行重复动作和跳转时使用“→”,并指明要跳转的状态编号。
分配软元件后的状态图如图3-10所示。
4)要使SFC程序运行,还需要编写初始状态置ON的程序。本例初始化程序如图3-11所示。
图3-9 工序图
图3-10 状态图
图3-11 初始化程序
根据以上分析我们可编写控制程序,编写SFC程序如图3-12所示,并可转化成如图3-13所示步进梯形图。
图3-12 编写SFC程序图
图3-13 经软件转化后的步进梯形图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。