运动轴位置凸轮 (MAPC)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。运动轴位置凸轮 (MAPC) 指令用于根据指定凸轮廓线在任意两轴之间实现电子凸轮传动。
执行后,从轴会使用位置凸轮廓线同步到指定的主轴,该廓线由
Studio 5000 Logix Designer
应用程序凸轮廓线编辑器或运动计算凸轮廓线 (Motion Calculate Cam Profile, MCCP) 指令生成。该指令还提供一种简单方法,可在凸轮执行期间在任何位置取消正在运行的位置凸轮,将其替换为其他廓线。替换操作立即完成,或计划在沿正在运行的凸轮的特定主轴位置完成。
此为跳变指令。使用时,请遵循以下步骤:
- 在梯形逻辑中,插入一个指令,以便在每次执行该指令时,梯级输入条件均会由假切换为真。
- 在结构化文本例程中,插入指令的条件以便仅在转换时执行。
架构 | 标准 | 安全 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 | 否 |
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 否 |
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
MAPC (SlaveAxis, MasterAxis, MotionControl, Direction, CamProfile, SlaveScaling, MasterScaling, ExecutionMode, ExecutionSchedule, MasterLockPosition, CamLockPosition, CamType, MasterReference, MasterDirection);
操作数
梯形图和结构化文本
操作数 | 类型
小贴士:
AXIS_CONSUMED 仅受
Compact GuardLogix 5580 和 CompactLogix 5380 控制器支持。 | 类型
小贴士:
只有
ControlLogix 5570 和 GuardLogix 5570 控制器支持 AXIS_GENERIC。 | 格式 | 说明 |
|---|---|---|---|---|
Slave Axis | AXIS_CIP_DRIVE AXIS_VIRTUAL | AXIS_CIP_DRIVE AXIS_SERVO AXIS_SERVO_DRIVE AXIS_GENERIC AXIS_GENERIC_DRIVE AXIS_VIRTUAL | 标签 | 应用凸轮廓线的轴。单击省略号可打开“轴属性”对话框。 对于支持 REF_TO 运动数据类型的控制器,支持的轴操作数类型可以替换为等效的 REF_TO 类型。 |
Master Axis | AXIS_CIP_DRIVE AXIS_CONSUMED AXIS_VIRTUAL AXIS_SERVO AXIS_SERVO_DRIVE | AXIS_CIP_DRIVE AXIS_CONSUMED AXIS_GENERIC_DRIVE AXIS_VIRTUAL AXIS_SERVO AXIS_SERVO_DRIVE | 标签 | 从轴基于凸轮廓线跟随的轴。单击省略号可打开“轴属性”对话框。如果将“执行计划”设为“待处理”,“主轴”参数会被忽略。 对于支持 REF_TO 运动数据类型的控制器,支持的轴操作数类型可以替换为等效的 REF_TO 类型。 |
Motion Control | MOTION_INSTRUCTION | MOTION_INSTRUCTION | 标签 | 用于访问块状态参数的结构。 |
Direction | DINT | DINT | 立即数 | 从轴相对于主轴的方向: 0 = 相同 - 从轴位置值与主轴位置值相同。 1 = 相反 - 从轴位置值与主轴位置值相反。 2 = 反向 - 执行时反转当前或之前的位置凸轮方向。如果选择“反向”,首次执行时,控制默认方向为“相反”。 3 = 不变 - 此设置可用于更改其他凸轮参数,而无需更改当前或之前的凸轮传动方向。如果选择“不变”,首次执行时,控制默认方向为“相同”。 |
Cam Profile | CAM_PROFILE CAM_PROFILE_EXTENDED
提醒事项:
CAM_PROFILE_EXTENDED 仅受 Compact GuardLogix 5580 和 CompactLogix 5380 控制器支持。
| CAM_PROFILE CAM_PROFILE_EXTENDED | 数组 | 用于建立主/从轴位置关系的计算凸轮廓线数组的标签名称。凸轮廓线数组仅可使用零数组元素 ([0])。单击省略号可打开凸轮廓线编辑器。 此操作数的 CAM_PROFILE_EXTENDED 类型用于实现双精度(64 位 LREAL)凸轮数据成员访问。 |
Slave Scaling | REAL | REAL | 立即数或标签 | 通过凸轮廓线变换从轴覆盖的总距离。 |
Master Scaling | REAL | REAL | 立即数或标签 | 通过凸轮廓线变换主轴覆盖的总距离。 |
Execution Mode | DINT | DINT | 立即数 | 确定凸轮廓线仅执行一次还是重复执行: 0 = 一次 – 启动后,从轴将一直跟随凸轮廓线,直至穿过凸轮边界。穿过凸轮边界时,从轴上的凸轮运动停止,.PC 位将置位。从轴运动状态字中的“位置凸轮状态”位重置。如果主轴运动回凸轮廓线范围以内,从轴运动不会恢复。 1 = 持续 – 凸轮廓线启动后会无限期地执行。该功能适用于需要凸轮位置以旋转或往复方式持续运行的旋转应用。 2 = 持久 - 当主轴运动到所定义的范围以外时,从轴的凸轮运动会停止。主轴反向并运动回凸轮廓线范围内时,从轴上的凸轮运动继续沿相反方向进行。 |
Execution Schedule | DINT | DINT | 立即数 | 选择用于执行凸轮廓线的方式。 0 = 立即 – 从轴会立即锁定到主轴,位置凸轮传动过程开始。 1 = 待处理 - 正在进行的位置凸轮完成后,可混合新的位置凸轮执行。选择“待处理”时,将忽略以下参数:主轴、主轴锁定位置和主轴参考。 2 = 仅正向 - 主轴位置以正向经过主轴锁定位置时,凸轮廓线启动。 3 = 仅反向 - 主轴位置以反向经过主轴锁定位置时,凸轮廓线启动。 4 = 双向 - 主轴位置以任意方向经过主轴锁定位置时,凸轮廓线启动。 |
Master Lock Position | REAL | REAL | 立即数或标签 | 主轴偏移为 0.0 时,主轴锁定位置为主轴绝对位置,从轴会锁定到主轴上的该位置。如果主轴偏移为 X,从轴将在主轴锁定位置的绝对主轴位置值 –X 处锁定到主轴。 例如:假定主轴锁定位置为 50,主轴偏移运动为 10。另外,假设主轴运动 (MAM) 和主轴偏移运动 (MOM) 同时启动。从轴锁定到主轴时,锁定位置为绝对主轴位置 40。实际上,这会将凸轮廓线左移 10 个单位。 如果将“执行计划”值设为“待处理”,“主轴锁定位置”参数会被忽略。 |
Cam Lock Position | REAL | REAL | 立即数或标签 | 该操作数用于确定凸轮廓线的起始位置。 |
Cam Type | DINT | DINT | 立即数 | 0 = 新建凸轮 - 用户要启动新凸轮。这是默认值,为 V34 Studio 5000 Logix Designer 之前的版本提供向后兼容性。 1 = 更换并重新开始 - 替换凸轮将替换活动凸轮,并在“凸轮锁定位置”指示的位置开始插补。 2 = 替换并继续 - 替换凸轮将替换活动凸轮,并从内部计算的索引(即活动凸轮被替换的点)开始插补。“凸轮锁定位置”会被忽略。 此操作数是 V34 Studio 5000 Logix Designer 的新增内容。 |
Master Reference | DINT | DINT | 立即数 | 将主轴位置参考设为给定位置或实际位置。如果将“执行计划”值设为“待处理”,“主轴参考”参数会被忽略。 0 = 实际 – 由主轴编码器或其他反馈设备测得的主轴当前位置生成从轴运动。 1 = 给定 – 由主轴的预期位置或给定位置生成从轴运动。 |
Master Direction | DINT | DINT | 立即数 | 该操作数用于根据凸轮廓线确定生成从轴运动的主轴方向。 选项包括: 0 = 双向 – 从轴可沿任意方向跟踪主轴。 1 = 仅正向 – 从轴沿主轴正向跟踪主轴。 2 = 仅反向 – 从轴沿主轴反向跟踪主轴。 |
结构化文本
MAPC (SlaveAxis, MasterAxis, MotionControl,Direction, CamProfile, SlaveScaling, MasterScaling, ExecutionMode,
ExecutionSchedule, MasterLockPosition, CamLockPosition, CamType, MasterReference, MasterDirection);
操作数与继电器梯形图 MAPC 指令的操作数相同。对于数组操作数,无需包含数组索引。如果不包含数组索引,指令将从数组中的第一个元素 ([0]) 开始执行。
对于需要从可用选项中进行选择的操作数,请按照下表说明输入选择的值:
此操作数 | 可选择以下输入方式 | |
|---|---|---|
输入文本 | 或输入数字 | |
ExecutionMode | 一次 持续 持久 | 0 1 2 |
ExecutionSchedule | 立即数 待处理 ForwardOnly ReverseOnly 双向 | 0 1 2 3 4 |
CamType | 新建凸轮 替换并重新开始 替换并继续 | 0 1 2 |
MasterReference | 实际 命令 | 0 1 |
MasterDirection | 双向 ForwardOnly ReverseOnly | 0 1 2 |
MOTION_INSTRUCTION 结构
助记符 | 说明 |
|---|---|
.EN (Enable) Bit 31 | 梯级出现假到真跳变时,该位将置位,并在梯级变为假前保持置位状态。 |
.DN (Done) Bit 29 | 成功地重新定义轴位置凸轮后,该位将置位。 |
.ER (Error) Bit 28 | 该位置位时,表明指令检测到错误,例如指定的轴未配置等。 |
.IP (In Process) Bit 26 | 发生梯级上升沿跳变时,该位将置位,指令由另一运动轴位置凸轮命令代替,或因停止命令、合并、关闭或伺服故障终止时,该位清零。 |
.AC (Active) Bit 23 | 当凸轮开始从轴的插补时,该位将置位。 当活动凸轮执行完成或因停止命令、合并、关闭或伺服故障取消执行时,此位重置。 |
.PC (Process Complete) Bit 27 | 发生梯级上升沿跳变时,该位清零;在执行模式设为“一次”且主轴位置超出激活的凸轮廓线所定义的主轴位置范围时,该位将置位。 |
小贴士:
版本 34 和更新版本:MOTION_INSTRUCTION 结构表中与 .AC 位相关的信息仅适用于 Compact GuardLogix (5380)、CompactLogix (5380)、ControlLogix (5580 和 5590)、GuardLogix (5580) 和 Logix 仿真系列控制器。对于其他控制器,.AC 位显示在指令面板上,但处于非活动状态,且始终为假。
说明
MAPC 指令执行由之前执行的运动计算凸轮廓线 (Motion Calculate Cam Profile, MCCP) 指令或
Logix Designer
应用程序凸轮廓线编辑器设置的位置凸轮廓线。实际上,位置凸轮可在两轴之间实现非线性电子传动关系。不使用最大速度、加速度或减速度限值。从相关凸轮表中获得的主轴运动和指定凸轮廓线决定了从轴的速度、加速度和减速度。
警告:
轴配置期间确定的最大速度、加速度或减速度限值不适用于电子凸轮传动。
“方向”输入参数用于确定从轴相对于主轴的运动方向。应用于从轴的凸轮传动方向可明确设为“相同”或“相反”,也可以相对于当前凸轮传动方向设为“反向”或“不变”。
要将从轴位置精确同步到主轴位置,可为主轴指定“执行计划”设置和相关“主轴锁定位置”。主轴以“执行计划”参数指定的方向经过主轴锁定位置时,从轴将根据指定的凸轮廓线锁定到主轴位置,起点位于凸轮锁定位置。
凸轮廓线也可通过“执行计划”参数进行配置,以立即执行位置凸轮廓线或等待当前正在执行的位置凸轮廓线完成。
通过指定所需的“执行模式”,凸轮廓线可以采用“一次”、“持续”或“持久”模式执行。
“主轴参考”选项用于从主轴的“实际位置”或“给定位置”获取主轴的凸轮传动输入。滑动离合器功能可用于支持需要单向运动的应用。它有助于防止从轴在主轴反转方向时“加速”。“主轴方向”参数控制此功能。
“主轴标定”和“从轴标定”功能可用于根据标准凸轮廓线变换从轴运动,无需创建凸轮表和计算新的凸轮廓线。
通过选择“凸轮类型”,用户可以取消正在运行的凸轮,立即将其替换为另一个凸轮,或将其规划为在主轴位置的稍后位置执行。
凸轮方向
凸轮可配置为在从轴给定位置的基础上加减凸轮增量。此行为通过“方向”参数控制。
同向凸轮传动
如果选择或输入“相同”作为 MAPC 指令的“方向”,则在轴给定位置的基础上加上由凸轮廓线计算所得的轴位置值。这是最常见的操作,使用的廓线位置值与原始凸轮表中输入的值方向相同。连续增加廓线值会导致轴一直沿正向运动,反之亦然。
反向凸轮传动
如果选择或输入“相反”作为“方向”,会在轴给定位置的基础上减去由凸轮廓线计算所得的从轴位置值。因此,轴运动方向与原始凸轮表中指示的方向相反。连续增加廓线值会导致轴一直沿反向运动,反之亦然。
保留当前凸轮传动方向
如果选择或输入“不变”作为“方向”,会在保留当前或之前的凸轮传动方向(相同或相反)的情况下更改其他位置凸轮参数。此功能适用于当前方向未知或不重要的情况。如果选择“不变”,首次执行凸轮时,控制默认方向为“相同”。
反转当前凸轮传动方向
如果选择“反转”,当前或之前的位置凸轮方向会从“相同”更改为“相反”,或从“相反”更改为“相同”。如果选择“反向”,首次执行凸轮时,控制默认方向为“相反”。
指定凸轮廓线
要执行 MAPC 指令,必须指定一个用于存储计算所得凸轮廓线数据数组的标签。用户可以通过以下方式生成凸轮廓线数组标签:使用
Logix Designer
应用程序标签编辑器;通过 MAPC 指令使用内置凸轮廓线编辑器;通过在现有凸轮数组上执行运动计算凸轮廓线 (MCCP) 指令。
编译期间,可使用凸轮廓线编辑器修改凸轮廓线数组中的数据,运行期间则可使用运动计算凸轮廓线 (Motion Calculate Cam Profile, MCCP) 指令进行修改。要在运行期间更改数据,必须创建可以使用 MCCP 指令的凸轮数组。有关转换凸轮数组的更多详细信息,请参见 MCCP 指令规范。
MAPC 支持两种类型的凸轮廓线数组:CAM_PROFILE 和 CAM_PROFILE_EXTENDED。CAM_PROFILE 通过 CAM 数组计算而得出。CAM_PROFILE_EXTENDED 通过 CAM_EXTENDED 数组计算而得出,该数组提供更高的精度。
对于 CAM_PROFILE 数组,除状态和类型元素外,该凸轮廓线数组元素结构的所有元素在
Logix Designer
应用程序标签编辑器中都处于隐藏状态。这些元素对用户没有意义。状态成员用于指示计算出的凸轮廓线数组元素。如果尝试在凸轮廓线中包含任何未计算的元素时执行凸轮传动指令,则会发生错误。类型参数决定应用于该凸轮数组元素和下一凸轮元素之间的插补类型(例如,线性或三次)。对于 CAM_PROFILE_EXTENDED 数组,状态、主轴值和从轴值、类型以及 C0、C1、C2、C3 系数在
Logix Designer
标签编辑器中可见。状态参数用于指示已计算的 CAM_PROFILE 数组元素。如果凸轮传动指令开始执行时使用了 CAM_PROFILE 中的未计算元素,则会出错。主轴和从轴定义凸轮元素的 x 和 y 值。类型参数决定应用于该凸轮数组元素和下一凸轮元素之间的插补类型(例如,线性或三次)。C0、C1、C2 和 C3 是用于定义两个凸轮元素之间形状的系数。这些参数通过“运动计算凸轮廓线”(MCCP) 指令或凸轮廓线编辑器进行计算,不应进行修改。尝试修改 C0、C1、C2 和 C3 系数可能导致意外运动。
警告:
请勿直接修改凸轮廓线数组。修改凸轮廓线数组可能会导致意外运动或运动故障。
始终使用运动计算凸轮廓线 (MCCP) 或凸轮廓线编辑器调整凸轮廓线数组。
凸轮廓线数组检查
凸轮廓线数组中第一个元素的状态成员为特殊成员,用于检查数据完整性。为此,MAPC 必须始终指定起始索引设置为 0 的凸轮廓线。
第一个凸轮廓线元素状态成员可能具有以下值。
状态变量 | 说明 |
|---|---|
0 | 未计算凸轮廓线元素。 |
1 | 正在计算凸轮廓线元素。 |
2 | 已计算凸轮廓线元素 |
n | 已计算凸轮廓线元素,且正在由 ( n- 2) MAPC 或 MATC 指令使用。 |
在启动指定轴上的凸轮之前,MAPC 指令会检查第一个凸轮廓线元素的状态成员值,确定是否已计算凸轮廓线数组。如果状态为 0 或 1,则表示尚未计算凸轮廓线,并设置 MAPC 指令错误标签。如果已完成凸轮廓线数组计算(状态 > 1),则指令会将状态成员值递增,指示该轴正在使用该成员。
凸轮完成或终止时,第一个凸轮廓线数组元素的状态成员值会递减,以便跟踪使用相关凸轮廓线的凸轮数。
线性和三次插补
位置凸轮廓线采用完全插补生成。这意味着,如果当前主轴位置未正好对应于与凸轮廓线相关的凸轮表中的一点,则从轴位置将由相邻点之间的线性或三次插补值确定。如此一来,可以尽可能地实现最平滑的从轴运动。
凸轮数组中用于生成凸轮廓线的各点可配置为采用线性或三次插补。
通过后续执行的任何从轴点动或运动过程,电子凸轮传动保持激活状态。这样,可使电子凸轮传动运动与点动或运动曲线叠加,生成复杂的运动和同步。
变换位置凸轮廓线
执行位置凸轮廓线时,可以在主轴维度和从轴维度上对其进行标定。该变换功能非常有用,因为它允许使用存储的凸轮廓线确定运动廓线的常规形式。然后,使用变换参数定义用于执行曲线的主轴或从轴总行程,如下图所示。如此一来,一个标准凸轮廓线可用于生成一整系列的特定凸轮廓线。
凸轮廓线数组由 MAPC 指令指定时,凸轮廓线数组定义的主轴和从轴值会分别采用主轴和从轴的位置单位。相比之下,主轴和从轴标定参数都是“无单位”值,用作凸轮廓线的倍数。

默认情况下,主轴标定参数和从轴标定参数都设置为 1。若要标定位置凸轮廓线,可输入除 1 之外的主轴标定值或从轴标定值。
增加凸轮廓线的主轴标定值会降低廓线的速度和加速度,而增加从轴标定值会增加廓线的速度和加速度。要使已变换曲线与未变换曲线的速度和加速度近似相等,主轴变换值和从轴变换值应该相等。例如,如果曲线的从轴变换值为 2,则主轴变换值也应该为 2,这样才可在执行已变换位置凸轮廓线期间保持近似相等的速度和加速度。
警告:
如果减小位置凸轮的主轴标定值或增大从轴标定值,所需的轮廓轨迹的速度和加速度会增大。在超出驱动系统容量时,这将造成运动故障。
执行模式
一次
对于执行模式可选择“一次”、“持续”或“持久”,以确定主轴位置超出原始凸轮表定义的廓线起点和终点时凸轮运动的行为。
如果选择“一次”(默认值),则指定的凸轮廓线一旦启动,将一直执行到穿过凸轮边界为止。主轴运动到廓线范围以外时,从轴上的凸轮运动会停止,MAPC 指令的处理完成 (.PC) 位将置位。除非主轴运动回由起点和终点指定的廓线范围内,否则从轴运动不会恢复。
持续
如果选择“持续”模式,指定的凸轮廓线启动后会无限期地执行。对于持续运行,当主轴位置运动到廓线范围以外时,廓线的主轴和从轴位置归位,从而导致凸轮廓线重复执行。该功能适用于需要位置凸轮以旋转或往复方式持续运行的旋转应用。但是,要使用该技术生成平滑的连续运动,必须谨慎设计凸轮表中的凸轮点,确认计算所得凸轮廓线的起点和终点之间不存在位置、速度或加速度不连续现象。
持久
选择“持久”模式时,如果主轴处于凸轮廓线范围内,从轴的凸轮会运动。当主轴运动到所定义的范围以外时,从轴的凸轮运动会停止。当主轴反转放心并移回到凸轮廓线范围内时,从轴根据凸轮廓线恢复其凸轮运动。
执行计划
“执行计划”参数用于控制 MAPC 指令的执行。
立即数
默认情况下,MAPC 指令的执行计划为“立即”。在“立即”执行中,从轴会立即锁定到主轴,位置凸轮传动会开始。
活动凸轮
在“立即活动凸轮”情况下,位置凸轮传动过程的执行不会出现延迟。在这种情况下,主轴锁定位置参数无关紧要。
下图显示了在从轴上启动凸轮传动过程后“立即活动凸轮”的执行情况。请注意,“从轴运动”状态字的“位置凸轮状态”和“位置凸轮锁定状态”设置为真。从轴将立即锁定到主轴并跟随凸轮廓线。

替换并重新启动凸轮
在“立即替换并重新启动凸轮”的情况下,替换凸轮会立即在设定的凸轮锁定位置替换活动凸轮。
下图说明了“立即替换并重新启动凸轮”的执行情况。活动凸轮将启动凸轮传动过程,并且替换凸轮将按照“立即”执行计划启动。如果在设定的凸轮锁定位置为零处替换,则忽略主轴锁定位置。
“从轴运动状态”位的“位置凸轮状态”和“位置凸轮锁定状态”位将置位。

替换并继续凸轮
在“立即替换并继续凸轮”的情况下,替换凸轮会在启动替换的点处立即替换活动凸轮。“凸轮锁定位置”和“主轴锁定位置”会被忽略。
下图说明了“立即替换并继续凸轮”的执行情况。活动凸轮将启动凸轮传动过程,并且替换凸轮将按照“立即”执行计划启动。
“从轴运动状态”位的“位置凸轮状态”和“位置凸轮锁定状态”位将置位。

仅正向、仅反向或双向
在指令的“执行计划”参数设置为“仅正向”、“仅反向”或“双向”的情况下,只有在主轴满足相应的条件时,从轴才会锁定到主轴。
仅正向:
当凸轮在主轴沿正向运动的情况下到达替换点时,替换凸轮将替换活动凸轮。
仅反向:
与“仅正向”相同,唯一不同之处是主轴沿反向运动。
双向:
与“仅正向”相同,唯一不同之处是主轴沿任一方向运动。
活动凸轮解锁时替换并继续凸轮:
下图说明了在“主轴仅正向”、“立即执行模式”和“稍后执行替换凸轮”情况下启动活动凸轮的时间。在该图中,状态转换由垂直虚线表示。
- 活动凸轮启动:从轴开始跟随主轴沿正向运动。“从轴运动”状态字位的“位置凸轮状态”和“位置凸轮锁定状态”设置为真。
- 活动凸轮解锁时的主轴:由于主轴反向,活动凸轮解锁,“从轴运动”状态字位的“位置凸轮锁定状态”重置。
- 替换凸轮启动:当主轴反向运动时,替换凸轮启动,活动凸轮仍处于解锁状态,并采用以下配置:
- 执行计划:仅正向
- 主轴方向:仅正向
- 执行模式:持久(凸轮完成后 PC 位不跳变为真)
- 设定的主轴锁定位置:10 单位
- 主轴锁定位置处的替换:当主轴开始正向运动并到达主轴锁定位置 10 单位时,“替换凸轮运动”状态字的 AC 位设置为真,这表示替换凸轮已准备好插补从轴。
- 活动凸轮锁定时的主轴:当主轴正向运动并到达活动凸轮的主轴反向点时,活动凸轮锁定,替换凸轮开始驱动从轴。“从轴运动”状态字位的“位置凸轮锁定状态”设置为真。从轴沿着替换凸轮廓线开始运动,直至主轴穿过凸轮边界。“从轴运动”状态字位的“位置凸轮锁定状态”重置。

- 活动凸轮锁定时替换并重新启动凸轮:下图说明了在“主轴仅正向”、“立即执行模式”和“稍后执行替换凸轮”情况下启动活动凸轮的时间,状态转换由图中的垂直虚线表示。
- 活动凸轮启动:从轴开始跟随主轴沿正向运动。“从轴运动”状态字位的“位置凸轮状态”和“位置凸轮锁定状态”设置为真。
- 替换凸轮启动:当主轴正向运动时,替换凸轮启动,活动凸轮仍处于锁定状态,并采用以下配置:
- 执行计划:仅正向
- 主轴方向:仅正向
- 执行模式:持久(凸轮完成后 PC 位不跳变为真)
- 设定的主轴锁定位置:15 单位
- 主轴锁定位置处的替换:当主轴开始正向运动并到达主轴锁定位置 15 单位时,“替换凸轮”状态字的 AC 位设置为真,这表示替换凸轮已准备好插补从轴。替换凸轮沿着替换凸轮廓线开始运动,直至主轴穿过凸轮边界。“从轴运动”状态字位的“位置凸轮锁定状态”随后设置为假。

待处理凸轮
或者,可以延迟 MAPC 指令的执行,直到完成当前执行的位置凸轮。因此,可通过将“执行计划”选为“待处理”,在不停止运动的情况下混合两个位置凸轮廓线。
对于从轴必须锁定到运动的主轴并使用特定的廓线加速到适当速度的高速封装等应用,待处理执行功能非常有用。当此加速廓线完成时,必须混合到通常持续执行的运行廓线中。若要停止从轴,运行的廓线需平滑地混合到减速廓线中,从而使轴在已知位置停止,如下图所示。

然而,为确认在转换期间平滑运动,廓线必须设计为在当前廓线终点和新廓线起点之间不存在位置、速度或加速度不连续现象。这可通过使用 Studio 5000 Logix Designer 应用程序凸轮廓线编辑器实现。
如果在未进行相应的活动凸轮廓线的情况下将“执行计划”选为“待处理”,则 MAPC 指令会执行,但不会发生凸轮传动运动,直到启动另一个具有非待处理“执行计划”的 MAPC 指令。这允许在执行初始凸轮之前预加载待处理凸轮廓线。该方法可处理立即执行凸轮在待处理凸轮可靠加载前完成的情况。
替换凸轮对待处理凸轮的影响
下图举例说明在待处理凸轮启动之前执行替换凸轮时,待处理凸轮状态标志所受的影响。该图用垂直虚线表示状态转换。当替换凸轮执行时,待处理凸轮的 .IP 位将置位,“替换并重新启动凸轮廓线”将运行。
(1) 活动凸轮启动。
(2) 待处理凸轮已启用,并等待活动凸轮完成。待处理凸轮的 .IP 和 .DN 位将置位。
(3) 替换凸轮在活动凸轮廓线结束前执行。待处理凸轮 .IP 位重置。
(4) 凸轮完成,替换凸轮 .PC 位将置位。

主轴锁定位置 (Master Lock Position)
替换凸轮的设定主轴锁定位置是替换位置(点)。
在旋转轴配置中,主轴锁定位置与圈数无关。用户必须确认主轴锁定位置在活动凸轮的廓线范围内。
主轴参考
主轴参考参数确定链接到凸轮发生器的主轴位置源。该源可以是主轴的实际位置或给定位置。使用给定位置可以获得更平滑的运动,但是在某些情况下,例如当物理轴不受
ControlLogix
运动控制模块控制时,实际位置是唯一可行的选择。从动于实际位置
如果输入或选择实际位置作为主轴参考源,会由主轴的实际位置生成从轴运动,如下所示。

实际位置是由主轴编码器或其他反馈设备测得的主轴当前位置。当主轴类型配置为“仅反馈”时,这是唯一选择,因为通常需要同步两个轴的实际位置。
从动于给定位置
如果输入或选择给定位置作为主轴参考源,会由主轴的给定位置生成从轴运动,如下所示。

给定位置(仅在主轴的轴类型为“伺服”或“虚拟”轴时可用)是主轴的预期位置或给定位置。
由于给定位置不包含任何相关的跟随误差或外部位置干扰,因此作为凸轮传动参考更加准确、稳定。凸轮传动到主轴的给定位置时,必须命令主轴运动,从轴上才会运动。
主轴方向
通常,“主轴方向”参数设置为“双向”(默认设置)。但是,将“主轴方向”选为“仅正向”时,从轴将沿主轴的正向跟踪主轴。当选择“仅反向”时,从轴将沿主轴的反向跟踪主轴。如果主轴改变方向,从轴不会反向,但会保持在主轴反向时所处的位置。位置凸轮的这种单向功能用于提供电子滑动离合器,有助于防止凸轮运动发生器在主轴反向时向后移经凸轮廓线。
当主轴再次反向时,恢复所需方向上的运动,当主轴到达最初反向时所处的位置时,从轴将恢复运动。如此一来,在禁用错误方向上的运动时,从轴可与主轴保持同步。如果特定方向上的运动会对机器或产品造成损坏,则这种同步特别有用。
凸轮传动时运动
可以在进行凸轮传动时执行运动轴运动,以在从轴运行时提供复杂的相位和偏移控制。
增量运动
当位置凸轮正在操作时,增量运动轴运动 (Motion Axis Move, MAM) 指令可用于从轴(或者,在配置为伺服操作时,可用于主轴)。该功能适用于实现相位超前/滞后控制。增量运动距离可用于消除主轴与从轴之间的任何相位误差,也可以建立精确的相位关系。
主轴偏移运动
当位置凸轮正在操作时,还可使用 MAM 指令来实时移动凸轮的主轴参考位置。与从轴上的增量运动不同,从轴上的主轴偏移运动会相对于主轴移动凸轮廓线,如下图所示。

当 MAPC 指令(待处理除外)启动时,相应的有效主轴偏移运动将禁用,相应的主轴偏移、抓拍偏移和启动主轴偏移将复位为零。为实现主轴参考位置移动,必须在启动 MAPC 之后启动 MAM 指令。
有关主轴偏移运动的更多信息,请参见运动轴运动 (MAM) 指令。
凸轮锁定位置 (Cam Lock Position)
凸轮锁定位置用于确定从轴锁定到主轴时凸轮廓线中的起始位置。通常,凸轮锁定位置设置为凸轮廓线的起始位置。由于大多数凸轮表的起点都为零,因此凸轮锁定位置通常设置为零。或者,凸轮锁定位置可设置为主轴凸轮廓线范围内的任意位置。
下图说明了具有两种不同凸轮锁定位置的凸轮廓线。红线表示凸轮廓线执行,凸轮锁定位置为零;蓝线表示相同的凸轮廓线执行,凸轮锁定位置为十。请注意廓线从点 1 移至点 1’、点 2 移至点 2’,以此类推。
在图中,凸轮锁定位置为零,当主轴处于位置 10 单位时,从轴处于位置 30 单位,如红色 1 指示。当凸轮锁定位置由零变为 10 单位时,每行从轴位置的从轴廓线偏移 30 单位。下面是每行从轴值的计算方法。
[ ] | 主轴 | 从轴 | 从轴' |
|---|---|---|---|
0 | 0 | 0 | 1' = S 1 - 30 1' = 30 - 30 = 0 |
1 | 10 | 30 | 2' = S 2 - 30 2' = 35 - 30 = 5 |
2 | 20 | 35 | 3' = S 3 - 30 3' = 30 - 30 = 0 |
3 | 30 | 30 | 4' = S 4 - 30 4' = 0 - 30 = 30 |
4 | 40 | 0 | 廓线结束 '4 = 凸轮边界结束 |

凸轮类型
“凸轮类型”参数指示设定的凸轮为新的或替换的凸轮。此选项允许用户选择“新建凸轮”、“替换并重新启动”以及“替换并继续”。
新建凸轮
当用户希望设定的凸轮成为新建凸轮时,应使用“新建凸轮”。这是“凸轮类型”参数的默认值,为
Studio 5000 Logix Designer
应用程序提供向后兼容性。新建凸轮会在开始时启动其廓线,或在活动凸轮完成后启动待处理凸轮时启动其廓线。下图说明了新凸轮的执行情况。

替换并重新开始
使用“替换并重新启动”枚举值替换当前正在运行的凸轮。凸轮类型为“替换并重新启动”的替换凸轮可在设定的凸轮锁定位置启动凸轮廓线。替换操作不会考虑速度、加速度、急动度干扰。
用户负责通过正确的凸轮设计最大程度地减少任何速度、加速度和急动度干扰。下图说明了“替换并重新启动”的执行情况。

替换并继续
使用“替换并继续”枚举值可在活动凸轮行进时随时替换活动凸轮。在替换点,替换凸轮开始插补从轴。下图说明了“替换并继续”的执行情况。
绿色虚线表示在替换凸轮与活动凸轮同时启动时从轴的位置。
蓝色虚线表示在活动凸轮继续执行到替换点以外范围时从轴的位置。
从轴位置在替换点处突然变化的原因是,替换凸轮廓线现在定义了新的从轴位置。

停止凸轮
与其他运动发生器(点动、运动和传动)相同,必须通过各种停止指令(如运动轴停止 (MAS) 或运动组停止 (MGS))停止活动凸轮。当
ControlLogix
处理器切换 OS 模式时,凸轮运动也必须停止。MAS 指令必须能够停止凸轮传动过程。此行为应与专门停止传动过程的 MAS 功能相同。从凸轮合并
与其他运动发生器(点动、运动和传动)相同,活动凸轮还必须符合运动合并功能。运动和点动必须能够从活动的凸轮传动合并。此行为应与应用于传动过程的合并功能相同。
故障恢复
有时需要在不会使锁定在凸轮关系中的主轴和从轴之间失去同步的情况下,对轴故障状况做出响应。借助活动凸轮,可通过若干方式来处理轴故障。
创建虚拟轴并将所有内容均凸轮传动到该虚拟轴,如有必要,将该虚拟主轴传动到机器的实际主轴。将所有轴的各种故障动作设置为“仅状态”。当发生轴故障(如驱动器故障)时,监视轴故障状态的应用程序将检测到该故障,并通过停止虚拟主轴来以受控方式停止所有活动轴。在分析器级别,所有内容仍完全同步。使用故障轴的跟随误差来确定故障的位置。复位故障轴的故障,使用 MAM 指令和计算得出的跟随误差以受控的速度进入该位置。最后,虚拟主轴开始运动。
与上面的配置相同,但在这种情况下,当从轴出现故障时,轴故障动作会禁用驱动器。这会停止从轴上的活动凸轮传动过程。此时,应用程序将通过虚拟主轴停止所有其他轴。接下来,通过确定主轴的位置重新定位故障轴,然后计算如果未发生故障从轴所应处的位置。最后,立即锁定 MAPC 以与设置为计算值的凸轮锁定位置同步。
小贴士:
MAPC 指令在单次扫描中执行完成,因此完成 (.DN) 位和正在处理 (.IP) 位将立即置位。正在处理 (.IP) 位会保持置位,直到启动的 PCAM 过程由另一条 MAPC 指令代替、或因运动轴停止命令、合并操作或伺服故障动作停止。当配置为一次执行模式时,处理完成 (.PC) 位会在 MAPC 执行时立即清零,并会在凸轮过程完成 (.PC) 时置位。
此为跳变指令:
- 在继电器梯形图中,每次要执行该指令时,EnableIn 均会从假切换为真。
- 在结构化文本中,为指令设置限定条件,以便仅在出现跳变时才执行此指令。有关更多信息,请参见“结构化文本语法”部分。

影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。如果将未初始化的引用或类型不正确的引用传递给轴操作数,则可能发生严重故障。对于数组索引故障,请参阅 数组索引编制。
执行条件
在结构化文本中,EnableIn 在普通扫描期间始终为真。因此,如果指令处于由逻辑激活的控制路径中,指令将会执行。
粗实线下方的所有状况仅能在普通扫描模式期间出现。
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | .EN、.DN、.ER、.IP、.AC 和 .PC 位设置为假。 |
后扫描 | 不执行任何操作。 |
使能为假 | 如果 .DN 或 .ER 位为真,则 .EN 位设置为假。 |
EnableIn 为真,.EN 位为假 | .EN 位设置为真,指令根据最新版本的运动指令 PISD 文档执行。 |
EnableIn 为真,.EN 位为真 | 不执行任何操作。 |
错误代码
有关运动指令,请参阅 运动错误代码 .ERR。
扩展错误代码
“扩展错误代码”针对许多指令通用的“错误代码”提供指令特定的附加信息。
轴未配置 (11) 错误代码的扩展错误代码如下:
- 扩展错误代码 1 表示从轴未配置。
- 扩展错误代码 2 表示主轴未配置。
参数超出范围 (13) 错误代码的扩展错误代码列出了一个数字,该数字对应于面板中自上而下列出的操作数的编号,第一个操作数的编号为零。因此,对于 MAPC 指令,扩展错误代码 5 指的是“从轴变换”操作数的值存在问题。然后,需要对照该指令可接受的值范围对操作数的值进行检查。
对于错误代码 54 - 最大减速度值为零,单击不合要求的轴旁边的省略号按钮可访问“轴属性”屏幕。转到“动力学”(Dynamics) 选项卡,对最大减速度值进行适当更改。如果扩展错误返回的数字为 -1,则表示坐标系统的最大减速度值为 0。转到“坐标系统属性”(Coordinate System Properties) 的“动力学”(Dynamics) 选项卡,更正最大减速度值。
.SEGMENT 字段
ILLEGAL_CAM_TYPE (28)、ILLEGAL_CAM_ORDER (29) 或 INVALID_CAM_PROFILE_ELEMENT (179) 错误代码的 .SEGMENT 字段表示凸轮廓线数组元素,其中分别包含无效的凸轮廓线类型(非线性或三次)、非升序主轴位置或无效值(例如溢出或非数字)。因此,.SEGMENT 字段值为 3 的 INVALID_CAM_PROFILE_ELEMENT 表示凸轮廓线数组的第四个元素(或 [3])包含无效数字。“运动计算凸轮廓线 (MCCP)”指令或凸轮廓线编辑器用于重新计算凸轮廓线,并确认主轴和从轴值不包含无效值。
状态位
位置凸轮状态
该状态位指示运动轴位置凸轮廓线正在进行。当从轴上启动运动轴位置凸轮命令时,该位将置位。
满足以下条件时该位重置:
- 活动凸轮或替换凸轮以“一次”执行模式完成。
- 使用“全部停止类型”或“位置凸轮”停止(MAS、MCS)从轴。
- 从轴关闭(MASD、MGSD 和 MCSD)。执行模式位名称语句一次持久持续位置凸轮状态当从轴上启动运动轴位置凸轮命令时,该位将置位。真TRUETRUE当活动凸轮或替换凸轮完成执行时,该位重置。真假FALSE
位置凸轮锁定状态
“位置凸轮锁定状态”位指示主轴根据凸轮廓线和从轴方向开始驱动从轴时的状态。当主轴满足以下条件时该位将置位:执行模式、执行计划、主轴方向和凸轮锁定位置。
满足以下条件时该位重置:
- 在“一次”和“持久”执行模式下,主轴穿过凸轮边界。
- 主轴沿主轴方向中指定的相反方向运动。
- 使用“全部停止类型”或“位置凸轮”停止(MAS、MCS)从轴。
- 从轴关闭(MASD、MGSD 和 MCSD)。
执行模式 | ||||
|---|---|---|---|---|
位名称 | 语句 | 一次 | 持久 | 持续 |
位置凸轮锁定状态 | 主轴开始驱动从轴时,该位将置位。 | 真 | TRUE | TRUE |
当主轴穿过凸轮边界时,该位重置。 | 真 | 真 | FALSE | |
位名称 | 语句 | 执行计划 |
|---|---|---|
位置凸轮锁定状态 | 该位立即置位。主轴锁定和凸轮锁定位置会被忽略。 | 立即数 |
当主轴满足以下条件时该位将置位:执行模式、执行计划、主轴方向和凸轮锁定位置。 | 仅正向 仅反向 双向 |
下图说明了在活动凸轮解锁情况下替换并重新启动凸轮。在该图中,活动凸轮以“持久”执行模式启动,随后在活动凸轮解锁的情况下执行替换凸轮。垂直虚线表示状态转换。
(1) 活动凸轮启动
从轴开始跟随主轴沿正向运动。“从轴运动状态”位的“位置凸轮状态”和“位置凸轮锁定状态”位将置位。
(2) 活动凸轮解锁
由于主轴正向穿过活动凸轮廓线边界,活动凸轮解锁,“从轴运动”状态字位的“位置凸轮锁定状态”重置。“从轴运动状态”位的“位置凸轮状态”不变,保持为真。
(3) 替换凸轮启动
替换凸轮启动时,活动凸轮仍处于解锁状态,且采用以下配置:
- 执行计划:立即数
- 主轴方向:仅正向
- 执行模式:持久(凸轮完成后 PC 位不跳变为真)
“从轴运动”状态字位的“位置凸轮锁定状态”置位,“从轴运动状态”位的“位置凸轮状态”位不变,保持为真。
从轴沿着替换凸轮廓线开始运动,直至主轴穿过凸轮边界。“从轴运动”状态字位的“位置凸轮锁定状态”重置,“从轴运动状态”位的“位置凸轮状态”位不变,保持为真。

位置凸轮待处理状态
该状态位指示运动轴位置凸轮廓线正在等待凸轮廓线完成执行。
满足以下条件时该位将置位:
- 执行计划为“待处理”的情况下运动轴位置凸轮启动。
- 执行计划为“仅正向”、“仅反向”或“双向”的情况下替换凸轮启动。
满足以下条件时该位重置:
- 当前位置凸轮廓线完成,从而启动待处理凸轮廓线。
- 替换凸轮满足执行计划和主轴锁定位置的条件。
- 使用“全部停止类型”或“位置凸轮”停止(MAS、MCS)从轴。
- 从轴关闭(MASD、MGSD 和 MCSD)。
位名称 | 语句 | 执行计划 |
|---|---|---|
位置凸轮待处理状态 | 假 | 立即数 |
真 | 待处理 | |
该位将置位,直到主轴满足条件为止,具体取决于执行模式、执行计划、主轴方向和凸轮锁定位置 | 替换凸轮采用: 仅正向 仅反向 双向 |
下图说明了在活动凸轮锁定情况下执行替换并重新启动凸轮。在该图中,活动凸轮以“持久”执行模式启动,随后在活动凸轮锁定的情况下执行替换凸轮。状态转换由垂直虚线表示。
(1) 活动凸轮启动
从轴开始跟随主轴沿正向运动。“从轴运动状态”位的“位置凸轮状态”和“位置凸轮锁定状态”位将置位。“从轴运动状态”位的“位置凸轮待处理状态”位重置。
(2) 替换凸轮启动
替换凸轮启动时,活动凸轮仍处于锁定状态,且采用以下配置:
- 执行计划:仅正向
- 主轴方向:仅正向
- 执行模式:持久(凸轮完成后 PC 位不跳变为真)
- 设定的主轴锁定位置:30 单位
“从轴运动”状态字位的“位置凸轮待处理状态”置位。“从轴运动状态”位的“位置凸轮状态”和“位置凸轮锁定状态”均不变,保持为真。
(3) 活动凸轮解锁
由于主轴正向穿过活动凸轮廓线边界,活动凸轮解锁,“从轴运动”状态字位的“位置凸轮锁定状态”重置。“从轴运动状态”位的“位置凸轮状态”不变,保持为真。
(4) 主轴锁定位置处的替换
当主轴开始正向运动并到达主轴锁定位置 30 单位时,“从轴运动”状态字位的“位置凸轮锁定状态”置位,“从轴运动”状态字的“位置凸轮待处理状态”位重置。“从轴运动状态”位的“位置凸轮状态”不变,保持为真。
从轴沿着替换凸轮廓线开始运动,直至主轴穿过凸轮边界。“从轴运动”状态字位的“位置凸轮锁定状态”重置。

示例
继电器梯形逻辑

结构化文本
MAPC (Axis0, Axis1, MAPC_1, 1, Cam_prof1[0], 1.0, 1.0, Once, Immediate, Mlckpos, Clckpos, NewCam, Actual, ForwardOnly);
提供反馈