运动协调变换 (MCT)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。运动协调变换 (MCT) 指令用于启动将两个坐标系统连接在一起的变换。类似于双向传动。例如,该变换可使非笛卡尔坐标机器人运动到笛卡尔坐标位置。
重要提示:
用于指令运动控制属性的标签只能使用一次。在其他指令中重复使用运动控制标签可能导致意外操作,从而可能造成设备损坏或人员受伤。
架构 | 标准 | 安全 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 | 否 |
Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 否 |
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
MCT(Source System, Target System, Motion Control, Orientation, Translation);
操作数
梯形图和结构化文本
操作数 | 类型 | 格式 | 说明 | |
|---|---|---|---|---|
Source System | COORDINATE_SYSTEM | 标签 | 用于对运动进行编程的坐标系统。通常为笛卡尔坐标系统。 对用于对运动进行编程的坐标系统的引用。通常为笛卡尔坐标系统。对于支持 REF_TO 运动数据类型的控制器,坐标系统操作数类型可以替换为 REF_TO_COORDINATE_SYSTEM 类型。 | |
Target System | COORDINATE_SYSTEM | 标签 | 控制实际设备的非笛卡尔坐标系统。 对用于对运动进行编程的坐标系统的引用。通常为笛卡尔坐标系统。对于支持 REF_TO 运动数据类型的控制器,坐标系统操作数类型可以替换为 REF_TO_COORDINATE_SYSTEM 类型。 | |
Motion Control | MOTION_INSTRUCTION | 标签 | 指令的控制标签。 | |
Orientation | REAL[3] (单位 = 坐标单位) | 数组 | 是否希望绕 X1、X2 或 X3 轴旋转目标位置? | |
If | 则 | |||
No | 将数组值保留为零。 | |||
Yes | 将旋转度数输入数组中。将绕 X1 轴的旋转度数放入数组的第一个元素中,然后添加其他元素。 | |||
Use an array of three REALs even if a coordinate system has only one or two axes. | ||||
Translation | REAL[3] (单位 = 坐标单位) | 数组 | 是否希望沿 X1、X2 或 X3 轴偏移目标位置? | |
If | 则 | |||
No | 将数组值保留为零。 | |||
Yes | 将偏移距离输入数组中。应以坐标单位输入偏移距离。将 X1 的偏移距离放入数组的第一个元素中,然后添加其他元素。 | |||
Use an array of three REALs even if a coordinate system has only one or two axes. | ||||
有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法。
MOTION_INSTRUCTION 数据类型
要查看是否出现以下情况 | 检查该位是否置位 | 数据类型 | 备注 |
|---|---|---|---|
梯级是否为真 | EN | BOOL | 有时,即使梯级变为假,EN 位仍保持置位。如果在指令完成之前梯级变为假或发生错误,则会发生这种情况。 ![]() |
指令是否完成 | DN | BOOL | 指令完成后,变换继续运行。 |
是否发生错误 | ER | BOOL | 首先找到运动控制标签错误代码字段中的错误编号,然后查阅“运动错误代码”部分。 |
正在执行变换过程。 | IP | BOOL | 以下操作会取消变换并将 IP 位清零: 执行适用的停止指令 执行关闭指令 故障动作 |

该变换最多可控制机器人的三个关节:J1、J2 和 J3。
两个坐标系统之间 MCT 指令的数据流
MCT 指令处于激活状态时,数据流如下图所示。CS1 是作为 MCT 指令源坐标系统的笛卡尔坐标系统,包含 X1、X2 和 X3 轴。CS2 是作为 MCT 指令目标坐标系统的关节坐标系统,包含 J1、J2 和 J3 轴。
所有轴单位均采用坐标单位
使用 MCTP 指令应遵循下列编程原则。
使用 MCT 指令执行运动时的数据流 - 正向变换

使用 MCT 指令执行运动时的数据流 - 反向变换
编程原则
使用 MCT 指令应遵循下列编程原则。
重要提示:
避免机器人完全伸展或自身折返,否则其可能以非常快的速度开始运动。在这两种姿态下,机器人会失去其左臂或右臂配置,发生这种情况时,其可能以非常快的速度开始运动。
确定机器人的工作限位,使其在这些限位内运动。

为机器人的笛卡尔坐标位置建立轴坐标系统
这些轴通常为虚拟轴。

重要提示:
计算精度可能导致截断错误。同时满足以下条件时,会发生这种情况:
- 在变换中,虚拟笛卡尔坐标轴的变换常数小,如 8000 计数/位置单位。
- 非笛卡尔坐标系统的连杆长度小,如 0.5 英寸。
最好为变换中的虚拟笛卡尔坐标轴设置较大的转换常数,如 100,000 或 1,000,000 计数/位置单位。机器人的最大行程限位为:

为机器人的实际关节建立另一坐标系统

使机器人运动至左臂或右臂的起始位置
希望机器人采用左臂还是右臂运动模式?

启动变换之前,使机器人运动到所需臂侧(左或右)的静止位置。
启动变换并在源坐标系统中启动笛卡尔坐标运动后,机器人会始终采用左臂或右臂运动模式。如果启动时采用左臂运动模式,则会保持左臂运动模式。如果启动时采用右臂运动模式,则会保持右臂运动模式。可随时将机器人从左臂运动模式切换为右臂运动模式,反之亦然。直接使关节运动即可。
将梯级由假跳变为真可执行该指令
此为跳变指令。在梯形图中,每次要执行该指令时,将梯级输入条件由假切换为真。
执行该指令时,变换启动,IP 位置位。

执行该指令后,可使梯级变换为假。变换保持激活状态。
在结构化文本中,为指令设置限定条件,以便仅在转换时才执行此指令
在启动任何运动之前启动变换。
在结构化文本中,指令会在每次被扫描时执行。调整指令,使其仅在跳变时执行。可使用下列方法之一:
- SFC 操作的限定符
- 结构化文本结构
如果运动过程正在控制源坐标系统或目标坐标系统的轴,则无法启动变换。
示例:启动齿轮传动或凸轮传动之前启动变换。
预期源坐标系统与目标坐标系统之间进行双向运动
使用 MCS 指令取消变换。
变换具有双向性。

启动变换后,源坐标系统的位置会进行变更,匹配目标坐标系统的相应位置。此后,如果任一坐标系统运动,另一坐标系统也会相应地运动。
即使停止扫描 MCT 指令或其梯级变为假,控制器仍会继续控制轴。使用运动协调停止 (MCS) 指令停止坐标系统中的运动、取消变换或同时执行这两项操作。
如果更改姿态或变换,再次执行 MCT 指令

然后,再次执行该指令。要执行该指令,将梯级输入条件由假切换为真。
如果要更改设备的几何结构,再次执行该指令。
在 MCTP 指令的姿态操作数中可指定多个姿态角并执行

按照以下顺序输入绕 X、Y 和 Z 轴的旋转度数:
第一个 MCTP 姿态操作数数组的第一个元素用于指定绕 X 轴的旋转度数。
第二个 MCTP 姿态操作数数组的第二个元素用于指定绕 Y 轴的旋转度数。
第三个 MCTP 姿态操作数数组的第三个元素用于指定绕 Z 轴的旋转度数。
示例
下表所示为旋转的先后顺序。请注意,n 维数组中的旋转顺序不可交换。
旋转:V20 或更高版本 矩阵乘法顺序:(Z*(YX) 绕 X 轴旋转,然后绕 Y 轴选择,最后绕 Z 轴旋转: | |
|---|---|
旋转笛卡尔坐标 => 笛卡尔坐标 | Logix Designer V20 或更高版本 |
MCT 姿态 [x,y,z] | MCT 起始位置 得到的姿态位置 |
一维旋转 | |
起始位置 = [1, 2, 3] | |
MCT 姿态=[90, 0, 0] | 旋转:绕 X 轴旋转 90 度(顺时针)。 = [1, 3, -2] |
MCT 姿态=[0, 90, 0] | 旋转:绕 Y 轴旋转 90 度(顺时针)。 = [-3, 2, 1] |
MCT 姿态=[0, 0, 90] | 旋转:绕 Z 轴 90 度(顺时针)。 = [2, -1, 3] |
二维旋转 | |
起始位置 = [1, 2, 3] | |
MCT 姿态=[90, 90, 0] | 旋转:绕 X 轴旋转 90 度(顺时针) 然后绕 Y 轴旋转 90 度(顺时针)。 = [-3, 1, -2] |
MCT 姿态=[90, 0, 90] | 旋转:绕 X 轴旋转 90 度(顺时针) 然后绕 Z 轴旋转 90 度(顺时针)。 = [2, 3, 1] |
MCT 姿态=[0, 90, 90] | 旋转:绕 Y 轴旋转 90 度(顺时针) 然后绕 Z 轴旋转 90 度(顺时针)。 = [-3, -1, 2] |
三维旋转 | |
起始位置 = [1, 2, 3] | |
MCT 姿态=[90, 90, 90] | 旋转:绕 X 轴旋转 90 度(顺时针) 然后绕 Y 轴旋转 90 度(顺时针) 然后绕 Z 轴旋转 90 度(顺时针)。 = [-3, 2, 1] |
MCT 姿态=[-90, -90, -90] | 旋转:绕 X 轴旋转 90 度(逆时针) 然后绕 Y 轴旋转 90 度(逆时针) 最后绕 Z 轴旋转 90 度(逆时针)。 = [3, -2, 1] |
MCT 指令原则
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。如果将未初始化的引用或类型不正确的引用传递给坐标系统操作数,则可能会发生严重故障。有关操作数相关的故障,请参阅 通用属性。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | .EN、.DN、.ER 和 .IP 位设置为假。 |
梯级输入条件为假 | 如果 .DN 或 .ER 位为真,则 .EN 位设置为假。 |
梯级输入条件为真 | .EN 位设置为真,指令执行。 |
后扫描 | 不适用 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参阅“梯形图”表中的“预扫描”行。 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为假”行,然后参见“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
错误代码
有关运动指令,请参阅 运动错误代码 .ERR。
扩展错误代码
有关运动指令,请参阅 运动错误代码 .ERR。使用扩展错误代码 (EXERR) 可获取有关错误的更多说明。
ERR | EXERR | 纠正措施 | 备注 |
|---|---|---|---|
61 | 1 | 将两个坐标系统均分配给运动组。 | |
2 | 检查使用的源坐标系统和目标坐标系统是否正确。 | 不可将同一坐标系统同时用作源坐标系统和目标坐标系统。 | |
3 | 将源坐标系统的变换维度设为系统中的轴数,最大为三。 | ||
4 | 将目标坐标系统的变换维度设为目标坐标系统中的轴数,最大为三。 | ||
5 | 使用其他源坐标系统。 | 仅可将一个坐标系统用作一个激活变换的源。 | |
6 | 使用其他目标坐标系统。 | 仅可将一个坐标系统用作一个激活变换的目标。 | |
7 | 查找已在另一变换中使用的源轴或目标轴。使用坐标系统中的其他轴。 | 仅可将一个轴用于一个源坐标系统和一个目标坐标系统。 | |
8 | 使用不是此变换链源的坐标系统作为目标坐标系统。 | 不可创建返回初始源坐标系统的环形变换链。 | |
9 | 检查分配给每个坐标系统的轴是否正确。 | 不可在源坐标系统和目标坐标系统中使用相同的轴。 | |
10 | 停止两个坐标系统中所有轴的所有运动过程(例如点动、运动和传动)。 | 如果任何运动过程正在控制源轴或目标轴,则无法启动变换。 | |
11 | 资源不足,无法启动变换连接。 | ||
12 | 设置连杆长度。 | 不可将零用作连杆长度。 | |
13 | 查找处于关闭状态的源轴或目标轴。使用运动轴关闭复位 (MASR) 指令或直接命令进行轴复位。 | ||
14 | 取消禁用所有源轴或目标轴。 | ||
15 | 检查为 Delta 或 SCARA Delta 机器人的基点偏移和末端执行器偏移配置的值。 | 对于 Delta 和 SCARA Delta 机器人,(X1b-X1e) 均不可小于 0.0。 对于 Delta 机器人,如果 L1 + (X1b-X1e) 的值大于 L2,也会发生此错误。 | |
16 | 检查 SCARA 独立和 SCARA Delta 机器人配置,确保: 源坐标系统的变换维度配置为 2。 为源坐标系统和目标坐标系统配置的第三个轴相同。 | ||
17 | 检查源坐标系统和目标坐标系统,确认源坐标系统的变换维度等于目标坐标系统的变换维度。 |
状态位变化
指令执行时会更改以下这些状态位。
要查看是否出现以下情况 | 检查相应标签 | 以及此位 | 目标 |
|---|---|---|---|
坐标系统是否为激活变换的源。 | 坐标系统 | TransformSourceStatus | 接通 |
坐标系统是否为激活变换的目标。 | 坐标系统 | TransformTargetStatus | 接通 |
轴是否为激活变换的一部分。 | 轴 | TransformStateStatus | 接通 |
轴是否因变换而正在运动。 | 轴 | ControlledByTransformStatus | 接通 |
示例
梯形图

结构化文本
MCT(myMctSourceSystem,myMctTargetSystem,myMctMotionControl,myMctOrientation,myMctTranslation);
提供反馈
