Step Conf Wizard

Материал из NikiWiki
Перейти к:навигация, поиск
YourBunnyWroute.pngАвтор предупреждает!
Данные этой статьи получены из открытых источников и/или документации на обсуждаемое оборудование или из моей экспериментальной деятельности и являются моим персональным мнением и/или комментарием. Смотрите: NikiWiki:Отказ от ответственности


Про конфигурацию LinuxCNC при помощи Step Conf Wizard написано очень много всего разного и разнообразного.

Не стану повторяться, а приведу настройки, которые были сделаны мной чтобы мой станок в совокупности с моим контроллером, моим же шпинделем и, опять же моим инвертором начали жить и работать как завещал великий Ленин в едином порыве и экстазе.

Выполнение Step Conf Wizard

(i) Обратите особое внимание на тот факт, что, если Вы производили настройки в файлах конфигурации вручную, особенно в части тех настроек, которые не меняет этот Мастер, то Вы потеряете ВСЕ свои изменения. Иными словами либо создайте копию конфигурации и тестируйте на ней, либо после первоначальной настройки все изменения вносите руками.
Запуск Step Conf Wizard
Первый экран Step Conf Wizard
Базовый экран Step Conf Wizard
Экран опций Step Conf Wizard
Настройки LPT порта Step Conf Wizard
Настройки оси X Step Conf Wizard
Настройки оси Y Step Conf Wizard
Настройки оси Z Step Conf Wizard
Настройки шпинделя Step Conf Wizard
Завершение Step Conf Wizard

Данную процедуру должен пройти каждый :). Причем, смею Вас уверить, что запуск этой процедуры 1000 (одну тусячу раз) я Вам гарантирую. Если, конечно, не пытаться разобраться в сути, а делать скорее-скорее и по how-to вроде этой - то меньше. Но, скорее всего, непонимание процессов происходящих на этом этапе, заставит Вас сюда вернуться немного позже, когда Вы попытаетесь начать работать и изготавливать что-то дельное. Поверьте, я говорю не просто так. Сам это прошел.

В общем и целом ничего страшного в этой процедуре нет, однако, каждое Ваше действие может привести к поломке или разрушению станка. По этой причине необходимо быть ОЧЕНЬ аккуратным и думать/проверять каждое вводимое Вами поле по 7 раз.

Семь раз отмерь, один раз отрежь - это как рас про операторов станков с ЧПУ, таких как мы с Вами.

И помните, наука работы со станками - это не одна "простенькая" наука, а целый толстый пласт. Сюда входит масса знаний. И содержать все эти знания в одной голове очень и очень сложно. Восхищаюсь теми людьми, кто может на форумах рекомендовать кому-то контроллер для станка или как настроить что-то внутри LinuxCNC и одновременно спорить в другой ветке форума об обработке какого-то материала специальным инструментом и в третьей - обсуждать электронную схему. Такие люди, на мой взгляд, должны возить свою голову за собой на тележке, поскольку в один мозг вся эта информация уместиться не может, а, следовательно, им нужен дополнительный, внешний мозг.

Настройки StepConfWizard

Все настройки, которые я привожу в этой статье в виде изображений экрана и описаний к ним, сделаны далеко не с первого раза, а, раза эдак так с 10-15 минимум. Взять, хотя бы, настройки LPT порта. Да, в описании на контроллер все сказано черным по-белому, но в совокупности со станком из всего этого вытекает СТОЛЬКО нюансов!

Но, давайте не будим сгущать краски, а обсудим все снимки экранов последовательно.

Steoconf

Это стартовый экран, содержащий информацию о том, что же делает весь этот волшебник. А делает он следующее: из тех данных, что Вы введете в процессе выполнения этой программы он создаст файлы .hal и .ini, при помощи которых LinuxCNC в дальнейшем будет запускаться и содержанием которых руководствоваться.

Так же сказано, что минимальное разрешение экрана - 800*600, но, это требование гранично. Т.е. если у Вас экран действительно 800*600 и Вы запускаете эту программу в среде Gnome, например, и у Вас на экране есть панель снизу и меню сверху, то у Вас ничего не выйдет! Посему, считаю разумным требование 1024*768, а совсем не 800*600.

По окончании "прохождения" каждого этапа квеста (quest) StepConfWizard необходимо нажимать кнопочку в верхнем правом углу. В этом окне эта кнопка называется Start.

Start

На этом экране Вам будет предложено создать новую конфигурацию или открыть существующую для редактирования. И внизу две "галочки" предлагающие создать ссылку на запуск LinuxCNC с указанной конфигурацией на рабочем столе.

Поскольку я уже этот квест прошел - то я открываю готовую конфигурацию.

После нажатия кнопки "Forward" будет открыт экран выбора файла. По умолчанию все действия и StepCOnfWizard и LinuxCNC начинаются из папки ~/linuxcnc/configs/

Base INformation

Название говорит само за себя: базовая информация. А именно:

  • Название станка (Machine name)
  • Директория для сохранения файлов конфигурации (Configuration directory, выбирается автоматически по названию Вашего станка и сохраняется в папке ~/linuxcnc/configs/)
  • Выбор конфигурации осей. Сколько их у Вас? Мой станок содержит только 3 - XYZ.
  • Единицы измерения, в которых работает станок и будут выполняться все дальнейшие действия.
  • Тип контроллера. моего контроллера в списке нет, посему - Other (другое)
  • Далее идут указания того, какие возможности предоставляет нам контроллер. Эти 4 цифры беруться из описания.
  • Вы будете использовать один или два LPT порта? Я использую 1.
  • Base period maximum jitter - ух! Этому полю стоило бы посвятить отдельную статью. Его значение настолько важно, что упустить сей момент нельзя никак.
  • Кнопочка тестирования и определения Base period maximum jitter, которая запустит специальную программку, определяющую это значение.

Закончив с базовыми данными можно переходить дальше нажав "Forward" в верхнем правом углу.

Base period maximum jitter

Options

Уверяю Вас, что в самом начале этот экран для Вас не важен. Однако, он описывает включение в интерфейс LinuxCNC очень важных и удобных опций - PyVCP панелей и других няшек.

Но эти бантики и рюшечки Вам потребуются позже. Сейчас у нас стоит задача запустить станок и понять как он работает, чтобы потом не возвращаться к этому процессу, а наслаждаться производством Ваших (и наших) полезных деталей.

Parallel Port

Настройка LPT порта приведена для контроллера PLC545, у других контроллеров все может быть иначе. Однако, как говорил Альберт Эйнштейн: "Знание нескольких принципов освобождает от необходимости знания множества фактов".

Возвращаясь к теме статьи, стоит заметить, что особенности перевода в LinuxCNC и в этой его части - Step Conf Wizard, достаточно странны. В то время, как интерфейс никто не переводил, назначения портов перевели. И, надо сказать, что для меня это создает определенную путаницу. Хотя я за пропаганду Родного Русского Языка.

Таблица значений выводов LPT порта для контроллера PLC545
Пин (Pin) Значение Примечания
Pin 1 Включение усилителя Вы будете удивлены, но это Pin "Enable". Не очевидно какой именно усилитель он включает, но мы с Вами понимаем, что это разрешение на работу станка.
Pin 2 X шаг Пин, на котором будет формироваться step сигнал для двигателя, перемещающего ось X
Pin 3 Y шаг Пин, на котором будет формироваться step сигнал для двигателя, перемещающего ось Y
Pin 4 Z шаг Пин, на котором будет формироваться step сигнал для двигателя, перемещающего ось Z
Pin 5 A шаг Пин, на котором будет формироваться step сигнал для двигателя, перемещающего ось А (контроллер-то 4х осевой)
Pin 6 Х направление Пин, на котором будет формироваться dir сигнал для двигателя, перемещающего ось X (Обратите внимание на галочку Invert, для этого станка она нужна)
Pin 7 Y направление Пин, на котором будет формироваться dir сигнал для двигателя, перемещающего ось Y (Обратите внимание на галочку Invert, для этого станка она нужна)
Pin 8 Z направление Пин, на котором будет формироваться dir сигнал для двигателя, перемещающего ось Z (Обратите внимание на галочку Invert, для этого станка она нужна)
Pin 9 A направление Пин, на котором будет формироваться dir сигнал для двигателя, перемещающего ось A (ось не используется, а так, может быть и тут бы стояла галочка)
Pin 14 Шпиндель ШИМ Импульсы для преобразователя ШИМ->напряжение контроллера
Pin 16 Шпиндель ON Включение шпинделя. В соответствии с инструкцией на контроллер Pin 16 отвечает за работу реле Relay1 (К1), именно его я и назначил включать шпиндель.
Pin 17 Цифровой выход 1 На самом деле это пин не задействован
Pin 10 ESTOP Вход к этому разъему необходимо присоединить кнопку аварийной остановки станка. В комплекте PLRA4 ее нет.
Pin 11 Начало X Датчик начала оси X
Pin 12 Начало Y Датчик начала оси Y
Pin 13 Начало Z Датчик начала оси Z
Pin 15 Начало A Датчик начала оси A

Почему я так тщательно подключаю ось A? Да потому, что очень хочу заказать токарный патрон с приводом. И вот именно он будет моей осью A. А, в принципе, эти контакты все-едино заведены на управление осью в контроллере, так что изменять их значение на что-либо другое смысла не вижу.

Ось X

С настройками осей я возился достаточно долго, читал [форумы, посвященные станкам с ЧПУ], спрашивал у [Гугла], эксперементировал и добился вот такого результата:

Таблица параметров настройки оси X станка PLRA4
Параметр Значение Примечания
Motor step per revolution 200 Число шагов мотора на один оборот, взято из документации на станок PLRA4
Driver microstepping 8.0 Деление шагов на микрошаги. Нужно установить такое же значение и на контроллере
Pulley teeth (Motor:Leadscrew) 1.0 Размер "зуба" резьбы ШВП, взято из документации на станок PLRA4
Leadscrew pitch 4.0 Размер шага резьбы приводного винта, взято из документации на станок PLRA4. Измеряется в мм на один оборот.
Maximum Velocity 1000.0 Максимальная скорость. Измеряется в мм в секунду. Т.е. в нашем случае станок будет проезжать за секунду один метр. Прикольно и неожиданно если учесть, что вся рабочая длина X составляет 220мм.
Maximum Axeleration 750.0 Максимальное ускорение. Измеряется в миллиметрах деленных на секунду в квадрате. Иными словами от 0 до скорости в 750мм/сек станок ускорится за 1 секунду. В "подвале" формы есть расчеты программы для введенных данных. И, легко видеть, что до полной скорости станок не разгонится никогда. Ибо для этого ему потребуется целых 666 с долями миллиметров, которых у него нет.
Home location 0.0 Расположение "домашней" позиции для поиска нуля оси. Тут ошибка! Необходимо, чтобы позиция датчика Home switch location не совпадала с позицией home location и была больше. Иначе, при работе станка могут появляться срабатывания датчика достижения ограничения по оси. И это будет приводить к сбоям программы.
Table travel from 0.0 Начало "путешествия" по рабочему столу.
Table travel to 218 Конец "путешествия" по рабочему столу. Этот и предыдущий параметр задают размер столя по оси X. Попытка привести их к указанным в документации размерам заставляло станок "ударяться" о конструкцию. Чего нужно избегать.
Home switch location 0.0 Положение датчика поиска нуля по оси. В нашем случае она нулевая.
Home search velocity 32.0 Скорость поиска нулевой отметки оси. Быстрее - точность меньше. Медленнее - очень долго.
Home latch direction Sherline Объяснение долгое и длинное, но мне такой режим понравился больше.

Есть тут еще волшебная кнопочка Test Axes. Очень полезная штука-вещь. Она позволяет Вам протестировать соответствие скорости и ускорения.

Процедура, которой я пользовался такова: Отводите кнопками "влево" и "вправо" ось приблизительно на середину.

(i) При проведении Test Axes ось будет двигаться на указанное расстояние влево и вправо от текущей позиции. Посему, если ось находится в начала или близко к ограничению, а Вы укажете большее значение, то ось ударится об ограничитель и/или конструкцию станка.

Итак, для отладки оси необходимо зажать в шпиндель кусочек проволочки или тонкое сверло (но его жалко сломать). Прикрепить к предметному столу точную линейку и зафиксировать положение оси в середине, начале и конце ее движения (соответственно, равноотстоящие от центра).

После этого запустить тест на ..... час, может ночь, может сутки, может жизнь.

Остановить тест и проверить положения в крайних точках. Они должны совпадать с первоначальными. В идеальном случае, конечно.

Обычно, при указании большого ускорения и скорости, будет сразу заметно, что станок не попадает, проскальзывает или с ним происходит еще что-то странное.

В этом случае нужно "поиграть" параметрами.

Также, на этот тест может влиять число шагов, установленное на контроллере и в настройках осей. С его величиной тоже нужно "поиграть" с целью получения наилучшего результата.

Моя субъективная оценка в том, что если двигатели "рычат", "пищат", и издают мерзкие звуки - это плохо. Что-то не так в настройках. А если двигатель "поет", причем не надрывно или пьяно, а мелодично и не громко - то Вы близки к цели.

Ось Y

Ни чем не отличается от оси X, разве что размерами и положением "домика". Приведем только разные строки, зачем загромождать Интернет?:

Таблица параметров настройки оси Y станка PLRA4
Параметр Значение Примечания
Home location 318.0 Расположение "домашней" позиции для поиска нуля оси. Тут ошибка! Необходимо, чтобы позиция датчика Home switch location не совпадала с позицией home location и была больше. Иначе, при работе станка могут появляться срабатывания датчика достижения ограничения по оси. И это будет приводить к сбоям программы.
Table travel from 0.0 Начало "путешествия" по рабочему столу.
Table travel to 318 Конец "путешествия" по рабочему столу. Этот и предыдущий параметр задают размер столя по оси X. Попытка привести их к указанным в документации размерам заставляло станок "ударяться" о конструкцию. Чего нужно избегать.
Home switch location 318.0 Положение датчика поиска нуля по оси. В нашем случае она нулевая.
Home latch direction Opposite Если честно, не разбирался особенно тщательно в этих параметрах, но только так ось начала искать нормально датчик.

Ось Z

Ни чем не отличается от осей, описанных выше кроме размеров:

Таблица параметров настройки оси Y станка PLRA4
Параметр Значение Примечания
Home location 100.0 Расположение "домашней" позиции для поиска нуля оси. Тут ошибка! Необходимо, чтобы позиция датчика Home switch location не совпадала с позицией home location и была больше. Иначе, при работе станка могут появляться срабатывания датчика достижения ограничения по оси. И это будет приводить к сбоям программы.
Table travel from 0.0 Начало "путешествия" по рабочему столу.
Table travel to 100 Конец "путешествия" по рабочему столу. Этот и предыдущий параметр задают размер столя по оси X. Попытка привести их к указанным в документации размерам заставляло станок "ударяться" о конструкцию. Чего нужно избегать.
Home switch location 100.0 Положение датчика поиска нуля по оси. В нашем случае она нулевая.

Spindle

Это магия чистой воды. Все параметры подбираются сугубо экспериментально и никакого разумного алгоритма я не обнаружил.

Все дело вот в чем: Шпиндель WS-1500 может крутиться с минимальной скоростью в 8000 оборотов в минуту и максимальной - 24000.

Инвертор C20C1D5 это ограничение шпинделя удовлетворяет. При соответствующем указании его параметров, например P106 равное 130 герцам, что соответствует 8000 оборотов.

Но теперь перед нами стоит задача, установить соответствие скоростей и ШИМ-напряжение преобразователя. Эта процедура, мягко скажем, не тривиальная.

Учитывая настройки контроллера, он считает все, что меньше 130Гц - 130ю герцами. Т.е. хоть 10, хоть 128 - все едино шпиндель будет крутиться на скорости 8000 оборотов в минуту. И, все, что больше 400, инвертор принимает за 400, т.е. за 24000 оборотов шпинделя.

Решение этой задачи таково:

PWM1

Для начала напишем простенькую програмульку:

%
M3 S8000
%

И, запустив LinuxCNC запустим программу. Шпиндель раскрутится до требуемых 8000 оборотов (как ему кажется) потому как M03 с параметро S=8000 именно того и требует, а инвертор на экране покажет частоту F. Которая будет чему-то равна.

(i) После окончания программы шпиндель не остановился, а продолжил свое вращение! Это потенциальный риск!

И все потому, что программа написана не корректно. В ее конце должно стоять либо M02 либо M30.


Зафиксируем зрительным способом результат. Или запишем для потомков.

Если она будет меньше 130Гц, то надо значение PWM1 увеличивать, а если больше - уменьшать.

PWM2

Точно такая же процедура проделывается с верхним пределом, но в этом случае програмка выглядит немного иначе:

%
M3 S24000
%

В этом случае мы должны приблизиться к показателю 400Гц на дисплее инвертора.

Сводная таблица параметров

Теперь приведем таблицу значений. Хоть они и очевидны, но для красоты пущей требуется:

Таблица параметров настройки Шпинделя станка PLRA4
Параметр Значение Примечания
PWM rate 400.0 Опорная частота, берется из описания инвертора
Speed 1 8000 Число оборотов шпинделя, соответствующих уровню PWM1
PWM1 0.434 Число оборотов, полученное экспериментально по описанной выше процедуре для минимально допустимой скорости вращения.
Speed 2 24000 Число оборотов шпинделя, соответствующих уровню PWM2
PWM2 0.905 Число оборотов, полученное экспериментально по описанной выше процедуре для максимально допустимой скорости вращения.

Almost done

Почти готово! На последнем экране мы видим рекомендации по проверке работы. На экране сказано, что вся важная информация была собрана. Нажмите "Done" в верхнем правом углу для завершения.

Но есть и примечания:

  1. Если LinuxCNC будет повисать в процессе работы -
  • Вам потребуется снизить максимальную скорость которая повлияет на увеличение BASE_PERIOD.
  1. Если двигатели осей будут пропускать шаги в процессе работы LinuxCNC -
  • для начала проверьте, что Вы ввели правильные параметры шаговых двигателей;
  • затем "погоняйте" latency test по-дольше
  1. Если будет появляться сообщение "Unexpected Realtime Delay" -
  • "погоняйте" latency test по-дольше.

Как ни странно звучит, но это сообщение Вам говорит, что либо Вы лоханулись с указанием параметров, либо запустите Lattency Test. Третьего не дано.

Как показывает практика - это действительно самое важное. Все данные для настроек есть в описаниях компонентов, а Lattency Test надо гонять до "марковкиной загоди".

Чего StepConf Wizard НЕ делает

А не делает он вот чего:

Да и много чего еще. Это вообще не простая наука, запустить станок. А к изготовлению деталей можно будет приступить только познав еще очень много всякого разного и прекрасного.