LinuxCNC + Orange Pi (allwincnc)

Контроллеры, драйверы, датчики, управляющие устройства.
alex_sar
Мастер
Сообщения: 1718
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 286
Настоящее имя: Алексей
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение alex_sar »

Курдль писал(а): На мишени я увижу то
если хотите найти причину для понимания и исправления, я написал как.

если пожаловаться - можно дальше осциллографом продолжать )
Argentum47
Мастер
Сообщения: 867
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 97
Откуда: Саратов
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Argentum47 »

Курдль писал(а): 25 мар 2024, 19:34
Argentum47 писал(а): ну и всё, запускайте nmtui
И что? Там только wired connection
тады подключите провод и установите драйвера:

Код: Выделить всё

apt-get update && apt-get install firmware-realtek
Аватара пользователя
hmnijp
Мастер
Сообщения: 1723
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 526
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение hmnijp »

Курдль писал(а): G1 X0 Y0.5 M62 P01
G1 Y4.9 M63 P01
G1 X0 Y9.9 M62 P01
G1 Y10.3 M63 P01
The M62 & M63 commands will be queued. The actual change of the specified outputs will happen at the beginning of the next motion command.

А порядок точно соблюдается как нужно? просто у вас написано в одну строку, а по мануалу включение произойдет только в следующей строке содержащей motion command.
G1 X0 Y0.5
M62 P01
G1 Y4.9 >>> Включено
M63 P01
G1 X0 Y9.9 <<< Выключено
M62 P01
G1 Y10.3 >>> вкл
M63 P01
Курдль писал(а): В сигналах STEP никакой паузы нет, они идут ровной гребенкой.
Уточню, что проблема в нескольких миллисекундах или даже в десятке мс.
Думаю, это как-то планировщик подтормаживает. Надо с ускорениями, что ли поиграться и с предельными скоростями...
Планнер не может на это влиять. Есть сервоцикл (дефолтные 1мс, а сколько у вас?) - с этой периодичностью исполняется весь код - устанавливается значение пинов и отдаются команды железу... M62 - команда синхронизированная с движением - то есть она выполняется в пределах сервоцикла, а дальше уже хардварный драйвер должен установить частоту... ну и быстрее сервоцикла переключаться не будет тоже. + судя по картинке с анализатора у вас частота pwm не такая большая, сравнимая с самим сервоциклом. (с какой частотой dac проводит выборку чтобы получить аналоговый сигнал из шим? или сколько времени нужно ОУ при таком периоде). то есть 1-3мс набежит на этом всём.
2024-03-26 09-01-06.jpg (444 просмотра) <a class='original' href='./download/file.php?id=211386&sid=e1193a0a78c6c4b6d1e609bf73bbbda1&mode=view' target=_blank>Загрузить оригинал (37.17 КБ)</a>
Если диаметр пяточка 1.5мм, то ширина гребенки ~0.05мм.
Судя по подаче в уп (F1500 = 25мм/сек) - за 1 сервоцикл(1мс?) станок успевает перемещаться на 2.5 сотки - то есть гребенка ровно 2 сервоцикла - смещение на 1 вправо и 1 влево.

Зная точную величину смещения/задержки - в софте нет возможности коррекции G-кода на эту величину(2.5 сотки)?
Ещё есть компенсация люфта, которая в принципе должна сделать тоже самое, только подача должна быть неизменной...
sinkacnc
Мастер
Сообщения: 344
Зарегистрирован: 11 июл 2023, 10:35
Репутация: 28
Настоящее имя: Alexey
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение sinkacnc »

hmnijp писал(а): Ещё есть компенсация люфта
кстати! на люфт проверял? у меня на свежем ШВП 0.01мм, а вот на оси Y уже к 0.05 приближается
Аватара пользователя
Курдль
Мастер
Сообщения: 1993
Зарегистрирован: 20 мар 2018, 16:55
Репутация: 259
Настоящее имя: Курдль Энтеропийский
Откуда: Msk
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Курдль »

sinkacnc писал(а): кстати! на люфт проверял? у меня на свежем ШВП 0.01мм, а вот на оси Y уже к 0.05 приближается
Блин, друзья! Я сразу написал, что выполнил ту же УП на том же станке, но под другим контроллером (grbl) и результат оказался другим - без отступов.
Argentum47 писал(а): тады подключите провод и установите драйвера:
Делал и это. Кстати, для чистоты эксперимента переустановил Armbian_21.02.1_Orangepipc_buster_current_5.10.12_desktop
а потом еще раз
всё это (для просмотра содержимого нажмите на ссылку)
Realtek RTL8188EU chipset
Reinstalling Your Realtek Wireless Driver

1). Confirm your USB wireless adapter is using Realtek chipset

Open a terminal and then type in this command:

lsusb

If you see “Realtek Semiconductor Corp.” in the list, then move to the next step

2). Copy the rtl8812eu-5.1.5.zip file to the Downloads folder on your computer.
Then right-click the file and choose Extract Here. This will extract the driver
to the Downloads folder and place them in a subfolder called rtl8812au-5.1.5.

Open the Terminal and type the following, one line at a time.

cd Downloads
cd rtl8812eu-5.1.5
make
sudo make install

sudo service NetworkManager restart
or reboot your computer.
Может мне замнить orange Pi PC на orange Pi PC Plus? Этот вроде уже с WiFi модулем. Кто с ним работал?
Мой сайт: https://cnc1310.ru
Argentum47
Мастер
Сообщения: 867
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 97
Откуда: Саратов
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Argentum47 »

Курдль писал(а): Может мне замнить orange Pi PC на orange Pi PC Plus?
вам надо завести вайфай чтобы понять что вайфай вам на нём не нужен. Я ещё не видел ни одного юсб адаптера, который не чудил бы, ни за какие деньги, ни с какими чипами. на моей памяти только PCI-E асусы из верхнего ценового сегмента норм работают, но в данном случае они неприменимы и стоят больше самого пипца. У меня на пипце клиппер 3д принтером рулит, и пока я 10м провода до него не кинул, у меня с этим вайфаем столько геморроя непонятного было.
Аватара пользователя
Курдль
Мастер
Сообщения: 1993
Зарегистрирован: 20 мар 2018, 16:55
Репутация: 259
Настоящее имя: Курдль Энтеропийский
Откуда: Msk
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Курдль »

merkwurdigliebe писал(а): а точно лазер отстает, а не опережает? по фоткам непонятно...
ДА ЛАДНО!!!
Вы знали!!!
Я в шоке :thinking:
Действительно опережает.
photo_2024-03-26_15-13-18.jpg (362 просмотра) <a class='original' href='./download/file.php?id=211387&sid=e1193a0a78c6c4b6d1e609bf73bbbda1&mode=view' target=_blank>Загрузить оригинал (45.98 КБ)</a>
Я написал тестовую УП, где лазер движется зигзагом из левой нижней точки в правую верхнюю с шагом 0,1 мм.
При проходе через центральную линию, толщиной 0.02 мм, он дает вспышку.
Первые 3 цикла прописал специально так, чтобы вспышка была только при проходе слева направо.
Ну и остановил УП (верхняя точка) также при проходе луча слева направо.

Судя по картинке, точно лазер дает вспышку раньше, чем надо.
И как теперь с этим жить? :shock: :o

Проверьте меня, может я глючу:
фрагмент УП (для просмотра содержимого нажмите на ссылку)

Код: Выделить всё

G21 G17 G90
G0Z0
M3
G0 X40 Y0
G1 X0 F1000 S1000 M62 P01
G1 X19.99 Y0.049975 M63 P01
G1 X20.01 Y0.050025 M62 P01
G1 X40 Y0.1 M63 P01
G0 X0 Y0.2
G1 X19.99 Y0.249975 
G1 X20.01 Y0.250025 M62 P01
G1 X40 Y0.3 M63 P01
G0 X0 Y0.4
G1 X19.99 Y0.449975 
G1 X20.01 Y0.450025 M62 P01
G1 X40 Y0.5 M63 P01
G0 X0 Y0.6
G1 X19.99 Y0.649975 
G1 X20.01 Y0.650025 M62 P01
G1 X40 Y0.7 M63 P01
G1 X20.01 Y0.749975
G1 X19.99 Y0.750025 M62 P01
G1 X0 Y0.8 M63 P01
G1 X19.99 Y0.849975 
G1 X20.01 Y0.850025 M62 P01
G1 X40 Y0.9 M63 P01
G1 X20.01 Y0.949975
G1 X19.99 Y0.950025 M62 P01
G1 X0 Y1 M63 P01
G1 X19.99 Y1.049975 
G1 X20.01 Y1.050025 M62 P01
G1 X40 Y1.1 M63 P01
G1 X20.01 Y1.149975
G1 X19.99 Y1.150025 M62 P01
G1 X0 Y1.2 M63 P01
G1 X19.99 Y1.249975 
G1 X20.01 Y1.250025 M62 P01
G1 X40 Y1.3 M63 P01
G1 X20.01 Y1.349975
G1 X19.99 Y1.350025 M62 P01
G1 X0 Y1.4 M63 P01
Управляющая программа полностью
Последний раз редактировалось Курдль 26 мар 2024, 16:56, всего редактировалось 1 раз.
Мой сайт: https://cnc1310.ru
Аватара пользователя
Курдль
Мастер
Сообщения: 1993
Зарегистрирован: 20 мар 2018, 16:55
Репутация: 259
Настоящее имя: Курдль Энтеропийский
Откуда: Msk
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Курдль »

hmnijp писал(а): А порядок точно соблюдается как нужно? просто у вас написано в одну строку, а по мануалу включение произойдет только в следующей строке содержащей motion command.
Если бы я ошибся, получился бы негатив.
hmnijp писал(а): Есть сервоцикл (дефолтные 1мс, а сколько у вас?)
Я думал 1 мкс.

Код: Выделить всё

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 1000000
SERVO_PERIOD = 1000000
hmnijp писал(а): Ещё есть компенсация люфта, которая в принципе должна сделать тоже самое, только подача должна быть неизменной...
Спасибо за идею! Надо будет испытать.
Мой сайт: https://cnc1310.ru
alex_sar
Мастер
Сообщения: 1718
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 286
Настоящее имя: Алексей
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение alex_sar »

Курдль писал(а): И как теперь с этим жить?
вычислить задержку и включать лазер через https://linuxcnc.org/docs/html/man/man9 ... lay.9.html ?
Аватара пользователя
hmnijp
Мастер
Сообщения: 1723
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 526
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение hmnijp »

Курдль писал(а): Я думал 1 мкс.
SERVO_PERIOD = 1000000 нс = 1000мкс = 1мс = 1kHz
Аватара пользователя
Курдль
Мастер
Сообщения: 1993
Зарегистрирован: 20 мар 2018, 16:55
Репутация: 259
Настоящее имя: Курдль Энтеропийский
Откуда: Msk
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Курдль »

hmnijp писал(а): SERVO_PERIOD = 1000000 нс = 1000мкс = 1мс = 1kHz
А не маловато, если у меня на моем тихоходном станке сигналы STEP могут до 10 КГц доходить? Или эти сигналы не в серво-цикле генерируются?
Мой сайт: https://cnc1310.ru
гражданинъ
Мастер
Сообщения: 1247
Зарегистрирован: 07 фев 2020, 21:00
Репутация: 160
Настоящее имя: Дмитрий
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение гражданинъ »

Курдль писал(а): на orange Pi PC Plus
Надо помнить ,что то что ведёт к "окирпичиванию" девайса сидит именно в нём самом ! Вот в OP PC его нет !
Гражданином Непала может быть любой гражданин,зачатый НЕпалкой и НЕпальцем.
alex_sar
Мастер
Сообщения: 1718
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 286
Настоящее имя: Алексей
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение alex_sar »

Курдль писал(а): 26 мар 2024, 18:36
hmnijp писал(а): SERVO_PERIOD = 1000000 нс = 1000мкс = 1мс = 1kHz
А не маловато, если у меня на моем тихоходном станке сигналы STEP могут до 10 КГц доходить? Или эти сигналы не в серво-цикле генерируются?
В том то и смысл arisc драйвера что нет, не в нем.
Аватара пользователя
hmnijp
Мастер
Сообщения: 1723
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 526
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение hmnijp »

Курдль писал(а): А не маловато, если у меня на моем тихоходном станке сигналы STEP могут до 10 КГц доходить? Или эти сигналы не в серво-цикле генерируются?
Нет. ну как выше сказали, что степ не в нём генерируется. Каждый сервоцикл lcnc раздает команды (joint.N.pos-cmd / vel-cmd), например: говорит stepgen'ам "крутить двигатель с такой-то частотой", если управление по скорости, или если управление по положению - то говорит новую позицию, а аппаратный степген уже сам считает частоту(конкретная реализация зависит от разный аппаратных устройств/драйверов), и команда обновляется каждый сервоцикл.
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 608
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение merkwurdigliebe »

Курдль писал(а): Я в шоке
Действительно опережает.
хехе, ну можно придумать объяснение.. я со степгенами в lcnc ваще ни разу не ковырялся, но вспомниается, что там в дефолтных конфигах присутствует PID контроллер. а сервосистемы, в подавляющем большинстве случаев, имеют ненулевую ошибку рассогласования. т.е. отстают от задания на некую величину, пропорциональную скорости.
если у вас в конфигах PID в задании положения нет - придется придумать что-то другое :)
но, в любом случае, опережение легко можно скомпенсировать задержной сигнала включения/выключения лазера, как уже посоветовали...
Аватара пользователя
Курдль
Мастер
Сообщения: 1993
Зарегистрирован: 20 мар 2018, 16:55
Репутация: 259
Настоящее имя: Курдль Энтеропийский
Откуда: Msk
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Курдль »

hmnijp писал(а): Нет. ну как выше сказали, что степ не в нём генерируется.
Ага! По аналогии с используемым мной сейчас системой управления:
1. Mach3 из G-кодов УП генерирует траекторию (в linuxcnc EMCMOT)
2. Плагин считывает её из DRO и отправляет в контроллер данные о перемещениях
3. Контроллер формирует управляющие сигналя для исполнительных механизмов (arisc)
Правильно я понял?
merkwurdigliebe писал(а): если у вас в конфигах PID в задании положения нет - придется придумать что-то другое
но, в любом случае, опережение легко можно скомпенсировать задержной сигнала включения/выключения лазера, как уже посоветовали...
Вернуться к началу
В конфигах PID не найдено.
Задержка будет варьироваться от линейной скорости. Но в принципе, можно принять за константу скорость на траектории растровой засветки и по ней вычислить. А для других режимов эта величина не критична. Можно конечно, лазер включать только по пути в одну сторону, но это увеличит время и износ.
Мой сайт: https://cnc1310.ru
alex_sar
Мастер
Сообщения: 1718
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 286
Настоящее имя: Алексей
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение alex_sar »

всё расписывать смысла нет, да я всего и не знаю. знаю что раз в сервоцикл (у вас 1ms) "ядро" linuxcnc получает значения обратной связи, делает всякие вычисления и отдаёт команду перемещения осям, шпинделям и прочим digital-out.

во всякие детали типа abz энкодеров, step/dir, ядро не погружается, ему эти детали реализации по барабану. что его интересует всё написано здесь https://linuxcnc.org/docs/html/man/man9/motion.9.html

каждую 1ms компоненту arisc приходит команда - например выдать столько-то пульсов за цикл (условно, не знаю точно как это именно в нём) и он её тупо исполняет, а обратно (в следующем цикле) возвращает сколько пульсов получилось сделать.

можете отследить куда у вас подключен пин joint.0.motor-pos-cmd например. это как раз команда на ось x. а joint.0.motor-pos-fb - это обратная связь от оси (в вашем случае виртуальная, по количеству выданных пульсов).

и вообще все rt компоненты у вас исполняют код раз в сервоцикл, но они могут заряжать какой нибудь процесс в это время - например начать выдавать сигнал с определенной частотой.

Курдль писал(а): Задержка будет варьироваться от линейной скорости. Но в принципе, можно принять за константу скорость на траектории растровой засветки и по ней вычислить.
ещё надо учесть дискретность - задержка может быть только кратна сервоциклу 1ms
может быть даже проще использовать https://linuxcnc.org/docs/html/man/man9/debounce.9.html вместо timedelay
Аватара пользователя
hmnijp
Мастер
Сообщения: 1723
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 526
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение hmnijp »

alex_sar писал(а): ещё надо учесть дискретность - задержка может быть только кратна сервоциклу 1ms
я по тому и предложил попробовать компенсацией люфта этого добиться, чтобы планнер изначально готовил траекторию смещенную на небольшое значение. а то у него и так рассинхрон по расстоянию всего лишь на 1сервоцикл, или даже меньше, если он убавит подачу...
Аватара пользователя
Курдль
Мастер
Сообщения: 1993
Зарегистрирован: 20 мар 2018, 16:55
Репутация: 259
Настоящее имя: Курдль Энтеропийский
Откуда: Msk
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Курдль »

hmnijp писал(а): Судя по подаче в уп (F1500 = 25мм/сек) - за 1 сервоцикл(1мс?) станок успевает перемещаться на 2.5 сотки - то есть гребенка ровно 2 сервоцикла - смещение на 1 вправо и 1 влево.
Поразительная точность! После ряда измерений получил значение опережения сигнала на 0.2 - 0.3 мс.
alex_sar писал(а): вычислить задержку и включать лазер через https://linuxcnc.org/docs/html/man/man9 ... lay.9.html ?
Я так и сделал. Спасибо. Только у timedelay есть неприятный эффект: если импульс короче задержки, то он будет потерян.
alex_sar писал(а): ещё надо учесть дискретность - задержка может быть только кратна сервоциклу 1ms
может быть даже проще использовать https://linuxcnc.org/docs/html/man/man9/debounce.9.html вместо timedelay
Чем это проще? Я пока не понимаю таких тонкостей.
hmnijp писал(а): я по тому и предложил попробовать компенсацией люфта этого добиться, чтобы планнер изначально готовил траекторию смещенную на небольшое значение. а то у него и так рассинхрон по расстоянию всего лишь на 1сервоцикл, или даже меньше, если он убавит подачу...
Компенсация люфта будет наверное сдвигать точку срабатывания на постоянное расстояние, а фактически оно меняется от скорости перемещения.
В результате получил удовлетворительный результат:
laser_test_2.jpg (165 просмотров) <a class='original' href='./download/file.php?id=211419&sid=e1193a0a78c6c4b6d1e609bf73bbbda1&mode=view' target=_blank>Загрузить оригинал (276.93 КБ)</a>
Мой сайт: https://cnc1310.ru
alex_sar
Мастер
Сообщения: 1718
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 286
Настоящее имя: Алексей
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение alex_sar »

Курдль писал(а): Чем это проще? Я пока не понимаю таких тонкостей.
timedelay все равно отрабатывает/пересчитывается один раз в сервоцикл. то есть между сервоциклами он не сработает. поэтому есть смысл считать в целых циклах. debounce как раз это и будет делать.
Ответить

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