跳到主要内容

15.4.3 Trigger 指令

15.4.3.1 TrigIO

说明

TrigIO 用来将一个 trigdata 设置为在运动过程中输出 I/O 的触发器,支持数字输出 DO 和数字组输出 GO。

定义

TrigIO(TrigData, Distance, RefStart, SignalName, Value);
TrigData,数据类型 trigdata,用于存储本条 TrigIO 设置的触发数据的变量。
Distance,数据类型 double,非负数,定义触发事件在路径上的位置偏移,至于该位置偏移是相对路径的起点 or 终点,由 RefStart 定义。
RefStart,数据类型 bool,定义触发位置相对起点(true)还是终点(false)。
SignalName,数据类型 signaldo 或 signalgo,与本次定义的 IO 事件关联的输出信号名称,该信号必须是已经正确设置的输出信号。
Value,数据类型 bool 或 int,定义触发 IO 事件时,指定输出信号的目标值,给定值的数据类型应该与 Signal Name 类型相匹配。

示例

参考 TrigL 的示例

15.4.3.2 TrigReg

说明

TrigReg 用来将一个 trigdata 设置为在运动过程中修改寄存器值;寄存器类型支持 int16、bool、float、bit 四种。

定义

TrigReg(TrigData, Distance, RefStart, RegName, Value);
TrigData, 数据类型trigdata,用于存储本条TrigIReg 设置的触发数据的变量;
Distance, 数据类型double,非负数(负数当成0 处理),定义触发事件在路径上的位置偏移,至于该位置偏移是相对路径的起点or 终点,由RefStart 定义;
RefStart, 数据类型bool,定义触发位置相对起点(true)还是终点(false);
RegName`, 寄存器名字,无数据类型。注意:寄存器无法在RL中新建,需要用户在“机器人-通信-寄存器”页面新建;
Value,数据类型:需支持int16、bool、float、bit,定义了触发寄存器修改事件时,指定寄存器的目标值,给定值的数据类型应该与RegName类型相匹配;如果用户给的值与寄存器类型不符,进行强制类型转换;

示例

参考 TrigL 的示例

15.4.3.3 TrigVar

说明

TrigVar 用来将一个 trigdata 设置为在运动过程中修改 RL 变量值;RL 变量的类型支持 bool、byte、int、double 四种。

定义

TrigVar(TrigData, Distance, RefStart, VarName, Value);
TrigData, 数据类型trigdata,用于存储本条TrigVar 设置的触发数据的变量;
Distance, 数据类型double,非负数(负数当成0 处理),定义触发事件在路径上的位置偏移,至于该位置偏移是相对路径的起点or 终点,由RefStart 定义;
RefStart, 数据类型bool,定义触发位置相对起点(true)还是终点(false);
VarName, 希望修改的RL 变量名,无数据类型;
Value, 数据类型:需支持bool、byte、int、double,定义了触发RL 变量修改事件时,指定RL变量的目标值,给定值的数据类型应该与VarName类型相匹配;如果用户给的值与RL 变量类型不符,进行强制类型转换;

示例

参考 TrigL 的示例

15.4.3.4 TrigL

说明

TrigL 与 MoveL 类似,都是执行空间直线运动的指令,区别是 TrigL 可以在运动过程中的若干指定位置执行预定义的操作,其他参数的数量与含义二者之间并无差异。

定义

TrigL(ToPoint, Speed, Trigger, Zone, Tool, [Wobj]);
ToPoint,目标位姿(To Point),类型:robtarget,笛卡尔空间描述的目标位姿;
Speed,运动速度,类型:speed,用于指定机器人执行MoveL 时的运动速度,包括机器人末端的平移速度、旋转速度以及外部轴的运动速度;
Trigger, 触发条件和动作,类型:trigdata;trigdata 必须是使用 TrigX 指令处理过之后的trigdata,否则运动到该行时编译器会给出错误提示;
Zone, 转弯区,类型:zone,用来定义当前轨迹的转弯区大小;
Tool, 工具,类型:tool;
[Wobj],工件,类型:wobj;执行该轨迹时使用的工件。当工具安装在机器人上时,该参数可以忽略;当使用外部工具时,必须要指定该参数,且机器人将使用wobj 中存储的数据来计算运动速度和转弯区大小。

示例

15.4.3.4
例 1
VAR trigdata tc1;
VAR trigdata tc2;
VAR trigdata tc3;
…​
// 设置 tc1、tc2、tc3
TrigIO(tc1, 0, true, do2, true);
TrigIO(tc2, 60, false, do2, false);
TrigVar(tc2, 60, false, Bool0, false); // Bool0 为 bool 类型的 RL 变量
TrigReg(tc3, 80, true, r0, false); // r0 为 bool 类型的寄存器
…​
// 运动
MoveL(p1, v500, z50, tool1);
TrigL(p2, v500, tc1, z50, tool1);
TrigL(p3, v500, tc2, fine, tool1);
TrigL(p4, v500, tc3, fine, tool1);

15.4.3.5 TrigC

说明

TrigC 与 MoveC 类似,都是执行圆弧运动的指令,区别是 TrigC 可以在运动过程中的若干指定位置执行预定义的操作,其他参数的数量与含义二者之间并无差异。

定义

TrigC(AuxPoint, ToPoint, Speed, Trigger, Zone, Tool, [Wobj]);
AuxPoint, 辅助点(Auxiliary Point),类型:robtarget,笛卡尔空间描述的目标位姿;
ToPoint, 目标位姿(To Point),类型:robtarget,笛卡尔空间描述的目标位姿;
Speed, 运动速度,类型:speed,用于指定机器人执行MoveL 时的运动速度,包括机器人末端的平移速度、旋转速度以及外部轴的运动速度;
Trigger, 触发条件和动作,类型:trigdata;trigdata 必须是使用 TrigX 指令处理过之后的trigdata,否则运动到该行时编译器会给出错误提示;
Zone, 转弯区,类型:zone,用来定义当前轨迹的转弯区大小;
Tool, 工具,类型:tool;
[Wobj],工件,类型:wobj;执行该轨迹时使用的工件。当工具安装在机器人上时,该参数可以忽略;当使用外部工具时,必须要指定该参数,且机器人将使用wobj 中存储的数据来计算运动速度和转弯区大小。

示例

15.4.3.5
例 1
VAR trigdata tc1;
…​
// 设置 tc1
TrigIO(tc1, 0, true, do2, true);
…​
// 运动
MoveL(p1, v500, z50, tool1);
TrigC(p2, p3, v500, tc1, fine, tool1);

15.4.3.6 TrigJ

说明

TrigJ 与 MoveJ 的运动形式完全相同,都是执行关节空间运动的指令,区别是 TrigJ 可以在运动过程中的若干指定位置执行预定义的操作,其他参数的数量与含义二者之间并无差异。机器人在执行MoveJ 指令时,tcp 的运动轨迹通常是一条弧线。触发Trigger 信号时,TrigJ 也是按照tcp 所走的弧线计算距离的,详情可参看示例。

定义

TrigJ(ToPoint, Speed, Trigger, Zone, Tool, [Wobj]);
ToPoint, 目标位姿(To Point),类型:robtarget,笛卡尔空间描述的目标位姿;
Speed, 运动速度,类型:speed,用于指定机器人执行MoveJ 时的运动速度,包括机器人关节速度,末端的平移速度、旋转速度以及外部轴的运动速度;
Trigger, 触发条件和动作,类型:trigdata;trigdata 必须是使用 TrigX 指令处理过之后的trigdata,否则运动到该行时编译器会给出错误提示;
Zone, 转弯区,类型:zone,用来定义当前轨迹的转弯区大小;
Tool, 工具,类型:tool;
[Wobj],工件,类型:wobj;执行该轨迹时使用的工件。当工具安装在机器人上时,该参数可以忽略;当使用外部工具时,必须要指定该参数,且机器人将使用wobj 中存储的数据来计算运动速度和转弯区大小。

示例

15.4.3.6
例 1
VAR trigdata tc1;
VAR trigdata tc2;
VAR trigdata tc3;
…​
// 设置 tc1、tc2、tc3
TrigIO(tc1, 0, true, do2, true);
TrigIO(tc2, 60, false, do2, false);
TrigReg(tc3, 80, true, r0, false); // r0 为 bool 类型的寄存器
…​
// 运动
MoveJ(p1, v500, z50, tool1);
TrigJ(p2, v500, tc1, z50, tool1);
TrigJ(p3, v500, tc2, fine, tool1);
TrigJ(p4, v500, tc3, fine, tool1);