ABB[a]-J-8ABB机器人高级编程.doc
41页ABB[a]-J—8ABB机器人高级编程81任务目标Ø 掌握ABB机器人RAPID高级编程方法Ø 掌握常用的RAPID程序指令8.2任务实施81事件程序EventRoutineEvent Routine是使用RAPID指令编写的例行程序去响应系统事件的功能.比如在系统启动时,检查IO输入信号的状态,就可通过Event Routine来完成要注意的是,在Event Routine中不能有移动指令,也不能有太复杂的逻辑判断,防止程序死循环,影响系统的正常运行下面我们就以响应系统事件POWER_ON为例子,进行此功能的说明.任务描述:编写rEvent例行程序,打印“Start OK”字样,如果在开启后屏幕上显示,则说明这个例行程序与POWER_ON系统事件关联操作步骤:1. 进入“控制面板”-“配置"画面,点击“主题",选择“Controller".2. 双击“Event Routine".3. 点击“添加”4. Event选择“POWER_ON”(定义可参考手册)5. Routine选择“rEvent”.6. Task选择默认任务“T_ROB1"(使用多任务系统要明确例行程序在哪个任务中)。
7. 点击“确定”后重启8. 重启后,在操作员画面中能看到信息2多任务MultiTaskingMultiTasking就是在有一个在前台运行用于控制机器人逻辑运算和运动的RAPID程序的同时,后台还有与前台并行运行的RAPID程序,也就是我们所说的多任务程序了.*系统需要623—1 MultiTasking选项多任务程序最多可以有20个不带机器人运动指令的后台并行的RAPID程序多任务程序可用于机器人与PC之间不间断的通讯处理,或作为一个简单的PLC进行逻辑运算后台的多任务程序在系统启动的同时就开始连续的运行,不受机器人控制状态的影响多任务程序——任务间数据通讯的方法:u 任务间是可以通过程序数据进行数据的交换.u 在需要数据交换的任务中建立存储类型为可变量而且名字相同的程序数据u 在一个任务中修改了这个数据的数值,在另一个任务中名字相同的数据也会随之更新建立多任务1. 进入“控制面板”—“配置”画面的“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”,后台连续运行(设置后,即使机器人前台程序没有执行,开机后,后台程序也会自动执行)多任务之间数据通信1. 在“控制面板”—“配置”-“Controller”主题的“Task”中将任务更改为“NONMAL”.2. 在两个任务中建立两个存储类型为可变量的名称相同的num类型数据abb13. 将任务改为后台运行“SEMISTATIC”4. 在前台程序中编写赋值语句将abb1的值进行更改5. 执行指令,在程序数据界面观察程序数据的值2.3错误处理ErrorHandle在RAPID程序执行的过程中,为了提高运行的可靠性,减少人为干预,对一些简单的错误(如WAITDI)进行自我处理除了系统的出错处理也可以根据控制的需要,定制对应的出错处理.出错处理常用指令指令说明EXIT当出现无法处理时将程序停止执行RAISE当定制出错处理时,用于激活出错处理RETRY再次执行激活出错处理的指令TRYNEXT执行激活出错处理的下一句指令RETURN回到之前的子程序ResetRestryCount复位重试的次数*错误处理中最好不要放运动指令操作步骤:1. 进入“程序编辑器”,新建例行程序“rErrorHandle",在“错误处理程序"上打勾。
2. 添加WaitDI指令,选择MaxTime可选变量,值设置为33. 添加写屏指令TPWrite,写一段信息4. 编辑出错处理,在ERROR下面添加处理指令(打开电子参考手册“技术参考手册"-“RAPID手册"下的《RAPID Instructions…》说明书,在Instruction章节找到WAITDI指令的说明,找到MaxTime找到此指令触发的错误标示符)5. 添加IF指令,条件为“ERRNO=ERR_WAIT_MAXTIME”6. THEN中可填写错误处理的指令,在此处我们填写一个写屏指令7. THEN中添加TRYNEXT指令,继续执行激活出错指令的下一条指令4TCP轨迹限制加减速度的设定我们可以对机器人运动轨迹的加减速度进行限制来满足一些特殊应用的需要如机器人搬运高温液态金属进行浇注的动作,为了防止液体的溢出,这个时候我们就需要对加减速度进行限定示例:• PathAccLim FALSE, FALSE;TCP的加减速度被设定为最大值(一般默认情况)• PathAccLim TRUE \AccMax:=4, TRUE \DecelMax:=4;TCP的加减速度被限定在4m/s2• MoveL p1, v1000, fine, tool0;• PathAccLim TRUE\AccMax:=4, FALSE; 加速度被限定为4m/s2• MoveL p2, v1000, z30, tool0;• MoveL p3, v1000, fine, tool0;• PathAccLim FALSE,FALSE; TCP的加减速度被设定为最大值限制值最小只能设定为0.5m/s28。
25WorldZone区域监控功能的使用WorldZone是用于控制机器人在进入一个指定区域后停止或输出一个信号.应用实例:² 当两个机器人协同运动时设定保护区域² 在压铸机的开/合模区设定为WorldZone.² 机器人进入了指定区域后,输出信号给外围设备• 通过定义AB两点的位置来确定进行监控的区域• 可以定义的WorldZone形状:矩形、圆柱形、关节位置型.WorldZone监控的是当前的TCP的坐标值,监控的坐标区域是基于当前使用的工件坐标WOBJ和工具坐标TOOLDATA的一定要使用Event Routine的POWER_ON在启动系统的时候运行一次,就会开始自动监控了操作步骤:1.使用WorldZone必须添加WorldZone的选项:608-1WorldZone在“ABB”—“系统信息”—“系统属性"-“控制模块”—“选项”中查看是否有WorldZone的选项2.在“手动操纵”界面选定要监控的工具3.编制Event Routine对应的程序:设置两个矩形对角点Pos1和Pos2,设定对应的坐标值;使用WZBoxDef\Inside,shPos,Pos1,Pos2;WZDOSet\Stat,wzPos\Inside,shPos,do1,1;指令来设定WorldZone和关联的IO信号。
4.设定EventRoutine,与POWER_ON关联,电机上电时自动开启WorldZone功能8.2.6限定单轴运动范围的操作目的:因为工作环境或控制的需要,我们有时候会对单个轴进行运动范围的限定方法:我们可以对单轴的上限和下限值进行设定设定的数据以弧度的方式进行表达1弧度约等于57.3度).注意:对单轴限定后,会使机器人的可到达范围变小1.进入“控制面板”—“配置”画面的“Motion”主题,双击“Arm”.2选择要限定的轴,进入设定Upper Joint Bound和Lower Joint Bound的值来设定单轴的上限和下限,单位为弧度(默认为±180度,即±3.14159),实际的值与设定值留有一定的余量进入手动操纵模式,当轴运动超出设定的范围后,就会报错.82.7使用IO信号调用例行程序为了简化控制和对整个系统的一体化控制,我们通常会遇到以下的这种情况:操作员直接从人机界面直接调出机器人要执行的RAPID例行程序要实现这样的操作的设定方法:² 人机界面将程序编号发给PLC² PLC将编号发到机器人的组输入端² 编写对应的RAPID程序操作步骤:1.设定组输入gi12.编写几个测试程序proc1()、proc2()和rSelectProg().rSelectProg用来判断调用那个程序。
3. rSelectProg内容如图:使用CallByVar指令,“proc"为固定值,根据后面数字的不同,选择调用proc1或proc24.对gi1的值进行仿真,运行rSelectProc时,会调用与gi1的值对应的程序8.3知识链接-常用RAPID程序指令与功能表ABB机器人提供了丰富的RAPID程序指令,方便了大家对程序的编制,同时也为复杂应用的实现提供了可能.以下就按照RAPID程序指令、功能的用途进行了一个分类,并对每个指令的功能作一个说明,如需对指令的使用与参数进行详细的了解,可以查看ABB机器人随机光盘说明书中的详细说明.83.1程序执行的控制1.程序的调用指令说明ProcCall调用例行程序CallByVar通过带变量的例行程序名称调用例行程序RETURN返回原例行程序2.例行程序内的逻辑控制指令说明Compact IF如果条件满足,就执行一条指令IF当满足不同的条件时,执行对应的程序FOR根据指定的次数,重复执行对应的程序WHILE如果条件满足,重复执行对应的程序TEST对一个变量进行判断,从而执行不同的程序GOTO跳转到例行程序内标签的位置Label跳转标签3停止程序执行指令说明Stop停止程序执行EXIT停止程序执行并禁止在停止处再开始Break临时停止程序的执行,用于手动调试SystemStopAction停止程序执行与机器人运动ExitCycle中止当前程序的运行并将程序指针PP复位到主程序的第一条指令。
如果选择了程序连续运行模式,程序将从主程序的第一句重新执行83.2变量指令1赋值指令指令说明:=对程序数据进行赋值2等待指令指令说明WaitTime等待一个指定的时间,程序再往下执行WaitUntil等待一个条件满足后,程序继续往下执行WaitDI等待一个输入信号状态为设定值WaitDO等待一个输出信号状态为设定值3程序注释指令说明comment对程序进行注释4程序模块加载指令说明Load从机器人硬盘加载一个程序模块到运行内存UnLoad从运行内存中卸载一个程序模块Start Load在程序执行的过程中,加载一个程序模块到运行内存中Wait Load当Start Load使用后,使用。





