输入和输出参数结构
下表的中间列列出了各个参数适用的坐标系统运动指令(即 MCLM 和 MCCM)。在 MCLM 或 MCCM 指令中使用下表第一列列出的参数之前,必须执行 MDCC 指令,并且该指令必须激活(IP 位置位)。
参数 | 指令 | 模式 |
|---|---|---|
输入参数 | ||
锁定方向 | MCLM, MCCM | 仅限主轴驱动模式 |
锁定位置 | MCLM, MCCM | 仅限主轴驱动模式 |
给定公差 | MCLM, MCCM | 主轴驱动模式和时间驱动模式 |
Event Distance | MCLM, MCCM | 所有模式(主轴驱动模式或时间驱动模式) |
输出参数 | ||
|---|---|---|
Calculated Data | MCLM, MCCM | All modes (Master Driven, Time Driven, and Timed Based) |
输入参数
下表列出了输入参数。
锁定方向
数据类型 | 说明 | 有效值和默认值 |
|---|---|---|
Immediate | 此参数可用于时间驱动模式和主轴驱动模式。对于主轴驱动模式,控制轴是主轴(通过 MDCC 命令设定的轴),对于时间驱动模式,主轴为在运动指令(例如 MCLM)中设定的轴。 “锁定方向”枚举值定义的第一个字(参见下文的枚举值表)将锁定类型指定为:
枚举值的第二个字用于指定主轴在穿过锁定位置从而使锁定生效时,主轴的运动方向。 对于 MCLM 和 MCCM 指令,无论主轴的方向如何,从坐标系统在跟随主轴时,始终沿着某一方向(设定的方向)运动。如果主轴反向,则从坐标系统停止。 | 有效值 = 0-4 默认值 = 无 (当前,在时间驱动模式下,不允许使用枚举值 1-4。) |
对于主轴驱动模式,枚举值如下:
(正向表示正向速度,反向表示负向速度。)
枚举值表如下。
枚举值 | 定义 | 说明 |
|---|---|---|
0 | 无 | 表示锁定位置未激活。 如果锁定方向设置为“无”,且运动指令的速度参数选择了主轴驱动模式,则系统将出错。 反之,如果锁定方向未设置为“无”以外的值,且速度参数选择了时间驱动模式,则系统也会产生错误。 |
1 | 仅立即正向 | 当主轴沿正向移动时,运动立即开始。只有当主轴沿正向移动时,才会跟随主轴。 |
2 | 仅立即反向 | 当主轴沿反向移动时,运动立即开始。只有当主轴沿反向移动时,才会跟随主轴。 |
3 | 仅位置正向 | 当主轴沿正向移动并通过锁定位置时,运动开始(即从坐标系统锁定到主轴)。只有当主轴沿正向移动时,才会跟随主轴。 请注意,如果起始位置等于锁定位置,并且选择此枚举值,则由于不会通过锁定位置,所以无法开始运动。 |
4 | 仅位置反向 | 当主轴沿反方向运动并通过锁定位置时,运动开始。只有当主轴沿反向移动时,才会跟随主轴。 请注意,如果起始位置等于锁定位置,并且选择此枚举值,则由于不会通过锁定位置,所以无法开始运动。 |
对于时间驱动模式,枚举值如下:
枚举值 | 定义 | 说明 |
|---|---|---|
0 | 无 | 表示锁定位置未激活。 |
1 | 仅立即正向 | 该指令将出现 MDSC_LOCKDIR_CONFLICT (95) 错误。 |
2 | 仅立即反向 | 该指令将出现 MDSC_LOCKDIR_CONFLICT (95) 错误。 |
3 | 仅位置正向 | 该指令将出现 MDSC_LOCKDIR_CONFLICT (95) 错误。 |
4 | 仅位置反向 | 该指令将出现 MDSC_LOCKDIR_CONFLICT (95) 错误。 |
锁定位置
数据类型 | 说明 | 有效值和默认值 |
|---|---|---|
IMMEDIATE REAL or TAG | 主轴驱动模式下的锁定位置 锁定位置是主轴上的位置。在主轴驱动模式下,针对从坐标系统启动运动后,从坐标系统的运动将从该位置开始。这是以主轴单位表示的主轴绝对位置(加或减)。通过指定锁定位置,可以在启动从坐标系统运动指令后延迟启动从坐标系统的运动。 如果在从坐标系统的轴运动期间对坐标系统激活带有锁定位置的协调运动指令(MCLM 或 MCCM),则 MCLM 或 MCCM 指令将收到 MDSC_LOCK_WHILE_MOVING 错误。 由于合并指令在启用后始终立即执行,因此如果在锁定位置和合并信号均启用的情况下以非零速度启动合并指令,将收到 MDSC_LOCK_WHILE_MOVING 错误。 锁定方向决定着在从坐标系统锁定到主轴之前主轴在通过锁定位置时所需的运动方向。 请注意,如果对主轴指定了归位值,则锁定位置必须介于 0 和归位值之间(也就是说,锁定位置不能大于归位值)。 该参数仅用于主轴驱动模式。 时间驱动模式下的锁定位置 在时间驱动模式下,坐标系统没有锁定位置。如果锁定方向不是“无”,并且系统处于时间驱动模式,则 MCLM 或 MCCM 会出现错误。 该参数仅用于主轴驱动模式。 轴锁定行为 当主轴沿运动指令指定的方向通过主轴锁定位置时,从坐标系统将锁定到主轴。此时,LockStatus 位置位。 在 MDSC 模式下针对从坐标系统执行 MCLM 和 MCCM 指令时,一旦指令到达运动队列的列首,即进入 IP 状态。列首是指当前处于激活的运动前面的运动。 对于“仅立即正向”或“仅立即反向”锁定方向,当执行 MCLM 或 MCCM 指令(进入 IP 状态)时,从坐标系统立即锁定到主轴。对于“仅位置正向”或“仅位置反向”的锁定方向,当主轴沿运动指令指定的方向通过主轴锁定位置时,从坐标系统锁定到主动轴。无论哪种情况,发生锁定时 LockStatus 位都将置位。 由于未定义双向行为,所以一旦锁定,从坐标系统仅在指定方向上跟随主轴。如果主轴改变方向,则从轴停止跟随主轴。请注意,在主轴速度减至零速之前,LockStatus 位将保持置位。该位将在主轴转向点清零。当主轴反向行进时,从轴不跟随主轴。 如果主轴再次改变方向,则当从坐标系统通过初始转向点时,LockStatus 位再次置位,此时从轴继续跟随主轴。 对于从坐标系统,存在以下限制:
对于主轴,则没有特别的限制。 请注意,启用了合并操作的指令进入队列时,将刷新整个队列,并终止当前的运动。 请注意,如果对主轴启用主轴滤波,则滤波器将延迟从坐标系统的锁定位置;延迟量取决于滤波器带宽。 | 默认值 = 0.0 |
给定公差
数据类型 | 说明 | 有效值和默认值 |
|---|---|---|
IMMEDIATE REAL or TAG | 协调运动中的混合起点位置。 使用终止类型 6 时,将使用指令面板上的给定公差值,而非坐标系统中配置的给定公差值。 | 有效值 = 0.0 |
Event Distance
数据类型 | 说明 | 有效值和默认值 |
|---|---|---|
ARRAY or 0 (The array must be a minimum size of 4. If the array is greater than 4, only the first four locations specified are used.) | 沿运动轨迹自运动终点起测量的位置。 这是输入值数组,用于指定在从坐标系统中沿运动方向的增量距离。数组每个成员的测量方法如下:
![]()
如果事件距离数组中的值为 0.0,则参数值为整个运动的时间或距离。 时间驱动模式和主轴驱动模式的事件距离数组值相同。只有“计算数据”数组中的返回值因从坐标系统的设定模式而异。当事件距离为负数时,将跳过事件距离的计算,并在指定“事件距离”参数的“计算数据”数组中返回 -1。 事件距离数组或计算数据数组的维度都没有限制。但是,仅处理事件距离数组的最多 4 个元素(指定值和随后的 3 个)。 请注意,当 MCD 或 MCCD 执行过程接近运动终点时,要特别注意极少数情况下会出现过冲。对于这种情况,当事件距离为 0 时,“计算数据”中将包含超程量,因为为了完成运动,主轴不得不回调该超程量。对于其他事件距离,则不包含超程量。 | 默认值 = 0(无事件距离数组) |
输出参数
下表列出了输出参数。
Calculated Data
数据类型 | 说明 | 有效值和默认值 |
|---|---|---|
REAL ARRAY or 0 | 这是从坐标系统自运动起点到“事件距离”点所经过的主轴距离(或时间)。 返回的“计算数据”值取决于:
要理解“计算数据”概念,重要的是要知道,协调运动的运动起点 (MSP) 是指上一次发生如下状况的时间:
如果在队列中设定了一个停顿,则计算数据将包括停顿时间。请注意,在指定了事件距离的运动发生之前,MSP 可能已经发生几次移动。 Logix Designer 应用程序运动轨迹规划器将处理并计算输出数据,并将结果放入指令提供的“计算数据”数组中。在“计算数据”数组中存储的计算数组元素的数量取决于以下条件:
对于事件距离数组中的每个负值,将在“计算数据”数组中返回 -1。对于这些数组元素,将不进行事件距离计算。 可在程序中动态更改事件距离数组元素。但是,如果在指令启动后(即 IP 位已置位)更改事件距离,则将忽略该更改。 如果“计算数据”数组的大小小于事件距离数组,将发生错误。 如果事件距离本质上大于运动长度(MCLM 指令为矢量长度,MCCM 指令为弧长),则将强制等于运动长度。 如果执行 MCD 或 MCCD(状态位变为 IP),则 CalculatedDataAvailable (CDA) 位将清零。将使用新的动态参数重新计算运动的计算数据。重新计算时,仅计算计算数据数组中尚未达到事件距离的项目;其他项目仍保持不变。这样,在运动完成后,计算数据数组的所有项均将包含有效的信息。计算完成时,CDA 位将再次置位,将使用由 MCD 或 MCCD 指令更改的新动态参数,从初始 MSP(而非 MCD 或 MCCD 点)到事件距离点测量重新计算的计算数据。请注意,如果 MCD 将速度更改为 0,则不会重新计算事件距离;CDA 位将清零并保持清零状态。但如果再次发出 MCD 或 MCCD 并重新开始运动,则将重新计算事件距离。重新计算的计算数据中将包含已停止运动的持续时间。 如果事件距离设置为 0,计算数据将设置为等于运动长度的位置。由于存在内部延迟,可能会在一个或两个近似更新周期后再将 PC 位置位。通常情况下,会在近似更新周期过半时到达终点位置,延时时间会增加到满一个近似更新周期。因此,如果主轴的运动距离等于计算数据,则必须等待多达 2 次迭代,从轴运动的 PC 位才会置位。 请注意,当 MCD 或 MCCD 执行过程接近运动终点时,要特别注意极少数情况下会出现过冲。对于这种情况,当事件距离为 0 时,返回的计算数据将包含行程的超程距离,因为要想完成运动,主轴必须回调该超程距离。对于非零事件距离,则不包含超程距离。 现有运动指令状态字中的状态位 (CalculatedDataAvailable) 用于指示指定事件距离数组元素的所有请求数据均已返回到相应的计算数据数组元素中。所有计算数据仅通过一个状态位来指示。 一旦置位,会在几种条件(包括但不限于正在执行 MAS、MCS)下将该位清零 请注意,计算数据在指令队列或规划过程中仅设置一次。数据不会随着运动的发生而更新,来反映具体行程。但会随变化动态更新。 对于协调运动,在计算数据可用时,CDA 状态位将置位。通常,对于混合终止类型(TT2、3、6)或跟随轮廓终止类型(TT4、5),在第 N+1 个运动进入队列之前,不会看到第 N 个运动的 CDA。对于非混合终止类型(TT0、1),当运动进入队列后会立即看到其 CDA。如果运动序列由混合或跟随轮廓终止类型终止,则不会看到 CDA 位。也就是说,必须通过 TT0 或 TT1 终止混合序列。TT0 或 TT1 必须在运动序列中,但无须与混合序列一起在队列中。当上一个混合运动结束后,队列中有空余空间时,带 TT0 或 TT1 的运动可进入队列中。 对于未指定事件距离的任何运动(即,指令中的事件距离参数为零),CDA 位不会置位。 对于旧系统(v20 之前版本)的升级版本,默认值为 0,说明无事件距离数组。 | 默认值 = 0(无计算数据数组)或 REAL 数组标签 |
计算数据示例 1
事件距离数组 = [11, 22, -5, 23, 44]
计算数据数组 = [f(11), f(22), -1 ,f(23)]
其中 f 为计算数据的函数。
小贴士:
- 事件距离数组的第五个元素 44 将被忽略。在相应计算数据数组的第五个数组元素中不返回任何值。
- 由于相应的事件数据数组元素为负值,因此在计算数据数组的第三个元素中返回 -1。
计算数据示例 2
假设主轴位于 2.0 位置处。从轴的增量值设定为 15.0,
主轴锁定位置为 8.0。事件距离设置为 0.0,表示我们希望总主轴距离(图中的 X)为
从主轴在位置 8.0 处被锁定开始到从轴移动 15.0 个单位
为止的距离。计算数据参数中返回 X 的增量值。

计算数据示例 3
下面的示例说明事件距离和计算数据的使用方法。
请注意,所有事件距离的 MSP 均为 P0 点。MSP 表示从轴锁定到主轴并
开始沿设定路径运动的位置。

指定 5 个运动分段
事件距离 = ED
给定公差 = CT
- MCLM1 Y100; TT2 ED=50 CT=100
- MCLM2 X200; TT2 ED=100 CT=20
- MCLM3 Y-100; TT1 ED=100 CT=20
- MCLM4 X200; TT2 ED=100 CT=20
- MCLM5 Y100; TT2 ED=100 CT=20
MCLM2 进入队列并被规划时,将返回 MCLM1 的计算数据。
这将发生在上面的 P1 点处。从 P0 点开始测量主轴距离。
MCLM3 进入队列并被规划时,将返回 MCLM2 的计算数据。
这将发生在上面的 P2 点处。从 P0 点开始测量主轴距离。
MCLM4 进入队列并被规划时,将返回 MCLM3 的计算数据。
这将发生在上面的 P3 点处。从 P0 点开始测量主轴距离。
MCLM5 进入队列并被规划时,将返回 MCLM4 的计算数据。
这将发生在上面的 P10 点处。从 P10 点开始测量主轴距离。
由于 MCLM5 由 TT2 终止且为队列中的最后一个运动,
因此不返回 MCLM5 的计算数据。应改用 TT0 或 TT1。
所有计算数据均为相对于上一个 MSP 点的主轴距离或时间。
该点也就是从轴处于静止的位置,即上面的 P0 点和 P10 点。
提供反馈
