可编程控制器罗克韦尔RSLogix5000介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可编程控制器罗克韦尔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类似于其它编程语言中的变量-它们均用于存储数值。
你可以根据PID
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(预设值)改为20XX年;
注意:选择多行梯级可以按下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用于调度工作站。