Страница 124 из 129

Re: LinuxCNC + Orange Pi

СообщениеДобавлено: 04 апр 2019, 09:18
MX_Master
1f7 писал(а):пилят, сырая конечно но уже загружается https://dl.armbian.com/orangepi3/

"уже загружается" звучит ободряюще ((: примерно за ту же цену можно взять 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 по позиции. Без наглядных значений каждой переменной в каждом сервопериоде, очень сложно понять, что происходит. Я до этого несколько раз пробовал представить каждый шаг процесса в уме. Но оперативки никогда не хватало :hehehe: Вощем, LibreOffice Calc во всех отношениях рулит.

LinuxCNC + Orange Pi 2019-04-11_105152.png
LinuxCNC + Orange Pi 2019-04-11_105051.png

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
UAVpilot
MX_Master писал(а):режим работы stepgen'a по позиции.

Про другой режим наверно лучше не говорить, хотя бы какое-то время. :hehehe:

Re: LinuxCNC + Orange Pi

СообщениеДобавлено: 11 апр 2019, 17:49
MX_Master
UAVpilot писал(а):Про другой режим наверно лучше не говорить, хотя бы какое-то время.

Сомневаюсь, что сюда зайдёт Алексей (Hanter) и оспорит сказанное :hehehe:
Здесь чисто программерский кружок :)

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 мкс. И ей неважно какой сервоцикл на той стороне провода. Можно слать команды в любое время (: