15.2 基础变量和结构体
RL 指令支持的所有变量类型,其中不可再次分割的 int、double、bool、string 类型属于基础变量(也称为基本变量),它们是所有变量类型的基础。把它们按照一定的规则组合在一起的变量类型,被称为结构体。
15.2.1 结构体的构成
结构体的组合规则通常是对具有实际物理意义的数据进行抽象。
示例:
-
结构体 pos 是将三个 double 组合成了一个三维空间的位置(xyz)。
-
结构体 orient 是将四个 double 组合成了一个描述旋转角度的四元数。
-
结构体 pose 是将位置(pos)和旋转角度(orient)组合成了一个描述机器人位置的姿态参数。
15.2.2 结构体的使用方法
结构体除了作为指令的参数,还可根据使用场景,进行更精细的操作。通过特定的 RL 指令,能够直接修改结构体的数据。
示例1:
Robtarget 结构体由空间位置(pos)、姿态(orient)、配置数据(confdata)、外部轴(double 数组)构成。通过名字可以直接在 RL 函数中直接访问结构体的成员。它们的名字分别是trans(pos), rot(orient), conf(confdata), extax(double),通过名字可以直接在RL函数中直接访问结构体的成员。
robtarget rob1 = ... // 变量列表或者用户自定义了一个笛卡尔变量
rob1.trans.x += 20 // 将点位的 x 数据加20
// trans(pos)的结构体定义中,它由xyz三个变量组成
// 所以最后访问rob的x坐标是 rob1.trans.x
print(rob1.trans) // 只打印位置数据
示例2:
wobj工件坐标系,可以进行下面操作:
// 以默认工件wobj0为例
wobj0.robhold // 是否手持工件,bool
wobj0.ufprog // 工件坐标系的用户坐标系是否移动,bool 不常用
wobj0.ufmec // 工件坐标系的用户坐标系关联的机械单元,string 常用于电镀线、传送到跟踪
wobj0.oframe // 工件坐标系的位姿,Pose
wobj0.oframe.x // 工件坐标系的位姿 Pose 的 x 坐标
wobj0.oframe.y // 工件坐标系的位姿 Pose 的 y 坐标
wobj0.oframe.z // 工件坐标系的位姿 Pose 的 z 坐标
wobj0.q1 // 工件坐标系的位姿 Pose 的四元数
wobj0.uframe_id // 工件相关的用户坐标系 id
其他复杂结构体也可参照该方法进行结构体访问。