Страница 124 из 245
Re: LinuxCNC + Orange Pi
Добавлено: 04 апр 2019, 09:18
MX_Master
"уже загружается" звучит ободряюще ((: примерно за ту же цену можно взять
rockpi4 (1гб), где всё полноценно работает, и видеочип, и
pci-e (m.2), и
usb 3.0.
не стоит дергаться
Re: LinuxCNC + Orange Pi
Добавлено: 04 апр 2019, 13:23
_Pavel
MX_Master писал(а):Про килогерцы не надо судить по себе (:
Так ты мне объясни куда их и как применять. Я может сразу мегагерц захочу )))
Re: LinuxCNC + Orange Pi
Добавлено: 04 апр 2019, 13:36
MX_Master
Для ШВП с шагом 4-5 мм, для плавной и быстрой работы 17 КГц мало (:
Для линейки с разрешением в микрон 17 КГц мало (:
Станок должен работать максимально быстро, особенно, на холостых ходах. Это же всё рабочее время. Чем оно меньше, тем больше можно сделать.
Re: LinuxCNC + Orange Pi
Добавлено: 04 апр 2019, 14:22
_Pavel
MX_Master писал(а):Для линейки с разрешением в микрон 17 КГц мало (:
Аааа, ну если в один микрон :-0 , то тогда конечно :-0
Так надо еще будет импульсы успеть обработать, я даже не знаю какого проца для этого хватит. По хорошему ПЛИСа нужна.
Re: LinuxCNC + Orange Pi
Добавлено: 04 апр 2019, 14:47
MX_Master
Там же внутри шпарит сопроцессор с частотой 450 МГц.
Модуль подсчёта импульсов я там реализовал.
Оно, канеш, мегагерцы не ест, но сотни килогерц может.
Re: LinuxCNC + Orange Pi
Добавлено: 04 апр 2019, 15:15
_Pavel
Задача конечно интересная, но сложная. Тут надо ИМХО как то в ядро залазить, чтоб счетчики независимо от планировщика задач работали и чтоб еще этот реалтайм не нарушить.
Re: LinuxCNC + Orange Pi
Добавлено: 04 апр 2019, 23:34
going
_Pavel писал(а):Тут надо ИМХО как то в ядро залазить
Павел, а "личку" посмотри. Я тебе ссылочку на готовые пакеты для Н5 зачем послал?
Re: LinuxCNC + Orange Pi
Добавлено: 05 апр 2019, 02:27
antoxa-kylibin
MX_Master писал(а):Там же внутри шпарит сопроцессор с частотой 450 МГц.
Модуль подсчёта импульсов я там реализовал.
Оно, канеш, мегагерцы не ест, но сотни килогерц может.
Ждемс килогерцов

.... я вот видел на али линейки с разрешением 5 микрон. Они и дешевле и для не промышленных станков вполне достаточно. По моим сугубо теоретическим прикидкам на скорости 3000мм/мин она будет выплевывать импульсы на 10кгц....а это блин lpt порт даже должен переварить....или я фигню сморозил? Только не бейте

Re: LinuxCNC + Orange Pi
Добавлено: 05 апр 2019, 02:35
_Pavel
Спасибо! Пособираю)))
Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 08:17
MX_Master
Наконец-то, добил формулы для двух режимов
stepgen'a с симуляцией в электронных таблицах. Надо провести ещё несколько тестов, подчистить косяки и можно заливать все эти формулы в код драйвера. Больше всего времени отнял режим работы
stepgen'a
по позиции. Без наглядных значений каждой переменной в каждом сервопериоде, очень сложно понять, что происходит. Я до этого несколько раз пробовал представить каждый шаг процесса в уме. Но оперативки никогда не хватало

Вощем,
LibreOffice Calc во всех отношениях рулит.
Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 14:04
antoxa-kylibin
Я например ничего не понял из этих скринов....ждем первого релиза драйвера! А в будущем ещё нужно encoder повесить на сопроцессор и попробовать pid настроить в связке шд+энкодер!
Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 15:00
MX_Master
antoxa-kylibin писал(а):Я например ничего не понял из этих скринов....ждем первого релиза драйвера!
Это пошаговая симуляция. Одна строка = сервопериод. В каждом сервопериоде видно состояние каждой переменной и основных входных/выходных пинов драйвера. Для каждой переменной и выходных пинов есть ряд формул, по которым вычисляются их значения. А также видно сколько раз и куда нужно дёргать
GPIO пины.
Каждый сервопериод
stepgen вычисляет значения скорости (частоту) и направления, чтобы с учётом всех параметров попасть ровно в указанную позицию. Та ещё тягомотина
К примеру, позиция оси равна
0мм, а мы ей командуем ехать в позицию
10мм. И вот, каждый сервопериод, мы наблюдаем плавное увеличение скорости, которое не должно превышать лимиты скорости и ускорения. Затем -плавное замедление с точным попаданием в позицию
10мм. И это - простейший случай. А, допустим, мы на полном ходу скомандуем оси уехать в позицию
-20мм. При этом
stepgen не должен сразу рвать когти назад. Он должен плавно остановить движение, дёрнуть пин направления, плавно набрать скорость, проехаться на постоянной скорости и плавно замедляться вплоть до позиции
-20мм. И таких ситуаций далеко не одна. В каждый такой момент
stepgen должен знать, что делать. И всё это можно увидеть в данной таблице.
antoxa-kylibin писал(а):А в будущем ещё нужно encoder повесить на сопроцессор и попробовать pid настроить в связке шд+энкодер!
Драйвера, типа
pwmgen и
encoder сделать очень легко. К тому же, в прошивке сопроцессора для этого всё уже есть.
Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 16:31
merkwurdigliebe
MX_Master писал(а):К примеру, позиция оси равна 0мм, а мы ей командуем ехать в позицию 10мм. И вот, каждый сервопериод, мы наблюдаем плавное увеличение скорости, которое не должно превышать лимиты скорости и ускорения. Затем -плавное замедление с точным попаданием в позицию 10мм. И это - простейший случай. А, допустим, мы на полном ходу скомандуем оси уехать в позицию -20мм. При этом stepgen не должен сразу рвать когти назад. Он должен плавно остановить движение, дёрнуть пин направления, плавно набрать скорость, проехаться на постоянной скорости и плавно замедляться вплоть до позиции -20мм. И таких ситуаций далеко не одна. В каждый такой момент stepgen должен знать, что делать.
хм. а надо ли этим степгену заниматься? я какое-то время назад писал на верилоге - без заморочек, максимально просто: каждый сервоцикл берется изменение позиции и генерится соответствующее количество импульсов. брезенхемом, с равномерными интервалами в течение сервопериода. ускорение и макс скорость должны быть ограничены выше - планировщиком траектории.
сервоцикл 0.44мс
макс скорость 600 мин-1 = 10 с-1 = 2000 шаг/с
получается даже на максимальной скорости мотор будет делать не более одного полного шага за сервопериод. на неравномерность изменения частоты импульсов от периода к периоду, имхо, можно смело забить... во всяком случае с микрошагом. или нет?
Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 17:30
MX_Master
Если изучить
оригинальный stepgen, можно заметить, что в настройках ему передаются лимиты скоростей и ускорений.
stepgen их активно использует. И это, несмотря на то, что у планировщика есть свои лимиты тоже.
Зачем? Возможно, для безопасности. Или для тех случаев, когда мы не используем планировщик для каких-то осей

Например, можно из командной строки (или каким-то компонентом) абсолютно независимо рулить отдельным мотором. Прямо во время выполнения УП. При этом независимый мотор не будет дёргаться в конвульсиях, благодаря встроенной проверке ускорений и скоростей. Очень удобный способ для какой-то параллельной автоматики.
Моя задача, кстати, повторить поведение оригинального
stepgen'a. Чтобы переход с одного на другой был незаметен. Изобретать новые и проводить тюнинг старых будем, когда в арсенале будет хотя бы один рабочий. На скринах, вощем-то, просто один из вариантов. Максимальная частота шагов может быть и 2 КГц, и 200 КГц, и даже 0.
Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 17:42
Serg
MX_Master писал(а):режим работы stepgen'a по позиции.
Про другой режим наверно лучше не говорить, хотя бы какое-то время.

Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 17:49
MX_Master
UAVpilot писал(а):Про другой режим наверно лучше не говорить, хотя бы какое-то время.
Сомневаюсь, что сюда зайдёт Алексей
(Hanter) и оспорит сказанное
Здесь чисто программерский кружок

Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 19:18
merkwurdigliebe
MX_Master писал(а):Моя задача, кстати, повторить поведение оригинального stepgen'a. Чтобы переход с одного на другой был незаметен.
ага, понятно, аргумент. я никогда с шаговыми моторами не ковырялся и чет упустил это дело...
Например, можно из командной строки (или каким-то компонентом) абсолютно независимо рулить отдельным мотором. Прямо во время выполнения УП. При этом независимый мотор не будет дёргаться в конвульсиях, благодаря встроенной проверке ускорений и скоростей. Очень удобный способ для какой-то параллельной автоматики.
так есть простенький компонент -
limit3, который это делает. я его недавно использовал чтобы рулить сервой вращающей тангенциальный нож в обход планировщика траектории. а насчет безопасности - сервоприводы, при управлении по позиции, по-умолчанию отрубаются с ошибкой, если скомандовать им прыгнуть куда-то далеко от текущего положения. и мне кажется, что это правильнее, чем пытаться долго и упорно туда ехать, маскируя тем самым ошибку задания...
Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 19:47
MX_Master
Честно говоря, в
LinuxCNC достаточно компонентов, чтобы сделать что-то разными способами. Но в данном случае, я делаю именно аналог оригинального компонента. А вот, к примеру, драйвер
stepgen'a для моего генератора на
STM32 использует другой подход. Он все значения пинов тупо отправляет в
STM32 и в ус не дует. Внутри
STM32'a свой собственный алгоритм и частота шагов меняется в 20 раз чаще.
Я, кстати, с сервами дел не имел.
Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 20:19
merkwurdigliebe
про аналог оригинального я уже понял из прошлого ответа

в 20 раз чаще чем сервоцикл?
Re: LinuxCNC + Orange Pi
Добавлено: 11 апр 2019, 20:27
MX_Master
merkwurdigliebe писал(а):в 20 раз чаще чем сервоцикл?
Внутри
STM'ки свой сервоцикл длиной в 50 мкс. И ей неважно какой сервоцикл на той стороне провода. Можно слать команды в любое время (: