Buffer Mode

Description

Some of the motion function blocks have an input called BufferMode. With this input, the function block can either start immediately, start on probe event, or be buffered.

The available options are defined in the enumeration of type MC_BUFFER_MODE:

oAn aborting motion (mcAborting) starts immediately, aborting any ongoing move, and clearing the motion queue.

oA buffered motion (mcBuffered, mcBlendingPrevious, seBufferedDelay) is queued, that is, appended to any moves currently executing or waiting to execute, and will start when the previous motion is done.

oAn event motion (seTrigger) is a buffered motion, starting on probe event.

Motion Queue Diagram

The figure illustrates the motion queue diagram:

G-SE-0028311.1.gif-high.gif

 

 

The buffer can contain only one motion function block.

The execution condition of the motion function block present in the buffer is:

omcBuffered: when the current continuous motion is InVelocity, resp. when the current discrete motion stops.

oseBufferedDelay: when the specified delay has elapsed, from the current continuous motion is InVelocity, resp. from the current discrete motion stops.

omcBlendingPrevious: when the position and velocity targets of current function block are reached.

oseTrigger: when a valid event is detected on the probe input.

The motion queue is cleared (all buffered motions are deleted):

oWhen an aborting move is triggered (mcAborting): CommandAborted pin is set on buffered function blocks.

oWhen a MC_Stop_PTO function is executed: Error pin is set on cleared buffered function blocks, with ErrorId=StoppingActive.

oWhen a transition to ErrorStop state is detected: Error pin is set on buffered function blocks, with ErrorId=ErrorStopActive.

NOTE:

oOnly a valid motion can be queued. If the function block execution terminates with the Error output set, the move is not queued, any move currently executing is not affected, and the queue is not cleared.

oWhen the queue is already full, the Error output is set on the applicable function block, and ErrorId output returns the error MotionQueueFull.