On a Siemens 828D, a G-code program can stall during T2 M6 even though the same command works in MDA and ShopMill. The reported sequence is consistent: the spindle reaches the magazine, orients, the magazine rises, and execution stops with “Wait for speed of master spindle SP”. The evidence points to a modal feed-mode conflict inside the machine tool builder’s tool-change subprogram.
Identify the modal-state conflict
The machining program used G95 feed per spindle revolution for drilling. The tool-change subprogram then executed a G01 movement while the spindle was stopped. Under G95, axis feed depends on spindle rotation, so the subprogram waited for master-spindle speed instead of completing the movement.
| Observed condition | Engineering interpretation |
|---|---|
T2 M6 works in MDA |
The tool changer is mechanically capable of completing the cycle. |
| ShopMill tool changes complete | ShopMill provides a compatible modal state before calling the change. |
G-code program stalls after drilling with G95
|
The active feed-per-revolution mode carries into the tool-change subprogram. |
Screen shows G01 and “Wait for speed of master spindle SP” |
A linear move is waiting for spindle-dependent feed while the spindle is stopped. |
Apply the program-level workaround
Switch to feed per minute and assign the verified feed value before calling the tool change. Restore feed per revolution afterward only if the following machining operation requires it.
G94 F500
T5 M6
G95
This sequence resolved the reported failure. Keep G94 F500 in a separate block before each affected tool-change block so the required modal state is established before the machine builder’s subprogram begins.
Verify the correction
- Run the program from a safe restart point before the tool-change sequence.
- Confirm that
G94is active before execution reachesT5 M6. - Verify that the spindle approaches and orients at the magazine, the magazine completes its motion, and the tool exchange finishes without the spindle-speed wait message.
- After
G95is restored, confirm that subsequent cutting or drilling feed is again interpreted per spindle revolution.
Correct the underlying machine subprogram
The program-level sequence is a workaround for a tool-change subprogram that relies on the caller’s modal feed state. A permanent correction would explicitly establish an appropriate feed mode and feed inside that subprogram before its G01 movement. Because the evidence does not identify the subprogram name, access level, or machine-builder implementation, preserve the working workaround unless the machine builder approves and validates a subprogram change.
FAQ
Why does T2 M6 work in MDA but stall in a Siemens 828D program?
The G-code program carried G95 into the tool-change subprogram. Its G01 movement then waited for spindle-dependent feed while the spindle was stopped; MDA did not reproduce that modal condition.
How do I clear “Wait for speed of master spindle SP” during M6?
For this documented case, program G94 F500 before the T… M6 block. Restore G95 after the tool change if the next operation requires feed per revolution.
Should G94 be added before every affected Siemens 828D tool change?
Yes, when using the program-level workaround, place G94 F500 before every affected tool-change call. A machine-builder-approved correction inside the tool-change subprogram can instead establish the required feed state internally.