Руководства по настройке LinuxCNC/EMC2 для работы через LPT

torvn77
Начинающий
Сообщения: 75
Зарегистрирован: 21 дек 2014, 23:50
Репутация: 1
Страна: Россия
 

  »

Введение

Лицензия
У Вас есть право на распространение и/или изменение этого документа в рамках GNU Free Documentation Licence версия 1.1
или любой другой более поздней версии опубликованной Free Software Foundation без неизменяемых разделов,
без передней обложки и одной фразой на задней обложке
"Это руководство по LinuxCNC продукт нескольких авторов пишущих для сайта mir-cnc.ru.
Если вы найдете его полезным в своей работе, мы приглашаем Вас внести свой вклад в его доработку и расширение."
Ознакомится с лицензией можно на сайте GNU на странице "GNU Free Documentation License (GFDL)".
Если вы не найдете там лицензию, вы можете заказать копию в Free Software Foundation, Inc. по адресу:
59 Temple Place, Suite 330 Boston, MA, 02111-1307.

При написании мануальника я использовал сведения взятые с сайта cnc-club.ru, а также получал помощь от форумчан с этого сайта, за что выражаю им свою не искреннею благодарность :)

torvn77
Начинающий
Сообщения: 75
Зарегистрирован: 21 дек 2014, 23:50
Репутация: 1
Страна: Россия
 

  »

Общие сведения о станке


Компьютер с которого осуществляется управление станком
)Двуядерный процессор AMD частотой 3 Ггц.
)Память DDR2 800 Мгц,4 ГБ.
Так много потомучто более мелких модулей у меня нету.а покупать специально жаба душит.
а так для работы должно хватить 500 Мб + файл подкачки на диске.

Плата согласовния компьютера и станка PLC4x-G2 производства Пурелогик имеет:
)Один ШИМ (или всётаки ДИМ?) декодер с оптической отвязкой от платы
)Два реле включаемых пинами порта LPT
)Одно реле включаемое с пина LPT или детектором сигнала (Charge Pump,PWM шпинделя) по выбору.
К сожалению,что в первой,что во второй проданной мне плате клеммы
для подключения силовой нагрузки не образуют электрического контакта с платой.
Поэтому управляемую нагрузку мне пришлось припаивать к плате непосредственно.
)Плата активируется как постоянным сигналом ENABLED,так и модулированным частотой,называемый ChargePump.
Выбор между сигналами осуществляется с помощью микропереключателя.

БУ станка состоит из блоков питания,аналоговых драйверов Leadshine и инвертора HOLIP-A,
который управляется одним реле и аналоговым сигналом от ШИМ декодера.
Размер по Х 700 мм,по У 800 мм,по Z 100 мм.
Датчик home-limit осей Х и У находится в начале координат,т.е. с права для оси У,и спереди для оси Х.
или Х=У=(-1)
У оси Z датчик находится в верхнем положении,в соответсвии с промышленным стандартом его координата равна +1,
а сама ось направлена вниз и принимает отрицательные значения.

torvn77
Начинающий
Сообщения: 75
Зарегистрирован: 21 дек 2014, 23:50
Репутация: 1
Страна: Россия
 

  »

Минимальные и достаточные требования к компьютеру
)Наличие в составе компьютера внешнего или внутреннего (т.е. на материнской плате) контролёра LPT.
Настройку LinuxCNC для работы с аппаратными контролёрами этот мастер не поддерживает и для этого
надо использовать мастер Pncconf.

)x86 совместимый процессор уровня Pentium II/III с частотой 400 МГц и выше.
Для минимального запуска оболочки пользователя установленной на диск Ubuntu надо
128~256 Мб памяти ОЗУ и файл или раздел подкачки (далее swap) размером ~400 МБ.
для комфортной работы в системе от 512 МБ.
После 1 Гб swap можно отключить совсем.

)какой бы компьютер ни был,а из-за того,что большое количество дисковых операций может вызвать срыв реалтайма
диск надо пусть и не большой,но быстрый,по возможности SSD.
Объём менее кретичен,для установки системы хватает 16 GB.
( Назад к оглавлению )

torvn77
Начинающий
Сообщения: 75
Зарегистрирован: 21 дек 2014, 23:50
Репутация: 1
Страна: Россия
 

  »

формирование скелета мануальника закончено,хотя сам он ещё в процессе написания.
Можно критиковать,предлагать и спрашивать о том что не ясно.

Оглавление

Введение (в резерве)
Общие сведения о станке
Минимальные и достаточные требования к компьютеру (в резерве)
Начало работы мастера (готово)
Параметры станка, контроллера и быстродействия (редактируется)
Подключение пользовательских модулей (редактируется)
Распиновка LPT порта (редактируется)
Настройка линейных осей (редактируется)
Настройка поворотной оси (редактируется)
Настройка инвертора ( шпинделя ) (редактируется)
Завершение работы мастера и результат (редактируется)
Разблокирование LinuxCNC и запуск программы
Описание работы с программой,FAQ и тема для задавания базовых вопросов

Подключение джойстика к пользовательской оболочке Axis
Настройка LinuxCNC для работы с несколькими LPT портами (в резерве )
Заметки и общие выводы (в резерве)
Подключение нескольких поворотных осей (не создан)
Подключение и сопряжение дополнительных линейных осей (не создан)
Выбор и подключение различных оболочек пользователя (не создан)

torvn77
Начинающий
Сообщения: 75
Зарегистрирован: 21 дек 2014, 23:50
Репутация: 1
Страна: Россия
 

  »

Re: Руководства по настройке LinuxCNC/EMC2 для работы через LPT
Начало работы мастера

Меню запуска программ во втором Gnom'e находится в верхнем левом углу экрана.
Откройте его хлопнув левой кнопкой мышки по находящемуся с лева от слова Application составному колечку.
Потом проводя мышкой над соответсвующими словами войдите в показанное на картинке субменю и
запустите мастер Stepconf опять таки хлопнув по нему левой кнопкой.
(В общем в смысле мышекликанья тут всё также,как и в винде)

LinuxCNC.Stepconf.01.Run_Wizard.png

В первом окошке никаких настроек не делается,просто даются объяснения чегото там на англиском.
Хлопаем по кнопке Forward (т.е. Вперёд) и переходим к следующему окну,
в котором предлагают решить будем мы создавать конфиг заново,
или воспользуемся информацией о старом.

LinuxCNC.Stepconf.02.Start_Page.png

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

LinuxCNC.Stepconf.03.1.Select_Create_Config.png

Сначала посмотрим в нижнею часть диалогового окна и видим там две галочки,
При установке одного на рабочем столе создаётся ярлык для папки с файлами создаваемой мастером кофигурации,
при установке другого создаётся *.desktop файл Gnom'a.
В общем если создать несколько конфигурации с разными именами,
то кликая по этим файлам можно выбирать,то с какими конфигами LinuxCNC будет запущен.
Также если запустить текстовый редактор и открыть им этот файл,то в соответсвующей строке можно увидеть
команду запуска с путём к главному конфигурационному файлу в качестве параметра.
При желании эту строку можно отредактировать,изменить путь к конфигам или добавить дополнительные опции запуска.

В верхней части окна находится переключатель выбора между созданием (Create) и редактированием (Modifi) уже созданного конфига.
Вот собствено можно увидеть эту часть окошка с переключателем в положении выбора редактирования уже сделанных конфигов.

LinuxCNC.Stepconf.03.2.Select_Modifi_Config.png

Если вы вы выбираете создание конфига,то ни каких дополнительных вопросов не задаётся и вы
переходите к следующему окну мастера.
Если же вы выбираете изменение конфигурации,то выводится диалоговое окно выбора файла *.stepconf с сохранёнными настройками с которыми был сделан предыдущий конфиг.

LinuxCNC.Stepconf.03.3.Select_Config_File.png

Сам по себе этот файл является документом в формате xml,
используется только мастером Stepconf и никак в работе LinuxCNC собственно не участвует.
Хранить и открывать мастером его можно в любом месте,в любом случае мастер будет
создавать папку с конфигурационными файлами и новый файл *.stepconf
заново в стандартной папке для хранения конфигов.
( ~/linuxcnc/configs,где ~ стандартное обозначение пути к домашней директории пользователя )
( Назад к оглавлению )

torvn77
Начинающий
Сообщения: 75
Зарегистрирован: 21 дек 2014, 23:50
Репутация: 1
Страна: Россия
 

  »

Параметры станка, контроллера и быстродействия

LinuxCNC.Stepconf.06.1.Basic_Machine_Information.png

Machine Name название создаваемого конфига.
Для него можно использовать заглавные и строчные буквы,цифры и знаки "-" и "_".
LinuxCNC не поддерживает для разных задач разные профили,вместо этого для каждого конфига создаётся с этим именем отдельная папка,
в которой конфиг и хранится вместе с сопутсвующими ему файлами.
Выбор конкретного конфига осуществляется запуском LinuxCNC через соответсвующии ярлык
или если вы забыли в " Начало работы мастера " его создать,
непосредственным вызовом из консоли,способом указывания в параметрах вызова пути к главному *.ini файлу.
Например для пользователя с именем "cnc" и названием конфига "Purelogic_PLC4x-G2"
вызов LinuxCNC c соответствующим профилем будет выглядеть так:

linuxcnc /home/cnc/linuxcnc/configs/Purelogic_PLC4x-G2/Purelogic_PLC4x-G2.ini


Configuration directory не редактируемый параметр,который показывает путь к папке с создаваемыми конфигами.

Axis configuration выпадающии список с разными типами конструкции конфигурируемого станка

XYZ - Трёх осевой фрезер
XYZA - Трёх осевой фрезер с токарной осью
XZ - Токарный станок

Например на этом рисунке выбрана конфигурация для трёх осевого фрезера с поворотной осью.
LinuxCNC.Stepconf.06.2.Basic_Machine_Information(A_Axis_Select).png
Настройки для фрезерно-токарных типа XZA в этом списке нет.
Такой фрезер можно попробовать сконфигурировать как XYZA и либо создать соответсвующии постпроцессор,
либо установить Home Search velocity из окна _Axis Configuration для неиспользуемой оси в ноль,
что отключит поиск дома на этой оси и позволит станку нормально инициализироватся при запуске.

Machine units единицы измерения,с которыми будет работать LinuxCNC

Inches (G20)
Millimeters(G21)

Driver type это выподающии список,который содержит предустановленные параметры формы сигналов Step и Dir для разных драйверов.
Если же вашего драйвера в списке нету,то вы можите посмотреть эти значения в инструкции к драйверу.
Если же инструкции к драйверу тоже нет,то подбирайте их самостоятельно,
опираясь на приведённое ниже описание смысла этих сигналов.
в любом случае,учитывайте,что в зависимости от соотношения этих сигналов
звук при перемещении станка может быть различным.
Подбирайте не только те значения,при которых станок ездит,но и "приятно" звучит.
Так же рекомендуется эти значения делать минимум в двое больше паспортных или полученных экспериментальным путём.
При не выполнении этого требования часть шагов может быть пропущена из-за того,
что они приходят в контролёр когда он шаги не воспринимает или ослабления или искажения сигнала в процессе передачи.
При этом изменение координаты может быть целенаправленным.
(По мере работы станка ось Z постепенно смещается вверх)

Step time Длительность сигнала step
Step space Минимальный промежуток времени между двумя сигналами step
Direction hold Время после изменения сигнала Dir после которого можно начинать посылать импульсы Step.
Direction setup Время после последнего импульса Step после которого можно менять сигнал Dir

First Parport Base Address Первый адрес из диапазона выделенного LPT порту.
Адрес указанный в этой опции по умолчанию является стандартным адресом LPT порта и поэтому без необходимости менять его не следует.
Но порой отдельные контролёры,особенно сделанные в виде плат расширения могут брать себе
и другие значения адреса,а то и вобще не работать ни с LinuxCNC,ни с MACH'ем.
В этом случае более подробные инструкции ищите в главе
"Настройка LinuxCNC для работы с несколькими LPT портами"

Onscreen prompt for tool change - уведомление о смене инструмента.
Если эта опция включена, то EMC2 будет останавливаться и выдавать сообщение о смене инструмента,
каждый раз, когда в управляющей программе будет встречаться код M6.
Если же вы планируете использовать автоматическую смену инструмента,то галку следовало бы снять.
Но на практике лучше этого не делать,так как автоматическая смена инструмента потребует ручной правки хала,
и вам будет проще отредактировать такую "заготовку",заменив компонент hal_manualtoolchange на свой,
чем прописывать это в хале с нуля.

Base Period Maximum Jitter Максимальный разброс базового периода реалтайма.
Для настройки этого параметра существует отработанная методика с использованием утилиты latency-test,
но на мой взгляд она приводит к неоправданно большим или маленьким значениям этой величины.
Её можно использовать только для предварительной оценки этого параметра.
Для этого запускаем её в мастере кнопкой "Test Base Period Jitter",запускаем редактор Gedit,
открываем им довольно крупный фаил,после чего записываем в параметр значение "Max Jitter" из строки "Base thread".

LinuxCNC.Stepconf.06.3.Hal_Latency_Test.png

Также эту утилиту можно запустить из соответсвующего раздела меню Application Gnom'a или
терминала набрав в нём latency-test .
Правильная настроика этого параметра будет после полного завершения всех других настроек станка.
Моя методика настройки такая:
)Запустить настроенный LinuxCNC,
)Снять блокировку станка клавишей F1 и включить его клавишей F2.
)После чего начать быстро по очереди нажимать клавиши со стрелками вниз-вверх (ось У) или право-лево(ось Х).
)Если при этом произощёл сбой реалтайма,то запускаем мастер и увеличиваем
значение разброса базового периода,если нет,то уменьшаем.
)После того как будет найдено минимальное значение этой переменной,запускаем часто меняющею направление УП,запускаем текстовый редактор Gedit и открываем им текстовый фаил объёмом с среднее значение довольно крупных УП.
)После чего увеличиваем разброс базового периода до значения при котором LinuxCNC будет работать стабильно.
Но это не будет не совсем правильное значение разброса так как Gedit и сам файл откешируются при первом запуске и открытии в ОЗУ компьютера.
Что может привести к сбоям реалтайма если происходит длительное обращение к жёсткому диску,
например для чтения больших файлов.
Поэтому перегружаемся и выполняем тест заного с так называемым холодным стартом программы.

Чтобы не мучится с запуском и проходом мастера для смены одной переменной можно
редактировать эту переменную прямо в файле конфигурации.
Файл находится в папке указанной в параметре Configuration directory из " Параметры станка, контроллера и быстродействия"
имеет расширение *.ini и называется также как и конфиг в переменной Machine Name.
Сидит параметр в секции [EMCMOT] и имя его BASE_PERIOD =

Так же не забываем после изменения этого параметра пройти по окнам мастера дальше на страницу настройки осей и
поменять максимальные скорости движения по осям.

( Назад к оглавлению )

torvn77
Начинающий
Сообщения: 75
Зарегистрирован: 21 дек 2014, 23:50
Репутация: 1
Страна: Россия
 

  »

Добавление пользовательских расширений интерфейса

LinuxCNC.Stepconf.08.3.Run_Include_Code_From_Test.png

Include Halui - Добавить пользовательскую панель Halui.
Include PyVCP GUI panel - Добавить панель pyVCP.
См. статью по настройке и применению pyVCP в EMC2
Include ClassicLadder PLC - Добавить программируемый контроллер на лестничной логике (Programmable Ladder Logic Controller).

LinuxCNC.Stepconf.08.1.Config_Include_Code.png


LinuxCNC.Stepconf.08.4.Confirm_Replace_Last_Code.png


( Назад к оглавлению )

torvn77
Начинающий
Сообщения: 75
Зарегистрирован: 21 дек 2014, 23:50
Репутация: 1
Страна: Россия
 

  »

Эти параметры находятся в окошке "Настройка линейных осей".
И так как обычно координаты станка находятся в верхнем левом квадранте то соответсвующее поле
будет в левой части параметра Table Travel указываемого в настройках соответсвующей оси.
Maximum Limit Axis Подключение датчика достижения верхней границы оси Axis,
При этом положение датчика home (Home Switch Location) и рабочей область оси (Table Travel) настраиваются так,
чтобы датчик Maximum Limit находился вне рабочего пространства.
Эти параметры находятся в окошке "Настройка линейных осей".
И так как обычно координаты станка находятся в верхнем левом квадранте то соответсвующее поле
будет в правой части параметра Table Travel указываемого в настройках соответсвующей оси.
Both Limit Axis Совместное подключение датчиков достижения верхней и нижней границ оси Axis.
Maximum Limit + Home Axis Совместное подключение датчиков достижения верхней границы и дома оси Axis.
Minimum Limit + Home Axis Совместное подключение датчиков достижения нижней границы и дома оси Axis.
Both Limit +Home Axis Совместное подключение датчиков достижения верхней,нижней границы и дома оси Axis.

All Limits совместное подключение от всех осей всех датчиков границ.
All Home совместное подключение от всех осей всех датчиков дома.
All Limits + Home совместное подключение от всех осей всех датчиков дома и границ.

Spindle Index ???
Spindle Phase A ???
Spindle Phase B ???

( Назад к оглавлению )

torvn77
Начинающий
Сообщения: 75
Зарегистрирован: 21 дек 2014, 23:50
Репутация: 1
Страна: Россия
 

  »

Настройка линейных осей

LinuxCNC.Stepconf.13.1.Config_X_Axis.png

Далее настраиваем все оси станка:

Motor Steps Per Revolution - количество шагов двигателя на один оборот.
обычно 200,но может быть и другое значение.
Driver Microstepping - настройка микрошага контроллера.
Для микрошага 1:8 устанавливайте "8".
Подробнее об определении микрошага контроллёра можно прочитать здесь:
Подключение и настройка драйвера шагового двигателя
Pulley teeth (Motor:Leadscrew) - передаточное число ременной передачи или редуктора
в формате (обороты на входе) : (обороты на выходе).
Если у вас ни то,ни другое не установлено,то ставте отношение 1:1.
Leadscrew Pitch - шаг ходового винта.
Если вы знаете название винта,то в нём должно быть что-то типа 16х5.
Где 16 диаметр винта/ШВП,а 5 это растояние на которое сместится гайка при одном обороте.
Можно поменять направление движения вдоль оси установив отрицательное значение шага винта.

Maximum Velocity - Максимальная скорость перемещения.
Maximum Acceleration - Максимальное ускорение по данной оси.
Home Location - "Домашняя" позиция оси,это значение примет координата после выполнения поиска машинного нуля.
Значение этого параметра может принимать любое значение в пределах указанного в Table Travel рабочего участка оси.
Я например предпочитаю устанавливать его не в ноль,а в такое положение в котором мне будет удобно крепить заготовку.

Table Travel - Рабочий участок оси от min до max.
При этом концевые датчики (limit) должны быть вне этого диапазона,в противном случае
при занятии крайних положении будет происходить аварийная остановка.
А вот датчики home могут быть как в этом диапазоне,так и вне его (но конечно в пределах лимитов)
Home Switch Location - Положение датчика home,определяющего нуль машинных координат.
(В УП как правило указываются относительные координаты.)
При использовании концевика (limit) в качестве качестве этого датчика
ему следует назначить координаты вне рабочего участка (Table Travel),
иначе при наезде на датчик,который во время работы будет в качестве концевого,
будет аварийная остановка.
При этом типовой настроикой этого параметра будет значение,
меньшее или большее на один милиметр концов рабочего промежутка(Table Travel).
Home Search Velocity - скорость поиска начала оси.
Этот параметр имеет положительное значение,если датчик home находится в конце оси,
и отрицательное,если в начале.
Если концевой датчик расположен рядом с концом оси это значение должно быть выбрано с учетом того,
что станок должен будет успеть остановиться до того как он ударится о конец оси.
Если концевик замыкается только когда ответная часть рядом с ним,
то скорость должна быть выбрана таким образом, чтобы станок успел остановиться до того,как концевик разомкнётся.

Home Latch Direction выподающии список из двух способов определения домашних координат:

"Same" При срабатывании датчика home продолжать ехать до тех пор,пока этот датчик не разомкнётся.
"Opposite" При срабатывании датчика home остановится и ехать обратно до момента рамыкания датчика.

Способ "Same" следует выбирать если датчик находится в пределах рабочего промежутка,
а способ "Opposite" если он находится с краю или за его пределами.

Ниже находятся вычесленные на основе введённых данных параметры оси:

Time to accelerate to max speed - время ускорения до максимальной скорости (время остановки)
Distance to accelerate to max speed - дистанция ускорения до максимальной скорости (дистанция остановки)
Pulse rate at max speed - частота сигналов на максимальной скорости
Axis SCALE - количество шагов в одной единице измерения шагов/мм (шагов/дюйм)

Следует учесть.что скорость движения по оси ограничивается не только параметром "Maximum Velocity",
но и параметром "Base Period Maximum Jitter" из "Параметры станка, контроллера и быстродействия".

После введения всех параметров ось можно протестировать. Для этого нажимаем Test this axis.
Так же это окошко полезно если вы хотите выставить максимальную скорость при заданном параметре "Base Period Maximum Jitter".

Ось У настраивается аналогично:
LinuxCNC.Stepconf.13.2.Config_Y_Axis.png
У оси Z датчик home-limit находится на верху,по этому скорость поиска дома положительная.
А сама его координата "Home Switch Location" равна верхнему значению "Table Travel" + 1 =101
LinuxCNC.Stepconf.13.3.Config_Z_Axis.png
Хотя как стало мне известно позднее,промышленным стандартом является расположение нуля по Z на верху оси,
а сама ось изменяется вниз к отрицательному значению.
Так что если всё настраивать по стандарту,то рабочий промежуток (Table Travel) изменяется между отрицательным значением и нулём.
а скорость поиска дома также как и на других осях имеет отрицательное значение.
В общем в постпроцессорах и различных CAD/CAM системах стандартное значение дома по Z равно нулю,
и соответственно надо настраивать LinuxCNC так,чтобы при получении команды в машинных координатах уйти в ноль,
она бы поднимала шпиндель,а не опускала его ломая инструмент и находящиеся в низу части станка.
( Назад к оглавлению )

torvn77
Начинающий
Сообщения: 75
Зарегистрирован: 21 дек 2014, 23:50
Репутация: 1
Страна: Россия
 

  »

Конфигурация поворотной оси

LinuxCNC.Stepconf.13.4.Config_A_Axis.png

Добавлено спустя 26 секунд:
Re: Руководства по настройке LinuxCNC/EMC2 для работы через LPT
Настройка инвертора ( шпинделя )
LinuxCNC.Stepconf.17.Spindle_Configuration.png
Если шпиндель регулируется при помощи ШИМ:
Устанавливаем Carrier frequency (Несущая частота) согласно инструкции к Вашему контроллеру шпинделя.
Устанавливаем - значения скоростей в оборотах в минуту "Speed 1" и "Speed 2" при заданных
значениях ШИМ "PWM 1" и "PWM 2".
Этими параметрами определяется линейная зависимость скорости шпинделя от значения PWM.
Значения "Speed " изменяются от нуля до максимальной частоты оборотов шпинделя.
Значение "PWM" изменяется от нуля до единицы.
Эту информацию можно найти в инструкции к Вашему контроллеру, либо попробовать определить самостоятельно.
Если написанное вам не понятно,то можете дополнительно прочитать об этом здесь Линк

( Назад к оглавлению )


Вернуться в «LinuxCNC»