主轴驱动轴控制 (MDAC)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。通过主轴驱动速度控制 (MDSC) 功能,可以将一个或多个运动轴同步到一个通用主轴。MDSC 使用主轴驱动轴控制 (MDAC) 指令,该指令为单轴指定主从关系。
借助 MDSC 功能,无需使用凸轮廓线即可实现轴的同步。MDSC 功能还可与时间驱动凸轮廓线 (MATC) 一起使用,以使其行为类似于与主轴同步的位置驱动曲线的行为。
此为跳变指令。使用时,请遵循以下步骤:
- 在梯形逻辑中,插入一个指令,以便在每次执行该指令时,梯级输入条件均会由假切换为真。
- 在结构化文本例程中,插入指令的条件以便仅在转换时执行。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
MDAC (SlaveAxis, MasterAxis, MotionControl, MotionType, MasterReference);
操作数
梯形图
操作数 | 类型
小贴士:
AXIS_CONSUMED 仅受
Compact GuardLogix 5580 和 CompactLogix 5380 控制器支持。 | 类型
小贴士:
只有
ControlLogix 5570 和 GuardLogix 5570 控制器支持 AXIS_GENERIC。 | 格式 | 说明 |
从轴 | AXIS_CIP_DRIVE AXIS_VIRTUAL | AXIS_SERVO AXIS_SERVO_DRIVE AXIS_GENERIC_DRIVE AXIS_CIP_DRIVE AXIS_VIRTUALAX | 标签 | 运动轨迹规划器处于主轴驱动模式时由主轴控制的单轴。单击省略号可打开“轴属性”(Axis properties) 对话框。 当执行以下指令时,MDAC 关系将会断开: 在从轴上:MAS(全部)、MCS(全部)、MGS、MASD、MCSD、MGSD 和模式更改。请注意,MAS(除“全部”之外的其他选项)和 MCS(协调)不会将 MDAC 关系断开。 关闭指令(MGSD、MASD 和 MCSD)永远不会进入 IP 状态。 在主轴上:MASD、MCSD 和 MGSD。请注意,针对任何停止类型(包括“全部”)的 MAS 和 MCS 都不会断开 MDAC 关系。 模式更改(远程运行更改为远程编程,或者,远程编程更改为远程运行)或轴故障也会将 MDAC 关系断开。 |
主轴 (Master Axis) | AXIS_CONSUMED AXIS_CIP_DRIVE AXIS_VIRTUAL
小贴士:
AXIS_CONSUMED 仅受
Compact GuardLogix 5580 和 CompactLogix 5380 控制器支持。 | AXIS_CONSUMED AXIS_SERVO AXIS_SERVO_DRIVE AXIS_GENERIC_DRIVE AXIS_CIP_DRIVE AXIS_VIRTUAL | 标签 | 从轴跟随的任何已配置单轴。主轴可以是任一已配置轴。 单击省略号可打开“轴属性”(Axis properties) 对话框。 |
运动控制 | MOTION_INSTRUCTION | MOTION_INSTRUCTION | 标签 | 指令的控制标签。 |
运动类型 (Motion Type) | UNIT32 | UNIT32 | 立即数或标签 | 指定在从轴上执行的运动类型(MAM、MAJ、MATC 或 MAM,对于位置凸轮还包括主轴偏移运动),当将单轴运动指令设定为主轴驱动模式下时,此运动类型将由主轴控制。运动类型的枚举值如下: 全部 = 0 运动 = 1 点动 = 2 时间凸轮 = 3 主轴偏移运动 = 4 |
主轴参考 | UNIT32 | UNIT32 | 立即数或标签 | 将主轴位置源选择为实际位置 (0) 或给定位置 (1)。 |
对于“全部”运动类型,系统将明确主轴驱动模式应用于所有单轴指令(即 MAM、MAJ、MATC 和 MAM(主轴偏移运动))。如果在从轴上将已激活 MDAC 的运动类型设置为除“全部”之外的其他选项,则在从轴上执行 MDAC“全部”类型将导致运行错误。例如:
MDAC 运动 = MAM 主轴 = X 从轴 = Y - 分配主轴和从轴
MDAC 运动 =“全部”主轴 = Z 从轴 = Y - 会发生错误,因为之前的 MDAC 分配 MAM 为 Y 轴。请注意,将从轴 Y 轴分配给其他任何主轴都会导致相同的错误,因为 Y 轴已分配给 MAM。
为了能够在使用“全部”选项后重新分配主轴,仅需针对从轴或主轴执行以下操作之一即可,不过也可选择针对从轴和主轴执行以下操作之一:
- 在从轴上:MAS(全部)、MCS(全部)、MGS、MASD、MCSD 或 MGSD
- 在主轴上:MASD、MCSD 或 MGSD
如果从轴上存在激活的 MDAC(全部),将 MDAC 指令设置为除“全部”之外的其他运动类型时,会发生运行错误。
为了能够在使用“全部”选项之外的其他任何选项后重新分配主轴,必须执行以下任一操作:
- 在从轴上:MAS(全部)、MCS(全部)、MGS、MASD、MCSD 或 MGSD
- 在主轴上:MASD、MCSD 或 MGSD
如果将同一个轴同时分配为主轴和从轴,则会生成
RSLogix
5000 软件验证错误。同一从轴可以分配给 2 个不同的主轴。例如,如果 X、Y 是主轴,Z 是从轴,则可将 X 指定为 Z 的 MAM 指令的主轴,将 Y 指定为 Z 从轴的 MAJ 指令的主轴。请参阅下图。

可通过针对其他主轴所对应的从轴执行 MDAC 指令,更改活动从轴的主轴。MDAC 针对相应从轴将待处理主轴置于队列中。当在更换模式或合并模式下,执行下一个单轴运动指令(进入 IP 状态)时,下次启动单轴运动时,排队的主轴将成为相应从轴的主轴。例如: 在此示例中,主轴已处于运行状态。 MDAC 运动 = MAM 主轴 = X 从轴 = Z | 分配主轴和从轴 |
MAM X | 在主轴 1 上启动 MAM 运动 |
MAM Z | 在从轴上启动 MAM 运动 |
MAM Y | 在主轴 2 Y 轴上启动 MAM 运动 |
MDAC 运动 = MAM 主轴 = Y 从轴 = Z | Y 正在等待成为新的主轴 |
MAM Z | 使用新主轴 2 在从轴上启动新的 MAM 运动 |
针对所有 MDAC 指令使用不同的控制字。如果针对已激活和待处理 MDAC 使用相同的控制字,则待处理 MDAC 的 IP 位将无法正常工作。对已激活和待处理 MDAC 指令使用单独的轴控制字时,已激活和待处理 MDAC 的 IP 位都会置位。但是,只有已激活 MDAC 的 AC 位才会置位。这是所有指令的标准操作。不会检测是否在多个指令上使用了相同的控制字。
主轴参考
MDAC 指令的主轴参考选择主轴位置源。
主轴参考的枚举值如下:
实际 – 由主轴编码器或其他反馈设备测得的主轴实际(当前)位置生成从轴运动。
给定 – 由主轴的给定(预期)位置生成从轴运动。
由于“仅反馈”轴无给定位置,因此如果为主轴参考选择了实际位置或给定位置,则都会使用主轴的实际位置。在这种情况下,实际位置和给定位置始终相同。不会生成错误。
由于虚拟轴无实际位置,因此如果为主轴参考选择了实际位置或给定位置,则都会使用给定位置。不会生成错误。
如果执行 MDAC 指令时,更改了正在运动的从轴的主轴参考,则会产生错误。新的 MDAC 指令将出错,原始指令将保持激活。
结构化文本
操作数 | 类型 | 格式 | 说明 |
Source | SINT INT DINT REAL STRING 结构 | 标签 | 要复制的初始元素
重要提示:
源操作数和目标操作数的数据类型应相同,否则可能会出现意外的结果
|
Destination | SINT INT DINT REAL STRING LINT 结构 | 标签 | 将被源覆盖的初始元素
重要提示:
源操作数和目标操作数的数据类型应相同,否则可能会出现意外的结果
|
长度 | DINT | 立即数或标签 | 要复制的目标元素数目 |
有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法。
请注意,用户可选择在结构化文本编辑器中浏览枚举值,如下所示。

MDAC 的 MOTION_INSTRUCTION 位定义
助记符 | 说明 |
.EN(使能)位 31 | 此使能位在梯级由假跳变为真时置位,并在梯级变为假前保持置位状态。 |
.DN(完成)位 29 | 此完成位在主轴驱动轴控制指令成功启动时置位。 |
.ER(错误)位 28 | 当 MDAC 指令中存在无效参数组合时此错误位置位。 |
.IP(正在处理)位 26 | 此正在处理位在 MDAC 指令已激活时置位,并通过某个指令(如 MASD 指令)复位。 |
.AC(激活)位 23 | 对于选作 MDAC 指令从轴的轴,在主轴驱动模式下运动(MAJ、MAM 或 MATC)跳变至 IP 状态时,激活位将置位。如果从轴以时间驱动模式启动,则 MDAC 的 AC 位不会激活。MDAC 指令的 IP 位此时不发生更改。 |
说明
MDAC 指令用于选择一个单轴作为主轴,和选择一个单轴作为从轴。MDAC 指令可针对 MAM、MAJ 和 MATC 指令连接主轴和从轴。执行 MDAC(进入 IP 状态)时,MDAC 指令中指定的从轴会在逻辑上传动至指定主轴。主轴和从轴上的运动都启动后,从轴将使用运动指令的设定动力学参数跟随主轴运动。
激活新的 MDAC 指令时,任何已激活运动均无更改。激活新的 MDAC 指令会将在 MDAC 中设定的参数置于待处理状态。如果在从轴上激活一个新的单轴运动指令(MAM、MAJ 和 MATC)之前,执行后续的 MDAC,将覆盖待处理 MDAC 指令中的参数。在从轴上激活新的单轴运动指令时,将使用待处理 MDAC 指令中最新的值。
“执行计划”设为“待处理”的 MATC 始终使用已激活 MATC 的指令模式;锁定位置和锁定方向被忽略。下面的示例进一步对此进行了说明。
假设有四条指令按以下顺序执行:
- MDAC1:主轴=X,从轴=Y
- MATC1:从轴 Y,立即
- MDAC2:主轴 = Z 从轴 = Y 当 MATC1 正在运动时,执行 MDAC2(进入 IP 状态)(主轴发生更改)
- MATC2:从轴=Y,待处理
- MATC2:由于执行 MDAC2 时 MATC1 正在运动(激活),因此将使用来自 MDAC1(主轴和从轴)的参数。如果 MATC2 和 MDAC2 以相反顺序执行,也会得到相同的结果。这遵循 MAPC 指令的现有范例,其中待处理凸轮与正在运行的凸轮使用同一主轴。
运动直接命令和 MDAC 指令
为获得主轴驱动速度控制模式的运动直接支持,必须在时间驱动模式下执行 MAM 或 MAJ 之前,以任意一种支持的编程语言对 MDAC 进行编程。
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参阅 通用属性。
执行
梯形图
条件/状态 | 执行的操作 |
预扫描 | .EN、.DN、.ER 和 .IP 位设置为假。 |
梯级输入条件为假 | 如果 .DN 或 .ER 位为真,则 .EN 位设置为假。 |
梯级输入条件为真 | .EN 位设置为真,指令执行。 |
后扫描 | 不适用 |
结构化文本
条件/状态 | 执行的操作 |
预扫描 | 请参阅“梯形图”表中的“预扫描”行。 |
正常执行 | 请参阅“梯形图”表中的“梯级输入条件为假”。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
错误代码
有关 MDAC 处于激活状态时运动指令的运行时错误,请参阅 运动错误代码 .ERR。
验证错误
在由编程软件进行验证时,无效主轴或无主轴将导致新错误。以下情况可能会导致此错误:
- 主轴和从轴相同。
- 未配置主轴或从轴。
- 主轴或从轴被禁用。
- 正在重新定义位置。
- 正在使轴归零。
MDSC“全部”类型冲突。从轴运动发生器(例如,点动运动发生器)已分配后,将禁用“全部”参数。
示例
示例 1
梯形图

示例 2
梯形图

提供反馈