Пропуск шагов
(кратко и фрагментарно о пропусках шагов, их причинах, поисках и устранении причин)Побочным результатом описанного раннее
сверхточного Home датчика является то, что его пластинку можно использовать для поиска причин пропуска шагов, если сделать другой конец пластинки в виде стрелки.
Например, какая-то из осей с шаговым двигателем пропускает шаги, хотя с её механикой всё в порядке.
Пишут, что двухфазный шаговый двигатель может пропускать шаги только порциями по 4 полных шага. Мне не совсем понятно, почему только порциями по 4 полных шага. Однако очевидно, что шаговый двигатель может пропустить только целое число полных шагов. Он не может пропустить несколько микрошагов, не кратных полному шагу.
Подробнее:
Поставили ось в 0, вырезали какое-то изделие, и снова поставили эту ось в 0.
Если от Mach3 до драйвера доходят все сигналы без искажений, то в конечном нуле (после резки) драйвер подаёт на мотор те же токи, что и в начальном нуле (до резки), т.к. положение оси предполагается тем же, т.е. ноль. Т.к. драйвер подаёт на мотор те же токи, то мотор повёрнут на то же число микрошагов (относительно начала целого шага). Например, если в процессе резки остановить на некоторое время мотор, схватив его вал пассатижами, то он пропустит сколько-то шагов. Но в конечном нуле (после резки) он будет повёрнут на то же число микрошагов относительно начала целого шага, что и в начальном нуле (до резки), потому что драйвер подаёт на мотор те же токи.
Резюме:
Если от Mach3 до драйвера доходят все сигналы без искажений, то пропущены могут быть только полные шаги. Значит, если пропущены микрошаги, т.е. не целые полные шаги, то значит сигналы искажаются где-то на пути от Mach3 до драйвера.
На незадействованный конец вала мотора прикрепляем стрелку (примерно как пластинку на рисунках
сверхточного Home датчика), а под неё на торец мотора лепим круговую шкалу с 200 делениями – по числу полных шагов на оборот мотора (убедившись, конечно, что в Вашем моторе 200 шагов на оборот). При достаточно большой шкале положение стрелки внутри одного деления хорошо различимо глазом. Сравниваем положение стрелки в начальном нуле (до резки) и в конечном нуле (после резки). Если пропущено не целое число полных шагов, то это можно заметить по разному положению стрелки внутри деления.
Таким образом можно предположить, где теряются шаги: искажается сигнал на пути от Mach3 до драйвера (пропущено не целое число полных шагов), или шаги теряются уже после драйвера.
Если после драйвера, то первым делом, конечно, нужно сравнить резку с воском и без воска. Может, фреза с трудом входит в воск. Типичным проявлением этого является уползание Z в плюс. Или ось слишком тяжёлая, т.е. слишком инерционная, для данной мощности мотора. Тогда это покажет простой тест, в котором ось в течение долгого времени постоянно ходит туда-сюда: туда неспеша одним движением с малой скоростью, обратно несколькими рывками на полной скорости с остановками между рывками (а для поворотной оси – просто рывками в одну сторону). Интересно, кстати , будет поменять направления плавного движения и рывков: может, в конструкции есть какая-то несимметричность.
В этих двух случаях должны помочь увеличение тока с драйвара на мотор и уменьшение скорости (в первом случае) и/или ускорения (во втором случае), если конечно драйвер/мотор не слишком слабые.
Расстояние между рывками в вышеупомянутом тесте должно быть таким, конечно, чтобы ось успевала разгоняться до полной скорости. При скорости 600 мм/мин и ускорении 100 мм/сек2 ось достигает максимальной скорости на расстоянии 0.5 мм, 1200 мм/мин и 200 мм/сек2 – 1 мм, 1800 и 50 – 9 мм.
Моторные провода, понятное дело, должны быть правильные: витая пара и/или экран с соответствующим заземлением. Только производитель драйверов может сказать, какие провода лучше для их драйверов. Но обычно производитель драйверов по этому поводу молчит, как рыба об лёд. Tech Support Лидшайна несёт по этому вопросу такую ахинею, что лучше бы молчал. Исключением является Gecko, который чётко и ясно излагает
Reducing RF Interference. Их рекоммендации будут работать и с другими драйверами.
Обратите внимание, что речь там идёт о шуме FROM Гекко драйверов, а не о защите дравера/провода/мотора от внешнего шума. Это подчёркивает необходимость заземления экрана кабеля на корпус. Незаземлённый экран может защитить провод от внешнего шума, работая как клетка Фарадея (в Википедии ошибочно сказано, что
клетка Фарадея должна быть заземлена). Но для шума, исходящего от кабеля в окружающую среду, незаземлённый экран – как мёртвому припарка.
Следующим шагом можно поменять напряжение, подаваемое на драйвер, если драйвер позволяет. Неискушённый станкостроитель может сказать: Как вообще влияет напряжение драйвера? Мощность мотора зависит от тока. Если, например, ток должен быть 1 A, то драйвер подаёт на мотор такое напряжение, какое создаёт ток 1 A. Учи закон Ома: I=U/R.
Матёрый станкостроитель ответит так: Закон Ома – это для блондинок. А нормальные ювелиры знают, что I(t)=U*t/L. Т.е. величина тока не устанавливается мгновенно, а растёт со временем от нуля, пропорционально напряжению и обратно пропорционально индуктивности. Внутри шагового двигателя есть этектромагниты, т.е. катушки. Катушки обладают индуктивностью. Если слово «индуктивность» не привычно уху, то можно заменить его словами «инерция тока». Это по сути не менее верно. Подмена понятий в данном случае сути не меняет. Итак, ток в катушке обладает инерцией. Он не может возрасти мгновенно. При подаче напряжения он от нуля постепенно увеличивается. Чем больше напряжение, тем быстрее ток увеличивается. Если напряжение небольшое, то ток к концу шага может и не вырасти до нужной величины, т.е. мотор не провернётся. А при бОльшем напряжении ток вырастет быстро, и мотор повернётся куда надо когда надо. В начале шага драйвер подаёт на мотор всё напряжение, которое даёт источник питания. Как только ток достигает нужного значения, драйвер обрубает напряжение до определённой величины, и дальше уже ток постоянный и да, работает закон Ома.
При бОльшем напряжении ток изменяется быстрее, соответствено помехи от него больше.
Например, драйвер может работать с напряжением от 10 V до 40 V. Режем тест сначала при 12 V, потом тот же тест при 36 V. Если стало лучше, значит дело было в несоответствующем мотору напряжении. Gecko даёт формулу расчёта оптимального напряжения блока питания (однако оно часто оказывается выше допустимого для драйвера+мотора):
V=32*Sqrt(L)
где V – напряжение в вольтах, L – индуктивность в mH (в миллигенри),
или упрощённо – от 4 до 20 раз больше напряжения, указанного на моторе.
Если стало хуже, значит дело в помехах от тока моторов.
Самое чувствительное к помехам место – провода от контроллера к драйверу, если они есть. Нет причин не сделать провода питания драйверов витой парой или так же, как моторные провода. Если для разных компонентов станка используются разные источники питания, то нет причин не сделать ground не общим, а сделать их ground’ы раздельными, но соединить эти ground’ы через choke миллигенри примерно так на 20-50. Нет причин стягивать разнородные провода (питания, моторные, контроллер-драйвер) в один пучок. Нет причин ломать витую пару: сгибать её с радиусом меньше допустимого радиуса изгиба (обычно это 4-5 диаметров провода, т.е. 1”).
Пищу для размышлений может дать также тестовый мотор. На 5-осевом станке делается тест без участия одной оси, неучаствующий мотор отсоединяется, и вместо него присоединяется тестовый мотор (и возможно драйвер). На 4-осевом станке просто присоединяется пятый мотор. Тестовый мотор делается с идеальными максимально короткими проводами, и мотор просто стоит на торце на столе или ещё где. Например, мы исследуем ось Z, а тестовый мотор присоединён как B. Тогда к обоим этим моторам прикрепляется стрелка и шкала. В Mach3 для B делаются все установки такими же, как для Z, и в Formulas пишется B=Z. Тогда Mach3 будет посылать на Z и B идентичные сигналы. После теста смотрится по стрелкам, одинаково ли эти моторы пропустили шагов, и делаются выводы.
Неискушённый станкостроитель 4-осевого станка может спросить: какой нафиг 5-й мотор, если контроллер 4-осевой? Матёрый станкостроитель, искушённый в маркетинговых кознях производителей электроники, ответит: если есть на контроллере два неиспользуемых outputs, то вот вам и 5-я ось (нужны, конечно, ещё и мотор и драйвер). Например, в Mach3 прописываем pins 1 и 17 как Dir и Step для B, с соответствующих этим pins контактам контроллера (и с + или ground) ведём провода к драйверу. Вот так лёгким движением паяльника 4-рёх осевой контроллер превращается в 5-яти осевой. На нескольких разных контроллерах это прекрасно работало. Обычно выходы на драйверы сделаны в контроллере по-другому, чем outputs, как то сделан 3-state buffer, etc. Но, видимо, 3rd state там нужен как собаке 5-я лапа.
Если шаги пропадают на пути от Mach3 до контроллера, то в Mach3 можно попробовать увеличить длину Step Pulse и Dir Pulse вплоть до максимального воспринимаемого значения 15 – это в Config / Motor Tuning, отдельно для каждой оси. А также сделать длину максимальной, включив Sherline 1/2 Pulse mode – это в Config / Ports and Pins, страница Port Setup and Axis Selection. На этой же странице можно увеличить Kernel Speed до максимума – 100 kHz. Если связь компьютера то станком идёт через Ethernet или USB, то можно попробовать уменьшить Max Step Frequency до минимума – это в PlugIn Control, если вообще есть. Если связь компьютера cо станком идёт прямо через LPT порт, то это тяжёлый случай, потому что нет возможности увидеть, что связь со станком потеряна, т.к. после потери связи и её возобновления Mach3 продолжает работать как ни в чём не бывало, хотя во время потери связи данные посылались в никуда.
Если помехи возникают от реле в момент выключения, то это лечится диодом. СтОят диоды копейки. В электромеханическом реле есть электромагнит, т.е. катушка, которая обладает индуктивностью. Используем использованную ранее аналогию индуктивности с инерцией. Пусть реле включено, тогда в нём по катушке толпой несутся электроны. Выключаем реле, т.е. на конце катушки контакт размыкается, т.е. образуется воздушный промежуток. Электроны по инерции прут к концу катушки, а там бах – пути дальше нет. А электроны всё прут по инерции. Задние напирают на передних. Давление на передних невыносимо. И тогда они как ломанутся по воздуху через разомкнутый контакт! А за ними по образованной ими плазме и остальные. Получается искра, т.е. маленькая молния с такими помехами, что все помехи от моторов etc кажутся детскими шалостями электромагнитного поля. Даже если электроны не ломанулись по воздуху, а резко остановились перед разомкнутым контактом, то ток остановился резко, т.е. магнитное поле изменилось резко, своим резким изменением наведя наводки на всё вокруг.
Для предотвращения этого между концами катушки ставится диод. Если электроны идут по катушке от её конца A к другому концу B, то диод ставится так, что электроны могли бы пройти по нему обратно от B к A. Но электроны так не пойдут, потому что это было бы против напряжения. Напряжение ведь гонит их от A к B. Т.е. в этом состоянии диод никак ни на что не влияет. Теперь выключаем реле. Электроны, как и в прошлый раз, подлетают в концу B, а там снова та же засада, путь прерван. Но тут они смотрят – диод отркрыт от B к A! И встречного напряжения уже нет! И они в диод. И дальше по катушке по кругу. Побегали по кругу, угомонились, вследствие сопротивления ток угас. Угас он постепенно, а не резко, как в прошлый раз, так что наводок практически не навёл. Электроны в катушке остановились плавно, электронов в других частях электроники ничто не побеспокоило, все электроны счастливы. И вам желаю того же.