




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 RSLogix5000编程学习目标: 学会创建任务、程序、例程 深入理解标签、结构体和数组 掌握编写梯形图程序 学习I/O组态方法 掌握RSLogix5000功能块图编程2.1 编写RSLogix5000梯形图2.1.1 创建任务、程序和例程本次课程基于一个假想的工业环境。您是一位压缩机装配项目程序开发人员。图2-1描述了压缩机装配项目的整个工艺流程。PartSensor光眼检查码垛焊接卷边冲压在该项目中,传送带上的压缩机经过三个装配站:冲压、卷边和焊接。然后,压缩机被传送到第二个传送带并接受质量检查。通过检查的压缩机码垛后装船运走。图2-1 工艺流程图冲压、卷边和焊接三个装配站和传送
2、带1由控制器P1控制,质量检查和码垛站以及传送带2由控制器P2控制。图2-2给出了模拟各工作站运行时所用按钮和指示灯等离散量输入/输出点。光眼检测到有部件放置到传送带上(PartSensor由0变为1)后,站1、2和3顺序执行,然后传送带动作。当光眼再次检测到有部件送至传送带上,上述操作再次执行,以此循环。下面我们以时序图方式描述控制器P1的操作流程,如图2-3所示。本实验主题:l 创建并组态一个控制器项目l 创建任务l 组态任务属性l 创建程序l 编辑程序排列表l 创建例程l 分配例程Press站工作中StationActive光眼检测输入PartSensorStake站工作中Station
3、ActiveWeld站工作中StationActive光眼故障指示Part_Sensor_Fault_Indicator传送带输出ConveyorOutput(P1)检查站工作中StationActive码垛站工作中StationActive检查通过PartPASSED检查未通过PartFAULT传送带输出ConveyorOutput(P2)图2-2 各个按钮和指示灯的含义在了解了装配线工艺流程及控制器P1操作流程之后,您对项目主管说可以开始为控制器P1编程了,这让他感到很惊讶,因为以前都是在完成电气设计之后才能够编写控制程序。在听过您的解释之后,他认为并行设计的方案是可行的。同时,他也提醒你
4、,如果该生产线效果良好,公司可能会再增加一条生产线,但控制器可能还是使用现有的ControlLogix控制器,希望你在编程时考虑到这个问题。光眼检测PartSensorPress站工作中StationActiveStake站工作中StationActiveWeld站工作中StationActive传送带输出ConveyorOutput(P1)图2-3 时序图实验步骤:1. 双击桌面上图标,打开RSLogix5000软件,如图2-4所示。单击New(新建)图2-4 RSLogix5000启动界面2. 单击File->New创建新项目。您会看到New Controller(新建控制器项目)界
5、面。起始槽号为0。您可以直接观察ControlLogix Demo箱,确定Logix5555控制器所在槽位;也可以打开RSLinx软件,组态通讯,在RSWho中确定 Logix5555控制器槽位,第二种方法显然更适用于操作员处于远程位置时。配置好的画面如图2-5所示:图2-5 新建控制器对话框单击OK,弹出如图2-6所示画面。缺省创建连续型任务图2-6 新建项目资源管理器现在我们已经创建了一个ControlLogix项目。此时我们还没有添加任何与项目相关的I/O模块,项目中也没有可执行的代码(如梯形图)。你正在离线工作,所作的任何改变都只限于软件中,并存储在计算机的硬盘中。在进行在线操作前,这
6、些变化并不能反映到Logix5555控制器中。3. 接下来,根据应用实例要求来组织控制器P1项目中任务、程序和例程及其操作要求。控制器P1项目组织结构,如表2-1所示。表2-1控制器P1项目组织任务包含程序包含例程执行的操作AssemblyProgram_1_PressRoutine_Dispatch使能子例程Station_1_Press控制冲压站Program_2_StakeRoutine_Dispatch使能子例程Station_2_Stake控制卷边站Program_3_WeldRoutine_Dispatch使能子例程Station_3_Weld控制焊接站ConveyorConvey
7、orConveyor控制传送带操作Periodic_DispatcherStation_DispatcherStation_Dispatcher初始化(使能)站操作操作要求:控制器P1中任务必须符合以下要求:l 装配线任务(站1,2,3)-执行时间不超过500ms-根据调度连续运行l 传送带任务-执行时间不超过500ms-与调度任务分时执行(两任务的优先级相同)-每50ms执行一次l 调度任务-执行时间不超过400ms-与传送带任务分时执行(两任务的优先级相同)-每50ms执行一次4. Logix控制器不仅支持Continuous(连续型)任务,还支持Periodic(周期型)和Event(事
8、件型)任务。根据上述P1的操作要求,确定控制器P1中各任务的属性,并记录到表2-2中。表2-2 控制器P1中各任务的属性Task(任务)Type(类型)Watchdog(看门狗时间)优先级执行速率Assembly(装配线)Continuous连续型Periodic周期型Conveyor(传送带)Continuous连续型Periodic周期型Periodic_Dispatcher(定期调度)Continuous连续型Periodic周期型5. Logix控制器仅支持一个连续型任务,且RSLogix5000已经自动创建了连续型任务MainTask(如图2-6所示)。在MainTask文件上单击右
9、键,在弹出菜单中选择Properties(属性),将MainTask任务名称改为Assembly,并输入相应属性值。6. 单击File->New component->Task或在项目管理器Tasks(任务)文件夹上单击右键,在弹出菜单中选择New Task创建新任务Conveyor,并设置相应属性,如图2-7所示,因为传送带任务要求50ms执行一次,所以选择Periodic(周期型)任务。同理,创建新任务Periodic_Dispatcher,并设置相应属性,保存该项目。图2-7 创建新任务Conveyor7. 创建Assembly(装配线)任务的程序。在Assembly文件夹上
10、单击右键并在弹出菜单中选择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_
11、1_Press程序,在弹出菜单中选择New(新建),在弹出的对话框中输入名称Routine_Dispatch(调度例程),类型为Ladder Diagram(梯形图),作用域在Program_1_Press程序中,如图2-10所示。该例程用于调度程序中其它的子例程。图2-10 创建例程同理,创建Station_1_Press(冲压)例程,类型为Ladder Diagram(梯形图),范围在Program_1_Press程序中。该例程用于控制冲压工序的时间。10. 为Assembly(装配线)任务中Program_1_Press程序指定主例程。右键单击Program_1_Press程序,在弹出菜
12、单中选择Properties(属性)。在弹出的对话框中选择Configuration(组态)选项卡。Assigned Main(指定主例程)为Routine_Dispatch(调度程序),如图2-11所示。图2-11 指定主例程11. 按照相同的步骤,用户可自行为Program_2_Stake、Program_3_Weld程序创建相应例程并设置主例程。12. 对于Conveyor和Periodic_Dispatcher任务,请按照图2-12所示执行如下操作:-创建所需程序;-创建所需例程并指定主例程。图2-12 新建任务、程序和例程13. 单击File->Save,保存该项目。该项目所有
13、任务、程序和例程创建完毕。 至此,您已完成创建任务、程序和例程的所有实验!2.1.2 创建标签、结构体和数组在本实验中,我们将结合应用实例继续前面的工作,创建相应的标签、结构体和数组。Logix控制器的特点:无需手动进行I/O映射,根据控制属性,自动创建/命名标签,并且支持结构体和数组。另外,控制器域和程序域标签分类提高了代码重用性。本实验的主题:1. 创建控制器域和程序域的标签2. 创建用户自定义数据类型实验步骤:1. 双击桌面上图标,打开RSLogix5000软件。2. 选择File->Open,选择上一实验所创建项目P1并打开。3. 右键单击Controller Tags(控制器标
14、签),在弹出的菜单中选择New Tag(新建标签)。Tag Name类似于其它编程语言中的变量它们均用于存储数值。你可以根据P&ID(管道仪表图)或电气设计图中的符号名称来命名标签(Tag Name)。您在此输入标签名称会保存在PLC中,不会因为更换用于编程的上位机而丢失。且这些Tag Name可供系统中的人机界面直接使用,而无须重新定义。这都会为您的编程、文档管理和系统维护带来极大的便利。在对话框中输入名称Call_Program_Value,数据类型INT,标签类型为Base(基本型),范围为P1(Controller),显示类型为Decimal(十进制),如图2-13所示。图2-
15、13 新建标签4. 按照上述步骤逐个创建以下控制器域的标签,如图2-14所示,这些标签将在下一实验中用到。图2-14 控制器域标签5. 创建下面的Conveyor程序域内的标签,如图2-15所示。图2-15 Conveyor程序域内标签6. 创建下面的Station_Dispatcher(站调度)程序域的标签如图2-16所示。图2-16 Station_Dispatcher程序域内标签7. 创建下面的Program_1_Press(冲压站)程序域的标签,如图2-17所示。图2-17 Program_1_Press程序域内标签8. 将Program_1_Press(冲压站)程序域的标签复制(Ct
16、rl+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 Da
17、ta Type(新建数据类型)。图2-18 新建用户自定义数据类型10. 在弹出画面中输入自定义数据类型的Name(名称)和Members(成员),如图2-19所示。此时,你创建了一个自定义的数据类型,如果需要在例程中使用它,必须创建相应的标签。图2-19 自定义数据类型中名称和成员11. 在Controller Scope(控制器域)内创建数据类型为Product_ID的标签Station_Data。如图2-20所示:图2-20 创建数据类型为Product_ID的标签12. 保存该项目。 至此,您已完成标签、结构体和数组创建的相关实验!2.1.3 编写梯形图程序创建了任务、程序、例程以及所
18、需标签后,我们需要编写工作站(冲压、卷边和焊接)、传送带和站调度梯形图逻辑程序。RSLogix5000编程软件支持梯形图、功能块、顺序功能图、结构文本等编程语言,用户可以根据自己的需求灵活选择编程语言。对于本例,我们选择梯形图编程语言。本实验主题:1. 输入梯级和指令2. 使用快捷键输入指令和梯级元素3. 输入分支4. 掌握常用指令,如输入、输出、定时器、跳转子程序等。5. 在多个项目间复制梯级6. 校验梯形图逻辑实验步骤:1. 双击桌面上图标,打开RSLogix5000软件。2. 单击File->Open,选择上一实验所创建项目P1并打开。3. 输入梯形图逻辑。右键单击Assembly
19、->Program_1_Press->Routine_Dispatch,从弹出菜单中选择Open(打开),如图2-21所示。图2-21 打开Routine_Dispatch例程4. 在弹出的编程窗口中编写调度例程,如图2-22所示。图2-22 Routine_Dispatch编程窗口注意出现在右边窗口的梯级,此梯级处于编辑(Edit)模式,在梯级的左边标着“e”。现在可以添加指令和梯级了。5. Routine_Dispatch主例程的作用是初始化子例程、调度子例程。初始化子程序将Station_1_Press例程中StationTimer的计时累加值清零。如果标签Call_Prog
20、ram_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指令6. 现在您需要在EQU指令的SourceA和SourceB处输入正确的标签地址。所有需要用到的标签我们在
21、上一实验中都已经创建好了,这时,我们仅需双击问号,然后单击向下箭头,如图2-25所示。确认您正浏览的是Controller Scoped Tags图2-25 设置EQU指令参数您可以在Controller Scoped Tags 和Program Scoped Tags之间切换画面。回顾上次实验内容,因为Call_Program_Value会在多个程序中使用,故作用域为Controller Scoped Tags。需要注意的是,如果一个标签被定义为Program Scoped Tags(程序域标签),那么,只有属于这个Program的Routine才可以对此变量进行读/写操作。7. 双击Sou
22、rceB,直接输入立即数1。如果不采用立即数方式,而采用标签的方式,那么您可以右键单击Source B的问号,如图2-26所示。选择New Tag右击选中,并单击图2-26 设置Source B参数8. 弹出如图2-27所示画面。为了与本实验保持一致,请采用下例中的名称,并配置成相应属性。或者,直接使用立即数1。图2-27 新建标签对话框9. 按照上述方法,为Assembly->Program_1_Press->Routine_Dispatch例程创建如图2-28所示梯形图逻辑,添加清除定时累加值所需指令ONS和RES。按下Insert键,直接输入指令名称。由于本次实验中用到了的指
23、令较多,不能一一介绍,对于不清楚的指令,您可以直接与指导老师沟通,或单击Help->Instruction Help(指令帮助),查阅相关指令的帮助。图2-28 创建梯形图逻辑10. 创建梯形图分支。在Routine_Dispatch例程中,对Station_1_Press例程中定时器累加值清零后,梯级需要跳转到Station_1_Press,开始执行压缩机部件的冲压工序。由于计时器累加值清零程序的输入条件与跳转指令相同,故我们需要将两个输出并联,但一定要注意,并联的输出梯级的顺序不能交换。单击EQU梯级指令,然后在工具条中选择Branch,如图2-29所示。选择分支图2-29 选择分支
24、单击Branch,然后将其一端拖拽到所需位置,释放鼠标左键,如图2-30所示:单击Branch图2-30 创建分支然后,添加跳转到子例程指令JSR。按下Insert键,直接输入指令名称。对于不清楚的指令,请单击Help->Instruction Help(指令帮助),查阅相关指令的帮助,如图2-31所示。图2-31 查阅指令帮助11. 最终,创建完成的Assembly->Program_1_Press->Routine_Dispatch例程如图2-32所示。图2-32 创建完的Routine_Dispatch例程12. 将Assembly->Program_1_Pres
25、s->Routine_Dispatch中的梯形图逻辑复制到Assembly->Program_2_Stake->Routine_Dispatch。13. 将该梯形图逻辑粘贴到Assembly->Program_2_Stake->Routine_Dispatch例程后,修改以下参数,如图2-33所示。改为Station_ 2_Stake修改为2图2-33 参数修改 将EQU指令中SourceB参数改为2。 将JSR指令中Routine Name参数改为Station_2_Stake。14. 将Assembly->Program_1_Press->Rout
26、ine_Dispatch例程中梯形图逻辑复制到Assembly->Program_3_Weld->Routine_Dispatch中,修改以下参数,如图2-34所示。 将EQU指令中SourceB参数改为3。 将JSR指令中Routine Name参数改为Station_3_Weld。图2-34 参数修改注意:由于程序功能类似,我们通过简单的Copy+Paste就完成了程序的编写,无须重修改标签,那么,我们可以想象,如果有多个冲压工作站,我们只需编写一个冲压工作站的程序,其余的只需Copy+Paste就可以完成!15. 单击工具条上校验每个例程,出现错误提示后,纠正错误。然后,单击
27、工具条上按钮校验整个项目并纠正出现的错误。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(上
28、档)键,依次单击想要选择的梯级即可。修改后的结果如图2-36所示:图2-36 参数修改18. 用户可以直接将Assembly->Program_1_Press->Station_1_Press 例程的梯形图逻辑直接复制到Assembly->Program_3_Weld-> Station_3_Weld例程后,修改如下参数:将StationTimer的Preset(预设值)改为3000;StationTimer定时结束后,添加Complete输出,表示三道工序都已经完成,用于控制Conveyor输出。修改后的结果如图2-37所示:图2-37 参数修改19. 单击工具条上校
29、验每个例程,出现错误提示后,纠正错误。然后,单击工具条上按钮校验整个项目并纠正出现的错误。20. 保存该项目。21. 至此,三个工作站的程序已经完成了,我们发现在创建过程中,实际上,仅仅程序Program_1_Press是自己创建的,其它两个程序都是对第一个程序的Copy+Paste以及一些简单的修改。那么,用户可以先将程序Program_1_Press的标签、例程创建完成后,再复制、粘贴、修改以及校验。注意:标签名称为什么不会冲突?22. 接下来我们编写Conveyor(传送带)例程的梯形图逻辑,双击任务Conveyor->Conveyor->Conveyor例程,编写如图2-3
30、8所示梯形图逻辑。图2-38 Conveyor例程中梯形图第0行梯级用于对光眼故障(接线故障)的报警。第1、2行梯级用于控制传送带输出。23. 继续编写工作站调度例程。双击Periodic_Dispatcher->Station_Dispatcher->Station _Dispatcher例程,编写如图2-39所示梯形图逻辑。图2-39 Station _Dispatcher例程的梯形图其中,梯级0用于生成压缩机产品编号。梯级1用于判断三道工序是否正在工作。梯级3、4用于调度工作站。24. 单击工具条上校验每个例程,出现错误提示后,纠正错误。然后,单击工具条上按钮校验整个项目并纠
31、正出现的错误。我们使用例程和项目校验工具时只能查出程序中出现的语法错误;不能查出程序中的逻辑错误。但是现场条件往往不允许直接连接I/O模块调试。通过趋势图,我们可以观察时序,进而分析程序逻辑关系是否正确。25. 单击菜单File-> Save选项,保存该项目,如图2-40所示。单击Fileà Save图2-40 保存文件26. 单击选择资源管理器中Trends(趋势图)文件夹,右键单击并从弹出菜单中选择New Trend(创建新趋势图),如图2-41所示。图2-41 新建趋势图27. 从弹出的对话框中命名新趋势图Compressor,单击OK,如图2-42所示。图2-42 趋势
32、图命名28. 弹出Add/Configure Tags(添加/组态标签)对话框,从Scope(作用域)中选择Controller(控制器)或其它程序域,然后从Available Tags(可用标签)中选择标签,单击Add(添加)键,您可以在Tags to Trend(建立趋势图的标签组)看到所添标签。若要从Tags to Trend中移除所添标签,单击Remove(移除)键。按图2-43所示添加所需监视的标签。图2-43添加/组态标签对话框29. 弹出趋势图画面,在画面上单击鼠标右键,从弹出菜单中选择Chart Properties(图表属性),先选择Display(显示)选项卡,将Backg
33、round color(背景色)改为白色。选择X-Axis(X轴)时间轴选项卡,设置相应参数如图2-44所示:图2-44 设置时间轴参数30. 选择Y-Axis(Y轴)选项卡,设置相应参数如图2-45所示。设置完成后,单击OK键。图2-45 设置Y轴参数31. 设定完Trends(趋势图)参数后,创建的趋势图如图2-46所示:图2-46 创建的趋势图32. 接下来,我们要将该程序下载到控制器中运行,通过趋势图观察其运行结果是否正确。下载前确认您所使用的Logix5555控制器的钥匙处于Remote位置,且程序处于离线状态。单击菜单Communications->Who Active,弹出
34、如图2-47所示对话框。图2-47 通讯路径设置选择控制器,注意该槽号和你创建项目时选择的一致图2-48 浏览控制器33. 单击Download(下载)按钮,将该程序下载到控制器中。如果您的控制器正处于Remote Run(远程运行)状态,将弹出如图2-49所示警告。图2-49 警告对话框34. 单击Download(下载)按钮,出现下载进程,如图2-50所示。图2-50 下载进程35. 程序下载后,将控制器打到运行状态,用户通过扭动控制器上的钥匙实现,也可以鼠标左键单击如下图所示的Online(在线工具栏),从弹出菜单中选择Run Mode(运行模式),如图2-51所示。图2-51 运行模式
35、36. 改变控制器运行模式后,用户首先双击已创建的Compressor趋势图,弹出趋势图画面,并单击Run(运行),开始实时绘制曲线。37. 接下来通过手动触发PartSensor标签,使模拟的生产线运行起来。双击Station_Dispatcher(站调度)例程,弹出程序窗口,触发梯级2中标签PartSensor。如图2-52所示:图2-52 程序窗口38. 双击Trends->Compress,切换到趋势图,并观察到时序图如图2-53所示:图2-53 时序图至此,您已完成梯形图程序编写的相关实验!2.1.4 I/O组态在本实验中,我们将根据实际电气接线图来组态I/O模块,并利用别名标
36、签建立标签名称与I/O地址间的映射关系。本实验主题:l 组态I/O模块l 利用I/O模块自定义结构体l 利用I/O诊断位l 利用别名标签引用I/O在您根据工艺流程和控制要求编写控制器程序的同时,电气设计人员根据图纸已经将电气线路连接完毕。项目经理对这种并行设计的方法感到很满意,因为这极大的节省了安装时间。接下来,他要求你尽快完成控制程序与电气线路的联系过程。参考本实验,你会发现这非常容易。实验步骤:1. 首先,我们设计一下采用哪些按钮和指示灯来仿真离散量I/O点,如图2-63所示。左侧两列为P1控制的离散量I/O,其中PartSenor(光眼检测)是数字量输入,其余均为数字量输出。Press站
37、工作中StationActive光眼检测PartSensorStake站工作中StationActiveWeld站工作中StationActive光眼故障指示PartSensor_Fault_Indicator传送带输出ConveyorOutput(P1)检查站工作中StationActive码垛站工作中StationActive检查通过PartPASSED检查未通过PartFAULT传送带输出ConveyorOutput(P2)图2-54 按钮和指示灯2. 了解ControlLogix Demo框架上有哪些模块。您可以直接观察ControlLogix Demo,也可以在已经组态好的RSLin
38、x->RSWho窗口中查看,如图2-55所示。图2-55 查看ControlLogix机架配置本次实验中,我们采用位于0槽的数字量输出模块1756-OB16D和位于2槽的数字量输入模块1756-IB16D。注意:所有模块都可带电插拔,也就是说,您不需要切断框架的电源,再插拔模块。3. 规划I/O地址。表2-3为控制器P1项目中各个标签规划I/O地址表2-3 I/O地址规划作用域标签名称I/O地址P1(Controller)ConveyorOutputLocal:0:O.Data.5PartSensorProgram_1_PressStationActiveProgram_2_StakeS
39、tationActiveLocal:0:O.Data.1Program_3_WeldStationActiveLocal:0:O.Data.2ConveyorPart_Sensor_Fault_IndicatorLocal:0:O.Data.44. 双击桌面上图标,打开RSLogix5000软件,如图2-56所示。图2-56 RSLogix5000启动界面5. 单击菜单File->Open,打开上一实验编写的程序P1.ACD。6. 添加离散量输出I/O模块1756-OB16D。左键单击选择I/O Configuration(I/O组态)文件夹。然后按下鼠标右键,并选择New Module
40、(新模块),如图2-57所示。图2-57 添加新模块7. 在弹出的画面中选择1756-OB16D。选中之后,单击OK。图 2-58 选择模块类型8. 数字量输出模块位于0号槽,按照图2-59所示内容填写。确定与实际槽号相符选择Compatible Module图2-60 设置模块属性Electronic Keying(电子锁)允许你在Online(上线)前确定一个物理模块与软件组态之间达到何种匹配程度。这种特性可以避免用户在不经意中将错误的模块插入错误的槽中。它有如下三种选择:Compatible Module-物理模块的模块类型(Module Types),目录号(Catalog Numbe
41、r)以及主要版本号(Major Revision)必须与软件组态匹配,次要版本号(Minor Revision)必须等于软件指定的数值,否则RSLogix5000将不接受所插模块。Disable Keying-RSLogix5000不会检查模块版本的匹配情况。Exact Match-物理模块的下列五个参数必须与软件组态匹配,否则RSLogix 5000将不接受所插模块:Vendor,Product Type,Catalog Number,Major Revision,Minor Revision(供应商、产品类型、目录号、主要版本号、次要版本号)9. 填好之后,单击Next(下一步),出现如图
42、2-61所示画面。接受缺省设置,单击Next(下一步)。图2-61 模块属性缺省值10. 接下来回到主画面,如图2-62所示。你会发现0号槽的1756-OB16D数字量输出模块已经添加好。切记,现在仍处于离线状态,因此你做的一切尚未与实际槽位校验。数字量输出模块位于0号槽你仍处于离线状态图2-62 I/O组态文件夹11. 现在我们将重复上述步骤添加数字量输入模块。鼠标左键单击选择I/O Configuration文件夹,然后按下鼠标右键,并在弹出的菜单上选择New Module(新建模块)。12. 从列表中选择1756-IB16D,然后单击OK。13. 在弹出对话框中,输入参数,如图2-63所
43、示。图2-63 添加模块参数设置14. 在接下来的几个画面中单击Next,接受缺省设置。现在,你所选择的两个模块都出现在I/O Configuration(I/O组态)文件夹下,如图2-64所示。图2-64 完成I/O组态15. 到目前为止,我们已经添加上本实验所需的I/O模块。左键单击选择Controller Tags(控制器域标签),单击右键在弹出菜单中选择Monitor Tags(监视标签),弹出如图2-65所示窗口:模块预定义标签图2-65模块自动生成的预定义标签16. 图2-65显示了添加I/O模块后自动生成的数字量输入/输出模块结构体。标签名称遵循以下格式:位置(本地或远程):槽号
44、:类型.成员名称.子成员名称.位例如:Local:2:I.Data.0-本地框架:2:输入.数据.第0位 通过标签名称的具体格式,我们可以得到远程设备的接线位置。17. 至此,系统中所需的I/O模块全部添加完毕。接下来,我们根据第3步中的I/O地址规划,使用Alias tag (别名标签)完成I/O地址与标签的映射。18. 首先,我们进行I/O地址与控制器域标签的映射。鼠标右键单击选择Controller Tags(控制器域标签),在弹出菜单中选择Edit Tags(编辑标签),如图2-66所示。图2-66 选择编辑标签弹出如图2-67所示窗口:在此输入别名I/O地址图2-67 编辑标签如果您
45、对ConveyorOutput和PartSensor标签映射的I/O地址很熟悉,可以直接在Alias For一列中输入该I/O地址。如果您对该I/O地址不熟悉,我们可以通过软件来帮助输入映射I/O地址。左键单击ConveyorOut标签一行的Alias For(别名),单击后出现的向下箭头。逐层展开,直至出现如图2-68所示画面。图2-68 I/O地址映射直接单击“5”,表示选择第5位。在Alias For一栏中出现Local:0:O.Data.5,表示建立了地址映射关系,如图2-69所示。图2-69 建立地址映射关系按照同样的步骤,我们根据第3步中的I/O地址规划控制器域内其它标签的I/O地
46、址映射。结果如图2-70所示:图2-70 建立所有的地址映射19. 单击工具条上按钮校验整个项目并纠正出现的错误。20. 保存该项目,如图2-71所示。单击File à Save图2-71保存文件21. 单击Communications->Who Active,弹出如图2-72所示对话框。图2-72 选择Who Active22. 下载程序并观察实验箱上的I/O亮灭是否符合控制要求。23. 按照以下步骤测试模块点级的诊断功能: 移除PartSensor所在数字量输入模块(1756-IB16D)的接线臂 确认故障报警已触发 将接线臂连回原处并复位诊断位至此,您已完成通过RSLog
47、ix5000进行控制器I/O组态的相关实验。通过上述四个实验,您已掌握了基本的梯形图编程,接下来,我们通过另一个实例来学习功能块图编程。2.2 RSLogix5000功能块图编程2.2.1创建ControlLogix功能块图程序在本实验中,我们将利用RSLogix5000编程软件所提供的功能块图的某些特性创建一个能够控制实际电机的项目。暂时,我们利用一个电表来指示电动机的速度。过程DCS(分布式控制系统)经理来找你,希望你能为第三阶段的电动机速度编写程序。最终的控制是复杂的,但目前,他只要你将它设定为第一阶段的电动机速度的120%。你觉得这是非常容易的只需添加另一条梯级,且这条梯级与你前面所加
48、的梯级几乎是一样的,你很快就可以完成。可是经理接着说他们小组的成员只会读功能块图,而不会读梯形图,因此,你必须用RSLogix5000软件所提供的功能块图来编程。此外,他复查了一下管道和仪器(P&ID)的图纸,注意到你所使用的位于ControlLogix框架上槽6的模拟量输入模块中其中一路Local:6:I.Ch0Data即第一阶段的电动机的速度。它还有一路冗余数据传送位于Local:6:I.Ch1Data。背景:如果被测信号是非常重要的,那么,项目工程师们通常会安装不止一个数据传送装置。典型的情况是有两个或三个传送装置在测量同一个信号。我们只有两个电位计,故我们用它们模拟两个传送装置
49、。如果各装置正常工作,则会送出相同的读数,在程序中采用的是其平均值。如果其中一个传送装置发生故障。则通过程序或人为干预将其切换为正常工作的传送装置所发送的数据。然而,如果两个传送装置送出不同的数据,这表明至少有一个装置出现了偏差。那么就需要做些事情来确定哪一路数据是正确的,然后,使用这一路正确的数据,在修复之后再使用平均值。注意:由于添加额外的传送装置、接线、输入点、程序都会增加成本,因此,正如前面所提到的,冗余数据传送只用在非常重要的信号。在我们的演示模型中,我们只有一块模拟量输入模块,因此我们将两路冗余信号取自同一块模块。在真正的DCS 系统中,两路信号通常取自不同的模拟量输入模块。那样的
50、话,当一块模块出现故障时,你不会同时失去两路信号。现在回到经理交待的事情。在正常情况下,来自Local:6:I.Ch0Data的数据已经足够,但由于有冗余数据传送,因此他要求使用两路信号的平均值。最终结果送给第三阶段的电动机(我们可以使用DeviceNet网络上实际的变频器),但暂时只将结果送到另一个电表与Local:6:I.Ch1Data相连的电表。注意:你可以再次使用输入通道,但不能再次使用输出通道。例如,如果你程序中的某一部分在不停地写数据6.75到一个电表,而程序的另一部分则在不停地写数据3.29到同一个电表,那么,电表没几个毫秒就要接收到相矛盾的命令,指针就会在两个数值之间不停地抖动
51、。这就是为什么我们不能再次使用输出通道的原因。在本实验中,我们将使用另一个(尚未使用过的)电表表示第三阶段的电动机的速度。为了计算两个通道数据的平均值,并乘以120%,可以采用如下等式,并将结果输出给Local:7:O.Ch1Data。(Local:6:I.Ch0Data) + (Local:6:I.Ch1Data) * 0.5) * 1.2注意:0.5 * 1.2 = 0.6 我们只是乘以0.6,而不是做两遍乘法。本实验的主题:l 创建一个包含功能块图的ControlLogix项目l 使用IREF、OREF、ADD和MUL功能块l 建立冗余数据传送模型l 使用JSR 梯形图指令实验步骤:1.
52、 首先,双击桌面上图标,打开RSLogix5000软件。2. 单击菜单File->New,弹出New Controller(新建控制器)对话框。注意按照图2-73所示,正确输入Controller Type(控制器类型)、Revision(版本号)等属性。输入正确后,单击OK。图2-73 新建控制器对话框3. 单击MainProgram选中它,然后右击并选择New Routine,如图2-74所示。图2-74 新建例程按照图2-75所示填写Name和Description,然后单击Type窗口的向下箭头。如图2-75所示,选择Function Block Diagram(功能块图)。In
53、 Program(程序域)选择Main Program。图2-75 新建例程对话框在RSLogix5000 较早的版本中,我们只能创建梯形图(Ladder Diagrams),而现在,我们可以选择创建功能块图(Function Block Diagrams)。在图中,我们看出还可创建Sequential Fuction Chart(顺序功能图)和Structured Text(结构文本)。用户可根据自己需要选择编程语言。4. 在单击了向下箭头之后,你会看到Function Block Diagram的选项,选择Function Block Diagram,然后按OK。5. 现在,你在MainP
54、rogram下面有了另一个Routine,从图2-84可以看到,它的名字就是你刚才输入的Stage3_Speed,且图标与梯形图也不同,这表示该例程是一个功能块图,双击之。注意:Main Routine 旁边有一个小的梯子图标,表示它是梯形图。我们刚刚创建的routine 则有一个不同的图标,表示它是功能块图。双击之,打开功能块窗口。图2-84 新建功能块例程你已经打开了可以放置功能块的一张表格。这是自由格式的一张表格,因而你可以将功能块放在任何位置。如果需要在表格之间连接程序,或者需要输入输出I/O 数值,你只需放下一个连接器(connector),并填入相应的名字。使用I/O 数据所采用的
55、块称为IREF(input reference,输入参考)和OREF(output reference,输出参考)。它们采用ControlLogix的标准命名约定。连接表格之间所采用的块称为ICON(input connection,输入连接)和OCON(output connection,输出连接)。你可以选择一个名字,然后在所连接的表格上使用这同一个名字。我们将使用IREF引入I/O 数据,功能块编程界面如图2-76所示。图2-76 功能块编程界面6. 利用箭头你可以浏览不同类别的功能块,如图2-77所示。图2-77 浏览不同的功能块7. 在快速浏览过所有大类和功能块选择之后,回到最左边,你会看到如图2-87所示画面:IREF(Input Referece输入参考)位于最左边,用于输入数字和模拟信号图2-87 输入参考功能块让光标依次停留在上图中所圈出的四个符号上,RSLogix5000软件将提示你每个符号的名称。我们要引入I/O信号,因此,我们要将IREF(Input Reference)指令拉下来,它位于圆圈的最左边。注意:下一个符号称为OREF (Output Reference)。它用于输出数字和模拟信号。另外
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 链条装配工客户满意度考核试卷及答案
- 房子转让协议书
- 租赁土地合同协议书
- 钛真空熔炼工知识盲区填补考核试卷及答案
- 锁具装配工资源协调与分配考核试卷及答案
- 电子绝缘材料上胶工安全技术规程
- 2025合同模板股权投资合作合同范本
- 2026届广东省云浮数学九年级第一学期期末复习检测试题含解析
- 《2025安徽省学校保卫劳动合同》
- 四川省绵阳市绵阳外国语学校2026届数学八上期末学业质量监测试题含解析
- 吉林省松原市四校2025~2026学年度下学期九年级第一次月考试卷 物理(含答案)
- 2025云南昆明元朔建设发展有限公司第一批收费员招聘20人考试参考试题及答案解析
- 破局向新 持续向上-2025年人力资源发展趋势报告-智联招聘北大国发院
- 仓库环境管理办法
- 2025年大模型章节练习考试题库
- 三年级数学《毫米的认识》教学设计
- 人工智能基础与应用课件 项目1 初探人工智能
- 2025-2030年中国智能电网行业市场发展前景及投资战略研究报告
- 微积分学-P.P.t-标准课件00-第1讲微积分的发展历程
- 导数的应用-函数的零点问题(5题型分类)-2025年高考数学一轮复习(解析版)
- 第十中学八年级上学期语文10月月考试卷(含答案)
评论
0/150
提交评论