创建了任务、程序、例程以及所需标签后,需要编写工作站(冲压、卷边和焊接)、传送带和站调度梯形图逻辑程序。RSLogix5000编程软件支持梯形图、功能块、顺序功能图和结构文本等编程语言,读者可以根据自己的需求灵活选择编程语言。对于本例,选择梯形图编程语言。
本节目标:
—输入梯级和指令;
—使用快捷键输入指令和梯级元素;
—输入分支;
—掌握常用指令,如输入、输出、定时器、跳转子程序等;
—在多个项目间复制梯级;
—校验梯形图逻辑。
创建梯形图逻辑。右键单击Assembly→Program_1_Press→Routine_Dispatch,选择“Open”(打开)。
创建好一个梯形图例程后,在梯级的左边标着“e”,表示梯级处于编辑(Edit)模式,可以添加指令和梯级了。
“Routine_Dispatch”主例程的作用是初始化子例程、调用子例程。初始化子例程将“Station_1_Press”例程中“StationTimer”的计时累加值清零。如果标签“CallProgram Value”(调用程序号)由“Station_Dispatcher”例程设定为1,则跳转到子例程“Station_1_Press”中。
首先,输入一个相等(EQU)指令(属于Compare类),单击“EQU”,它就出现在梯级的相应位置。注意:也可以将其拖到梯级上,或者双击“e”标记,然后在弹出的窗口中输入“EQU”,或者按下“Insert”键,输入“EQU”。
无论采用哪种方法都能够使用“EQU”指令,如图2-17所示。
现在需要在“EQU”指令的“Source A”和“Source B”处输入正确的标签地址。所有需要用到的标签在上一实验中都已经创建完毕,这时,仅需双击问号,然后单击向下箭头,选择相应的标签即可。
图2-17 输入“EQU”指令
可以在“Controller Scope Tags”和“Program Scope Tags”之间切换画面。回顾上次实验内容,因为“Call_Program_Value”会在多个程序中使用,故作用域为“Controller Scope Tags”。
需要注意的是,如果一个标签被定义为“Program Scope Tags”,那么,只有属于这个“Program”的“Routine”才可以对此变量进行读/写操作。
双击“Source B”,直接输入立即数1。如果不采用立即数方式,而采用标签的方式,那么可以右键单击“Source B”的问号,如图2-18所示。
图2-18 设置“Source B”参数
单击“New Tag”,弹出如图2-19所示画面。为了与本实验保持一致,采用下图中的名称,并组态成相应属性。
按照上述方法,为Assembly—Program_1_Press→Routine_Dispatch例程创建如图2-20所示梯形图逻辑,添加清除定时累加值所需指令“ONS”和“RES”。按下“In-sert”键,直接输入指令名称。由于本次实验中使用了较多指令,不作一一介绍。
创建梯形图分支。在“Routine_Dis-patch”例程中,对“Station_1_Press”例程中定时器累加值清零后,梯级需要跳转到“Station_1_Press”,开始执行压缩机部件的冲压工序。由于计时器累加值清零程序的输入条件与跳转指令相同,故需要将两个输出并联,但一定要注意,输出并联梯级的顺序不能交换。
图2-19 新建标签对话框
单击“EQU”梯级指令,然后在工具条中选择“Branch”,如图2-21所示。
图2-20 创建梯形图逻辑
图2-21 选择分支
单击“Branch”,然后将其一端拖动到所需位置,释放左键,如图2-22所示。
图2-22 创建分支(www.xing528.com)
添加跳转到子例程指令“JSR”。按下“Insert”键,直接输入指令名称。
最终,创建完成的Assembly→Program_1_Press→Routine_Dispatch例程如图2-23所示。
图2-23 创建完的“Routine_Dispatch”例程
将Assembly→Program_1_Press→Routine_Dispatch中的梯形图逻辑复制到Assembly→Program_2_Stae→Routine_Dispatch。
将该梯形图逻辑粘贴到Assembly→Program_2_Stake→Routine_Dispatch例程后,需要修改以下参数:
—将“EQU”指令中“Source B”参数改为2。
—将“JSR”指令中“Routine Name”参数改为“Station_2_Stake”。
将Assembly→Program_1_Press→Routine_Dispatch中的梯形图逻辑复制到Assembly→Program_3_Weld→Routine_Dispatch中,需要修改以下参数:
—将“EQU”指令中“Source B”参数改为3。
—将“JSR”指令中“Routine Name”参数改为“Station_3_Weld”。
需要注意的是,由于程序功能类似,通过简单的“Copy+Paste”就完成了程序的编写,无需重新修改标签,那么,可以想象,如果有多个冲压工作站,只需编写一个冲压工作站的程序,其余的只需“Copy+Paste”就可以完成。
单击工具条上校验每个例程,出现错误提示后,纠正错误。然后,单击工具条上按钮校验整个项目并纠正出现的错误。
在Assembly→Program_1_Press→Station_1_Press中输入梯形图逻辑,如图2-24所示。
图2-24 “Station_1_Press”梯形图
读者可以直接将Assembly→Program_1_Press→Station_1_Press例程的梯形图逻辑复制到Assembly→Program_2_Stake→Station_2_Stake例程后,将“StationTimer”的“Preset”(预设值)改为2000。
注意:选择多行梯级可以按下“Shift”(转换)键,依次单击要选择的梯级即可。
读者可以直接将Assembly→Program_1_Press→Station_1_Press例程的梯形图逻辑复制到Assembly→Program_3_Weld→Station_3_Weld例程后,修改如下参数:
—将“StationTimer”的“Preset”(预设值)改为3000。
—“StationTimer”定时结束后,添加“Complete”输出,表示三道工序都已经完成,用于控制“Conveyor”输出。修改后的结果如图2-25所示。
图2-25 参数修改
至此,已经完成3个工作站程序。
在创建过程中,仅程序“Program_1_Press”是自己创建的,其他两个程序都是对第一个程序的“Copy+Paste”以及一些简单的修改。那么,读者可以先将程序“Program_1_Press”的标签、例程创建完成后,再复制、粘贴、修改以及校验。注意:标签名称为什么不会冲突?
编写“Conveyor”(传送带)例程的梯形图逻辑,双击Conveyor→Conveyor→Conveyor例程,编写梯形图逻辑,如图2-26所示。
图2-26 “Conveyor”例程中梯形图
第0行梯级用于对光眼故障(接线故障)的报警。第1、2行梯级用于控制传送带输出。
继续编写工作站调度例程。双击Periodic_Dispatcher→Station_Dispatcher→Station_Dis-patcher例程,编写梯形图逻辑,如图2-27所示。
其中,第一条梯级用于生成压缩机产品编号。第二条梯级用于判断三道工序是否正在工作。第三条梯级和第四条梯级用于调度工作站。
图2-27 “Station_Dispatcher”例程的梯形图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。