可编程控制器罗克韦尔RSLogix5000介绍

更新时间:2023-08-20 02:12:01 阅读量: 高等教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

可编程控制器罗克韦尔RSLogix5000介绍

第二章 RSLogix5000编程

学习目标:

■ 学会创建任务、程序、例程 ■ 深入理解标签、结构体和数组 ■ 掌握编写梯形图程序 ■ 学习■ 掌握

I/O组态方法

RSLogix5000功能块图编程

1

可编程控制器罗克韦尔RSLogix5000介绍

2.1 编写RSLogix5000梯形图

2.1.1 创建任务、程序和例程

本次课程基于一个假想的工业环境。您是一位压缩机装配项目程序开发人员。图2-1描述了压缩机装配项目的整个工艺流程。

在该项目中,传送带上的压缩机经过三个装配站:冲压、卷边和焊接。然后,压缩机被传送到第二个传送带并接受质量检查。通过检查的压缩机码垛后装船运走。

冲压

卷边

焊接

检查

码垛

PartSensor 光眼

图2-1 工艺流程图

冲压、卷边和焊接三个装配站和传送带1由控制器P1控制,质量检查和码垛站以及传送带2由控制器P2控制。图2-2给出了模拟各工作站运行时所用按钮和指示灯等离散量输入/输出点。

光眼检测到有部件放置到传送带上(PartSensor由0变为1)后,站1、2和3顺序执行,然后传送带动作。当光眼再次检测到有部件送至传送带上,上述操作再次执行,以此循环。下面我们以时序图方式描述控制器P1的操作流程,如图2-3所示。

本实验主题:

创建并组态一个控制器项目 创建任务 组态任务属性 创建程序

编辑程序排列表 创建例程 分配例程

2

可编程控制器罗克韦尔RSLogix5000介绍

Stake站工作中 StationActive

光眼故障指示 Part_Sensor_Fault_

Indicator

码垛站工作中 StationActive

检查未通过 PartFAULT

Press站工作中 StationActive

光眼检测输入 PartSensor

检查站工作中 StationActive

检查通过 PartPASSED

传送带输出 Weld站工作中

ConveyorOutput(P1) StationActive

传送带输出

ConveyorOutput(P2)

图2-2 各个按钮和指示灯的含义

在了解了装配线工艺流程及控制器P1操作流程之后,您对项目主管说可以开始为控制器P1编程了,这让他感到很惊讶,因为以前都是在完成电气设计之后才能够编写控制程序。在听过您的解释之后,他认为并行设计的方案是可行的。同时,他也提醒你,如果该生产线效果良好,公司可能会再增加一条生产线,但控制器可能还是使用现有的ControlLogix控制器,希望你在编程时考虑到这个问题。

3

可编程控制器罗克韦尔RSLogix5000介绍

光眼检测 PartSensor

Press站工作中 StationActive

Stake站工作中 StationActive

Weld站工作中 StationActive

传送带输出

ConveyorOutput(P1)

图2-3 时序图

实验步骤:

1. 双击桌面上

图标,打开RSLogix5000软件,如图2-4所示。

图2-4 RSLogix5000启动界面

2. 单击File->New创建新项目。您会看到New Controller(新建控制器项目)界面。起始槽号为0。您可以直接观察ControlLogix Demo箱,确定Logix5555控制器所在槽位;也可以打开RSLinx软件,组态通讯,在RSWho中确定 Logix5555控制器槽位,第二种方法显然更适用于操作员处于远程位置时。配置好的画面如图2-5所示:

4

可编程控制器罗克韦尔RSLogix5000介绍

单击OK,弹出如图2-6所示画面。

图2-6 新建项目资源管理器

现在我们已经创建了一个ControlLogix项目。此时我们还没有添加任何与项目相关的I/O模块,项目中也没有可执行的代码(如梯形图)。你正在离线工作,所作的任何改变都只限于软件中,并存储在计算机的硬盘中。在进行在线操作前,这些变化并不能反映到Logix5555控制器中。

3. 接下来,根据应用实例要求来组织控制器P1项目中任务、程序和例程及其操作要

5

可编程控制器罗克韦尔RSLogix5000介绍

求。控制器P1项目组织结构,如表2-1所示。

表2-1控制器P1项目组织

操作要求:

控制器P1中任务必须符合以下要求: 装配线任务(站1,2,3) --执行时间不超过500ms --根据调度连续运行 传送带任务

--执行时间不超过500ms

--与调度任务分时执行(两任务的优先级相同) --每50ms执行一次 调度任务

--执行时间不超过400ms

--与传送带任务分时执行(两任务的优先级相同) --每50ms执行一次

4. Logix控制器不仅支持Continuous(连续型)任务,还支持Periodic(周期型)和Event(事件型)任务。根据上述P1的操作要求,确定控制器P1中各任务的属性,并记录到表2-2中。

表2-2 控制器P1中各任务的属性

6

可编程控制器罗克韦尔RSLogix5000介绍

5. Logix控制器仅支持一个连续型任务,且RSLogix5000已经自动创建了连续型任务MainTask(如图2-6所示)。在MainTask文件上单击右键,在弹出菜单中选择Properties(属性),将MainTask任务名称改为Assembly,并输入相应属性值。

6. 单击File->New component->Task或在项目管理器Tasks(任务)文件夹上单击右键,在弹出菜单中选择New Task…创建新任务Conveyor,并设置相应属性,如图2-7所示,因为传送带任务要求50ms执行一次,所以选择Periodic(周期型)任务。同理,创建新任务Periodic_Dispatcher,并设置相应属性,保存该项目。

7

可编程控制器罗克韦尔RSLogix5000介绍

图2-7 创建新任务Conveyor

7. 创建Assembly(装配线)任务的程序。在Assembly文件夹上单击右键并在弹出菜单中选择New Program(创建新程序)。输入程序名称Program_1_Press并设置相应属性,如图2-8所示。同理创建Program_2_Stake,以及

Program_3_Weld并设置相应属性。

图2-8创建新程序

8. 规划Assembly(装配线)任务的程序。右键单击Assembly任务,从弹出的对话框中选择Properties(属性)。从弹出属性对话框中选择Program Schedule(程序规划)选项卡。规划后的程序如图2-9所示:

图2-9规划程序

9. 为Assembly(装配线)任务的Program_1_Press程序创建例程。右键单击Program_1_Press程序,在弹出菜单中选择New(新建),在弹出的对话框中输入名称

8

可编程控制器罗克韦尔RSLogix5000介绍

Routine_Dispatch(调度例程),类型为Ladder Diagram(梯形图),作用域在Program_1_Press程序中,如图2-10所示。该例程用于调度程序中其它的子例程。

同理,创建Station_1_Press(冲压)例程,类型为Ladder Diagram(梯形图),范围在Program_1_Press程序中。该例程用于控制冲压工序的时间。

10. 为Assembly(装配线)任务中Program_1_Press程序指定主例程。右键单击Program_1_Press程序,在弹出菜单中选择Properties(属性)。在弹出的对话框中选择Configuration(组态)选项卡。Assigned Main(指定主例程)为Routine_Dispatch(调度程序),如图2-11所示。

图2-11 指定主例程

11. 按照相同的步骤,用户可自行为Program_2_Stake、Program_3_Weld程序创建相应例程并设置主例程。

12. 对于Conveyor和Periodic_Dispatcher任务,请按照图2-12所示执行如下操作: --创建所需程序;

--创建所需例程并指定主例程。

9

可编程控制器罗克韦尔RSLogix5000介绍

图2-12 新建任务、程序和例程

13. 单击File->Save,保存该项目。该项目所有任务、程序和例程创建完毕。 至此,您已完成创建任务、程序和例程的所有实验!

2.1.2 创建标签、结构体和数组

在本实验中,我们将结合应用实例继续前面的工作,创建相应的标签、结构体和数组。Logix控制器的特点:无需手动进行I/O映射,根据控制属性,自动创建/命名标签,并且支持结构体和数组。另外,控制器域和程序域标签分类提高了代码重用性。

本实验的主题:

1. 创建控制器域和程序域的标签 2. 创建用户自定义数据类型

实验步骤: 1. 双击桌面上

图标,打开RSLogix5000软件。

2. 选择File->Open,选择上一实验所创建项目P1并打开。 3. 右键单击Controller Tags(控制器标签),在弹出的菜单中选择New Tag…(新建标签)。Tag Name类似于其它编程语言中的变量-它们均用于存储数值。你可以根据P&ID

10

可编程控制器罗克韦尔RSLogix5000介绍

(管道仪表图)或电气设计图中的符号名称来命名标签(Tag Name)。您在此输入标签名称会保存在PLC中,不会因为更换用于编程的上位机而丢失。且这些Tag Name可供系统中的人机界面直接使用,而无须重新定义。这都会为您的编程、文档管理和系统维护带来极大的便利。在对话框中输入名称Call_Program_Value,数据类型INT,标签类型为Base(基本型),范围为P1(Controller),显示类型为Decimal(十进制),如图2-13所示。

图2-13 新建标签

4. 按照上述步骤逐个创建以下控制器域的标签,如图2-14所示,这些标签将在下一实验中用到。

图2-14 控制器域标签

5. 创建下面的Conveyor程序域内的标签,如图2-15所示。

11

可编程控制器罗克韦尔RSLogix5000介绍

图2-15 Conveyor程序域内标签

6. 创建下面的Station_Dispatcher(站调度)程序域的标签如图2-16所示。

7. 创建下面的Program_1_Press(冲压站)程序域的标签,如图2-17所示。

图2-17 Program_1_Press程序域内标签

8. 将Program_1_Press(冲压站)程序域的标签复制(Ctrl+C)并粘贴(Ctrl+V)到Program_2_Stake和Program_3_Weld程序域内,无须重建标签,提高代码重用性。在此我们注意到,在Logix控制器中,不同程序域内的标签名称是可以相同的。

9. 创建用户自定义数据类型。在控制器P1中为每个压缩机生成一个产品编号(Product ID),每个产品编号由零件编号(Part_ID)、序列号(Serial_No)和目录号(Catalog_No)三部分构成。使用用户自定义数据结构可以更方便的管理这种数据类型的标签。

如图2-18所示,右键单击Data Type文件夹下User-Defined(用户自定义),在弹出的菜单中选择New Data Type…(新建数据类型)。

图2-18 新建用户自定义数据类型

12

可编程控制器罗克韦尔RSLogix5000介绍

10. 在弹出画面中输入自定义数据类型的Name(名称)和Members(成员),如图2-19所示。此时,你创建了一个自定义的数据类型,如果需要在例程中使用它,必须创建相应的标签。

图2-19 自定义数据类型中名称和成员

11. 在Controller Scope(控制器域)内创建数据类型为Product_ID的标签Station_Data。如图2-20所示:

图2-20 创建数据类型为Product_ID的标签

12. 保存该项目。

至此,您已完成标签、结构体和数组创建的相关实验!

13

可编程控制器罗克韦尔RSLogix5000介绍

2.1.3 编写梯形图程序

创建了任务、程序、例程以及所需标签后,我们需要编写工作站(冲压、卷边和焊接)、传送带和站调度梯形图逻辑程序。RSLogix5000编程软件支持梯形图、功能块、顺序功能图、结构文本等编程语言,用户可以根据自己的需求灵活选择编程语言。对于本例,我们选择梯形图编程语言。

本实验主题:

1. 输入梯级和指令

2. 使用快捷键输入指令和梯级元素 3. 输入分支

4. 掌握常用指令,如输入、输出、定时器、跳转子程序等。 5. 在多个项目间复制梯级 6. 校验梯形图逻辑

实验步骤: 1. 双击桌面上

图标,打开RSLogix5000软件。

2. 单击File->Open,选择上一实验所创建项目P1并打开。

3. 输入梯形图逻辑。右键单击Assembly->Program_1_Press->Routine_Dispatch,从弹出菜单中选择Open(打开),如图2-21所示。

图2-21 打开Routine_Dispatch例程

4. 在弹出的编程窗口中编写调度例程,如图2-22所示。

14

可编程控制器罗克韦尔RSLogix5000介绍

图2-22 Routine_Dispatch编程窗口

注意出现在右边窗口的梯级,此梯级处于编辑(Edit)模式,在梯级的左边标着“e”。现在可以添加指令和梯级了。

5. Routine_Dispatch主例程的作用是初始化子例程、调度子例程。初始化子程序将Station_1_Press例程中StationTimer的计时累加值清零。如果标签Call_Program_Value(调用程序号)由Station_Dispatcher例程设定为1,则跳转到子例程Station_1_Press中。

首先,输入一个相等(EQU)指令(属于Compare类),单击EQU,它就出现在梯级的相应位置,如图2-23所示。

图2-23 EQU指令位置

注意:您也可以将其拖到梯级上,或者双击“e”标记,然后在弹出的窗口中输入EQU,或者按下Insert键,输入EQU。

无论您采用哪种方法,现在都能够获得EQU指令,出现如图2-24所示画面:

图2-24 输入EQU指令

15

可编程控制器罗克韦尔RSLogix5000介绍

6. 现在您需要在EQU指令的SourceA和SourceB处输入正确的标签地址。所有需要用到的标签我们在上一实验中都已经创建好了,这时,我们仅需双击问号,然后单击向下箭头,如图2-25所示。

图2-25 设置EQU指令参数

您可以在Controller Scoped Tags 和Program Scoped Tags之间切换画面。

回顾上次实验内容,因为Call_Program_Value会在多个程序中使用,故作用域为Controller Scoped Tags。

需要注意的是,如果一个标签被定义为Program Scoped Tags(程序域标签),那么,只有属于这个Program的Routine才可以对此变量进行读/写操作。

7. 双击SourceB,直接输入立即数1。如果不采用立即数方式,而采用标签的方式,那么您可以右键单击Source B的问号,如图2-26所示。

图2-26 设置Source B参数

8. 弹出如图2-27所示画面。为了与本实验保持一致,请采用下例中的名称,并配置成相应属性。或者,直接使用立即数1。

16

可编程控制器罗克韦尔RSLogix5000介绍

图2-27 新建标签对话框

9. 按照上述方法,为Assembly->Program_1_Press->Routine_Dispatch例程创建如图2-28所示梯形图逻辑,添加清除定时累加值所需指令ONS和RES。按下Insert键,直接输入指令名称。由于本次实验中用到了的指令较多,不能一一介绍,对于不清楚的指令,您可以直接与指导老师沟通,或单击Help->Instruction Help(指令帮助),查阅相关指令的帮

图2-28 创建梯形图逻辑

10. 创建梯形图分支。在Routine_Dispatch例程中,对Station_1_Press例程中定时器累加值清零后,梯级需要跳转到Station_1_Press,开始执行压缩机部件的冲压工序。由于计时器累加值清零程序的输入条件与跳转指令相同,故我们需要将两个输出并联,但一定要注意,并联的输出梯级的顺序不能交换。

图2-29 选择分支

单击Branch,然后将其一端拖拽到所需位置,释放鼠标左键,如图2-30所示:

17

可编程控制器罗克韦尔RSLogix5000介绍

然后,添加跳转到子例程指令JSR。按下Insert键,直接输入指令名称。对于不清楚

的指令,请单击如图2-31所示。

图2-31 查阅指令帮助

11. 最终,创建完成的Assembly->Program_1_Press->Routine_Dispatch例程如图2-32图2-32 创建完的Routine_Dispatch例程

12. 将Assembly->Program_1_Press->Routine_Dispatch中的梯形图逻辑复制到Assembly->Program_2_Stake->Routine_Dispatch。

13. 将该梯形图逻辑粘贴到Assembly->Program_2_Stake->Routine_Dispatch例程后,修改以下参数,如图2-33所示。

图2-33 参数修改

- 将EQU指令中SourceB参数改为2。

- 将JSR指令中Routine Name参数改为Station_2_Stake。

18

可编程控制器罗克韦尔RSLogix5000介绍

14. 将Assembly->Program_1_Press->Routine_Dispatch例程中梯形图逻辑复制到Assembly->Program_3_Weld->Routine_Dispatch中,修改以下参数,如图2-34所示。

- 将EQU指令中SourceB参数改为3。

图2-34 参数修改

注意:由于程序功能类似,我们通过简单的Copy+Paste就完成了程序的编写,无须重修改标签,那么,我们可以想象,如果有多个冲压工作站,我们只需编写一个冲压工作站的程序,其余的只需Copy+Paste就可以完成!

15. 单击工具条上条上

校验每个例程,出现错误提示后,纠正错误。然后,单击工具

按钮校验整个项目并纠正出现的错误。

16. 在Assembly->Program_1_Press->Station_1_Press中,输入如图2-35所示梯形图逻图2-35 Station_1_Press梯形图

17. 用户可以直接将Assembly->Program_1_Press->Station_1_Press 例程的梯形图逻辑直接复制到Assembly->Program_2_Stake->Station_2_Stake例程后,修改如下参数:

-将StationTimer的Preset(预设值)改为2000;

注意:选择多行梯级可以按下Shift(上档)键,依次单击想要选择的梯级即可。 修改后的结果如图2-36所示:

图2-36 参数修改

19

可编程控制器罗克韦尔RSLogix5000介绍

18. 用户可以直接将Assembly->Program_1_Press->Station_1_Press 例程的梯形图逻辑直接复制到Assembly->Program_3_Weld-> Station_3_Weld例程后,修改如下参数:

-将StationTimer的Preset(预设值)改为3000;

-StationTimer定时结束后,添加Complete输出,表示三道工序都已经完成,用于控制Conveyor输出。

修改后的结果如图2-37所示:

19.

单击工具条上条上

校验每个例程,出现错误提示后,纠正错误。然后,单击工具

按钮校验整个项目并纠正出现的错误。

20. 保存该项目。

21. 至此,三个工作站的程序已经完成了,我们发现在创建过程中,实际上,仅仅程序Program_1_Press是自己创建的,其它两个程序都是对第一个程序的Copy+Paste以及一些简单的修改。那么,用户可以先将程序Program_1_Press的标签、例程创建完成后,再复制、粘贴、修改以及校验。注意:标签名称为什么不会冲突?

22. 接下来我们编写Conveyor(传送带)例程的梯形图逻辑,双击任务Conveyor->Conveyor->Conveyor例程,编写如图2-38所示梯形图逻辑。

第0行梯级用于对光眼故障(接线故障)的报警。第1、2行梯级用于控制传送带输出。

20

可编程控制器罗克韦尔RSLogix5000介绍

23. 继续编写工作站调度例程。双击Periodic_Dispatcher->Station_Dispatcher->Station _Dispatcher例程,编写如图2-39所示梯形图逻辑。

图2-39 Station _Dispatcher例程的梯形图

其中,梯级0用于生成压缩机产品编号。梯级1用于判断三道工序是否正在工作。梯级3、4用于调度工作站。

21

本文来源:https://www.bwwdw.com/article/yx6j.html

Top