Честно говоря, я сам не понимаю зачем нужна пауза на нашем станке. Но раз просили, и возможность есть, я делаю.
Итак, продумал 2 варианта пауз.
1 стандартная, ГРБЛовская. Посылаем сигнал "!" и двигатели сразу останавливаются. Повторное нажатие кнопки посылает сигнал" ~ " и движение продолжается. Это уже реализовано. Но честно говоря, эта пауза не интересна. Во время её ничего нельзя делать.
2 прекращаем подачу команд, но те что находятся в буфере обмена продолжают выполняться. Контроллер в это время посылает сигналы о состоянии с некоторым интервалом, допустим в 0,5секунды. И когда движение прекращается, запоминает текущее положение и состояние. Затем поднимает фрезу, останавливает шпиндель и переходит в нулевую позицию. После этого можно двигать, перемещать, А затем возобновить работу. Главное не отключать питание. Возможно продумаю и это.