Страница 1 из 3
Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 07 дек 2018, 11:55
Kinghandles
Форумчане, добрый день !
Подскажите, такой вопрос:
Имеется станок 2400 на 1600
По Оси Х стоят два шаговых двигателя (Х с подчиненной осью А)
Очень хотелось бы настроить синхронизацию этих двигателей, на случай, если произойдет пропуск шага на одном из них.
ШД разведены, и программно, через MACH3 подчиненны.
Датчики разведены по разным пинам. Ось А свой датчик, Ось Х свой датчик.
В моем понимании, это должно происходить следующим образом:
1) Нажимаем на кнопку HOME.
2) Оба двигателя начинают вращаться в сторону датчиков.
3) В случае перекоса портала, один из моторов должен доехать до своего датчика и остановиться, второй мотор должен ехать дальше, пока не доедет до своего датчика, после того, как оба двигателя доехали до своих датчиков, должны, одновременно, откатиться на определенное расстояние (допустим 5мм)
На данный момент, реализовать такой алгоритм действий - не получается. И выходит, следующее:
0) Ось А не реагирует на свой датчик.
1) Нажимаем на кнопку HOME.
2) Оба двигателя начинают вращаться в сторону датчиков.
3) Ось Х доезжает до своего датчика и оба мотора останавливаются, и откатываются назад, соответственно, в случае, если произошел перекос портала, и ось А захочет приехать первой до своего датчика(на который она не реагирует), то она не остановиться, а поедет за пределы станка, пока ось Х не доедет до своего датчика. Или же, Ось Х приедет первой, а ось А не доедет до своего датчика, и соответственно, перекос не исправится.
4) Ось А начинает отдельно ехать на свой датчик( ось Х стоит ) и косить портал. Реакции на датчик нет. спасет только ЕСТОП
Настройка Ось Х и оси А на один датчик ситуацию не меняет. В любом случае, останавливаются оба мотора, что происходить не должно. Возможно надо менять скрипт кнопки HOME ( чего, к сожалению, без посторонней помощи, я сделать не смогу, так как, его не изучал )
На борту:
Шаговые двигатели Leadshine 12 N.М.(+86CM120) - 4шт.
Драйвера Leadshine AM882H - 4шт.
Контроллер MACH3-USB на 5 осей - 1шт.
Блок питания 70V, 10А - 4шт.
Датчики ИНДУКТИВНЫЙ ДАТЧИК SN04-N, КЛАСС A - 8шт.
На данный момент в тестовом режиме подключены только два датчика, так как, с остальными осями все понятно, главное разобраться с ось Х и ее подданной ось А
Очень прошу, помочь разобраться в данной ситуации.
По мере необходимости, готов предоставить дополнительную информацию по имеющимся у меня настройкам MACH3
Заранее, благодарен за любые комментарии.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 07 дек 2018, 12:39
Enot_1
Всё работет корректно в стоке на мач3. Два двигателя, два датчика, да думаю и с одним получится. Оба едут на датчики, первый касается и откатывается назад, потом едет второй мотор на свой датчик или на этот же, первый стоит.
Порядок поиска базы по осям установили в настройках баз и ограничений?
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 07 дек 2018, 12:45
FLUKE
На сколько помню концевик для А должен присутствовать и назначен как Home. В окне диагностики, при нажатии на A Home срабатывает? На М4?
Фотки окна General Config и где входа, с прописанным концевиком А.
Кнопка Home у меня имеет следующий скрипт, один в один тебе он не подойдёт.
Код: Выделить всё
Message("Home All Axis Pressed")
If GetOEMLED(23) Then 'Turn Off Softlimits
DoOEMBUTTON(119)
End If
code "g28.1 g91 x0y0"
While IsMoving()
Wend
Code "G1 X72 Y10 F5000"
While IsMoving()
Wend
Sleep(100)
DoOEMButton (1008)
DoOEMButton (1009)
If Not GetOEMLED(23) Then 'Turn on softlimits
DoOEMBUTTON(119)
End If
Code "G90"
While IsMoving()
Wend
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 07 дек 2018, 16:11
Kinghandles
Enot_1 писал(а):Всё работет корректно в стоке на мач3. Два двигателя, два датчика, да думаю и с одним получится. Оба едут на датчики, первый касается и откатывается назад, потом едет второй мотор на свой датчик или на этот же, первый стоит.
Порядок поиска базы по осям установили в настройках баз и ограничений?
Они должны одновременно двигаться, если они будут двигаться по очереди, это поломает портал.
Одновременно стартуют, каждый доезжает до своего и останавливается(не откатывается, пока не доедет второй шд до своего) как только второй доезжает до своего датчика, они оба откатываются.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 07 дек 2018, 16:40
Kinghandles
FLUKE писал(а):На сколько помню концевик для А должен присутствовать и назначен как Home. В окне диагностики, при нажатии на A Home срабатывает? На М4?
Фотки окна General Config и где входа, с прописанным концевиком А.
Кнопка Home у меня имеет следующий скрипт, один в один тебе он не подойдёт.
Код: Выделить всё
Message("Home All Axis Pressed")
If GetOEMLED(23) Then 'Turn Off Softlimits
DoOEMBUTTON(119)
End If
code "g28.1 g91 x0y0"
While IsMoving()
Wend
Code "G1 X72 Y10 F5000"
While IsMoving()
Wend
Sleep(100)
DoOEMButton (1008)
DoOEMButton (1009)
If Not GetOEMLED(23) Then 'Turn on softlimits
DoOEMBUTTON(119)
End If
Code "G90"
While IsMoving()
Wend
Сегодня, ближе к вечеру, доберусь до станка и настроек, все сфоткаю и скину сюда.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 07 дек 2018, 18:17
Kachik
Хоминг в матче реализован аппаратно и соответственно как-то его поправить по простому невозможно, остаётся делать контроллер который по команде матча будет обнулять моторы по алгоритму. Пошукайте по форуму, это уже обсуждалось и реализовывалось в железе, кто-то на форуме продавал данные девайсы...
Нашел:
Модуль выравнивания портала станка с чпу любого типа #1
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 08 дек 2018, 00:39
Enot_1
Kinghandles писал(а):не откатывается, пока не доедет второй шд до своего
Я процесс описал как есть . А там смотрите, проверяйте.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 10 дек 2018, 09:48
Kinghandles
FLUKE писал(а):На сколько помню концевик для А должен присутствовать и назначен как Home. В окне диагностики, при нажатии на A Home срабатывает? На М4?
Фотки окна General Config и где входа, с прописанным концевиком А.
Кнопка Home у меня имеет следующий скрипт, один в один тебе он не подойдёт.
Код: Выделить всё
Message("Home All Axis Pressed")
If GetOEMLED(23) Then 'Turn Off Softlimits
DoOEMBUTTON(119)
End If
code "g28.1 g91 x0y0"
While IsMoving()
Wend
Code "G1 X72 Y10 F5000"
While IsMoving()
Wend
Sleep(100)
DoOEMButton (1008)
DoOEMButton (1009)
If Not GetOEMLED(23) Then 'Turn on softlimits
DoOEMBUTTON(119)
End If
Code "G90"
While IsMoving()
Wend
Вот такие настройки у меня в mach3
Пробовал по всякому настраивать датчики, результата 0
home slave with master axis галочку ставил, тоже смысла нет
При Хоминге Оси Х, моторы реагируют только на датчик оси Х. и останавливаются Оба. Ось А не реагирует на свой датчик.
Мне кажется, это можно решить написанием нового кода в кнопке Хоминг, чего соответственно я не умею делать, пока буду учить, пару месяцев пройдет точно (
При нажатии на датчик A Home ( срабатывает М4) но при хоминге, Ось а на датчик М4 не реагирует.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 10 дек 2018, 10:31
enderukov
Добрый день, как я понял у вас настроено правильно, кроме самого скрипта.
Стандартная последовательность такая:
DoButton (22)
DoButton (23)
DoButton (24)
DoButton (25)
Переводя на человечий язык:
X
Y
Z
A
Чтобы каждая ось возвращалась по своему датчика нужно поставить так:
DoButton (24)
DoButton (23)
DoButton (22)
DoButton (25)
т.е. Поднимаем ось Z, возвращаем Y, а потом X вместе с A ведем к своим датчикам.
Тогда будет возвращаться вместе.
Еще в чем может быть проблема - Mach3 USB контроллер.
Встречал такое, что некоторые USB контроллеры усердно отказываются это делать. Скиньте, фото контроллера, руководство может я как раз с таким и работал.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 10 дек 2018, 10:50
Kinghandles
enderukov писал(а):Добрый день, как я понял у вас настроено правильно, кроме самого скрипта.
Стандартная последовательность такая:
DoButton (22)
DoButton (23)
DoButton (24)
DoButton (25)
Переводя на человечий язык:
X
Y
Z
A
Чтобы каждая ось возвращалась по своему датчика нужно поставить так:
DoButton (24)
DoButton (23)
DoButton (22)
DoButton (25)
т.е. Поднимаем ось Z, возвращаем Y, а потом X вместе с A ведем к своим датчикам.
Тогда будет возвращаться вместе.
Еще в чем может быть проблема - Mach3 USB контроллер.
Встречал такое, что некоторые USB контроллеры усердно отказываются это делать. Скиньте, фото контроллера, руководство может я как раз с таким и работал.
Я убрал в своем скрипте DoButton() который отвечает за Ось А, иначе, после того, как все отхомятся, Ось А едет отдельно от Оси Х и ломает портал
Вот ссылка на эту плату, там же есть кое какая информация по ней.
https://kitaez-cnc.com/magazin/product/ ... op2-tabs-2
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 10 дек 2018, 13:01
FLUKE
http://www.cnc-club.ru/forum/viewtopic.php?f=3&p=131604
На контроллере ESS у меня с RefCombination все работает как надо. Т.е., все оси едут одновременно, каждая останавливается своим концевиком, как только все оси наедут на свои концевики - происходит отъезд на заданную в скрипте длину.
На контроллере USS RefCombination не работает, совсем. Я использую code "g28.1 g91 x0y0". С ним едут сначала Х и А, потом У. Причём Х и А хомятся довольно странно. Портал движется пока какая-нибудь ось не наедет первой на концевик, съезжает с него, потом хомится оставшаяся ось, съезжает с концевика, потом Х и А отъезжают на заданную длину.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 10 дек 2018, 23:40
Kinghandles
Kinghandles писал(а):DoButton (24)
DoButton (23)
DoButton (22)
DoButton (25)
перестановка скрипта, ко сожалению, ничего не дала.
по прежнему, реакция идет только на датчик для оси Х, и останавливает ось Х и ось А.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 10 дек 2018, 23:49
Kinghandles
FLUKE писал(а):RefCombination
RefCombination тоже, не работает, пробовал разные настройки этого кода, и 9 писать и пот отдельности писать.
пока в тупике, не могу понять что с этим делать.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 11 дек 2018, 08:47
Enot_1
Kinghandles писал(а):иначе, после того, как все отхомятся, Ось А едет отдельно от Оси Х и ломает портал
Она его не ломает, а выравнивает по датчикам. Для этой операции выставляем датчики, чтобы портал при хомлении вставал и работал далее перпендикулярно другой оси.
У Вас изначально всё работает правильно.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 11 дек 2018, 09:26
Kinghandles
Enot_1 писал(а):Kinghandles писал(а):иначе, после того, как все отхомятся, Ось А едет отдельно от Оси Х и ломает портал
Она его не ломает, а выравнивает по датчикам. Для этой операции выставляем датчики, чтобы портал, при хоминге вставал и работал далее перпендикулярно другой оси.
У Вас изначально всё работает правильно.
Смотрите, какая ситуация: Два мотора едут в сторону датчиков, "Х" и "А", если первым приходит "Х", то все в порядке, датчик его тормознет, потом "А" отдельно дохомится и доедет до своего датчика, а если, в момент, когда они оба едут до датчиков и первым приезжает ось "А", то она не затормозит, так как не видит свой датчик.
Или же, придется вешать все датчики на один пин, тогда "А" и "Х" будут останавливаться. Но на мой взгляд это неправильно. Каждый раз, при хоминге, вне зависимости от того, есть перекос или нет, станок будет разбалтывать. Моторы будут доезжать до датчиков, останавливаться и окатываться на 5 миллиметров, а потом, ось "А" опять поедет на датчик, тем самым перекосив портал на 5 мм.(
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 11 дек 2018, 09:40
Enot_1
Kinghandles писал(а):и первым приезжает ось "А", то она не затормозит, так как не видит свой датчик.
А вот это неправильно.
Настройки моторов на главной и подчинённой оси совпадают?
Проставьте требуемую последовательность хоминга осей в окне настройки баз и ограничений.
Проверьте срабатывание датчиков(металлическим предметом) и прихода сигналов в закладке диагностика. Соответствует ли выделенный пин на датчик расположению его на соответствующей оси - проделайте автонастройку датчиков в окне указания пинов(внизу этого окна есть меню для этой операции ) с помощью того же металлического предмета.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 11 дек 2018, 10:11
vala
НОМЕ подчинённой оси должна сидеть на пине который больше ни где не за действован и всё у вас заработает.
У вас это не соблюдено.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 11 дек 2018, 10:22
FLUKE
Kinghandles писал(а):что с этим делать
- пробовать g28.1
- пробовать переставить мач демо с оф сайта без кряков и русификаторов
- проверить другую версию плагина для платы
- пробовать
http://www.cnc-club.ru/forum/viewtopic. ... 26#p364926
- искать косяк дальше, ибо лично у меня работает два варианта выравнивания
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 11 дек 2018, 11:51
vala
vala писал(а):НОМЕ подчинённой оси должна сидеть на пине который больше ни где не за действован и всё у вас заработает.
У вас это не соблюдено.
и удалите лимиты с оси А (подчинённой) - они вам погоду портят.
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добавлено: 11 дек 2018, 12:52
Kinghandles
vala писал(а):НОМЕ подчинённой оси должна сидеть на пине который больше ни где не за действован и всё у вас заработает.
У вас это не соблюдено.
Подскажите, а как Вы увидели, что у меня пин датчика подчиненной оси еще где то задействован ?. возможно, я что то упустил.
Пин Оси "А" висит на 14 пине. он, больше нигде не задействован