Step Conf Wizard
Автор предупреждает! Данные этой статьи получены из открытых источников и/или документации на обсуждаемое оборудование или из моей экспериментальной деятельности и являются моим персональным мнением и/или комментарием. Смотрите: NikiWiki:Отказ от ответственности |
Про конфигурацию LinuxCNC при помощи 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, достаточно странны. В то время, как интерфейс никто не переводил, назначения портов перевели. И, надо сказать, что для меня это создает определенную путаницу. Хотя я за пропаганду Родного Русского Языка.
Пин (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
С настройками осей я возился достаточно долго, читал [форумы, посвященные станкам с ЧПУ], спрашивал у [Гугла], эксперементировал и добился вот такого результата:
Параметр | Значение | Примечания |
---|---|---|
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. Очень полезная штука-вещь. Она позволяет Вам протестировать соответствие скорости и ускорения.
Процедура, которой я пользовался такова: Отводите кнопками "влево" и "вправо" ось приблизительно на середину.
При проведении Test Axes ось будет двигаться на указанное расстояние влево и вправо от текущей позиции. Посему, если ось находится в начала или близко к ограничению, а Вы укажете большее значение, то ось ударится об ограничитель и/или конструкцию станка. |
Итак, для отладки оси необходимо зажать в шпиндель кусочек проволочки или тонкое сверло (но его жалко сломать). Прикрепить к предметному столу точную линейку и зафиксировать положение оси в середине, начале и конце ее движения (соответственно, равноотстоящие от центра).
После этого запустить тест на ..... час, может ночь, может сутки, может жизнь.
Остановить тест и проверить положения в крайних точках. Они должны совпадать с первоначальными. В идеальном случае, конечно.
Обычно, при указании большого ускорения и скорости, будет сразу заметно, что станок не попадает, проскальзывает или с ним происходит еще что-то странное.
В этом случае нужно "поиграть" параметрами.
Также, на этот тест может влиять число шагов, установленное на контроллере и в настройках осей. С его величиной тоже нужно "поиграть" с целью получения наилучшего результата.
Моя субъективная оценка в том, что если двигатели "рычат", "пищат", и издают мерзкие звуки - это плохо. Что-то не так в настройках. А если двигатель "поет", причем не надрывно или пьяно, а мелодично и не громко - то Вы близки к цели.
Ось Y
Ни чем не отличается от оси X, разве что размерами и положением "домика". Приведем только разные строки, зачем загромождать Интернет?:
Параметр | Значение | Примечания |
---|---|---|
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
Ни чем не отличается от осей, описанных выше кроме размеров:
Параметр | Значение | Примечания |
---|---|---|
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. Которая будет чему-то равна.
После окончания программы шпиндель не остановился, а продолжил свое вращение! Это потенциальный риск!
И все потому, что программа написана не корректно. В ее конце должно стоять либо M02 либо M30. |
Зафиксируем зрительным способом результат. Или запишем для потомков.
Если она будет меньше 130Гц, то надо значение PWM1 увеличивать, а если больше - уменьшать.
PWM2
Точно такая же процедура проделывается с верхним пределом, но в этом случае програмка выглядит немного иначе:
% M3 S24000 %
В этом случае мы должны приблизиться к показателю 400Гц на дисплее инвертора.
Сводная таблица параметров
Теперь приведем таблицу значений. Хоть они и очевидны, но для красоты пущей требуется:
Параметр | Значение | Примечания |
---|---|---|
PWM rate | 400.0 | Опорная частота, берется из описания инвертора |
Speed 1 | 8000 | Число оборотов шпинделя, соответствующих уровню PWM1 |
PWM1 | 0.434 | Число оборотов, полученное экспериментально по описанной выше процедуре для минимально допустимой скорости вращения. |
Speed 2 | 24000 | Число оборотов шпинделя, соответствующих уровню PWM2 |
PWM2 | 0.905 | Число оборотов, полученное экспериментально по описанной выше процедуре для максимально допустимой скорости вращения. |
Almost done
Почти готово! На последнем экране мы видим рекомендации по проверке работы. На экране сказано, что вся важная информация была собрана. Нажмите "Done" в верхнем правом углу для завершения.
Но есть и примечания:
- Если LinuxCNC будет повисать в процессе работы -
- Вам потребуется снизить максимальную скорость которая повлияет на увеличение BASE_PERIOD.
- Если двигатели осей будут пропускать шаги в процессе работы LinuxCNC -
- для начала проверьте, что Вы ввели правильные параметры шаговых двигателей;
- затем "погоняйте" latency test по-дольше
- Если будет появляться сообщение "Unexpected Realtime Delay" -
- "погоняйте" latency test по-дольше.
Как ни странно звучит, но это сообщение Вам говорит, что либо Вы лоханулись с указанием параметров, либо запустите Lattency Test. Третьего не дано.
Как показывает практика - это действительно самое важное. Все данные для настроек есть в описаниях компонентов, а Lattency Test надо гонять до "марковкиной загоди".
Чего StepConf Wizard НЕ делает
А не делает он вот чего:
- Не настраивает точки смены инструмента;
- Не редактирует PyVCP индикаторов;
Да и много чего еще. Это вообще не простая наука, запустить станок. А к изготовлению деталей можно будет приступить только познав еще очень много всякого разного и прекрасного.