Синхронизация двух шаговых двигателей на одной оси MACH3
- Kinghandles
- Новичок
- Сообщения: 32
- Зарегистрирован: 04 авг 2018, 21:23
- Репутация: 1
- Настоящее имя: Владимир
- Откуда: Санкт- Петербург
- Контактная информация:
Синхронизация двух шаговых двигателей на одной оси MACH3
Форумчане, добрый день !
Подскажите, такой вопрос:
Имеется станок 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
Заранее, благодарен за любые комментарии.
Подскажите, такой вопрос:
Имеется станок 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
Заранее, благодарен за любые комментарии.
-
- Мастер
- Сообщения: 1355
- Зарегистрирован: 28 апр 2015, 00:12
- Репутация: 241
- Настоящее имя: Arkadiy
- Откуда: Краснодар
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Всё работет корректно в стоке на мач3. Два двигателя, два датчика, да думаю и с одним получится. Оба едут на датчики, первый касается и откатывается назад, потом едет второй мотор на свой датчик или на этот же, первый стоит.
Порядок поиска базы по осям установили в настройках баз и ограничений?
Порядок поиска базы по осям установили в настройках баз и ограничений?
- FLUKE
- Мастер
- Сообщения: 843
- Зарегистрирован: 11 мар 2013, 21:18
- Репутация: 187
- Настоящее имя: Сергей
- Откуда: Смоленск
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
На сколько помню концевик для А должен присутствовать и назначен как Home. В окне диагностики, при нажатии на A Home срабатывает? На М4?
Фотки окна General Config и где входа, с прописанным концевиком А.
Кнопка Home у меня имеет следующий скрипт, один в один тебе он не подойдёт.
Фотки окна 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
- Kinghandles
- Новичок
- Сообщения: 32
- Зарегистрирован: 04 авг 2018, 21:23
- Репутация: 1
- Настоящее имя: Владимир
- Откуда: Санкт- Петербург
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Enot_1 писал(а):Всё работет корректно в стоке на мач3. Два двигателя, два датчика, да думаю и с одним получится. Оба едут на датчики, первый касается и откатывается назад, потом едет второй мотор на свой датчик или на этот же, первый стоит.
Порядок поиска базы по осям установили в настройках баз и ограничений?
Они должны одновременно двигаться, если они будут двигаться по очереди, это поломает портал.
Одновременно стартуют, каждый доезжает до своего и останавливается(не откатывается, пока не доедет второй шд до своего) как только второй доезжает до своего датчика, они оба откатываются.
- Kinghandles
- Новичок
- Сообщения: 32
- Зарегистрирован: 04 авг 2018, 21:23
- Репутация: 1
- Настоящее имя: Владимир
- Откуда: Санкт- Петербург
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Сегодня, ближе к вечеру, доберусь до станка и настроек, все сфоткаю и скину сюда.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
- Kachik
- Мастер
- Сообщения: 1410
- Зарегистрирован: 13 янв 2017, 16:22
- Репутация: 308
- Настоящее имя: Сергей
- Откуда: Питер
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Хоминг в матче реализован аппаратно и соответственно как-то его поправить по простому невозможно, остаётся делать контроллер который по команде матча будет обнулять моторы по алгоритму. Пошукайте по форуму, это уже обсуждалось и реализовывалось в железе, кто-то на форуме продавал данные девайсы...
Нашел: Модуль выравнивания портала станка с чпу любого типа #1
Нашел: Модуль выравнивания портала станка с чпу любого типа #1
-
- Мастер
- Сообщения: 1355
- Зарегистрирован: 28 апр 2015, 00:12
- Репутация: 241
- Настоящее имя: Arkadiy
- Откуда: Краснодар
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Я процесс описал как есть . А там смотрите, проверяйте.Kinghandles писал(а):не откатывается, пока не доедет второй шд до своего
- Kinghandles
- Новичок
- Сообщения: 32
- Зарегистрирован: 04 авг 2018, 21:23
- Репутация: 1
- Настоящее имя: Владимир
- Откуда: Санкт- Петербург
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
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 не реагирует.
-
- Новичок
- Сообщения: 8
- Зарегистрирован: 04 июл 2016, 11:25
- Репутация: 1
- Настоящее имя: Александр
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Добрый день, как я понял у вас настроено правильно, кроме самого скрипта.
Стандартная последовательность такая:
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 (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 контроллеры усердно отказываются это делать. Скиньте, фото контроллера, руководство может я как раз с таким и работал.
- Kinghandles
- Новичок
- Сообщения: 32
- Зарегистрирован: 04 авг 2018, 21:23
- Репутация: 1
- Настоящее имя: Владимир
- Откуда: Санкт- Петербург
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
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
- FLUKE
- Мастер
- Сообщения: 843
- Зарегистрирован: 11 мар 2013, 21:18
- Репутация: 187
- Настоящее имя: Сергей
- Откуда: Смоленск
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
http://www.cnc-club.ru/forum/viewtopic.php?f=3&p=131604
На контроллере ESS у меня с RefCombination все работает как надо. Т.е., все оси едут одновременно, каждая останавливается своим концевиком, как только все оси наедут на свои концевики - происходит отъезд на заданную в скрипте длину.
На контроллере USS RefCombination не работает, совсем. Я использую code "g28.1 g91 x0y0". С ним едут сначала Х и А, потом У. Причём Х и А хомятся довольно странно. Портал движется пока какая-нибудь ось не наедет первой на концевик, съезжает с него, потом хомится оставшаяся ось, съезжает с концевика, потом Х и А отъезжают на заданную длину.
На контроллере ESS у меня с RefCombination все работает как надо. Т.е., все оси едут одновременно, каждая останавливается своим концевиком, как только все оси наедут на свои концевики - происходит отъезд на заданную в скрипте длину.
На контроллере USS RefCombination не работает, совсем. Я использую code "g28.1 g91 x0y0". С ним едут сначала Х и А, потом У. Причём Х и А хомятся довольно странно. Портал движется пока какая-нибудь ось не наедет первой на концевик, съезжает с него, потом хомится оставшаяся ось, съезжает с концевика, потом Х и А отъезжают на заданную длину.
- Kinghandles
- Новичок
- Сообщения: 32
- Зарегистрирован: 04 авг 2018, 21:23
- Репутация: 1
- Настоящее имя: Владимир
- Откуда: Санкт- Петербург
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
перестановка скрипта, ко сожалению, ничего не дала.Kinghandles писал(а):DoButton (24)
DoButton (23)
DoButton (22)
DoButton (25)
по прежнему, реакция идет только на датчик для оси Х, и останавливает ось Х и ось А.
- Kinghandles
- Новичок
- Сообщения: 32
- Зарегистрирован: 04 авг 2018, 21:23
- Репутация: 1
- Настоящее имя: Владимир
- Откуда: Санкт- Петербург
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
RefCombination тоже, не работает, пробовал разные настройки этого кода, и 9 писать и пот отдельности писать.FLUKE писал(а):RefCombination
пока в тупике, не могу понять что с этим делать.
-
- Мастер
- Сообщения: 1355
- Зарегистрирован: 28 апр 2015, 00:12
- Репутация: 241
- Настоящее имя: Arkadiy
- Откуда: Краснодар
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Она его не ломает, а выравнивает по датчикам. Для этой операции выставляем датчики, чтобы портал при хомлении вставал и работал далее перпендикулярно другой оси.Kinghandles писал(а):иначе, после того, как все отхомятся, Ось А едет отдельно от Оси Х и ломает портал
У Вас изначально всё работает правильно.
- Kinghandles
- Новичок
- Сообщения: 32
- Зарегистрирован: 04 авг 2018, 21:23
- Репутация: 1
- Настоящее имя: Владимир
- Откуда: Санкт- Петербург
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Enot_1 писал(а):Она его не ломает, а выравнивает по датчикам. Для этой операции выставляем датчики, чтобы портал, при хоминге вставал и работал далее перпендикулярно другой оси.Kinghandles писал(а):иначе, после того, как все отхомятся, Ось А едет отдельно от Оси Х и ломает портал
У Вас изначально всё работает правильно.
Смотрите, какая ситуация: Два мотора едут в сторону датчиков, "Х" и "А", если первым приходит "Х", то все в порядке, датчик его тормознет, потом "А" отдельно дохомится и доедет до своего датчика, а если, в момент, когда они оба едут до датчиков и первым приезжает ось "А", то она не затормозит, так как не видит свой датчик.
Или же, придется вешать все датчики на один пин, тогда "А" и "Х" будут останавливаться. Но на мой взгляд это неправильно. Каждый раз, при хоминге, вне зависимости от того, есть перекос или нет, станок будет разбалтывать. Моторы будут доезжать до датчиков, останавливаться и окатываться на 5 миллиметров, а потом, ось "А" опять поедет на датчик, тем самым перекосив портал на 5 мм.(
-
- Мастер
- Сообщения: 1355
- Зарегистрирован: 28 апр 2015, 00:12
- Репутация: 241
- Настоящее имя: Arkadiy
- Откуда: Краснодар
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
А вот это неправильно.Kinghandles писал(а):и первым приезжает ось "А", то она не затормозит, так как не видит свой датчик.
Настройки моторов на главной и подчинённой оси совпадают?
Проставьте требуемую последовательность хоминга осей в окне настройки баз и ограничений.
Проверьте срабатывание датчиков(металлическим предметом) и прихода сигналов в закладке диагностика. Соответствует ли выделенный пин на датчик расположению его на соответствующей оси - проделайте автонастройку датчиков в окне указания пинов(внизу этого окна есть меню для этой операции ) с помощью того же металлического предмета.
- vala
- Почётный участник
- Сообщения: 490
- Зарегистрирован: 08 окт 2013, 21:01
- Репутация: 258
- Откуда: Latvia
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
НОМЕ подчинённой оси должна сидеть на пине который больше ни где не за действован и всё у вас заработает.
У вас это не соблюдено.
У вас это не соблюдено.
- FLUKE
- Мастер
- Сообщения: 843
- Зарегистрирован: 11 мар 2013, 21:18
- Репутация: 187
- Настоящее имя: Сергей
- Откуда: Смоленск
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
- пробовать g28.1Kinghandles писал(а):что с этим делать
- пробовать переставить мач демо с оф сайта без кряков и русификаторов
- проверить другую версию плагина для платы
- пробовать http://www.cnc-club.ru/forum/viewtopic. ... 26#p364926
- искать косяк дальше, ибо лично у меня работает два варианта выравнивания
- vala
- Почётный участник
- Сообщения: 490
- Зарегистрирован: 08 окт 2013, 21:01
- Репутация: 258
- Откуда: Latvia
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
и удалите лимиты с оси А (подчинённой) - они вам погоду портят.vala писал(а):НОМЕ подчинённой оси должна сидеть на пине который больше ни где не за действован и всё у вас заработает.
У вас это не соблюдено.
- Kinghandles
- Новичок
- Сообщения: 32
- Зарегистрирован: 04 авг 2018, 21:23
- Репутация: 1
- Настоящее имя: Владимир
- Откуда: Санкт- Петербург
- Контактная информация:
Re: Синхронизация двух шаговых двигателей на одной оси MACH3
Подскажите, а как Вы увидели, что у меня пин датчика подчиненной оси еще где то задействован ?. возможно, я что то упустил.vala писал(а):НОМЕ подчинённой оси должна сидеть на пине который больше ни где не за действован и всё у вас заработает.
У вас это не соблюдено.
Пин Оси "А" висит на 14 пине. он, больше нигде не задействован