SMC_ReduceVelEndAtCorner (FB)

 

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 posi­tive.

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