Synchronising an axis in coordinated motion (SYNC IN / OUT)
Release Note
This function is available as of CNC Build V2.11.2013.22
Some specific processes require a synchronised motion of a single axis (slave axis) in combination with a coordinated motion. At certain programmed positions it is required that the slave axis is located at a specific position and moves at a specific velocity. The slave axis then moves at the synchronised velocity until synchronisation is cancelled.
Typical application examples include machines with the continuous throughput of endless material. The material must then be cut at a specific place during the coordinated motion. At a specific master position (workpiece length) the rotating knife must be placed in cutting position. The knife then moves at constant velocity until the cut is finished.
Restrictions:
An axis cannot be synchronized if:
- the axis is moving in coordinated motion at the time.
Configuration:
To use this function, the following setting must be made in the start-up list ([STUP]):
configuration.channel[0].path_preparation.function FCT_DEFAULT | FCT_SYNC
configuration.channel[0].interpolator.function FCT_IPO_DEFAULT | FCT_SYNC
Syntax of Programming synchronous motions: |
<axis_name> [ SYNC IN | OUT G90 | G91 G00 | G01 FEED=.. FEED_MAX_WEIGHT=.. POS=.. DIST=.. { \ } ] |
<axis_name> | Name of the axis to be synchronised |
SYNC | Identifier for synchronised axis motion. Must always be programmed as the first keyword. |
IN | Identifier to mark the start of synchronised motion. |
OUT | Identification to mark the end of synchronised motion. |
G90 / G91 | Absolute/relative dimension |
G00 / G01 | Rapid traverse/linear interpolation |
FEED=.. | Axis-specific feedrate in [mm/min, m/min, inch/min] |
FEED_MAX_WEIGHT=.. | Weighting factor in [%], referred to axis-specific maximum feed P-AXIS-00212. Only weighting values less than 100% are permitted (as per G194). |
POS=.. | Axis position in [mm, inch] at which the synchronous velocity is reached. |
DIST=.. | Distance in [mm, inch] at which the synchronous velocity is moved.. |
\ | Separator ("backslash") for clear programming of the command over multiple lines. |
Programing Example
Synchronising an axis in coordinated motion
%sync
N010 G90 X0 Y0 Z0 A0
N020 G91 F5000
N030 X=67.913 A[SYNC IN G01 FEED_MAX_WEIGHT=100 G91 POS=130 DIST=70]
;A axis reaches maximum velocity at position 130,
;while X axis is reaching position 67.913 at this point
N040 X=1.5 ;A and X axes move synchronously, in doing so the velocity
;of the X axis is then defined so that the X axis covers a distance of 3mm
N050 X=1.5 ;while the A axis moves 70° at maximum velocity
N060 X=14.541 A[SYNC OUT G91 G0 POS160] G261
;At start of this block, synchronous motion is cancelled
Path axes move again at the programmed feed rate; the A axis
moves independently to the specified position
N070 X=15.862 Z=1.248 Y=0.185
N080 X=15.992 Z=1.889 Y=0.213
N090 X=32.243 Z=3.306 Y=0.482
N100 X=22.186
N110 X=31.696 Z=-2.597 Y=-0.389
N120 X=25.297 Z=-3.846 Y=-0.491
N130 X=39.819 A[SYNC IN G01 FEED_MAX_WEIGHT=100 G91 POS=130 DIST=70]
N140 X=1.257
N150 X=1.257
N160 X=200 A[SYNC OUT G91 G0 POS160]
N180 M30