运动装备记录 (MAR)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。在适用情况下会注明 controller 的差异。运动装备记录 (MAR) 指令用于装备对指定轴的记录事件检查。调用该指令时,会根据所选记录输入和指定触发条件装备记录事件。指定的记录输入跳变满足触发条件时,轴会根据硬件锁存的编码器计数数据计算事件发生时轴所在的位置,并会将计算结果存储在轴数据结构中的相关记录位置变量中。同时,指令的事件 (PC) 位以及轴数据结构中的记录事件状态位会置位。如果选择窗口记录,则仅接受计算得出的记录位置在最大和最小位置窗口之间的记录事件。如果记录位置不在该窗口范围内,会自动重新装备记录事件检查。
架构 | 标准 | 安全 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 | 否 |
Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 否 |
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
MAR(Axis,MotionControl, TriggerCondition, WindowedRegistration, MinimumPosition, MaximumPosition, InputNumber);
操作数
梯形图
操作数 | 类型 CompactLogix 5370, Compact GuardLogix 5370, Compact GuardLogix 5380, CompactLogix 5380 | 类型 ControlLogix 5570、GuardLogix 5570、ControlLogix 5580、GuardLogix 5580,以及 ControlLogix 5590 控制器 | 格式 | 说明 |
轴 | AXIS_CIP_DRIVE | AXIS_CIP_DRIVE AXIS_SERVO AXIS_SERVO_DRIVE AXIS_GENERIC_DRIVE AXIS_GENERIC
小贴士:
仅
ControlLogix 5570 和 GuardLogix 5570 控制器支持 AXIS_GENERIC。 | 标签 | 要对其执行操作的轴的名称。对于支持 REF_TO 运动数据类型的控制器,支持的轴操作数类型可以替换为等效的 REF_TO 类型。 |
运动控制 | MOTION_INSTRUCTION | MOTION_INSTRUCTION | 标签 | 用于访问指令状态参数的结构。 |
触发条件 (Trigger Condition) | BOOLEAN | BOOLEAN | 立即数 | 定义用于定义记录事件的记录输入跳变。选择其中之一: 0 = 上升沿触发 1 = 下降沿触发。 |
窗口记录 (Windowed Registration) | BOOLEAN | BOOLEAN | 立即数 | 如果记录为窗口记录,即计算得出的记录位置必须在指定的最小和最大限位之间,才会将其接受为有效记录事件,则该操作数的值为使能 (1)。选择其中之一: 0 = 禁用 1 = 使能。 |
最小位置 (Minimum Position) | REAL | REAL | 立即数或标签 | 窗口记录使能时使用。记录位置必须大于最小限位,才会接受记录事件。 |
最大位置 (Maximum Position) | REAL | REAL | 立即数或标签 | 窗口记录使能时使用。记录位置必须小于最大限位,才会接受记录事件。 |
输入编号 (Input Number) | SINT、INT 或 DINT | SINT、INT 或 DINT | 1 或 2 | 指定要选择的记录输入。 1 = 记录 1 位置 2 = 记录 2 位置。 |
有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法。
对于需要从可用选项中进行选择的操作数,请按照下表说明输入选择的值:
此操作数 | 可选择以下输入方式 | |
输入文本 | 或输入数字 | |
TriggerCondition | positive_edge negative_edge | 0 1 |
WindowedRegistration | disabled enabled | 0 1 |
MOTION_INSTRUCTION 结构
助记符 | 说明 |
.EN(使能)位 31 | 梯级出现假到真跳变时,该位设置为真,并在伺服消息事务完成且梯级跳变为假之前保持置位状态。 |
.DN(完成)位 29 | 成功装备轴记录事件检查后,该位设置为真。 |
.ER(错误)位 28 | 该位设为真时,表明指令检测到错误,如指定的轴未配置。 |
.IP(正在处理)位 26 | 出现正向梯级跳变时,该位设置为真;发生记录事件、指令由另一运动装备记录命令代替或由运动解除记录命令终止时,该位设置为假。 |
.PC(处理完成)位 27 | 发生记录事件时,该位设置为真。 |
说明
MAR 指令创建的记录事件可将指定物理轴的实际位置存储在为该轴所选的专用高速记录输入的指定边沿上。
执行 MAR 指令时,RegEventStatus 位设置为 0(假),并会监视为指定轴所选的记录输入,直至发生所选类型的记录输入跳变(记录事件)。发生记录事件时,轴的 RegEventStatus 位设置为 1(真),轴的实际位置会存储在对应于记录输入(例如,记录 1 位置或记录 2 位置)的记录位置变量中。
记录

对于给定轴,随时可有多个激活记录事件,但对于每个记录输入,仅可有一个激活记录事件。单独监视每个事件,可使用相应的 RegEventStatus 位对事件进行检查。
窗口记录 (Windowed Registration)
如果选中“窗口记录”(Windowed Reg) 复选框,则仅当轴位于最小和最大位置定义的窗口范围内时,所选跳变状态才会生成记录事件,如下图所示。

输入所需的绝对位置的值或标签变量,为所选的记录输入跳变状态定义有效的位置窗口范围。窗口记录提供的机制可忽略记录传感器的伪跳变或随机跳变,从而改善高速记录输入的抗扰度。
对于线性轴,值可以为正值、负值或两者组合,但最小位置值必须小于最大位置值,这样记录事件才会发生。对于旋转轴,两个值均必须小于在运动控制器的机器设置菜单中设置的归位值。对于跨越轴归位点的记录窗口,最小位置值可以大于最大位置值,如下图所示。
旋转轴位置窗口

重新装备 MAR 指令
如果应用需要快速、连续地检测记录传感器,建议使用以下逻辑:
用于连续记录检测的梯形图逻辑

要重新装备 MAR 指令,梯级必须由假跳变为真。该逻辑的执行速率取决于以下条件:
- 程序扫描时间
- 运动任务近似更新速率重要提示: 在大型 I/O 连接中,强制值可能减慢控制器处理重复运动记录的速率。
要成功执行 MAR 指令,目标轴必须配置为“伺服”或“仅反馈”轴。否则指令会发生错误。
重要提示:
由于指令执行需要多个近似更新才能完成请求,因此可能需要执行多次扫描。完成 (.DN) 位不会立即设置,而仅在请求完成后设置。
在此跳变指令中,每次要执行该指令时,继电器梯形图都会将梯级输入条件由清零切换为置位。
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。如果将未初始化的引用或类型不正确的引用传递给轴操作数,则可能发生严重故障。有关操作数相关的故障,请参阅 通用属性。
执行
梯形图
条件/状态 | 执行的操作 |
预扫描 | .EN、.DN、.ER 和 .IP 位设置为假。 |
梯级输入条件为假 | 如果 .DN 或 .ER 位为真,则 .EN 位设置为假。 |
梯级输入条件为真 | .EN 位设置为真,指令执行。 |
后扫描 | 不适用 |
结构化文本
条件/状态 | 执行的操作 |
预扫描 | 请参阅“梯形图”表中的“预扫描”行。 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为假”行,然后参见“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
错误代码
有关运动指令,请参阅 运动错误代码 .ERR。
扩展错误代码
“扩展错误代码”针对许多指令通用的“错误代码”提供指令特定的附加信息。以下扩展错误代码有助于在 MAR 指令收到伺服消息故障 (12) 错误消息时确定问题所在。有关运动指令,请参阅 运动错误代码 .ERR。
相关错误代码(十进制) | 扩展错误代码(十进制) | 含义 |
SERVO_MESSAGE_FAILURE (12) | 无响应 (2) | 内存资源不足,无法完成请求。(SERCOS) |
SERVO_MESSAGE_FAILURE (12) | 值无效 (3) | 提供的记录输入超出范围。 |
SERVO_MESSAGE_FAILURE (12) | 设备所处状态不正确 (16)。 | 重设位置、零点和记录 2 互斥。(SERCOS) |
参数超出范围 (13) 错误代码对应的扩展错误代码稍有不同。扩展错误代码显示的数字不是标准枚举,而是一个编号,该编号指的是面板中从上到下列出的操作数的编号,第一个操作数的编号为零。因此,对于 MAR 指令,扩展错误代码 4 指的是“最小位置”值存在问题。然后,需要对照该指令可接受的值范围对操作数的值进行检查。
状态位
MAR 状态位变化
位名称 | 状态 | 含义 |
RegEvent1ArmedStatus RegEvent2ArmedStatus | 真 | 会为轴装备记录事件。 |
RegEvent1Status RegEvent2Status | 假 | 已清除上一记录事件。 |
示例
梯形图

结构化文本
MAR(Axis1, MAR_2, Positive_Edge, enabled, minmarpos_1, maxmarpos_1, 1);
提供反馈