Positioning spindle (M19, *.POS)

M19                               Position spindle                                                                   (non-modal)

*.POS                            Spindle position                                                                                     (modal)

Spindle positioning can be represented by the following syntax:

M19 [ spindle_name.POS[ = ]<position> ][ M03 | M04 ] [ spindle_name <speed> ]


Position spindle

Spindle name

Designation of the main spindle as per P-CHAN-00053


Spindle position in [°]


Spindle speed 1000 [rpm].

M03/M04 or spindle speed in the same NC block are optional. However, a valid spindle speed (> 0) must be set.

The spindle position is modal and need not be respecified if M19 is reprogrammed. If no spindle position was previously programmed, the motion is moved to position "zero” by default.

If the spindle is not rotating, positioning is executed with the shortest motion path.

Spindle positioning with M19 is only permitted for position-controlled spindles (closed loop).

Programing Example


Positioning spindle (M19, *.POS)

The spindle is positioned to 180° in each case in the following examples. The "=" character is optional:

M19 S.POS180

M19 S.POS 180

M19 S.POS=180


M19 S1.POS=180

The spindle does not rotate during positioning. The shortest motion path is calculated.

N10 M05 S100

(Spindle stop, speed 100 rpm is stored)

(is stored as default)

N20 M19 S.POS180

(Position at 100 rpm at position 180)

(The direction of rotation results from the)

N30 M19 S200 S.POS90

(The direction of rotation results from the)

(shortest motion path)

(Position at 200 rpm ccw at position 90)

Channel parameter list [1]:

The synchronisation mode must be defined spindle-specific for M19. The M function is not executed for synchronisation mode "0” (NO_SYNCH).

spindel[0].bezeichnung                               S1

spindel[0].log_achs_nr                               6

spindel[0].s_synch                                   0x00000001

spindel[0].m3_synch                                  0x00000002

spindel[0].m4_synch                                  0x00000002

spindel[0].m5_synch                                  0x00000008

spindel[0].m19_synch                                 0x00000001