1、ABBaJ8ABB机器人高级编程ABBa-J-8ABB机器人高级编程8.1任务目的掌握ABB机器人RAPID高级编程方法。掌握常用的RAPID程序指令。8.2任务施行8.2.1事件程序EventRoutineEvent Routine是使用RAPID指令编写的例行程序去响应系统事件的功能。比方在系统启动时,检查IO输入信号的状态,就可通过Event Routine来完成。要注意的是,在Event Routine中不能有挪动指令,也不能有太复杂的逻辑判断,防止程序死循环,影响系统的正常运行。下面我们就以响应系统事件POWER_ON为例子,进展此功能的说明。任务描绘:编写rEvent例行程序,打印
2、“Start OK字样,假如在开启后屏幕上显示,那么说明这个例行程序与POWER_ON系统事件关联。操作步骤:1.进入“控制面板-“配置画面,点击“主题,选择“Controller。2.双击“Event Routine。3.点击“添加。4.Event选择“POWER_ON定义可参考手册。5.Routine选择“rEvent。6.Task选择默认任务“T_ROB1使用多任务系统要明确例行程序在哪个任务中。7.点击“确定后重启。8.重启后,在操作员画面中能看到信息。8.2.2多任务MultiTaskingMultiTasking就是在有一个在前台运行用于控制机器人逻辑运算和运动的RAPID程序的同
3、时,后台还有与前台并行运行的RAPID程序,也就是我们所说的多任务程序了。*系统需要623-1 MultiTasking选项。多任务程序最多可以有20个不带机器人运动指令的后台并行的RAPID程序。多任务程序可用于机器人与PC之间不连续的通讯处理,或作为一个简单的PLC进展逻辑运算。后台的多任务程序在系统启动的同时就开场连续的运行,不受机器人控制状态的影响。多任务程序任务间数据通讯的方法:任务间是可以通过程序数据进展数据的交换。在需要数据交换的任务中建立存储类型为可变量而且名字一样的程序数据。在一个任务中修改了这个数据的数值,在另一个任务中名字一样的数据也会随之更新。1.建立多任务1.进入“控
4、制面板-“配置画面的“Controller主题,选择“Task。2.点击“添加。3.设置Task值为“T_Back名字可自由起。4.Type选择“NONMAL。5.Main entry进展重命名,命名为“mainback,与前台主程序区分开。6.进展重启操作,使设置生效。重新启动后,点击右下角快捷菜单,再点击多任务按钮,将T_ROB1前台任务取消掉。7.到程序编辑器添加程序模块和主例行程序mainback,并在程序中添加一些指令。8.电机上电,运行程序,观察IO的变化。9.在Task的编辑画面,将Type设定为“SEMISTATIC,后台连续运行设置后,即使机器人前台程序没有执行,开机后,后台
5、程序也会自动执行。2.多任务之间数据通信1.在“控制面板-“配置-“Controller主题的“Task中将任务更改为“NONMAL。2.在两个任务中建立两个存储类型为可变量的名称一样的num类型数据abb1。3.将任务改为后台运行“SEMISTATIC。4.在前台程序中编写赋值语句将abb1的值进展更改。5.执行指令,在程序数据界面观察程序数据的值。8.2.3错误处理ErrorHandle在RAPID程序执行的过程中,为了进步运行的可靠性,减少人为干预,对一些简单的错误如WAITDI进展自我处理。除了系统的出错处理。也可以根据控制的需要,定制对应的出错处理。出错处理常用指令指令说明EXIT当
6、出现无法处理时将程序停顿执行RAISE当定制出错处理时,用于激活出错处理RETRY再次执行激活出错处理的指令TRYNEXT执行激活出错处理的下一句指令RETURN回到之前的子程序ResetRestryCount复位重试的次数*错误处理中最好不要放运动指令操作步骤:1.进入“程序编辑器,新建例行程序“rErrorHandle,在“错误处理程序上打勾。2.添加WaitDI指令,选择MaxTime可选变量,值设置为3。3.添加写屏指令TPWrite,写一段信息。4.编辑出错处理,在ERROR下面添加处理指令翻开电子参考手册“技术参考手册-“RAPID手册下的?RAPID Instructions?说
7、明书,在Instruction章节找到WAITDI指令的说明,找到MaxTime找到此指令触发的错误标示符。5.添加IF指令,条件为“ERRNO=ERR_WAIT_MAXTIME。6.THEN中可填写错误处理的指令,在此处我们填写一个写屏指令。7.THEN中添加TRYNEXT指令,继续执行激活出错指令的下一条指令。8.2.4TCP轨迹限制加减速度的设定我们可以对机器人运动轨迹的加减速度进展限制来满足一些特殊应用的需要。如机器人搬运高温液态金属进展浇注的动作,为了防止液体的溢出,这个时候我们就需要对加减速度进展限定。例如:PathAccLim FALSE, FALSE;TCP的加减速度被设定为最
8、大值一般默认情况PathAccLim TRUE AccMax:=4, TRUE DecelMax:=4;TCP的加减速度被限定在4m/s2MoveL p1, v1000, fine, tool0;PathAccLim TRUEAccMax:=4, FALSE; 加速度被限定为4m/s2MoveL p2, v1000, z30, tool0;MoveL p3, v1000, fine, tool0;PathAccLim FALSE,FALSE; TCP的加减速度被设定为最大值限制值最小只能设定为8.2.5WorldZone区域监控功能的使用WorldZone是用于控制机器人在进入一个指定区域后停
9、顿或输出一个信号。应用实例:当两个机器人协同运动时设定保护区域。在压铸机的开/合模区设定为WorldZone。机器人进入了指定区域后,输出信号给外围设备。通过定义AB两点的位置来确定进展监控的区域。可以定义的WorldZone形状:矩形、圆柱形、关节位置型。WorldZone监控的是当前的TCP的坐标值,监控的坐标区域是基于当前使用的工件坐标WOBJ和工具坐标TOOLDATA的。一定要使用Event Routine的POWER_ON在启动系统的时候运行一次,就会开场自动监控了。操作步骤:1.使用WorldZone必须添加WorldZone的选项:608-1WorldZone。在“ABB-“系统
10、信息-“系统属性-“控制模块-“选项中查看是否有WorldZone的选项。2.在“手动操纵界面选定要监控的工具。3.编制Event Routine对应的程序:设置两个矩形对角点Pos1和Pos2,设定对应的坐标值;使用WZBoxDefInside,shPos,Pos1,Pos2;WZDOSetStat,wzPosInside,shPos,do1,1;指令来设定WorldZone和关联的IO信号。4.设定EventRoutine,与POWER_ON关联,电机上电时自动开启WorldZone功能。8.2.6限定单轴运动范围的操作目的:因为工作环境或控制的需要,我们有时候会对单个轴进展运动范围的限定
11、。方法:我们可以对单轴的上限和下限值进展设定。设定的数据以弧度的方式进展表达。1弧度约等于度。注意:对单轴限定后,会使机器人的可到达范围变小。1.进入“控制面板-“配置画面的“Motion主题,双击“Arm。2.选择要限定的轴,进入。3.设定Upper Joint Bound和Lower Joint Bound的值来设定单轴的上限和下限,单位为弧度默认为180度,即,实际的值与设定值留有一定的余量。4.进入手动操纵形式,当轴运动超出设定的范围后,就会报错。8.2.7使用IO信号调用例行程序为了简化控制和对整个系统的一体化控制,我们通常会遇到以下的这种情况:操作员直接从人机界面直接调出机器人要执
12、行的RAPID例行程序。要实现这样的操作的设定方法:人机界面将程序编号发给PLC。PLC将编号发到机器人的组输入端。编写对应的RAPID程序。操作步骤:1.设定组输入gi1。2.编写几个测试程序proc1()、proc2()和rSelectProg()。rSelectProg用来判断调用那个程序。3. rSelectProg内容如图:使用CallByVar指令,“proc为固定值,根据后面数字的不同,选择调用proc1或proc2。4.对gi1的值进展仿真,运行rSelectProc时,会调用与gi1的值对应的程序8.3知识链接-常用RAPID程序指令与功能表ABB机器人提供了丰富的RAPID
13、程序指令,方便了大家对程序的编制,同时也为复杂应用的实现提供了可能。以下就按照RAPID程序指令、功能的用处进展了一个分类,并对每个指令的功能作一个说明,如需对指令的使用与参数进展详细的理解,可以查看ABB机器人随机光盘说明书中的详细说明。8.3.1程序执行的控制1.程序的调用指令说明ProcCall调用例行程序CallByVar通过带变量的例行程序名称调用例行程序RETURN返回原例行程序2.例行程序内的逻辑控制指令说明Compact IF假如条件满足,就执行一条指令IF当满足不同的条件时,执行对应的程序FOR根据指定的次数,重复执行对应的程序WHILE假如条件满足,重复执行对应的程序TES
14、T对一个变量进展判断,从而执行不同的程序GOTO跳转到例行程序内标签的位置Label跳转标签3.停顿程序执行指令说明Stop停顿程序执行EXIT停顿程序执行并制止在停顿处再开场Break临时停顿程序的执行,用于手动调试SystemStopAction停顿程序执行与机器人运动ExitCycle中止当前程序的运行并将程序指针PP复位到主程序的第一条指令。假如选择了程序连续运行形式,程序将从主程序的第一句重新执行8.3.2变量指令1.赋值指令指令说明:=对程序数据进展赋值2.等待指令指令说明WaitTime等待一个指定的时间,程序再往下执行WaitUntil等待一个条件满足后,程序继续往下执行Wai
15、tDI等待一个输入信号状态为设定值WaitDO等待一个输出信号状态为设定值3.程序注释指令说明comment对程序进展注释4.程序模块加载指令说明Load从机器人硬盘加载一个程序模块到运行内存UnLoad从运行内存中卸载一个程序模块Start Load在程序执行的过程中,加载一个程序模块到运行内存中Wait Load当Start Load使用后,使用此指令将程序模块连接到任务中使用CancelLoad取消加载程序模块CheckProgRef检查程序引用Save保存程序模块EraseModule从运行内存删除程序模块5.变量功能指令说明TryInt判断数据是否是有效的整数OpMode读取当前机器
16、人的操作形式RunMode读取当前机器人程序的运行形式NonMotionMode读取程序任务当前是否无运动的执行形式Dim获取一个数组的维数Present读取带参数例行程序的可选参数值IsPers判断一个参数是不是可变量IsVar判断一个参数是不是变量6.转换功能指令说明StrToByte将字符串转换为指定格式的字节数据ByteToStr将字节数据转换成字符串8.3.3运动设定1.速度设定指令说明MaxRobSpeed获取当前型号机器人可实现的最大TCP速度VelSet设定最大的速度与倍率SpeedRefresh更新当前运动的速度倍率AccSet定义机器人的加速度WorldAccLim设定大地
17、坐标中工具与载荷的加速度PathAccLim设定运动途径中TCP的加速度2.轴配置管理指令说明ConfJ关节运动的轴配置控制ConfL线性运动的轴配置控制3.奇异点的管理指令说明SingArea设定机器人运动时,在奇异点的插补方式4.位置偏置功能指令说明PDispOn激活位置偏置PDispSet激活指定数值的位置偏置PDispOff关闭位置偏置EOffsOn激活外轴偏置EOffsSet激活指定数值的外轴偏置EOffsOff关闭外轴位置偏置DefDFrame通过三个位置数据计算出位置的偏置DefFrame通过六个位置数据计算出位置的偏置ORobT从一个位置数据删除位置偏置DefAccFrame从
18、原始位置和交换位置定义一个框架5.软伺服功能指令说明SoftAct激活一个或多个轴的软伺服功能SoftDeact关闭软伺服功能6.机器人参数调整功能指令说明TuneServo伺服调整TuneReset伺服调整复位PathResol几何途径精度调整CirPathMode在圆弧插补运动时,工具姿态的变换方式7.空间监控管理指令说明WZBoxDef定义一个方形的监控空间WZCylDef定义一个圆柱形的监控空间WZSphDef定义一个球形的监控空间WZHomeJointDef定义一个关节轴坐标的监控空间WZLimJointDef定义一个限定为不可进入的关节轴坐标监控空间WZLimSup激活一个监控空间
19、并限定为不可进入WZDOSet激活一个监控空间并与一个输出信号关联WZEnable激活一个临时的监控空间WZFree关闭一个临时的监控空间8.3.4运动控制1.机器人运动控制指令说明MoveCTCP圆弧运动MoveJ关节运动MoveLTCP线性运动MoveAbsJ轴绝对角度位置运动MoveExtJ外部直线轴和旋转轴运动MoveCDOTCP圆弧运动的同时触发一个输出信号MoveJDO关节运动的同时触发一个输出信号MoveLDOTCP线性运动的同时触发一个输出信号MoveCSyncTCP圆弧运动的同时执行一个例行程序MoveJSync关节运动的同时执行一个例行程序MoveLSyncTCP线性运动的
20、同时执行一个例行程序2.搜索功能指令说明SearchCTCP圆弧搜索运动SearchLTCP线性搜索运动SearchExtJ外轴搜索运动3.指定位置触发信号与中断功能指令说明TriggIO定义触发条件在一个指定的位置触发输出信号TriggInt定义触发条件在一个指定的位置触发中断程序TriggCheckIO定义一个指定的位置进展I/O状态的检查TriggEquip定义触发条件在一个指定的位置触发输出信号,并对信号响应的延迟进展补偿设定TriggRampAO定义触发条件在一个指定的位置触发模拟信号,并对信号响应的延迟进展补偿设定TriggC带触发事件的圆弧运动TriggJ带触发事件的关节运动Tr
21、iggL带触发事件的线性运动TriggLIOs在一个指定的位置触发输出信号的线性运动StepBwdPath在RESTART的事件程序中进展途径的返回TriggStopProc在系统中创立一个监控处理,用于在STOP和QSTOP中需要信号复位和程序数据复位的操作TriggSpeed定义模拟输出信号与实机TCP速度之间的配合4.出错或中断时的运动控制指令说明StopMove停顿机器人运动StartMove重新启动机器人运动StarMoveRetry重新启动机器人运动及相关的参数设定StopMoveReset对停顿运动状态复位,但不重新启动机器人运动StorePath 储存已生成的最近途径Resto
22、Path 重新生成之前储存的途径ClearPath在当前的运动途径级别中,清空整个运动途径PathLevel获取当前途径级别SyncMoveSuspend 在StorePath的途径级别中暂停同步坐标的运动SyncMoveResume 在StorePath的途径级别中重返同步坐标的运动IsStopMoveAct获取当前停顿运动标志符*这些功能需要选项“Path recovery配合5.外轴的控制指令说明DeactUnit关闭一个外轴单元ActUnit激活一个外轴单元MechUnitLoad定义外轴单元的有效载荷GetNextMechUnit检索外轴单元在机器人系统中的名字IsMechUnitA
23、ctive检查一个外轴单元状态是关闭/激活6.独立轴控制指令说明IndAMove将一个轴设定为独立轴形式并进展绝对位置方式运动IndCMove将一个轴设定为独立轴形式并进展连续方式运动IndDMove将一个轴设定为独立轴形式并进展角度方式运动IndRMove将一个轴设定为独立轴形式并进展相对位置方式运动IndReset取消独立轴形式IndInpos检查独立轴是否已到达指定位置IndSpeed检查独立轴是都已到达指定的速度注:这些功能需要选项“Independent movement配合7.途径修正功能指令说明CorrCon连接一个途径修正生成器CorrWrite将途径坐标系统中的修正值写到修正
24、生成器CorrDiscon断开一个已连接的途径修正生成器CorrClear取消所有已连接的途径修正生成器CorrRead读取所有已连接的途径修正生成器的总修正值注:这些功能需要选项“Path offset or RobotWare-Are sensor配合8.途径记录功能指令说明PathRecStart开场记录机器人的途径PathRecStop停顿记录机器人的途径PathRecMoveBwd机器人根据记录的途径作后退运动PathRecMoveFwd机器人运动到执行PathRecMoveBwd这个指令的位置上PathRecValidBwd检查是否已激活途径记录和是否有可后退的途径PathRecV
25、alidFwd检查是否有可向前的记录途径注:这些功能需要选项“Path recovery配合9.输送链跟踪功能指令说明WaitWObj等待输送链上的工件坐标DropWObj放弃输送链上的工件坐标注:这些功能需要选项“Conveyor tracking配合10.传感器同步功能指令说明WaitSensor将一个在开场窗口的对象与传感器设备关联起来SyncToSensor开场/停顿机器人与传感器设备的运动同步DropSensor断开当前对象的连接注:这些功能需要选项“Sensor synchronization配合11.有效载荷与碰撞检测指令说明MotionSup 激活/关闭运动监控LoadId工具
26、或有效载荷的识别ManLoadId外轴有效载荷的识别注:此功能需要选项“Collision detection配合12.关于位置的功能指令说明Offs对机器人位置进展偏移RelTool对工具的位置和姿态进展偏移CalcRobT从jointtarget计算出robtargetCPos读取机器人当前的X、Y、ZCRobT读取机器人当前的robtargetCJointT读取机器人当前的关节轴角度ReadMotor读取轴电动机当前的角度CTool读取工具坐标当前的数据CWObj读取工件坐标当前的数据MirPos镜像一个位置CalcJointT从robtarget计算出jointtargetDistan
27、ce计算两个位置的间隔 PFRestart检查当途径因电源关闭而中断的时候CSpeedOverride读取当前使用的速度倍率8.3.5输入输出信号的处理1.对输入输出信号的值进展设定指令说明InvertDO对一个数字输出信号的值置反PulseDO数字输出信号进展脉冲输出Reset将数字输出信号置为0Set将数字输出信号置为1SetAO设定模拟输出信号的值SetDO设定数字输出信号的值SetGO设定组输出信号的值2.读取输入输出信号值指令说明AOutput读取模拟输出信号的当前值DOutput读取数字输出信号的当前值GOutput读取组输出信号的当前值TestDI检查一个数字输入信号已置1Val
28、idIO检查I/O信号是否有效WaitDI等待一个数字输入信号的指定状态WaitDO等待一个数字输出信号的指定状态WaitGI等待一个组输入信号的指定值WaitGO等待一个组输出信号的指定值WaitAI等待一个模拟输入信号的指定值WaitAO等待一个模拟输出信号的指定值3.IO模块的控制指令说明IODisable关闭一个I/O模块IOEnable开启一个I/O模块8.3.6通信功能1.示教器上人机界面的功能指令说明TPErase清屏TPWrite在示教器操作界面上写信息ErrWrite在示教器事件日志中写报警信息并储存TPReadFK互动的功能键操作TPReadNum互动的数字键盘操作TPShow通过RAPID程序翻开指定的窗口2.通过串口进展读写
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1