Страница 1 из 4

Mach и USB контроллер

Добавлено: 17 янв 2012, 15:25
Nick
Наткнулся у Purelogic на usb контроллеры для Mach. В итоге они оказались набором обычного контроллера + хитрый буферизующий переходник USB-LPT.

В чем суть, mach делает буфер на несколько секунд, максимум 4 и выдает пакет в это устройство, оно пакет принимает и передает контроллеру через lpt интерфейс. Все бы ничего, но мануале стоят такие ограничения:

Функции MACH3, работающие нестандартно:
  1. функция "Probing" доступна в усеченном варианте: в команде G31 не должны присутствовать несколько осей одновременно;
  2. кнопки "Пауза" и "Стоп", а также функция "Feed rate override" работают с задержкой равной сумме размеров буферов, заданных в настройках плагина;
  3. параметры зоны безопасности (slow zone) для пределов перемещений (soft limits) игнорируются, но сами пределы работают.
Не реализованные функции MACH3:
  1. Backlash или компенсация люфтов механики;
  2. обратная связь через внешние энкодеры;
  3. перемещение с использованием входов MPG;
  4. различные виды токарных работ и нарезание резьбы;
В принципе все терпимо, кроме того, что выделил жирным. Кнопки стоп и пауза вообще убили. Хотя, наверняка железная кнопка стоп с контроллера сработает (надеюсь, она реализована). И отсутствие мягких пределов честно говоря не радует.

У кого какие мнения?

Re: Mach и USB контроллер

Добавлено: 17 янв 2012, 15:44
aftaev
Nick писал(а):Кнопки стоп и пауза вообще убили.
Пауза и на LPT тормозит. Мач не остановится пока строку не закончит выполнять.

Re: Mach и USB контроллер

Добавлено: 17 янв 2012, 15:46
Nick
Да хрен с ней с паузой, но стоп! Сидеть и смотреть 4 секунды как твой станок жрет направляющую наверное не очень приятно :freak:.

Re: Mach и USB контроллер

Добавлено: 17 янв 2012, 16:12
NightV
я както штудировал эту тему год назад.
на тот момент роме Smooth Stepper ничего путевого небыло
я думаю что ситуация мало изменилась.

да, со Стоп они погорячились, НО если так, то НЕ завести реальную кнопку Стоп в контроллер было бы глупо, думаю она есть.
например в схеме которую я свaрганил для первого станка (ЛПТ) кнопка Стоп физически вырубает Enable на драйвы и дает сигнал E-Stop в LPT.. правда пока не включу станок Мач недает снять E-Stop ;)

Re: Mach и USB контроллер

Добавлено: 17 янв 2012, 17:33
aftaev
У Purelogic видать подход такой. На чимпекере у них чел купил дравера,пришли дохлые, поменяли что то они греются и впаривают все хорошо, замечательно :) Ну подумаешь 4 сек :) Главное оси ездят как нибудь :)

Re: Mach и USB контроллер

Добавлено: 18 янв 2012, 07:12
purelogic
Nick писал(а):Наткнулся у Purelogic на usb контроллеры для Mach. В итоге они оказались набором обычного контроллера + хитрый буферизующий переходник USB-LPT.

В чем суть, mach делает буфер на несколько секунд, максимум 4 и выдает пакет в это устройство, оно пакет принимает и передает контроллеру через lpt интерфейс. Все бы ничего, но мануале стоят такие ограничения:

Функции MACH3, работающие нестандартно:
  1. функция "Probing" доступна в усеченном варианте: в команде G31 не должны присутствовать несколько осей одновременно;
  2. кнопки "Пауза" и "Стоп", а также функция "Feed rate override" работают с задержкой равной сумме размеров буферов, заданных в настройках плагина;
  3. параметры зоны безопасности (slow zone) для пределов перемещений (soft limits) игнорируются, но сами пределы работают.
В принципе все терпимо, кроме того, что выделил жирным. Кнопки стоп и пауза вообще убили. Хотя, наверняка железная кнопка стоп с контроллера сработает (надеюсь, она реализована). И отсутствие мягких пределов честно говоря не радует.

У кого какие мнения?
Прежде чем делать какие-то выводы, давайте попробуем разобраться, почему сделано всё так, а не иначе.
Красным выделены те места цитаты, на которые стоит еще раз посмотреть.
Насчет задержек: МАКСИСУМ 4 секунды. Тут было правильно написано, что Мач предварительно рассчитывает траекторию с учетом всех ускорений/замедлений. Безусловно эти данные буферизируются, чтобы избежать провалов в движении в случае сбоя связи. Вы длительность буферизации настраиваете САМИ в зависимости от Ваших условий (стабильности связи, мощности ПК, кол-ва дополнительно работающих программ в ОС и т.п.) Минимальная задержка 200мс. Мач сильно отличается от EMC внутренней архитектурой и по-другому сделать нельзя. Поверьте, пресловутый SmoothStepper делает точно так же. Если пользователь нажимает паузу, то уже рассчитанная тректория НЕ ИЗМЕНЯЕТСЯ движком мача. Только последующие данные попадают в буфер с учетом запроса пользователя об остановке, независимо от того, что нажато - "стоп" или "пауза".
Здесь "Стоп" - это кнопка в интерфейсе для штатной остановки выполнения, т.е. с применением профиля торможения, который, как я уже говорил, рассчитывается внутренним движком мача. Отсюда и задержки.
Безусловно в наших устройствах присутствует функция Аварийного останова (он же E-Stop в терминологии мача). Она работает БЕЗ ЗАДЕРЖЕК.
Про мягкие пределы тоже выделил. Они РАБОТАЮТ. И это написано в Вашей цитате. Не работает лишь специфический для Мача алгоритм замедления при подходе к пределам (т.н. Slow Zone). В нашем устройстве замедление сделано согласно штатному профилю ускорения, т.е. при подходе к пределу применяется торможение, аналогичное простому отпусканию кнопки перемещения (при этом гарантируется, что после торможения Вы останетесь ВУНТРИ области пределов, остановившись максимально близко к границе).
Если у вас есть еще какие-то вопросы, мы готовы на них ответить.

Re: Mach и USB контроллер

Добавлено: 18 янв 2012, 08:49
Nick
Спасибо, многое стало яснее.
Только что-то я с софт лимитами запутался. Чем софт лимиты отличаются от Slow Zone? Извиняюсь, если вопрос глупый - я не специалист по Mach.
И как работает выставление нулей осей? Через аналог усеченного G31?

Re: Mach и USB контроллер

Добавлено: 18 янв 2012, 09:30
purelogic
Nick писал(а):Спасибо, многое стало яснее.
Только что-то я с софт лимитами запутался. Чем софт лимиты отличаются от Slow Zone?
Лимит - это точка. Slow Zone - это зона. Зона, на которой происходит торможение, при подходе к точке лимита. Смысл существования 2х алгоритмов торможения в маче не очень ясен, поэтому один и был упразднен. Все работает и без него.
И как работает выставление нулей осей? Через аналог усеченного G31?
У мача есть специальная функция для поиска нуля, не связанная с G-кодом. Соот-но, утрируя, PLCM получает команду поиска 0, после чего самостоятельно его ищет в соот-вии с выставленными настройками(направление, скорость и т.п.), и рапортует об успехе в мач.

Re: Mach и USB контроллер

Добавлено: 18 янв 2012, 09:46
Nick
Понятно, спасибо!

Re: Mach и USB контроллер

Добавлено: 18 янв 2012, 10:21
ennio
лично для меня главное разочарование backlash
при том (чисто мои наблюдения) он не то что бы совсем не работает а как бы отчасти
кнопка стоп кстати у меня останавливавет и программу и шпиндель сразу да и E-stop еще никто не отменял

несколько раз пробовал работать от LPT шнурка без буфера
сказать что разница чувствительная значит ничего не сказать!!
можно сколь угодно хаять людей живущих в России и РАЗРАБАТЫВАЮЩИХ новые девайсы и при этом брать Китай
но я бы лучше поддержал местных
впрочем здоровая критика никогда не повредит

Re: Mach и USB контроллер

Добавлено: 18 янв 2012, 11:45
aftaev
purelogic писал(а):Поверьте, пресловутый SmoothStepper делает точно так же.
Чем ваш отличается от пресловутого? По мне те же яйца, вид с боку.

Re: Mach и USB контроллер

Добавлено: 27 янв 2012, 14:08
purelogic
ennio писал(а): кнопка стоп кстати у меня останавливавет и программу и шпиндель сразу да и E-stop еще никто не отменял
Да, кстати. Сведения о "стоп" относятся к старым прошивкам, в текущих версиях она срабатывает сразу. С задержкой работает только "пауза".

Re: Mach и USB контроллер

Добавлено: 27 янв 2012, 14:36
Nick
Понятно, это хорошо :).
А с компенсацией что? Она же вроде на уровне импульсов должна идти и должна работать нормально...

Re: Mach и USB контроллер

Добавлено: 27 янв 2012, 17:30
purelogic
Nick писал(а):Понятно, это хорошо :).
А с компенсацией что? Она же вроде на уровне импульсов должна идти и должна работать нормально...
Ну, не так все просто.
По люфтам основное решение - хорошая механика. Плохую механику не спасет никакой софт.
Но тем не менее, реализация backlash возможна в ближайшем будущем. We'll keep you posted, как говорится.

Re: Mach и USB контроллер

Добавлено: 28 янв 2012, 20:22
Impartial
purelogic писал(а):Насчет задержек: МАКСИСУМ 4 секунды. Тут было правильно написано, что Мач предварительно рассчитывает траекторию с учетом всех ускорений/замедлений.
purelogic писал(а):Если у вас есть еще какие-то вопросы, мы готовы на них ответить.
Если можно подробнее о том, как из Мача вытащить эту траекторию.

Re: Mach и USB контроллер

Добавлено: 28 янв 2012, 20:34
Nick
Мне кажется, они просто буферизуют импульсы шага и направления и раз в 0-4 секунды отправляют пакет на контроллер, который просто воспроизводит импульсы в том же порядке и с такой же задержкой.

Re: Mach и USB контроллер

Добавлено: 28 янв 2012, 20:46
Impartial
Возможно и так. Но они наверняка знают как это сделать ( вытащить скоростную траекторию).
Хочется прицепить к Мачу сервопривод.

Re: Mach и USB контроллер

Добавлено: 28 янв 2012, 20:51
Nick
А смысл, мы как-то разбирали в одной из тем, и поняли, что без буферизации не обойтись. Не реально по протоколу usb стабильно передавать даже 8 бай 1000 раз в секунду. А если буферизовать, то какая разница, что буферизовать.
Опять де с шаговиками если управлять скоростью, то неизбежно будет расти погрешность и нужна будет обратная связь. И это уже получится серво двигатель, Mach умеет работать с сервами?

Re: Mach и USB контроллер

Добавлено: 28 янв 2012, 20:57
Impartial
Ну не на 4 же секунды буферизировать. Мач не умеет управлять сервоприводом (обрабатывая обратную связь с энкодеров). А вот управлять сервой как законченным блоком - запросто. Просто на вход подавать задание скорости. Но для этого ее надо оттуда вытащить.
Шаговиками тоже можно так управлять. Шаговик тот же сервопривод, только управляется не ПИД а синтезатором. Кстати последний сложнее в реализации.

Re: Mach и USB контроллер

Добавлено: 28 янв 2012, 21:13
Nick
Да, но при управлении скоростью, неизбежно будет расти погрешность и без нормальной обратной связи ее не убрать. Т.е. внутри себя контроллер или серва может управляться скоростью, но команду она должна получать в виде положения.