Я, в общем, думаю просто все перемещения конвертировать из миллиметров в шаги и работать в шагах. Потом при каждом перемещении выбирать самую длинную в данном перемещении ось в шагах, и, двигаясь по ней с заданной скоростью, делать линейную интерполяцию остальных осей. Делать это все в прерывании таймера 10000 раз в секунду. Но это если без ускорений, а вот как сюда ещё вплести ускорения, которые, к тому же, могут быть разными на разных осях...

Комментарии: 8

  1. Aleksandr

    Я бы всё делал в программе к устройству. Пусть САПР этим занимаемся, а ЧПУ просто выполняет.

  2. Anton

    Думаю лучше будет использовать аппаратный выход таймера для генерации счетных импульсов для шаговика и не использовать прерывание. Скорость менять путём изменения частоты таймера.

    • Krevedko

      А как тогда много осей синхронизировать? Типа, пусть будет 4 таймера на 4 оси, как они тогда пойдут синхронно по прямой и как их тогда остановить во время?

      • Anton

        Можно и 4 таймера, методы синхронизации таймеров существуют. Тут нужно смотреть ДШ на контроллер. Вовремя остановить, тут наверное придется использовать прерывание по переполнению, но оно будет вызываться куда реже, нежели на каждый такт. В прерывании отслеживать сколько прошли шагов и тормозить таймер если все...

        • Aleksandr

          Я просто задачу ещё не очень понял. Проблема в управлении шаговиком? Или задача в обеспечении плавности хода, там где его нет в G коде?

          • Krevedko

            Задача - сделать контроллер ЧПУ-станка. То есть то, что будет принимать G-код и двигать моторами в соответствии с ним.

            • Aleksandr

              Тогда я про плавность не понял

              • Krevedko

                Если резко стартовать с места шаговик, то он может пропустить шаг. Шаговик надо плавно разгонять и тормозить. При чем не 1, а целых 4, чтобы одновременно начинали движение, разгонялись, потом тормозили и останавливались. Опять же, максимальные скорости и ускорения у осей разные, надо чтобы это все учитывалось и оси не обгоняли друг друга, а голова двигалась по прямой

Не нашли ответ?

Вам также может быть интересно

Всем привет! Подскажите пожалуйста,может у кого нибудь попадался 7 Plus ,пропадает звук в ушном динамике при разговоре. Поднял... Читать далее

Можно снять полярик и подключить к тестеру посмотреть сквозь полярик на белую светящуюся матрицу и понять что дело в матрице.красные... Читать далее