Как работает реалтайм в платах MESA

Работа с платами MESA, подключение, конфигурация.
Аватара пользователя
rage
Мастер
Сообщения: 1002
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 617
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Как работает реалтайм в платах MESA

Сообщение rage »

Не совсем понимаю принцип работы реалтайма в mesa + linuxcnc.
Насколько я понял, обмен с платой идет по езернет один раз в миллисекунду?
Тогда возникает вопрос как отрабатывают реалтаймовые пины, например probe или home? Получается сама плата должна знать, что например на GPIO 14 висит датчик probe, что бы при срабатывании остановить ось.
Иначе получается какая то лажа, если linuxcnc при срабатывании probe будет и дальше ехать какое то время, пока не придет очередной пакет от месы.
Или linuxcnc шлет задание, ехать по оси Х пока не сработает GPIO 14?

Кто в курсе, расскажите как это работает?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение MX_Master »

Если говорить просто - когда спросили, тогда и отвечает. По крайней мере, у меня именно так. Кстати, подъезд к датчикам probe/home - многоразовый. Каждый раз на меньшей подаче. Начальную подачу для таких задач ставят тоже небольшую. Чтобы станок за счёт инерции механики тупо не расколбасил сам себя вместе с датчиками. Ну и датчики должны иметь достаточный запас хода, или вовсе быть проходными. Так что миллисекундная дискретность в таких замерах - это не проблема. Можешь сам посчитать сколько чего проедет за миллисекунду на разных подачах :)
Последний раз редактировалось MX_Master 10 фев 2021, 21:39, всего редактировалось 1 раз.
Аватара пользователя
rage
Мастер
Сообщения: 1002
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 617
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение rage »

т.е. по факту на ио портах нифига не реалтайм?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение MX_Master »

Режим реального времени - это когда какое-то управляющее действие выполняется строго по стрелке машинных часов. Если произошло какое-то случайное событие между двумя тиками стрелки, действие выполнится не сразу, а строго при следующем тике стрелки :)

Конечно, в прошивке контроллера можно намутить и другое поведение. Допустим, чтобы контроллер считал и выводил сигналы между тиками стрелок. Так, к примеру, работают модули stepgen/pwm/encoder. Обычные же пины общего назначения контроллер не дёргает, пока такой команды не поступило от ЧПУ. Но и это поведение в прошивке контроллера можно изменить на своё, если стандартное не нравится :)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение Serg »

Дискретные порты гарантированно опрашиваются один раз в сервоцикл - этого вполне достаточно и вполне себе RealTime. Чаще их опрашивать нет смысла, ибо некому будет обрабатывать результаты.

В некоторых случаях нужно реагировать на данные быстрее, например на индексную метку энкодера, но это делается не "в лоб": при приходе импульса индекса аппаратный счётчик энкодера сбрасывается - это происходит асинхронно с сервоциклом, но когда приходить время опроса, то значение счётчика соответствует расстоянию между меткой и позицией на момент считывания.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
rage
Мастер
Сообщения: 1002
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 617
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение rage »

Еще такой вопрос, pnconfig генерирует типовой конфиг для step/dir с использованием pid я же правильно понимаю, что этот pid можно смело откручивать? в случае с обычными ШД без какой либо обратной связи.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение Serg »

Можно откручивать, но конфиг с PID надёжнее работает, его потому и добавили.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
rage
Мастер
Сообщения: 1002
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 617
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение rage »

Serg писал(а): 11 фев 2021, 14:46 Можно откручивать, но конфиг с PID надёжнее работает, его потому и добавили.
А в чем эта надёжность выражается? Он же, пид, не работает в случае когда нет ос?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение Serg »

Очень даже работает и ОС есть: на вход stepgen'у даётся задание с какой частотой генерить импульсы, а он в ответ сообщает сколько штук смог сгенерить - ПИД решает надо ещё добавить или нет. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
rage
Мастер
Сообщения: 1002
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 617
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение rage »

Serg писал(а): Очень даже работает и ОС есть: на вход stepgen'у даётся задание с какой частотой генерить импульсы, а он в ответ сообщает сколько штук смог сгенерить - ПИД решает надо ещё добавить или нет.
Чет не понимаю как ПИД и шаговик могу работать вместе. Тем более, что парамтери "по дефолту" фактически ничего не регулируют а просто "пропускают на прямую".
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение Serg »

rage писал(а): Чет не понимаю как ПИД и шаговик могу работать вместе.
А я такого и не писал. :) Вместе работают pid и stepgen.

А шаговик тут вобщем-то и не нужен. :hehehe:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение antoxa-kylibin »

Получается что комп плату опрашивает каждую миллисекунду, но плата сама по себе работает значительно быстрее чем комп её может опросить и все что произошло за эту миллисекунду плата точно успевает отследить (грубо говоря что было сгенерировано и что пришло по обратной связи) и на момент следующего опроса плата сообщает эти данные компу, в том числе и данные для pid который тоже работает на компе в сервоцикле и комп выдаёт "новое задание" плате, та его снова отрабатывает. И такое общение происходит каждую миллисекунду (может быть и другое время, зависит от настроек и возможностей компа, но по умолчанию pncconf 1мс ставит). Т. е. фишка в том что плата умеет очень быстро работать аппаратно и гарантированно успевает выполнять то что от неё требуется, но опрашивается она с относительно меньшей частотой, а это похоже не так важно, как достоверность полученных данных.... Так получается?
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение alex_sar »

да.
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение antoxa-kylibin »

Опять же, на скорости 15м/мин при сервоцикле 1мс (1кГц) станок успеет проехать 0.25мм между опросам компа. И каждые 0.25мм комп будет видеть превышена ошибка рассогласования pid или нет. Если pid настроен корректно, то в штатном режиме величина ошибки не будет выходить за указанные значения в конфиге. Правильно я понимаю общий алгоритм работы?
Аватара пользователя
Prav
Мастер
Сообщения: 827
Зарегистрирован: 14 июл 2015, 05:10
Репутация: 138
Настоящее имя: Петр Раввинский
Откуда: Москва
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение Prav »

antoxa-kylibin писал(а): И такое общение происходит каждую миллисекунду (может быть и другое время, зависит от настроек и возможностей компа, но по умолчанию pncconf 1мс ставит)
Это в идеале, а в реале может быть и 5 мсек и 25 мсек. что есть очень плохо. То есть на 100% нет уверенности в надежности работы такой системы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение Serg »

antoxa-kylibin писал(а): Правильно я понимаю общий алгоритм работы?
Правильно.
Prav писал(а): Это в идеале, а в реале может быть и 5 мсек и 25 мсек.
Это в реале, гарантия тому - работа в RealTime. При большом отклонении длительности сервоцикла произойдёт аварийный останов.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение antoxa-kylibin »

Ну наверное для того linuxcnc и имеет "допиленное" ядро, чтобы в реале комп мог опросить плату за 1мс, если комп на такое не способен, то в топку его..... Что это за реалтайм тогда, если комп сам не знает с каким интервалом времени он может опрашивать? Latency test не зря же придумали....
Аватара пользователя
Prav
Мастер
Сообщения: 827
Зарегистрирован: 14 июл 2015, 05:10
Репутация: 138
Настоящее имя: Петр Раввинский
Откуда: Москва
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение Prav »

Ну, верить в 1мс никто не запрещает...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение MX_Master »

По вопросам веры - в церковь. А я лично проверял длину соседних сервоциклов на разных ПК и микро ПК. Всё там укладывается в заданные рамки +/- latency
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: Как работает реалтайм в платах MESA

Сообщение antoxa-kylibin »

Общая схема понятно, но вот такой момент непонятен.... Как при скорости 25м/мин отклонение от заданной позиции остаётся в пределах 0.03-0.04мм при условии что время опроса платы 1мс?
Ответить

Вернуться в «MESA»