




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ABB机器人编程基础工业机器人离线仿真01工具坐标系设定02工件坐标系设定03RAPID程序基本架构04常用指令学习内容05I/O通信与配置06I/O信号查看及仿真工具坐标系设定1学习重点学习难点1.四点法标定工具坐标1.四点法标定工具坐标的步骤2.仿真环境下创建工具坐标工具坐标系数据描述安装在机器人第六轴上的工具坐标TCP、质量、重心等参数数据影响机器人的控制算法(例如计算加速度)、速度和加速度监控、力矩监控、碰撞监控、能量监控等所有机器人在手腕处都有一个预定义的工具坐标系,该坐标系被称为tool0。工具数据tooldata的定义工具坐标系数据默认工具(tool0)的工具中心点位于机器人安装法兰的中心,执行程序时,机器人将TCP移至编程位置一般不同的机器人应用配置不同的工具工具数据tooldata的定义工具坐标系数据N(3≤N≤9)点法机器人的TCP通过N种不同的姿态同参考点接触,得出多组解,通过计算得出当前TCP与机器人安装法兰中心点(Tool0)相应位置,其坐标系方向与Tool0一致。TCP和Z法在N点法基础上,增加Z点与参考点的连线为坐标系Z轴的方向,改变了工具坐标系的Z方向。TCP和Z,X法在N点法基础上,增加X点与参考点的连线为坐标系X轴的方向,Z点与参考点的连线为坐标系Z轴的方向,改变了工具坐标系的X和Z方向。TCP的几种设定方法工具坐标系数据如果机器人是用于搬运,就需要设置有效载荷loaddata,因为对于搬运机器人,手臂承受的重量是不断变化的,所以不仅要正确设定夹具的质量和重心数据tooldata,还要设置搬运对象的质量和重心数据loaddata。有效载荷数据loaddata就记录了搬运对象的质量、重心的数据。如果机器人不用于搬运,则loaddata设置就是默认的load0。有效载荷loaddata的设定工具坐标系数据1.在手动操纵窗口中选择“有效载荷”2单击“新建…”有效载荷loaddata的设定工具坐标系数据3.弹出有效载荷数据属性界面,对属性进行设定,单击“初始值”4.对有效载荷的数据根据实际情况进行设定有效载荷loaddata的设定工具坐标系数据有效荷载参数含义:名称参数单位有效载荷质量load.masskg有效载荷重心load.cog.xload.cog.yload.cog.zmm力矩轴方向load.aom.q1load.aom.q2load.aom.q3load.aom.q4
有效载荷的转动惯量ixiyizkg·m2有效载荷loaddata的设定工具坐标系数据5.有效载荷数据设置完成后,在如图所示窗口中单击“确定”6.确定后界面返回到数据声明界面,然后单击“确定”,完成有效载荷的新建有效载荷loaddata的设定首先在机器人工作范围内找一个非常精确的固定点作为参考点;然后在工具上确定一个参考点(最好是工具的中心点);用手动操纵机器人的方法,去移动工具上的参考点,以四种以上不同的机器人姿态尽可能与固定点刚好碰上。前三个点的姿态相差尽量大些,这样有利于TCP精度的提高。第四点是用工具的参考点垂直于固定点;机器人通过这四个位置点的位置数据计算求得TCP的数据,然后TCP的数据就保存在tooldata这个程序数据中被程序进行调用。工具坐标系数据建立工具坐标系的操作步骤工具坐标系数据1.主界面中单击“程序数据”2.单击“tooldata”数据类型建立工具坐标系的具体操作步骤工具坐标系数据3.单击“新建…”,新建工具坐标系4.对工具数据属性进行设定后,如更改名称,,然后单击“确定”建立工具坐标系的具体操作步骤工具坐标系数据5.选择新建的“tool1”,单击“编辑”,然后单击“定义…”,进入下一步6.在定义方法中选择“TCP默认方向”,采用4点法来设定TCP建立工具坐标系的具体操作步骤工具坐标系数据7.手动操作机器人,以任意姿态使工具参考点(即尖锥尖端)靠近并接触固定参考点后,选中“点1”,然后单击“修改位置”保存当前位置。建立工具坐标系的具体操作步骤工具坐标系数据8.继续手动操作机器人,以任意姿态使工具参考点(即尖锥尖端)靠近并接触固定参考点后,选中“点2”,然后单击“修改位置”保存当前位置。建立工具坐标系的具体操作步骤工具坐标系数据9.继续手动操作机器人,以任意姿态使工具参考点(即尖锥尖端)靠近并接触固定参考点后,选中“点3”,然后单击“修改位置”保存当前位置。建立工具坐标系的具体操作步骤工具坐标系数据10.继续手动操作机器人,以任意姿态使工具参考点(即尖锥尖端)靠近并接触固定参考点后,选中“点4”,然后单击“修改位置”保存当前位置。建立工具坐标系的具体操作步骤工具坐标系数据11.4个点都记录完成后,点击确定,机器人自动计算TCP的标定误差,当平均误差在0.5mm以内时,才可单击“确定”进入下一步,否则需要重新标定TCP。建立工具坐标系的具体操作步骤工具坐标系数据12.单击“tool1”,接着单击【编辑】,然后【更改值…】进入下一步。建立工具坐标系的具体操作步骤13.向下翻页修改“mass”,其含义为对应工具的质量,单位为kg工具坐标系数据14.修改工具重心参数,然后单击“确定”返回到工具坐标系界面建立工具坐标系的具体操作步骤测试工具坐标系准确性1.在手动操作界面,单击“动作模式”,进入下一步2.在动作模式中选择“重定位”,然后单击“确定”返回测试工具坐标系准确性3.回到手动操作界面,单击“坐标系”,进入下一步4.在坐标系选项中单击“工具”,然后单击“确定”返回。测试工具坐标系准确性5.回到手动操作界面,单击“工具坐标”,进入下一步6.在工具坐标选项中单击tool1,点击“确定”返回测试工具坐标系准确性7.按下使能器,用手拨动机器人手动操作摇杆,检测机器人是否围绕TCP点运动。如果机器人围绕TCP点运动,则TCP标定成功,如果没有围绕TCP点运动,则需要重新进行标定。虚拟环境下创建工具坐标系1.在【基本】选项下,展开【其他】,点击【创建工具数据】虚拟环境下创建工具坐标系2.在页面下修改工具坐标数据,修改完成后点击创建。工具坐标系名称TCP点坐标值、xyz轴方向重量、重心及转动惯量数据虚拟环境下创建工具坐标系3.如果需要修改工具坐标系,在【路径和目标点】下,依次展开控制器、工具数据,tool1,点击【修改Tooldata】进行修改注意:通过这种方法创建的工具坐标数据只存在于工作站中。通过示教器查看工具坐标数据是没有该工具数据的。需要进行同步。工件坐标系设定2学习重点学习难点1.三点法创建工件坐标1.创建工件坐标系的优点2.仿真环境下创建工件坐标工件坐标系数据工件坐标对应工件,它定义工件相对于大地坐标的位置。机器人可以有若干工件坐标系,或者表示不同工件,或者表示同一工件在不同位置的若干副本。工件坐标系数据优点:重新定位工作站中的工件时,只需更改工件坐标的位置,所有路径将即刻随之更新。允许操作以外部轴或传送导轨移动的工件,因为整个工件可连同其路径一起移动。对机器人进行编程时就是在工件坐标中创建目标和路径,这带来很多优点:手动操纵机器人,在工件表面或边缘角的位置找到一点X1,作为坐标系的原点手动操纵机器人,在工件表面或边缘角的位置找到一点X2,X1X2确定工件坐标系的X轴正方向。X1和X2距离越远,定义的坐标系的轴向越精准。手动操纵机器人,在XY平面上且Y轴为正的方向上找一个点Y1,确定坐标系的Y轴正方向工件坐标系数据建立工件坐标系的原理工件坐标系数据1.主界面中单击“程序数据”2.单击“wobjdata”数据类型建立工件坐标系的具体操作步骤工件坐标系数据3.单击“新建…”,新建工件坐标系4.对工件数据属性进行设定后,如更改名称,,然后单击“确定”建立工件坐标系的具体操作步骤工件坐标系数据5.选择新建的“wobj1”,单击“编辑”,然后单击“定义…”,进入下一步6.显示工件坐标定义界面,将用户方法设定为“3点”建立工件坐标系的具体操作步骤工件坐标系数据7.手动操作机器人的工具参考点靠近定义工件坐标的X1点,选中界面中“用户点X1”,单击“修改位置”,将X1点记录下来。建立工件坐标系的具体操作步骤工件坐标系数据8.手动操作机器人的工具参考点靠近定义工件坐标的X2点,选中界面中“用户点X2”,单击“修改位置”,将X2点记录下来。建立工件坐标系的具体操作步骤工件坐标系数据9.手动操作机器人的工具参考点靠近定义工件坐标的Y1点,选中界面中“用户点Y1”,单击“修改位置”,将Y1点记录下来。建立工件坐标系的具体操作步骤工件坐标系数据10.三点位置修改完成,在窗口中单击“确定”11.对自动生成的工件坐标数据进行确认后,单击“确定”建立工件坐标系的具体操作步骤测试工件坐标系准确性1.在手动操作界面,单击“动作模式”,进入下一步2.在动作模式中选择“线性”,然后单击“确定”返回测试工件坐标系准确性3.回到手动操作界面,单击“坐标系”,进入下一步4.在坐标系选项中单击“工件坐标”,然后单击“确定”返回。测试工件坐标系准确性5.回到手动操作界面,单击“工件坐标”,进入下一步6.在工件坐标选项中单击wobj1,点击“确定”返回测试工件坐标系准确性7.按下使能器,用手拨动机器人手动操作摇杆,观察在工件坐标系下移动的方向是否与定义的工件坐标系X、Y轴方向一致RAPID程序基本架构3学习重点学习难点1.RAPID程序基本架构1.掌握RAPID程序模块化编程操作要点2.新建程序模块3.新建例行程序RAPID程序架构RAPID是一种英文编程语言,所包含的指令可以移动机器人、设置输出、读取输入,还能实现决策、重复其它指令、构造程序与系统操作员交流等功能。应用程序就是使用RAPID编程语言的特定词汇和语法编写而成的。RAPID程序架构RAPID程序由程序模块与系统模块组成。可以根据不同的用途创建多个程序模块。每一个程序模块包含了程序数据、例行程序、中断程序和功能四种对象,但不一定在一个模块中都有这四种对象,程序模块之间的数据、例行程序、中断程序和功能是可以互相调用的。在RAPID程序中,只有一个主程序main,并且存在于任意一个程序模块中。并且是作为整个RAPID程序执行的起点。RAPID程序架构RAPID程序程序模块1程序模块2程序模块3系统模块程序数据程序数据……程序数据主程序main例行程序……例行程序例行程序中断程序……中断程序中断程序功能……功能功能
……
查看RAPID程序的操作1.主界面中单击“程序编辑器”2.直接进入到主程序中,单击“例行程序”,查看例行程序列表3.程序模块中包含的所有例行程序都被显示出来4.单击“后退”,点击“模块”,可以查看模块列表查看RAPID程序的操作5.查看模块列表,有系统模块和程序模块,程序模块可以有多个。6.单击“后退”,点击“任务与程序”,可以查看当前任务查看RAPID程序的操作1.点击任务与程序2.点击【文件】,点击【新建程序】新建程序任务3.弹出当前任务下已有程序,是否进行保存。如果需要保存点击【保存】4.默认进入主程序main编辑页面新建程序任务5.点击【模块】,根据需要可以新建程序模块。6.点击【新建模块】新建程序任务7.弹出对话框,点击【是】,继续下一步8.修改模块名称和类型后,点击【确定】。Program为程序模块,system为系统模块。新建程序任务9.任一程序模块中都可以新建例行程序。选择module1,点击【显示模块】10.点击【例行程序】新建程序任务11.该模块下没有例行程序,点击【文件】,点击【新建例行程序】12.修改例行程序名称、类型及所属模块后,点击【确定】,需要注意程序名称不能重复。新建程序任务13.选择需要编辑的例行程序,点击【显示例行程序】进入编程调试页面14.通过添加指令、编辑、调试功能编辑调试例行程序新建程序任务常用指令4学习重点学习难点1.运动指令1.MoveL、MoveJ、MoveAbsJ指令的区别2.例行程序调用指令3.循环指令4.偏移量函数2.转弯区数据对运动轨迹的影响3.循环指令的用法及执行过程运动指令①机器人以最快捷的方式运动至目标点。②机器人运动状态不完全可控。③运动路径保持唯一。④适合机器人大范围运动时使用,不容易在运动过程中出现关节轴进入机械死点的问题。MoveJ指令MoveJ指令①机器人以线性方式运动至目标点,当前点与目标点两点决定一条直线。②机器人运动状态可控。③运动路径保持唯一,可能出现死点。④常用于机器人在工作状态移动。运动指令①机器人通过中心点以圆弧移动方式运动至目标点。②当前点.中间点与目标点三点决定一断圆弧,机器人运动状态可控。③运动路径保持唯一。④常用于机器人在工作状态移动。⑤限制:不可能通过一个MoveC指令完成一个圆。MoveC指令MoveAbsJ指令①机器人以单轴运行的方式运动至目标点。②绝对不存在死点,运动状态完全不可控。③避免在正常生产中使用此指令。④常用于检查机器人零点位置指令参数For指令当一个或多个指令重复多次时,使用FOR。语法:FOR<循环判断变量>FROM<起始值>TO<终止值>
[步进值]DO
<待执行指令>ENDFOR示例:FORiFROM1TO10DO
routine1;ENDFOR程序执行过程:1.第一次执行时,循环判断变量的值等于起始值,执行FOR里面指令,执行完以后循环判断变量的值自动加上步长值;2.程序指针跳去FOR指令,判断循环判断变量的值是否在起始值和终止值之间,如果条件成立则重复执行FOR里面指令,循环判断变量自动加上步长值;3.再一次判断循环判断变量,直到当判断出循环判断变量的值不在起始值和结束值之间时,程序指针跳出ENDFOR,继续往下执行。While指令程序执行:1.评估条件表达式。如果表达式评估为TRUE值,则执行WHILE块中的指令。2.再次评估条件表达式,如果该评估结果为TRUE,则再次执行WHILE块中的指令。3.重复判断,直至表达式评估结果成为FALSE,跳出While循环。示例:WHILEa<bDOa:=a+1;ENDWHILE只要a<b,则重复WHILE块中的指令。只要给定条件表达式评估为TRUE值,当重复一些指令时,使用WHILE。语法:WHILE<条件表达式>DO
<待执行指令>ENDWHILEOffs偏移量函数在机器人的工件坐标系中添加一个偏移量,使用Offs函数语法:Offs(Point,XOffset,YOffset,ZOffset)含义:以选定目标点为基准,沿着选定工件坐标系的X、Y、Z轴方向偏移一定的距离示例:MoveLOffs(p2,0,0,10),v1000,z50,tool1;将机器人TCP移动到以p2为基准点,沿着wobj0的Z轴正方向偏移10mm的位置RelTool偏移量函数在机器人的工具坐标系中添加一个偏移量,使用RelTool函数语法:RelTool(Point,Dx,Dy,Dz[\Rx][\Ry][\Rz])含义:以选定目标点为基准,沿着选定工具坐标系的X、Y、Z轴方向偏移一定的距离及旋转一定角度示例:MoveLRelTool(p1,0,0,100),v100,fine,tool1;将j机器人TCP移动到p1为基准点,沿工具tool1的Z轴正方向偏移100mm的位置。编程示例已知5个相同半径的圆等间隔排列,编写程序实现机器人沿着5个圆轨迹运动。要求:示教第一个圆的圆心目标点为p10,使用For循环及偏移函数offs完成程序编写C2C3C4p1060ptptptptC1编程示例假设已知圆心的目标点数据pt,可以通过Offs函数计算出圆上4个象限点C1、C2、C3、C4的目标点数据。可以新建一个例行程序yuan,通过圆弧指令完成任意圆的轨迹运动。C1C2C3C4pt示例:编程示例由于5个圆的轨迹运动呈现规律排列,已知第一个圆的圆心目标点为p10,可以通过For循环指令,循环5次,每循环一次,圆心的目标点数据沿着指定方向移动60mm,再调用一次任意圆的轨迹运动例行程序,这样圆形轨迹运动也是跟随变化的。C1C2C3C4p1060示例:ptptptpt编程练习1.完成如图所示5个圆形轨迹的运动。IF指令ABB机器人的IF指令在编程中具有广泛的应用,主要用于条件判断和流程控制。具体的应用实例:条件读取I/O信号状态:在RAPID编程语言中,可以使用IF指令来判断I/O信号的状态,例如,通过IFDOutput(do2)=1THEN语句来判断输出信号do2是否为激活状态,并根据这个状态执行相应的操作。多条件判断:IF指令支持多种条件判断形式,包括简单的IF-THEN,以及更复杂的IF-THEN-ELSE和IF-THEN-ELSEIF-THEN-ELSE结构。例如,可以根据寄存器的值选择执行不同的子程序或跳转到不同的代码段。子程序调用:在满足特定条件时,可以使用IF指令调用子程序。例如,如果寄存器reg1的值小于5,系统将调用子程序work1;否则,将调用work2。IF指令示例:IFcounter>100THENcounter:=100;ELSEIFcounter<0THENcounter:=0;ELSEcounter:=counter+1;ENDIFIF-如果满足条件,那么...;否则...语法:IF
<条件表达式>
THEN
<待执行指令>{ELSEIFConditionTHEN...}[ELSE...]ENDIF求商函数DIV为用于评估整数除法的条件表达式。例1a:=14DIV4;因为14可以除以4达3次,因此,返回值为3。例2VARnumb1:=10;VARnumb2:=3;VARnumb3;...b3:=b1DIVb2;因为10可以除以3达3次,因此,返回值为3。
求余函数MOD是用于评估整数除法模数和余数的条件表达式。例1c:=14MOD4;返回值为2,因为14除以4,得到模数2。例2VARnumd1:=10;VARnumd2:=3;VARnumd3;...d3:=d1MODd2;返回值为1,因为10除以3,得到模数1。
编程示例已知5个相同半径的圆如图规则排列,编写程序实现机器人沿着5个圆轨迹运动。要求:示教第一个圆的圆心目标点为p10C2C3C4p1060ptptptptC160606060编程示例假设已知圆心的目标点数据pt,可以通过Offs函数计算出圆上4个象限点C1、C2、C3、C4的目标点数据。可以新建一个例行程序yuan,通过圆弧指令完成任意圆的轨迹运动。C1C2C3C4pt示例:编程示例由于5个圆的轨迹运动呈现规律排列,已知第一个圆的圆心目标点为p10,可以通过For循环指令,循环5次,每循环一次,圆心的目标点数据发生变化,Y轴方向规律为每循环一次偏移60mm,X轴方向规律为当前循环判断变量i,为偶数时偏移0mm,为奇数时偏移60mm。通过IF指令判断i值执行不同的指令。调用任意圆的轨迹运动例行程序,这样圆形轨迹运动也是跟随变化的。示例:综合练习完成如图所示圆形轨迹的运动。变量与赋值5变量定义变量使用前须定义(声明)变量声明指令格式:形式类型名称:=
初始值;变量形式有:常量(CONST)、变量(VAR)、可变量(PERS)之分。变量类型有:数值型、逻辑型、结构型。变量定义ABB机器人的变量定义:数值型:num逻辑型:bool结构型:tooldata、wobjdata、speeddata、robtarget、jointtarget…变量定义变量定义示例:CONST
numa:=5;常量声明时必须赋值。VARnumi;VAR
boolb;VARrobtargetp10;赋值指令示教器赋值指令操作1.在程序编辑器-添加指令,指令列表中选择“:=”。2.单击“更改数据类型…”。赋值指令3.在列表中找到“num”并选中,然后单击“确定”。此时,数值型变量被选定。4.选中“reg1”或新建一个。赋值指令5.选中“<EXP>”并蓝色高亮显示。6.打开“编辑”菜单,选择“仅限选定内容”。赋值指令7.使用虚拟键盘,输入变量值。输入变量值后,点击确定。8.点击“确定”,即可添加赋值指令“reg1:=12.5;”执行此指令后,reg1的值就是12.5了赋值指令赋值指令示例:reg1:=12.5;a:=8;b:=a+10.5;reg2:=SIN(30);I/O通信及配置5学习重点学习难点1.DSQC652标准I/O板的功能1.标准I/O板的地址2.标准I/O板的配置2.标准I/O板的配置操作常用的通信号接口ABB机器人提供了丰富的I/O通信接口,可以轻松地实现与周边设备进行通信,如表所示:ABB机器人PC现场总线ABB标准设备RS232串行通信OPCserverSocketMessageDeviceNetProfibusProfibus-DPProfinetEtherNetIP标准I/O板PLC………………ABB标准I/O板ABB标准I/O板提供的常用信号处理有数字输入DI、数字输出DO、模拟输入AI、模拟输出AO,以及输送链跟踪,常用的标准I/O板有DSQC651和DSQC652。DSQC652外观如图所示:ABB标准I/O板DSQC652板,主要提供16个数字输入信号和16个数字输出信号的处理。数字输出指示灯X1、X2数字输出接口X5DeviceNet接口模块状态指示灯X3数字输入接口数字输入指示灯接口板地址设置接口ABB标准IO板的地址ABB标准IO板是挂在DeviceNet网络上的,要设定模块在网络中的地址。端子X5的6-12的跳线就是用来决定模块的地址的,地址可用范围为10-63。将第8脚和第10脚的跳线剪去,那么地址就为2+8=10。ABB标准IO板接口说明X1端子接口包括8个数字输出,地址分配,如表所示:X1端子编号使用定义地址分配1OUTPUTCH102OUTPUTCH213OUTPUTCH324OUTPUTCH435OUTPUTCH546OUTPUTCH657OUTPUTCH768OUTPUTCH8790V
1024V
1.X1端子ABB标准IO板接口说明X3端子接口包括8个数字输入,地址分配,如表所示:3.X3端子X3端子编号使用定义地址分配1INPUTCH102INPUTCH213INPUTCH324INPUTCH435INPUTCH546INPUTCH657INPUTCH768INPUTCH8790V
10未使用
ABB标准IO板接口说明X4端子接口包括8个数字输入,地址分配,如表所示:4.X4端子X4端子编号使用定义地址分配1INPUTCH982INPUTCH1093INPUTCH11104INPUTCH12115INPUTCH13126INPUTCH14137INPUTCH15148INPUTCH161590V
10未使用
ABB标准IO板接口说明X5端子是DeviceNet总线接口,端子使用定义,如表所示。其上的编号6~12跳线用来决定模块(I/O板)在总线中的地址,可用范围为10~63。3.X5端子X5端子编号使用定义1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论