缓冲模式

描述

某些运动功能块有一个称为 BufferMode 的输入。使用此输入,功能块可以立即启动,在发生探测事件时启动,也可以进入缓冲区。

在类型 MC_BUFFER_MODE 的枚举中定义了可用选项:

o某个中止的运动 (mcAborting) 将立即开始,中止正在进行的任何移动,并清除运动队列。

o缓冲的运动(mcBufferedmcBlendingPreviousseBufferedDelay)排入队列,即附加到当前正在执行或等待执行的任何移动后,将在前一个运动完成后开始。

o事件运动 (seTrigger) 是缓冲运动,在发生探测事件时启动。

运动队列图

下图显示了运动队列图:

G-SE-0028311.1.gif-high.gif

 

 

缓冲区只能包含一个运动功能块。

缓冲区中存在的运动功能块的执行条件是:

omcBuffered:在当前的连续运动为 InVelocity 时,或者在当前的不连续运动停止时。

oseBufferedDelay:从当前的连续运动处于 InVelocity,或者从当前的不连续运动停止后经过指定的延时。

omcBlendingPrevious:达到当前功能块的位置和速度目标时。

oseTrigger:在探测器输入上检测到有效事件时。

在以下情况下清除运动队列(删除所有的缓冲运动):

o触发中止的移动时 (mcAborting):在缓冲的功能块上设置 CommandAborted 引脚。

o执行 MC_Stop_PTO 功能时:在清除的缓冲功能块上设置 Error 引脚,ErrorId=StoppingActive

o检测到转换为 ErrorStop 状态时:在缓冲的功能块上设置 Error 引脚,ErrorId=ErrorStopActive

注意:

o只有有效运动才能排入队列。如果功能块的执行由于设置了 Error 输出而终止,则不会将移动排入队列,不影响当前正在执行的任何移动,并且不会清除队列。

o当队列已满时,将在相应功能块上设置 Error 输出,并且 ErrorId 输出返回错误 MotionQueueFull