运动协调路径运动 (MCPM)
运动协调路径运动 (MCPM) 指令用于针对笛卡尔坐标系统的指定主轴(X、Y、Z)和姿态轴(Rx、Ry、Rz)启动多维协调路径运动。该指令用于对支持姿态控制的机器人的笛卡尔运动进行编程。
架构 | 标准 | 安全 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 | 否 |
Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 否 |
此为转换指令。使用时,请遵循以下步长:
- 在梯形逻辑中,插入一个指令,以便在每次执行该指令时,梯级输入条件均会由 false 转换为 true。
- 在结构化文本例程中,插入指令的条件以便仅在转换时执行。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
MCPM (CoordinateSystem, MotionControl, Path, Length, Dynamics, LockPosition, LockDirection);
操作数
重要提示:
在同一程序中,切勿将同一标签名称用于多个指令。在任何情况下,均不要对任何指令输出标签执行写操作。
警告:
如果在运行模式下更改指令操作数,必须接受待处理的编辑内容,控制器模式必须从编程模式循环切换到运行模式,以便更改生效。
配置
下表给出了用于配置指令的操作数。运行期间无法更改这些操作数。
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
Coordinate System | COORDINATE_SYSTEM | 标签 | 用于对运动进行编程的笛卡尔坐标系统。 |
Reference to Cartesian coordinate system used to program the moves.For controllers that support the REF_TO motion data types, the coordinate system operand type can be replaced by the REF_TO_COORDINATE_SYSTEM type. | |||
Motion Control | MOTION_INSTRUCTION | 标签 | 用于访问指令状态参数的结构。 |
有关配置坐标系统的详细信息,请参见《运动坐标系用户手册》(出版号 MOTION-UM002)。
输入
下表介绍指令输入。输入可能是来自输入设备的现场设备信号,也可能源自用户逻辑。
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
Path | PATH_DATA | 标签 | 请参见 PATH_DATA 结构 |
Length | DINT | 立即数标签 | 该输入为立即数,用于指示 PATH_DATA 输入的长度。
小贴士:
将长度设置为 1。保留大于 1 的值,以供将来使用。
|
Dynamics | DYNAMICS_DATA | 标签 | 请参见 DYNAMICS_DATA 结构 |
Lock Position | REAL | 标签 | 这是主轴上的位置,在从轴坐标系统上启动运动后,从轴将从该位置开始跟随主轴运动。
提醒事项:
仅当在主轴驱动速度控制模式下使用 MCPM 指令时,锁定位置才有效。
|
Lock Direction | UINT32 | 标签 | 指定锁定的激活条件。
小贴士:
仅当在主轴驱动速度控制模式下使用 MCPM 指令时,锁定方向才有效。
|
PATH_DATA 结构
操作数 | 滚动栏、列表或复选框 | 数据类型 | 默认值 | 备注 |
|---|---|---|---|---|
Interpolation Type | 由点到点 (0) 和连续线性路径 (1) 构成的列表 | DINT | 0 | 点到点运动 2 连续线性路径 请参见下文的“插补类型”相关主题。 |
Position [X, Y, Z, Rx, Ry, Rz] | 常量或变量列表 | REAL [9] 1 | 0 | 采用坐标单位的 [X,Y,Z], 以度为单位的 [Rx, Ry, Rz] X-Y-Z 固定角度格式 索引 0:X 1:Y 2:Z 3:Rx 4:Ry 5:Rz 6:* 2 7:* 2 8:* 2 请参见下文的“位置”相关主题。 |
Robot Configuration | 位值列表: 位 0 – 机器人配置变化 (1)/不变 (0)位 1 – 左臂 (1)/右臂 (0)位 2 – 向上 (1)/向下 (0)位 3 – 切换 (1)/不切换 (0) | DINT | 0 | 位 0 至 3 – 仅适用于关节式和 SCARA 几何结构。将 Delta 几何结构设置为零。请参见“机器人配置”。 |
Turns Counters | 变量列表 | INT 16 [4] | 0 | 索引 0:J1 1:J4 2:J6 3 2 关节轴圈数计数器。各个整数均为有符号值 (±127)。 |
Command Tolerance Linear | 常量或变量列表 | REAL | 0 | 仅适用于笛卡尔主轴位置。 线性坐标单位 |
DYNAMICS_DATA_STRUCTURE
操作数 | 滚动栏、列表或复选框 | 数据类型 | 默认值 | 备注 |
|---|---|---|---|---|
Units Mode | 列表,0 = 最大值百分比 1 = 坐标单位(每) | DINT | 0 | 请参见“单位模式”部分。 |
Time Units | 列表,0 = 秒 1 = 主轴单位 | DINT | 0 | 如果将最大值百分比选作单位模式,则不适用。 仅适用于速度、加速度和减速度。 请参见“时间单位”部分。 |
Profile | 列表,0 = 梯形 1 = S 曲线 | REAL | 0 | 1 请参见“曲线”部分。 |
Speed | 常量或值列表 | REAL | 0 | 1 最大值百分比或坐标单位/时间单位。 |
Acceleration | 常量或值列表 | REAL | 0 | 1 最大值百分比或坐标单位/时间单位 2 。 |
Deceleration | 常量或值列表 | REAL | 0 | 1 最大值百分比或坐标单位/时间单位 2 。 |
Acceleration Jerk | 常量或值列表 | REAL | 0 | 加速时间百分比 始终用于所有轴 请参见下文的“加速急动度”部分。 适用于加速度和姿态加速度。 |
Deceleration Jerk | 常量或值列表 | REAL | 0 | 减速时间百分比 始终用于所有轴。 适用于减速度和姿态减速度。 |
Orientation Speed | 常量或值列表 | REAL | 0 | 表示为姿态速度最大值百分比(坐标系统配置中)或度/时间单位。 |
Orientation Acceleration | 常量或值列表 | REAL | 0 | 表示为姿态加速度最大值百分比(坐标系统配置中)或度/时间单位^2。 |
Orientation Deceleration | 常量或值列表 | REAL | 0 | 表示为姿态减速度最大值百分比(坐标系统配置中)或度/时间单位^2。 |
1
单位模式指定协调运动的动态参数的单位,而非单个轴的单位。用户可通过这两个选项直接以坐标单位或最大值百分比(在坐标系统标签中配置)的形式进行设定。所有主轴可采用不同的用户单位进行配置,例如毫米、英寸和厘米,而姿态轴则以度为单位。2
保留供将来使用。路径数据
插补类型
- 点到点:在这类运动中,工具中心点 (TCP) 的终点位置被指定,但用于到达终点位置的路径不相关。通常,这是使 TCP 运动到目标位置的最快方式。这类插补仅适用于将来版本中的关节式和 SCARA 类型几何结构。
- 连续线性路径:在这类运动中,TCP 从起始位置沿直线运动到给定终点。在直线运动期间,TCP 的姿态持续从起始姿态位置变为给定姿态位置。
位置
这是一个一维数组,其维度定义为至少等于坐标系统中指定的轴数,笛卡尔坐标系统中为 6 维,其中 X、Y、Z、Rx、Ry 和 Rz 是 TCP 参照参考坐标系的值。位置数组定义新的绝对位置或增量位置。
下面是 TCP 点的示例,其在 X、Y 和 Z 轴上发生平移,而后在 Z 轴上旋转 (Rz = 90°),进而使 TCP 的 X 轴与参考坐标系的 Y 轴对齐。
有关笛卡尔坐标系统的更多详细信息,请参见“配置笛卡尔 XYZRxRyRz 坐标系统”部分。

机器人配置
机器人可到达某个目标终点位置(基于不同关节位置以及确定的关节限制范围内的不同机器人配置)。如果用户想要机器人在连续路径 (CP) 模式下运动至某个位置(基于特定配置),则需指定终点位置以及所需机器人姿势。
- 向右 (RIGHTY) 与向左 (LEFTY)
- 向上 (ABOVE) 与向下 (BELOW)
- 翻转 (FLIP) 与不翻转 (NOFLIP)
有关更多详细信息,请参见《运动坐标系用户手册》(出版号 MOTION-UM002)以获取 SCARA 独立 J1J2J3J6 机器人、关节式非独立 J1J2J3J6 机器人和关节式独立 J1J2J3J4J5J6 机器人的配置部分。
动态数据
Profile
- 梯形 (0):当该值设置为 0 时,曲线设置会先于加速急动度和减速急动度的值(默认值为 0%),因此速度曲线始终为梯形。有关详细信息,请参见运动协调性线性移动 (MCLM) 中的“曲线”信息。
- S 曲线 (1):当该值设置为 1 时,将考虑加速急动度和减速急动度的值。规划器会试图达到由动态设置计算得到的加速度和减速度值。有关详细信息,请参见运动协调性线性移动 (MCLM) 中的“曲线”信息。
单位模式
- 最大值百分比 (0):将单位模式选择为最大值百分比时,6 个动态参数(如下表中的第 1 列所示)会被设为坐标系统“动力学”(Dynamics) 选项卡中定义的内容(如下表中第 2 列所示)的百分比。例如,如果将单位模式设置为最大值百分比,速度设置为 50,并且最大矢量速度设置为 100mm/s:则 MCLM 的最大线速度可以达到最大速度的 50%,即 50mm/s。此选项仅适用于 CP 运动(将来会支持 PTP)。动态数据参数坐标系统参数规范速度最大矢量速度(主轴)加速度最大矢量加速度(主轴)减速度最大矢量减速度(主轴)Orientation Speed最大矢量速度(姿态轴)姿态加速度 (Orientation Acceleration)最大矢量加速度(姿态轴)姿态减速度 (Orientation Deceleration)最大矢量减速度(姿态轴)
- 坐标单位 (1):6 个参数(如上表中的第 1 列所示)的速度采用坐标单位/时间单位的设定单位,由时间单位参数定义。
- 速度单位设为坐标单位/秒,或坐标单位/主轴单位。
- 加速度和减速度的单位为坐标单位/秒2,或坐标单位/主轴单位2。
- 姿态速度单位设为度/秒或度/主轴单位。
- 姿态加速度和减速度的单位为度/秒2,或度/主轴单位2。
时间单位
- 秒 (0):时间单位为秒
- 主轴单位 (1):在主从配置中,主轴的速度/加速度/减速度决定了 MCPM 指令的最终主轴和姿态轴速度/加速度/减速度。
例如,当使用 MDCC 指令在主轴和从坐标系统之间建立联动关系时。主轴正通过 MAM 指令进行运动,且 MCPM 指令正在执行:产生的速度/加速度/减速度值可按下式进行计算。
- 用来将速度从 [单位/主轴单位] 转换为 [单位/秒] 的公式:VS[SU/TU] = VS[SU/MU] * VM[MU/TU]如果从轴以 3 度/MU 运行,主轴以 2 MU/秒运行,则从轴的速度为:3*2 = 6 度/秒。
- 加速度和减速度单位从 [单位/主轴单位^2] 转换为 [单位/秒^2] 的公式:aS[SU/TU2] = aS[SU/MU2] * VM2[MU/TU] + VS[SU/MU] * aM[MU/TU2]
- 如果从轴以 5 度/MU^2 加速运行,主轴以 2 MU/秒匀速运行 (aM=0),则从轴的加速度为:5*2*2 = 20 度/秒^2。
- 如果从轴以 5 度/MU^2 加速运行,其瞬时速度为 3 度/MU,且主轴以 2 MU/秒的速度运行,且加速度为 4 MU/秒^2,则从轴加速度为:5*2*2 + 3*4 = 32 度/秒^2。
加速急动度 (Acceleration Jerk)
此参数指定 MCPM 路径应用来计算 MCPM 路径运动的加速急动度的加速度的时间百分比。其单位始终被设为时间百分比的形式。
有关如何将时间百分比转换为工程单位的信息,请参见下面的“急动度单位”主题。
有关详细信息,请参见 MCLM 文档中的“加速急动度”主题。
减速急动度 (Deceleration Jerk)
此参数指定 MCPM 路径应用来计算 MCPM 路径运动的减速急动度的减速度的时间百分比。其单位始终被设为时间百分比的形式。
有关如何将时间百分比转换为工程单位的信息,请参见下面的“急动度单位”主题。
有关更多详细信息,请参见 MCLM 文档中的“减速急动度”主题。
急动度单位:时间百分比
若要将时间百分比转换为工程单位,可使用以下公式。
- 要采用工程单位进行加速急动度计算,请使用以下计算公式:

- 要采用工程单位进行减速急动度计算,请使用以下计算公式:

Orientation Speed
姿态速度为矢量速度,其值被用作单个姿态矢量,由 Rx、Ry 和 Rz 正交分量组成。例如,如果姿态速度为 5 度/秒。

姿态加速度和减速度
姿态加速度/减速度为矢量值,其值被用作单个姿态矢量,由 Rx、Ry 和 Rz 正交分量组成。例如,如果姿态加速度或减速度设置为 5 度/秒
2
,则
锁定方向
指定主轴在通过锁定位置时为激活锁定而所需的运动方向。
小贴士:
将时间单位设置为主轴单位时,在此字段中设置的值应为主轴方向。有关锁定方向操作数的更多信息,请参见 MCLM 指令。
锁定位置
指定当从轴锁定到主轴时对应的主轴位置。
输出
不适用
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。如果将未初始化的引用或类型不正确的引用传递给坐标系统操作数,则可能会发生严重故障。对于数组索引故障,请参阅 数组索引编制。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 与梯级输入条件为假时相同。 |
梯级输入条件为假 | .EN、.DN 和 .ER 设置为假。 |
梯级输入条件为真,.EN 位为假 | .EN 位设置为真,指令执行。 |
梯级输入条件为真,.EN 位为真 | 不适用 |
后扫描 | 不适用 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参阅“梯形图”表中的“预扫描”行。 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为假”行,然后参见“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
错误代码
有关运动指令,请参阅 运动错误代码 .ERR。
扩展错误代码
“扩展错误代码”针对许多指令通用的“错误代码”提供指令特定的附加信息。有关运动指令,请参阅 运动错误代码 .ERR。“扩展错误代码”的含义取决于其关联的错误代码。
错误代码 (.ERR) | 扩展错误代码 (.EXERR) | 说明 |
|---|---|---|
7 | 0 至 5 | 关闭状态错误 对于运动协调指令,请查看扩展错误代码 (EXERR),通过这些信息可以确定引发错误的轴。 示例:如果 EXERR 为零,检查维度为零的轴。 |
11 | 0 至 5 | 轴未配置 对于单轴指令: MAG、MDAC、MAPC、MAM、MAJ、MATC 和 MCD 的扩展错误代码定义如下: 1 = 从轴 2 = 主轴 对于时间驱动模式下的 MAM、MCD 和 MAJ 指令,正在运动的轴为从轴: 对于多轴指令: MCPM、MDCC、MCLM、MCCM 和 MCCD 的扩展错误代码定义如下:坐标系统中的轴编号: 0 = 第一个轴 2 = 主轴或第三个从轴 |
13 | 2、3、5 | 参数超出范围 EXERR = 0 表示指令的第一个操作数超出范围。 |
16 | 0 至 5 | 轴正在进行归零。 扩展错误代码指示导致错误的轴。 |
25 | 0 至 5 | 尝试执行的指令不正确。 扩展错误代码指示导致错误的轴
小贴士:
如果轴配置为转矩模式,则 MCPM 会返回此错误。
|
53 | 0 至 5 | 轴已禁用 对于单轴指令,MAG、MDAC、MAPC、MAM、MAJ、MATC 和 MCD 的扩展错误代码定义如下: 1 = 从轴 2 = 主轴 对于时间驱动模式下的 MAM、MCD 和 MAJ 指令,正在运动的轴为从轴: 对于多轴指令,MCPM、MDCC、MCLM、MCCM 和 MCCD 的扩展错误代码定义如下: 坐标系统中的轴编号: 0 = 第一个轴 2 = 主轴或第三个从轴 |
65 | 0 至 5 | 轴位置溢出 位置的范围取决于轴的转换常数。 最大正向位置 = 2,147,483,647 / 轴的转换常数。 最大负向位置 = -2,147,483,648 / 轴的转换常数。 选择 2,097,152 个计数/英寸作为转换常数。在这种情况下:
对于运动协调指令,请查看扩展错误代码 (EXERR),通过这些信息可以确定引发错误的轴。 |
76 | 0 至 5 | 最大减速急动度设置为零 如果轴的最大减速急动度为零,则不能启动使用 S 曲线的运动。 (EXERR)。通过这些信息可以确定引发错误的轴。 |
138 | 0 | MCPM 路径数据值无效 MCPM 路径数据插补类型 如果设置的插补类型并非 0 或 1,指令将报告该错误。 |
138 | 1 | MCPM 路径数据值无效。 如果以下任一条件为真,则指令将报告错误。
|
138 | 2 | MCPM 路径数据机器人配置中的 MCPM 路径数据值无效 如果指定的机器人配置无效(除 0、1、2、3 以外的其他位置位),则指令将报告该错误。 |
138 | 3 | MCPM 路径数据圈数计数器中的 MCPM 路径数据值无效 如果圈数计数器的值不在 +/-127 范围内,则指令将报告该错误。 |
138 | 4 | MCPM 路径数据运动类型中的 MCPM 路径数据值无效 如果运动类型不是绝对式或增量式,则指令将报告该错误。 |
138 | 5 | MCPM 路径数据终止类型中的 MCPM 路径数据值无效 如果指定的终止类型并非 0、1 或 6,则指令将报告该错误。 |
138 | 6 | MCPM 路径数据给定公差中的 MCPM 路径数据值无效 如果指定的给定公差为负值、INF 或 NAN,则指令将报告该错误。 |
139 | 0 | MCPM 动力学数据单位模式中的 MCPM 动力学数据值无效 如果指定的单位模式并非 0、1 或 2,则指令将报告该错误。 |
139 | 1 | MCPM 动力学数据时间单位中的 MCPM 动力学数据值无效 如果指定的时间单位并非 0 或 1,则指令将报告该错误。 |
139 | 2 | MCPM 动力学数据曲线中的 MCPM 动力学数据值无效 如果指定的曲线并非 0(梯形)或 1(s 曲线),则指令将报告该错误。 |
139 | 3 | MCPM 动力学数据速度中的 MCPM 动力学数据值无效 如果速度为负值、INF 或 NAN,指令将报告该错误。 |
139 | 4 | MCPM 动力学数据加速度中的 MCPM 动力学数据值无效 如果加速度为零、负值、INF 或 NAN,指令将报告该错误。 |
139 | 5 | MCPM 动力学数据减速度中的 MCPM 动力学数据值无效 如果减速度为零、负值、INF 或 NAN,指令将报告该错误。 |
139 | 6 | MCPM 动力学数据加速急动度中的 MCPM 动力学数据值无效 如果急动度单位为时间百分比,且加速急动度为 INF、NAN、小于等于零或大于 100%,则指令将报告该错误。
小贴士:
这类错误仅适用于 s 曲线。
|
139 | 7 | MCPM 动力学数据值无效 MCPM 动力学数据减速急动度 如果急动度单位为时间百分比,并且减速急动度为 NAN、小于等于零,则指令将报告该错误。
小贴士:
该错误仅适用于 s 曲线。
|
139 | 8 | MCPM 动力学数据值无效 MCPM 动力学数据姿态速度 如果姿态速度为负值、INF 或 NAN,指令将报告该错误。 |
139 | 9 | MCPM 动力学数据值无效 MCPM 动力学数据姿态加速度 如果姿态加速度为零、负值、INF 或 NAN,指令将报告该错误。 |
139 | 10 | MCPM 动力学数据值无效 MCPM 动力学数据姿态减速度 如果姿态减速度为零、负值、INF 或 NAN,指令将报告该错误。 |
155 | 无 | 不支持 MCPM 机器人几何结构 如果用户尝试在关节式独立 J1J2J3J4J5J6 机器人系统上运行 MCPM 指令,则指令将报告该错误。 |
157 | 无 | 不支持 MCPM 关节方向检测 如果用户尝试设置关节方向检测并运行 MCPM 指令,则指令将报告该错误。 |
诊断代码与纠正措施
不适用
示例
梯形图

结构化文本
MCPM (CS1, MCPM1, MyPath1, 1, MyDynamics1, 0, 0);
小贴士:
要进一步了解如何创建有姿态支持的几何结构,请参见《运动坐标系统用户手册》(出版号 MOTION-UM002)。
提供反馈
