Programming
The programming syntax is based on the axis-specific programming of independent axes [PROG].
After the axis identifier, the parameters of the oscillating motion are defined by keywords and, if applicable, an associated value:
X[<keyword> <(value1)>, [<keyword2> <(value2) >,...]
The characteristic of the oscillating motion is determined by the locations of the reversal positions and the axis feed rate. The reversal positions can be either specified directly or alternatively they are determined automatically via the zero position and the excursion.
The oscillation velocity must be specified. It can be defined by:
- feed
- frequency
- period
If it is not defined, Error ID 50593 is output.
If no restriction occurs due to the dynamic axis characteristics, the frequency and the period are maintained exactly when the linear slope is used and maintained approximately when the non-linear slope is used.
Syntax for programming an oscillation motion: |
<axis:name> [ OSC ON | [OFF | OFF FEED=.. | OFF INSTANT] | [ ZERO_POS=.. EXCUR=..] [1ST_DELT=.. 2ND_DELT=..] [NBR_OSC=..] [INCL_OFFSETS] [SHORT] { \ } ] |
<axis_name> | Name of the oscillating axis |
OSC | Identifier for "Oscillating” function. Must always be programmed as the first keyword. |
ON | Oscillation on. The motion is stopped at block end when a path motion is active and the oscillating motion is then commanded. |
OFF | Oscillation off. Current oscillation cycle is finished. The oscillating axis can then move again in the coordinated motion. If the oscillating motion is stopped implicitly if it is not previously deselected when a new axis motion is programmed. |
OFF FEED=.. | Fast oscillation stop. The current oscillation cycle is aborted and the axis moves at the specified feed rate to target position (2ND POS). The oscillating axis can then move again in the coordinated motion. |
OFF INSTANT | Immediate oscillation stop. Axis stops immediately and can be moved again within the coordinated motion immediately. |
FEED=.. | Feed rate of the oscillating motion in [mm/min, m/min, inch/min] |
FREQ=.. | Frequency of the oscillating motion in [Hz] |
TIME=.. | Period of the oscillating motion in [s] |
1ST_POS=.. | First reversal position in [mm, inch] |
2ND_POS=.. | Second reversal position in [mm, inch] |
ZERO_POS=.. | Zero point or zero crossing of the oscillating motion in [mm, inch] |
EXCUR=.. | Excursion in [mm, inch] |
1ST_DELT=.. | Wait time at first reversal position in [s] |
2ND_DELT=.. | Wait time at second reversal position in [s] |
NBR_OSC=.. | Number of oscillations |
INCL_OFFSETS [as of V3.1.3081.05] | Include the current active axis-specific offsets (e.g. G55, G92 etc.) in the programmed reversal positions 1ST_POS/2ND_POS and zero crossing ZERO_POS |
SHORT [as of V3.1.3113.0] | With a modulo axis, the oscillating distance is traversed on the shortest path. |
\ | Separator ("backslash") for clear programming of the command over multiple lines. |
Programming Example
Programming the oscillating axis
Specifying the oscillating motion path via reversal positions:
Specifying the oscillating motion path via the zero position and the excursion:
Specifying oscillation frequency 1 Hertz, 10 oscillations:
Specifying a 4s oscillating period:
Oscillating motion with feed motion of a path axis:
Oscillate with wait times of 0.5 s each at reversal positions
2ND_DELT=0.5 FEED=1000]
Oscillate a modulo axis (0-360°) on the shortest path across the modulo limit
Deselecting oscillation:
Oscillation is stopped when reversal position 2 is reached:
Fast oscillation stop:
If a feed rate is programmed with FEED in combination with OFF, the oscillating motion is stopped immediately (feedhold of oscillating axis) and the reversal position 2 is directly approached at the new feed rate.
![]() | Restrictions of kinematic transformations When kinematic transformation (#TRAFO ON) is active, an oscillating motion is only permitted if the kinematics have a basic Cartesian structure and the oscillation direction vector lies in the z axis direction of the machine. |
If an oscillating motion is defined by the number of oscillations, it can be aborted before the specified number of oscillations is reached by programming an oscillation stop.