15.1.1 Int
说明 |
整型 int 变量的取值范围是 -2147483647 ~ 2147483647,建议赋值在规定范围内,如果超过范围则会随机赋值,使用时请不要超过最大取值范围。 |
示例 |
在变量列表中定义: |
15.1.3 Bool
说明 |
bool 型变量主要用于状态或逻辑判断,取值为 true 或者 false。 |
示例 |
在变量列表中定义: |
15.1.4 String
说明 |
字符串类型变量由多个字母或者数字组成。 |
示例 |
在变量列表中定义: 字符串类型变量支持 " + "操作,可实现字符串拼接。 |
15.1.5 Array
说明 |
数组是由相同类型的变量组成的集合,可以是一维也可以是多维。数组中的元素使用下标来访问,每一维的下标都从 1 开始。数组总长度不允许超过 1000。 |
示例 |
在变量列表中定义: |
15.1.6 byte
说明 |
byte 表示 RL 语言中的无符号字节,相当于 C++ 中的 unsigned char。 |
示例 |
在变量中定义: |
15.1.7 clock
说明 |
clock 用于计时,clock 指令就像用于计时的秒表。 |
示例 |
在变量中定义: |
15.1.8 隐式类型转换
说明 |
目前,在变量列表中设置数据时,限制了数据类型,即不符合变量类型的值不能成功输入,从而避免类型隐式转化。 |
示例 |
在定义整型变量 counter 时,只能输入整数,而不能输入小数。 |
15.1.9 Confdata
说明 |
confdata(Robot Configuration Data)用于定义空间目标点对应的形态配置数据。 |
定义 |
需要 7 个参数来构成完整的 confdata,包括: |
示例 |
同一个末端笛卡尔位姿有多组不同的逆解,cfx 使用 0~8 这 8 个整数代表各组逆解,详细解释如下: |
15.1.10 Jointtarget
说明 |
存储机器人关节角度和外部轴位置。 |
定义 |
robax,机器人关节角度(Robot Axis),数据类型 double,包含 7 个double 型的成员,分别存储机器人 7 个关节的角度 Degree。 |
示例 |
在变量列表中定义: |
结构体赋值 |
jointtarget j1 = J:{-268.649031, 321.536626, 259.344893, 55.143011, 66.111070, 169.543340, 29.916387}{EJ 0,0,0,0,0,0}; |
15.1.11 load
说明 |
load 变量类型用于存储机器人负载的动力学参数。
load 型变量不支持单独创建,只能作为 tool 型变量的成员在标定工具界面手动修改,或者使用负载辨识功能由控制系统自动修改。
|
定义 |
在 xCore 系统中负载被当做刚体来处理,用于描述负载的参数如下: |
15.1.12 orient
说明 |
存储坐标系或空间刚体的姿态信息。orient 类型的变量不支持单独创建或者修改,仅作为某些变量的成员变量。 |
定义 |
RL 语言系统使用四元数来表示姿态,因此共有 4 个分量: |
备注 |
通常情况下我们使用旋转矩阵来描述刚体的姿态,四元数是另一种更为简洁的姿态描述方式。四元数的四个分量满足如下关系:q1^2 + q2^2 + q3^2 + q4^2 = 1 |
15.1.13 pos
说明 |
用来存储三维空间的位置信息。 |
定义 |
RL 语言系统使用笛卡尔坐标系来描述三维空间,因此 pos 变量有 x、y、z 三个分量。 |
15.1.14 pose
说明 |
存储笛卡尔空间的位置和姿态。 |
定义 |
X,数据类型 double,位置的 X 坐标。 |
结构体赋值 |
pose pose_obj = PE:{{X,Y,Z},{Q1,Q2,Q3,Q4}}; |
15.1.15 robtarget
说明 |
存储三维空间的笛卡尔位置和姿态,用于 MoveJ、MoveL、MoveC 以及 MoveT 指令。
不当使用会导致人员受伤或设备损坏! |
定义 |
Trans,空间位置,数据类型 pos,保存在参考坐标系下的位置偏移量。 |
示例 |
|
结构体赋值 |
robtarget rob1 = p:{{849.572593, -347.654631, 35.341636},{-0.361604, 0.078279, 0.640346, -0.673106}, -1.058584}{cfg 1,2,3,4,5,6,7,8}{EJ 1,2,3,4,5,6}; // 3.2 版本新增:支持欧拉角赋值 |
注意 |
欧拉角的单位为度(°)。 robtarget 内部同时维护欧拉角(A/B/C)和四元数(q1–q4)两套表示。当其中任一表示被修改时,另一表示将自动同步更新(前提是数据合法)。 四元数合法性处理规则: 欧拉角赋值行为说明: |
15.1.16 signalxx
说明 |
signalxx 类型的变量用于描述输入与输出信号。
|
示例 |
例1: 例2: |
15.1.17 speed
说明 |
用来定义机器人和外部轴的运动速度。 |
定义 |
speed 型变量包含 5 个成员变量,分别是:关节速度百分比、TCP 线速度、空间旋转速度、外轴线速度、外轴角速度。 |
示例 |
在变量列表中定义: |
结构体赋值 |
speed speed0 = v:{40,300,100,1000,200}; |
系统预定义了常用的速度变量,具体如下表所示:
| 名称 | 关节速度百分比 | TCP 线速度 | 空间旋转速度 | 外部轴角速度 | 外部轴线速度 |
|---|---|---|---|---|---|
v5 |
1% |
5 mm/s |
200°/s |
5°/s |
2 mm/s |
v10 |
3% |
10 mm/s |
200°/s |
10°/s |
5 mm/s |
v25 |
5% |
25 mm/s |
200°/s |
25°/s |
12 mm/s |
v30 |
5% |
30 mm/s |
200°/s |
30°/s |
15 mm/s |
v40 |
5% |
40 mm/s |
200°/s |
40°/s |
20 mm/s |
v50 |
8% |
50 mm/s |
200°/s |
50°/s |
25 mm/s |
v60 |
8% |
60 mm/s |
200°/s |
60°/s |
30 mm/s |
v80 |
8% |
80 mm/s |
200°/s |
80°/s |
40 mm/s |
v100 |
10% |
100 mm/s |
200°/s |
100°/s |
50 mm/s |
v150 |
15% |
150 mm/s |
200°/s |
150°/s |
75 mm/s |
v200 |
20% |
200 mm/s |
200°/s |
200°/s |
100 mm/s |
v300 |
30% |
300 mm/s |
200°/s |
300°/s |
150 mm/s |
v400 |
40% |
400 mm/s |
200°/s |
400°/s |
200 mm/s |
v500 |
50% |
500 mm/s |
200°/s |
500°/s |
250 mm/s |
v600 |
60% |
600 mm/s |
200°/s |
600°/s |
300 mm/s |
v800 |
70% |
800 mm/s |
200°/s |
800°/s |
400 mm/s |
v1000 |
100% |
1000 mm/s |
200°/s |
1000°/s |
500 mm/s |
v1500 |
100% |
1500 mm/s |
200°/s |
1500°/s |
750 mm/s |
v2000 |
100% |
2000 mm/s |
200°/s |
2000°/s |
1000 mm/s |
v3000 |
100% |
3000 mm/s |
200°/s |
3000°/s |
1000 mm/s |
v4000 |
100% |
4000 mm/s |
200°/s |
4000°/s |
1000 mm/s |
vmax |
100% |
- |
- |
- |
- |
|
系统预定义的 speed 变量中所有的空间旋转速度都是 200°/s,如果对机器人末端的旋转速度有特殊要求,可根据工艺要求自行定义新的 speed 变量以便使用。 vmax 是唯一一个可以由用户配置的预定义参数,修改方法在8.4.6中已介绍。 |
15.1.18 tool
说明 |
tool 型变量用来记录工具参数,包括机器人所用工具的 TCP、姿态以及动力学参数。
机械部件过载导致寿命降低或损坏。 |
示例 |
Robhold:数据类型 bool,定义工具是否安装在机器人上,True 表示工具安装在机器人上,False 表示工具没有安装在机器人上,当前正在使用外部工具。在进行Jog 或者执行程序时,同时使用的工具/工件组合中,robhold 参数只能有一个为True,即如果工具的robhold 为True,则对应的工件robhold 就必须为false,反之亦然,否则机器人会给出错误提示,并无法进行Jog 或执行相应的程序语句。 注意:
|
结构体赋值 |
tool tool0 = {工具是否手持,{{工具位置},{工具姿态四元数}},{质量,{重心X,重心Y,重心Z},{负载姿态四元数},惯量ix,惯量iy,惯量iz}}; |
15.1.19 Trigdata
说明 |
trigdata 用于存储有关机器人移动期间触发事件的信息数据,包括触发条件和触发动作。 |
示例 |
下面的例子显示了如何使用trigdata: |
15.1.20 wobj
说明 |
wobj 是工件(Work Object)的缩写,工件指被机器人加工、处理、搬运的物体。
正常情况下,如果不定义专门的工件坐标系,那么控制系统将把世界坐标系当作默认的工件坐标系wobj0。但是当使用外部工具时,必须要定义工件坐标系,因为此时编程的路径和速度是指工件的路径和速度,而不是工具的。 |
定义 |
Robhold,定义该工件是否安装在机器人上。True 表示工件安装在机器人上,当前正在使用外部工具;False 表示工件没有安装在机器人上,当前正在使用普通工具。 当使用外部工具时,坐标系的定义链为:工件坐标系相对于用户坐标系定义;用户坐标系相对于法兰坐标系定义。 |
结构体赋值 |
wobj wobj0 = {Robhold, Ufprog, Ufmec, Oframe, uframe_id, {质量,{重心X,重心Y,重心Z},{负载姿态四元数},惯量ix,惯量iy,惯量iz}}; |
15.1.21 zone
说明 |
zone 变量用于定义某一个运动如何结束或者说定义两条运动轨迹之间转弯区的大小。
定义的转弯区的大小不能超过路径长度的一半,如果超过,系统会自动将转弯区缩小到总路径长度一半大小。使用转弯区可以避免机器人频繁启停,显著减少节拍时间。 注意:
|
定义 |
关节轨迹和笛卡尔空间轨迹使用不同的参数来定义转弯区,所以该变量包括 distance 和 percent 两部分。 |
示例 |
在变量列表中定义: |
结构体赋值 |
zone z1 = s:{Distance, Percent}; |
系统预定义了常用的转弯区变量,具体如下表所示。
| 名称 | 笛卡尔空间转弯区大小 | 转弯百分比 |
|---|---|---|
fine |
0 mm |
0% |
z0 |
0.005 mm |
0.0005% |
z1 |
1 mm |
1% |
z5 |
5 mm |
3% |
z10 |
10 mm |
5% |
z15 |
15 mm |
8% |
z20 |
20 mm |
10% |
z30 |
30 mm |
15% |
z40 |
40 mm |
20% |
z50 |
50 mm |
25% |
z60 |
60 mm |
30% |
z80 |
80 mm |
40% |
z100 |
100 mm |
50% |
z150 |
150 mm |
75% |
z200 |
200 mm |
100% |
15.1.22 torqueinfo
说明 |
用来描述机器人受到力和力矩信息。 |
定义 |
joint_torque,数据类型,轴空间力矩信息; |
示例 |
下面的例子显示了如何使用变量类型torqueinfo: |
15.1.23 SocketServer
说明 |
在控制器上建立 Socket TCP 服务器,用来监听外部设备以客户端身份发起的连接。该服务器仅用来监听连接请求,支持多连接。当连接建立之后,会生成一个新的 SocketConn 对象来进行通信。
|
定义 |
Ip,数据类型 string,控制系统使用 ip 参数来匹配网卡,并使用对应的网卡进行网络监听。该参数如果设置为 |
示例 |
例1 |
15.1.24 SocketConn
说明 |
Socket TCP 连接对象,可用于对外部设备的通信。分为两种类型:
|
定义 |
Ip,数据类型 string,机器人作为客户端使用时,该参数表示外部设备服务器的 ip;机器人作为服务器使用时,当外部设备建立连接后,该参数表示外部客户端的 ip。
注意:
|
示例 |
例1 例2 例3 例4 |
15.1.25 FCBoxVol
说明 |
定义一个空间立方体,用于力控开启之后的位置监控或终止条件。 |
定义 |
|
示例 |
|
结构体赋值 |
FcBoxVol fcboxvol0 = FCBV:{Xmin, Xmax, Ymin, Ymax, Zmin, Zmax}; |