FUNCTION_BLOCK SMC_ToolRadiusCorr
This function block shall replace SMC_ToolCorr. The main feature is to also support 3d-movements and to respect the current correction plane (i.e. at decoding time the plane that circles would be defined in). We always use SMC_TOOLCORRMODE.TC_RAMP_IN, so the corresponding input is no longer necessary.
Note
At inside corners, the projections of the corrected elements onto the correction plane will usually intersect, so those elements are being shortened accordingly. Concerning the component which is perpendicular to the correction plane (z when correcting in the xy plane), the new meeting point will equal the original one. Same for additional axes.
Note
G75 during tool radius correction is not supported: The correction of one element strongly depends on the following, which can't be known if there is a G75 in between. A G75 must not follow a G40, either: The first movement after G40 is used for ramping out and therefore still "belongs" to the correction block. For the same reason, we get in trouble if the in-queue is full without containing a second cartesian element (e.g. only M-functions), and also return an error.
Note
If the correction radius or the correction plane or the correction side (left or right) changes from one element to the other, we will act like at the beginning of tool correction and use the element with the new parameters for ramping in.
Note
Jumps (G92 or implicitly by G43) during tool correction are not supported. Splines with degree 5, as created by SMC_SmoothPath or SMC_SmoothMerge, are not supported yet.
InOut:
Scope |
Name |
Type |
Comment |
Input |
bExecute |
BOOL |
Starts on rising edge |
bAbort |
BOOL |
If TRUE, the current processing of this function block is aborted |
|
bAppend |
BOOL |
As long as this input remains FALSE, the DataOutQueue will be cleared at each reset. As long as it remains TRUE, newly incoming data will be written to the end of the DataOutQueue. |
|
poqDataIn |
POINTER TO SMC_OUTQUEUE |
Input path queue |
|
nSizeOutQueue |
UDINT |
The size of pbyBufferOutQueue in bytes |
|
pbyBufferOutQueue |
POINTER TO ARRAY [0..0] OF SMC_GEOINFO |
The buffer for the output queue |
|
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 |
Output path queue |