ABB-J-8ABB机器人高级编程

更新时间:2023-10-02 22:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ABB[a]-J-8ABB机器人高级编程

8.1任务目标

? 掌握ABB机器人RAPID高级编程方法。 ? 掌握常用的RAPID程序指令。 8.2任务实施

8.2.1事件程序EventRoutine

Event 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. 重启后,在操作员画面中能看到信息。 8.2.2多任务MultiTasking

MultiTasking就是在有一个在前台运行用于控制机器人逻辑运算和运动的RAPID程序的同时,后台还有与前台并行运行的RAPID程序,也就是我们所说的多任务程序了。

*系统需要623-1 MultiTasking选项。

多任务程序最多可以有20个不带机器人运动指令的后台并行的RAPID程序。多任务程序可用于机器人与PC之间不间断的通讯处理,或作为一个简单的PLC进行逻辑运算。后台的多任务程序在系统启动的同时就开始连续的运行,不受机器人控制状态的影响。

多任务程序——任务间数据通讯的方法:

? 任务间是可以通过程序数据进行数据的交换。

? 在需要数据交换的任务中建立存储类型为可变量而且名字相同的程序数据。

? 在一个任务中修改了这个数据的数值,在另一个任务中名字相同的数据也会随之更新。 1.建立多任务

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”,后台连续运行(设置后,即使机器人前台程序没有执行,开机后,后台程序也会自动执行)。 2.多任务之间数据通信

1. 在“控制面板”-“配置”-“Controller”主题的“Task”中将任务更改为“NONMAL”。

2. 在两个任务中建立两个存储类型为可变量的名称相同的num类型数据abb1。 3. 将任务改为后台运行“SEMISTATIC”。 4. 在前台程序中编写赋值语句将abb1的值进行更改。 5. 执行指令,在程序数据界面观察程序数据的值。 8.2.3错误处理ErrorHandle

在RAPID程序执行的过程中,为了提高运行的可靠性,减少人为干预,对一些简单的错误(如WAITDI)进行自我处理。

除了系统的出错处理。也可以根据控制的需要,定制对应的出错处理。 出错处理常用指令

指令 EXIT RAISE RETRY TRYNEXT RETURN ResetRestryCount 说明 当出现无法处理时将程序停止执行 当定制出错处理时,用于激活出错处理 再次执行激活出错处理的指令 执行激活出错处理的下一句指令 回到之前的子程序 复位重试的次数 *错误处理中最好不要放运动指令 操作步骤:

1. 进入“程序编辑器”,新建例行程序“rErrorHandle”,在“错误处理程序”上打勾。 2. 添加WaitDI指令,选择MaxTime可选变量,值设置为3。 3. 添加写屏指令TPWrite,写一段信息。 4. 编辑出错处理,在ERROR下面添加处理指令(打开电子参考手册“技术参考手册”-“RAPID手册”下的《RAPID Instructions…》说明书,在Instruction章节找到WAITDI指令的说明,找到MaxTime找到此指令触发的错误标示符)。 5. 添加IF指令,条件为“ERRNO=ERR_WAIT_MAXTIME”。 6. THEN中可填写错误处理的指令,在此处我们填写一个写屏指令。 7. THEN中添加TRYNEXT指令,继续执行激活出错指令的下一条指令。 8.2.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/s2

8.2.5WorldZone区域监控功能的使用

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.选择要限定的轴,进入。 3.设定Upper Joint Bound和Lower Joint Bound的值来设定单轴的上限和下限,单位为弧度(默认为±180度,即±3.14159),实际的值与设定值留有一定的余量。 4.进入手动操纵模式,当轴运动超出设定的范围后,就会报错。 8.2.7使用IO信号调用例行程序

为了简化控制和对整个系统的一体化控制,我们通常会遇到以下的这种情况:操作员直接从人机界面直接调出机器人要执行的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程序指令,方便了大家对程序的编制,同时也为复杂应用的实现提供了可能。以下就按照RAPID程序指令、功能的用途进行了一个分类,并对每个指令的功能作一个说明,如需对指令的使用与参数进行详细的了解,可以查看ABB机器人随机光盘说明书中的详细说明。 8.3.1程序执行的控制 1.程序的调用

指令 ProcCall CallByVar RETURN 调用例行程序 通过带变量的例行程序名称调用例行程序 返回原例行程序 说明

2.例行程序内的逻辑控制

指令 Compact IF IF FOR WHILE TEST GOTO Label 说明 如果条件满足,就执行一条指令 当满足不同的条件时,执行对应的程序 根据指定的次数,重复执行对应的程序 如果条件满足,重复执行对应的程序 对一个变量进行判断,从而执行不同的程序 跳转到例行程序内标签的位置 跳转标签

3.停止程序执行

指令 Stop EXIT Break SystemStopAction 停止程序执行 停止程序执行并禁止在停止处再开始 临时停止程序的执行,用于手动调试 停止程序执行与机器人运动 说明

2.中断的控制

指令 ISleep IWatch IDisable IEnable 关闭一个中断 激活一个中断 关闭所有中断 激活所有中断 说明

8.3.8系统相关的指令 1.时间控制

指令 ClkReset ClkStart ClkStop ClkRead ClkDate ClkTime GetTime 计时器复位 计时器开始计时 计时器停止计时 读取计时器数值 读取当前日期 读取当前时间 读取当前时间为数字型数据 说明

8.3.9数学运算 1.简单运算

指令 Clear Add Incr Decr 清空数值 加或减操作 加1操作 减1操作 说明

2.算术功能

指令 Abs Round Trunc Sqrt Exp 取绝对值 四舍五入 舍位操作 计算二次根 计算指数值ex 说明 Pow ACos Asin ATan ATan2 Cos Sin Tan EulerZYX OrientZYX

计算指数值 计算圆弧余弦值 计算圆弧正弦值 计算圆弧正切值[-90, 90] 计算圆弧正切值[-180, 180] 计算余弦值 计算正弦值 计算正切值 从姿态计算欧拉角 从欧拉角计算姿态

8.3.4运动控制 1.机器人运动控制

指令 MoveC MoveJ MoveL MoveAbsJ MoveExtJ MoveCDO MoveJDO MoveLDO MoveCSync MoveJSync MoveLSync TCP圆弧运动 关节运动 TCP线性运动 轴绝对角度位置运动 外部直线轴和旋转轴运动 TCP圆弧运动的同时触发一个输出信号 关节运动的同时触发一个输出信号 TCP线性运动的同时触发一个输出信号 TCP圆弧运动的同时执行一个例行程序 关节运动的同时执行一个例行程序 TCP线性运动的同时执行一个例行程序 说明

2.搜索功能

指令 SearchC SearchL SearchExtJ 3.指定位置触发信号与中断功能

指令 TriggIO TriggInt TriggCheckIO TriggEquip 说明 定义触发条件在一个指定的位置触发输出信号 定义触发条件在一个指定的位置触发中断程序 定义一个指定的位置进行I/O状态的检查 定义触发条件在一个指定的位置触发输出信号,并对信号响应的延迟进行补偿设定 TriggRampAO 定义触发条件在一个指定的位置触发模拟信号,并对信号响应的延迟进行补偿设定 TriggC TriggJ 带触发事件的圆弧运动 带触发事件的关节运动 TCP圆弧搜索运动 TCP线性搜索运动 外轴搜索运动 说明 TriggL TriggLIOs StepBwdPath TriggStopProc 带触发事件的线性运动 在一个指定的位置触发输出信号的线性运动 在RESTART的事件程序中进行路径的返回 在系统中创建一个监控处理,用于在STOP和QSTOP中需要信号复位和程序数据复位的操作 TriggSpeed 4.出错或中断时的运动控制

指令 StopMove StartMove StarMoveRetry StopMoveReset 1 StorePath○1 RestoPath○定义模拟输出信号与实机TCP速度之间的配合 说明 停止机器人运动 重新启动机器人运动 重新启动机器人运动及相关的参数设定 对停止运动状态复位,但不重新启动机器人运动 储存已生成的最近路径 重新生成之前储存的路径 在当前的运动路径级别中,清空整个运动路径 获取当前路径级别 在StorePath的路径级别中暂停同步坐标的运动 在StorePath的路径级别中重返同步坐标的运动 获取当前停止运动标志符 ClearPath PathLevel 1 SyncMoveSuspend○1 SyncMoveResume○IsStopMoveAct *这些功能需要选项“Path recovery”配合 5.外轴的控制

指令 DeactUnit ActUnit MechUnitLoad GetNextMechUnit IsMechUnitActive 关闭一个外轴单元 激活一个外轴单元 定义外轴单元的有效载荷 检索外轴单元在机器人系统中的名字 检查一个外轴单元状态是关闭/激活 说明

6.独立轴控制

指令 IndAMove IndCMove IndDMove IndRMove IndReset IndInpos IndSpeed 说明 将一个轴设定为独立轴模式并进行绝对位置方式运动 将一个轴设定为独立轴模式并进行连续方式运动 将一个轴设定为独立轴模式并进行角度方式运动 将一个轴设定为独立轴模式并进行相对位置方式运动 取消独立轴模式 检查独立轴是否已到达指定位置 检查独立轴是都已到达指定的速度 注:这些功能需要选项“Independent movement”配合 7.路径修正功能

指令 CorrCon CorrWrite CorrDiscon CorrClear 连接一个路径修正生成器 将路径坐标系统中的修正值写到修正生成器 断开一个已连接的路径修正生成器 取消所有已连接的路径修正生成器 说明 CorrRead 读取所有已连接的路径修正生成器的总修正值 注:这些功能需要选项“Path offset or RobotWare-Are sensor”配合 8.路径记录功能

指令 PathRecStart PathRecStop PathRecMoveBwd PathRecMoveFwd PathRecValidBwd PathRecValidFwd 开始记录机器人的路径 停止记录机器人的路径 机器人根据记录的路径作后退运动 机器人运动到执行PathRecMoveBwd这个指令的位置上 检查是否已激活路径记录和是否有可后退的路径 检查是否有可向前的记录路径 说明 注:这些功能需要选项“Path recovery”配合 9.输送链跟踪功能

指令 WaitWObj DropWObj 等待输送链上的工件坐标 放弃输送链上的工件坐标 说明 注:这些功能需要选项“Conveyor tracking”配合 10.传感器同步功能

指令 WaitSensor SyncToSensor DropSensor 说明 将一个在开始窗口的对象与传感器设备关联起来 开始/停止机器人与传感器设备的运动同步 断开当前对象的连接 注:这些功能需要选项“Sensor synchronization”配合 11.有效载荷与碰撞检测

指令 MotionSup○1 LoadId ManLoadId 激活/关闭运动监控 工具或有效载荷的识别 外轴有效载荷的识别 说明 注:此功能需要选项“Collision detection”配合 12.关于位置的功能

指令 Offs RelTool CalcRobT CPos CRobT CJointT ReadMotor CTool CWObj MirPos CalcJointT Distance PFRestart CSpeedOverride 8.3.5输入输出信号的处理 1.对输入输出信号的值进行设定

指令 InvertDO PulseDO Reset Set SetAO SetDO SetGO 对机器人位置进行偏移 说明 对工具的位置和姿态进行偏移 从jointtarget计算出robtarget 读取机器人当前的X、Y、Z 读取机器人当前的robtarget 读取机器人当前的关节轴角度 读取轴电动机当前的角度 读取工具坐标当前的数据 读取工件坐标当前的数据 镜像一个位置 从robtarget计算出jointtarget 计算两个位置的距离 检查当路径因电源关闭而中断的时候 读取当前使用的速度倍率 说明 对一个数字输出信号的值置反 数字输出信号进行脉冲输出 将数字输出信号置为0 将数字输出信号置为1 设定模拟输出信号的值 设定数字输出信号的值 设定组输出信号的值

2.读取输入输出信号值

指令 AOutput DOutput GOutput TestDI ValidIO WaitDI WaitDO WaitGI 读取模拟输出信号的当前值 读取数字输出信号的当前值 读取组输出信号的当前值 检查一个数字输入信号已置1 检查I/O信号是否有效 等待一个数字输入信号的指定状态 等待一个数字输出信号的指定状态 等待一个组输入信号的指定值 说明 WaitGO WaitAI WaitAO 等待一个组输出信号的指定值 等待一个模拟输入信号的指定值 等待一个模拟输出信号的指定值

3.IO模块的控制

指令 IODisable IOEnable 8.3.6通信功能

1.示教器上人机界面的功能

指令 TPErase TPWrite ErrWrite TPReadFK TPReadNum TPShow 清屏 在示教器操作界面上写信息 在示教器事件日志中写报警信息并储存 互动的功能键操作 互动的数字键盘操作 通过RAPID程序打开指定的窗口 说明 关闭一个I/O模块 开启一个I/O模块 说明

2.通过串口进行读写

指令 Open Write Close 打开串口 对串口进行写文本操作 关闭串口 说明 WriteBin WriteAnyBin WriteStrBin Rewind ClearIOBuff ReadAnyBin 3.Socket通信

指令 SocketCreate SocketConnect SocketSend SocketReceive SocketClose SocketGetStatus 8.3.7中断程序 1.中断设定

指令 CONNECT ISignalDI ISignalDO ISignalGI ISignalGO ISignalAI ISignalAO ITimer TriggInt IPers IError IDelete 写一个二进制数的操作 写任意二进制数的操作 写字符的操作 设定文件开始的位置 清空串口的输入缓冲 从串口读取任意的二进制数 说明 创建新的socket 连接远程计算机 发送数据到远程计算机 从远程计算机接收数据 关闭socket 获取当前socket状态 说明 连接一个终端符号到终端程序 使用一个数字输入信号触发中断 使用一个数字输出信号触发中断 使用一个组输入信号触发中断 使用一个组输出信号触发中断 使用一个模拟输入信号触发中断 使用一个模拟输出信号触发中断 计时中断 在一个指定的位置触发中断 使用一个可变量触发中断 当一个错误发生时触发中断 取消中断

本文来源:https://www.bwwdw.com/article/lpxd.html

Top