Добрый день, Сергей!
На занятиях мы разбирали возможности M99.
Формат команды: M99 P○○○○
Функция команды: После того, как другие команды текущего блока в подпрограмме выполняются, система возвращается к главной программе и продолжает выполнять следующий определенный блок
P, и вызывает блок после M98 текущей подпрограммы, когда P не введен
Но как Вы правильно заметили, M99 работает как функция замкнутого цикла:
Текущая программа неоднократно выполняется, когда M99 определяется в конце программы (а именно, текущая программа выполняется, не вызывая другой программы).
Действительно мы можете ввести программу для прогрева станка:
G91G28Z0.;
G90Z50.;
M99;
Она будет корректно работать. Но Вы не учли одного нюанса, программа должна быть сохранена в памяти ЧПУ, чтобы M99 знал "или не знал" куда ему нужно возвращаться.
M99 недопустим в режиме MDI!!! Программа должна быть сохранена, и использована в режиме AUTO.
Спасибо за вопрос!