5.1 指令:
5.1.1 ContactL - 线性接触移动
手册用法
ContactL(Contact Linear) 用于在线性移动工具中心点 (TCP) 时在所需的位置获取 与某个对象的接触。
碰撞检测级别额提升到最大值,在移动期间,机器人会监测内部转矩并与用户提供多 达转矩级别比较。当达到所需的用户转矩级别时,机器人会执行一个硬性停止,然后 继续执行程序的其余部分。
在机器人抓持的工具必须将某个物体按入位置时通常使用此指令。
此指令只能用于主任务T_ROB1,或 MultiMove 系统中的 Motion 任务。
ContactL指令的最大速度为 100 mm/s。
描述
要后造出转矩水平ldesiredTorque的值,有必要测试应用程序并查看内部测试信 号,使用 TuneMaster 查看信号 7901。
xx1500000649
关于 TuneMaster 的更多详情请参阅应用程序中附带的帮助章节。
基本示例
以下示例介绍了ContactL指令:
另请参阅第62页的更多示例 例 1
desiredTorque := 0.1;
ContactL \DesiredTorque:=desiredTorque, p10, v100, tool1;
下一页继续
操作员手册 - IRB 14000 59
3HAC052986-010 修订: A
© 版权所有 2016 ABB。保留所有权利。
5.1.1 ContactL - 线性接触移动
tool1的 TCP 朝p10位置线性移动,速度为v100。当内部转矩级别的值超过用户 指定的desiredTorque级别,机器人将执行硬性停止,然后程序将从机器人停止的 位置继续执行。
变元DesiredTorque为可选项。当DesiredTorque缺失时,ContactL指令将 只会把碰撞检测级别提升到最大值,即在移动 TCP 时允许对某个对象保持压力。
如果机器人到达所需位置时尚未达到desiredTorque,则会出现执行错误,系统停 止,并记录事件日志。因此建议为此类情况安排一个错误处理程序,请参阅
第61页的 错误处理。
例 2
ContactL RelTool (CRobT(),5,5,0), v100, \Zone:=z10, tool1;
机器人会移动到距离工具当前位置 x 方向 5 mm 以及 y 方向 5 mm 的位置。如果Zone 变元缺失,ContactL指令将使用一个良好的点作为默认值。
在示例中,变元DesiredTorque缺失。指令将会只提升碰撞检测级别到最大值,而 ContactL指令的功能将会类似MoveL指令。
例 3
desiredTorque := 0.9;
ContactL \DesiredTorque:=desiredTorque, p10, v100, tool1;
ContactL RelTool (CRobT(),5,5,0), v100, \Zone:=z10, tool1;
ContactL RelTool (CRobT(),5,5,-10), v100, \Zone:=z10, tool1;
MoveL ...
不仅在接触时使用ContactL指令很重要,在脱离接触时也一样重要。正常的移动指 令很可能会触发动作监测。
变元
ContactL [\DesiredTorque] ToPoint [\ID] Speed [\Zone] Tool [\WObj]
[ \DesiredTorque ]
数据类型:num 用户定义的转矩级别。
如果定义了DesiredTorque,则ContactL将会始终使用一个良好点作为目标的区 域数据。当DesiredTorque缺失时,ContactL指令将只会提升碰撞检测级别而不 会监测内部转矩级别。
ToPoint
数据类型:robtarget
机器人和外部轴的目标点。定义为已命名的位置或直接存储在指令中(在指令中加 * 标记)。
[ \ID ]
Synchronization id 数据类型:identno
如果移动是同步或协调同步的,变元[ \ID ]在 MultiMove 系统中是强制的。这个 变元在任何其他情况下都不允许使用。指定的 ID 号必须与所有协作程序任务中的 ID 号相同。使用此 ID 号,动作才不会在运行时搞混。
下一页继续
60 操作员手册 - IRB 14000
3HAC052986-010 修订: A
© 版权所有 2016 ABB。保留所有权利。
5.1.1 ContactL - 线性接触移动 续前页
Speed
数据类型:speeddata
适用于移动的速度数据。速度数据定义了工具中心点的速率、工具重定位以及外部轴。
[ \Zone ]
数据类型:zonedata
移动的区域数据。区域数据描述产生的角落路径的大小,仅在DesiredTorque缺失 时使用。
如果[\Zone] 变元缺失,ContactL指令将使用一个良好点作为默认值。
Tool
数据类型:tooldata
当机器人移动时工具处于使用状态。工具中心点是移向指定目标点的点。
[ \WObj ]
Work Object
数据类型:wobjdata
指令中机器人位置关联的工件(坐标系)。
此边缘可以缺失,此时位置与世界坐标系关联。另一方面,如果使用了静态 TCP 或协 调外部轴,则必须指定此变元才能执行相对此工件的线性移动。
程序执行
有关线性移动的信息请参阅MoveL指令。
如果定义了DesiredTorque变元,则当内部转矩级别超过用户定义的转矩级别时,
机器人移动停止。否则,机器人移动将继续,直到编程设定的目标点。
如果变元DesiredTorque确实,碰撞检测级别会提升到最大值,且不会对内部转矩 级别进行监测,即允许在移动 TCP 时保持对某个对象的压力。
错误处理
执行ContactL过程中出现下列情况时会报告错误:
• ContactL到达变元ToPoint中指定的而未达到用户指定的DesiredTorque。
这会产生错误ERR_CONTACTL。
根据所选的运行模式,错误可以用不同方法来处理。
• 连续向前/指令向前:
不会返回位置,移动会始终继续朝编程设定的目标点前进。系统变量ERRNO设 置为ERR_CONTACTL,错误可以由例行程序中的错误处理程序来处理。
• 指令向后:
在向后执行时,指令会进行移动而不监测转矩。
示例
VAR num desiredTorque;
...
desiredTorque := 0.1;
MoveL p10, v100, fine, tool1;
ContactL \DesiredTorque:=desiredTorque, p20, v100, tool1;
...
下一页继续
操作员手册 - IRB 14000 61
3HAC052986-010 修订: A
© 版权所有 2016 ABB。保留所有权利。
5.1.1 ContactL - 线性接触移动 续前页
ERROR
IF ERRNO=ERR_CONTACTL THEN StorePath;
MoveL p10, v100, fine, tool1;
RestoPath; DesiredTorque,则机器人移回p10并再试一次。
更多示例
下面显示了更多ContactL指令的示例。
例 1
ContactL p10, v100, \Zone:=z10, tool1;
tool1的 TCP 以直线方式移向p10位置,其速度为v100,区域大小为 10 mm。
由于变元DesiredTorque缺失,ContactL指令将只会把碰撞检测级别提升到最大 值,而不会监测内部转矩级别。
语法
ContactL
[ '\' DesiredTorque ',']
[ ToPoint ':=' ] < expression (IN) of robtarget >
[ '\' ID ':=' < expression (IN) of identno >] ',' [ Speed ':=' ] < expression (IN) of speeddata >
[ '\' Zone ':=' < expression (IN) of zonedata > ] ',' [ Tool ':=' ] < persistent (PERS) of tooldata >
[ '\' WObj ':=' < persistent (PERS) of wobjdata > ] ';'
3HAC052986-010 修订: A
© 版权所有 2016 ABB。保留所有权利。
5.1.1 ContactL - 线性接触移动 续前页