LinuxCNC + Orange Pi (allwincnc)

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

1f7 писал(а):пилят, сырая конечно но уже загружается https://dl.armbian.com/orangepi3/
"уже загружается" звучит ободряюще ((: примерно за ту же цену можно взять rockpi4 (1гб), где всё полноценно работает, и видеочип, и pci-e (m.2), и usb 3.0.

не стоит дергаться
_Pavel
Кандидат
Сообщения: 89
Зарегистрирован: 28 май 2015, 06:50
Репутация: 5
Настоящее имя: Павел
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение _Pavel »

MX_Master писал(а):Про килогерцы не надо судить по себе (:
Так ты мне объясни куда их и как применять. Я может сразу мегагерц захочу )))
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Для ШВП с шагом 4-5 мм, для плавной и быстрой работы 17 КГц мало (:
Для линейки с разрешением в микрон 17 КГц мало (:

Станок должен работать максимально быстро, особенно, на холостых ходах. Это же всё рабочее время. Чем оно меньше, тем больше можно сделать.
_Pavel
Кандидат
Сообщения: 89
Зарегистрирован: 28 май 2015, 06:50
Репутация: 5
Настоящее имя: Павел
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение _Pavel »

MX_Master писал(а):Для линейки с разрешением в микрон 17 КГц мало (:
Аааа, ну если в один микрон :-0 , то тогда конечно :-0
Так надо еще будет импульсы успеть обработать, я даже не знаю какого проца для этого хватит. По хорошему ПЛИСа нужна.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Там же внутри шпарит сопроцессор с частотой 450 МГц.
Модуль подсчёта импульсов я там реализовал.
Оно, канеш, мегагерцы не ест, но сотни килогерц может.
_Pavel
Кандидат
Сообщения: 89
Зарегистрирован: 28 май 2015, 06:50
Репутация: 5
Настоящее имя: Павел
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение _Pavel »

Задача конечно интересная, но сложная. Тут надо ИМХО как то в ядро залазить, чтоб счетчики независимо от планировщика задач работали и чтоб еще этот реалтайм не нарушить.
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

_Pavel писал(а):Тут надо ИМХО как то в ядро залазить
Павел, а "личку" посмотри. Я тебе ссылочку на готовые пакеты для Н5 зачем послал?
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

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

MX_Master писал(а):Там же внутри шпарит сопроцессор с частотой 450 МГц.
Модуль подсчёта импульсов я там реализовал.
Оно, канеш, мегагерцы не ест, но сотни килогерц может.
Ждемс килогерцов :-).... я вот видел на али линейки с разрешением 5 микрон. Они и дешевле и для не промышленных станков вполне достаточно. По моим сугубо теоретическим прикидкам на скорости 3000мм/мин она будет выплевывать импульсы на 10кгц....а это блин lpt порт даже должен переварить....или я фигню сморозил? Только не бейте :)
_Pavel
Кандидат
Сообщения: 89
Зарегистрирован: 28 май 2015, 06:50
Репутация: 5
Настоящее имя: Павел
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение _Pavel »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Наконец-то, добил формулы для двух режимов stepgen'a с симуляцией в электронных таблицах. Надо провести ещё несколько тестов, подчистить косяки и можно заливать все эти формулы в код драйвера. Больше всего времени отнял режим работы stepgen'a по позиции. Без наглядных значений каждой переменной в каждом сервопериоде, очень сложно понять, что происходит. Я до этого несколько раз пробовал представить каждый шаг процесса в уме. Но оперативки никогда не хватало :hehehe: Вощем, LibreOffice Calc во всех отношениях рулит.
2019-04-11_105152.png (1795 просмотров) <a class='original' href='./download/file.php?id=160716&mode=view' target=_blank>Загрузить оригинал (105.12 КБ)</a>
2019-04-11_105051.png (1795 просмотров) <a class='original' href='./download/file.php?id=160717&mode=view' target=_blank>Загрузить оригинал (101.97 КБ)</a>
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

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

Я например ничего не понял из этих скринов....ждем первого релиза драйвера! А в будущем ещё нужно encoder повесить на сопроцессор и попробовать pid настроить в связке шд+энкодер!
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

antoxa-kylibin писал(а):Я например ничего не понял из этих скринов....ждем первого релиза драйвера!
Это пошаговая симуляция. Одна строка = сервопериод. В каждом сервопериоде видно состояние каждой переменной и основных входных/выходных пинов драйвера. Для каждой переменной и выходных пинов есть ряд формул, по которым вычисляются их значения. А также видно сколько раз и куда нужно дёргать GPIO пины.

Каждый сервопериод stepgen вычисляет значения скорости (частоту) и направления, чтобы с учётом всех параметров попасть ровно в указанную позицию. Та ещё тягомотина :)

К примеру, позиция оси равна 0мм, а мы ей командуем ехать в позицию 10мм. И вот, каждый сервопериод, мы наблюдаем плавное увеличение скорости, которое не должно превышать лимиты скорости и ускорения. Затем -плавное замедление с точным попаданием в позицию 10мм. И это - простейший случай. А, допустим, мы на полном ходу скомандуем оси уехать в позицию -20мм. При этом stepgen не должен сразу рвать когти назад. Он должен плавно остановить движение, дёрнуть пин направления, плавно набрать скорость, проехаться на постоянной скорости и плавно замедляться вплоть до позиции -20мм. И таких ситуаций далеко не одна. В каждый такой момент stepgen должен знать, что делать. И всё это можно увидеть в данной таблице.
antoxa-kylibin писал(а):А в будущем ещё нужно encoder повесить на сопроцессор и попробовать pid настроить в связке шд+энкодер!
Драйвера, типа pwmgen и encoder сделать очень легко. К тому же, в прошивке сопроцессора для этого всё уже есть.
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 609
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение merkwurdigliebe »

MX_Master писал(а):К примеру, позиция оси равна 0мм, а мы ей командуем ехать в позицию 10мм. И вот, каждый сервопериод, мы наблюдаем плавное увеличение скорости, которое не должно превышать лимиты скорости и ускорения. Затем -плавное замедление с точным попаданием в позицию 10мм. И это - простейший случай. А, допустим, мы на полном ходу скомандуем оси уехать в позицию -20мм. При этом stepgen не должен сразу рвать когти назад. Он должен плавно остановить движение, дёрнуть пин направления, плавно набрать скорость, проехаться на постоянной скорости и плавно замедляться вплоть до позиции -20мм. И таких ситуаций далеко не одна. В каждый такой момент stepgen должен знать, что делать.
хм. а надо ли этим степгену заниматься? я какое-то время назад писал на верилоге - без заморочек, максимально просто: каждый сервоцикл берется изменение позиции и генерится соответствующее количество импульсов. брезенхемом, с равномерными интервалами в течение сервопериода. ускорение и макс скорость должны быть ограничены выше - планировщиком траектории.

сервоцикл 0.44мс
макс скорость 600 мин-1 = 10 с-1 = 2000 шаг/с

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

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

Зачем? Возможно, для безопасности. Или для тех случаев, когда мы не используем планировщик для каких-то осей :) Например, можно из командной строки (или каким-то компонентом) абсолютно независимо рулить отдельным мотором. Прямо во время выполнения УП. При этом независимый мотор не будет дёргаться в конвульсиях, благодаря встроенной проверке ускорений и скоростей. Очень удобный способ для какой-то параллельной автоматики.

Моя задача, кстати, повторить поведение оригинального stepgen'a. Чтобы переход с одного на другой был незаметен. Изобретать новые и проводить тюнинг старых будем, когда в арсенале будет хотя бы один рабочий. На скринах, вощем-то, просто один из вариантов. Максимальная частота шагов может быть и 2 КГц, и 200 КГц, и даже 0.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Serg »

MX_Master писал(а):режим работы stepgen'a по позиции.
Про другой режим наверно лучше не говорить, хотя бы какое-то время. :hehehe:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

UAVpilot писал(а):Про другой режим наверно лучше не говорить, хотя бы какое-то время.
Сомневаюсь, что сюда зайдёт Алексей (Hanter) и оспорит сказанное :hehehe:
Здесь чисто программерский кружок :)
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 609
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение merkwurdigliebe »

MX_Master писал(а):Моя задача, кстати, повторить поведение оригинального stepgen'a. Чтобы переход с одного на другой был незаметен.
ага, понятно, аргумент. я никогда с шаговыми моторами не ковырялся и чет упустил это дело...
Например, можно из командной строки (или каким-то компонентом) абсолютно независимо рулить отдельным мотором. Прямо во время выполнения УП. При этом независимый мотор не будет дёргаться в конвульсиях, благодаря встроенной проверке ускорений и скоростей. Очень удобный способ для какой-то параллельной автоматики.
так есть простенький компонент - limit3, который это делает. я его недавно использовал чтобы рулить сервой вращающей тангенциальный нож в обход планировщика траектории. а насчет безопасности - сервоприводы, при управлении по позиции, по-умолчанию отрубаются с ошибкой, если скомандовать им прыгнуть куда-то далеко от текущего положения. и мне кажется, что это правильнее, чем пытаться долго и упорно туда ехать, маскируя тем самым ошибку задания...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Честно говоря, в LinuxCNC достаточно компонентов, чтобы сделать что-то разными способами. Но в данном случае, я делаю именно аналог оригинального компонента. А вот, к примеру, драйвер stepgen'a для моего генератора на STM32 использует другой подход. Он все значения пинов тупо отправляет в STM32 и в ус не дует. Внутри STM32'a свой собственный алгоритм и частота шагов меняется в 20 раз чаще.
Я, кстати, с сервами дел не имел.
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 609
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение merkwurdigliebe »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

merkwurdigliebe писал(а):в 20 раз чаще чем сервоцикл?
Внутри STM'ки свой сервоцикл длиной в 50 мкс. И ей неважно какой сервоцикл на той стороне провода. Можно слать команды в любое время (:
Ответить

Вернуться в «Электроника»