LinuxCNC Stepconf: Настройка управления станком с ЧПУ через параллельный порт LPT

Stepconf

LinuxCNC может управлять широким спектром оборудования, используя множество различных аппаратных интерфейсов. Stepconf — это программа, которая генерирует файлы конфигурации для LinuxCNC для определенного класса станков с ЧПУ: тех, которые управляются через стандартный параллельный порт и управляются сигналами типа step & direction .

Stepconf устанавливается при установке LinuxCNC и находится в меню ЧПУ.

Stepconf помещает файл в каталог linuxcnc / config для хранения вариантов для каждой создаваемой вами конфигурации. Когда вы что-то меняете, вам нужно выбрать файл, который соответствует имени вашей конфигурации. Расширение файла — .stepconf.

Мастер Stepconf лучше всего работает с разрешением экрана не менее 800 x 600.

Стартовая страница Stepconf

Стартовая страница Stepconf
Стартовая страница Stepconf
  • Create New — создает новую конфигурацию.
  • Modify — изменить существующую конфигурацию. После выбора этого параметра появляется всплывающее окно выбора файлов, в котором вы можете выбрать файл .stepconf для изменения. Если вы внесли какие-либо изменения в основной файл .hal или .ini, они будут потеряны. Мастер Stepconf не изменит модификации custom.hal и custom_postgui.hal. Stepconf выделит последний созданный файл конфигурации.
  • Import — импортируйте файл конфигурации Mach и попытайтесь преобразовать его в файл конфигурации linuxcnc. После импорта вы пройдете по страницам stepconf для подтверждения / изменения записей. Исходный файл mach xml не будет изменен.

Эти параметры будут записаны в файл настроек для следующего запуска Stepconf.

  • Create Desktop Shortcut — на вашем рабочем столе будет размещена ссылка на файлы.
  • Create Desktop Launcher — это поместит панель запуска на рабочий стол для запуска вашего приложения.
  • Create Simulated Hardware — это позволяет вам создать конфигурацию для тестирования, даже если у вас нет реального оборудования.

Основная информация Stepconf

Основная информация Stepconf
Основная информация Stepconf
  • Machine Name — выберите имя для своей машины. Используйте только прописные буквы, строчные буквы, цифры, — и _.
  • Axis Configuration — выберите XYZ (фрезерный), XYZA (4-осевой фрезерный станок) или XZ (токарный станок).
  • Machine Units — выберите дюймы или мм. Все последующие записи будут в выбранных единицах. При изменении этого параметра также изменяются значения по умолчанию в разделе «Оси». Если вы измените это после выбора значений в любом из разделов осей, они будут перезаписаны значениями по умолчанию выбранных единиц.
  • Driver Type — если у вас есть один из драйверов шагового двигателя, перечисленных в раскрывающемся списке, выберите его. В противном случае выберите « Другое», найдите значения времени в листе данных вашего драйвера и введите их как наносекунды в «Driver Timing Settings» . Если в таблице данных указано значение в микросекундах, умножьте его на 1000. Например, введите 4,5 мкс как 4500 нс.

Список некоторых популярных драйверов вместе с их значениями времени можно найти на LinuxCNC.org Wiki в разделе Stepper Drive Timing .

Дополнительная обработка или изоляция сигнала, такая как оптопары и RC-фильтры на выходных платах, могут налагать собственные временные ограничения в дополнение к ограничениям драйвера. Возможно, вам потребуется добавить время к требованиям к диску, чтобы учесть это.

Селектор конфигурации LinuxCNC имеет уже настроенные конфигурации для Sherline.

  • Step Time — Шаг импульса в наносекунд. Если вы не уверены в этом параметре, значение 20 000 подойдет для большинства станков.
  • Step Space — минимальное время между шаговыми импульсами в наносекундах. Если вы не уверены в этом параметре, значение 20 000 подойдет для большинства станков.
  • Direction Hold — сколько времени удерживается указатель направления после изменения направления в наносекундах. Если вы не уверены в этом параметре, значение 20 000 подойдет для большинства станков.
  • Direction Setup — Сколько времени до изменения направления после последнего шагового импульса в наносекундах. Если вы не уверены в этом параметре, значение 20 000 подойдет для большинства станков.
  • One / Two Parport — Выберите, сколько параллельных портов нужно настроить.
  • Base Period Maximum Jitter — введите здесь результат теста задержки. Чтобы запустить тест задержки, нажмите кнопку Test Base Period Jitter . Для получения более подробной информации см. Раздел « Проверка задержки» .
  • Max Step Rate — Stepconf автоматически вычисляет максимальную скорость шага на основе введенных характеристик драйвера и результата теста задержки.
  • Min Base Period — Stepconf автоматически определяет минимальный базовый период на основе введенных характеристик драйвера и результата теста задержки.

Тест задержки

Во время выполнения теста следует нагрузить компьютер. Перемещать окна по экрану. Лазать в интернете. Скопируйте на диск несколько больших файлов. Включите музыку. Запустите программу OpenGL, например glxgears. Идея состоит в том, чтобы протестировать ПК, пока тест на задержку проверяет, каковы наихудшие числа. Запустите тест хотя бы на несколько минут. Чем дольше вы запускаете тест, тем лучше он будет улавливать события, которые могут происходить с меньшими интервалами. Это тест только для вашего компьютера, поэтому для его запуска не требуется подключать какое-либо оборудование.

Предупреждение: Не пытайтесь запустить LinuxCNC во время выполнения теста задержки.

Тест задержки Stepconf
Тест задержки Stepconf

Задержка — это время, необходимое ПК, чтобы остановить свои действия и ответить на внешний запрос. В нашем случае запрос — это периодическое сердцебиение, которое служит эталоном синхронизации для пошаговых импульсов. Чем меньше задержка, тем быстрее вы можете запустить сердцебиение и тем быстрее и плавнее будут импульсы шагов.

Задержка гораздо важнее скорости процессора. ЦП — не единственный фактор, определяющий задержку. Материнские платы, видеокарты, USB-порты, проблемы с SMI и ряд других вещей могут повлиять на задержку.

Устранение проблем в реальном времени, вызванных SMI в Ubuntu

http://wiki.linuxcnc.org/cgi-bin/wiki.pl?FixingSMIIssues

Важные числа — это max jitter . В приведенном выше примере 9075 наносекунд или 9,075 микросекунд — это самый высокий джиттер. Запишите это число и введите его в поле «max jitter» базового периода.

Если ваше max jitter меньше примерно 15-20 микросекунд (15000-20000 наносекунд), компьютер должен давать очень хорошие результаты с программным пошаговым управлением. Если максимальная задержка больше 30-50 микросекунд, вы все равно можете получить хорошие результаты, но ваша максимальная частота шагов может немного разочаровывать, особенно если вы используете микрошаг или ходовые винты с очень мелким шагом. Если числа равны 100 мкс или более (100 000 наносекунд), то ПК не является хорошим кандидатом для степпинга программного обеспечения. Числа более 1 миллисекунды (1000000 наносекунд) означают, что ПК не является хорошим кандидатом для LinuxCNC, независимо от того, используете ли вы степпинг программного обеспечения или нет.

Настройка параллельного порта

Настройка параллельного порта
Настройка параллельного порта

Вы можете указать адрес в шестнадцатеричном формате (часто 0x378) или в качестве номера порта по умолчанию в Linux (возможно, 0).

Для каждого вывода выберите сигнал, соответствующий распиновке вашего параллельного порта. Включите инвертный флажок , если сигнал инвертируется (0В для истинного / активный, 5V для ложной / неактивный).

  • Output pinout presets — автоматическая установка контактов с 2 по 9 в соответствии со стандартом Sherline (направление на контакты 2, 4, 6, 8) или стандартом Xylotex (направление на контактах 3, 5, 7, 9).
  • Inputs and Outputs — если вход или выход не используются, установите для параметра значение Unused.
  • ВExternal E Stop— его можно выбрать в раскрывающемся списке входных контактов. Типичная цепь E Stop использует все нормально замкнутые контакты.
  • Homing & Limit Switches — их можно выбрать в раскрывающемся списке входных контактов для большинства конфигураций.
  • Charge Pump — если вашей плате драйвера требуется сигнал зарядного устройства, выберите «Charge Pump» из раскрывающегося списка для выходного контакта, который вы хотите подключить к входу зарядки. Выход зарядного устройства подключен к основному потоку с помощью Stepconf. 

Настройка параллельного порта 2

Настройка параллельного порта 2
Настройка параллельного порта 2

Второй параллельный порт (если он выбран) можно настроить, и его контакты назначены на этой странице.
Невозможно выбрать сигналы шага и направления.
Вы можете выбрать вход или выход, чтобы максимально увеличить количество доступных входных / выходных контактов.
Вы можете указать адрес в шестнадцатеричном формате (часто 0x378) или в качестве номера порта по умолчанию в Linux (возможно, 1).

Конфигурация оси

Конфигурация оси Stepconf
Конфигурация оси Stepconf
  • Мотор Steps Per Revolution — количество полных шагов на оборот. Если вы знаете, сколько градусов на шаг у двигателя (например, 1,8 градуса), разделите 360 на градусы на шаг, чтобы найти количество шагов на один оборот мотора.
  • Driver Microstepping — количество микрошагов, выполняемых драйвером. Введите 2 для полушага.
  • Pulley Ratio — если в вашей машине есть шкивы между двигателем и ходовым винтом, введите здесь соотношение. Если нет, введите 1: 1 .
  • Leadscrew Pitch — Введите здесь шаг ходового винта. Если вы выбрали дюймы , введите количество витков на дюйм. Если вы выбрали миллиметры , введите количество миллиметров на оборот (например, введите 2 для 2 мм / оборот). Если станок движется в неправильном направлении, введите здесь отрицательное число вместо положительного или переверните направляющий штифт для оси.
  • Maximum Velocity введите максимальную скорость оси в единицах в секунду.
  • Maximum Acceleration — правильные значения для этих элементов можно определить только экспериментально. См. Определение максимальной скорости, чтобы установить скорость, и Поиск максимального ускорения, чтобы установить ускорение.
  • Home Location — положение, в которое перемещается станок после завершения процедуры возврата в исходное положение для этой оси. Для машин без переключателей исходного положения это место, куда оператор вручную перемещает машину, прежде чем нажимать кнопку «Домой». Если вы комбинируете исходный и конечный выключатели, вы должны переместить переключатель в исходное положение, иначе вы получите ошибку совместного ограничения.
  • Table Travel  — диапазон перемещения этой оси в зависимости от исходной точки станка. Исходное местоположение должно находиться внутри хода стола и не совпадать с одним из значений хода стола.
  • Home Switch Location — место, в котором выключатель исходного положения срабатывает или отключается относительно исходной точки машины. Этот элемент и два ниже появляются только в том случае, если в схеме расположения выводов параллельного порта были выбраны домашние переключатели. Если вы комбинируете исходный и конечный выключатели, положение исходного переключателя не может совпадать с исходным положением, иначе вы получите ошибку совместного ограничения.
  • Home Search Velocity — скорость, используемая при поиске переключателя исходного положения. Если переключатель находится около конца хода, эту скорость необходимо выбрать так, чтобы ось могла замедлиться до остановки, прежде чем достигнет конца хода. Если переключатель замкнут только на короткий диапазон хода (вместо того, чтобы быть замкнутым от точки срабатывания до одного конца хода), эта скорость должна быть выбрана так, чтобы ось могла замедлиться до остановки до того, как переключатель снова откроется, и всегда должен запускаться с одной и той же стороны переключателя. Если машина движется в неправильном направлении в начале процедуры возврата в исходное положение, отмените значение скорости поиска исходного положения .
  • Home Latch Direction — выберите « То же», чтобы ось отключалась от переключателя, затем снова приблизьтесь к ней на очень низкой скорости. При втором включении переключателя устанавливается исходное положение. Выберите « Напротив», чтобы ось снова отключилась от переключателя, и когда переключатель размыкается, устанавливается исходное положение.
  • Time to accelerate to max speed — время для достижения максимальной скорости, рассчитанное на основе максимального ускорения и максимальной скорости .
  • Distance to accelerate to max speed — Расстояние для достижения максимальной скорости с места.
  • Pulse rate at max speed — информация рассчитывается на основе значений, введенных выше. Наибольшая частота пульса на максимальной скорости определяет BASE_PERIOD . Значения выше 20000 Гц могут привести к замедлению времени отклика или даже к зависанию (самая быстрая используемая частота пульса зависит от компьютера)
  • Axis SCALE — Число, которое будет использоваться в настройке [SCALE] ini-файла. Это количество шагов на единицу пользователя.
  • Test this axis — откроется окно, в котором можно провести тестирование для каждой оси. Его можно использовать после заполнения всей информации для этой оси.

Проверить ось

Проверить ось
Проверить ось

Test this axis — базовый тестер, который выдает только сигналы шага и направления, чтобы попробовать разные значения для ускорения и скорости.

Нахождение максимальной скорости

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

После измерения доступного расстояния введите безопасное расстояние в зоне тестирования, помня, что после остановки двигатель может начать движение в неожиданном направлении. Затем нажмите «Выполнить». Станок начнет двигаться вперед и назад по этой оси. В этом тесте важно, чтобы комбинация ускорения и тестовой области позволяла машине достигать выбранной скорости и крейсерского режима, по крайней мере, на короткое расстояние — чем больше расстояние, тем лучше этот тест. Формула d = 0.5 * v * v/a дает минимальное расстояние, необходимое для достижения заданной скорости с заданным ускорением. Если это удобно и безопасно, толкайте стол против направления движения, чтобы смоделировать силы резания. Если машина буксует, уменьшите скорость и снова запустите испытание.

Если машина не остановилась, выключите кнопку « Run» . Ось теперь возвращается в исходное положение. Если положение неправильное, то во время теста ось остановилась или потеряла шаги. Уменьшите скорость и снова запустите тест.

Если машина не двигается, останавливается или теряет шаги, независимо от того, насколько низко вы поворачиваете скорость, проверьте следующее:

  • Правильная синхронизация пошагового сигнала
  • Правильная распиновка, в том числе инвертировать ступенчатые штифты
  • Правильная, хорошо экранированная разводка
  • Физические проблемы с двигателем, муфтой двигателя, ходовым винтом и т. д.

Как только вы нашли скорость, при которой ось не останавливается или не теряет шаги во время этой процедуры тестирования, уменьшите ее на 10% и используйте ее в качестве максимальной скорости оси .В поисках максимального ускорения

Используя максимальную скорость, которую вы нашли на предыдущем шаге, введите значение ускорения для проверки. Используя ту же процедуру, что и выше, при необходимости увеличьте или уменьшите значение ускорения. В этом тесте важно, чтобы комбинация ускорения и тестовой области позволяла машине достичь выбранной скорости. Как только вы найдете значение, при котором ось не останавливается или не теряет шаги во время этой процедуры тестирования, уменьшите его на 10% и используйте его в качестве максимального ускорения оси.

Конфигурация шпинделя LinuxCNC Stepconf

Конфигурация шпинделя LinuxCNC Stepconf
Конфигурация шпинделя LinuxCNC Stepconf

Эта страница появляется только в том случае, если на странице « Назначение выводов параллельного порта» для одного из выходов выбрано « ШИМ шпинделя» .

Контроль скорости шпинделя

Если на распиновке отображается ШИМ шпинделя , необходимо ввести следующую информацию:

  • Скорость ШИМ — Несущая частота сигнала ШИМ на шпиндель. Введите 0 для режима PDM, который полезен для создания аналогового управляющего напряжения. Обратитесь к документации к контроллеру шпинделя для получения подходящего значения.
  • Скорость 1 и 2, ШИМ 1 и 2 — в сгенерированном файле конфигурации используется простая линейная зависимость для определения значения ШИМ для заданного значения числа оборотов в минуту. Если значения неизвестны, их можно определить. Для получения дополнительной информации см. Определение калибровки шпинделя .

Движение, синхронизированное со шпинделем

Когда соответствующие сигналы от энкодера шпинделя подключаются к LinuxCNC через HAL, LinuxCNC поддерживает нарезание резьбы на токарном станке. Эти сигналы:

  • Spindle Index — это импульс, который происходит один раз за оборот шпинделя.
  • Spindle Phase A — это импульс, который возникает в нескольких равноудаленных местах при вращении шпинделя.
  • Spindle Phase B (необязательно) — это второй импульс, который возникает, но со смещением от фазы шпинделя A. Преимуществами использования обоих A и B являются определение направления, повышенная помехоустойчивость и повышенное разрешение.

Если шпиндель фазы А и индекс шпинделя появляются на распиновке, следующая информация должна быть введена:

  • Use Spindle-At-Speed — с обратной связью энкодера можно выбрать, чтобы linuxcnc ждал, пока шпиндель достигнет заданной скорости, прежде чем начнется подача. 
  • Speed Display Filter Gain — настройка для регулировки стабильности визуального отображения скорости вращения шпинделя.
  • Cycles per revolution — количество циклов сигнала шпинделя A за один оборот шпинделя. Эта опция доступна только в том случае, если вход установлен на фазу шпинделя А.
  • Maximum speed in thread — максимальная скорость шпинделя, используемая при нарезании резьбы. Для высоких оборотов шпинделя или энкодера шпинделя с высоким разрешением требуется низкое значение BASE_PERIOD .

Определение калибровки шпинделя

Введите следующие значения на странице конфигурации шпинделя:

Скорость 1:0ШИМ 1:0
Скорость 2:1000ШИМ 2:1

Завершите оставшиеся шаги процесса настройки, затем запустите LinuxCNC с вашей конфигурацией. Включите машину и выберите вкладку MDI. Начните вращение шпинделя, введя: M3 S100 . Измените скорость шпинделя, введя другой S-номер: S800 . Допустимые числа (на данный момент) варьируются от 1 до 1000.

Для двух разных S-номеров измерьте фактическую скорость шпинделя в об / мин. Запишите S-номера и фактическую скорость шпинделя. Снова запустите Stepconf. В поле « Скорость» введите измеренную скорость, а в поле « ШИМ» введите S-число, разделенное на 1000.

Поскольку большинство драйверов шпинделя имеют несколько нелинейные кривые отклика, лучше всего:

  • Убедитесь, что две калибровочные скорости не слишком близки друг к другу в об / мин.
  • Убедитесь, что две калибровочные скорости находятся в диапазоне скоростей, которые вы обычно используете при фрезеровании.

Например, если ваш шпиндель будет переходить от 0 до 8000 об / мин, но вы обычно используете скорости от 400 об / мин (10%) до 4000 об / мин (100%), то найдите значения ШИМ, которые дают 1600 об / мин (40%) и 2800 об / мин. Обороты (70%).

Опции

LinuxCNC Опции Stepconf
LinuxCNC Опции Stepconf
  • Include Halui — добавит компонент пользовательского интерфейса Halui. См. Главу HALUI для получения дополнительной информации.
  • Include pyVCP — этот параметр добавляет базовый файл панели pyVCP или образец файла для работы. См. Главу о PyVCP для получения дополнительной информации.
  • Include ClassicLadder PLC — эта опция добавит ПЛК ClassicLadder (программируемый логический контроллер). См. Главу Classicladder для получения дополнительной информации.
  • Onscreen Prompt For Tool Change — если этот флажок установлен, LinuxCNC приостановит работу и предложит вам сменить инструмент при обнаружении M6 . Эта функция обычно полезна только в том случае, если у вас есть предварительно настраиваемые инструменты.

Конфигурация машины завершена.

Нажмите Применить, чтобы записать файлы конфигурации. Позже вы можете повторно запустить эту программу и настроить параметры, которые вы ввели ранее.

Ход осей и домашнее положение

Для каждой оси существует ограниченный диапазон перемещения. Физический конец путешествия называется жесткой остановкой .

Перед жесткой остановкой есть концевой выключатель . Если концевой выключатель встречается во время нормальной работы, LinuxCNC отключает усилитель двигателя. Расстояние между жестким остановом и концевым выключателем должно быть достаточно большим, чтобы двигатель мог остановиться по инерции.

Перед концевым выключателем есть мягкий предел . Это ограничение применяется в программном обеспечении после возврата в исходное положение. Если команда MDI или программа G-code выйдет за мягкий предел, она не будет выполнена. Если траектория превышает мягкий предел, он прекращается на мягком пределе.

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

Нулевое положение является расположение на оси, 0 в системе координат станка. Обычно нулевая позиция находится в мягких пределах . На токарных станках режим постоянной скорости резания требует, чтобы X = 0 соответствовал центру вращения шпинделя, когда коррекция инструмента не действует.

Исходное положение этого место траектории, где ось будет перемещена в конце последовательности самонаведения. Это значение должно находиться в мягких пределах . В частности, исходное положение никогда не должно точно совпадать с мягким пределом .

Работа без концевых выключателей

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

Работа без переключателей Home

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

Варианты проводки домашнего и концевого выключателя

Идеальная проводка для внешних переключателей — по одному входу на переключатель. Однако параллельный порт ПК предлагает всего 5 входов, в то время как на 3-осевом станке имеется целых 9 переключателей. Вместо этого несколько переключателей соединяются вместе различными способами, поэтому требуется меньшее количество входов.

На рисунках ниже показана общая идея подключения нескольких переключателей к одному входному выводу. В каждом случае, когда срабатывает один переключатель, значение на ВХОДЕ изменяется с HIGH на LOW. Однако LinuxCNC ожидает значение ИСТИНА, когда переключатель замкнут, поэтому на странице конфигурации распиновки необходимо установить соответствующий флажок Инвертировать . Подтягивающий резистор, показанный на схемах, подтягивает вход на высоком уровне до тех пор, пока не будет выполнено соединение с землей, а затем на входе будет низкий уровень. В противном случае вход может плавать между включением и выключением при разомкнутой цепи. Обычно для параллельного порта вы можете использовать 47k.Нормально замкнутые переключатели

Последовательное подключение нормально замкнутых переключателей (упрощенная схема)

В Stepconf разрешены следующие комбинации переключателей:

  • Комбинируйте домашние переключатели для всех осей
  • Комбинированные концевые выключатели для всех осей
  • Объедините оба концевых выключателя для одной оси
  • Объедините оба концевых выключателя и выключатель исходного положения для одной оси
  • Объедините один концевой выключатель и выключатель исходного положения для одной оси

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован.