首页 历史故事SFC编程的特点及优化建议

SFC编程的特点及优化建议

【摘要】:这样,就形成了整个步进控制系统与SFC程序的一一对应。如果用顺序控制程序编写其互锁控制电路,不仅程序编写复杂,同时也无法显示信号运行时的先后逻辑顺序;而用SFC来编写互锁控制电路,由于其程序结构的特点,可以很好地应对这一要求。

1.便于设计和维护

因为整个系统中的各个控制单元以及机器本身的运行动作都是与SFC程序中的块和步一一对应的,所以程序员用该方式编写的程序比顺序控制程序更易解读。因此,即使是顺序控制程序经验较少的人,也可以方便地设计和维护系统。

如图7-2所示,整个系统由4个部分组成:用于整个工艺的转移控制单元、1号站控制单元、2号站控制单元和3号站控制单元。这4个控制单元分别与SFC程序中的块0、块1、块2和块3对应,而每个块中的步又分别对应了各个控制单元中设备的具体运行动作(如块1中步1就对应于1号站控制单元中的托盘夹紧动作)。这样,就形成了整个步进控制系统与SFC程序的一一对应。

2.不需要复杂的互锁电路

因为SFC程序是步进执行的,步和步之间的转移由各步之间的转移条件决定,实现了各步之间明确的分割,所以只需要在每个步中进行必要的互锁,而不需要在整个程序中进行复杂的互锁,以此来实现程序的简化。

如图7-3所示,是车床加工的机械结构图。首先是拖板从极限LS-R处开始向左移动(Y20置ON),直到到达极限LS-F处时移动停止(X3置ON,Y20置OFF);之后,夹具从极限LS-U处向下移动(Y21置ON),直到到达极限LS-D处时移动停止(X4置ON,Y21置OFF);最后,车床头向右移动(Y22置ON),对拖板上的工件进行加工。

可见整个加工过程需要十分严谨的控制顺序,因此信号Y20、Y21与Y22之间需要进行互锁。如果用顺序控制程序编写其互锁控制电路,不仅程序编写复杂,同时也无法显示信号运行时的先后逻辑顺序;而用SFC来编写互锁控制电路,由于其程序结构的特点,可以很好地应对这一要求。车床加工SFC互锁程序与梯形图互锁程序的区别如图7-4所示。

978-7-111-34215-1-Chapter07-6.jpg

图7-2 传送机控制系统与SFC程序的对应

978-7-111-34215-1-Chapter07-7.jpg

图7-3 车床加工的机械结构图

3.便于程序的修改和调试

SFC通过把程序分成多个块,同时在每个块中再进行具体步的分割,以此来更好地对应整个机器系统中各个控制单元上设备的具体运行动作,如图7-2所示。这样能够明确各个步自身的功能,减少程序应答时间,更易于调试、维护和试运行等操作。

SFC程序中总共可以使用320个块,各个块中有512步,并且在每个块中,所有“运行输出顺序控制步”内的程序加起来,总共最多可以建立2k步的梯形图程序(每个步内均无限制),且所有的“条件转移顺序控制步”内的程序加起来,总共最多也可以建立2k步的梯形图程序(每个转移条件内均无限制)。如图7-5所示。相关详细内容,请查阅QCPU/QnACPU编程手册(SFC控制指令篇)。

978-7-111-34215-1-Chapter07-8.jpg

图7-4 车床加工SFC互锁程序与梯形图互锁程序的区别

978-7-111-34215-1-Chapter07-9.jpg

图7-5 SFC程序中块、步和顺序控制步的组成

4.能够创建多个初始步

在SFC程序中,可以利用选择汇合转移条件的方式创建多个初始步。

如图7-6所示,建立了4个初始步S0~S3;运行时,首先启动初始步S0~S3;之后,当转移条件t0满足时,则启动步S4的运行,且停止初始步S0的运行(t0~t3的运行各自独立,但步骤相同);最后,对于中间步S8而言,只有当转移条件t4~t7同时成立时,才能启动该步的运行,且同时停止步S4~S7的运行。

合理使用不同形式的转移条件(见表7-2),可以满足不同工艺控制顺序的要求。

5.丰富的步属性

可以给各个步分配各种步属性(即保持步、复位步和块启动步)。根据实际设备的控制要求,合理组合并应用这些特性步,可以大大简化程序的设计步骤。

(1)保持步及其操作类型

1)线圈保持步(978-7-111-34215-1-Chapter07-10.jpg)。如图7-7所示,线圈保持步(978-7-111-34215-1-Chapter07-11.jpg)①内的程序为,输出线圈Y10的状态,跟随输入触点X0的ON/OFF变化而变化。

978-7-111-34215-1-Chapter07-12.jpg

图7-6 多个初始步的创建

978-7-111-34215-1-Chapter07-13.jpg

图7-7 线圈保持步(978-7-111-34215-1-Chapter07-14.jpg)的程序

如果在转移条件满足的同时,输出线圈Y10处于ON状态,则依次进行步②和步③运行的同时,输出线圈Y10的ON状态将被保持住。即使改变输入触点X0的ON/OFF,也无法影响输出线圈Y10的状态。

线圈保持步(978-7-111-34215-1-Chapter07-15.jpg)①内的输出线圈状态将被一直保持,直到程序执行到结束步或被复位步复位时才解除。

2)操作保持步(无转移检查)(978-7-111-34215-1-Chapter07-16.jpg)。如图7-8所示,在操作保持步(978-7-111-34215-1-Chapter07-17.jpg)①内的程序为,输出线圈Y10的状态,跟随输入触点X0的ON/OFF变化而变化。

如果转移条件满足,则依次进行步②和步③的运行。但是在执行步②或步③运行的同时,输出线圈Y10的状态依然会跟随输入触点X0的ON/OFF变化而变化。

操作保持步(978-7-111-34215-1-Chapter07-18.jpg)①内程序的运行,直到程序执行到结束步或被复位步复位时才结束。

978-7-111-34215-1-Chapter07-19.jpg

图7-8 操作保持步(978-7-111-34215-1-Chapter07-20.jpg)的程序

3)操作保持步(有转移检查)(978-7-111-34215-1-Chapter07-21.jpg)。如图7-9所示,在操作保持步(978-7-111-34215-1-Chapter07-22.jpg)①内的程序为,输出线圈Y10的状态,跟随输入触点X0的ON/OFF变化而变化,同时输入触点X1导通时,辅助继电器M0将会有上升沿的脉冲输出。

如果转移条件满足(即X1导通,M0有上升沿的脉冲输出时),则进行步②的运行。但是在执行步②运行的同时,输出线圈Y10的状态依然会跟随输入触点X0的ON/OFF变化而变化。

此外,如果在执行步④运行的同时,导通操作保持步(978-7-111-34215-1-Chapter07-23.jpg)①内的输入触点X1,则会启动步②的运行(即实现了普通步步②和步④的同时运行)。

操作保持步(978-7-111-34215-1-Chapter07-24.jpg)①内程序的运行,直到程序执行到结束步或被复位步复位时才结束。

(2)复位步(978-7-111-34215-1-Chapter07-25.jpg)。如图7-10所示,复位步(978-7-111-34215-1-Chapter07-26.jpg)会对其内所指定的保持步“n”进行复位(即所指定的保持步内部的程序会停止运行)。如果复位步内指定的数值为999,将会对本块内所有的保持步进行复位。

978-7-111-34215-1-Chapter07-27.jpg

图7-9 操作保持步(978-7-111-34215-1-Chapter07-28.jpg)的程序

978-7-111-34215-1-Chapter07-29.jpg

图7-10 复位步(978-7-111-34215-1-Chapter07-30.jpg)的程序

(3)块启动步及其运行类型

1)块启动步(有结束检查)(978-7-111-34215-1-Chapter07-31.jpg)。如图7-11所示,第①列为块1的程序,第②列为块m的程序。当块1中的程序执行到块启动步(有结束检查)时,根据块启动步中指定的块号m启动块m,并且只有当块m中的程序执行到结束步时,才返回继续执行块1中之后的程序。

在一个SFC程序中,最多可以同时执行1280步(所有块中的总步数),各个块中可以同时执行最多256步(包括保持步)。

2)块启动步(无结束检查)(978-7-111-34215-1-Chapter07-32.jpg)。如图7-12所示,第①列为块1的程序,第②列为块m的程序。当块1中的程序执行到块启动步(无结束检查)时,根据块启动步中指定的块号m,启动块m,并且在执行块m程序的同时,块1中的程序在下一个转移条件满足时(即输入触点X0导通时)继续执行下一个步的运行,无需等待块m的结束返回。

在一个SFC程序中,最多可以同时执行1280步(所有块中的总步数),各个块中可以同时执行最多256步(包括保持步)。

6.通过以下多种控制方式实现用户所需的控制要求

(1)通过SFC符号控制

利用简易的SFC符号(详细内容见表7-2),编写SFC程序。

(2)通过SFC指令控制

978-7-111-34215-1-Chapter07-33.jpg

图7-11 块启动步(978-7-111-34215-1-Chapter07-34.jpg)的程序

978-7-111-34215-1-Chapter07-35.jpg

图7-12 块启动步(978-7-111-34215-1-Chapter07-36.jpg)的程序

在SFC工程中,不仅可以编写多个SFC程序,此外还可以编写梯形图程序。通过在梯形图程序中编写SFC程序控制指令,便于实现对SFC程序的出错处理和紧急控制,如紧急停止和中断控制等。相关详细内容请查阅QCPU\QnACPU编程手册(SFC控制指令篇)。

(3)通过SFC信息寄存器控制

利用信息寄存器中设置的位软元件和字软元件,能够在梯形图程序中控制SFC程序的运行,便于现场调试或试运行等操作。具体功能软元件的说明见表7-3。

表7-3 SFC程序中给定功能的多种控制方法

978-7-111-34215-1-Chapter07-37.jpg