运动轴运动 (MAM)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。运动轴运动 (MAM) 指令用于使轴运动到指定位置。
此为跳变指令。使用时,请遵循以下步骤:
- 在梯形逻辑中,插入一个指令,以便在每次执行该指令时,梯级输入条件均会由假切换为真。
- 在结构化文本例程中,插入指令的条件以便仅在转换时执行。
架构 | 标准 | 安全 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 | 否 |
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 否 |
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
MAM(Axis, MotionControl, MoveType, Position, Speed, SpeedUnits, AccelRate, AccelUnits, DecelRate, DecelUnits, Profile, AccelJerk, DecelJerk, JerkUnits, Merge, MergeSpeed, LockPosition, LockDirection, EventDistance, CalculatedData);
操作数
梯形图
操作数 | 类型
小贴士:
AXIS_CONSUMED 仅受
Compact GuardLogix 5580 和 CompactLogix 5380 控制器支持。 | 类型
小贴士:
只有
ControlLogix 5570 和 GuardLogix 5570 控制器支持 AXIS_GENERIC。 | 格式 | 说明 | ||
|---|---|---|---|---|---|---|
Axis | AXIS_CIP_DRIVE AXIS_VIRTUAL | AXIS_CIP_DRIVE AXIS_VIRTUAL AXIS_GENERIC_DRIVE AXIS_SERVO AXIS_SERVO_DRIVE | 标签 | 轴名称。 对于绝对式或增量式主轴偏移运动,输入从轴。 对于支持 REF_TO 运动数据类型的控制器,支持的轴操作数类型可以替换为等效的 REF_TO 类型。 | ||
Motion Control | MOTION_ INSTRUCTION | MOTION_ INSTRUCTION | 标签 | 指令的控制标签 | ||
Move type | DINT | DINT | 立即数或标签 | 目的 | Use This Move Type | And Enter |
Move an axis to an absolute position | 绝对式 | 0 | ||||
Move an axis a specified distance from where it is now | 增量式 | 1 | ||||
Move a Rotary axis to an absolute position in the shortest | 最短路径旋转 | 2 | ||||
Move a Rotary axis to an absolute position in the positive direction regardless of its current position | 正向旋转 | 3 | ||||
Move a Rotary axis to an absolute position in the negative direction regardless of its current position | 负向旋转 | 4 | ||||
Offset the master value of a position cam to an absolute position | 绝对式主轴偏移 | 5 | ||||
Offset the master value of a position cam by an incremental distance | 增量式主轴偏移 | 6 | ||||
See Choose a Move Type for a Rotary Axis below for more information about rotary moves. | ||||||
Position | REAL | REAL | 立即数或标签 | 运动的绝对位置或增量距离 | ||
For This Move Type | 输入此位置值 | |||||
Absolute | 要运动到的位置 | |||||
Incremental | 要运动的距离 | |||||
Rotary Shortest Path | 要运动到的位置。输入小于“位置归位”值的正值。 | |||||
Rotary Positive | ||||||
Rotary Negative | ||||||
Absolute Master Offset | 绝对偏移位置 | |||||
Incremental Master Offset | 增量偏移距离 | |||||
Speed | REAL | REAL | 立即数或标签 | 轴的运动速度(采用速度单位) | ||
Speed Units | DINT | DINT | 立即数 | 使用的速度单位。 单位/秒 (0) 最大值的百分比 (1) 时间 (3) 单位/主轴单位 (4) 主轴单位 (7) | ||
Accel Rate | REAL | REAL | 立即数或标签 | 轴加速度(采用加速度单位) | ||
Accel Units | DINT | DINT | 立即数 | 使用的加速度单位。 单位/秒 2 (0)最大值的百分比 (1) 时间 (3) 单位/主轴单位 2 (4)主轴单位 (7) | ||
Decel Rate | REAL | REAL | 立即数或标签 | 轴减速度(采用减速度单位)。 | ||
Decel Units | DINT | DINT | 立即数 | 使用的减速度单位。 单位/秒 2 (0)最大值的百分比 (1) 时间 (3) 单位/主轴单位 2 (4)主轴单位 (7) | ||
Profile | DINT | DINT | 立即数 | 选择为运动运行的速度曲线:
| ||
Accel Jerk | REAL | REAL | 立即数或标签 | 仅当曲线为 S 曲线时,指令才会使用急动度操作数,但必须始终进行填充。
使用以下值开始操作。
还可采用以下急动度单位输入急动度。
| ||
Decel Jerk | REAL | REAL | 立即数或标签 | |||
Jerk Units | DINT | DINT | 立即数 | |||
Merge | DINT | DINT | 立即数 | 是否要将当前所有轴运动转换为完全由该指令控制的运动,而不考虑当前正在执行的运动指令?
| ||
Merge Speed | DINT | DINT | 立即数 | 使能合并后,采用以下哪个速度运动?
| ||
Lock Position | REAL | REAL | 立即数或标签 | 这是主轴上的位置,当在从轴上启动运动后,从轴将从该位置开始跟随主轴运动。 有关详细信息,请参见下文的“结构”部分。 | ||
Lock Direction | SINT、INT 或 DINT | SINT、INT 或 DINT | 立即数 | 指定锁定位置的使用条件。 有效值 = 0-4 默认值 = 无 (当前,在时间驱动或时基模式下,不允许使用枚举值 1-4。) 有关详细信息,请参见下文的“结构”部分。 | ||
Event Distance | REAL ARRAY 或 0 | REAL ARRAY 或 0 | 数组标签 | 沿运动轨迹自运动终点起测量的位置。 有关详细信息,请参见下文的“结构”部分。 | ||
Calculated Data | REAL ARRAY 或 0 | REAL ARRAY 0 | 数组标签 | 从运动起点到“事件距离”点所需经过的主轴距离(或时间)。 有关详细信息,请参见下文的“结构”部分。 | ||
结构化文本
此操作数 | 可选择以下输入方式 | |
|---|---|---|
输入文本 | 或输入数字 | |
SpeedUnits | unitspersec %ofmaximum time unitspermasterunit masterunits | 0 1 3 4 7 |
AccelUnits | unitspersec 2 %ofmaximum time unitspermasterunit 2 masterunits | 0 1 3 4 7 |
DecelUnits | unitspersec 2 %ofmaximum time unitspermasterunit 2 masterunits | 0 1 3 4 7 |
Profile | trapezoidal scurve | 0 1 |
JerkUnits | unitspersec 3 %ofmaximum %oftime time unitspermasterunit 3 %oftime-masterdriven masterunits | 0 1 2 3 4 6 7 |
Merge | disabled enabled | 0 1 |
MergeSpeed | programmed current | 0 1 |
锁定位置 | 无枚举值 | Immediate, Real, or Tag |
锁定方向 | 无 immediateforwardonly immediatereverseonly positionforward positionreverse | 0 1 2 3 4 |
Event Distance | 无枚举值 | Array or 0 |
Calculated Data | 无枚举值 | Array or 0 |
有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法。
MOTION_INSTRUCTION 数据类型
要查看是否出现以下情况 | 检查该位是否设为 | 数据类型 | 备注 |
|---|---|---|---|
假到真跳变是否导致指令执行 | EN | BOOL | EN 位保持置位,直到过程完成且梯级变为假。 |
已成功启动运动 | DN | BOOL | |
是否发生错误 | ER | BOOL | |
轴正在向终点位置运动 | IP | BOOL | 以下操作会停止该运动并将 IP 位清零:
|
轴位于终点位置 | PC | BOOL |
|
说明
MAM 指令用于使轴运动到指定的绝对位置或运动指定的增量距离。MAM 指令还可生成其他特殊类型的运动。
从静止状态开始进行梯形运动

编程原则
警告:
速度和/或结束位置过冲的风险
如果通过任意方法动态更改运动参数,即通过更改运动动态 [运动变化动态 (MCD)] 指令或在上一条指令完成前启动新指令,请注意存在速度和/或结束位置过冲的风险。
如果在运动减速或接近减速点时最大减速度减小,则梯形速度曲线可能会过冲。
而在下列情况下,S 形速度曲线可能会过冲:
- 如果在运动减速或接近减速点时最大减速度减小;或者
- 最大加速急动度减小,且轴正在加速。但要记住,如果急动度以时间百分比的形式指定,则可间接更改。
有关详细信息,请参见“排查轴运动故障”部分。
指导原则 | 详细信息 | |||
|---|---|---|---|---|
在梯形图中,每次要执行该指令时,应切换梯级条件。 | 此为跳变指令。 在梯形图中,每次要执行该指令时,应将梯级输入条件由清零切换为置位。 | |||
在结构化文本中,为指令设置限定条件,以便仅在转换时才执行此指令 | 在结构化文本中,指令会在每次被扫描时执行。 调整指令,使其仅在跳变时执行。可使用下列方法之一:
有关更多信息,请参见“结构化文本语法”部分。 | |||
对于主轴偏移运动,使用主轴单位输入从轴。 | 使用绝对式或增量式主轴偏移运动使位置凸轮进行偏移,无需实际更改主轴的位置。这样会使位置凸轮廓线沿主轴移动。
指令会为速度、加速度、减速度和急动度值添加偏移。 | |||
使用时间百分比是最简单的急动度设定和调谐方法 | 要简化急动度的编程和调谐,应输入为加速或减速时间的百分比。 有关详细信息,请参见“调谐 S 曲线”部分。 | |||
使用“合并”取消其他指令的运动 | 如何处理已在进行的运动? | |||
如果希望 | 并希望 | Then set | ||
将运动添加到任何正在进行的运动 | ![]() | Merge = Disabled Merge Speed = Programmed The instruction ignores Merge Speed but you must fill it in anyway. | ||
通过其他指令结束运动,而仅执行点动 | 以在该指令中设定的速度运动 | Merge = Enabled Merge Speed = Programmed | ||
以轴正在运动的速度运动 | 合并 = 启用 合并速度 = 当前 指令将忽略速度操作数中的值。 | |||
运动是否为绝对式或增量式主轴偏移运动? 如果运动是绝对式或增量式主轴偏移运动,使能合并后,以下情况为真。
| ||||
使用另一 MAM 指令更改正在执行的 MAM 指令。 | 用户可以更改位置、速度、加速度或减速度。更改会立即生效。 | |||
要更改以下运动位置 | 如下设置另一 MAM 指令 | |||
绝对运动 | 执行下列操作之一:
无论在哪种情况下,轴均会运动到新位置,不会停止在旧位置 - 包括任何所需的方向更改。 | |||
增量运动 | 执行下列操作之一:
| |||
将运动与传动相结合,生成复杂曲线和同步。 | 可以结合使用运动轴传动 (MAG) 指令与 MAM 指令,在运动上叠加传动或在传动上叠加运动。 示例: 在电子传动上叠加增量运动,实现相位超前和滞后控制。 | |||
选择旋转轴的运动类型
运动类型 | 示例 | 说明 |
|---|---|---|
绝对式 | 到 225° 的绝对运动。方向取决于轴的起始位置。 ![]() | 对于绝对运动,行进方向取决于轴的当前位置,并不一定是到终点位置的最短路径。如果起始位置小于结束位置,会生成正向运动;如果起始位置大于结束位置,则会生成负向运动。 指定位置由三角学方法解析,可以是正数,也可以是负数。其可以大于位置归位值。位置负值等于其相应的正值,适用于跨 0 旋转轴的情况。例如,–90° 与 +270° 相同。如果位置大于等于位置归位值,轴在停止在绝对位置前会运动超过一转。 |
增量式 | 指定距离由三角学方法解析,可以是正数,也可以是负数。其可以大于位置归位值。如果距离大于等于位置归位值,轴在停止前会运动超过一转。 | |
最短路径旋转 | 从 30° 到 225°的最短路径旋转。 ![]() |
重要提示:
仅在轴的定位模式为“旋转”时(旋转轴),才可使用最短路径旋转运动。
最短路径旋转运动是用于旋转轴的一种特殊类型的绝对运动。轴会:
对于最短路径旋转运动,用户:
|
正向旋转 | 从 315° 到 225° 的正向旋转运动。 ![]() |
重要提示:
仅在轴静止和未运动时,才可使用正向旋转运动。否则,轴可能沿错误方向运动。
正向旋转运动是用于旋转轴的一种特殊类型的绝对运动。 轴会:
无法在单次最短路径旋转运动中使轴运动超过一转。 |
负向旋转 | 从 45° 到 225° 的负向旋转运动。 ![]() |
重要提示:
仅在满足以下条件时,才可使用最短路径旋转:
负向旋转运动是用于旋转轴的一种特殊类型的绝对运动。轴会:
无法在单次最短路径旋转运动中使轴运动超过一转。 |
在与坐标系统相关的任何轴上使用 MAM(合并 = 启用),并且正在其上运行协调运动指令时,使用坐标系统的最大减速度停止其余轴。如果坐标系统中包含姿态轴,则使用坐标系统的最大姿态减速度停止其余 Rx、Ry 或 Rz 轴。
结构
有关通过主轴驱动速度控制 (MDSC) 功能可用于 MAM 指令的输入和输出参数,请参见“单轴运动指令的输入和输出参数结构”部分。在任意参数激活之前,必须执行 MDAC 指令,并且该指令必须激活(IP 位置位)。
是否影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。如果将未初始化的引用或类型不正确的引用传递给轴操作数,则可能发生严重故障。有关操作数相关的故障,请参阅 通用属性。
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | .EN、.DN、.ER 和 .IP 位设置为假。 |
梯级输入条件为假 | 如果 .DN 或 .ER 位为真,则 .EN 位设置为假。 |
梯级输出条件为真 | .EN 位设置为真,指令执行。 |
后扫描 | 不适用 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参见“梯形图”表中的“预扫描”行 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为假”行,然后参见“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
错误代码
有关运动指令,请参阅 运动错误代码 .ERR。
运行错误状况
如果速度单位为秒或主轴单位,则从轴必须在静止状态开始运动。如果启动速度单位 = 秒或主轴单位的 MAM 指令时,另一 MAM 指令正在执行(合并或更换模式),则会发生此情况。
扩展错误代码
使用扩展错误代码 (EXERR) 可获取有关错误的更多说明。有关运动指令,请参阅 运动错误代码 .ERR。
如果 ERR 为 | 且 EXERR | 则 | |||
|---|---|---|---|---|---|
原因 | 纠正措施 | ||||
13 | 变化 | 操作数超出其范围。 | The EXERR is the number of the operand that is out of range. The first operand is 0. For example, if EXERR = 4, then check the Speed. | ||
EXERR | 操作数 | ||||
0 | 轴 | ||||
1 | 运动控制 | ||||
2 | 运动类型 | ||||
3 | 位置 | ||||
4 | 速度 | ||||
6 | Accel Rate | ||||
8 | Decel Rate | ||||
15 | -1 | 坐标系统的最大减速度为 0。 | Go to the Properties for the coordinate system axis and set a Maximum Deceleration. | ||
0 或更大 | 坐标系统中某个轴的最大减速度为 0。 |
| |||
状态位变化
运动指令预定义的数据类型状态位
请参见“MDAC 激活时运动指令(MAM、MATC、MAJ)的状态位”部分。
MAM 单轴状态位变化
位名称 | 含义 | |
|---|---|---|
MotionStatus | 轴的运动状态位。 | |
位号 | 含义 | |
AccelStatus | 0 | The axis is not accelerating (FALSE state). |
DecelStatus | 1 | The axis is not decelerating (FALSE state). |
MoveStatus | 2 | The axis is not moving (FALSE state). |
JogStatus | 3 | The axis is not jogging (FALSE state). |
GearingStatus | 4 | The axis is not gearing (FALSE state). |
HomingStatus | 5 | The axis is not homing (FALSE state). |
StoppingStatus | 6 | The axis is stopping (TRUE state). |
AxisHomedStatus | 7 | The axis is not homed (FALSE state). |
PositionCamStatus | 8 | The axis is not position camming (FALSE state). |
TimeCamStatus | 9 | The axis is not time camming (FALSE state). |
PositionCamPendingStatus | 10 | The axis does not have a Position Cam Pending (FALSE state). |
TimeCamPendingStatus | 11 | The axis does not have a Time Cam Pending (FALSE state). |
GearingLockStatus | 12 | The axis is not in a Gear Locked condition (FALSE state). |
PositionCamLockStatus | 13 | The axis is not in a Position Cam Locked condition (FALSE state). |
TimeCamLockStatus | 14 | The axis is not in a Time Cam Locked condition (FALSE state). |
MasterOffsetMoveStatus | 15 | The axis is offset (TRUE state). |
CoordinatedMotionStatus | 16 | Sets when the MDAC instruction executes (TRUE state). Clears when the instruction completes (FALSE state). |
TransformStateStatus | 17 | The axis is part of an active transform (TRUE state). |
ControlledByTransformStatus | 18 | The axis is moving because of a transform (TRUE state). |
DirectVelocityControlStatus | 19 | The axis is not under Direct Velocity Control (FALSE state). |
DirectTorqueControlStatus | 20 | The axis is not under Direct Torque Control (FALSE state). |
MoveLockStatus | 22 | MAM is Locked to Master in MDSC Mode (TRUE state). The bit is cleared when a MGS, MGSD, MAS, or MASD is executed (goes IP). If either the Slave or Master axis (or both) is paused by changing its speed to 0, then the MoveLockStatus bit stays set. Master Driven Mode The bit is set when the Lock Direction request is satisfied. The bit is not used when the enumeration is NONE. For the enumerations Immediate Forward Only and Immediate Reverse Only, the MamLockStatus bit is set immediately when the MAM is initiated. For the enumeration Position Forward Only and Position Reverse Only, the bit is set when the Master Axis crosses the Master Lock Position in the specified direction. The MoveLockStatus bit is cleared when the Master Axis reverses direction and the Slave Axis stops following the Master Axis. The MoveLockStatus bit is set again when the Slave Axis resumes following the Master Axis. Time Driven Mode The bit is not used when the enumeration is NONE. |
JogLockStatus | 24 | The axis is not in a Jog Locked condition (FALSE state). |
MasterOffsetMoveLockStatus | 26 | Master offset Move is Locked to master in MDSC Mode (TRUE state). |
MaximumSpeedExceeded | 27 | Sets when the maximum axis speed that is specified in the axis configuration is exceeded during a move (TRUE state). Clears when the speed is reduced below the limit (FALSE state). |
运动状态位
如果运动类型 | 且合并为 | 则指令更改以下位 | ||
|---|---|---|---|---|
位名称 | 状态 | 含义 | ||
非绝对式主轴偏移或增量式主轴偏移 | 禁用 | MoveStatus | TRUE | Axis is Moving. |
启用 | MoveStatus | 真 | Axis is Moving. | |
JogStatus | 假 | 轴不再点动。 | ||
GearingStatus | 假 | 轴不再传动。 | ||
绝对式主轴偏移或增量式主轴偏移 | ![]() | MasterOffsetMoveStatus | TRUE | Axis is Offset. |
增量模式下的合并
MAM 合并与运动协调线性运动 (MCLM) 指令的合并有所不同。对于 MAM,合并时未完成的所有运动均将保留在运动中。例如,假设您已在增量模式下编程单轴 MAM,起始绝对位置为 0 并且设定的增量距离为 4 个单位。如果在绝对位置 1 进行合并,并且合并时需要增量运动 4 个单位,则运动在位置 8 处完成。
对于在增量模式下编程的运动协调直线运动 (MCLM) 指令,如果发生此示例,则最终位置为 5。
MAM 的主轴驱动速度控制 (MDSC) 合并和更换模式
以秒为单位进行设定时,MAM 指令必须在静止状态(即启动速度和加速度必须等于 0.0)下启动。以秒或主轴单位为单位进行设定时,如果在非静止状态下激活指令,从轴上的 MAM 会发生运行错误。
主轴驱动速度控制 (MDSC) 和运动直接命令支持
运动直接命令无法用在 MDAC 指令的指令树中。在时间驱动模式下执行 MAM 之前,必须以支持的编程语言对 MDAC 编程。如果未事先在主轴驱动模式下在 MAM 和 MAJ 中执行 MDAC,将发生运行错误。
“运动直接命令”支持 MAM 的 MDSC 速度、加速度、减速度和急动度枚举值。
请注意,MAM 和“运动直接命令”不支持“事件距离”和“计算数据”参数。
主轴驱动速度控制 (MDSC)、CIP 轴手动调谐以及运动发生器
MAM 不支持“事件距离”和“计算数据”参数。
提供反馈




