带姿态的运动协调变换 (MCTO)
此信息适用于
Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。带姿态的运动协调变换 (MCTO) 指令用于在笛卡尔坐标系统和以机器人关节轴为坐标的机器人系统之间建立双向变换。固定角度惯例中的 XYZ 平移坐标和 RxRyRz 姿态坐标可定义笛卡尔坐标。机器人的几何结构配置通常具有非正交关节轴。坐标系统类型(如 Delta)可指定几何结构配置。
架构 | 标准 | 安全 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 否 | 否 |
Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 否 |
此为转换指令。使用时,请遵循以下步长:
- 在梯形逻辑中,插入一个指令,以便在每次执行该指令时,梯级输入条件均会由 false 转换为 true。
- 在结构化文本例程中,插入指令的条件以便仅在转换时执行。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
MCTO(CartesianSystem, RobotSystem, MotionControl, WorkFrame, ToolFrame);
操作数
重要提示:
在同一程序中,切勿将同一标签名称用于多个指令。在任何情况下,均不要对任何指令输出标签执行写操作。
注意:
如果在运行模式下更改指令操作数,必须接受待处理的编辑内容,控制器模式必须从编程模式循环切换到运行模式,以便更改生效。
配置
下表给出了用于配置指令的操作数。运行期间无法更改这些操作数。
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
Cartesian System | COORDINATE_SYSTEM | 标签 | 用于对运动进行编程的笛卡尔坐标系统。 对用于对运动进行编程的笛卡尔坐标系统的引用。对于支持 REF_TO 运动数据类型的控制器,坐标系统操作数类型可以替换为 REF_TO_COORDINATE_SYSTEM 类型。 |
Robot System | COORDINATE_SYSTEM | 标签 | 控制实际设备的非笛卡尔坐标系统。 对控制实际设备的非笛卡尔坐标系统的引用。对于支持 REF_TO 运动数据类型的控制器,坐标系统操作数类型可以替换为 REF_TO_COORDINATE_SYSTEM 类型。 |
Motion Control | MOTION_INSTRUCTION | 标签 | 指令的控制标签。 |
Work Frame | POSITION_DATA | 立即数 标签 | 工作坐标系偏移用于相对于机器人基本坐标系原点来定位机器人的用户工作坐标系。这些偏移包括 XYZ 值和 RxRyRz 值。这样一来,可在用户工作空间或全局坐标系中编写程序,然后转换至机器人基本坐标系。 若要使目标位置绕机器人基本坐标系统的 X、Y 或 Z 轴旋转或沿该坐标系统的 X、Y 或 Z 轴偏移,可采用旋转度数为单位在 Rx、Ry 和 Rz 标签成员中输入旋转角度,并以坐标单位在 X、Y 和 Z 标签成员中输入偏移距离。将 ID 成员设置为大于或等于零的值。 若要将工作坐标系保持在机器人基本坐标系处,可使结构值保持为零,或将操作数标签值设置为零。 |
Tool Frame | POSITION_DATA | 立即数 标签 | 工具中心点 (TCP) 偏移用于相对于手臂末端中心定位工具中心。这些偏移包括 XYZ 值和 RxRyRz 值。 若要使目标位置将具有平移和/或姿态偏移的附加工具考虑在内,可采用坐标单位在 X、Y 和 Z 标签成员中输入工具偏移距离。以旋转度数为单位在 Rx、Ry 和 Rz 标签成员中输入工具旋转度数。将 ID 成员设置为大于或等于零的值。 要使目标位置仅反映手臂末端处的点,可使结构值保持为零,或将操作数标签值设置为零。 |
有关配置坐标系统的详细信息,请参见《运动坐标系用户手册》(出版号 MOTION-UM002)。
重要提示:
在任何情况下,均不要对任何指令输出标签执行写操作。
影响数学状态标志
否
严重/轻微故障
如果提供的引用无效或引用类型错误,则此指令将生成严重故障。如果将未初始化的引用或类型不正确的引用传递给坐标系统操作数,则可能会发生严重故障。对于数组索引故障,请参阅 数组索引编制。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 与梯级输入条件为假时相同。 |
梯级输入条件为假 | .EN、.DN 和 .ER 设置为假。 |
梯级输入条件为真,.EN 位为假 | .EN 位设置为真,指令执行。 |
梯级输入条件为真,.EN 位为真 | 不适用 |
后扫描 | 与梯级输入条件为假时相同。 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参阅“梯形图”表中的“预扫描”行。 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为假”行,然后参见“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
两个坐标系统之间 MCTO 指令的数据流
为关节坐标系统建立参考坐标系,确保变换正常进行。有关为机器人坐标系统建立参考坐标系的更多信息,请参见相应的几何结构配置主题。
建立机器人参考坐标系后,在变换未启用时,机器人可运动至关节空间中的任一预期位置。首次启动 MCTO 指令时,首先会执行正向变换,设置相应的笛卡尔坐标位置。MCTO 指令处于活动状态时,会建立一个双向变换关系,由此,如果控制笛卡尔坐标系统沿线性路径运动到笛卡尔空间中的目标位置,机器人将沿线性路径运动至笛卡尔目标坐标。同样,如果控制机器人运动到关节坐标位置,机器人会沿非笛卡尔路径运动到目标关节位置处。MCTO 指令激活后,系统会为笛卡尔坐标系统和机器人坐标系统保留坐标系统相关数据。
下图所示为笛卡尔坐标系统 (X,Y,Z,Rx,Ry,Rz) 转换为具有 5 轴的 Delta 机器人几何结构 (J1J2J3J4J5) 过程。Rx、Ry 和 Rz 表示绕 X、Y、Z 轴正向旋转的姿态。

配置 MCTO 指令
下图所示为 MCTO 指令的配置示例,其中笛卡尔坐标系统为源坐标系统,Delta 5 轴几何结构为目标坐标系统。在“坐标系统”(coordinate system) 对话框中配置源和目标坐标系统。

MCTO 激活时正向变换期间的数据流
通过启用 MCTO 指令在机器人系统的关节坐标上执行运动时,将执行正向变换。在正向变换期间,当前关节角度位置将基于几何结构计算对应的笛卡尔坐标位置。

MCTO 激活时反向变换期间的数据流
MCTO 处于激活状态时,在反向变换期间,指令将使用当前的笛卡尔坐标位置和几何结构配置来计算相应的关节角度位置。同时移动笛卡尔坐标系统和关节坐标系统时,MCTO 将返回错误 61。

故障代码
对于带姿态的运动协调变换 (MCTO) 指令,如果提供的操作数值无效,运行时将发生错误。
扩展错误代码
扩展错误代码有助于进一步明确指令给出的错误消息。其含义取决于所关联的错误代码。
错误 Code | EX_ERROR Code | 说明 |
|---|---|---|
13 | 3 | 值超出范围(基本角度) 任何 360 或 -360 的姿态角度 |
13 | 3 | 值超出范围(基本 ID) ID 等于任何负值。 |
13 | 4 | 值超出范围(工具角度) 任何 360 或 -360 的姿态角度 |
13 | 4 | 值超出范围(工具 ID) ID 等于任何负值。 |
61 | 1 | 连接冲突: 变换运动组错误。 笛卡尔或机器人坐标系统未分组,或与其他运动组相关联。 |
61 | 2 | 连接冲突: 变换重复系统错误。 操作数 0 和操作数 1 具有相同的坐标系统类型。 |
61 | 3 | 连接冲突: 变换源维度错误。 笛卡尔坐标系统的变换维数 2。 |
61 | 4 | 连接冲突: 变换目标维度错误。 机器人坐标系统变换维度等于零。 |
61 | 5 | 尝试将坐标系统用作多个源 - FAN-OUT 错误。 |
61 | 6 | 尝试将坐标系统用作多个目标 - FAN-IN 错误。 |
61 | 9 | 连接冲突 变换轴重叠错误 轴同时为笛卡尔和机器人坐标系统的成员。 |
61 | 10 | 一个或多个轴在运动时出现以下异常: 在笛卡尔坐标系统轴上进行齿轮或凸轮传动运动。笛卡尔坐标系统从轴的主轴不能来自机器人坐标系统。 |
61 | 12 | 连接冲突 变换连杆长度无效 对于任何机器人几何结构,连杆长度值都必须 0.0 单位。 |
61 | 13 | 轴已关闭 |
61 | 14 | 轴已禁用 |
61 | 15 | 连接冲突 变换 Delta 配置无效 连杆长度 1 不得等于连杆长度 2 末端执行器偏移 1 Re 不得为负值 对于 Delta J1J2J6 和 Delta J1J2J3J6,末端执行器偏移 3 (D3) 不得为负值 (连杆长度 1 + Rb - Re)必须小于连杆长度 2 (连杆长度 1 + Rb - Re)必须为正值或大于零 |
61 | 18 | 连接冲突 变换关节式配置无效 当偏移值对于关节式独立 J1J2J3J4J5J6 几何结构无效时,将生成该错误。 基点偏移 Yb 必须等于 0.0 末端执行器偏移 Ye 必须等于 0.0 末端执行器偏移 Ze 必须等于 0.0 |
67 | 1 | 变换位置无效 Rx 姿态无效 EOA 变换的 Rx 姿态值无效。对于 4 轴几何结构,仅允许 Rx = 180 度的位置。对于所有其他位置,均会生成错误。 |
67 | 2 | 变换位置无效 Ry 姿态无效 EOA 变换的 Ry 姿态值无效。对于 4 轴几何结构,移除工作坐标系和工具坐标系后,EOA 变换不应有任何 Ry 姿态值 |
67 | 3 | 变换位置无效 Rz 姿态无效 |
147 | 3-5 | 姿态变换常数无效 扩展错误代码 3:Rx 扩展错误代码 4:Ry 扩展错误代码 5:Rz 姿态轴 具有变换常数 MAX_K_CONSTANT_FOR_ORIENTATION_AXIS 或具有非整数的变换常数或 坐标单位与位置单位之间的换算比不等于 1:1。 |
148 | 3-5 | MCPM 姿态偏移无效 Rx 姿态偏移无效。 扩展错误代码 3:Rx 姿态偏移无效。 扩展错误代码 4:Ry 姿态偏移无效。 扩展错误代码 5:Rz 姿态偏移无效。 如果机器人几何结构为(MO_CD_J1J2J6 或 MO_CD_J1J2J3J6)且:
或如果机器人几何结构为 MO_CD_J1J2J3J4J5 且:
|
149 | 3-5 | 姿态轴不是虚拟轴 扩展错误代码 3:如果已启用变换,Rx 轴必须为虚拟轴。 扩展错误代码 4:如果已启用变换,Ry 轴必须为虚拟轴。 扩展错误代码 5:如果已启用变换,Rz 轴必须为虚拟轴。 |
151 | 1 | 关节角度 J1 超出限值 有关详细信息,请参见“与几何结构相关的最大关节限制”部分。 |
151 | 2 | 关节角度 J2 超出限值 有关详细信息,请参见“与几何结构相关的最大关节限制”部分。 |
151 | 3 | 关节角度 J3 超出限值 有关详细信息,请参见“与几何结构相关的最大关节限制”部分。 |
151 | 4 | 关节角度超出限值 这表示当 5 轴 Delta 机器人的关节 4 超出圈数计数器范围限制 (45899.99 J4 -45900) 时的错误状况。扩展错误 4:关节 J4 超出限值 |
151 | 5 | 关节角度超出限值 这表示当 5 轴 Delta 机器人中的关节 5 超出 +/-179 (+179 J5 -179) 时的错误状况。扩展错误 5:关节 J5 超出限值 |
151 | 6 | 关节角度超出限值 这表示 4 轴 Delta 机器人中的关节 6 超出圈数计数器范围限制 (45899.99<J6<-45900) 时的错误状况 扩展错误 6:关节 J6 超出限值 |
152 | 1 | Rx 最大姿态速度超限 姿态轴 Rx 受控在一个近似更新周期内运动的角度大于或等于 180 度时,将返回该错误和扩展错误。 |
152 | 2 | Ry 最大姿态速度超限 姿态轴 Ry 受控在一个近似更新周期内运动的角度大于或等于 180 度时,将返回该错误和扩展错误。 |
152 | 3 | Rz 最大姿态速度超限 姿态轴 Rz 受控在一个近似更新周期内运动的角度大于或等于 180 度时,将返回该错误和扩展错误。 |
153 | 1 | 变换位置无效 MOP X 变换无效 X 轴上的变换无效 |
153 | 2 | 变换位置无效 MOP Y 变换无效 Y 轴上的变换无效 |
153 | 3 | 变换位置无效 MOP Z 变换无效 Z 轴上的变换无效 |
156 | 1 | 奇异点条件错误 关节 1 轴接近关节式独立 J1J2J3J4J5J6 几何结构中的手臂奇异点条件 扩展错误 1:手臂奇异点条件 |
156 | 2 | 奇异点条件错误 关节 3 轴接近关节式独立 J1J2J3J4J5J6 几何结构中的肘部奇异点条件 扩展错误 2:肘部奇异点条件 |
156 | 3 | 奇异点条件错误 关节 5 轴接近关节式独立 J1J2J3J4J5J6 几何结构中的腕部奇异点条件 扩展错误 1:腕部奇异点条件 |
示例
以下示例用于激活笛卡尔坐标系统 CS1 和机器人坐标系统 CS2(Delta 5 轴几何结构)之间的变换。在第一个示例中,工作坐标系或工具坐标系均未指定,因此计算机器人手臂末端 (EOA) 相对于机器人基本坐标系的笛卡尔坐标位置。
梯形图

MCTO 激活后,对于运动至笛卡尔坐标位置 X = 7.361、Y = -4.25、Z = -928.18、Rx = 180、Ry = 30 和 Rz = -30 的运动,MCTO 将按下图所示计算相应的关节角度。

对于相同的 MCTO,如果已启用工作坐标系偏移 X = 50、Y = 50 和 Rz = 50,则 MCTO 将计算相对于新工作坐标系的笛卡尔坐标位置。

若将运动设定为移向相同终点位置,相应的关节位置将如下图所示。

若将 MCTO 编程为,除了启用工作坐标系偏移还启用 Ry = 50 的工具坐标系偏移,则 MCTO 立即相对于新工作坐标系和新工具坐标系端点计算笛卡尔坐标位置。

下图显示了对向相同终点位置的移动进行编程后的相应关节角度位置。

有关配置偏移的详细信息,请参见“配置坐标系统偏移”。
结构化文本
MCTO(CS1, CS2, MCTO1, 0, 0);
小贴士:
要进一步了解如何创建有姿态支持的几何结构,请参见《运动坐标系统用户手册》(出版号 MOTION-UM002)。
提供反馈
360 或
-360 的姿态角度
2。