boez » 09 авг 2012, 13:43
Вообще если я хоть че-то понимаю в сервоприводах, работать должно так. У тебя есть интерпретатор G-кода. Он должен синтезировать и выдавать позицию по всем координатам раз в цикл регулирования. Нужно проехать по Х 1 сантиметр, от 5 до 6 - выдаем такое: (это мы тут стоим) 5,5,5,5 (пришло время ехать), 5.05,5.1,5.2,5.4,5.6,5.8,5.9,5.95,6 (приехали),6,6,6,6 - ну это грубо, для понимания. По Y,Z,экструдеру в это время идут константы. Все, эту позицию подаем на ПИДы позиционирования, они выдают скорость на ПИДы ШИМ, или даже сразу ШИМ - это уже как реализовано там. И интерпретатору G-кода реальную позицию знать не нужно вообще - он когда в примере выше выдал позицию 6 - все, можно переходить к следующему шагу. Никаких затыков. А в ПИДе позиционирования просто защита - если рассогласование выше 0.01 мм (к примеру) - авария, стоп и красная лампочка. И сидим настраиваем ПИДы позиционирования чтобы такого не происходило.
Добавлено спустя 2 минуты 1 секунду:
Да, естественно реальный цикл управления должен тикать с частотой в килогерцы, если хочется хоть какой-то точности. Ну благо вроде процессор должен позволять.