Страница 3 из 3
Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J
Добавлено: 16 авг 2012, 20:15
PKM
aftaev писал(а):Насколько знаю если какая ось "не успевает" другие тормозятся иначе нет интерполяции
Urban legend
Ось ничего не знает о положении других осей, каждая имеет свое задание и управляется своим ПИДом. Ну а если слишком большое отклонение в любой оси - ferror зашкаливает и авария.
Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J
Добавлено: 16 авг 2012, 21:58
Serg
Nick писал(а):
Я там понимаю stepgen получает команду скажем pos, и на основе текущей скорости, времени такта, текущго положения и максимального ускорения вычисляет требуемую скорость. И потом долбит на ней до следующей команды.
Вот тут-то и важно, чтобы следующая команда поступила в чётко запланированное время, а не когда у ОС появится "свободная минутка". Ибо в этот момент надо либо начать выполнять эту новую команду, либо за некоторое время до этого момента начинать торможение соотв. осей для их остановки к моменту неприхода команды.
Таким образом либо необходим режим RT, либо способ заглядывать в будущее.
Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J
Добавлено: 16 авг 2012, 22:08
Nick
В принципе, можно поставить wachdog или как он там называется, на дотсаточно большой период, который будем считать аварийным. И по нему выполнять торможение. В принципе, можно условный реалтайм, типо говорим, что у нас реалтайм с точностью до 0.1 секунды, но по превышению этого периода все не взрывается, а просто уходит в авост. А этот самый предел превышения для авоста подбираем исходя из требований к управлению, например на пенорезке горячей струной и 1 секунда может быть терпимым превышением. Главное, что после превышения stepgen все равно будет двигать в правильную сторону.
Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J
Добавлено: 16 авг 2012, 22:59
Serg
Только вот с момента появления события от wachdog до начала исполнения его обработчика может пройти негарантируемый период времени.
Формально тут заколдованный круг: как можно гарантировать точность в 0.1 секунды в системе, где не гарантируются время обработки событий?
Какбэ резюме: Спрашивается а нафик пытаться затолкать в один процессор и stepgen и GUI? Неужели слишком дорого на одной фигульке за $50 реализовать нормальный RT, а на другой фигульке тоже баксов за 50 сделать GUI?
Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J
Добавлено: 17 авг 2012, 00:18
Impartial
Nick писал(а):Тут еще вот какая проблема, честно говоря даже не представляю как это в LinuxCNC реализовано:
Хрен с ним с base-thread представим, что все решено, но для того, чтобы сделать рассчет траектории в servothread надо получить обратную связь на начало периода, потом все рассчитать и выдать задание, но все это время рассчета будет проходить перемещение ведь вычисления могут затянуться дольше чем на 1 base-thread... Хотя все это может сглаживаться за счет 1 такта серво...
Реализовано не сложно, в плане идеологии. Интерпретатор анализируя текущий кадр Г кода выдает точку в пространстве, в которую необходимо переместить инструмент, по отношению к предыдущему кадру, и отдает эту точку интерполятору (кубический сплайн). Интерполятор строит траекторию в пространстве, по которой должен пройти инструмент, чтобы достигнуть заданной точки, выдавая на выходе проекции на оси. Эта пространственная траектория подается на вход планировщика траектории, или временного интерполятора, который, учитывая установленные максимальные скорости и ускорения, строит временнОй график скоростей по каждой оси опираясь на период сервоцикла. Весь этот расчет производится каждый раз при получении нового кадра. На этом работа ЕМС заканчивается. Далее полученный массив скоростей просто проигрывается с периодом сервоцикла.
Обратной связи ни по позиции ни по скорости в ЕМС нет никакой. Нет Г кода, который бы позволял считать текущую позицию инструмента, и на основании ее изменить ход выполнения программы. ЕМС просто сканирует, с периодом серворцикла, состояние выходов ошибки приводов и уходит в аварию при их появлении.
Генератор шагов и ПИД (впрочем генератор шагов это тот же ПИД) это компонеты либо внешние, либо внутренние ХАЛ. Так вот для работы этих самых компонентов ХАЛ и требуется режим реального времени. Если перенести эти функции на аппаратную часть, то необходимость в ней отпадает.
Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J
Добавлено: 17 авг 2012, 05:46
Nick
Impartial писал(а):(кубический сплайн)
Не не не - кубический сплайн штука коварная и не удобная для наших задач, одна из самых сложных задач - нахождение t для заданной длинны дуги. Аналитически практически не решается. Я как-то попробовал в какую-то математику запихать интеграл, который считает длинну этой дуги, в итоге получилась формула на 14 страниц, где часто встречаются странные буквы, которые означают корни многочлена n-той степени

.
для servo-thread тоже нужен режим реалтайма....
Impartial писал(а):Если перенести эти функции на аппаратную часть, то необходимость в ней отпадает
А какой аппаратной части мы говорим, какой-то маленький чип на предложенной плате или отдельный девайс?
Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J
Добавлено: 17 авг 2012, 10:26
Impartial
Nick писал(а):Не не не - кубический сплайн штука коварная и не удобная для наших задач,
Нахождение коэффициентов полинома действительно непростая задача, если решать влоб
Вот выделенный из ЕМС кубический интерполятор.
А какой аппаратной части мы говорим, какой-то маленький чип на предложенной плате или отдельный девайс?
О внутренних таймерах основного чипа.