工业机器人入门实用教程 (ABB机器人) 主讲人:王老师 www.irobot-edu.com edubot_zhang@126.com
第七章 第01章 ABB机器人认知 第02章 机器人手动操纵 第03章 机器人零点校准 第04章 机器人坐标系建立 第05章 机器人示教 第02章 机器人手动操纵 第03章 机器人零点校准 第04章 机器人坐标系建立 第05章 机器人示教 第06章 机器人输入输出 第07章 机器人基本指令 第08章 编程实例 第09章 异常事件 第10章 RobotStudio离线仿真 第七章 edubot_zhang@126.com
第7章 机器人基本指令 教学内容: 学习目标: 7.1 常用数据类型 7.2 编程基础知识 1、了解ABB机器人常用数据类型 第7章 机器人基本指令 教学内容: 7.1 常用数据类型 7.2 编程基础知识 学习目标: 1、了解ABB机器人常用数据类型 2、掌握ABB机器人基本运行指令 3、掌握ABB机器人掌握功能函数使用 4、掌握ABB机器人输入输出指令 5、掌握ABB机器人流程指令 6、掌握ABB机器人计时指令 7、掌握ABB机器人中断指令 8、掌握ABB机器人其他指令 edubot_zhang@126.com
01 7.1 常用数据类型 更多免费资源
02 7.1 常用数据类型 ABB机器人程序常用数据类型有3类:变量VAR、可变量PRES、常量CONST。 1、变量VAR 变量型数据在程序执行的过程中和停止时,会保持当前的值。但如果程序指针被移到主程序后,数据就会丢失。 2、可变量PRES 可变量PRES最大的特点是:无论程序的指针如何,都会保持最后赋予的值。在机器人执行的RAPID程序中也可以对可变量存储类型数据进行赋值操作,在程序执行以后,赋值的结果会一直保持,直到对其进行重新赋值。 3、常量CONST 常量CONST的特点是在定义时已赋予了数值,且不能在程序中进行修改,除了手动修改。
03 7.2 编程基础知识:基本运行指令 1、MoveJ:关节运动,机器人用最快捷的方式运动至目标点。此时机器人运动状态不完全可控,但运动路径保持唯一。常用于机器人在空间大范围移动。 MoveJ P2,v100,fine,tool1\wobj:=wobj0; 2、MoveL:线性运动,机器人以线性移动方式运动至目标点。当前点与目标点二点决定一条直线,机器人运动状态可控制,且运动路径唯一,但可能出现奇点。常用于机器人在工作状态下移动。 MoveL P3,v500,fine,tool1\wobj:=wobj0;
04 7.2 编程基础知识:基本运行指令 MoveL P1,v200,z10,tool1\w obj:=wobj0; MoveL P2,v100,fine,tool1\ wobj:=wobj0; MoveJ P3,v500,fine,tool1\wobj:=wobj0;
05 7.2 编程基础知识:基本运行指令 3、MoveC:圆周运动,机器人通过中间点以圆弧移动方式运动至目标点。当前点、中间点与目标点三点决定一段圆弧,机器人运动状态可控制,运动路径保持唯一。常用于机器人在工作状态下移动。 MoveL 起点,v200,z10,tool1\wobj:=wobj0; MoveC 圆弧上点,终点,v500,fine,tool1\wobj:=wobj0;
06 7.2 编程基础知识:基本运行指令 MoveAbsJ:机器人以单轴运行的方式运动至目标点。此运动方式绝对不存在奇点,且运动状态完全不可控制。要避免在正常生产中使用此命令。指令中TCP与Wobj只与运动速度有关,与运动位置无关。常用于检查机器人零点位置。 MoveAbsJ *,v100, fine,tool0\wobj:=wobj0; 在编辑状态下,单击【*】,单击【调试】→【查看值】,将rax_1至rax_6值输入0,单击【确定】,运行该指令,则机器人回到机械零点位置。
07 7.2 编程基础知识:基本运行指令
08 7.2 编程基础知识:基本运行指令 将对应值修改为0
09 7.2 编程基础知识:功能函数 机器人常用的功能函数有工件坐标偏移函数offs()、工具偏移函数Reltool()和读取机器人当前位置数据函数CRobT()等。 1、工件坐标偏移函数offs() 功能函数offs()坐标方向与机器人工件坐标系方向一致。 程序: MoveL offs (P1,100,50,0),v100,z100, tool1; 注释: P1为开始位置; 100表示从开始位置沿X轴方向偏移100mm; 50表示从开始位置沿Y轴方向偏移50mm; 0表示从开始位置沿Z轴方向偏移0mm。
Movel RelTool (P1,100,50,0\Rx:=15\Ry:=45\Rz:=30 ),v100,z100,tool1; 7.2 编程基础知识:功能函数 2、工件坐标偏移函数Reltool() 功能函数RelTool()坐标方向与机器人工具(Tool)坐标系方向一致。 程序: Movel RelTool (P1,100,50,0\Rx:=15\Ry:=45\Rz:=30 ),v100,z100,tool1; 注释: P1为开始位置; 100表示从开始位置沿X轴方向偏移100mm; 50表示从开始位置沿Y轴方向偏移50mm; 0表示从开始位置沿Z轴方向没有偏移; 15表示从开始位置绕X轴方向偏差角度为15度; 45表示从开始位置绕Y轴方向偏差角度为45度; 30表示从开始位置绕Z轴方向偏差角度为30度。 更多免费资源
11 7.2 编程基础知识:功能函数 2、读取当前位置CRobT()函数() CRobT()根据提供的工具工件坐标系来读取当前位置参数功能。 读取当前机器人TCP位置数据。 PERS robtarget p10; p10:= CRobT(\Tool:= tool1\WObj := wobj0); 读取当前机器人TCP位置数据,指定工具数据为tool1,工件坐标数据为wobj0(若不指定,则默认工具数据为tool0,默认工件坐标系数据为wobj0),并将读取的目标点数据赋值给p10。
12 7.2 编程基础知识:输入输出指令 1、di—机器人数字输入信号 输入信号通常用于判断外部设备给机器人发送的信号。外围设备满足某个条件才可以让机器人继续运行。 WaitDI:等待数字输入信号指令。 WaitDI di1,1; 当di1等于1时,机器人继续执行后面执行,否则一直等待。 2、do—机器人数字输出信号 输出信号有两种状态:1为接通;0为断开。
13 7.2 编程基础知识:输入输出指令 Set do1; 将一个do1的信号赋予值为1; Reset do1; PulseDO\PLength:=2,DO1; 输出2秒时间脉冲信号(DO1)。
14 7.2 编程基础知识:流程指令 IF:条件指令 满足不同条件,执行对应程序 IF reg> 5 THEN Set do1; ELSE Reset do1; ENDIF 如果reg> 5条件满足,则执行Set Do1指令,否则 Reset do1;
15 7.2 编程基础知识:流程指令 FOR:循环指令 根据指定的次数,重复执行对应的程序。 FOR i FROM 1 TO 10 DO Routinel; ENDFOR 重复执行10次Routinel里的程序。 WHILE:判断指令 如果条件满足,则重复执行对应程序 WHILE Reg1 <reg2 Do Reg1 := Reg1+ 1; ENDWHILE 如果变量Reg1<reg2条件成立,则一直重复执行,Reg1加1,直到条件不满足为止。
16 7.2 编程基础知识:流程指令 TEST:当前指令通过判断相应数据变量与其对应的值,控制需要执行的相应指令。 TEST count CASE 1: Reg1 := Reg1+ 1; CASE 2: Reg1 := Reg1+ 2; DEFAULT: Reg1 := Reg1+ 3; ENDTEST 根据count值执行相应case,没有对应值则执行default。
17 7.2 编程基础知识:计时指令 计时指令主要有:ClkReset、ClkStart、ClkStop三种指令。由于这些指令不可以独立使用。 ClkReset clock1; 计时器清零 ClkStart clock1; 计时器开始计时 RunCycle; 程序名 ClkStop clock1; 计时器停止计时 读取计时器内容 CycleTime:= ClkRead(clock1) TPWrite“RunCycle Time :”\Num:= CycleTime; 打印运行时间 限制: 机器人时钟计时超过4,294,967秒(即49天17小时2分47秒),机器人将出错。
18 7.2 编程基础知识:中断指令 中断指令主要有:IDelete、CONNECT、ISignalDI、Iwatch、ISleep四种基本指令。由于该指令不可以独立使用 VARintnum intno1; 定义中断数据intno1。 IDelete intno1; 取消当前中断符intno1的连接,预防误触发。 CONNECT intno1 WITH tTrap; 将中断符与中断程序(tTrap)连接。 ISignalDI di1,1, intno1; 当输入信号di1为1时,触发该中断程序。 IWatch intno1; 激活中断监控。系统启动后默认为激活状态,只要中断条件满足,即会触发中断。 ISleep intno1; 使中断监控失效,在失效期间,该中断程序不会被触发。
19 7.2 编程基础知识:其他指令 ProcCall: 调用一个例行程序指令; Return: 在不适用参数变量时,机器人运行至此指令时,无论是主程序main、标准例行程序PROC、中断程序TRAP都代表当前例行程序结束; Exit: 停止程序执行并禁止在运行处开始; WaitTime: 等待时间,单位s; WaitRob\InPos: 等待机器人执行到当前令。 更多免费资源
THANK YOU edubot_zhang@126.com