8 smc_limitcircularvelocities, Smc_limitcircularvelocities, L-force | plc designer - softmotion – Lenze PLC Designer PLC-Designer (R2-x) SoftMotion User Manual

Page 183

Advertising
background image

L-force | PLC Designer - SoftMotion

The SM_CNC.lib library

SMC_LimitCircularVelocities

183

L

DMS 5.2 EN 03/2011 TD17

7.8

SMC_LimitCircularVelocities

This program organisation unit checks the individual elements of the OutQueue and limits

the path velocities of circular elements as a function of their radii.
When moving at a constant velocity (v) across a transition from a line to a circle with a

radius "r", the path acceleration will jump from 0 to the value [ ], in accordance with the

particular amount. In order to limit this acceleration jump to the value a, the velocity of the

circular arc at the transition must not exceed [ ] accordingly.
This program organisation unit checks the transitions of two elements (line to circular arc,

circular arc to line and circular arc to circular arc) and adapts the final velocity of the first

element so that the acceleration jump does not exceed the value dMaxAccJump.
Furthermore, the program organisation unit limits the path acceleration on circles to the

value dMaxAcc, by reducing the path velocity of the circle accordingly.

Inputs (VAR_IN)
bExecute: BOOL
The program organisation unit executes a reset and starts the tool radius correction if a

rising edge is detected at this input.
bAppend: BOOL
If this input is set to FALSE, the DataOut queue will be cleared on each reset. If it is TRUE,

new data will be written at the end of the DataOut queue.
poqDataIn: POINTER TO SMC_OUTQUEUE
This input points to the SMC_OUTQUEUE structure object that contains the

SMC_GEOINFO objects of the path to be changed, typically to the DataOut output of the

preceding POU (e.g. the SMC_NCDecoder).
dMaxAcc: LREAL
This input variable contains the maximum permissible acceleration value for circular arcs.

A value of 0 means that this check will not be performed.
dMaxAccJump: LREAL
This input variable contains the maximum acceleration jump (a) for a transition between

two objects. A value of 0 means that this check will not be performed.
nSizeOutQueue: UDINT
Here, the POU is informed of the size of the data buffer into which the list of GEOINFO

structure objects is written. The buffer must be five times bigger than a GEOINFO

structure. If this is not the case, the SMC_NCDecoder does not perform any actions. It is

permissible to set the value but it is only permissible to alter it subsequently during a reset.

It is advisable to create the actual buffer as described below e.g. as an example: Array of

SMC_GeoInfo. The corresponding buffer size then results from sizeof(Example).

Advertising