FUNCTION_BLOCK SMC_ReduceVelEndAtCorner
Reduces the end velocity if there is a corner between two consecutive path elements. A corner is a difference in tangents or a difference in the velocity of the additional axes A/B/C. The velocity is reduced linearly from the programmed velocity to zero as the angle between the tangents goes from dMinAngleToAct to dAngleTol.
InOut:
Scope |
Name |
Type |
Initial |
Comment |
Input |
bExecute |
BOOL |
Starts on the rising edge |
|
poqDataIn |
POINTER TO SMC_OUTQUEUE |
Input path queue |
||
nSizeOutQueue |
UDINT |
The size of byBufferOutQueue in bytes |
||
pbyBufferOutQueue |
POINTER TO ARRAY [0..0] OF SMC_GEOINFO |
The buffer for the output queue |
||
dAngleTol |
LREAL |
0.1 |
The maximum angle tolerance (in angular degrees). If the actual angle between two elements is equal to or larger than this value, the end velocity is reduced to zero. Note Use the same value here as for input dAngleTol of SMC_CheckVelocities. The value must be positive. |
|
dMinAngleToAct |
LREAL |
The minimum angle (in angular degrees). If the actual angle between two elements is not greater than this value, the end velocity is not reduced. The value must be less than dAngleTol and non-negative. |
||
dMaxVelDifferenceABC |
LREAL |
1 |
The maximum allowed velocity difference (or velocity jump) of the additional axes A,B,C between two consecutive elements. The end velocity will be reduced until the actual velocity difference is at most this value. The value must be non-negative. |
|
Output |
bDone |
BOOL |
Indicates the entire input path has been processed |
|
bBusy |
BOOL |
Indicates the function block is still busy processing |
||
bError |
BOOL |
An error has occurred |
||
wErrorID |
SMC_ERROR |
Error-ID |
||
poqDataOut |
POINTER TO SMC_OUTQUEUE |
The queue for the output path |