4、工作任务
1) 2) 3) 4)
六轴工业机器人单元安装与接线;
六轴工业机器人的参数设置与程序编写; 六轴工业机器人单元的PLC程序设计; 六轴工业机器人单元的调试与运行。
5、任务目标
六轴机器人按照任务要求完成物料瓶的搬运、包装与贴标工作。
6、设备认识
1 4 7 10 13 16 机器人夹具 标签料台 网孔挂板 桌体 步进电机 物料盒 18
1 2 3 4 5 6 7 8
11 10 9
图4-1 六轴机器人单元结构示意图 表4-1 六轴机器人单元部件明细表 2 5 8 11 14 17 6轴机器人 升降台A PLC 按钮面板 挡料机构 推料气缸B 3 6 9 12 15 18 步进驱动器 推料气缸A 挂板接口板 台面接口板 出料台 升降台B 17 16 15 14 13 12
7、控制要求
1、初始位置:
六轴机器人处于收回安全状态(如图4-1); 夹具爪张开,夹具吸盘关闭;
升降台A:第一个物料盒刚好升到出料台面上方; 推料气缸A:收回状态;
升降台B:第一个盒盖刚好升到出料台面上方; 推料气缸B:收回状态; 挡料气缸:收回状态; 2、“单机”工作状态下按“启动”按钮,或者“联机”状态下,主站给出“启动”信号后,系统进入运行状态,“启动”指示灯亮,档料气缸伸出,同时推料气缸A将物料盒推出到装箱台上;机器人开始从检测分拣单元的出料位将物料瓶搬运到物料盒中;物料盒中装满4个瓶子后,机器人再用吸盘将物料盒盖吸取并盖到物料盒上;6轴机器人最后根据装入物料盒内4个物料瓶盖颜色的顺序,依次将与物料瓶盖颜色相同的标签贴到盒盖的标签位上。
3、在“单机”工作状态下按“停止”按钮,或者“联机”状态下主站给出“停止”信号,“停止”指示灯亮,系统进入停止状态,机器人停止搬运,其它所有机构均停止动作,保持状态不变。
4、在“单机”工作状态下按“复位”按钮,或者“联机”状态下主站给出“复位”信号,“复位”指示灯亮,系统进入复位状态,机器人复位,其它执行机构均恢复到初始位置。
5、初始位置要求:机器人处于安全位置;加盖定位气缸缩回;A、B推料气缸缩回;升降机构A处于第一个盒子出盖高度;升降机构B处于第一个盖子出盖高度。
8、能力目标
1、掌握三菱六轴工业机器人安装与接线方法; 2、掌握三菱六轴工业机器人参数设置与程序编写; 3、掌握三菱六轴工业机器人示教器的使用方法; 4、掌握步进电机及驱动器的应用;
5、掌握PLC与工业机器人之间的应用控制编程; 6、掌握系统设计与调试技术。
9、任务准备
1、了解PLC结构原理并掌握其基本应用; 2、掌握PLC基本指令与功能指令的运用; 3、掌握步进电机及步进驱动器的使用方法;
1)本系统中应用到的步进电机型号为XY42STH48,与之配套的驱动器型号为XY2404M。此步进电机为2相4线的步进电机,其步距角为0.9度。图4-2为步进电机控制原理图,图4-3为步进驱动器外观及接口汇示意图。下面详细介绍驱动器的输入信号和拨码功能,表4-1为驱动器的接口功能明细表。
2)PU+和PU-为步进驱动器的驱动脉冲输入信号,在不设置细分的情况下,外部控制器每向驱动器发送一个脉冲信号,驱动器驱动步进电机旋转0.9度。
3)DIR+和DIR-为驱动器的电机旋转方向输入信号,它决定着驱动驱动电机正转或反转。
4)细分拨码开关,其作用是对步进电机步距角进行细分,通过细分拨码可以把电机步距角细分为0.45度,0.225度等等(细分设置表详见驱动器正面的细分表)
图4-2 步进电机控制原理图
驱动脉
驱动方 拨码设置
电源接 电机接 图4-3 步进电机接口示意图 2)步进驱动器各端口详细定义如下表:
表4-2驱动器接口功能明细表
标记符号 POWER/ALARM PU 功能 电源、报警指示灯 红色:报警指示灯 步进脉冲信号 下降沿有效,每当脉冲由高低变化时,电机走一步 DIR MF 步进方向信号 电机释放信号 用于改变电机转向 低电平时,关断电机线圈电流,驱动器停止工作 +V -V +A -A 电机接线 +B -B SW1~SW3 电机电流设置拨码 OFF:0 ON:1 SW4~SW8 电机细分数设置拨码 OFF:0 蓝色 黄色 ON:1 电源正极 DC12V-40V 电源负极 红色 绿色 注释 绿色:电源指示灯
4、掌握传感器原理及应用;
1)本单元用到了两种类型传感器,它们的原理和应用有所不同。一种是NPN的反射型光电传感器,其结构原理见图4-4:这种传感器主要用于检测物体的有无。另一种是NPN型的磁性开关,其结构原理见图4-5这种传感器主要用于检测气缸活动限位。
图4-4光电传感器结构原理图
图4-5 磁性开关结构原理图
2)不管哪种类型的传感,按接线结构可以分为两线式和三线式两种。以上图4-4的光
电传感器是三线式的,图4-5的磁性开关是两线式的。图4-6展示了它们与PLC接原理。
LED限流电阻输出+
保险丝稳压二级管
输出-
PLC 传感器图4-6传感器/磁性开关与PLC的
5) 了解工业机器人RV-2SD的组成结构;
RV-2SD型工业机器人是一款额定负载2公斤的,小型6自由度工业机器人,它由机器人本体,控制器,示教器等组成,详见图4-7:
示教器 连接电缆 控制器
机器人本体 图4-7 工业机器人部件组成示意图
6) 掌握三菱工业机器人程序的基本应用指令;
开关以下例举了几个常用的指令,其它指令及控制器操作说明详见《CRnQCRnD控制器操作说明书》。
1)输出入定义指令(Def IO)
【指令代码】
Def IO
【功能】
定义输出入变量。想要设定特定的输出入符号的位宽时使用。
1位、8位、16位的输入输出信号可以在标准变量使用。
(1 位:M_In, M_Out/8位:M_Inb, M_Outb/16位:M_Inw, M_Outw)
本指令在已声明的变量里无法参照输出信号,请特别注意。
【格式】
Def IO <输出入变量名>=<指定型>,<输入输出信号号码>[,<掩码信息Mask>]
【用语】
<输出入变量名> 指定变量名。
<指定型> 指变量的类型,可以是位(1bit)、字节组(8bit)、字符(16bit) 的其中一个。
<输入输出信号号码> 指定输入信号(参照时)或输出信号号码(代入时) 。
<掩码信息Mask>只在特定的信号有效时指定,此参数不是必须的,可以缺省。
【例子】
一、 将PORT1的输入变量,以位型分配到输入输出信号6(每个输入输出信号都会有一
个编号,输入信号编号0到32,输出信号编号也为0到32)。
1 Def IO PORT1= Bit,6
:
10 PORT1= 1 ' 输出信号号码6开启。
:
20 PORT1= 2 ' 输出信号号码6关闭。(因为2的最低位为0)
21 M1 = PORT1 ' 输入信号号码6的状态被设定在M1
二、 将PORT2的输出入变量,以数元组分配到输入输出信号号码5,
掩码信息Mask指定为16进制0F。
1 Def IO PORT2= Byte, 5, &H0F '
:
10 PORT2= &HFF ' 输出信号5-8为开启。
:
20 M2 = PORT2 ' 输入信号5-8的值代入变量M2。
三、 将PORT3的输入变量,以字符型分配到输入输出信号号码8,
掩码信息Mask指定为16进制0FFF。
1 Def IO PORT3= Word, 8, &H0FFF'
:
10 PORT3= 9 ' 输出信号8和11为开启。
:
20 M3 = PORT3 ' 输入信号8-19的值代入变量M3。
【说明】
(1) 参照此变量的时候,会看到输入信号。 (2) 代入此变量的时候,写在输出信号上。
(3) 无法以此变量参照输出信号。参照输出信号的情况下,请在M_Out变量参照。 (4) 变量名的文字数最大为16个文字。
2)定义码垛(Def Plt)
【指令代码】
Def Plt
【功能】
定义一个码垛矩阵数据,码垛分为3点码垛、4点码垛和圆弧码垛3种类型。
【格式】
Def Plt <码垛号码>,<起点>,<终点A>,<终点B>,
[<对角点>],<个数A>,<个数B>,<码垛模版>
【用语】
<码垛号码> 选择已设定的码垛号码(只能用1~8的常数)。
<起点> 码垛的起点。只能用位置常数或位置变量。
<终点A> 码垛一边的终点。圆弧码垛时为圆弧的通过点。只能用位置常数或位置变量。
<终点B> 码垛另一边的终点。圆弧码垛时为圆弧的终点。只能用位置常数或位置变量。
<对角点> 码垛起点的对角点。圆弧码垛时无意义。
<个数A> 码垛起点终点A 间的工作个数。码垛时,码垛的起点和圆弧的终点间的工件
个数。可以是变量。
<个数B> 码垛的起点和终点B 间的的工件个数。圆弧码垛时无意义。 (必须指定1等)。
可以是变量。
<码垛模版> 记述在被分配格子点,加上号码的码垛模版及姿势的固定/等分配。可以
是变量。
1:Z字型(姿势等分割) 2:同一方向(姿势等分割) 3:圆弧码垛(姿势等分割)
11:Z字型(姿势固定) 12:同一方向(姿势固定) 13:圆弧码垛( 姿势固定)
【相关指令】
Plt
◇◆◇关于码垛的姿势◇◆◇
为了将码垛的格子点姿势设定为在平常是相同的方向,因此,请将指令的自变量的<码垛return> 设定在11~13。使在<起点>指定的姿势相同。
终点B对角点终点B对角点通过点起点终点12761起点11852终点A109431074111852起点终点A同一方向12963Z型【例子】 Z型同一方向圆弧模式 圆弧模式 1 Def Plt 1,P1,P2,P3, ,3,4,1 ' 3点的码垛定义 2 Def Plt 1,P1,P2,P3,P4,3,4,1 ' 4点码垛的定义 【说明】 (1) 位置运算时的精度, 4点码垛比3点码垛3点的精度更上升。 (2) 只有在已执行的程序内有效。在以CallP指令呼叫出来的子程序中,无法使用已定义的码垛情报。使用在子程序的时候,请在子程序里再次定义。 (3) 个数A、B视为非0的正数,若为0或者是负的数的情况下,会发生报警。 (4) 个数A×个数B若超过32767的情况下,执行时发生报警。 (5) 圆弧码垛的情况下,个数B的值并没有意义,但是因为无法省略,所以请设定为0等的值。此外,即使对角点有指定,也没有意义。 (6) 抓手向下的情况下,请使起点、终点A 、终点B 、对角点的ABC 轴的值的符号相同。抓手向下的情况,会变成A=180(或-180)、B=0 、C=180(或-180),3点的A 轴、C轴的符号不一致的情况下, 在途中的位置,会有抓手旋转的情况发生。在这种情况下,请在示教单元的位置编辑画面将符号修正变为相同。+180和-180会成为相同姿势,即使修正符号也不会有问题。 (7) 在码垛模版指定11~13的话,以码垛运算求得的位置变量的姿势数据会被代入<起点>的姿势。指定1~3情况的姿势,会代入将<起点>-<终点>之间等分割的值。 注意将姿势成份(A,B,C)±180度附近的位置数据,作为码垛定义的<起点>、 <终点A,B>、<对角点>的时候,在位置数据的相同姿势成份里有不同符号混合的话, 抓手的旋转会出现预期外的动作。将姿势成份使用在±180度附近的位置数据的情况下, 请先确认第99页的「4.1.2 码垛运算」的<关于以码垛定义位置数据的姿势注意事项>后, 再使用。 注意依据码垛运算(Plt指令)所算出的格子点的构造标志(位置数据的FL1),采用码垛定义的起点值。因此,在码垛定义的各点使用构造标志不一样的位置数据的话,会变成和要求的动作不一样的动作。在码垛定义的起点、终点A、B、对角点,请使用构造标志的值全部相同的位置数据。 此外,关于格子点的多旋转标志(位置数据的FL2)也一样,采用码垛定义的起点值。在码垛定义的各点,使用多旋转标志的不同数据的话,依据在码垛定作经由机器人的位置和插补指令的种类(关节插补、直线插补等),抓手的旋转会出现预期外的动作。在此情况下,使用插补指令的自变量类型,将姿势的绕道/抄近路等设定适当,将码垛调整成所要求的动作。 3)声明数值变量(Def Float/Def Double/Def Inte/Def Long)
【指令代码】
Def Float/Def Double/Def Inte/Def Long
【功能】
声明数值变量。Inte为整数、Long为长精度整数型、Float为单精度实数、Double为双
精度实数。
【格式】
Def Inte <数值变量名> [,<数值变量名>]
Def Long <数值变量名> [,<数值变量名>]
Def Float <数值变量名>[,<数值变量名>]
Def Double <数值变量名>[,<数值变量名>]
【用语】
<数值变量名> 指定变量名,变量名必须是字母开头,可以由数字、数字、“_”等符
号组合成。
【例子】
① 整数型变量的定义
1 Def Inte WORK1W, WORK2 '将WORK1、WORK2视为数值变量名执行声明
2 WORK1=100 '往WORK1的代入100
3 WORK2=10.562 'WORK2的值变成11
4 WORK2=10.12 'WORK2的值变成10
② 长精度整数型变量的定义
1 Def Long WORK3
2 WORK3=12345
③ 单精度型实数的定义
1 Def Float WORK4
2 WORK3=123.468 'WORK4变成123.468000。
④ 双精度型实数的定义
1 Def Double WORK5 '
2 WORK4=100/3 'WORK5变成33.333332061767599。
【说明】
(1) 变量名的文字数最大为16个文字。
(2) 指定复数变量名的情况下,1行里可以记述文字的最大值(含指令240个文字)。
(3) 以Inte 定义的变量会变成整数型。(-32768 ~+32767)
(4) 以Long定义的变量会变成长精度整数型。(-21474838~21474837)
(5) 以Float 定义的变量会变成单精度整型。(± 3.40282347e+38)
(6) 以Double定义的变量会变成双精度型。(± 1.7976931348623157e+308)
4)移动指令(Mov)
【指令代码】
Mov
【功能】
从现在位置到移动目的位置执行关节插补位置移动,执行此指令时,两点间的移动不会
是直线移动,而是会有带弧线的关节插补移动。
【格式】
Mov <移动目的位置> [,<接近距离>][Type<常数1>,<常数2>] [<附加条件>] 【用语】
<移动目的位置> 补插补动作的最终位置。以位置型的变量和常数或关节变量记述。
<接近距离> 指定此值的情况下,实际的移动目的位置会往以TOOL 坐标的Z轴方向(+/-
方向)往指定距离的偏离位置动作。以常数或变量指定。
<常数1> 1/0:绕道/走近路方式动作。初始值为1(绕道)。只有常数。
<常数2> 无效(请记述0)。只有常数。
<附随条件> 可以使用Wth、WthIF。 【例子】
1 Mov P1 ,Type 1,0 '移动到P1,绕道方式。
2 Mov J1
3 Mov (Plt 1,10),100.0 Wth M_Out(17)=1'移动到码垛1的第10个点,同时输出17号
开启。
4 Mov P4+P5,50.0 Type 0,0 WthIf M_In(18)=1,M_Out(20) =1'当18号输入信号开启
时,移动到P4+P5,同时同时输出20号开启。
【说明】
(1) 将起点位置和终点位置的各轴关节角度做均等插补。因此尖端的轨迹无法保证。
(2) 依据Wth、WthIf的并用,可以得到信号输出时序和动作的同步。
(3) 类型的数值常数1为指定姿势的插补方式。
(4) 在关节插补里称的绕道,是指以示教姿势做动作的意思。会有因示教时的姿势而变
成绕道动作的情况。
(5) 所谓走近路是指在起点·终点间的姿势,在动作量少的方向进行姿势的插补。
(6) 绕道/走近路的指定,是指开始位置和目的位置的动作范围,有±180度上的移动
量的意思。
(7) 即使在有指定走近路的情况下,目的位置在动作范围外的时候,也会往返方向绕道 动作。
(8) 在关节插补,类型的数值常数2 没有意义。
(9) 通常执行程序内无法使用。
(10) 在Mov 指令执行时中断,JOG 前进,然后再开启的情况下,会返回到中断的位置
再开始执行Mov 指令。
返回到中断位置插补方法(关节插补/直线插补)可以用RETPATH参数变更。此外,依据此
RETPATH参数的变更,可以不返回到中断位置,而直接往目的位置移动。(请参照第353页数
的「5.10 中断时的JOG前进后的自动回归设定」)。
5)伺服开关指令(Servo)
【指令代码】 Servo
【功能】
控制伺服电源的开启或关闭。
【格式】
Servo < On/Off>
【用语】
< On/Off >,为常量,Servo On 时,为开启伺服电源;Servo On 时,为关闭伺服电
源,
【例子】
1 Servo On ' 伺服开启
2 *L20:If M_Svo<>1GoTo *L20 ' 等待伺服开启
3 Spd M_NSpd
4 Mov P1
5 Servo Off' 关闭开启
【说明】
(1) 将机器人全体作为全轴对象,执行伺服电源的控制。
(2) 有附加轴的情况下,附加轴的伺服电源也会成为对象。
【关连系统状态变量】
M_Svo(1:ON、0:OFF)
6)子程序跳转调用指令(Go Sub…return) 【指令代码】
Go Sub …return 【功能】
调用指定标签处的子程序。 从子程序务必以Return指令返回。 【格式】
GoSub <调用处标签>… return 【用语】
<调用处标签>记述level名。 【例子】
10 GoSub *LBL 11 End : 100 *LBL 101 Mov P1 102 Return ’务必以Return 指令返回。 【说明】
(1) 从子程序,请务必以Return指令返回。以GoTo指令返回的话,机器构造用内存(堆 栈内存)会减少,且会变成连续运行时发生报警的原因。
(2) 从子程序中,可以依据Go Sub再度调用其它的子程序。子程序可以调用的段数大约 为800段。 (3) 调用处以level 指定。调用处的level 不存在的情况下,执行时会发生报警。 7)动作速度设定指令(Ovrd)
【指令代码】
Ovrd
【功能】
机器人动作的速度以1~100%指定。全部程序使用的速度比例。
【格式】
Ovrd <速度比例>
Ovrd <速度比例>[,<上升时> [,<下降时速度比例>]]
【用语】
<速度比例>速度比例以实数指定。初始值为100。
单位:[%](范围:0.01~100.0)也可以用数值运算式记述。设定为0或100以上
的话会发生报警。
<上升时/下降时速度比例> 指定在弧形运动指令(Mva)的上升、下降时的速度比例
值。
【例子】
1 Ovrd 50
2 Mov P1
3 Mvs P2
4 Ovrd M_NOvrd ' 设定初始值
5 Mov P1
6 Ovrd 30,10,10 ' 弧形运动指令的上升、下降时的速度比例值设定为10。
7 Mva P3,3
【说明】
(1) Ovrd指令与插补的种类无关,为有效。
(2) 实际的速度比例如下所示。
・关节插补动作时=(操作面板(T/B)的速度比例设定值) ×(程序速度比例
( Ovrd指令))×(关节速度比例( JOvrd指令))
・直线插补动作时=(操作面板(T/B)的速度比例设定值) ×(程序速度比例
(Oved指令))×(直线指定速度(Spd指令))
(3) 速度比例指令只会使程序速度比例变化。100%为机器人的能加最大值,通常系统
初始值(M_NOvrd)会设定为100%。程序中,在速度比例指令被执行为止,指定速度
比例会采用系统初始值。
(4) 执行一次Ovrd指令的话,下次Ovrd指令会被执行,但是程序End的执行或程序复位
为止会采用指定的速度比例。在End文的执行或程序复位会返回到初始值。
【相关指令】
JOvrd(关节插补用)、Spd(直线插补、圆弧插补用)
【关连系统状态变量】
M_NOvrd(系统的初始值)、M_Ovrd(现在的指定速度)
8)循环语句(While~Wend) 【指令代码】
While~WEnd
【功能】
将While文和WEnd文之间的程序,满足循环(loop)条件时循环执行。
【格式】
While <循环条件>
:
WEnd
【用语】
<循环条件> 数值表达式,当该表达式不为0时,继续执行循环程序,否则跳出循环。
【例子】
数值变值M1的值在-5到+5的范围之间,循环处理,超越范围的情况下,移往WEnd的下一
行控制。
1 While (M1>=-5)And(M1<=5) ' 数值变值M1的值在-5到+5的范围之间,循环处理
2 M1=-(M1+1) ' 把1加到M1上,将符号反转。
3 M_Out(8)=M1 ' 输出M1的值。
4 WEnd ' 返回到While文(单步1)。
5 End ' 程序结束。
【说明】
(1) 循环执行While文和WEnd文之间的程序。
(2) <循环条件>的结果为真(不为0)的期间,控制移到While文的下一行,循环处理。
(3) <循环条件>的结果不为真(为0)的情况下,控制移到WEnd文的下一行。
(4) 从While文和Wend之间以GoTo指令强制的跳转的话,控制构告用内存(堆栈内存)
会减少,而在以连续行的情况下,不知道在何时会发生报警。请使程序的While文条件成立,
脱离循环。
9)循环语句(Select Case~End Select) 【指令代码】
Select Case~End Select
【功能】
遵照条件式的值,执行复数的叙述区块(Statement Block) 的其中一个。
【格式】
Select <条件>
Case <式>
[<处理>]
Break
Case <式>
[<处理>]
Break
:
Default
[<处理>] Break End Select 【用语】
<条件> 记述数值表达式。
<式> 式以下列的形式记述。型则必须和<条件>的型相同。 ・I s <比较运算> <常数> ・<常数>
・<常数> To <常数>
<处理> 用以MELFA-BASICⅤ准备的指令记述(GoTo指令除外) 。 【例子】
1 Select MCNT
2 M1=10 ' 此行不会被执行。 3 Case Is <= 10 ' MCNT <=10 4 Mov P1 5 Break
6 Case 11 'MCNT=11 OR MCNT =12 7 Case 12 8 Mov P2 9 Break
10 Case 13 To 18 ' 13<=MCNT<=18 11 Mov P4 12 Break
13 Default ' 上记以外 14 M_Out(10)=1 15 Break 16 End Select 【说明】
(1) 条件和Case的其中一个一致的话,到Break或Case或Default或End Select为止的处理会被执行。条件和Case的其中一个不一致的话,会执行被记述为Default的区域(Block)。
(2) 在没有Default的情况下,以无处理跳转到End Select的下一行。
(3) Select Case和End Select文必须要相互对应。在Case区域内以Go To指令跳转到Select Case以外的话,会因为控制构造用内存(堆栈内存)减少,而在以连续行的情况下,不知道在何时会发生报警。
(4) 执行没有对应Select Case的End Select文的情况下,执行时会发生报警。 (5) 可以在Select Case中,更加记述Select Case(回路可以到8段)。 (6) 在Case文中可以记述While~Wend和For~Next。
(7) 在<条件>中使用比较运算(<、=、>等)的时候,使用Case Is。 (8) Break可以省略。(Case文里处理会遵照为(1))
一、
步骤 掌握工业机器人点示教方法。
操作方法 控制器(O/P) T/B的画面 将控制器的[MODE]开关置于“MANUAL”。 示教单元(T/B) 按压示教单元(T/B)背面的ENABLE开关,将T/B操作置于有效。 如果发生了报警,可以通过按压示教单元左下方的[RESET]进行解除。 通过在<标题画面>显示的状态下按压[EXE]显示<菜单画面>。 1.管理·编辑(可选择的项目)处光标闪烁。 操作方法说明 1 上:无效 下:有效(指示灯亮) 2 3 如果按压[1]键,将显示<管理·编辑画面>。 显示已登录的程序一览表。 4 按压[↓]键、[↑]键,将光标移动至要示教的程序名上。 再按压[EXE]显示程序内容 5 6 例如打算对P10进行示教时。按压[↓]键、[↑]键,将光标移动至写有P10的步处。 7 伺服ON 7、材料准备; 表4-3 领料单 项目名称 领料人 序号 名称 规格/型号 工作小组 领料日期 单位 申领数量 实发数量 备注 制单/领料: 审核: 批准: 发料员: 10、任务设计与实施 ① 设计控制原理图 根据任务要求,PLC与工业机器人结构、组成与原理,设计如图4-8所示的控制原理图。 电源 输入 机器人控制器 电机与编码器线 机器人本体 IO控制信号 PLC 执行器件与传感器 图4-8控制原理方框图 ② IO控制原理图,如图4-9: LNDC24+DC24-DC24-DC24+升降台A原点升降台A上限升降台A下限升降台B原点升降台B上限升降台B下限推料气缸A前限推料气缸B前限启动按钮停止按钮复位按钮联机按钮推料气缸B前限推料气缸B后限出料物料检测加盖定位气缸后限操作权有效伺服OFF程序停止异常发生伺服ON程序运行中原点位置瓶搬运完成盒搬运完成签搬运完成搬运中前单元就绪信号输入真空开关A真空开关B后单元就绪信号输入Pyv1COM1升降台A脉冲升降台A方向升降台B脉冲升降台B方向推料气缸A电磁阀推料气缸B电磁阀定位气缸电磁阀启动指示灯停止指示灯复位指示灯程序停止申请操作权伺服ON程序开始出错复位伺服OFF程序复位回原点开始搬运瓶位置盖位置签位置颜色区别本单元就绪输出1本单元就绪输出2yv2yv3HL71HL72HL73P 图4-9 I/O控制原理图 ③ 根据原理图完成六轴机器人单元的安装与接线。 ④ 六轴机器人单元PLC程序设计与编写: (2)PCL主程序。 (1)编写流程图,如图4-10所示: 图4-10主程序流程图 1) 根据PLC主程序流程图,编写PLC主程序如下: 通 信 处 理 启 动 控 制 停止控制 复位控制 (3)机器人启动子程序。 (1) 编写流程图,如图4-11所示: 图4-11机器人启动程序流程图 (2)根据机器人启动子程序流程图,编写机器人启动子程序如下: 5、PLC程序编写完成后,设计机器人程序; 1)规划机器人运行轨迹并绘制机器人运行轨迹图。 (1)瓶搬运运动轨迹如图4-12: 图4-12 (2)盒盖搬运运动轨迹如图4-13: 图4-13 (3)标签搬运运动轨迹如图4-14: 2)规划机器人运行轨迹中各P点的用途,如下表: 表4-4 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 点序号 P0 P1 P2 P3 P4 P5 P6 P7 P8 P10 P20 P30 P40 P50 P51 P52 P53 P54 P55 P56 注释 取瓶点 取瓶借助点1 取瓶借助点2 取盖借助点 取瓶借助点3 取签借助点1 取签借助点2 取签借助点3 取签借助点4 放瓶1号位置 放瓶2号位置 放瓶3号位置 放瓶4号位置 1号托盘起点坐标 1号托盘终点1坐标 1号托盘终点2坐标 2号托盘起点坐标 2号托盘终点1坐标 2号托盘终点2坐标 3号托盘起点坐标 图4-14 21 22 23 24 25 26 27 28 29 30 31 32 33 34 P57 P58 P60 P70 P80 P100 P101 P102 P103 P104 P200 P201 P202 P203 3号托盘终点1坐标 3号托盘终点2坐标 1号托盘运行坐标 2号托盘运行坐标 3号托盘运行坐标 P0正上方位置 P10正上方位置 P20正上方位置 P30正上方位置 P40正上方位置 取盖位置 P200正上方位置 P203正上方位置 放盖位置 3)根据控制功能,设计编写机器人程序及流程。 (1)机器人主程序的设计与编写。 * 编写机器人主程序流程图,如图4-15: 图4-15 * 机器人主程序设计如下: 1 '-----------------------定义I/O,输入点------------------------- 2 Def Io in0=Bit,0 '程序停止 3 Def Io in1=Bit,1 '操作权申请 4 Def Io in2=Bit,2 '伺服ON 5 Def Io in3=Bit,3 '程序开始 6 Def Io in4=Bit,4 '异常复位 7 Def Io in5=Bit,5 '伺服OFF 8 Def Io in6=Bit,6 '程序复位 9 Def Io in7=Bit,7 '回原点 10 Def Io in8=Bit,8 '开始搬运 11 Def Io in9=Bit,9 '瓶位置 12 Def Io in10=Bit,10 '盖位置 13 Def Io in11=Bit,11 '签位置 14 Def Io in12=Bit,12 '标签颜色 15 Def Io in13=Bit,13 '单联机切换 16 Def Io in14=Bit,14 '预留14 17 Def Io in15=Bit,15 '预留15 18 '---------------输出点------------------------------------------ 19 Def Io out0=Bit,0 '操作权有效 20 Def Io out1=Bit,1 '伺服OFF 21 Def Io out2=Bit,2 '程序停止 22 Def Io out3=Bit,3 '异常发生 23 Def Io out4=Bit,4 '伺服ON 24 Def Io out5=Bit,5 '程序运行中 25 Def Io out6=Bit,6 '到原点位 26 Def Io out7=Bit,7 '瓶搬运完成 27 Def Io out8=Bit,8 '盖搬运完成 28 Def Io out9=Bit,9 '签搬运完成 29 Def Io out10=Bit,10 '运行中 30 Def Io out11=Bit,11 '预留11 31 Def Io out12=Bit,12 '预留12 32 Def Io out13=Bit,13 '手抓 33 Def Io out14=Bit,14 '吸盘A 34 Def Io out15=Bit,15 '吸盘B 35 '-------------------定义码垛变量------------------- 36 Def Inte Cmd1 37 Def Inte Cmd2 38 Def Inte M1 39 Def Inte M2 40 Def Inte M3 41 Def Inte M4 42 Def Jnt Safe 43 Def Plt 1,P50,P51,P52,,6,2,2 44 Def Plt 2,P53,P54,P55,,6,2,2 45 Def Plt 3,P56,P57,P58,,4,1,2 46 '-----------------定义完成,运动程序开始-------------------------- 47 Servo On 48 M1%=1 49 M2%=1 50 M3%=1 51 M4%=1 52 GoSub *MoveOrg '原点子程序 53 While 1 54 GoSub *GetCmd2 55 Select Cmd2% '放瓶位置选择 56 Case 1 57 GoSub *GetAero1 '放瓶位置1# 58 Break 59 Case 2 60 GoSub *GetAero2 '放瓶位置2# 61 Break 62 Case 3 63 GoSub *GetAero3 '放瓶位置3# Break 65 Case 4 66 GoSub *GetAero4 '放瓶位置4# 67 Default 68 Break 69 End Select 70 If in10=1 Then GoSub *Movebox '71 If in11=1 And in12=0 Then GoSub *LOOP1 '72 If in11=1 And in12=1 Then GoSub *LOOP2 '73 WEnd 74 End (2)机器人回原点子程序MoveOrg的设计与编写。 * 原点子程序MoveOrg流程图,如下图4-16: 盖盒程序 白色贴标程序 黑色贴标程序 图4-16 *机器原点子程序MoveOrg设计如下: 133 '----------------原点子程序----------- 134 *MoveOrg 135 Ovrd 10 136 out10=1 137 J1=J_Curr 138 J1.J2=Safe.J2 139 J1.J3=Safe.J3 140 J1.J4=Safe.J4 141 J1.J5=Safe.J5 142 Mov J1 143 J1=Safe 144 Mov J1 145 out7=0 146 out8=0 147 out9=0 148 out10=0 149 out11=0 150 out12=0 151 out13=0 152 out14=0 153 out15=0 154 out6=1 155 Return (3)机器人放瓶位置选择Get Cmd2子程序的设计与编写。 * 放瓶位置选择Get Cmd2子程序流程图,如下图4-17: 图4-17 * 放瓶位置选择Get Cmd2子程序编写如下: 182 '-------放瓶位置选择GETCMD子程序2----- 183 *GetCmd2 184 Cmd2%=0 185 If M1%=1 And in9=1 Then Cmd2%=1 '1#位置 186 If M1%=2 And in9=1 Then Cmd2%=2 '2#位置 187 If M1%=3 And in9=1 Then Cmd2%=3 '3#位置 188 If M1%=4 And in9=1 Then Cmd2%=4 '4#位置 1 Return (4)机器人位置1#放瓶 Get Aero1子程序的设计与编写。 * 位置1#放瓶 Get Aero1子程序流程图,如下图4-18: 图4-18 * 位置1#放瓶 Get Aero1子程序编写如下: 191 '---------位置1#放瓶------------- 192 *GetAero1 193 Ovrd 50 194 out6=0 195 out10=1 196 Mov p2 197 Mov p100 198 Mvs P0 ' 取料点 199 Dly 0.5 200 out13=1 201 Mvs p100 202 Mov P1 203 Mov p4 204 Mvs p101 205 Mvs p10 206 Dly 0.5 207 out13=0 208 Mvs p101 209 M1%=M1%+1 210 out7=1 211 Dly 0.5 212 out7=0 213 If in9=0 Then GoSub *MoveOrg 214 Return (5)机器人盖盒 Movebox子程序的设计与编写。 * 盖盒 Movebox子程序流程图,如下图4-19: 图4-19 * 盖盒 Movebox子程序编写如下: 157 '----------------盖盒程序----------- 158 *Movebox 159 Ovrd 10 160 out6=0 161 out10=1 162 Mov P3 163 Mov P201 1 Ovrd 10 165 Mvs P200 166 out15=1 167 out14=1 168 Dly 0.5 169 Mvs P201 170 Mov P202 171 Mvs P203 172 out15=0 173 out14=0 174 Dly 0.5 175 Mvs P202 176 GoSub *MoveOrg 177 out8=1 178 Dly 0.5 179 out8=0 180 Return (6)机器人白色标贴 LOOP1子程序的设计与编写。 * 白色标贴 LOOP1子程序流程图,如下图4-20: 图4-20 * 盖盒 Movebox子程序编写如下: 75 '---------白色贴标------------- 76 *LOOP1 77 Ovrd 50 78 out6=0 79 out10=1 80 Mov P7 81 P60=Plt 1,M2% 82 Mov P60 83 Dly 0.5 84 out14=1 85 Mov P7 86 Mov P5 87 Mov P6 88 P80=Plt 3,M4% Mov P80 90 Dly 0.5 91 out14=0 92 Mov P6 93 Mov P8 '放签位置去取签位置过度 94 M2%=M2%+1 95 M4%=M4%+1 96 If M2%=13 Then M2%=1 97 If M4%=5 Then M4%=1 98 If M4%=1 Then GoSub *MoveOrg 99 out9=1 100 Dly 0.5 101 out9=0 102 Return 11、结束语 该系统是以六轴机器人为核心的单元,该单元在对物料瓶进行包装、贴标的过程中不但体现了六轴工业机器人在系统中的基本应用,还应用了六轴工业机器人的码垛、装配、搬运等常用功能。在实训过程中可能会遇到各种不同情况的问题,如机器人的故障处理等,需要根据具体情况,参考手册进行自主分析和解决,此实训内容仅作入门和参考,学员可随着学习的深入进行拓展延伸,发掘更多的知识点,理解更广的应用范围,为今后从事机器人行业打下坚实的基础。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务