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