规划的输出模块

1756-OB16IS、1732E-OB8M8SR 和 1756-OB16IEFS 已规划输出模块可与 MAOC 运动指令配合使用,基于输出控制提供位置(也称为 PLS)。MAOC 指令可使用 1732E-OB8M8SR 模块的
ControlLogix
CompactLogix
中的运动轴位置作为位置参考,使用相应的输出或布尔型输出作为输出,从而基于输出控制确定位置。MAOC 指令基于运动轴位置以运动组近似更新速率(通常为 2ms 至 10ms)更新输出。输出开启和关闭时间由轴位置和速度决定。
要以低至模块额定分辨率的分辨率规划模块的已规划输出的开/关时间,使用可用模块对输出进行如下规划。
对于 1756-OB16IS,其 16 个输出中的 8 个输出(0 至 7)采用 100 μs 的增量。在由输出连接数据存储区提供的 16 个规划中的一个或多个规划中输入数据,规划输出。
对于 1732E-OB8M8SR,其 8 个输出中的 8 个输出(0 至 7)采用 100 μs 的增量。在由输出连接数据存储区提供的 16 个规划中的一个或多个规划中输入数据,规划输出。
对于 1756-OB16IEFS,其 16 个输出中的 16 个输出(0 至 15)采用 10 μs 的增量。在由输出连接数据存储区提供的 32 个规划中的一个或多个规划中输入数据,规划输出。
重要提示: 1756-OB16IS 模块与 MAOC 指令配合使用时,确保使用模块的默认通信格式,即“每点规划的输出数据”。如果在模块与 MAOC 指令配合使用时更改通信格式,可能会发生错误。
操作
输出按点规划,每个单独的输出点由其自身的时戳控制。
各个规划在控制器中创建,存储在模块的输出图像表中,并通过背板或 EtherNet/IP 发送到已规划输出模块。规划可指定序列计数、与规划相关的输出点、输出值应用于物理输出点的时间以及要在规划时间处应用的值。I/O 模块可接收和存储规划。各个规划的时戳由模块监视。规划到期时,即当前时间与已规划时戳匹配时,输出值将应用于相应的输出位。ASIC 中的计时器硬件用于优化规划算法。此硬件还可减少延时和抖动现象。各个规划的状态由输出 echo 连接进行报告,并反映在模块的输入图像中。
已规划输出功能需使用 1756-OB16IS 模块中的 CST(协调系统时间)时戳。机架中至少有一个控制器必须为 CST 主时钟。
1756-OB16IEFS 和 1732E-OB8M8SR 模块需要使用同步所有输出的 CIP Sync 主时钟的 UTC 时间。
对于 1756-OB16IS 模块,未使用的输出可用作正常输出,无需等待 CST 时戳到期,可立即应用这些输出。发送到模块的屏蔽码可指示要作为正常输出的输出。
用户可以单独规划各个已规划输出模块。请参见下表中适用于各个模块类型的规划支持。
模块
总输出
已规划输出
总规划
最小已规划间隔
时基
1756-OB16IS
16 [0 至 15]
8 [0 至 7]
16
100μs
CST
1732E-OB8M8SR
8 [0 至 7]
8 [0 至 7]
16
100μs
UTC
1756-OB16IEFS
16 [0 至 15]
16 [0 至 15]
32
5μs
UTC
已规划输出必须位于输出点之间。未规划的输出用作正常输出点。屏蔽码用于指示已规划点和未规划点。所有规划配置均由 MAOC 指令完成。
如果在当前规划到期之前,I/O 模块接收到由序列计数变化指示的新规划,则会覆盖当前规划。该机制可以用于取消当前激活的规划。输出 echo 连接中返回的状态位可用于确定各个规划的当前状态并触发相应的事件任务。
如果通过控制器将新规划发送到 1756-OB16IS 时,CST 时戳已过期,则输出置为有效,直到 CST 时间的低 24 位完全回绕。模块不会检查过期的 CST 时戳。
警告:
如果两个规划之间的时间小于最小规划间隔,则会发生抖动。这表示虽然两个输出在不同的时间规划,但同时激活。
远程操作
使用 1756-OB16IS 模块的规划输出不适用于远程机架。
与 MAOC 指令配合使用
与运动和 MAOC 指令配合使用时,输出图像中的值由控制器中的运动轨迹规划器固件控制。运动轨迹规划器会触发数据发送到模块。当然,正常程序或任务扫描也会触发数据发送到模块。固件始终最后为给定规划设置序列计数,保持数据完整性。
相比于未规划输出凸轮事件,输出凸轮指令对已规划输出凸轮事件的处理会早一个近似更新周期。检测到设定的开启或关闭事件时,指令会将规划发送到输出模块,在下一个近似更新周期内的适当时间打开或关闭输出。输出凸轮指令会将近似更新周期划分为十六个时隙。
例如,如果近似更新周期为 2 ms,将生成十六个 125 μs 的时隙。指令会根据凸轮开/关事件在近似更新周期内的位置将其分配到时隙。如果将一个凸轮元素的闭锁和解锁事件分配到同一时隙,则它们将相互抵消。这意味着凸轮元素的最小脉冲宽度需大于一个时隙。
凸轮元素的最小脉冲宽度应大于 100 μs OB16IS 最小脉冲宽度,或 1/16 的近似更新最小脉冲宽度(以较大者为准)。
MAOC 指令会在上一近似更新中检测闭锁和解锁事件,规划要在下一近似更新中发生的事件。这可通过为每个已规划输出闭锁和解锁位置应用一个近似更新内部延时来实现。检测到闭锁或解锁事件时,将计算近似更新起点与事件之间的时间差,然后将输出规划为发生在下一近似更新周期的相应 CST 或 UTC 处。为简化此过程,输出凸轮功能可访问当前近似更新周期发生时捕获的 CST 或 UTC。
MAOC 指令可处理 1756-OB16IS 的已规划和未规划输出位。
如果已规划输出未配置为用于 MAOC 的输出凸轮表,则不会将其分配在所得的规划掩码中。可将这些输出作为独立逻辑的常规离散输出进行处理。对于 1756-OB16IS 模块,这意味着无法直接更改输出位 0…7 或 0...15,但可以修改输出位 8…15。
小贴士: 对于 1756-OB16IS 模块,要强制更改输出 0 至 7,可以将数据位强制更改为 0 或 1 并将 ScheduleMask 中的相应位强制更改为 0。对于输出 8 至 15,仅需强制更改数据位。对于 1732E-OB8M8SR 和 1756-OB16IEFS 模块,使用与处理 1756-OB16IS 模块相同的方法强制更改输出 0 至 7 和输出 0 至 15。
由于 1756-OB16IS 和 1732E-OB8M8SR 模块仅支持 16 个规划,1756-OB16IEFS 模块仅支持 32 个规划,因此需要为在每个近似更新周期中处理的事件数量应用一些约束。
对于 1756-OB16IS 和 1732E-OB8M8SR 模块,仅有 8 个规划可用于每个近似更新周期。这可实现两次连续的近似更新,其中每个更新包含 8 个输出事件。已规划输出模块处理第一组的 8 个规划时,可同时为下一近似更新设置第二组的 8 个规划。
同样,对于 1756-OB16IEFS 模块,仅有 16 个规划可用于每个近似更新周期。这可实现两次连续的近似更新,其中每个更新包含 16 个输出事件。已规划输出模块处理第一组的 16 个规划时,可同时为下一近似更新设置第二组的 16 个规划。
下图所示为 1756-OB16IS 的近似更新周期、凸轮锁存事件和时隙之间的关系。
schdotptsinrel
各时隙可存储下表所述的信息。
主题
说明
闭锁事件屏蔽码
检测到闭锁事件时,将计算其所属的时隙,并将闭锁事件屏蔽码中对应于闭锁输出位的位置位。
解锁事件屏蔽码
检测到解锁事件时,将计算其所属的时隙,并将解锁事件屏蔽码中对应于解锁输出位的位置位。
间隔
闭锁或解锁事件所属的近似更新起点和事件之间的时间间隔(以微秒为单位)。
脉冲开启屏蔽码
对于脉冲输出,将计算脉冲开启事件所属的时隙,并将脉冲开启屏蔽码中对应于脉冲事件输出位的位置位。
脉冲关闭屏蔽码
对于脉冲输出,将计算脉冲关闭事件所属的时隙,并将脉冲关闭屏蔽码中对应于脉冲事件输出位的位置位。
输出开启屏蔽码
对于正常输出,对应于闭锁或脉冲开启事件输出位的位置位,指示要打开这些事件的输出。
对于反转输出,对应于解锁或脉冲关闭事件输出位的位置位,指示要打开这些事件的输出。
输出关闭屏蔽码
对于正常输出,对应于解锁或脉冲关闭事件输出位的位置位,指示要关闭这些事件的输出。
对于反转输出,对应于闭锁或脉冲开启事件输出位的位置位,指示要关闭这些事件的输出。
以下内容为时隙数据使用方法的简要概述。
schdotptstmslt
时隙也可用于处理重叠的凸轮元素。维护的信号可指示当前各输出位的激活状态。此外,如果设定的凸轮元素闭锁和解锁事件发生在相同的时隙中,它们将相互抵消。
凸轮元素的最小宽度对应于时隙的宽度或 1/16 的近似更新周期。
I/O 子系统
可以将 MAOC 指令的输出参数指定为内存变量或输出模块的数据变量。会将指向变量的指针传递至 MAOC 指令。同时,将 IO_MAP 类型的内部参数传递至 MAOC 指令。如果输出参数引用控制器内存,则 IO_MAP 参数为空。如果输出参数引用输出模块,则 IO_MAP 参数将指向模块的映射结构。然后,MAOC 指令可以对驱动程序表中存储的模块类型进行检查,确定输出参数是否与规划的输出模块相关联。
输出数据结构
字段
大小
说明
4 个字节
未规划输出位的数据值。
0 = 关
1 = 开
Mask
4 个字节
选择要规划的输出位。
只能规划前 8 位(0 至 7)或前 16 位(0 至 15)。
0 = 未规划
1 = 已规划
ScheduleTimestamp
8 个字节
仅限 1756-OB16IEFS 和 1732E-OB8M8SR。
以 UTC 时间表示的近似更新时戳。
16 个规划结构组成的数组
字段
大小
说明
规划 ID
1 个字节
对于 1756-OB16IS 和 1732E-OB8M8SR 模块,有效 ID 为 1 至 16;对于 1756-OB16IEFS 模块,有效 ID 为 1...32。任何其他值都表示不考虑规划。
序列号
1 个字节
已规划输出模块将留存一份规划的副本。若更改序列号,即通知模块按照此规划处理数据。
点 ID
1 个字节
表明与此规划关联的输出位。对于 1756-OB16IS 和 1732E-OB8M8SR 模块,输入值 00 至 07;对于 1756-OB16IEFS 模块,输入值 00 至 15。
点值
1 个字节
以点 ID 指定的输出位的下一个状态。
0 = 关
1 = 开
时戳
4 个字节
1756-OB16IS - CST 的低 32 位。
1756-OB16IEFS 和 1732E-OB8M8SR - 与近似更新时戳的偏移量(规划时间 = 规划时戳 + 时戳)。
指示何时更改指定输出位的状态。
规划处理过程
处理“值”和“屏蔽码”字段,将所有未规划数据位移至模块输出数据存储区。处理完所有规划后,将此数据写入输出端。每个规划都已处理。在下列情况下,将不考虑规划:
  • 规划 ID 未处于 1 至 16 或 1 至 32 的范围内。
  • 点 ID 未处于 0 至 7 或 0 至 15 的范围内。
  • 序列号未发生变化。
如果要考虑规划,则将其标记为激活。每隔数微秒检查一次所有激活的规划。将规划时戳与当前时间进行比较。如果当前时间大于或等于规划的时戳,则规划中的点值将移至指定输出位的模块输出数据存储区。
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal