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
|
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
|
|
|