运动轴传动 (MAG)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。运动轴传动 (MAG) 指令用于在任意两轴之间以指定方向和指定传动比实现电子传动。调用该指令时,指定的从轴会以指定传动比(例如 1.345)或从轴数与主轴数之比(例如 1:3)传动到主轴。MAG 指令支持通过两种不同格式(实数或分数)中的一种格式指定传动比,具体由传动比格式输入选项决定。从轴相对于主轴的运动方向由极为灵活的方向输入参数定义。传动方向可明确设为“相同”或“相反”,也可以相对于当前传动方向设为“反向”或“不变”。
小贴士:
传动比的值带正负号。“主轴参考”选项用于从主轴的“实际位置”或“给定位置”获取传动输入。激活指令的离合器功能后,传动指令会命令从轴先以受控速率加速或减速,然后使用指令加速度值锁定到主轴上,十分类似于汽车的离合器。
此为跳变指令。使用时,请遵循以下步骤:
- 在梯形逻辑中,插入一个指令,以便在每次执行该指令时,梯级输入条件均会由假切换为真。
- 在结构化文本例程中,插入指令的条件以便仅在转换时执行。
架构 | 标准 | 安全 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 | 否 |
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 否 |
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
MAG(SlaveAxis,MasterAxis,MotionControl,Direction,Ratio,SlaveCounts,MasterCounts,MasterReference,RatioFormat,Clutch,AccelRate,AccelUnits);
操作数
梯形图和结构化文本
操作数 | 类型
小贴士:
AXIS_CONSUMED 仅受
Compact GuardLogix 5580 和 CompactLogix 5380 控制器支持。 | 类型
小贴士:
只有
ControlLogix 5570 和 GuardLogix 5570 控制器支持 AXIS_GENERIC。 | 格式 | 说明 |
|---|---|---|---|---|
Slave Axis | AXIS_CIP_DRIVE AXIS_VIRTUAL | AXIS_CIP_DRIVE AXIS_VIRTUAL AXIS_GENERIC_DRIVE AXIS_SERVO AXIS_SERVO_DRIVE | 标签 | 要对其执行操作的轴的名称。对于支持 REF_TO 运动数据类型的控制器,支持的轴操作数类型可以替换为等效的 REF_TO 类型。 |
Master Axis | AXIS_CONSUMED AXIS_VIRTUAL AXIS_CIP_DRIVE CompactLogix 5370、Compact GuardLogix 5370、Compact GuardLogix 5380、CompactLogix 5380 | AXIS_CONSUMED AXIS_VIRTUAL AXIS_CIP_DRIVE | 标签 | 从轴跟随的轴。 对于支持 REF_TO 运动数据类型的控制器,支持的轴操作数类型可以替换为等效的 REF_TO 类型。 |
Motion Control | MOTION_INSTRUCTION | MOTION_INSTRUCTION | 标签 | 用于访问指令状态参数的结构。 |
Direction | SINT、INT 或 DINT | SINT、INT 或 DINT | 立即数 | 从轴跟踪主轴的相对方向。 选择下列方向值之一: 0 = 从轴的运动方向与主轴相同 1 = 从轴的运动方向与当前方向相反 2 = 从轴沿与当前或之前的方向相反的方向运动 3 = 从轴继续沿当前或之前的方向运动。 |
Ratio | REAL | REAL | 立即数或标签 | 有符号实数值,用于确定传动比,单位为从轴用户单位/主轴用户单位。 |
Slave Counts | SINT、INT 或 DINT | SINT、INT 或 DINT | 立即数或标签 | 整数值,表示指定分数传动比时使用的从轴数。 |
Master Counts | SINT、INT 或 DINT | SINT、INT 或 DINT | 立即数或标签 | 整数值,表示指定分数传动比时使用的主轴数。 |
Master Reference | BOOLEAN | BOOLEAN | 立即数 | 将主轴位置参考设为给定位置或实际位置。 0 = 实际 – 由主轴编码器或其他反馈设备测得的主轴当前位置生成从轴运动。 1 = 给定 – 由主轴的预期位置或给定位置生成从轴运动。 |
Ratio Format | BOOLEAN | BOOLEAN | 立即数 | 所需的传动比指定格式。选择其中之一: 0 = 实数传动比 1 = 从轴编码器计数占主轴编码器计数的整数分数。 |
Clutch | BOOLEAN | BOOLEAN | 立即数 | 如果使能离合器,运动控制会以指令定义的加速度值将从轴斜升至传动速度。如果未使能离合器,从轴会立即锁定到主轴上。如果主轴当前正在运动,此情况会导致从轴突然不受控地加速,从而造成轴故障。选择其中之一: 0 = 使能 1 = 禁用 |
Accel Rate | REAL | REAL | 立即数或标签 | 从轴加速度单位为 % 或加速度单位。在使能离合器功能时应用。 |
Accel Units | DINT | DINT | 立即数 | 用于显示加速度值的单位。选择其中之一: 0 = 单位/秒 2 1 = 最大加速度百分比 |
有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法。
对于需要从可用选项中进行选择的操作数,请按照下表说明输入选择的值。
此操作数 | 可选择以下输入方式 | |
|---|---|---|
输入文本 | 或输入数字 | |
MasterReference | actual command | 0 1 |
RatioFormat | real fraction_slave_master_counts | 0 1 |
离合器 | enabled disabled | 0 1 |
AccelUnits | unitspersec2 %ofmaximum | 0 1 |
MOTION_INSTRUCTION 结构
助记符 | 说明 |
|---|---|
.EN (Enable) Bit 31 | 梯级出现假到真跳变时,该位置位,并在伺服消息事务完成且梯级跳变为假之前保持置位状态。 |
.DN (Done) Bit 29 | 成功启动轴传动后,该位置位。 |
.ER (Error) Bit 28 | 该位置位时,表明指令检测到错误,例如指定的轴未配置等。 |
.IP (In Process) Bit 26 | 发生梯级上升沿跳变时该位置位,指令由另一运动传动轴命令代替,或因停止命令、合并、关闭或伺服故障终止时,该位清零。 |
说明
MAG 指令可在两轴之间以指定传动比实现电子传动。电子传动可将任何物理轴以精确传动比同步到另一物理轴的实际位置或给定位置。电子传动可在两轴之间实现直接边对边锁定,不使用最大速度、加速度或减速度限值。从轴速度、加速度和减速度完全由主轴运动和指定传动比决定。
重要提示:
轴配置期间确定的最大速度、加速度或减速度限值不适用于电子传动。
选择或输入所需主轴、从轴和方向,并输入所需传动比的值或标签变量。如果轴呈灰显状态或未显示在“从轴”(Slave Axis) 弹出菜单中,说明未针对伺服操作定义该物理轴。
如果目标轴在可用轴列表中不存在,则尚未针对伺服操作配置该轴。可使用标签编辑器创建和配置新轴。
电子传动在为从轴执行的任何后续点动或运动过程中保持激活状态。这样,可使电子传动运动与点动或运动曲线叠加,生成复杂的运动和同步。
从动于实际位置:如果输入或选择实际位置作为主轴参考源,会由主轴的实际位置生成从轴运动,如下所示。

实际位置是由轴编码器测得的物理轴当前位置。如果主轴的轴类型配置为“仅反馈”,此选项是唯一有效的选项。
从动于给定位置
如果输入或选择给定位置作为主轴参考源,会由主轴的给定位置生成从轴运动,如下所示。

给定位置(仅在主轴的轴类型配置为“伺服”时有效)是主轴的当前预期位置或给定位置。
由于给定位置不包含任何相关的跟随误差、外部位置干扰或量化噪声,因此作为传动参考更加精确、稳定。传动到主轴的给定位置时,必须命令主轴运动,从轴上才会运动。
沿相同方向传动
如果选择或输入“相同”作为“方向”,主轴沿其正方向运动时,从轴会以指定传动比沿其正方向运动,反之亦然。
沿相反方向传动
如果选择或输入“相反”作为“方向”,当主轴沿其正方向运动时,从轴会以指定传动比沿其负方向运动,反之亦然。
更改传动比
如果选择或输入“不变”作为“方向”,会在保留当前传动方向(相同或相反)的情况下更改传动比。此功能适用于当前方向未知或不重要的情况。
反转传动方向
如果选择或输入“反向”作为“方向”,当前电子传动方向会从“相同”更改为“相反”,或从“相反”更改为“相同”。此功能十分适用于在各绕组端部必须反转传动比的绕组应用。
实数传动比
如果选择或输入“实数”作为“传动比格式”,则传动比指定为实数或标签变量,取值范围为 0.00001 到 9.99999(包含),表示从轴位置单位与主轴位置单位的预期比。以此方式表示的传动比采用轴的配置位置单位定义,因此易于理解。
分数传动比
如果选择或输入“分数”作为“传动比格式”,则传动比指定为整数或标签变量对,表示从轴反馈计数与主轴反馈计数之比。有关标签变量的信息,请参见本手册前面的“标签变量构建器”部分。
重要提示:
如果 MAG 指令的“传动比格式”指定为“分数”,则不会使用轴配置过程中输入的转换常数。
如果无法使用小数点后最多五位的实数准确表示传动比,请使用“分数”作为“传动比格式”。
如果将传动比指定为分数,则可直接实现无理数传动比(如 1/3),不会产生累加位置错误,也无需舍入。主轴和从轴计数值不使用轴转换常数,并且两者均为整数,因此从轴与主轴之间的实际传动比关系与指定传动比完全匹配。
例如,无理数传动比 1/3 可等效地指定为 1 个从轴计数与 3 个主轴计数之比,10 个从轴计数与 30 个主轴计数之比,3 个从轴计数与 9 个主轴计数之比。
离合器
如果选中“离合器”(Clutch) 复选框,从轴会使用梯形速度曲线(线性加速或减速)加速或减速到一个速度,该速度等于若当前从轴以指定传动比和方向传动到主轴应有的运动速度。从轴达到传动速度后,会根据其他选项自动激活电子传动。以当前配置的最大加速度值的百分比形式或直接采用配置的用户加速度单位输入所需加速度。
该离合器功能与汽车中的离合器十分类似,可使从轴平滑地啮合到主轴,如下所示。

离合器功能
离合器功能可避免在主轴运动时使能电子传动导致的不受控加速或减速问题。离合器功能还可用于在运行期间合并传动比变化,甚至是方向变化。运动控制器会使从轴斜升至新传动比和/或方向下主轴指示的速度。
离合器斜坡发生器的运行对从轴上可能正在进行的点动或运动过程没有影响。
更改主轴
可随时更改电子传动的主轴,即使传动当前处于使能状态也不例外。但是,由于一次可在多个轴上使能电子传动,因此如果伺服主轴和从轴反转,轴会变为交叉耦合状态,可能导致发生意外的运动。
例如,如果将轴 0 传动到轴 1(定义为伺服轴),随后要改为将轴 1 传动到轴 0,必须先禁用轴 0 上的传动(请参见本部分后面的“禁用传动”部分)。这是因为即使将轴 1 指定为从轴,将轴 0 指定为主轴,也不会自动禁用轴 0 的从轴状态并使轴 1 作为主轴。
在传动时运动
电子传动处于使能状态时,可将增量 MAM 指令用于从轴(或用于主轴,前提是“轴类型”配置为“伺服”)。该功能特别适用于实现相位超前/滞后控制。增量运动距离可用于消除主轴与从轴之间的任何相位误差,也可以建立精确的非零相位关系。增量 MAM 指令与电子传动结合使用还可补偿材料滑动。
通常使用传动比 1 进行相位调整。传动比为 1:1 时,可确保相位误差的计算值在执行运动对其进行修改之前保持不变。绝对式运动的最终端点不可预测,因此电子传动通常对其不适用。
要成功执行 MAG 指令,目标轴必须配置为伺服轴类型,且轴必须处于伺服开启状态。如果以上任何条件未满足,则指令会发生错误。
重要提示:
MAG 指令在单次扫描中执行完成,因此完成 (.DN) 位和正在处理 (.IP) 位将立即置位。正在处理 (.IP) 位会保持置位,直到启动的传动过程由另一 MAG 指令操作代替、或因运动轴停止命令、合并操作或伺服故障动作终止。
在此跳变指令中,每次要执行该指令时,继电器梯形图都会将梯级输入条件由清零切换为置位。
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。如果将未初始化的引用或类型不正确的引用传递给轴操作数,则可能发生严重故障。有关操作数相关的故障,请参阅 通用属性
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | .EN、.DN、.ER 和 .IP 位设置为假。 |
梯级输入条件为假 | 如果 .DN 或 .ER 位为真,则 .EN 位设置为假。 |
梯级输入条件为真 | .EN 位设置为真,指令执行。 |
后扫描 | 不适用 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参见“梯形图”表中的“预扫描”行 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为假”行,然后参见“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
扩展错误代码
使用扩展错误代码 (.EXERR) 可获取有关错误的更多说明。请参阅 运动错误代码 .ERR。
如果 ERR 为 | 且 EXERR | 则 | ||
|---|---|---|---|---|
原因 | 纠正措施 | |||
13 | 变化 | 操作数超出其范围。 | EXERR 是超出范围的操作数的编号。第一个操作数为 0。 例如,如果 EXERR = 4,则检查减速度。 | |
EXERR | 操作数 | |||
10 | Accel Rate | |||
示例
示例 1

示例 2
本例增大了需要数据转换的操作数数量。

提供反馈