SMC_ToolRadiusCorr (FB)

 

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 corre­sponding 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