Страница 1 из 3
Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 12 апр 2018, 12:01
DmitryJ
Всем привет!
Сейчас имею ситуацию:
Джиттер BP 30000 и SP 28000, 7i92+7i76, три шаговика
Вылезает ошибка Unexpected realtime delay
Куда копать - дальше пытаться снижать джиттер или проблема может быть где-то еще?
Спасибо!
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 12 апр 2018, 12:14
Сергей Саныч
Имеет смысл радикально увеличить BASE_PERIOD. Сейчас, кстати, какой?
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 12 апр 2018, 12:23
DmitryJ
Пробовал BASE_PERIOD в диапазоне 40000 - 120000
Никаких изменений

Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 12 апр 2018, 14:17
Serg
Сергей Саныч писал(а):Имеет смысл радикально увеличить BASE_PERIOD.
А зачем он там вообще нужен?..
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 12 апр 2018, 14:53
Сергей Саныч
UAVpilot писал(а):А зачем он там вообще нужен?..
Мало ли какая логика может быть наворочена с базовым тактированием.
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 12 апр 2018, 17:15
Serg
Сергей Саныч писал(а):Мало ли какая логика может быть наворочена с базовым тактированием.
Для обработки какого сигнала?
Намёк: откуда он приходит и куда уходит?
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 13 апр 2018, 10:35
Сергей Саныч
UAVpilot писал(а):Для обработки какого сигнала?
1. Каждый такт может создавать в цепочке лог. элементов задержку (может и не создавать, смотря как организована последовательность выполнения). При тактировании сервопоследовательностью задержка может достигать нескольких миллисекунд, что может быть критично, скажем, при обработке датчиков.
2. У меня, к примеру, для обработки штурвала (MPG 100 ppr) используется компонент encoder. Если его тактировать частотой 1 кГц, то крутить штурвал без сбоев можно будет не быстрее примерно 1 оборота в секунду.
3. При использовании таких компонентов, как debounce, использование сервопоследовательности в качестве тактовой тоже может создавать серьезные задержки.
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 13 апр 2018, 12:44
DmitryJ
Надеюсь, в битве титанов никто не пострадает
Что делать-то все-таки?
Влияет все-таки джиттер или нет при аппаратных stepgen`ах?
Ошибка Unexpected realtime delay вылезает
Что проверить/покрутить?
Возможно, как-то влияет кинематика - genserkins, манипулятор-рука.
При этом хомится нормально, без сбоев.
Ручное управление также работает.
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 13 апр 2018, 12:52
Сергей Саныч
Все-таки есть смысл побороться с задержками. Подольше погонять тест не пробовали? С повышенной загрузкой компьютера ("шестеренки", видео, перекачка файлов...)?
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 13 апр 2018, 13:16
DmitryJ
А до каких значений надо снизить джиттер?
Гонял браузер + шестеренки (5шт) + видео
Джиттер стоит колом.
Проц Pentium Core Duo, мать на чипсете H110, видео встроенное.
Пробовал видеокарту GeForce 710, джиттер - без изменений.
В Grub прописано nomodeset, isolcpus=1
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 13 апр 2018, 17:25
Serg
Сергей Саныч писал(а):2. У меня, к примеру, для обработки штурвала (MPG 100 ppr) используется компонент encoder. Если его тактировать частотой 1 кГц, то крутить штурвал без сбоев можно будет не быстрее примерно 1 оборота в секунду.
Для штурвала в данном случае надо использовать либо энкодерный вход на 7i77 и соотв. аппаратный счётчик в 7i92, либо LPT и программный счётчик. base-thread имеет смысл только во втором варианте, правда сам второй вариант не очень-то имеет смысл в данном случае.
Сергей Саныч писал(а):3. При использовании таких компонентов, как debounce, использование сервопоследовательности в качестве тактовой тоже может создавать серьезные задержки.
А такие компоненты как debounce откуда возьмут сигнал, меняющийся чаще, чем раз в сервоперод?
DmitryJ писал(а):Влияет все-таки джиттер или нет при аппаратных stepgen`ах?
Нет.
Просто уберите все упоминания о BASE_PERIOD и base-thread.
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 14 апр 2018, 04:36
Сергей Саныч
UAVpilot писал(а):А такие компоненты как debounce откуда возьмут сигнал, меняющийся чаще, чем раз в сервоперод?
Из реального мира, вестимо. Полученные не из месы, которая опрашивается раз в сервопериод, а, скажем, из того же LPT.
я не спорю, что построение систем без использования base-thread возможно и даже желательно. Но иногда получение и обработка "сырых данных" с более высокой частотой. чем servo-thread, может позволить уменьшить задержки реакции системы на внешние воздействия.
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 14 апр 2018, 15:15
Serg
Сергей Саныч писал(а):Из реального мира, вестимо. Полученные не из месы, которая опрашивается раз в сервопериод, а, скажем, из того же LPT.
Ну я ж написал:
UAVpilot писал(а):base-thread имеет смысл только во втором варианте, правда сам второй вариант не очень-то имеет смысл в данном случае.

И ТС не говорит, что использует LPT.
Сергей Саныч писал(а):Но иногда получение и обработка "сырых данных" с более высокой частотой. чем servo-thread, может позволить уменьшить задержки реакции системы на внешние воздействия.
Если вся периферия работает с частотой servo-thread, то физически неоткуда получить сигнал и некуда его передать с дискретизацией меньше, чем servo-thread.
Было-бы интересно увидеть пример обратного.

Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 16 апр 2018, 12:12
DmitryJ
UAVpilot писал(а):
Просто уберите все упоминания о BASE_PERIOD и base-thread.
Сделал
Ошибка осталась
Все равно вылезает Unexpected realtime delay на первой же команде G-кода
Куда копать?
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 16 апр 2018, 12:40
Сергей Саныч
DmitryJ писал(а):вылезает Unexpected realtime delay на первой же команде G-кода
Похоже, у вас слишком сложные получились расчеты в кинематике. Которые не успевают завершиться за сервопериод.
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 16 апр 2018, 14:31
DmitryJ
Команда не самая сложная - G0
Ошибка вылезает, но команда выполняется.
Если путь побольше, то в конце пути вываливается уже под joint following error
Но это понятно, отклонение накапливается.
На linuxcnc.org у коллег с такой кинематикой все работает, так что грешить на кинематику я бы не стал.
Возможно, ошибка наведенная, но где что еще проверить-подергать - не знаю.
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 16 апр 2018, 16:54
Serg
HAL свой покажи чтоль...
Джиттер как мерял? Как долго? Что заускал при этом?
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 16 апр 2018, 21:22
DmitryJ
Hal и ini выкладываю
Джитттер мерял так - запускал браузер, видео, 5-6 шестеренок
Но недолго - 10-20 минут
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 16 апр 2018, 23:10
Serg
вот это тоже выкидывайте:
traj_period_nsec=[EMCMOT]TRAJ_PERIOD
Re: Какой джиттер достаточно при аппаратных stepgen`ах?
Добавлено: 18 апр 2018, 12:05
DmitryJ
выкинул traj_period_nsec=[EMCMOT]TRAJ_PERIOD
Стало как-то не лучше, а иначе (:
Работает при servo period 3500000, если ставить ниже - сразу realtime error при исполнении G0
Подозреваю, что 3 500 000 как-то многовато
При относительно длинном пути по G0 вываливается по joint following error
Заглушил обратную связь со степегена, поставил axis.position-com => axis.position-fb
Тогда уже отваливается SSerial - communication error (13)
Скриншот прилагаю
Может быть дело не в ini-hal?
Криво встал rt-preemt, поэтому и realtime error?
или проблемы с питанием или помехи какие могут влиять?