SMC_ObjectSplitter (FB)

FUNCTION_BLOCK SMC_ObjectSplitter

This function can be used if a velocity optimizer (like SMC_LimitDynamics ) is applied to the queue. The limitation of SMC_LimitDynamics always affects a complete object. This means that, the smaller the objects, the better the result of the limitiation. Objects without geometrical expansion (like M-functions) or geometrical curvature (like straight lines) remain unchanged.

With eMode, it is defined, how the division is done:

  • if FIX is set, every curved object is divided in

    so many objects as defined in dSplittingParameter.

  • if LENGTH is set, every object is divided so,

    that it has the length dSplittingParameter at most.

InOut:

Scope

Name

Type

Initial

Comment

Input

bExecute

BOOL

Execution starts on the rising edge.

bAbort

BOOL

bAppend

BOOL

poqDataIn

POINTER TO SMC_OUTQUEUE

Input path queue

eMode

SMC_OBJECTSPLITTERMODE

Splitting mode

dSplittingParameter

LREAL

1

Parameters for eMode

nSizeOutQueue

UDINT

The size of pbyBufferOutQueue in bytes

pbyBufferOutQueue

POINTER TO ARRAY [0..0] OF SMC_GEOINFO

Output

bDone

BOOL

This output will be set to TRUE as soon as the input path has been processed completely.

bBusy

BOOL

TRUE, while execution of function block is not finished

bError

BOOL

It signals that an error has occurred within the function block

wErrorID

SMC_ERROR

Error identification

poqDataOut

POINTER TO SMC_OUTQUEUE

Structure: