运动装备输出凸轮 (MAOC)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。在适用情况下会注明 controller 的差异。运动装备输出凸轮 (MAOC) 指令具有基于轴位置将输出位置位和复位的功能。
此为转换指令。使用时,请遵循以下步长:
- 在梯形逻辑中,插入一个指令,以便在每次执行该指令时,梯级输入条件均会由 false 转换为 true。
- 在结构化文本例程中,插入指令的条件以便仅在转换时执行。
重要提示:
已规划输出模块仅可与一 (1) 个 MAOC 轴/执行目标关联。
运动装备功能

在系统内部,输出凸轮对象用于处理运动装备输出凸轮功能。各输出凸轮对象都负责一个输出,每个输出都包含 32 个输出位。每个输出位都可以通过输出凸轮廓线单独编程,并通过位置偏移和时间延时进行补偿。
MAOC 指令用于在指定轴和输出之间启动特定输出凸轮装备。执行后,使用由
Logix Designer
输出凸轮编辑器确定的输出凸轮廓线将指定输出凸轮位与指定轴同步。此关系可视为主/从关系,其中轴表示主轴,输出位表示从轴。因此,输出凸轮功能与位置凸轮功能相关,此功能提供了主轴和从轴之间的关系。若要将输出凸轮与指定轴精确同步,需指定执行计划、相关轴和凸轮装备位置。当轴以“执行计划”参数指定的方向经过轴装备位置时,凸轮位置将锁定至指定“凸轮装备位置”参数确定的轴位置。此时,将装备输出凸轮并将输出凸轮装备状态位置位。输出凸轮也可通过“执行计划”参数进行配置,以立即执行输出凸轮或等待当前正在执行的输出凸轮完成。此外,通过指定所需的“执行模式”,输出凸轮也可以“一次”、“持续”或“持久”执行。“持久”行为允许输出凸轮在凸轮位置超过输出凸轮范围时解除装备,并在凸轮位置返回范围内时重新装备。
输出凸轮范围由输入参数 CamStartPosition 和 CamEndPosition 指定。“主轴参考”选项有助于轴输入从指定轴的“实际位置”或“给定位置”获取。
重要提示:
输出凸轮增加了超出近似更新速率的可能性。如果运动任务执行时间超出所配置的组近似更新周期,这会引起行为异常。检查此条件的唯一方式是通过
运动组属性
(Motion Group Properties) 对话框监视最长执行时间。架构 | 标准 | 安全 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 | 否 |
Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 否 |
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
MAOC(Axis, ExecutionTarget, MotionControl, Output, Input, OutputCam, CamStartPosition, CamEndPosition, OutputCompensation, ExecutionMode, ExecutionSchedule, AxisArmPosition, CamArmPosition, PositionReference);
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。请参见“数据转换”。
梯形图和结构化文本
操作数 | 类型 CompactLogix 5370, Compact GuardLogix 5370, Compact GuardLogix 5380, CompactLogix 5380 | 类型 ControlLogix 5570、GuardLogix 5570、ControlLogix 5580、GuardLogix 5580,以及 ControlLogix 5590 控制器 | 格式 | 说明 |
轴 | AXIS_CIP_DRIVE AXIS_VIRTUAL AXIS_CONSUMED
小贴士:
只有
Compact GuardLogix 5580 和 CompactLogix 5380 控制器支持 AXIS_CONSUMED。 | AXIS_CIP_DRIVE AXIS_VIRTUAL AXIS_CONSUMED AXIS_SERVO AXIS_SERVO_DRIVE AXIS_GENERIC_DRIVE AXIS_GENERIC
小贴士:
仅
ControlLogix 5570 和 GuardLogix 5570 控制器支持 AXIS_GENERIC。 | 标签 | 轴的名称,为输出凸轮提供位置输入。单击省略号可打开“轴属性”(Axis Properties) 对话框。对于支持 REF_TO 运动数据类型的控制器,支持的轴操作数类型可以替换为等效的 REF_TO 类型 |
执行目标 (Execution Target) | SINT、INT 或 DINT | SINT、INT 或 DINT | 立即数或标签 | 执行目标用于定义与指定轴相连的组中的具体输出凸轮。行为由以下值确定: 0...7 – 输出凸轮已在 Logix 控制器中执行。 8...31 – 保留供将来使用。 |
运动控制 | MOTION_INSTRUCTION | MOTION_INSTRUCTION | 标签 | 用于访问指令状态参数的结构。 |
输出 | DINT | DINT | 标签 | 一组包含 32 位的输出位,各输出位可根据具体输出凸轮置位或复位。可能是存储单元或物理输出。如果将“执行计划”设为“待处理”,“输出”参数会被忽略。 |
输入 | DINT | DINT | 标签 | 一组包含 32 位的输入位,各输入位可根据具体输出凸轮用作使能位。可能是存储单元或物理输入。如果将“执行计划”设为“待处理”,“输入”参数会被忽略。 |
输出凸轮 (Output Cam) | OUTPUT_CAM | OUTPUT_CAM | 数组标签 | 由 OUTPUT_CAM 元素组成的数组。其中的元素不需要进行排序,且数组大小由指定的凸轮元素数确定。 数组大小受 Logix 控制器可用内存的限制。 |
凸轮起始位置 (Cam Start Position) | SINT、INT、DINT 或 REAL | SINT、INT、DINT 或 REAL | 立即数或标签 | 凸轮起始位置和凸轮终点位置共同定义了输出凸轮范围的左右边界。 |
凸轮终点位置 (Cam End Position) | SINT、INT、DINT 或 REAL | SINT、INT、DINT 或 REAL | 立即数或标签 | 凸轮终点位置和凸轮起始位置共同定义了输出凸轮范围的左右边界。 |
输出补偿 (Output Compensation) | OUTPUT_COMPENSATION | OUTPUT_COMPENSATION | 数组标签 | 由 1 到 32 个 OUTPUT_COMPENSATION 元素组成的数组。数组索引对应于输出位编号。最小数组大小由最高补偿输出位确定。 |
执行模式 | SINT、INT 或 DINT | SINT、INT 或 DINT | 立即数 | 可行的执行模式有三 (3) 种。具体行为由所选模式确定。选项包括: 0 = 一次 – 在凸轮位置移至超出凸轮起始位置或凸轮终点位置时,输出凸轮解除装备且运动指令的处理完成位置位。 1 = 持续 – 在凸轮位置移至超出凸轮起始位置或凸轮终点位置时,输出凸轮在输出凸轮范围的对侧继续执行。 2 = 持久 – 在凸轮位置移至超出凸轮起始位置或凸轮终点位置时,输出凸轮解除装备。当凸轮位置移回输出凸轮范围内时,输出凸轮重新装备。 |
执行计划 | SINT、INT 或 DINT | SINT、INT 或 DINT | 立即数 | 选择装备输出凸轮的时间。选项包括: 0 = 立即 – 立即装备输出凸轮。 1 = 待处理 – 在当前执行的输出凸轮移至超出其凸轮起始位置或凸轮终点位置时,装备输出凸轮。选择“待处理”时,会忽略以下参数:输出、输入、轴装备位置和参考。 2 = 仅正向 – 当轴沿正向接近或经过指定轴装备位置时,装备输出凸轮。 3 = 仅反向 – 当轴沿反向接近或经过指定轴装备位置时,装备输出凸轮。 4 = 双向 – 当轴沿任一方向接近或经过指定轴装备位置时,装备输出凸轮。 |
轴装备位置 (Axis Arm Position) | SINT、INT、DINT 或 REAL | SINT、INT、DINT 或 REAL | 立即数或标签 | 此操作数用于定义将“执行计划”设为“仅正向”、“仅反向”或“双向”且轴沿指定方向运动时,装备输出凸轮的轴位置。如果将“执行计划”设为“待处理”,“轴装备位置”参数会被忽略。 |
凸轮装备位置 (Cam Arm Position) | SINT、INT、DINT 或 REAL | SINT、INT、DINT 或 REAL | 立即数或标签 | 此操作数用于定义装备输出凸轮后与轴装备位置相关的凸轮位置。 |
位置参考值 | SINT、INT 或 DINT | SINT、INT 或 DINT | 立即数 | 设置是将输出凸轮连接至轴给定位置还是轴实际位置。如果将“执行计划”设为“待处理”,“参考”参数会被忽略。 0 = 实际 – 由轴编码器或其他反馈设备测得的轴当前位置。 1 = 给定 – 主轴的预期位置或给定位置。 |
结构化文本
对于数组操作数,无需包含数组索引。如果不包含索引,指令将从数组中的第一个元素 ([0]) 开始执行。有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法。
对于需要从可用选项中进行选择的操作数,请按照下表说明输入选择的值:
此操作数 | 可选择以下输入方式 | |
输入文本 | 或输入数字 | |
ExecutionMode | once continuous persistent | 0 1 2 |
ExecutionSchedule | 立即数 pending forwardonly reverseonly bidirectional | 0 1 2 3 4 |
位置参考值 | actual command | 0 1 |
MAOC 指令
有效的凸轮装备位置包括凸轮起始位置和凸轮终点位置及两者之间的任意位置。将凸轮装备位置设为与凸轮起始位置或凸轮终点位置相等(或非常接近)的值时,若进行补偿,可能会使凸轮位置超出凸轮起始位置和凸轮终点位置确定的范围。补偿值不仅受为“位置偏移”、“闭锁延时”和“解锁延时”指定的“输出补偿”值影响,还受基于 MAOC 指令的“参考”和“输出”参数应用的内部补偿值影响。
将 MAOC 指令的“执行模式”配置为“持续”或“持久”时不会产生副作用,且在输出凸轮已装备和轴运动时不存在待处理的 MAOC 指令。
将 MAOC 指令的“执行模式”配置为“仅一次”时可能产生以下副作用,且在输出凸轮已装备和轴运动时存在待处理的 MAOC 指令。
一个或多个输出的状态在任何情况下可能都不会更改。
MAOC 指令可能立即完成。
若当输出凸轮已装备且轴运动时存在待处理的 MAOC 指令,可能产生的其中一种副作用是,一个或多个输出可能根据待处理 MAOC 指令的配置开始执行。
MOTION_INSTRUCTION 结构
助记符 | 说明 |
.EN(使能)位 31 | 当梯级出现假到真跳变时,该位将设置为真,并在梯级变为假前保持置位状态。 |
.DN(完成)位 29 | 当输出凸轮成功启动后,该位将设置为真。 |
.ER(错误)位 28 | 该位设为真时,表明指令检测到错误,例如指定的轴未配置等。 |
.IP(正在处理)位 26 | 当输出凸轮成功启动后,该位将设置为真;若输出凸轮由另一“运动装备输出凸轮”命令代替、由“运动解除装备输出凸轮”命令中止或者在执行模式设为一次时凸轮位置移至超出指定的输出凸轮范围时,该位将设置为假。 |
.PC(处理完成)位 27 | 在发生梯级上升沿跳变时该位将设置为假,在执行模式设为一次时,若凸轮位置移至超出指定的输出凸轮范围,该位将置位。 |
.SEGMENT | 该位将设置为与错误 36(非法输出凸轮)或错误 37(非法输出补偿)相关的数组索引。若存在多个错误,仅会存储其中的第一个。 |
说明
运动装备输出凸轮 (MAOC) 指令用于执行以手动、编程方式或通过
Logix Designer
输出凸轮编辑器设置的输出凸轮廓线。在系统内部,输出凸轮对象用于处理运动输出装备凸轮功能。各输出凸轮对象都负责一个输出,每个输出都包含 32 个输出位。每个输出位均可单独编程。当前,对于每个近似更新周期(当前可配置为 1 到 32 ms),都会在 Logix 控制器中执行输出凸轮功能。轴
轴为输出凸轮提供位置输入。轴可能为虚拟轴、物理轴或消费型轴。
执行目标 (Execution Target)
执行目标用于定义与指定轴相连的组中的具体输出凸轮。当前,仅支持指定八个输出凸轮。
指定输出凸轮
若要执行 MAOC 指令,必须指定一个用于存储计算所得输出凸轮数据数组的标签。输出凸轮数组标签可以通过
Logix Designer
标签编辑器创建,也可以通过 MAOC 指令使用内置输出凸轮编辑器创建。数据定义各个输出凸轮元素的特定值。输出凸轮元素的数量受到可用内存的限制。对于每个输出位,可以定义零个或多个凸轮。对于输出凸轮数组中各个元素的排列方式,系统没有限制。若由输出凸轮元素控制的输出处于激活状态时,重新定义输出凸轮 ON 窗口位置,会发生异常。在某些情况下,运动轨迹规划器可能检测不到窗口过零且由输出凸轮元素控制的输出保持 ON 状态。有关数据类型和编程单元的更多信息,请参见 OUTPUT_CAM 结构说明。
重要提示:
若由输出凸轮元素控制的输出处于激活状态时,重新定义输出凸轮 ON 窗口位置,会发生异常。在某些情况下,运动轨迹规划器可能检测不到窗口过零且由输出凸轮元素控制的输出保持 ON 状态。
此问题适用于任何输出点或 MAOC 指令控制的虚拟输出。
此外,建议您仅在凸轮元素未激活时更改配置。
下图展示了由输出凸轮元素定义的轴、输入和输出之间的关系。

闭锁类型
根据所选的 LatchType,按下表设置相应的输出位:
闭锁类型 | 行为 |
未激活 | 不更改输出位。 |
位置 | 当轴进入补偿凸轮范围时,输出位置位。 |
启用 | 当使能位变为激活状态时,输出位置位。 |
位置和使能 | 当轴进入补偿凸轮范围并且使能位变为激活状态时,输出位置位。 |
下图展示了在补偿凸轮和使能位的不同组合下,随着位置的变化,所选闭锁类型对输出位的影响。

解锁类型
下图展示了在补偿凸轮和使能位的不同组合下,随着位置的变化,所选闭锁类型对输出位的影响。
闭锁类型 | 行为 |
未激活 | 不更改输出位。 |
位置 | 当轴进入补偿凸轮范围时,输出位复位。 |
持续时间 | 持续时间结束时,输出位复位。 |
启用 | 当使能位变为激活状态时,输出位复位。 |
位置和使能 | 当轴离开补偿凸轮范围且使能位变为激活状态时,输出位复位。 |
持续时间和使能 | 当持续时间结束或使能位变为未激活状态时,输出位复位。 |
下图展示了在补偿凸轮和使能位的不同组合下,随着位置的变化,所选解锁类型对输出位的影响。

下图展示了在补偿凸轮和使能位的不同组合下,随着时间的变化,所选解锁类型对输出位的影响。

左侧凸轮位置和右侧凸轮位置
左侧凸轮位置与右侧凸轮位置共同定义输出凸轮元素的范围。如果将闭锁或解锁类型设为“位置”,或者设为“位置和使能”且使能位处于激活状态,则左侧凸轮位置和右侧凸轮位置指定输出位的闭锁或解锁位置。
持续时间
如果将解锁类型设为“持续时间”,或者设为“持续时间和使能”且使能位处于激活状态,则凸轮持续时间指定输出位闭锁与解锁之间的时间。
使能类型
根据所选使能类型,使能位可能是输入、反向输入、输出或反向输出的元素。
输出凸轮数组检查
以下输出凸轮数组检查适用于 MAOC 指令:
- 如果选择的输出位小于 0 或大于 31,则不考虑“输出凸轮”元素,并通过“非法输出凸轮”指令错误向用户发出警告。
- 如果选择的闭锁类型小于 0 或大于 3,则使用值“未激活”,并通过“非法输出凸轮”指令错误向用户发出警告。
- 如果选择的解锁类型小于 0 或大于 5,则使用值“未激活”,并通过“非法输出凸轮”指令错误向用户发出警告。
- 如果选择的左侧凸轮位置大于等于右侧凸轮位置,且将闭锁类型或解锁类型设为“位置”或“位置和使能”,则不考虑“输出凸轮”元素,并通过“非法输出凸轮”指令错误向用户发出警告。
- 如果选择的左侧凸轮位置小于凸轮起始位置,且将闭锁类型设为“位置”或“位置和使能”,则使用凸轮起始位置,并通过“非法输出凸轮”指令错误向用户发出警告。
- 如果选择的右侧凸轮位置大于凸轮终点位置,且将解锁类型设为“位置”或“位置和使能”,则使用凸轮终点位置,并通过“非法输出凸轮”指令错误向用户发出警告。
- 如果选择的持续时间小于等于 0,且将解锁类型设为“持续时间”或“持续时间和使能”,则不考虑“输出凸轮”元素,并通过“非法输出凸轮”指令错误向用户发出警告。
- 如果选择的使能类型小于 0 或大于 3,且将闭锁类型或解锁类型设为“使能”、“位置和使能”或“持续时间和使能”,则不考虑“输出凸轮”元素,并通过“非法输出凸轮”指令错误向用户发出警告。
- 如果选择的使能位小于 0 或大于 31,且将闭锁类型或解锁类型设为“使能”、“位置和使能”或“持续时间和使能”,则不考虑“输出凸轮”元素,并通过“非法输出凸轮”指令错误向用户发出警告。
- 指定输出补偿
可以通过
Logix Designer
标签编辑器指定输出补偿数据数组标签。数据类型通过指定各致动器的特性来定义各输出位的详细信息。数组索引对应于输出位编号。最高补偿输出位的编号定义该数组的最小大小。对输出补偿的更改将立即生效。下图显示了输出补偿对轴、输入和输出之间的关系的影响

偏移和延时补偿
对于闭锁和解锁操作,偏移提供位置补偿,而闭锁和解锁延时提供时间延时补偿。下图展示了补偿值对“输出凸轮”元素的影响。

凸轮范围由“输出凸轮”元素的左侧凸轮位置和右侧凸轮位置定义。补偿凸轮范围由凸轮范围、偏移以及闭锁和解锁偏移定义。闭锁和解锁偏移通过当前速度 v 定义。
闭锁偏移 = v * 闭锁延时
解锁偏移 = v * 解锁延时
实际上,获得的补偿偏移可能大于凸轮起始位置与凸轮终点位置之差。
以下公式展示了补偿值对“输出凸轮”元素持续时间的影响
补偿持续时间 = 持续时间 + 闭锁延时 - 解锁延时
模式补偿
根据所选模式,按下表设置相应的输出位。
模式 | 行为 |
常规 | 闭锁和解锁操作的输出变为激活状态时,输出位置位。 闭锁和解锁操作的输出变为未激活状态时,输出位复位。 |
反转 | 闭锁和解锁操作的输出变为未激活状态时,输出位置位。 闭锁和解锁操作的输出变为激活状态时,输出位复位。 |
生成脉冲 | 闭锁和解锁操作的输出变为激活状态时,输出位生成脉冲。脉冲的工作状态对应于输出位的激活状态。 闭锁和解锁操作的输出变为未激活状态时,输出位复位。 |
反转和生成脉冲 | 闭锁和解锁操作的输出变为激活状态时,输出位生成脉冲。脉冲的工作状态对应于输出位的未激活状态。 闭锁和解锁操作的输出变为未激活状态时,输出位置位。 |
下图展示了模式、周期时间和占空比对输出位的影响。

输出补偿数组检查
以下输出补偿数组检查适用于 MAOC 指令。
如果选择的闭锁和解锁延时组合导致补偿凸轮小于最小宽度,则将补偿凸轮宽度设为最小值。
如果选择的模式小于 0 或大于 3,则考虑正常模式,并通过“非法输出补偿”指令错误向用户发出警告。
如果选择的占空比小于 0 或大于 100,且将模式设为“生成脉冲”或“反转和生成脉冲”,则考虑 0 或 100 的占空比,并通过“非法输出补偿”指令错误向用户发出警告。
如果选择的周期时间小于等于 0,且将模式设为“生成脉冲”或“反转和生成脉冲”,则输出位不生成脉冲,并通过“非法输出补偿”指令错误向用户发出警告。
输出
输出包含 32 个输出位,各输出位可根据具体输出凸轮置位或复位。输出可能是存储单元或物理输出(例如 Local.0.O.Data)。
输入
输入包含 32 个输入位,各输入位可根据具体输出凸轮用作使能位。输入可能是存储单元或物理输入(例如 Local.0.I.Data)。
凸轮起始位置和凸轮终点位置
凸轮起始位置和凸轮终点位置定义了输出凸轮范围的左右边界。当凸轮位置移至超出凸轮起始位置或凸轮终点位置时,输出凸轮的行为由执行模式和执行计划定义。对凸轮起始位置或凸轮终点位置所做的更改在当前 MAOC 指令执行完毕后才会生效。
执行模式
根据所选的执行模式,在凸轮位置移至超出凸轮起始位置或凸轮终点位置时,输出凸轮的行为可能会有所不同。
模式 | 行为 |
一次 | 在凸轮位置移至超出凸轮起始位置或凸轮终点位置时,输出凸轮将解除装备,且运动指令的处理完成位置位。 |
持久 | 在凸轮位置移至超出凸轮起始位置或凸轮终点位置时,输出凸轮将解除装备。但是,当凸轮位置移回输出凸轮范围内时,输出凸轮重新装备。 |
持续 | 在凸轮位置移至超出凸轮起始位置或凸轮终点位置时,输出凸轮在输出凸轮范围的对侧继续执行。 |
执行计划
根据所选的执行计划,可按下表装备输出凸轮。
模式 | 行为 |
立即数 | 输出凸轮立即装备。 |
待处理 | 在已装备输出凸轮的凸轮位置移至超出凸轮起始位置或凸轮终点位置时,装备输出凸轮。 |
仅正向 | 当轴沿正向接近或经过指定轴装备位置时,装备输出凸轮。 |
仅反向 | 当轴沿反向接近或经过指定轴装备位置时,装备输出凸轮。 |
双向 | 当轴沿正向或反向接近或经过指定轴装备位置时,装备输出凸轮。 |
轴装备位置和凸轮装备位置
轴装备位置用于定义将执行计划设为“仅正向”、“仅反向”或“双向”且轴沿指定方向运动时,装备输出凸轮的轴位置。凸轮装备位置用于定义装备输出凸轮后与轴装备位置相关的凸轮位置。对轴装备位置或凸轮装备位置所做的更改在 MAOC 指令执行之后才会生效。

Reference
根据所选的参考,输出凸轮将连接至轴实际位置或轴给定位置。
重要提示:
MAOC 指令在单次扫描中执行完成,因此完成 (.DN) 位和正在处理 (.IP) 位将立即置位。在“一次”执行模式下,正在处理 (.IP) 位一直保持置位状态,直至凸轮位置移至超出凸轮起始位置或凸轮终点位置,输出凸轮由另一条 MAOC 指令代替或由 MDOC 指令解除装备。在“一次”执行模式下,处理完成位在 MAOC 指令执行时立即清零,并在凸轮位置移至超出凸轮起始位置或凸轮终点位置时置位。
在此跳变指令中,每次要执行该指令时,继电器梯形图都会将梯级输入条件由清零切换为置位。
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。如果将未初始化的引用或类型不正确的引用传递给轴操作数,则可能发生严重故障。有关操作数相关的故障,请参阅 通用属性。
执行
梯形图
条件/状态 | 执行的操作 |
预扫描 | .EN、.DN、.ER 和 .IP 位设置为假。 |
梯级输入条件为假 | 如果 .DN 或 .ER 位设置为真,则 .EN 位设置为假。否则,.EN 位不受影响。 .DN、.ER 、.IP 和 .PC 位不受影响。 |
梯级输入条件为真 | .EN 位设置为真,指令执行。 |
后扫描 | 不适用 |
结构化文本
条件/状态 | 执行的操作 |
预扫描 | 请参阅“梯形图”表中的“预扫描”行。 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为假”行,然后参见“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
错误代码
有关运动指令,请参阅 运动错误代码 .ERR。
扩展错误代码
“扩展错误代码”针对许多指令通用的“错误代码”提供指令特定的附加信息。参数超出范围 (13) 错误代码的扩展错误代码列出了一个数字,该数字对应于面板中自上而下列出的操作数的编号,第一个操作数的编号为零。因此,对于 MAOC 指令,扩展错误代码 4 指的是“输出”操作数的值存在问题。然后,需要对照该指令可接受的值范围对操作数的值进行检查。有关运动指令,请参阅 运动错误代码 .ERR。
执行
如果 ERR 为 | 且 EXERR | 则 | 纠正措施 |
原因 | |||
36 | 变化 | 输出凸轮数组的大小不受支持,或者至少一个成员的值超出范围: 输出位小于 0 或大于 31。 锁定类型小于 0 或大于 3。 解锁类型小于 0 或大于 5。 左侧或右侧位置超出凸轮范围,且闭锁或解锁类型设为“位置”或“位置和使能”。 持续时间小于或等于 0,且解锁类型设为“持续时间”或“持续时间和使能”。 使能类型小于 0 或大于 3,且闭锁或解锁类型设为“使能”、“位置和使能”、或“持续时间和使能”。 使能位小于 0 或大于 31,且闭锁或解锁类型设为“使能”、“位置和使能”或“持续时间和使能”。 闭锁类型设为“未激活”,且解锁类型设为“持续时间”或“持续时间和使能”。 | 非法输出凸轮 |
37 | 变化 | 输出补偿数组的大小不受支持,或者其中一个成员的值超出范围。 | 非法输出补偿 |
与错误 36 和 37 相关的数组索引存储在运动指令数据类型的 .SEGMENT 中。若存在多个错误,仅会存储其中的第一个。检测到的具体错误存储在扩展错误代码中。 由于能够动态修改输出凸轮表,因此在 MAOC 执行过程中可能发生非法输出凸轮错误 36。通常,将跳过检测到错误的凸轮元素。以下所列为将继续处理的异常状况。 错误 2,锁定类型无效。闭锁类型默认设为未激活。 错误 3,解锁类型无效。解锁类型默认设为未激活。 错误 8,解锁类型为“持续时间和使能”。相当于“使能”解锁类型。 | |||
状态位
MAOC 作用状态位
状态位可用于确定 MAOC 指令是否能够启动。MAOC 指令会对“运动轴”结构中的以下状态字产生影响:
- OutputCamStatus
- OutputCamPendingStatus
- OutputCamLockStatus
- OutputCamTransitionStatus
以上所列为一个 DINT 型值,其中位 0 至位 7 对应于 8 个执行目标。位 0 对应于执行目标 0;位 1 对应于执行目标 1,依此类推。
如果将“执行计划”设为“仅正向”、“仅反向”或“双向”,则可以在满足以下两个条件之一时启动 MAOC 指令:
与执行目标对应的 OutputCamStatus 位 = 假
与执行目标对应的 OutputCamStatus 位 = 真
与执行目标对应的 OutputCamLockStatus 位 = 假
与执行目标对应的 OutputCamTransitionStatus 位 = 假
如果将“执行计划”设为“待处理”,则可以在满足以下两个条件之一时启动 MAOC 指令:
与执行目标对应的 OutputCamStatus 位 = 假
与执行目标对应的 OutputCamStatus 位 = 真
与执行目标对应的 OutputCamTransitionStatus 位 = 假
轴和模块故障条件解除装备输出凸轮
当控制器检测到以下任一故障时,将解除装备输出凸轮:
- 对于 Axis_Servo 和 Axis_Servo_Drive,轴反馈丢失故障
- 对于 Axis_Servo 和 Axis_Servo_Drive,模块故障
- 对于 Axis_Consumed,物理轴故障
以上故障都会产生不可靠的反馈数据。
另外,如果在启动 MAOC 指令时存在轴故障,则指令发生错误。
示例
梯形图

结构化文本
MAOC(Axis1, ExecutionTarget1, MotionControl1, Output1, Input1, OutputCam1[0], CamStartPosition1, CamEndPosition1, OutputComp1[0], Persistent, Immediate, AxisArmPosition1, CamArmPosition1, actual);
提供反馈