Страница 2 из 3

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 15:53
Serg
С таким генератором невозможно будет изобразить например дугу. Понятно почему?

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 16:26
vmarkiv
Почему нельзя изобразить дугу ? Можно все , но линейно-кусочной аппроксимацией - ВСЕ ЧПУ построены на этом принципе

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 16:33
Impartial
UAVpilot писал(а):С таким генератором невозможно будет изобразить например дугу. Понятно почему?
Непонятно. Почему?
Можно все , но линейно-кусочной аппроксимацией - ВСЕ ЧПУ построены на этом принципе
Абсолютно точное замечание

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 17:58
Serg
Пример1:
Для оси Х надо сгенерить 100 импульсов длительностью 10 мс.
Одновременно с этим для оси Y нужно сгенерить 20 импульсов длительностью 15 мс и сразу после ещё 35 импульсов длительностью 20 мс.
Останавливать генерацию в точке смены длительности (скорости) нельзя, например потому, что плазма.

Пример2:
Пусть будет дуга. Пусть по Х движение равномерное. По Y придётся генерить последовательность импульсов, в которой длительность каждого импульса должна отличаться от предыдущих. Как и какие аппаратные средства нужно запрограммировать?
vmarkiv писал(а):Почему нельзя изобразить дугу ? Можно все , но линейно-кусочной аппроксимацией - ВСЕ ЧПУ построены на этом принципе
Не получится, даже если окружность сапроксимировать в треугольник. Дугу привёл в пример т.к. это ярко выраженный случай.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 18:19
aftaev
UAVpilot писал(а):Для оси Х надо сгенерить 100 импульсов длительностью 10 мс.
Одновременно с этим для оси Y нужно сгенерить 20 импульсов длительностью 15 мс и сразу после ещё 35 импульсов длительностью 20 мс.
почему нельзя по Х сгенерировать 5 импульсов, а потом 1 импульс по У и пофиг на всякий реалтайм.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 20:59
Impartial
Ничего не понял, что Вы хотели сказать примерами с импульсами.
Хорошо, допустим я ошибаюсь, как Вы представляете себе устройство генератора шагов?

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 23:37
Serg
aftaev писал(а):
UAVpilot писал(а):Для оси Х надо сгенерить 100 импульсов длительностью 10 мс.
Одновременно с этим для оси Y нужно сгенерить 20 импульсов длительностью 15 мс и сразу после ещё 35 импульсов длительностью 20 мс.
почему нельзя по Х сгенерировать 5 импульсов, а потом 1 импульс по У и пофиг на всякий реалтайм.
Можно, но после 5 импульсов по Х будет остановка на неопределённое время т.к. по условию задачи RT у нас нет и система среагирует на окончание генерации 5 импульсов для Х через НЕИЗВЕСТНОЕ (негарантируемое) время.
В принципе можно довести идею до абсурда и никогда не двигать обе оси одновременно, а только по очереди, то тогда и скорость обработки будет тоже абсурдная.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 23:39
Serg
Impartial писал(а):Ничего не понял, что Вы хотели сказать примерами с импульсами.
Хорошо, допустим я ошибаюсь, как Вы представляете себе устройство генератора шагов?
Как я вижу вы и сами не представляете как он устроен и как работает.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 23:48
aftaev
UAVpilot писал(а):В принципе можно довести идею до абсурда и никогда не двигать обе оси одновременно, а только по очереди, то тогда и скорость обработки будет тоже абсурдная.
Да со скоростью будет небольшая засада. Ну не сможем точно поддерживать скорость подачи и чем это страшно?

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 23:57
Impartial
UAVpilot писал(а):Как я вижу вы и сами не представляете как он устроен и как работает.
Так объясните.
aftaev писал(а):Да со скоростью будет небольшая засада. Ну не сможем точно поддерживать скорость подачи и чем это страшно?
Ничего там не будет. Все будет точно и равномерно. Проверено.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 13 авг 2012, 23:59
aftaev
Impartial писал(а):Ничего там не будет. Все будет точно и равномерно. Проверено.
отклонения по скорости если и будут такие что можно ими пренебречь. главнее траектория, а не скорость.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 14 авг 2012, 00:00
Serg
aftaev писал(а):
UAVpilot писал(а):В принципе можно довести идею до абсурда и никогда не двигать обе оси одновременно, а только по очереди, то тогда и скорость обработки будет тоже абсурдная.
Да со скоростью будет небольшая засада. Ну не сможем точно поддерживать скорость подачи и чем это страшно?
Да много чем, прожиганием дыры плазмой, расплавлением пластика под не двигающейся вращающейся фрезой, подгоранием дерева под ней и т.д. и т.п.
Я вот закупился прозрачным поликарбонатом, вчера пол дня подбирал режимы обработки: большая подача - поверхность некачественная получается, маленькая подача - подплавляется и тоже плохо.

Ну про апроксимацию: представь траекторию фрезы, когда она сначала смещается на шаг по одной оси, а потом по другой и траекторию, когда она смещается на шаг по обеим осям одновременно...

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 14 авг 2012, 00:04
Impartial
aftaev писал(а):отклонения по скорости если и будут такие что можно ими пренебречь. главнее траектория, а не скорость.
Ну откуда возьмутся отклонения по скорости? Сервопериод никто не отменял, контроль позиции тоже. отклонения могут быть только если шаговики пропускать шаги будут.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 15 авг 2012, 21:36
Nick
В том то и дело, что в LinucCNC stepgen это не просто генератор частоты, а компонент, который получает задание и выдает обратную связь, и насколько я понимаю скорости частоты генерит сам, большинство вещей он конечно делает в servothread...

В принципе, если этот генератор частоты будет выдавать обратную связь, то небольшие отклонения по сервоциклу не так страшны, они и в LinuxCNC есть. Весь вопрос в их размере :). Есть хотя бы приблизительные прикидки?
Хотя если есть прикидки и ограничения, то это уже real time :)

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 15 авг 2012, 23:07
Serg
Вот! Сразу видно - человек представляет как оно устроено и работает! ;)

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 16 авг 2012, 03:00
Impartial
Nick писал(а):В том то и дело, что в LinucCNC stepgen это не просто генератор частоты, а компонент, который получает задание и выдает обратную связь, и насколько я понимаю скорости частоты генерит сам, большинство вещей он конечно делает в servothread...
LinucCNC абсолютно все равно, в какой позиции находится инструмент. Обратная связь - только ЕСТЬ/НЕТ ошибка привода.
Под приводом подразумевается, в том числе, компонент stepgen.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 16 авг 2012, 15:25
Nick
Это так, но при вычислении частоты шагов на следующий servo-thread обратная связь должна учитываться, иначе неминуемо будет расти ошибка.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 16 авг 2012, 17:06
zewan
Смотри-ка пару дней не было, а как далеко тема продвинулась. :-o
Nick писал(а):Это так, но при вычислении частоты шагов на следующий servo-thread обратная связь должна учитываться, иначе неминуемо будет расти ошибка.
А можно вопрос? Если степген увидит ошибку, скажем в 5 шагов, что он будет делать? Отъедет назад?.. Остановится?.. Скажет ну и х. с ним и поедет дальше?
Например в случае с ПИДом ошибка есть всегда - иначе нет ПИДа. С шаговиками обратная связь тоже необязательное условие - можно подобрать режим работы. Надо начинать с простого, а потом, постепенно, добавлять фичи. В этом случае я, как ни странно :eh:, согласен с impartial. Либо есть ошибка(выше установленного предела) либо нет.
Основная проблема в интерполяции.Квадратно-гнездовая или линейно-кусочная - неважно. Если расчет возложить на аппаратную часть - сложно(может для impartial'a легко :hehehe: ). Если расчитать програмно, зараннее, а на, скажем ПЛИСину, подавать данные в виде скорости и кол-ве шагов - легко.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 16 авг 2012, 17:39
aftaev
zewan писал(а):Если степген увидит ошибку, скажем в 5 шагов, что он будет делать? Отъедет назад?.. Остановится?.. Скажет ну и х. с ним и поедет дальше?
чтоб он увидел ошибку должна быть обратная связь. Насколько знаю если какая ось "не успевает" другие тормозятся иначе нет интерполяции.

Re: Olimex iMX233-OLINUXINO-Micro linux computer ARM926J

Добавлено: 16 авг 2012, 20:00
Nick
Тут еще вот какая проблема, честно говоря даже не представляю как это в LinuxCNC реализовано:

Хрен с ним с base-thread представим, что все решено, но для того, чтобы сделать рассчет траектории в servothread надо получить обратную связь на начало периода, потом все рассчитать и выдать задание, но все это время рассчета будет проходить перемещение ведь вычисления могут затянуться дольше чем на 1 base-thread... Хотя все это может сглаживаться за счет 1 такта серво...

Я там понимаю stepgen получает команду скажем pos, и на основе текущей скорости, времени такта, текущго положения и максимального ускорения вычисляет требуемую скорость. И потом долбит на ней до следующей команды.

Формулы где-то в теме про пульты я уже писал. Вот если бы аппаратно генерировать равноускоренные импульсы.... было бы еще интереснее.