SMC_ObjectSplitter (FB)

 

FUNCTION_BLOCK SMC_ObjectSplitter

This function can be used if a velocity optimizer (like SMC_LimitDy­namics ) 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 geomet­rical 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

FALSE

Execution starts on the rising edge.

bAbort

BOOL

FALSE

bAppend

BOOL

FALSE

poqDataIn

POINTER TO SMC_OUTQUEUE

NULL

Input path queue

eMode

SMC_OBJECTSPLITTERMODE

Splitting mode

dSplittingParameter

LREAL

1

Parameters for eMode

nSizeOutQueue

UDINT

0

The size of pbyBufferOutQueue in bytes

pbyBufferOutQueue

POINTER TO ARRAY [0..0] OF SMC_GEOINFO

NULL

Output

bDone

BOOL

FALSE

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

bBusy

BOOL

FALSE

TRUE, while execution of function block is not finished

bError

BOOL

FALSE

It signals that an error has occurred within the function block

wErrorID

SMC_ERROR

0

Error identification

poqDataOut

POINTER TO SMC_OUTQUEUE

NULL