Добро пожаловать на Форум по станкам с ЧПУ!

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

Тема в разделе "Программные вопросы", создана пользователем PRO59, 19 сен 2017.

  1. PRO59

    PRO59 Active Member

    Регистрация:
    11 май 2012
    Сообщения:
    20.080
    Симпатии:
    0
    Наткнулся у Purelogic на usb контроллеры для Mach. В итоге они оказались набором обычного контроллера + хитрый буферизующий переходник USB-LPT.

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

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

    У кого какие мнения?
     
  2. rw666

    rw666 Active Member

    Регистрация:
    7 май 2012
    Сообщения:
    20.725
    Симпатии:
    2
    Пауза и на LPT тормозит. Мач не остановится пока строку не закончит выполнять.
     
  3. PRO59

    PRO59 Active Member

    Регистрация:
    11 май 2012
    Сообщения:
    20.080
    Симпатии:
    0
    Да хрен с ней с паузой, но стоп! Сидеть и смотреть 4 секунды как твой станок жрет направляющую наверное не очень приятно :mad:.
     
  4. Sargon III

    Sargon III Active Member

    Регистрация:
    7 июн 2012
    Сообщения:
    3.279
    Симпатии:
    0
    я както штудировал эту тему год назад.
    на тот момент роме Smooth Stepper ничего путевого небыло
    я думаю что ситуация мало изменилась.

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

    rw666 Active Member

    Регистрация:
    7 май 2012
    Сообщения:
    20.725
    Симпатии:
    2
    У Purelogic видать подход такой. На чимпекере у них чел купил дравера,пришли дохлые, поменяли что то они греются и впаривают все хорошо, замечательно :) Ну подумаешь 4 сек :) Главное оси ездят как нибудь :)
     
  6. Yogrik

    Yogrik Member

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

    PRO59 Active Member

    Регистрация:
    11 май 2012
    Сообщения:
    20.080
    Симпатии:
    0
    Спасибо, многое стало яснее.
    Только что-то я с софт лимитами запутался. Чем софт лимиты отличаются от Slow Zone? Извиняюсь, если вопрос глупый - я не специалист по Mach.
    И как работает выставление нулей осей? Через аналог усеченного G31?
     
  8. Yogrik

    Yogrik Member

    Регистрация:
    5 май 2012
    Сообщения:
    36
    Симпатии:
    0
    Лимит - это точка. Slow Zone - это зона. Зона, на которой происходит торможение, при подходе к точке лимита. Смысл существования 2х алгоритмов торможения в маче не очень ясен, поэтому один и был упразднен. Все работает и без него.

    У мача есть специальная функция для поиска нуля, не связанная с G-кодом. Соот-но, утрируя, PLCM получает команду поиска 0, после чего самостоятельно его ищет в соот-вии с выставленными настройками(направление, скорость и т.п.), и рапортует об успехе в мач.
     
  9. PRO59

    PRO59 Active Member

    Регистрация:
    11 май 2012
    Сообщения:
    20.080
    Симпатии:
    0
    Понятно, спасибо!
     
  10. B456987

    B456987 Member

    Регистрация:
    5 май 2012
    Сообщения:
    256
    Симпатии:
    0
    лично для меня главное разочарование backlash
    при том (чисто мои наблюдения) он не то что бы совсем не работает а как бы отчасти
    кнопка стоп кстати у меня останавливавет и программу и шпиндель сразу да и E-stop еще никто не отменял

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

    rw666 Active Member

    Регистрация:
    7 май 2012
    Сообщения:
    20.725
    Симпатии:
    2
    Чем ваш отличается от пресловутого? По мне те же яйца, вид с боку.
     
  12. Yogrik

    Yogrik Member

    Регистрация:
    5 май 2012
    Сообщения:
    36
    Симпатии:
    0
    Да, кстати. Сведения о "стоп" относятся к старым прошивкам, в текущих версиях она срабатывает сразу. С задержкой работает только "пауза".
     
  13. PRO59

    PRO59 Active Member

    Регистрация:
    11 май 2012
    Сообщения:
    20.080
    Симпатии:
    0
    Понятно, это хорошо :).
    А с компенсацией что? Она же вроде на уровне импульсов должна идти и должна работать нормально...
     
  14. den_s

    den_s Member

    Регистрация:
    7 июн 2012
    Сообщения:
    999
    Симпатии:
    0
    Если можно подробнее о том, как из Мача вытащить эту траекторию.
     
  15. PRO59

    PRO59 Active Member

    Регистрация:
    11 май 2012
    Сообщения:
    20.080
    Симпатии:
    0
    Мне кажется, они просто буферизуют импульсы шага и направления и раз в 0-4 секунды отправляют пакет на контроллер, который просто воспроизводит импульсы в том же порядке и с такой же задержкой.
     
  16. den_s

    den_s Member

    Регистрация:
    7 июн 2012
    Сообщения:
    999
    Симпатии:
    0
    Возможно и так. Но они наверняка знают как это сделать ( вытащить скоростную траекторию).
    Хочется прицепить к Мачу сервопривод.
     
  17. PRO59

    PRO59 Active Member

    Регистрация:
    11 май 2012
    Сообщения:
    20.080
    Симпатии:
    0
    А смысл, мы как-то разбирали в одной из тем, и поняли, что без буферизации не обойтись. Не реально по протоколу usb стабильно передавать даже 8 бай 1000 раз в секунду. А если буферизовать, то какая разница, что буферизовать.
    Опять де с шаговиками если управлять скоростью, то неизбежно будет расти погрешность и нужна будет обратная связь. И это уже получится серво двигатель, Mach умеет работать с сервами?
     
  18. den_s

    den_s Member

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

    PRO59 Active Member

    Регистрация:
    11 май 2012
    Сообщения:
    20.080
    Симпатии:
    0
    Да, но при управлении скоростью, неизбежно будет расти погрешность и без нормальной обратной связи ее не убрать. Т.е. внутри себя контроллер или серва может управляться скоростью, но команду она должна получать в виде положения.
     
  20. den_s

    den_s Member

    Регистрация:
    7 июн 2012
    Сообщения:
    999
    Симпатии:
    0
    Ну откуда там будет погрешность? ЕМС не имеет никакой обратной связи ни по положению ни по скорости. Это все находится внутри ХАЛ компонента, который ЕМС сообщает только об ошибке. Что с успехом может делать и внешняя электроника, аналогичная компоненту ХАЛ.