Синхронизация двух шаговых двигателей на одной оси MACH3

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.

Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Kinghandles » 07 дек 2018, 11:55

Форумчане, добрый день !
Подскажите, такой вопрос:
Имеется станок 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

Заранее, благодарен за любые комментарии.
Аватара пользователя
Kinghandles
Новичок
 
Сообщения: 21
Зарегистрирован: 04 авг 2018, 21:23
Откуда: Санкт- Петербург
Репутация: 0
Настоящее имя: Владимир

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Enot_1 » 07 дек 2018, 12:39

Всё работет корректно в стоке на мач3. Два двигателя, два датчика, да думаю и с одним получится. Оба едут на датчики, первый касается и откатывается назад, потом едет второй мотор на свой датчик или на этот же, первый стоит.
Порядок поиска базы по осям установили в настройках баз и ограничений?
Enot_1
Мастер
 
Сообщения: 766
Зарегистрирован: 28 апр 2015, 00:12
Откуда: Краснодар
Репутация: 142
Настоящее имя: Arkadiy

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение FLUKE » 07 дек 2018, 12:45

На сколько помню концевик для А должен присутствовать и назначен как 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
 
Аватара пользователя
FLUKE
Мастер
 
Сообщения: 664
Зарегистрирован: 11 мар 2013, 21:18
Откуда: Москва
Репутация: 114
Настоящее имя: Сергей

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Kinghandles » 07 дек 2018, 16:11

Enot_1 писал(а):Всё работет корректно в стоке на мач3. Два двигателя, два датчика, да думаю и с одним получится. Оба едут на датчики, первый касается и откатывается назад, потом едет второй мотор на свой датчик или на этот же, первый стоит.
Порядок поиска базы по осям установили в настройках баз и ограничений?



Они должны одновременно двигаться, если они будут двигаться по очереди, это поломает портал.

Одновременно стартуют, каждый доезжает до своего и останавливается(не откатывается, пока не доедет второй шд до своего) как только второй доезжает до своего датчика, они оба откатываются.
Аватара пользователя
Kinghandles
Новичок
 
Сообщения: 21
Зарегистрирован: 04 авг 2018, 21:23
Откуда: Санкт- Петербург
Репутация: 0
Настоящее имя: Владимир

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Kinghandles » 07 дек 2018, 16:40

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
 


Сегодня, ближе к вечеру, доберусь до станка и настроек, все сфоткаю и скину сюда.
Аватара пользователя
Kinghandles
Новичок
 
Сообщения: 21
Зарегистрирован: 04 авг 2018, 21:23
Откуда: Санкт- Петербург
Репутация: 0
Настоящее имя: Владимир

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Kachik » 07 дек 2018, 18:17

Хоминг в матче реализован аппаратно и соответственно как-то его поправить по простому невозможно, остаётся делать контроллер который по команде матча будет обнулять моторы по алгоритму. Пошукайте по форуму, это уже обсуждалось и реализовывалось в железе, кто-то на форуме продавал данные девайсы...

Нашел: Модуль выравнивания портала станка с чпу любого типа #1
Аватара пользователя
Kachik
Опытный
 
Сообщения: 159
Зарегистрирован: 13 янв 2017, 16:22
Репутация: 16
Настоящее имя: Сергей

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Enot_1 » 08 дек 2018, 00:39

Kinghandles писал(а):не откатывается, пока не доедет второй шд до своего

Я процесс описал как есть . А там смотрите, проверяйте.
Enot_1
Мастер
 
Сообщения: 766
Зарегистрирован: 28 апр 2015, 00:12
Откуда: Краснодар
Репутация: 142
Настоящее имя: Arkadiy

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Kinghandles » 10 дек 2018, 09:48

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 не реагирует.
Вложения
Синхронизация двух шаговых двигателей на одной оси MACH3 IMG_20181207_190742.jpg
Синхронизация двух шаговых двигателей на одной оси MACH3 IMG_20181207_190755.jpg
Синхронизация двух шаговых двигателей на одной оси MACH3 IMG_20181207_190759.jpg
Синхронизация двух шаговых двигателей на одной оси MACH3 IMG_20181207_190814.jpg
Синхронизация двух шаговых двигателей на одной оси MACH3 IMG_20181207_190821.jpg
Синхронизация двух шаговых двигателей на одной оси MACH3 IMG_20181207_191559.jpg
Аватара пользователя
Kinghandles
Новичок
 
Сообщения: 21
Зарегистрирован: 04 авг 2018, 21:23
Откуда: Санкт- Петербург
Репутация: 0
Настоящее имя: Владимир

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение enderukov » 10 дек 2018, 10:31

Добрый день, как я понял у вас настроено правильно, кроме самого скрипта.
Стандартная последовательность такая:
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 контроллеры усердно отказываются это делать. Скиньте, фото контроллера, руководство может я как раз с таким и работал.
enderukov
Новичок
 
Сообщения: 8
Зарегистрирован: 04 июл 2016, 11:25
Репутация: 1
Настоящее имя: Александр

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Kinghandles » 10 дек 2018, 10:50

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
Аватара пользователя
Kinghandles
Новичок
 
Сообщения: 21
Зарегистрирован: 04 авг 2018, 21:23
Откуда: Санкт- Петербург
Репутация: 0
Настоящее имя: Владимир

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение FLUKE » 10 дек 2018, 13:01

http://www.cnc-club.ru/forum/viewtopic.php?f=3&p=131604
На контроллере ESS у меня с RefCombination все работает как надо. Т.е., все оси едут одновременно, каждая останавливается своим концевиком, как только все оси наедут на свои концевики - происходит отъезд на заданную в скрипте длину.
На контроллере USS RefCombination не работает, совсем. Я использую code "g28.1 g91 x0y0". С ним едут сначала Х и А, потом У. Причём Х и А хомятся довольно странно. Портал движется пока какая-нибудь ось не наедет первой на концевик, съезжает с него, потом хомится оставшаяся ось, съезжает с концевика, потом Х и А отъезжают на заданную длину.
Аватара пользователя
FLUKE
Мастер
 
Сообщения: 664
Зарегистрирован: 11 мар 2013, 21:18
Откуда: Москва
Репутация: 114
Настоящее имя: Сергей

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Kinghandles » 10 дек 2018, 23:40

Kinghandles писал(а):DoButton (24)
DoButton (23)
DoButton (22)
DoButton (25)


перестановка скрипта, ко сожалению, ничего не дала.
по прежнему, реакция идет только на датчик для оси Х, и останавливает ось Х и ось А.
Аватара пользователя
Kinghandles
Новичок
 
Сообщения: 21
Зарегистрирован: 04 авг 2018, 21:23
Откуда: Санкт- Петербург
Репутация: 0
Настоящее имя: Владимир

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Kinghandles » 10 дек 2018, 23:49

FLUKE писал(а):RefCombination

RefCombination тоже, не работает, пробовал разные настройки этого кода, и 9 писать и пот отдельности писать.
пока в тупике, не могу понять что с этим делать.
Аватара пользователя
Kinghandles
Новичок
 
Сообщения: 21
Зарегистрирован: 04 авг 2018, 21:23
Откуда: Санкт- Петербург
Репутация: 0
Настоящее имя: Владимир

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Enot_1 » 11 дек 2018, 08:47

Kinghandles писал(а):иначе, после того, как все отхомятся, Ось А едет отдельно от Оси Х и ломает портал

Она его не ломает, а выравнивает по датчикам. Для этой операции выставляем датчики, чтобы портал при хомлении вставал и работал далее перпендикулярно другой оси.
У Вас изначально всё работает правильно.
Enot_1
Мастер
 
Сообщения: 766
Зарегистрирован: 28 апр 2015, 00:12
Откуда: Краснодар
Репутация: 142
Настоящее имя: Arkadiy

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Kinghandles » 11 дек 2018, 09:26

Enot_1 писал(а):
Kinghandles писал(а):иначе, после того, как все отхомятся, Ось А едет отдельно от Оси Х и ломает портал

Она его не ломает, а выравнивает по датчикам. Для этой операции выставляем датчики, чтобы портал, при хоминге вставал и работал далее перпендикулярно другой оси.
У Вас изначально всё работает правильно.



Смотрите, какая ситуация: Два мотора едут в сторону датчиков, "Х" и "А", если первым приходит "Х", то все в порядке, датчик его тормознет, потом "А" отдельно дохомится и доедет до своего датчика, а если, в момент, когда они оба едут до датчиков и первым приезжает ось "А", то она не затормозит, так как не видит свой датчик.

Или же, придется вешать все датчики на один пин, тогда "А" и "Х" будут останавливаться. Но на мой взгляд это неправильно. Каждый раз, при хоминге, вне зависимости от того, есть перекос или нет, станок будет разбалтывать. Моторы будут доезжать до датчиков, останавливаться и окатываться на 5 миллиметров, а потом, ось "А" опять поедет на датчик, тем самым перекосив портал на 5 мм.(
Аватара пользователя
Kinghandles
Новичок
 
Сообщения: 21
Зарегистрирован: 04 авг 2018, 21:23
Откуда: Санкт- Петербург
Репутация: 0
Настоящее имя: Владимир

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Enot_1 » 11 дек 2018, 09:40

Kinghandles писал(а):и первым приезжает ось "А", то она не затормозит, так как не видит свой датчик.


А вот это неправильно.
Настройки моторов на главной и подчинённой оси совпадают?
Проставьте требуемую последовательность хоминга осей в окне настройки баз и ограничений.
Проверьте срабатывание датчиков(металлическим предметом) и прихода сигналов в закладке диагностика. Соответствует ли выделенный пин на датчик расположению его на соответствующей оси - проделайте автонастройку датчиков в окне указания пинов(внизу этого окна есть меню для этой операции ) с помощью того же металлического предмета.
Enot_1
Мастер
 
Сообщения: 766
Зарегистрирован: 28 апр 2015, 00:12
Откуда: Краснодар
Репутация: 142
Настоящее имя: Arkadiy

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение vala » 11 дек 2018, 10:11

НОМЕ подчинённой оси должна сидеть на пине который больше ни где не за действован и всё у вас заработает.
У вас это не соблюдено.
Аватара пользователя
vala
Почётный участник
Почётный участник
 
Сообщения: 354
Зарегистрирован: 08 окт 2013, 21:01
Откуда: Latvia
Репутация: 199
Медальки:

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение FLUKE » 11 дек 2018, 10:22

Kinghandles писал(а):что с этим делать

- пробовать g28.1
- пробовать переставить мач демо с оф сайта без кряков и русификаторов
- проверить другую версию плагина для платы
- пробовать http://www.cnc-club.ru/forum/viewtopic. ... 26#p364926
- искать косяк дальше, ибо лично у меня работает два варианта выравнивания
Аватара пользователя
FLUKE
Мастер
 
Сообщения: 664
Зарегистрирован: 11 мар 2013, 21:18
Откуда: Москва
Репутация: 114
Настоящее имя: Сергей

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение vala » 11 дек 2018, 11:51

vala писал(а):НОМЕ подчинённой оси должна сидеть на пине который больше ни где не за действован и всё у вас заработает.
У вас это не соблюдено.

и удалите лимиты с оси А (подчинённой) - они вам погоду портят.
Аватара пользователя
vala
Почётный участник
Почётный участник
 
Сообщения: 354
Зарегистрирован: 08 окт 2013, 21:01
Откуда: Latvia
Репутация: 199
Медальки:

Re: Синхронизация двух шаговых двигателей на одной оси MACH3

Сообщение Kinghandles » 11 дек 2018, 12:52

vala писал(а):НОМЕ подчинённой оси должна сидеть на пине который больше ни где не за действован и всё у вас заработает.
У вас это не соблюдено.


Подскажите, а как Вы увидели, что у меня пин датчика подчиненной оси еще где то задействован ?. возможно, я что то упустил.
Пин Оси "А" висит на 14 пине. он, больше нигде не задействован
Аватара пользователя
Kinghandles
Новичок
 
Сообщения: 21
Зарегистрирован: 04 авг 2018, 21:23
Откуда: Санкт- Петербург
Репутация: 0
Настоящее имя: Владимир

След.

Вернуться в Windows / Mach

Кто сейчас на конференции

Зарегистрированные пользователи: 1240, aftaev, aleksha, Андрей Кулагин, Bing [Bot], ССыч, Сергей Саныч, CNC-Logic, dmicheev, Google [Bot], karavan, Kost_irk, ksawer, Lenya_Ladoga, MGG, michael-yurov, mikehv, MPR, NikolayUa24, NKS, OpenBeam, roct, Smlua, Stalker, Taganrog, Tigra73, xvovanx, Yandex [bot], Карпуха

Поделиться

Reputation System ©'