Грамотная mach3 настройка превращает персональный компьютер в надежный промышленный ЧПУ-контроллер для фрезерного станка. Мы настраиваем станки с ЧПУ более пятнадцати лет. В руководстве представлена полная mach3 инструкция на русском с формулами расчета шагов, таблицами LPT и параметрами внешних плат. Мы разберем весь цикл от конфигурации ядра до написания макросов автоматического обмера инструмента.
Архитектура ArtSoft Mach3 и аппаратная база управления
Программный комплекс ArtSoft Mach3 версии R3.043.066 управляет фрезерным станком через импульсы STEP и DIR. Сигналы генерируются драйвером LPT-порта или внешним контроллером движения. Для прямого LPT-порта нужна 32-битная Windows XP или Windows 7. Частота ядра Kernel Speed выбирается от 25 до 100 кГц. В цехах мы подключаем контроллеры с интерфейсами Ethernet и USB. Это исключает джиттер операционной системы и поднимает частоту шагов до нескольких мегагерц.
Когда программа работает через LPT, драйвер Mach3Driver.sys перехватывает прерывания процессора. При частоте 25 кГц интервал между импульсами равен 40 мкс. Если Windows выполняет фоновые службы, возникают задержки сигналов. В итоге шаговый мотор теряет синхронизацию и пропускает шаги. Поэтому для чистовой фрезеровки мы берем внешние Motion-контроллеры с аппаратным генератором тактов.
Внешние контроллеры получают от ПК готовые блоки траектории по протоколам TCP/IP или USB. Импульсная последовательность формируется прямо на микроконтроллере или чипе FPGA. Это разгружает процессор компьютера. И качество фрезерования больше не зависит от стабильности Windows.
| Параметр интерфейса | Прямой LPT-порт (DB25) | Ethernet SmoothStepper (ESS) | NVUM USB / UC300ETH |
|---|---|---|---|
| Максимальная частота шагов (Step Rate) | 25 – 100 кГц | До 4000 кГц (4 МГц) | 200 – 400 кГц |
| Требования к операционной системе | Windows XP/7 (только 32-bit) | Windows XP/7/8/10/11 (32 и 64-bit) | Windows XP/7/10 (32 и 64-bit) |
| Аппаратная буферизация команд | Отсутствует (генерация на ЦП) | Аппаратный буфер FPGA (до 1.5 с) | Встроенный буфер MCU (до 0.5 с) |
| Помехозащищенность канала связи | Низкая (длина кабеля до 1.8 м) | Высокая (гальваноразвязка LAN) | Средняя (чувствителен к наводкам) |
| Количество дискретных портов ввода-вывода | 1 или 2 порта (до 24 выходов) | 3 порта LPT-эмуляции (51 I/O) | Фиксированные клеммы (12 in / 10 out) |
Инженерное правило сервиса: при работе через LPT запускайте тест DriverTest.exe из папки C:\Mach3. График импульсов должен быть строго ровной линией без скачков. Допустимая вариация тайминга составляет не более двух микросекунд.
Конфигурация портов и пинов во вкладках Ports and Pins
Базовая ports and pins mach3 настройка пинов выполняется через диалоговое окно Config. Так мы согласуем логику программы с интерфейсной платой станка. В Port Setup мы задаем базовый адрес порта 0x378. Во вкладке Motor Outputs мы прописываем выводы Step и Direction для каждой оси и задаем уровни Low Active. Датчики Home, E-Stop и Probe мы настраиваем в Input Signals. А реле шпинделя и насос СОЖ мы привязываем во вкладке Output Signals.
Во вкладке Port Setup and Axis Selection мы ставим отметку Port 1 Enabled. Для встроенных портов материнской платы LPT1 почти всегда имеет адрес 0x378. Для карт PCI-Express мы находим адрес через Диспетчер устройств Windows. Частоту Kernel Speed для стандартных шаговых моторов мы выбираем 25000 или 35000 Hz. Значения 45000 и 100000 Hz мы включаем только на скоростных сервоприводах.
Во вкладке Motor Outputs мы распределяем физические пины для осей X, Y, Z и поворотной оси A. Флаг Step Low Active определяет полярность управляющего импульса шага. Если мотор свистит и греется на удержании, мы инвертируем этот флаг. Параметр Dir Low Active меняет направление движения каретки. И если при ручном перемещении ось X едет в обратную сторону, достаточно изменить галочку в этой графе.
Вкладка Input Signals распределяет концевые датчики и кнопки защиты. Мы собираем цепи аварийного останова E-Stop и лимитов по нормально-замкнутой схеме NC. При обрыве сигнального провода станок моментально уходит в аварию. Это спасает направляющие и фрезу от поломки. Поэтому в таблице сигналов мы ставим отметку Active Low.
| Наименование сигнала | Вкладка меню Mach3 | Типовой пин LPT | Активный уровень (Active Low) | Назначение в схеме станка |
|---|---|---|---|---|
| X Step / X Dir | Motor Outputs | Pin 2 / Pin 3 | Step: Low / Dir: Low | Импульсы шага и направления привода X |
| Y Step / Y Dir | Motor Outputs | Pin 4 / Pin 5 | Step: Low / Dir: Low | Импульсы шага и направления привода Y |
| Z Step / Z Dir | Motor Outputs | Pin 6 / Pin 7 | Step: Low / Dir: Low | Импульсы шага и направления привода Z |
| A Step / A Dir | Motor Outputs | Pin 8 / Pin 9 | Step: Low / Dir: Low | Импульсы шага и направления поворотной оси |
| E-Stop | Input Signals | Pin 10 | Active Low (галочка) | Кнопка аварийного останова (цепь NC) |
| Probe | Input Signals | Pin 15 | Active Low (галочка) | Контактная пластина датчика высоты инструмента |
| X Home / Y Home / Z Home | Input Signals | Pin 11 / 12 / 13 | Active Low (галочка) | Индуктивные датчики базовых точек осей |
| Output #1 (Spindle M3) | Output Signals | Pin 1 | Active High (крестик) | Реле включения вращения шпинделя станка |
| Output #2 (Coolant M8) | Output Signals | Pin 14 | Active High (крестик) | Клапан подачи смазочно-охлаждающей жидкости |
| Charge Pump | Output Signals | Pin 17 | Active High (крестик) | Генератор сторожевой частоты 12.5 кГц |
Сигнал Charge Pump передает на интерфейсную плату меандр частотой 12.5 кГц. Это подтверждает штатную работу софта. Если Windows зависнет или Mach3 закроется, плата мгновенно снимет питание с силовых драйверов и шпинделя.
Подобрать оборудование под вашу задачу
Тюнинг двигателей и расчет параметров Motor Tuning
Точная motor tuning mach3 калибровка шагов определяет кинематику приводов станка. Мы рассчитываем базовый параметр steps per unit расчет шагов на мм по формулам передаточных отношений механики с учетом микрошага. Затем мы подбираем скорость Velocity и ускорение Acceleration на тестовом прогоне. Наш регламент требует сохранять запас по крутящему моменту в 30 процентов. Это полностью исключает срыв моторов под силовой нагрузкой.
Для приводов с шарико-винтовой передачей ШВП количество импульсов на миллиметр рассчитывается по формуле:
$$Steps\_per\_unit = \frac{N_{spr} \cdot K_{micro}}{P_h \cdot i}$$
Здесь $N_{spr}$ — число полных шагов мотора на один оборот вала. Для гибридных моторов с шагом 1.8 градуса $N_{spr} = 200$. Коэффициент $K_{micro}$ задает деление микрошага на драйвере. Шаг винта ШВП в миллиметрах обозначен как $P_h$. Параметр $i$ задает передаточное отношение редуктора между мотором и винтом. При прямом соединении через муфту $i = 1$.
Для станков с зубчатой рейкой расчетная формула имеет вид:
$$Steps_{рейка} = \frac{N_{spr} \cdot K_{micro}}{\pi \cdot m \cdot z \cdot i}$$
Здесь $m$ обозначает модуль рейки в миллиметрах. Символ $z$ указывает число зубьев ведущей шестерни. Произведение $\pi \cdot m \cdot z$ определяет делительный периметр шестерни. Это линейный путь портала за один оборот выходного вала.
Рассмотрим пример расчета для оси Z нашего фрезерного станка. Мотор NEMA 23 имеет 200 шагов на оборот. Драйвер настроен на микрошаг 1/8. Винт ШВП 1605 имеет шаг 5 мм и соединен с мотором напрямую ($i = 1$). Подставим значения:
$$Steps\_per\_unit = \frac{200 \cdot 8}{5 \cdot 1} = \frac{1600}{5} = 320$$
В поле Steps per Unit для оси Z мы прописываем ровно 320 импульсов. Для реечной оси X с модулем $m = 1.5$, шестерней $z = 20$, редуктором 1:5 ($i = 0.2$) и микрошагом 1/16 расчет дает:
$$Steps_{рейка} = \frac{200 \cdot 16}{\pi \cdot 1.5 \cdot 20 \cdot 0.2} = \frac{3200}{18.8495} \approx 169.7654$$
Время выхода привода на максимальную подачу определяется формулой:
$$T_{accel} = \frac{V_{max}}{a}$$
Здесь $V_{max}$ задает скорость в мм/с, а $a$ обозначает ускорение в мм/с². Мы настраиваем приводы в окне Motor Tuning по регламенту:
- Выбираем нужную ось кнопкой X Axis, Y Axis или Z Axis.
- Вводим расчетные шаги в поле Steps per.
- Задаем начальную скорость Velocity 1500 мм/мин и ускорение 150 мм/с².
- Выставляем импульсы Step Pulse и Direction Pulse по 3–5 мкс.
- Нажимаем Save Axis Settings для сохранения оси.
- Гоняем каретку стрелками, поднимая скорость до срыва мотора.
- Умножаем максимум на 0.7 и вносим итоговые значения.
Настройка концевиков реферирования и безопасных зон Soft Limits
Грамотная настройка концевиков homing limits mach3 формирует машинный ноль станка и защищает узлы от жестких ударов. Мы задаем направление поиска базы через параметры Home Neg. Скорость подъезда Auto Zero Speed мы выставляем на уровне 10–20 процентов от рабочего максимума. Затем мы включаем программные границы Soft Limits. При подходе к краю стола станок плавно тормозит в зоне Slow Zone по стандарту ГОСТ 20999-83.
Параметры реферирования настраиваются в меню Config -> Homing/Limits. В окне задаются шесть базовых значений:
- Reversed: инвертирует направление движения мотора с клавиатуры.
- Soft Max и Soft Min: задают границы поля в координатах G53 (например, 0.0 и 1200.0 мм).
- Slow Zone: зона торможения перед программным лимитом от 5 до 15 мм.
- Home Off: дистанция смещения машинного нуля от концевого датчика.
- Home Neg: задает знак поиска базы (для оси Z флаг всегда выключен).
- Speed %: скорость наезда на базу от 10% до 20% от максимума оси.
Процесс базирования станка соответствует международным нормам ISO 6983 и DIN 66025. При нажатии кнопки Ref All Home станок запускает цикл выхода в ноль. Сначала вверх уходит ось Z до срабатывания датчика. Каретка съезжает на 2 мм назад и обнуляет координату. Затем в ноль выходят оси Y и X. После этого оператор нажимает Soft Limits на экране. ЧПУ начинает блокировать любые кадры, выходящие за пределы стола.
Автокалибровка шагов и скрипты Visual Basic для датчика высоты
Удобное подключение датчика высоты инструмента mach3 автоноль автоматизирует привязку вылета фрезы к заготовке через контактный щуп. Мы внедряем скрипт автопоиска нуля z visual basic mach3 в кнопку Auto Tool Zero интерфейса. Скрипт запускает цикл измерения G31 с контролем касания пластины. А встроенный мастер Set Steps per Unit на вкладке Settings позволяет скорректировать шаги по показаниям индикатора часового типа.
Для точной калибровки мы открываем вкладку Settings (Alt-6) и нажимаем кнопку Set Steps per Unit. Программа запрашивает ось и тестовую дистанцию. Мы упираем в каретку индикатор часового типа с точностью 0.01 мм и даем команду проехать 10 мм. Реальное смещение со стрелки мы вводим в окно диалога. Программа сама пересчитает шаги и запишет результат в профиль станка.
Для обмера инструмента по оси Z мы применяем металлическую пластину, подключенную к входу Probe (Pin 15) и массе станка. В меню Operator открываем Edit Button Script и кликаем по мигающей кнопке Auto Tool Zero. В открывшееся окно редактора мы вставляем проверенный скрипт на Cypress Visual Basic:
' -------------------------------------------------------------
' Скрипт автоматического поиска нуля детали по оси Z (Auto Tool Zero)
' -------------------------------------------------------------
PlateThickness = 14.25 ' Точная толщина контактной пластины в мм
ProbeFeed = 150 ' Скорость опускания щупа (мм/мин)
FastFeed = 800 ' Скорость быстрого отвода фрезы (мм/мин)
RetractDistance = 10.0 ' Высота безопасного отскока над пластиной
MaxTravel = -50.0 ' Максимальная глубина поиска контакта
If GetOemLed(825) <> 0 Then
Message "Ошибка: щуп Probe уже замкнут перед началом измерения!"
Exit Sub
End If
Message "Поиск нуля Z: опускание инструмента..."
Code "G91 G31 Z" & MaxTravel & " F" & ProbeFeed
While IsMoving()
Sleep 100
Wend
If GetOemLed(825) = 0 Then
Message "Ошибка: контакт с пластиной Probe не достигнут!"
Code "G90"
Exit Sub
End If
ZProbePos = GetVar(2002)
Code "G90"
Code "G0 Z" & ZProbePos
While IsMoving()
Sleep 100
Wend
Call SetDro(2, PlateThickness)
Sleep 200
Message "Подъем на безопасную высоту..."
Code "G0 Z" & (PlateThickness + RetractDistance) & " F" & FastFeed
While IsMoving()
Sleep 100
Wend
Message "Ноль детали по Z успешно установлен!"Для чистовой 3D-обработки мы настраиваем планировщик траекторий в меню Config -> General Logic. Режим Constant Velocity (CV Mode, код G64) сохраняет непрерывную скорость подачи на стыках векторов. Это защищает заготовку от следов прижогов фрезы. Режим Exact Stop (код G61) принудительно останавливает инструмент в конце каждого кадра. Это дает идеальные углы, но сильно увеличивает вибрации станка.
После завершения пусконаладки мы обязательно сохраняем файл профиля. Вся распиновка пинов, настройки скоростей и макросы хранятся в файле XML в корне каталога C:\Mach3 (например, Mach3Mill.xml). Мы копируем этот файл на резервную флешку. При смене компьютера станок возвращается в строй за две минуты после переноса файла профиля.
