首页 历史故事如何建立SFC程序:步骤与内容详解

如何建立SFC程序:步骤与内容详解

【摘要】:下面先就3个SFC块的程序执行步骤和内容做具体说明。图7-16 SFC程序整体构成1.SFC程序的功能说明块0程序的执行步骤1)当启动SFC程序时,首先执行初始步0。图7-23 SFC总控程序图7-24 块0的自动启动设置初始步0内的梯形图程序与普通的梯形图程序一样,同时应注意对编写好的梯形图进行编译。

本节主要内容是指导用户如何建立一个完整的SFC程序,整个SFC样例程序主要由3部分构成:总控程序块0、功能块1和功能块2,以下简称块0、块1和块2,如图7-16所示。下面先就3个SFC块的程序执行步骤和内容做具体说明。

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

图7-16 SFC程序整体构成

1.SFC程序的功能说明

(1)块0程序的执行步骤

1)当启动SFC程序时,首先执行初始步0。

2)在初始步0运行期间,检测转移条件0是否成立,一旦成立则立刻启动块启动步1的运行,并同时停止初始步0的运行。

3)在块启动步1运行期间,检测转移条件1是否成立。由于块启动步1有结束检查,所以在块1运行期间,即使转移条件1成立也不会启动下一个步的运行。只有当块1中的程序执行到结束步后,如果此时转移条件1成立,则立刻启动块启动步2的运行,并同时停止块启动步1的运行。

4)在块启动步2运行期间,检测转移条件2是否成立。由于块启动步2无结束检查,所以在块2运行期间,一旦转移条件2成立,则立刻执行结束步的运行。即块0的程序执行完成,此时块2的程序可能仍处于运行状态。

(2)块1程序的执行步骤

1)在SFC程序启动时,不会执行块1中初始步0的处理。只有当块0中的块启动步1被执行时,才会启动块1中初始步0的运行。

2)在初始步0运行期间,检测是选择分支转移条件0成立,还是选择分支转移条件1成立。

3)如果是选择分支转移条件1先成立,则立刻启动保持步(SE)2的运行,并同时停止初始步0的运行。在保持步2运行期间,检测转移条件3是否成立,一旦成立,则立刻执行跳转到步0(程序跳转到初始步0处,即启动了初始步0的运行),但此时保持步(SE)2仍然处于运行状态。

4)如果是选择分支转移条件0先成立,则立刻启动步1的运行,并同时停止初始步0的运行。在步1运行期间,检测转移条件2是否成立,一旦成立,则立刻启动复位步3的运行(在执行复位保持步(SE)2的同时,其内部也可以像普通中间步一样运行梯形图程序),并同时停止步1的运行。

5)在复位步运行期间,检测转移条件4是否成立,一旦成立,则执行结束步的运行,即块1的程序执行完成。

(3)块2程序的执行步骤

1)在SFC程序启动时,不会执行块2中初始步0的处理,当块0中的块启动步2被执行时,才会启动块2中初始步0的运行。

2)在初始步0运行期间,检测转移条件0是否成立,一旦成立,则同时启动步1和步2的运行(因为在这里使用了并行汇合转移条件),并停止初始步0的运行。

3)在步1运行期间,检测转移条件1是否成立,一旦成立,则立刻启动虚拟步3的运行,并同时停止步1的运行。

4)在步2运行期间,检测转移条件2是否成立,一旦成立,则立刻启动虚拟步4的运行,并同时停止步2的运行。

5)在步3和步4同时运行期间,检测转移条件3是否成立,一旦成立,则立刻启动步5的运行,并同时停止虚拟步3和虚拟步4的运行(由于运用了并行汇合转移条件,所以必须确保虚拟步3和虚拟步4同时处于运行状态。如果只有其中之一处于运行状态,即使转移条件3成立,也无法启动步5的运行)。

6)在步5运行期间,检测转移条件4是否成立,一旦成立,则执行结束步的运行,即块2的程序执行完成。

2.程序建立的步骤和内容

SFC程序新建流程如图7-17所示。

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

图7-17 SFC程序新建流程图

(1)新建SFC工程

打开GX Developer软件,首先“①点击新建工程”,如图7-18所示之后按图7-19所示信息进行输入,需要特别注意的是在“程序类型”中选择“SFC”,最后点击“确定”按钮

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

图7-18 点击新建工程

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

图7-19 新建SFC工程

(2)SFC程序编写基本说明

1)SFC程序初始步的建立:

①首先,如图7-20a所示,在SFC程序编辑画面的左上角,点击鼠标的左键,显示出一个蓝色的光标。

②然后,点击SFC编程工具栏中的“步”功能键,步编号设置为“0”[1],步属性选择为“无”,如图17-20b所示。

③之后,点击“确定”按钮,完成初始步的建立。如图7-20c所示,建立好的初始步是一个正方形。

④最后,如图17-20d所示,在SFC编辑画面的左半部分,用鼠标选中初始步0,就可以在SFC编辑画面的右半部分编写初始步内的梯形图程序了。

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

图7-20 SFC程序初始步的建立

2)SFC程序转移条件的建立:

①首先,如图7-21a所示,在紧接着初始步的下面,点击鼠标的左键,显示出一个蓝色的光标。

②然后,点击SFC编程工具栏中的“转移”功能键,转移条件编号设置为“0”[2],如图7-21b所示。

③之后,点击“确定”按钮,完成转移条件的建立。如图7-21c所示,建立好的转移条件是一个十字形。

④最后,如图7-21d所示,在SFC编辑画面的左半部分,用鼠标选中转移条件0,就可以在SFC编辑画面的右半部分编写转移条件内的梯形图程序了。

(3)块0中的块信息设置

首先把工程数据列表中程序下面的主程序名MAIN改写成SFC,之后双击,其次在“块信息设置”对话框中,选中块0后点击块信息设置按键(详见图7-13),最后如图7-22所示登录各个功能软元件,并点击“执行”按钮。块功能软元件的详细说明见表7-5。

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

图7-21 SFC程序转移条件的建立

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

图7-22 “块信息设置”对话框

(4)块0中SFC程序的编写

在SFC的块设置对话框中,选中块0并双击,进入块0的SFC程序编辑画面。并以前面所述初始步和转移条件的建立说明为例,按图7-23所示,编写SFC程序和对应的梯形图程序。

具体步骤如下:

1)初始步0(图7-23中步骤①):在“工程数据列表”→“参数”→“PLC参数”→“SFC”中,开始条件的默认设置是块0自动启动(即CPU模块的运行开关从STOP拨向RUN时,初始步0自动进入运行状态),如有需要可以改为非自动启动,如图7-24所示。

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

图7-23 SFC总控程序

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

图7-24 块0的自动启动设置

初始步0内的梯形图程序与普通的梯形图程序一样,同时应注意对编写好的梯形图进行编译。程序的编写画面请参考图7-15 SFC程序编辑画面,具体程序如图7-25所示。

2)转移条件0(图7-23中步骤②):输入条件“M0”为上升沿触发,转移指令为“TRAN”,注意在转移条件顺序控制步内,不能编写输出线圈和其他应用指令。对应的梯形图程序如图7-26所示。

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

图7-26 转移条件0内的梯形图程序

3)块启动步1(有结束检查,图7-23中步骤③):当转移条件0成立时,启动该步,同时启动块1。因为有结束检查,所以即使下面的转移条件1成立(即M1置ON),也不会进行步的转移,只有当启动的块1运行到结束步后,才能执行下一步的运行。其具体设置如图7-27所示。

4)转移条件1(图7-23中步骤④):对应的梯形图程序同步骤2),仅输入条件不同,这里用的条件是M1。

5)块启动步2(无结束检查,图7-23中步骤⑤):当转移条件1成立时,启动该步,同时启动块2。因为没有结束检查,所以即使启动的块2运行还没有完成,只要下面的转移条件2成立(即M2置ON),就会进行步的转移,执行下一步的运行,同时块2内程序的运行也不会停止。其具体设置如图7-28所示。

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

图7-27 块启动步(有结束检查)

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

图7-28 块启动步(无结束检查)

6)转移条件2(图7-23中步骤⑥):对应的梯形图程序同步骤2),仅输入条件不同,这里用的条件是M2。

7)结束步(图7-23中步骤⑦):结束整个块的运行。

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

图7-29 未编译的块0

(5)块0的编译

当编写好块0的SFC程序后,退回到SFC块设置对话框中,如图7-29所示,在块0这一栏上会有一个“*”的显示。在菜单栏中点击“变换”→“块变换”(快捷键是F4),对块0进行编译。编译完成后,如图7-30所示,块0这一栏上面的“*”会变成“-”。如果编译出错,就会弹出如图7-31所示的对话框。块1和块2的编译同上,这里不再详细说明。

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

图7-30 编译后的块0

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

图7-31 编译出错

(6)块1和块2的块信息设置

块1和块2的块信息设置方法同块0,具体软元件如图7-32所示。

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

图7-32 块1和块2的软元件设置信息

(7)块1中SFC程序的编写

在SFC的块设置对话框中,选中块1并双击,进入块1的SFC程序编辑画面。并以前面所述初始步和转移条件的建立说明为例,按图7-33所示内容,编写SFC程序和对应的梯形图程序。

具体步骤如下:

1)初始步0(图7-33中步骤①):对于初始步0而言,在CPU模块的运行开关从STOP拨向RUN时,不会进入运行状态。只有当块0内的块启动步1被执行或是功能软元件M2000被置ON时,才会进入运行状态。同时,如果在块启动步1运行期间对M2000置OFF,则会停止块1的运行。其步内的梯形图程序如图7-34所示。

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

图7-33 SFC功能块1的程序

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

图7-34 初始步0内的梯形图程序

2)转移条件0(图7-33中步骤②):输入条件M10为上升沿触发,转移指令为“TRAN”,注意在转移条件顺序控制步内不能编写输出线圈和其他应用指令。对应的梯形图程序如图7-35所示。

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

图7-35 转移条件0内的梯形图程序

3)转移条件1(图7-33中步骤③):对应的梯形图程序同步骤2),仅输入条件不同,这里用的条件是M11。

4)普通步1(图7-33中步骤④):由于用的是选择分支转移条件,当转移条件0成立时,立刻启动普通步1的运行。当转移条件2成立时,启动下一步的运行,并且停止当前步的运行。步内的梯形图程序如图7-36所示。

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

图7-36 普通步1内的梯形图程序

5)操作保持步2(无转移检查,图7-33中步骤⑤):由于用的是选择分支转移条件,当转移条件1成立时,立刻启动操作保持步2的运行。当转移条件3成立时,则立刻执行跳转到步0,且该步的运行会被保持,直到被复位或者块1的运行停止时才被解除。操作保持步的选择如图7-37所示,步内的梯形图程序如图7-38所示。

6)转移条件2(图7-33中步骤⑥):对应的梯形图程序同步骤2),仅输入条件不同,这里用的条件是M12。

7)转移条件3(图7-33中步骤⑦):对应的梯形图程序同步骤2),仅输入条件不同,这里用的条件是M13。

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

图7-38 操作保持步2(无转移检查)内的梯形图程序

8)复位步3(图7-33中步骤⑧):当转移条件2成立时,启动该步的运行。当转移条件4成立时,停止该步的运行。该步的主要作用是对指定的保持步进行复位,如果指定步号为999则会复位块中所有的保持步。复位步的选择和复位步号的指定如图7-39所示。复位步同样也可以作为普通步使用,其步内的梯形图程序如图7-40所示。

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

图7-40 复位步内的梯形图程序

9)跳转步0(图7-33中步骤⑨):用于本运行块内步与步之间的跳转,跳转步号的指定如图7-41所示。

10)转移条件4(图7-33中步骤⑩):对应的梯形图程序同步骤2),仅输入条件不同,这里用的条件是M14。

11)结束步(图7-33中步骤⑾):结束整个块的运行。

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

图7-41 跳转步号的指定

(8)块2中SFC程序的编写

在SFC的块设置对话框中,选中块2并双击,进入块2的SFC程序编辑画面。并以前面所述初始步和转移条件的建立说明为例,按图7-42所示内容,编写SFC程序和对应的梯形图程序。

具体步骤如下:

1)初始步0(图7-42中步骤①):对于初始步0而言,在CPU模块的运行开关从STOP拨向RUN时,不会进入运行状态。只有当块0内的块启动步2被执行或是功能软元件M3000被置ON时,才会进入运行状态。同时,如果在块启动步2运行期间对M3000置OFF,则会停止块2的运行。步内的梯形图程序如图7-43所示。

2)转移条件0(图7-42中步骤②):输入条件M20为上升沿触发,转移指令为“TRAN”,注意在转移条件顺序控制步内,不能编写输出线圈和其他应用指令。对应的梯形图程序如图7-44所示。

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

图7-42 SFC功能块2的程序

3)普通步1和2(图7-42中步骤③和④):由于用的是并行分支转移条件,所以当转移条件0成立时,同时启动普通步1和2的运行。步内的梯形图程序如图7-45和图7-46所示。

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

图7-46 普通步2内的梯形图程序

4)转移条件1(图7-42中步骤⑤):对应的梯形图程序同步骤2),仅输入条件不同,这里用的条件是M21。

5)转移条件2(图7-42中步骤⑥):对应的梯形图程序同步骤2),仅输入条件不同,这里用的条件是M22。

6)虚拟步3和4(图7-42中步骤⑦和⑧):由于使用了并行汇合转移条件,为了使得SFC程序的结构成立,参考表7-2,该转移条件的上方必须要有2个中间步。但是这里并不需要进行实际操作和运算的步,因此就使用了虚拟步来确保程序结构的完整,而该步没有实际意义,其内不能编写梯形图程序。

7)转移条件3(图7-42中步骤⑨):对应的梯形图程序同步骤2),仅输入条件不同,这里用的条件是M23。

8)普通步5(图7-42中步骤⑩):由于运用了并行汇合转移条件,所以必须确保虚拟步3和虚拟步4同时处于运行状态,才能保证当转移条件3成立时启动普通步5的运行。如果只有虚拟步3处于运行状态,即使转移条件3成立,也无法启动普通步5的运行。当转移条件4成立时,启动下一步的运行,并且当前步停止运行。步内的梯形图程序如图7-47所示。

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

图7-47 普通步5内的梯形图程序

9)转移条件4(图7-42中步骤⑾):对应的梯形图程序同步骤2),仅输入条件不同,这里用的条件是M24。

10)结束步(图7-42中步骤⑿):结束整个块的运行。

(9)梯形图程序的编写

在SFC工程中,还可以新建梯形图程序,梯形图程序主要用于SFC程序的状态监控和运行控制。本例中主要是监控功能块1和2中转移条件的运行次数,以及暂停功能块1和2的运行。在程序中用到的软元件M2001、M2002、M3001和M3002请参考表7-5和图7-32中的说明。具体程序如图7-48所示。

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

图7-48 梯形图监控程序

(10)多程序的程序执行类型选择

由于在程序中分别新建了SFC程序和梯形图程序,所以需要在参数中对多程序的程序执行类型进行选择。点击“工程数据列表”→“参数”→“PLC参数”→“程序”,如图7-49所示,把SFC程序和梯形图程序的程序执行类型设置成扫描执行,完成后点击结束设置。

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

图7-49 多程序执行类型设置

(11)SFC程序的写入

SFC程序的写入与顺序控制梯形图的程序写入没有区别,其具体操作步骤如图7-50所示。