首页 理论教育 创建SFC例程并添加注释:步骤详解

创建SFC例程并添加注释:步骤详解

时间:2023-06-28 理论教育 版权反馈
【摘要】:现在已准备好创建SFC例程。确认已选择“顺序功能图”作为例程类型,然后单击“确定”,如图14-3所示。这个双层方框用来表示SFC从何处开始。图14-4 SFC中的step图14-5 “Step”右键菜单8.请注意,这是程序范围内的标签,数据类型为SFC_STEP。Local:2:I.Data.14现在已经创建了一些逻辑,双击程序标签并查看通过逻辑创建的程序范围标签,如图14-11所示如前文所述,可以在程序所含的任意梯形图、功能块、SFC或结构化文本例程中使用这些标签。SFC有多种方法可添加注释。

创建SFC例程并添加注释:步骤详解

顺序功能图程序通常用作监管级控制算法。不同于执行完成时间在毫秒级的梯形图逻辑代码,SFC中执行的Step可能需要几分钟、几小时甚至几天才能完成。

1.在桌面上,打开RSLogix 5000978-7-111-47798-3-Chapter02-1.jpg

2.使用图2-1中信息创建新项目,如图14-1所示。

978-7-111-47798-3-Chapter02-2.jpg

图14-1 新建项目窗口

3.然后,在I/O组态树中向插槽2添加1756-IB16D模块,向插槽0添加1756-OB16D模块。

现在已准备好创建SFC例程。

4.右键单击“主程序”(MainProgram),然后选择“新建例程”(New Routine),如图14-2所示。

5.按照以下内容将该项填写完整。确认已选择“顺序功能图”(Sequential Function Chart)作为例程类型,然后单击“确定”(OK),如图14-3所示。

978-7-111-47798-3-Chapter02-3.jpg

图14-2 新建例程菜单

978-7-111-47798-3-Chapter02-4.jpg

图14-3 新建例程对话框

6.在控制器项目管理器中,双击刚创建的例程将其打开。请注意,开始时即存在一个Step和一个Transition。

1)Step包含一系列想要执行的Action;

2)Transition是在执行下一Step之前,希望满足的条件。

举一个非常简单的例子,比如起动三个电动机的Action,那么Transition可能是检查相应的模拟量输入,等电动机达到全速后再执行下一Step,如图14-4所示。

注:第一个Step上套有两层方框。后面任何新插入的Step都只有一层方框。这个双层方框用来表示SFC从何处开始。

7.右键单击Step,然后选择“编辑“Step_000”属性”(Edit“Step_000”Properties),如图14-5所示。

978-7-111-47798-3-Chapter02-5.jpg

图14-4 SFC中的step

978-7-111-47798-3-Chapter02-6.jpg

图14-5 “Step”右键菜单

8.请注意,这是程序范围内的标签,数据类型为SFC_STEP。按“取消”(Cancel)以关闭此窗口,如图14-6所示。

9.再次右键单击Step,这次选择“添加操作”(Add Action)。

决定要编写一个简单的小例程来实现以下功能:

1)Step 0:打开2号灯和3号灯(在ControlLogix演示箱中)。

2)Transition 0:等待开关13接通。

3)Step 1:关闭2号灯和3号灯。

4)Transition 1:等待开关14接通。

5)Step 2:打开4号灯。

6)Transition 2:等待开关15接通。

7)Step 3:关闭4号灯。

8)Transition 3:始终为真,所以没有等待

刚刚添加了Action,因此现在需要编写让2号灯和3号灯打开的代码。

10.双击“操作”(Action)框中的问号,并按如图14-7所示输入逻辑。

注:在Action中输入的代码为结构化文本。可以键入下面显示的标签,也可以在框中单击右键并选择浏览标签。请记住,下面显示的标签均为控制器作用域

1)Local:0:O.Data.2:=1;(所有行均以分号结尾)

2)Local:0:O.Data.3:=1;(这是赋值,因此必须是:=而不是=)

978-7-111-47798-3-Chapter02-7.jpg

图14-6 属性标签

978-7-111-47798-3-Chapter02-8.jpg

图14-7 编辑“Action”

11.现在双击Tran_000下方的问号,然后按如图14-8所示输入逻辑,Local:2:I.Data.13(要等待开关13接通)。

978-7-111-47798-3-Chapter02-9.jpg

图14-8 编辑“Transition”

12.转到菜单栏并选择“文件→另存为→“SFCLABa””(File→Save As→“SFCLABa”),用新名称保存该项目。

13.现在可以添加下一个Step/Transition。按下“步骤+转换”(Step+Transition)978-7-111-47798-3-Chapter02-10.jpg图标。

14.将它们拖动到初始Step/Transition的下方,注意如果距离足够近,则引脚会变为绿色。当引脚为绿色时松开鼠标,线会自动连接起来。

注:如果过早释放鼠标,两者未能连接在一起,只需先单击上引脚,再单击下引脚即可完成连接。

15.拖拽新的Step_001,注意线会随之一起被拖动,如图14-9所示。如果想要撤销拖拽并让它回到最初的位置,可以按Ctrl+Z(撤销)。

请记住,想要完成:

1)Step 1:关闭2号灯和3号灯。

2)Transition 1:等待开关14接通。

16.向Step_001添加两个Action,按如图14-10所示填写完整。然后按照下方的建议隐藏/取消隐藏Action。

1)Local:0:O.Data.2:=0;

2)Local:0:O.Data.3:=0;

978-7-111-47798-3-Chapter02-11.jpg

图14-9 撤销命令

978-7-111-47798-3-Chapter02-12.jpg

图14-10 隐藏/取消隐藏Action

注:在菜单栏中,可以选择“编辑”(Edit),然后选择显示或隐藏例程中的所有Action。

17.填写Transition(见图14-10)。

Local:2:I.Data.14

现在已经创建了一些逻辑,双击程序标签并查看通过逻辑创建的程序范围标签,如图14-11所示如前文所述,可以在程序所含的任意梯形图、功能块、SFC或结构化文本例程中使用这些标签。

978-7-111-47798-3-Chapter02-13.jpg

图14-11 程序标签窗口

18.在第一个Step中,在同一Action中完成了所有任务。在这一Step中,分两个Action完成。可以选择任意一种方式。甚至可以改变操作的顺序。回到逻辑,按下Step_001中带三个小点的按钮

19.在“操作顺序”(Action Order)选项卡上,使用上/下箭头更改其顺序。

20.按“确定”(OK),Action的顺序已经发生变化。

21.之前编写例程的时候,因为未添加注释而带来诸多不便。SFC有多种方法可添加注释。现在具体了解一下。在菜单栏中,选择“编辑→添加SFC元素”(Edit→Add SFC Element)(Alt-Ins)。

22.向下滚动并选择“文本框”(Text Box)。

23.按“确定”(OK),并输入图14-12中内容。

978-7-111-47798-3-Chapter02-14.jpg

图14-12 添加注释

刚刚创建了一个自由浮动的文本框。

24.这似乎是一件很常见的事,因此觉得工具栏上应该有一个对应的图标,如图14-13所示。

978-7-111-47798-3-Chapter02-15.jpg(www.xing528.com)

图14-13 添加注释按钮

现在可以看到图标了!

25.使用“文本框”(Text Box)图标为Step_000,由编程人员自行添加注释。

26.将鼠标悬停在小图钉978-7-111-47798-3-Chapter02-16.jpg标的上方,注意显示的是已分离。

27.单击图钉图标并拖拽着线在周围移动。

请注意,移动到Step上方时它会变为绿色。

28.在Step内单击以固定注释。

29.刚刚创建了一个固定的文本框。

30.请注意,图钉图标已经改变,显示文本框已固定。

31.尝试在附近移动该Step,注意文本框会随之移动,如图14-14所示。

978-7-111-47798-3-Chapter02-17.jpg

图14-14 固定文本框

32.将项目另存为“SFCLABb”。

33.在菜单栏中,选择“编辑→复制元素”(Edit→Copy Element)。

34.下一步,“编辑→粘贴”(Edit→Paste)。

35.将Step_002拖拽到上一个Transition下方,当引脚变绿时释放。这会将它们自动连接起来。

36.用相同的操作复制Tran_000。

发现存在问题。现在Step_002外有两侧方框,而Step_000没有。复制了初始Step,因此得到了另一个初始Step。不能拥有两个初始Step,所以RSLogix 5000不得不选择其中一个。稍后,等有机会查看错误消息时,才会解决此问题。

37.暂时,请按照图14-15所示的截图修改逻辑:

1)Step 2:打开4号灯(Local:0:O.Data.4:=1;)

2)Transition 2:等待开关15接通(Local:2:I.Data.15)

38.可以开始最后一个Step/Transition对了。按下键盘上的Insert键,选择“步骤+转换→确定”(Step+Transition→OK),如图14-16所示。

39.将其连接到Tran_002下方,然后按照图14-17所示的截图进行设置:

1)Step 3:关闭4号灯(Local:0:O.Data.4:=0;)

2)Transition 3:始终为真,所以没有等待(1)

978-7-111-47798-3-Chapter02-18.jpg

图14-15 控制逻辑的修改

978-7-111-47798-3-Chapter02-19.jpg

图14-16 添加SFC元素对话框

978-7-111-47798-3-Chapter02-20.jpg

图14-17 编辑“step”

注:如果未使所有Step和Transition彼此上下紧邻,则Step_003将超过(或者至少是接近)标识着分页的粗黑线。

虚线只是供参考的网格线。此编辑器的一大特色是仅通过滚动即可在页面之间移动。不必在页面之间“跳转”。关于逻辑横跨页面的情况并没有任何限制,不必在页与页之间创建跨页连接器。不过,如果创建了跨页连接器,这样会减少很多连线,从而使编程界面看上去更加简明易读。

如果计算机连接有打印机并将逻辑打印出来,则第一页会是显示出所有逻辑的缩小视图。然后会打印出各个页面,并在每一侧配有小箭头以指明与之对应的页面。如果办公室略显单调,则可将所有页面贴在一起,在墙上构成一副壁画作为装饰。

事实上,唯一一点会限制Step数量的因素是控制器中可用内存的大小!这与某些人所熟悉的情况不同,因为PLC-5有固定的数量限制。

40.将项目另存为“SFCLABc”。

41.尝试用缩放978-7-111-47798-3-Chapter02-21.jpg图标同时查看更多逻辑。

42.现在按下“检验例程”(Verify Routine)978-7-111-47798-3-Chapter02-22.jpg图标,注意到有三条错误,如图14-18所示。

978-7-111-47798-3-Chapter02-23.jpg

图14-18 错误信息

43.第一个错误是因为不能以Transition作为逻辑的末尾。将通过添加停止来消除该错误。在指令工具栏中,按下停止978-7-111-47798-3-Chapter02-24.jpg图标并将其附加到逻辑的末尾,如图14-19所示。

下一个错误与之前已经注意到的问题有关。意外地使Step_002成为了初始Step。这很容易更正:

44.返回到Step_000并注意到它外面只有一层方框。

45.单击带有三个小点的978-7-111-47798-3-Chapter02-25.jpg按钮得到属性页面。

46.将类型更改为“初始”(Initial)并按下“确定”(OK)。

47.请注意,现在它外面有两层方框,而同时Step_002被自动更正(RSLogix 5000清楚只能有一个初始Step),如图14-20所示。

48.现在按下“检验例程”(Verify Rou-tine)图标,发现此例程中没有错误或警告(如果错误窗口未打开,请选择“视图→错误”(View→Errors))。

还有最后一件事要做。由于有多个例程,因此必须向该例程添加JSR指令。双击“主例程”(MainRoutine),如图14-21所示。

978-7-111-47798-3-Chapter02-26.jpg

图14-19 添加结尾

49.按下键盘上的Insert键,键入“JSR”并按Enter。

978-7-111-47798-3-Chapter02-27.jpg

图14-20 Step属性对话框

978-7-111-47798-3-Chapter02-28.jpg

图14-21 项目列表

50.在文字Routine Name旁边→双击问号→从下拉列表中选择MYSFC→按Enter→单击Re-turn Par旁边的问号,如图14-22所示。

51.不想向此例程传送任何参数,因此不需要Return Par这行。删除该行的最简单的方法是单击Return Par旁边的问号并双击Enter。对Input Par重复相同的操作,结果如图14-23所示。

978-7-111-47798-3-Chapter02-29.jpg

图14-22 JSR指令

978-7-111-47798-3-Chapter02-30.jpg

图14-23 JSR指令

52.将项目另存为“SFCLABd”。

53.将开关12、13、14和15打到左侧将其断开,然后下载到插槽1中的L63控制器。

54.将控制器置于运行模式,并确认2号灯和3号灯已点亮。查看SFC例程并注意到Step_000已突出显示,表明逻辑执行到该Step。这是因为Tran_000正等待接通开关13。

Step 0:打开2号灯和3号灯(在ControlLogix演示箱中)

Transition 0:等待开关13接通

Step 1:关闭2号灯和3号灯

Transition 1:等待开关14接通

Step 2:打开4号灯

Transition 2:等待开关15接通

Step 3:关闭4号灯

Transition 3:始终为真,所以没有等待

55.在观察逻辑的同时,接通开关13。注意到灯熄灭了,现在Step_001被突出显示。

56.接通开关14并注意到4号灯亮起。

57.接通开关15并注意到4号灯熄灭,由于此Transition始终为真,因此SFC已结束。现在“停止”已突出显示。

如果这是PLC-5,则逻辑会从顶部自动重新开始。在ControlLogix中,如果需要,必须手动绘制一条线连回到第一个Step。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈