跳到主要内容

15.4.8 高级规划指令

15.4.8.1 RelTool

说明

在当前指令指定的工具坐标系下对空间位置进行平移或者旋转。
与 Offs 主要区别:Offs 是沿着工件坐标系方向进行偏移,RelTool 是沿着工具坐标系方向进行偏移。

定义

返回值,数据类型 robtarget,返回偏移后的新位姿。
RelTool(Point, XOffset, YOffset, ZOffset, Rx, Ry, Rz);
Point,数据类型 robtarget,待偏移的位置点,或者说偏移指令的初始点。
XOffset,数据类型 double,沿工具坐标系 x 方向上的偏移量。
YOffset,数据类型 double,沿工具坐标系 y 方向上的偏移量。
ZOffset,数据类型 double,沿工具坐标系 z 方向上的偏移量。
Rx,数据类型 double,绕工具坐标系 x 轴的转动角度。
Ry,数据类型 double,绕工具坐标系 y 轴的转动角度。
Rz,数据类型 double,绕工具坐标系 z 轴的转动角度。

示例

例 1
p2 = RelTool(p1, 100, 0, 30, 20, 0, 0);
将 p1 点沿工具坐标系的 x 方向偏移 100 mm,y 方向偏移 0 mm,z 方向偏移 30 mm,绕 x 轴旋转 20 度后,将新的目标点位置赋给 p2 点。
例 2
MoveL(RelTool(p1, 100, 0, 30, 20, 0, 0), v4000, fine, tool2, wobj4);
RelTool 和 Move 指令配合使用,将 p1 点沿 tool2 工具坐标系的 x 方向偏移 100 mm,y 方向偏移 0 mm,z 方向偏移 30 mm,绕 x 轴旋转 20 度。

注意

xMate CR 系列的 5 轴机型,由于一个姿态自由度的缺失,在使用 RelTool 命令时会有较多点位不可达情况,需要结合可达姿态特点确定偏移(如在法兰平行基座的情况下点位的平移通常都可达)。

15.4.8.2 Offs

说明

位置偏移函数,用于把某个点在当前指令中指定的工件坐标系下偏移一段距离并返回新点的位置值,平移偏移量由 x、y、z 三个量来表示,姿态旋转偏移量由 Rx、Ry、Rz 表示。

定义

返回值,数据类型 robtarget,偏移后的新位姿。
Offs(Point, XOffset, YOffset, ZOffset [, Rx, Ry, Rz]);
Point,数据类型 robtarget,待偏移的位置点,或者说偏移指令的初始点。
XOffset,数据类型 double,沿工件坐标系 x 方向上的偏移量。
YOffset,数据类型 double,沿工件坐标系 y 方向上的偏移量。
ZOffset,数据类型 double,沿工件坐标系 z 方向上的偏移量。
Rx,数据类型 double,绕工件坐标系 x 轴的转动角度。
Ry,数据类型 double,绕工件坐标系 y 轴的转动角度。
Rz,数据类型 double,绕工件坐标系 z 轴的转动角度。

示例

例 1
p11 = Offs(p10, 100, 200, 300);
将 p10 点沿工件坐标系的 x 方向偏移 100 mm,y 方向偏移 200 mm,z 方向偏移 300 mm,并将新的目标点位置赋给 p11 点。

注意

该指令暂时不支持辅助编程。

15.4.8.3 ConfL

说明

该指令开启后进行两个方面的检查:
1. 笛卡尔路径实际到达的轴角度(即 cf1~7)是否与目标点示教的相差过大,如果相差过大,日志会显示对应的提示,用户可考虑是否按照这样的运动方式到达目标点。
2. 笛卡尔路径实际到达的轴关节配置(即 cfx 值)是否与目标点示教的一致,如果不一致会报错并停止运动。

示例

例 1
ConfL(on);
MoveL(p1, v1000, …​);
//如果 P1 示教位置的 J6 角度为 -5°,则 MoveL 指令运行后 J6 角度可能为 355°(两者呈现 ±360° 的差距,即对应的是同一个位置),此时会日志提示「回转角实际到达点与设定点差别过大」,但不停止运动。

ConfL(off);
MoveL(p1, v1000, …​);
//关闭笛卡尔路径的 conf 检查,机器人能够运动到 p1 点,但不针对点位实际运动到达与点位示教时的 confdata 的 cf1~7 值和 cfx 值进行检查。

注意

1. ConfL 指令对应 MoveL、MoveC 等笛卡尔运动指令,不对 MoveJ、MoveAbsJ 指令产生影响,也不会对「点位运动至」的 conf 设定产生影响。
2. 在执行直线、圆弧等笛卡尔运动指令的情况下,机器人在选取离开始点的姿势最接近姿势的同时向目标点方向移动。此时,目标点的角度将被自动选定,所以在目标点位置的机器人实际回转角度,在某些情况下会与所示教的位置的角度不同。该指令开启后,对这种情况会进行提示。

15.4.8.4 ConfJ

说明

笛卡尔坐标对应一组 conf 参数(cf1~7, cfx),用户手动更改或写入的笛卡尔坐标点对应的 conf 数据可能是错误的,导致控制器无法解析出目标点的路径,但是存在部分场景,用户只关心机器人 TCP 点的位置而不关心姿态,此时可以使用 ConfJ Off 解除点位求解的 conf 限制,让控制器尝试计算出离路径起点最(较)近的逆解(可能算不出来,导致运动指令失败)。可以阅读 confdata 的介绍,了解更多 conf 相关的知识。

示例

例 1
p1.trans.x = …​;
MoveJ(p1, v1000, …​);
//只修改了坐标,未修改 confdata 参数,该指令很可能导致执行失败。

ConfJ(Off);
MoveJ(p1, v1000, …​);
//关闭 conf 检查,机器人能够运动到 p1 点,但是轴的姿态不确定。

注意

ConfJ 指令对应 MoveJ 指令,不对其他运动指令产生影响,也不会对「点位运动至」的 conf 设定产生影响。

15.4.8.5 Conf

说明

ConfL 和 ConfJ 的统一开启、关闭指令。具体效果为:
Conf on 等效:ConfL on 和 ConfJ on。
Conf off 等效:ConfL off 和 ConfJ off。

示例

例 1
Conf(on);
MoveL(p0, v1000, …​);
MoveJ(p1, v1000, …​);
//等效为下面的指令:
ConfL(on);
ConfJ(on);
MoveL(p0, v1000, …​);
MoveJ(p1, v1000, …​);

15.4.8.6 VelSet

说明

当机器人搬运易碎物品时,可使用 VelSet 指令调节最大运动速度以达到更加平顺的运动效果。机器人在实际运动路径下,每个关节的最大速度能力往往并非恒定值,而是会随着负载状态、本体姿态等因素始终处于变化中,VelSet 指令是对特定任务路径下的最大速度能力曲线进行的缩放,缩放后的最大速度能力曲线同样也是一条变化的曲线。

定义

VelSet(gain);
gain,数据类型 int,按照百分比来指定最大速度能力的大小,取值范围 1%~100%,其中 100% 对应最大加速度,超过限制范围机器人会报错。

示例

例 1
VelSet(50);
将最大速度能力设置为机器人默认最大速度的一半。

注意

1.VelSet 指令只影响所在的 RL 工程的运动指令,对非工程的 JOG 功能、运动至功能、快速移动功能等均不生效。
2.VelSet 功能会打断转弯区,请勿在需要转弯区的运动指令之间插入 VelSet 指令。
3.VelSet 指令和程序运行速率调整滑块的功能区别:程序运行速率调整滑块修改的是用户期望速度,如 V4000 的运动指令,在 50% 的滑块控制下,实际相当于 V2000 的用户期望速度,但假如此时机器人处于极限工况,此运动指令能够达到的实际最大速度只有 V1000,那么不管速度滑块处于 50% 还是 100% 的时候,机器人实际的运动速度是不会改变的,因为不论是 V2000 还是 V4000,都超过了 V1000,所以在这个区间范围内改变期望速度,对实际执行速度不会造成影响;相反,VelSet 50 并不改变用户期望速度,而是在运动规划的过程中,将该运动指令能达到的实际最大速度缩小了 50%,同样以此运动指令为例,实际机器人的运动速度将会缩小一半,从原本的 V1000 变为 V500。这两个功能的区别需要用户在使用的过程中能够加以区分。
4.发生以下操作时,速度自动恢复为默认大小(100%):

  • RL 程序被手动重置时(PP to Main)

  • 加载新的 RL 程序时

15.4.8.7 AccSet

说明

当机器人搬运易碎物品时,可使用 AccSet 指令调节加速度以达到更加平顺的运动效果。

定义

AccSet(acc, ramp);
Acc,数据类型 int,按照系统预设值的百分比大小指定加速度的大小,取值范围 30%~100%,其中 100% 对应最大加速度,超过限制范围机器人会报错。
Ramp,数据类型 int,按照系统预设值的百分比大小指定加加速度(Jerk),取值范围 30%~100%,其中 100% 对应最大加加速度,超过限制范围机器人会报错。

示例

例 1
AccSet(50, 50);
加速度、加加速度设置为默认的一半。

注意

发生以下操作时,加速度自动恢复为默认大小(100%):

  • RL 程序被手动重置时(PP to Main)

  • 加载新的 RL 程序时

15.4.8.8 BreakLookAhead

说明

该指令通知控制系统取消前瞻,强制取消上一条运动指令和下一条运动指令之间的转弯区。机器人 TCP 将运行至上一条运动指令的目标点后,再向下一个点位运动,不衔接转弯区。程序指针也将等待 TCP 运行至上一条运动指令的目标点后,再继续往下前瞻扫描。

定义

指令无参数和返回值。

示例

例 1
MoveL(P1, v1000, z50, tool0);
BreakLookAhead
MoveL(P2, v1000, z50, tool0);
MoveL(P3, v1000, z50, tool0);
1)点位 P1 的转弯区设置为 z50,由于 BreakLookAhead 指令存在,此处前瞻将取消,转弯区也将取消,机器人 TCP 会精确运动至 P1 点,再向 P2 运动。而 P2 和 P3 之间没有 BreakLookAhead 指令,因此在 P2 点会前瞻并且保留 z50 转弯区向 P3 运动。
2)BreakLookAhead 指令与 wait 0 指令效果完全相同。

15.4.8.9 GetRobotMaxLoad

说明

获取当前型号机器人的最大负载值。

定义

Ret = GetRobotMaxLoad();
Ret,返回值,数据类型 int,最大负载。

示例

例 1
int maxload = GetRobotMaxLoad();
print(maxload);
以 xMate 7 为例,返回值为 7。

15.4.8.10 GetRobotState

说明

获取控制系统当前的运行状态。用 4 个字节的 bit 信息来表示控制系统的状态,包括故障、紧急停止、安全门、操作模式、伺服模式、运动状态等信息。具体如下表。

定义

Ret = GetRobotState();
Ret,返回值,数据类型 byte 数组,用四个 byte 类型来表示机器人状态。

示例

例 1
byte st[4] = GetRobotState();
print(st);
返回 {0, 5, 0, 0},查表可知当前状态为:无故障,电机已上电,自动模式,机器人运动状态,伺服处于位置模式。

序号 状态位 含义

1

Byte[1].bit[1]

1:控制系统未授权

2

Byte[1].bit[2]

1:控制系统可恢复故障

3

Byte[1].bit[3]

1:控制系统致命错误

4

Byte[1].bit[4]

1:伺服系统故障

5

Byte[1].bit[5]

1:伺服系统致命故障

6

Byte[1].bit[6]

1:紧急停止

7

Byte[1].bit[7]

1:安全门停止

8

Byte[1].bit[8]

保留

9

Byte[2].bit[1]

上电状态,0:电机未上电;1:电机已上电

10

Byte[2].bit[2]

机器人运动状态,0:空闲;1:运动中

11

Byte[2].bit[3]

操作模式,0:手动模式;1:自动模式

12

Byte[2].bit[4]

伺服模式,0:位置模式;1:力矩模式

13

Byte[2].bit[5]

保留

14

Byte[2].bit[6]

保留

15

Byte[2].bit[7]

保留

16

Byte[2].bit[8]

保留

17

Byte[3]

保留

18

Byte[4]

保留

15.4.8.11 AutoIgnoreZone

说明

用于指定是否允许控制系统自动忽略转弯区。

定义

AutoIgnoreZone(true/false);
true,允许控制系统自动忽略转弯区(这也是控制系统的默认状态)。
false,不允许控制系统自动忽略转弯区。

15.4.8.11

如上图所示:机器人运行两条 MoveL 指令,中间含有 z50 的转弯区。机器人在运动的过程中,为了运动的柔顺性和安全性,需要从当前位置,向前前瞻一段距离。例如,机器人运动到 P0 点时,前瞻到了 P1 点。在此过程中,控制系统会对 p0 到 p1 点间的信息进行预处理。
机器人向前运动的过程中,前瞻终点也在不断向前移动,在某一时刻,前瞻终点 p1 和转弯区起点 p2 重合。此时,如果控制系统已经收到了第二条运动指令,便可正常生成转弯区,控制机器人沿着预定的轨迹运动;如果控制系统未能收到第二条运动指令,则无法生成转弯区,此时控制系统会依据 AutoIgnoreZone 指令状态对转弯区进行处理。具体处理逻辑如下:
AutoIgnoreZone true:控制系统不会等待第二条运动指令,而是将转弯区取消,直接向着 P3 点运动。
AutoIgnoreZone false:控制系统会等待第二条运动指令,在此过程中,机器人会降低运动速度,直至生成转弯区轨迹。若机器人运动到 p2 点时,仍未收到第二条运动指令,则机器人会停止运动,并通过 HMI 报错。
机器人未能及时收到第二条运动指令,往往在于两条运动指令间加入了过多的非运动指令,例如:

15.4.8.11 2

两条运动指令间加入了非常多的打印指令,控制系统处理完第一条运动指令后,经过很长时间才能收到第二条运动指令。

示例

例 1
AutoIgnoreZone(true);
MoveL(p3, v1000, z50, tool0);
MoveL(p4, v1000, fine, tool0);
允许控制系统自动忽略转弯区。

例 2
AutoIgnoreZone(false);
MoveL(p3, v1000, z50, tool0);
MoveL(p4, v1000, fine, tool0);
不允许控制系统自动忽略转弯区。

15.4.8.12 MotionWaitAtFinePoint true/false

说明

机器人静止状态时,点击启动,控制系统会依据前瞻参数,前瞻一段距离后再启动机器人。该指令用于设定,当前瞻遇到 fine 点时,机器人是否立即启动运动。
Fine 点:指的是没有衔接转弯区的目标点,即转弯区参数写作 fine 的目标点。

定义

MotionWaitAtFinePoint(true/false);
MotionWaitAtFinePoint true:控制系统严格按照前瞻参数,控制机器人的启动,当前瞻距离达到前瞻参数设定值或前瞻完所有运动指令时,机器人才启动运动。此状态下,控制系统能够保证设定的前瞻距离长度。
MotionWaitAtFinePoint false:控制系统不严格遵守前瞻参数,当前瞻遇到 fine 点时,机器人立即启动运动。此状态下,遇到非常复杂的程序逻辑,机器人依然能够顺利启动,但是无法保证前瞻距离的长度。
控制系统默认状态:MotionWaitAtFinePoint false。

示例

例 1
MotionWaitAtFinePoint(true);
MoveL(p1, v1000, fine, tool0);
MoveL(p2, v1000, fine, tool0);
MoveL(p3, v1000, fine, tool0);
MoveL(p4, v1000, fine, tool0);
MoveL(p5, v1000, fine, tool0);
控制系统前瞻到 p1 点时,不会立即启动机器人,而是检查当前前瞻距离是否达到了前瞻参数设定长度,从而决定是否启动机器人。

例 2
MotionWaitAtFinePoint(false);
MoveL(p1, v1000, fine, tool0);
MoveL(p2, v1000, fine, tool0);
MoveL(p3, v1000, fine, tool0);
MoveL(p4, v1000, fine, tool0);
MoveL(p5, v1000, fine, tool0);
控制系统前瞻到 p1 点时,不会检查当前前瞻距离是否达到了前瞻参数设定长度,而是立即启动机器人。

15.4.8.13 IgnoreOverride

说明

焊接、涂胶等对沿路径的运动速度有严格要求的场景,希望工艺段的运动速度不受全局速率影响。可以通过该指令,暂时屏蔽速率滑块对运动指令的影响,使指定某段运动指令、轨迹不受全局速率影响。
该指令支持在自动模式和手动模式下使用。手动模式下,运动速度受 v250 限制,速度超过 v250,按照 v250 执行。自动模式下则按期望速度运动。

定义

IgnoreOverride(On/Off);
IgnoreOverride On 表示其后运动指令不受速率滑块影响。
IgnoreOverride Off 效果与其相反。

示例

例 1
MoveJ(p1, v1000, …​);//受滑块速率影响
IgnoreOverride(On);
MoveJ(p2, v1000, …​); //不受滑块速率影响
MoveJ(p3, v1000, …​); //不受滑块速率影响
IgnoreOverride(Off);
MoveJ(p4, v1000, …​); //受滑块速率影响

例 2(手动模式)
IgnoreOverride(On);
MoveJ(p2, v1000, …​);//不受滑块速率影响,速度按v250执行
MoveJ(p3, v100, …​);//不受滑块速率影响,速度按v100执行
IgnoreOverride(Off);

例 3(自动模式)
IgnoreOverride(On);
MoveJ(p2, v1000, …​);//不受滑块速率影响,速度按v1000执行
MoveJ(p3, v100, …​);//不受滑块速率影响,速度按v100执行
IgnoreOverride(Off);

注意

受影响的运动指令:MoveAbsJ、MoveJ、MoveL、MoveC、MoveCF、MoveT、SearchL、SearchC、TrigL、TrigC、TrigJ。
该指令未立即执行指令,不打断转弯区。
只能在运动任务中使用且不能在 Inzone 中使用,否则报错。

15.4.8.14 SpeedRefresh

说明

用于覆盖当前运动程序任务中的速度值。

定义

SpeedRefresh(override);
override,数据类型 int,取值范围:[1%, 100%],速度覆盖值超过限值范围机器人会报错。

示例

例 1
SpeedRefresh(70);
将当前的速度覆盖值设置为 70%。

注意

  1. 执行 pptomain、pptofunc、to 光标、重新加载工程、进入或退出 demo 时,通过 SpeedRefresh 指令设置的速度值会被清除,并恢复为示教器界面上设定的程序运行速度。

  2. 优先级说明:如果通过 SpeedRefresh 设置了速度值,则以该指令设置的速度为准;如果在 SpeedRefresh 指令执行后,手动调整了机器人运行速度(例如拖动示教器上的速度滑条),则之后将以手动调整的速度为准。

  3. SpeedRefresh 指令在转弯区生效。

  4. SpeedRefresh 指令可以设置超过手动模式下的程序速度上限、自动模式下的初始程序速度上限速度值,请谨慎使用。(在自动模式下运行 RL 程序时,如果点击暂停并切换到手动模式,再点击「运行」按钮继续执行,此时程序运行速度将取「手动模式下的程序速度上限」和「SpeedRefresh 设置的速度值」两者中的较小值)

  5. 通过 SpeedRefresh 设置的速度覆盖值不会立即完成,下达命令与物理机械臂产生速度影响之间会存在一定时间滞后。

15.4.8.15 CSpeedOverride

说明

用户读取当前速度覆盖值。

定义

Ret = CSpeedOverride();
Ret,数据类型 int,取值范围 1~100% 速度覆盖值。

示例

例 1
int override = CSpeedOverride();
print(override);
若当前速度覆盖值为 70%,则返回 70。

15.4.8.16 SetRobotJointsMaxAcc

说明

用于动态修改机器人轴的最大加速度值,当需要机器人放大轴的最大加速度值,提升节拍,增加机器人运行速度时,可使用该指令对每个轴设置最大加速度。指令的效果与通过 HMI 设置运动参数下的「最大轴加速度」是一致的,该指令可以针对特定的运动指令设置该效果。

定义

SetRobotJointsMaxAcc(jointval1, jointval2, jointval3, jointval4, jointval5, jointval6, jointval7);
jointval1 ~ jointval7,数据类型 double/int,对应轴的最大加速度值,单位(°/s²)。

示例

例 1
SetRobotJointsMaxAcc(80000.0, 70000.0, 70000.0, 150000.0, 150000.0, 20000.0, 20000.0);

注意

当两段轨迹存在转弯区时,转弯区按照最大轴加速度小的约束生成。

15.4.8.17 SetRobotJointsMaxJerk

说明

用于动态修改机器人轴的最大加加速度值,当需要机器人放大轴的最大加加速度值,提升节拍,增加机器人运行速度时,可使用该指令对每个轴设置最大加加速度。指令的效果与通过 HMI 设置运动参数下的「最大轴加加速度」是一致的,该指令可以针对特定的运动指令设置该效果。

定义

SetRobotJointsMaxJerk(jointval1, jointval2, jointval3, jointval4, jointval5, jointval6, jointval7);
jointval1 ~ 7,数据类型 double/int,对应轴的最大加加速度值,单位(°/s³)。

示例

例 1
SetRobotJointsMaxJerk(30000.0, 27000.0, 27000.0, 50000.0, 40000.0, 60000.0, 60000.0);

注意

当两段轨迹存在转弯区时,转弯区按照最大轴加加速度小的约束生成。

15.4.8.18 ResetRobotJointsMaxAcc

说明

用于恢复轴最大加速度为默认的值,配合 SetRobotJointsMaxAcc 指令使用;生效后以上指令的效果被清除。

定义

ResetRobotJointsMaxAcc(); 无参数。

示例

例 1
ResetRobotJointsMaxAcc();

15.4.8.19 ResetRobotJointsMaxJerk

说明

用于恢复轴最大加加速度为默认的值,配合 SetRobotJointsMaxJerk 指令使用;生效后以上指令的效果被清除。

定义

ResetRobotJointsMaxJerk(); 无参数。

示例

例 1
ResetRobotJointsMaxJerk();

15.4.8.20 SetTransmissionOverloadParams

说明

用于动态修改机器人的传动过载系数,当需要机器人适当放大轴的传动过载系数,提升节拍,增加机器人运行速度时,可使用该指令对每个轴设置传动过载系数。指令的效果与通过 HMI 设置本体参数下的过载系数中的「传动过载系数」是一致的,但可以针对特定的运动指令设置该效果。

定义

SetTransmissionOverloadParams(jointval1, jointval2, jointval3, jointval4, jointval5, jointval6, jointval7);
jointval1 ~ 7,数据类型 double/int,对应轴的传动过载系数。

示例

例 1
SetTransmissionOverloadParams(0.95, 0.95, 0.95, 0.95, 1.5, 0.95, 1.0);

注意

当两段轨迹存在转弯区时,转弯区按照传动过载系数小的约束生成。

15.4.8.21 ResetTransmissionOverloadParams

说明

用于恢复机器人的传动过载系数为原来的值,配合 SetTransmissionOverloadParams 指令使用;生效后该指令的效果被清除。

定义

ResetTransmissionOverloadParams(); 无参数。

示例

例 1
ResetTransmissionOverloadParams();

15.4.8.22 SetAccRampTime

说明

用于设置加速度上升时间,机器人加速度从最小值增加到最大值所消耗的时间。数值越小,机器人加速越快;数值越大,机器人加速越平缓。

定义

SetAccRampTime(ramptime);
ramptime,数据类型 double/int,加速度上升时间值,工业机器人的范围为 [0.02, 0.5],协作机器人的范围为 [0.05, 1],单位 s。

示例

例 1
SetAccRampTime(0.15);

15.4.8.23 ResetAccRampTime

说明

用于恢复默认的加速度上升时间,配合 SetAccRampTime 指令使用。

定义

ResetAccRampTime();
无参数;

示例

例 1
ResetAccRampTime();

15.4.8.24 SetVarValue

说明

实现在转弯区进行变量赋值,并且前瞻时不触发赋值操作。

定义

SetVarValue(var1, var2);
将数据源 var2 赋值给被赋值变量 var1
var1,可选数据类型:byte、int、double、bool、未绑定功能码的可写寄存器变量。
var2,可选数据类型:byte、int、double、bool、IO 变量、寄存器变量、函数返回值、表达式。

示例

例 1
15.4.18.28
// 机器人当前位于p0位置
MoveL(p1);
SetVarValue(var1, var2); // 在转弯区起点将变量var2赋值给变量var1
MoveL(p2);

注意

赋值过程中会发生隐式转换,如:
int a = 1;
double b = 20.22;
SetVarValue(a, b);
执行赋值操作后,变量 a 的值为 20。

15.4.8.25 SetStopAccRampTime

说明

用于设置到位停止阶段加速度上升时间,即针对无转弯区目标点,机器人停止阶段的加速度从最小值增加到 0 的时间。数值越小,机器人停止越快;数值越大,机器人停止越平缓。若加速度上升时间大于到位停止阶段加速度上升时间,按照较大的加速度上升时间停止。

定义

SetStopAccRampTime(ramptime);
ramptime,数据类型 double/int,到位停止阶段加速度上升时间值,范围为 [0.01, 1],单位 s。

示例

例 1
SetStopAccRampTime(0.15);

15.4.8.26 ResetStopAccRampTime

说明

用于恢复默认的到位停止阶段加速度上升时间,配合 SetStopAccRampTime 指令使用。

定义

ResetStopAccRampTime();
无参数;

示例

例 1
ResetStopAccRampTime();

15.4.8.27 MotionSupJointTrq

说明

运动监控用于在 RL 程序中随时调整机器人各关节最大出力阈值。

定义

MotionSupJointTrq(J1, J2, J3, J4, J5, J6, J7);

示例

例 1
MotionSupJointTrq(50, 50, 70, 50, 60, 60, 50);

15.4.8.28 SetMaxMotionJerk

说明

设置机器人底层 otgc jerk 的数值,默认值为 300,可以通过增大此值以实现快速启停的效果,pptomain 后恢复默认值。

定义

SetMaxMotionJerk(Num);
Num,数据类型 int/double,大于 100。

示例

例 1
SetMaxMotionJerk(10000);

15.4.8.29 VibSuppression

说明

设置振动抑制功能开关的指令。Pptomain 时,振动抑制功能恢复 HMI 界面设置的状态(见 9.8 章中动力学设置模块的振动抑制功能)。

定义

VibSuppression(Type);
Type,数据类型:关键字,on 打开,off 关闭。

示例

例 1
VibSuppression(on);
MoveAbsJ(p1, v500, fine, tool1);
MoveAbsJ(p2, v500, fine, tool1);
MoveAbsJ(p3, v500, fine, tool1);
VibSuppression(off);
MoveAbsJ(p4, v500, fine, tool1);

执行到 VibSuppression(on) 指令时,控制器开启振动抑制功能。后续 p1~p3 点的运动受到振动抑制功能的影响,启停时机器人的振动得到抑制,机器人的轨迹精度得到提高。执行到 VibSuppression(off) 指令时,控制器关闭振动抑制功能。

15.4.8.30 MotionSup

说明

用于打开、关闭碰撞检测功能。

定义

MotionSup(type [, level, event]);
Type,数据类型:关键字,On 打开,Off 关闭。
Level,数据类型 int,MotionSup On 的额外参数,修改碰撞检测灵敏度百分比,范围:[1, 200]。
Event,数据类型 string,MotionSup On 的额外参数,设置碰撞后的行为。

  • "softstop" 柔顺停止

示例

例 1
MotionSup(On);
//…​ 其他指令 MotionSup(Off);
开启碰撞检测后执行其他指令,执行完成后使用 MotionSup Off 关闭碰撞检测。

例 2
MotionSup(On, 200, "softstop");
开启碰撞检测,设置检测灵敏度百分比为 200%,并设置检测到碰撞后触发的行为为柔顺停止。

15.4.8.31 MotionSupPlus

说明

MotionSupPlus(Motion Supervision Plus)运动监控用于在 RL 程序中随时调整机器人各关节碰撞检测灵敏度参数。

定义

MotionSupPlus(x1, x2, x3, x4, x5, x6, x7);
x1 ~ x7,分别表示关节 1 到关节 7 碰撞检测灵敏度,单位 %。

示例

例 1
MotionSupPlus(5, 20, 7, 20, 6, 20, 5);
表示 7 个关节灵敏度分别为 5、20、7、20、6、20、5。
注意:
当用于六轴机器人,也需要设置7个参数,其中前6个参数起作用,对应1~6关节;
该指令支持协作机器人和六轴工业机器人,不支持三、四轴工业机器人。

15.4.8.32 MotionSupJointTrq

说明

MotionSupJointTrq(Motion Supervision Joint Torque)运动监控用于在 RL 程序中随时调整机器人各关节传动力限制参数。

定义

MotionSupJointTrq(x1, x2, x3, x4, x5, x6, x7);
x1 ~ x7,分别表示关节 1 到关节 7 传动力矩限制参数,单位 Nm。

示例

例 1
MotionSupJointTrq(100, 91, 59, 14, 14, 14, 5);
表示 7 个关节传动力矩限制参数分别为 100 Nm、91 Nm、59 Nm、14 Nm、14 Nm、14 Nm、5 Nm。
注意:
当用于六轴机器人,也需要设置 7 个参数,其中前 6 个参数起作用,对应 1~6 关节。
该指令支持协作机器人和六轴工业机器人,不支持三、四轴工业机器人。