Кратко
Шаговик пропускает шаги, когда нагрузка превышает его момент на этой скорости или когда сигнал не доходит до обмоток: контроллер не успевает давать импульсы, драйвер выставлен на малый ток, питание слишком низкое, в линию проникли помехи, в оси заклинило механику. Причину находят тестом возврата в ноль по индикатору, меняя по одному параметру.
- Потеря шагов видна по накапливающемуся смещению: ось вернулась в ноль, а индикатор показывает 0,3 мм. Постоянная пропорциональная ошибка (100 мм превращаются в 99) это не пропуск, а неверное число шагов на миллиметр.
- Первым проверяют самое дешёвое: частоту импульсов контроллера. ШВП 1605 с микрошагом 1/8 на подаче 6 м/мин требует 32 000 импульсов в секунду, а Mach3 по умолчанию работает на 25 000.
- Ток драйвера и напряжение питания определяют момент на скорости. Упрощённый расчёт для двигателя 2,5 мГн показывает, что 24 В на 2000 об/мин дают половину номинального тока, а 48 В весь.
- Резонанс ищут по признаку: ось вибрирует на одной скорости, а выше и ниже ходит ровно. Лечат микрошагом и сменой ускорения, а не новым двигателем.
- Меняют один параметр за раз и повторяют тест на 50 циклов: так причина находится за час, а не за неделю.
Оборудование
- индикатор часового типа со стойкой
- мультиметр
- отвёртка для переключателей драйвера
- инфракрасный термометр
- рулетка или штангенциркуль
Материалы
- маркер
- малярный скотч
- запасной экранированный кабель
Время
≈ 90 мин
Как отличить пропуск шагов от других ошибок
Прежде чем разбирать станок, стоит понять, что именно произошло. Не всякий сдвиг размера означает потерю шагов.
| Признак | Что это скорее всего |
|---|---|
| Ось не возвращается в ноль, смещение растёт от цикла к циклу | пропуск шагов |
| Размер по оси всегда меньше или больше на один и тот же процент (100 мм превратились в 99) | неверное число шагов на миллиметр в настройках |
| Сдвиг появляется только на быстрых переездах G0 | не хватает момента или частоты импульсов на высокой скорости |
| Сдвиг только в одну сторону | заклинивание механики, натяг ремня, неровность направляющей |
| Ось вибрирует и гудит на одной скорости, на других ровная | резонанс двигателя |
| Сдвиги случайные, чаще при включении шпинделя | электрические помехи |
| Сдвиги появляются через 20–30 минут работы | перегрев двигателя или драйвера |
| Сдвиг сразу на всех осях на одинаковую величину | сбой в контроллере или программе, а не в двигателе |
Число шагов на миллиметр считают так: для двигателя 200 шагов на оборот, микрошага 1/8 и ШВП с шагом 5 мм получается 200 × 8 / 5 = 320 импульсов на миллиметр. Если в настройках контроллера стоит другое число, размер уедет пропорционально, а двигатель при этом работает исправно.
Проверять число импульсов лучше на длинном ходе. Выберите люфт, отметьте ноль, пройдите 1000 мм, сравните факт по линейке с цифрой на экране и пересчитайте значение пропорцией. В NC Studio параметр обратный: там вводят миллиметры на импульс, а не импульсы на миллиметр.
Отдельный случай, когда деталь всегда больше на одну и ту же величину при любых размерах, например на 0,2 мм на сторону. Такая ошибка с длиной не растёт, поэтому импульсами её не лечат. Её правят диаметром фрезы в траектории, а люфт проверяют индикатором с ценой деления 0,01 мм. Ошибка, которая растёт вместе с длиной, как раз лечится числом импульсов.
Тест возврата в ноль
Он отделяет пропуск шагов от всего остального и показывает, в какую сторону копать. Сделать его можно на любом станке: нужен индикатор часового типа на стойке, который упирается в портал или каретку в точке нуля.
Тест на 50 циклов
- 01
Выведите ось в ноль
и закрепите индикатор так, чтобы измерительный наконечник упирался в подвижную часть вдоль оси. Выставьте на индикаторе 0.
- 02
Запустите программу
с повторением кадров туда и обратно на рабочей подаче, как в примере ниже.
- 03
Дождитесь конца
и посмотрите на индикатор. Если показание вернулось к 0 с разбросом до 0,02–0,03 мм (ориентир, это люфт и повторяемость механики), шаги не теряются.
- 04
Если показание ушло
, запишите величину и направление, затем меняйте по одному параметру из разделов ниже и каждый раз повторяйте тест.
Пример программы под LinuxCNC (в Mach3 и других стойках повторение делают подпрограммой или командой цикла):
G21 G90 G94
G0 X0 Y0
o101 repeat [50]
G1 X400 F6000
G1 X0 F6000
o101 endrepeat
M30Оператор repeat описан в документации LinuxCNC. 50 циклов по 800 мм на подаче 6000 мм/мин занимают 40 000 / 6000 = 6,7 минуты. Этого достаточно, чтобы мелкая систематическая потеря накопилась до заметной величины: пропуск в один шаг при 0,003 мм на микрошаг за 50 циклов никто не увидит, а один пропущенный полный шаг (0,025 мм на ШВП 1605) уже виден по индикатору.
Тест повторяют на разных подачах, например 2000, 4000 и 6000 мм/мин. Если ошибка растёт только на высокой, виноваты момент или частота импульсов. Если на любой, смотрят механику, ток и помехи.
Контроллер не успевает давать импульсы
Самая частая причина на самосборных станках с компьютерным управлением. Каждый шаг двигателя это один импульс, и количество импульсов в секунду зависит от подачи и числа шагов на миллиметр.
| Ось | Шагов на мм | Подача | Частота импульсов |
|---|---|---|---|
| ШВП 1605, микрошаг 1/8 | 320 | 6 м/мин (100 мм/с) | 32 000 Гц |
| ШВП 1605, микрошаг 1/8 | 320 | 10 м/мин (166,7 мм/с) | 53 333 Гц |
| ШВП 1605, микрошаг 1/16 | 640 | 6 м/мин | 64 000 Гц |
| Ремень GT2, шкив 20 зубьев (40 мм за оборот), микрошаг 1/16 | 80 | 10 м/мин | 13 333 Гц |
| Рейка, шестерня 36 мм, редуктор 5, микрошаг 1/8 | 70,7 | 20 м/мин (333,3 мм/с) | 23 579 Гц |
Mach3 по умолчанию работает на 25 000 Гц, а до 100 000 Гц частоту поднимают, если хватает мощности процессора; в руководстве сказано, что с драйвером на 10 микрошагов при 25 000 Гц стандартный двигатель 1,8° даёт около 750 об/мин (Mach3, Software Installation and Configuration). Проверим на примере: на ШВП 1605 при 1/8 максимальная подача при 25 000 Гц равна 25 000 / 320 = 78 мм/с, то есть 4,7 м/мин. Всё, что выше, контроллер физически не сможет передать, и ось ведёт себя как будто теряет шаги. В LinuxCNC при программной генерации шагов предел это один шаг на два периода базового потока, а если запрошенная частота недостижима, возникают ошибки слежения, особенно на быстрых переездах G0 (документация LinuxCNC).
Если драйвер уходит в ошибку именно на быстрых холостых ходах, сверьте частоту импульсов с пределом его входа: у цифровых драйверов он нередко около 200 кГц (у Leadshine DM556 это указано в паспорте), а у дешёвого пульта собственный потолок ниже.
Лечат это тремя способами: уменьшить микрошаг (1/8 вместо 1/16, а это потеря разрешения, не критичная для станка по дереву), понизить максимальную скорость в настройках оси до рассчитанной или перейти на внешний контроллер с аппаратной генерацией импульсов (Ethernet-контроллеры, платы с FPGA, DSP-стойки). Для станков с DSP-пультом и платами управления в комплекте ограничение по частоте указано в паспорте контроллера.
Не хватает момента на скорости
Об удерживающем моменте и кривой «момент — обороты» подробно написано в статье про выбор шагового двигателя и серво. Здесь важны два вывода для диагностики.
Первый: ускорение сильнее скорости влияет на потерю шагов, потому что на разгоне нужен момент на массу. Для портала 60 кг на ШВП 1605 с КПД 0,9 моменты только на разгон такие:
| Ускорение, м/с² | Сила на разгон, Н | Момент на валу, Н·м |
|---|---|---|
| 0,5 | 30 | 0,027 |
| 1 | 60 | 0,053 |
| 2 | 120 | 0,106 |
| 5 | 300 | 0,265 |
Тут не учтены трение направляющих, сила резания, инерция ротора и винта, поэтому реальный момент выше. Но в сравнении видно, как быстро растёт нагрузка: при 5 м/с² на разгон уходит 0,27 Н·м из 1,3–1,4 Н·м удерживающих у двигателя NEMA 23, а на оборотах таких двигателей остаётся лишь доля этого. Если потери шагов исчезают при снижении ускорения вдвое, причина в моменте.
Второй: напряжение питания драйвера определяет, на каких оборотах двигатель сохранит момент. Для двигателя с обмоткой 2,5 мГн и 0,9 Ом, током 2,8 А (пример: Pololu, 1474) на 2000 об/мин полный шаг длится 150 мкс. Простая модель нарастания тока в индуктивной обмотке без противо-ЭДС даёт за это время при 24 В около 1,4 А, при 48 В около 2,8 А. Ток вдвое меньше, момент вдвое меньше. Поднять напряжение можно, если драйвер это допускает: у A4988 предел 35 В, у DRV8825 45 В (Pololu, 2133).
Неверный ток драйвера
Ток выставляют переключателями или подстроечным резистором. Тут два типичных промаха.
Ток занижен. Паспорт драйвера указывает пиковый ток в амперах или действующий (RMS). Двигатель на 2,8 А на фазу по паспорту, выставленный на 2,0 А, потеряет около 29% момента: 2,0 / 2,8 = 0,71. Это ровно соотношение действующего и пикового значения (1/√2) на случай, если их перепутать. Всегда сверяйте единицы в паспорте драйвера и двигателя.
Ток завышен. Двигатель и драйвер перегреваются, а на дешёвых модулях типа A4988 при слишком большом токе микрошаги перестают отрабатываться корректно: Pololu прямо пишет, что при токе выше предела ограничения двигатель будет пропускать микрошаги (Pololu, A4988). Напряжение опорного входа считают так: V_REF = 8 × I_MAX × R_CS, для плат Pololu с датчиком 0,068 Ом и тока 1 А это 544 мВ.
Проверка простая: измерьте напряжение на опорном входе мультиметром, пересчитайте в ток и сверьте с паспортом двигателя. Расхождение между тем, что нужно двигателю, и тем, что выставлено на драйвере, на практике достигает полутора раз.
Отдельно смотрят ток удержания. В паузах многие драйверы сами снижают ток примерно вдвое, и если винт в простое проворачивается рукой, а ось после остановки смещается, ток удержания выставляют равным рабочему. Если двигатель в простое слишком греется, снижение до 50 % наоборот включают.
Двигатели подключают и отключают только на обесточенном станке: драйвер, к которому обмотки подцепили под напряжением, может выйти из строя, а на дешёвых платах и загореться.
Тайминги сигналов step и dir
Драйвер принимает импульс только определённой длительности. У A4988 высокий и низкий уровни STEP должны быть не короче 1 мкс, у DRV8825 не короче 1,9 мкс (Pololu, 2133). Промышленные драйверы указывают время установки сигнала направления перед фронтом шага и его удержание после, обычно единицы микросекунд (смотрите паспорт конкретной модели). В LinuxCNC за это отвечают параметры steplen, stepspace, dirsetup и dirhold в наносекундах (man stepgen).
Признак ошибки: ось теряет шаги именно при смене направления или на высокой частоте, а скорость и ускорение в порядке. В Mach3 значения Step pulse и Dir pulse не оставляют нулевыми: хватает около 5 мкс, иначе медленные оптроны драйвера теряют слишком короткий импульс. На дешёвом TB6600 при смене направления, особенно по Z, ось нередко уходит в одну сторону из-за медленной оптопары на входе Dir. Тогда Dir pulse поднимают до 10–15 мкс и проверяют полярность Step по схеме подключения. Число шагов на единицу считают из шага двигателя, микрошага и шага винта, а чужой профиль не копируют. Лечат увеличением dirsetup и длительности импульса вдвое от паспортного минимума и повторением теста. Если после этого сдвиг исчез, значит, драйвер раньше не успевал прочитать сигнал.
Резонанс
У шагового двигателя есть собственная частота, которую определяет момент инерции ротора с нагрузкой и жёсткость поля в обмотках. Когда частота шагов совпадает с ней, ротор раскачивается, и на полных шагах двигатель может перескочить на четыре положения вперёд и оказаться в неверной точке (Wikipedia, Stepper motor). Микрошаг возбуждает резонанс значительно слабее, и это одна из главных причин, по которым его включают.
Признак: на одной скорости ось сильно вибрирует и гудит, выше и ниже ходит ровно. Что делать: перейти с полного шага на 1/8 или 1/16, сменить скорость так, чтобы она не лежала в зоне резонанса, добавить демпфер на вал двигателя, использовать драйвер с функцией антирезонанса. Менять двигатель из-за резонанса приходится редко.
Механика
Если электрика исключена, остаётся механика. Проверка проста: отключите двигатели и проверьте руками ход каждой оси.
- Заклинивание. Ось должна идти от руки ровно, без рывков и участков тугого хода. Туго идёт в одну сторону: перекос направляющих, зажатая гайка ШВП, грязь в каретках.
- Муфта. Муфта между валом двигателя и винтом должна сидеть на обоих валах без проворота: стопорные винты упираются в лыски. Если вал в муфте проворачивается, двигатель вращается, а ось стоит: пропуск шагов без видимых причин. Отметьте маркером положение муфты на винте и на валу и посмотрите, не сдвинулась ли метка после теста.
- Ремень. Ремень с малым натягом перепрыгивает зубья на разгоне, с большим перегружает подшипник двигателя. Если на двигателе стоит сильно натянутый шкив нагруженной оси, вал рискует сломаться от усталости: такую ось выносят на собственные опоры и соединяют с двигателем муфтой. Шкив на валу фиксируют двумя винтами под 90° на лыски, лучше шпонкой, а на нагруженных осях добавляют анаэробный фиксатор. Профиль ремня и шкива подбирают парой, об этом в статье про шкивы и звёздочки.
- Винт. Погнутый или плохо выставленный винт даёт тугие участки хода, и нагрузка на двигатель на них резко растёт. Люфт гайки лечат заменой гайки или второй гайкой с преднатягом, осевой люфт винта — парой радиально-упорных подшипников в опоре. Программная компенсация люфта в контроллере годится как временная мера: на шаговом приводе она рискует добавить пропуски.
Если круг превратился в овал или деталь вышла меньше модели, идут по порядку: люфты и ремни, перекос портала (диагонали должны быть одной длины), шаги на миллиметр по линейке и только потом постпроцессор. Диаметр фрезы в базе CAM сверяют с реальным: 3 и 3,175 мм путают, как и диаметр с радиусом.
Помехи и проводка
Самый вредный источник помех на станке это частотный преобразователь шпинделя и его кабель. Он создаёт широкополосные наводки, которые попадают в провода step и dir, и драйвер читает лишний импульс или пропускает настоящий.
Что проверяют:
- кабель двигателя и сигнальные провода идут отдельно от кабеля шпинделя, минимум в разных гофрах, лучше в разных каналах;
- сигнальные провода и кабель двигателя экранированные, экран заземлён с одной стороны;
- у шпинделя на входе частотника стоит сетевой фильтр, на выходе дроссель (подробнее о шпинделе в статье про его выбор);
- вход драйвера на 5 В не запитан от 24 В без резистора;
- корпус станка и экраны подключены к защитному заземлению, а сеть не проседает при пуске шпинделя (электричество в цеху).
Признак помех: пропуски случаются при пуске шпинделя и пропадают, если запускать программу без шпинделя. Проверка: прогнать тот же тест на 50 циклов с включённым шпинделем и без. Если с шпинделем есть сдвиг, без него нет, виновата проводка.
Отдельный случай — скрытый обрыв жилы в кабель-цепи. Прозвонка в покое его не покажет, потому что жила размыкается только на изгибе. Если драйвер сам уходит в ошибку, ось едет в одну сторону или шаги теряются в одном и том же месте хода, подключите двигатель коротким временным проводом мимо цепи. Ошибка ушла — меняйте кабель целиком, а не ищите место излома. В цепи нужен кабель, рассчитанный на многократные изгибы, сечением не тоньше проводов двигателя: монтажный провод для этого не годится.
Перегрев
Двигатель, который работает на предельном токе, греется, и чем он горячее, тем выше сопротивление обмотки и ниже ток при том же напряжении. Драйверы с защитой по температуре при перегреве отключаются или снижают ток, и ось теряет момент без предупреждения. Корпус шагового двигателя при номинальном токе нередко доходит до 70–80 °C (ориентир, смотрите паспорт; изоляция обмоток класса B допускает до 130 °C), и это не признак поломки. Но если сдвиги появляются через 20–30 минут после начала работы и пропадают после остановки, замерьте температуру корпуса инфракрасным термометром и снижайте ток по паспорту, добавляйте обдув или радиатор.
Двигатели редко виноваты в первую очередь. Чаще пропуск шагов приходит от настройки, которой никто не делал: ток по умолчанию, напряжение от блока, который был под рукой, микрошаг, выбранный для красоты.
Сергей ОрловИнженер по промышленной автоматизации и робототехникеПорядок поиска причины
Идти надо от дешёвого к редкому. Сначала сверяют число шагов на миллиметр и частоту импульсов, затем повторяют тест с ускорением вдвое меньше: исчезла ошибка, значит, дело в моменте. Дальше проверяют ток и напряжение драйвера, прогоняют тест без шпинделя (исчезла, значит, помехи), отсоединяют двигатель и крутят ось руками (туго, значит, механика), смотрят метки на муфте и в последнюю очередь разбираются с резонансом. Если менять два параметра сразу, причина остаётся скрытой: неясно, какое из изменений помогло. Чтобы отделить электрику от механики, меняйте местами два одинаковых узла: драйверы, двигатели или сигнальные кабели на плате. Если сбой переехал вместе с драйвером, виноват драйвер; если остался на прежней оси, смотрите кабель, двигатель и механику; если перешёл на другую ось вместе с сигналом, виновата плата управления. Как вводить станок в работу после покупки, описано в плане первых трёх месяцев, а как читать и править программу, в статье про G-код.
Если все проверки сделаны, а пропуски остались, меняют схему: переходят на замкнутый шаговый привод или серво. Они не убирают причину, но превращают тихую потерю в аварию.
Частые вопросы
Почему шаговый двигатель пропускает шаги?
Причин восемь: контроллер не успевает давать импульсы, нагрузка выше момента двигателя на этой скорости (при низком напряжении питания момент падает раньше), ток драйвера выставлен неверно, драйвер не успевает распознавать сигналы step и dir, двигатель попал в резонанс, механика заклинивает, в линию попали помехи, двигатель или драйвер перегреваются. Причину ищут тестом возврата в ноль, меняя по одному параметру.
Как понять, что шаговик пропускает шаги?
По накапливающемуся смещению нуля. Выведите ось в ноль, поставьте индикатор, прогоните 50 циклов туда-обратно на рабочей подаче и вернитесь в ноль. Показание индикатора, ушедшее больше, чем на 0,02–0,03 мм, и растущее от цикла к циклу, означает потерю шагов. Постоянная ошибка в процентах это неверное число шагов на миллиметр.
Какой ток ставить на драйвере шагового двигателя?
Номинальный ток фазы из паспорта двигателя. Главное, чтобы совпали единицы: паспорт драйвера указывает либо пиковый, либо действующий ток, и разница составляет 1,41 раза. На платах A4988 от Pololu опорное напряжение считают по формуле V_REF = 8 × I × R_CS.
Влияет ли напряжение питания на пропуск шагов?
Да. Чем выше напряжение, тем быстрее нарастает ток в обмотке, и тем дольше двигатель сохраняет момент на высоких оборотах. Упрощённо для двигателя 2,5 мГн на 2000 об/мин 24 В дают около 1,4 А, 48 В около 2,8 А. Но напряжение не должно превышать предел драйвера: у A4988 это 35 В, у DRV8825 45 В.
Источники
- Stepper motor ↗ — Wikipedia, актуальная версия
- Stepper Configuration ↗ — документация LinuxCNC, максимальная частота шагов
- stepgen ↗ — документация LinuxCNC, параметры steplen, stepspace, dirsetup, dirhold
- O-codes ↗ — документация LinuxCNC, оператор repeat
- A4988 Stepper Motor Driver Carrier ↗ — Pololu Robotics & Electronics, ограничение тока и пропуск микрошагов
- DRV8825 Stepper Motor Driver Carrier ↗ — Pololu Robotics & Electronics, длительность импульса STEP и предел напряжения питания
- Mach3 CNC Controller, Software Installation and Configuration ↗ — ArtSoft USA, руководство, версия 3, 2008
Фото: DotEagle / Wikimedia Commons, CC BY-SA 4.0

Автор
Сергей ОрловИнженер по промышленной автоматизации и робототехнике, 11 лет в отрасли
Одиннадцать лет внедряет промышленных роботов и автоматизирует участки на производстве. Пишет о робототехнике, мониторинге оборудования и цифровом производстве.
Все материалы автора →Как мы готовим материалы — в редакционной политике. Нашли ошибку? Напишите нам.
В этом разделе: Приводы, двигатели и электроника
Все →Комментарии
Пока никто не написал. Задайте вопрос — автор или эксперты редакции ответят.
Написать комментарий








