--Nick
Вопросы создания USB контроллера для Mach3
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Вопросы создания USB контроллера для Mach3
Извините за глупый вопрос.А для чего вообще служит внешний контроллер,разве Mach сам не может управлять двигателями?
Эта темабыла отделена от: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card (AK) #31.
--Nick
--Nick
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
MACH-то умеет, но операционка и LPT-порт не предназначены для такого управления, поэтому внешний контроллер - это более точный и надежный способ управления
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
То есть контроллер служит только для оптимизации временных характеристик шагов?AndyBig писал(а):MACH-то умеет, но операционка и LPT-порт не предназначены для такого управления, поэтому внешний контроллер - это более точный и надежный способ управления
- selenur
- Почётный участник
- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
У компьютера диспетчер задач сам рулит какому процессу(программе) сколько процессорного времени выделить, можно конечно и изменить этот параметр, и мачу увеличить приоритет, и тогда допустим в секунду будет выполняться не 100 000 машинных команд программы а 1 000 000, но тогда может не хватить процессорного времени, самой ОС, или драйверу видео, или драйверу работы с жестким диском, и прочее... Из-за чего используют специально отдельный компьютер, на котором установлена единственная программа. А у контроллера обычно кроме генерации шагов почти других задач и нет.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Насчёт компьютера понятно.Вопрос вот в чем.Контроллер получает команды на движение или просто нормирует шаговый интервал ?
- michael-yurov
- Почётный участник
- Сообщения: 11640
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4646
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Mach3 передает в контроллер данные о том, в какой позиции должен находиться станок через каждые 2 мс, а контроллер равномерно генерирует шаги между этими позициями.sidor094 писал(а):Насчёт компьютера понятно.Вопрос вот в чем.Контроллер получает команды на движение или просто нормирует шаговый интервал ?
А чтобы "нормировать шаговый интервал" - вот такая штука есть: http://cnc-club.ru/forum/viewtopic.php?f=41&t=2725
Вот здесь есть интересные осциллограммы: http://cnc-club.ru/forum/viewtopic.php? ... 300#p92389
- tooshka
- Почётный участник
- Сообщения: 1803
- Зарегистрирован: 24 окт 2012, 14:26
- Репутация: 209
- Настоящее имя: Андрей
- Откуда: Нижний Новгород
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Все же наверно зависит от способа управления приводами)))selenur писал(а):кроме генерации шагов
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Я так понимаю,что контроллер рассчитывает количество и частоту шагов на интервале 2мс .Неужели для этого нужно такое сложное устройство(ARM процессор в связке с ПЛИС).Помоему любой микроконтроллер способен за 2мс рассчитатьmichael-yurov писал(а):Mach3 передает в контроллер данные о том, в какой позиции должен находиться станок через каждые 2 мс, а контроллер равномерно генерирует шаги между этими позициями.
и запрграммировать таймер.А некоторое несоответствие частоты не будет играть роли так как за 2мс путь будет маленьким и можно добавить несделанный шаг в следующем цикле.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Успокойтесь, я умолкаю. Тем более что на это вы тратите свои собственные время и деньги.AndyBig писал(а):Вы спорите просто лишь бы поспорить.
Просто мне непонятно зачем пытаться изобрести то, что уже давно продаётся, причём изобрести в более сложном варианте...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- michael-yurov
- Почётный участник
- Сообщения: 11640
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4646
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
В реальности все не так просто.sidor094 писал(а):Я так понимаю,что контроллер рассчитывает количество и частоту шагов на интервале 2мс .Неужели для этого нужно такое сложное устройство(ARM процессор в связке с ПЛИС).Помоему любой микроконтроллер способен за 2мс рассчитать
и запрграммировать таймер.А некоторое несоответствие частоты не будет играть роли так как за 2мс путь будет маленьким и можно добавить несделанный шаг в следующем цикле.
Во первых - контроллер одновременно должен осуществлять обмен данными с ПК,
Во вторых - контроллер должен уметь самостоятельно выполнять еще много всего (ручное перемещение, поиск базы и т.п.)
В третьих - генерировать импульсы Step оказалось не так просто, как кажется, и не так-то просто запрограммировать таймер,
Возникают, например, сложности в момент смены направления, сложности со стыками генерируемого сигнала в момент смены частоты...
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Обмен данными с ПК как правило осуществляется по прерываниям.Ручное перемещение осуществляется по тому же таймеру с одновременнной проверкой отпускания кнопки(в основном связано с программированием интерфейса с пользователем).Насчет разгонов- торможенийй, я думаю в основном должен MACH заморачиваться. При смене частоты следующий импульс просто должен прийти через другой промежуток времени ,проблемы могут быть только при резком изменении перида но разгон-торможение проблема MACHa?В чём я не прав?michael-yurov писал(а):В реальности все не так просто.
Во первых - контроллер одновременно должен осуществлять обмен данными с ПК,
Во вторых - контроллер должен уметь самостоятельно выполнять еще много всего (ручное перемещение, поиск базы и т.п.)
В третьих - генерировать импульсы Step оказалось не так просто, как кажется, и не так-то просто запрограммировать таймер,
Возникают, например, сложности в момент смены направления, сложности со стыками генерируемого сигнала в момент смены частоты...
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Извините сразу не увидел продолжения.Вопервых количество импульсов программируемых таймеру должно соответствовать количеству шагов задаваемых MACHем .Даже при некотором несоответствии частоты таймера требуемой скоростиmichael-yurov писал(а):Но, соглашусь - сгенерировать серию импульсов фиксированной длительности на определенном промежутке времени намного проще той задачи, что возникла у меня, когда нужно изменять период и длительность импульсов в ряде случаев намного чаще, чем генерируются сами импульсы.
(например, была частота 20 Гц, и, вдруг, станок резко разгоняется, и за несколько миллисекунд сигнал должен увеличить частоту до нескольких кГц... получается, что ждать окончания импульса длительностью 50 мс (20 Гц) нельзя, и обрывать его тоже нельзя, так как же быть?)
за 2мс большой временной разницы не наберётся.А во вторых изменение в скорости задаваемое MACHем не должно превышать разгона двигателя.И при резкой смене направления недостающим (последним импульсом )можно пренебречь если учитывать реальную координату и учесть при последующем перемещении.Это может привести только к некоторому сглаживанию углов (как у следящего привода).
- michael-yurov
- Почётный участник
- Сообщения: 11640
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4646
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Последний раз редактировалось michael-yurov 09 мар 2014, 11:24, всего редактировалось 1 раз.
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Чем?michael-yurov писал(а):т.е. как минимум придется подсчитывать сгенрированные импульсы), а это силнь усложняет задачу.
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Всё равно внутри прерывания подсчитываешь импульсы X++;Y++;Z++ или -- в зависимости от направления и сравниваешь с заданием.
- michael-yurov
- Почётный участник
- Сообщения: 11640
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4646
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Только сейчас заметил - мы почему-о в чужой теме разговариваем! надо бы прекратить это.
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Я тут человек новый.Не знаю как перейти в свою тему.А про прерывания таймера хочу сказать ,делал приблизительно так.При входе в прерывание проверяю текущую координату,если не достигла требуемой ,устанавливаю порт генерирующий шаги и увеличиваю значение текущей координаты. При этом никаких потерь не возникает.И ещё устанавливаешь частоту таймера в 2 раза больше требуемой и работаю только на четных прерываниях.На нечетных только сбрасываю порт шагов при этом шаги имеют форму меандра ,что удобно так как позволяет использовать для развязки медленные оптроны.Если возможно подскажите,как бы обсудить вопрос не нарушив правила форума?
- michael-yurov
- Почётный участник
- Сообщения: 11640
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4646
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Попросил администраторов отделить часть сообщений, начиная с #32.sidor094 писал(а):Я тут человек новый.Не знаю как перейти в свою тему.
Если обрабатывать прерывание каждого импульса, да еще и по два раза... какая же тогда будет максимальная частота импульсов?sidor094 писал(а):А про прерывания таймера хочу сказать ,делал приблизительно так.При входе в прерывание проверяю текущую координату,если не достигла требуемой ,устанавливаю порт генерирующий шаги и увеличиваю значение текущей координаты. При этом никаких потерь не возникает.И ещё устанавливаешь частоту таймера в 2 раза больше требуемой и работаю только на четных прерываниях.На нечетных только сбрасываю порт шагов при этом шаги имеют форму меандра ,что удобно так как позволяет использовать для развязки медленные оптроны.
Лучше бы придумать алгоритм генерации импульсов вообще без прерываний и подсчета.
Нужно то ведь сгенерировать серию импульсов так, чтобы в начале и конце последовательности был определенный уровень сигнала, чтобы эти импульсы равномерно были распределены на 2 мс, ну и еще учесть вопрос смены направления.
Т.е. было бы хорошо, если можно было бы вообще не контроллировать,ч то там сгенерировалось, а просто быть уверенным, что если нужно было сгенерировать 137 импульсов, то 137 и получилось, и что следующим шагом (черз 2 мс) можно задавать новые параметры для таймера, и не обрабатывать кучу прерываний.
- selenur
- Почётный участник
- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Равномерную генерацию импульсов на необходимом промежутке времени, можно попробовать делать используя алгоритм Брезенхема
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- michael-yurov
- Почётный участник
- Сообщения: 11640
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4646
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Контроллер Mach3 usb на 3 и 4 оси(Mach3 Usb Motion Card
Так обычно и делают, и таймеры тога не нужны на каждую ось, и прерывания не будут ресурсы съедать.selenur писал(а):Равномерную генерацию импульсов на необходимом промежутке времени, можно попробовать делать используя алгоритм Брезенхема