если хотите найти причину для понимания и исправления, я написал как.
если пожаловаться - можно дальше осциллографом продолжать )
тады подключите провод и установите драйвера:Курдль писал(а): ↑25 мар 2024, 19:34И что? Там только wired connectionArgentum47 писал(а): ↑ ну и всё, запускайте nmtui
Код: Выделить всё
apt-get update && apt-get install firmware-realtek
The M62 & M63 commands will be queued. The actual change of the specified outputs will happen at the beginning of the next motion command.
Планнер не может на это влиять. Есть сервоцикл (дефолтные 1мс, а сколько у вас?) - с этой периодичностью исполняется весь код - устанавливается значение пинов и отдаются команды железу... M62 - команда синхронизированная с движением - то есть она выполняется в пределах сервоцикла, а дальше уже хардварный драйвер должен установить частоту... ну и быстрее сервоцикла переключаться не будет тоже. + судя по картинке с анализатора у вас частота pwm не такая большая, сравнимая с самим сервоциклом. (с какой частотой dac проводит выборку чтобы получить аналоговый сигнал из шим? или сколько времени нужно ОУ при таком периоде). то есть 1-3мс набежит на этом всём.
Блин, друзья! Я сразу написал, что выполнил ту же УП на том же станке, но под другим контроллером (grbl) и результат оказался другим - без отступов.
Делал и это. Кстати, для чистоты эксперимента переустановил Armbian_21.02.1_Orangepipc_buster_current_5.10.12_desktopArgentum47 писал(а): ↑ тады подключите провод и установите драйвера:
вам надо завести вайфай чтобы понять что вайфай вам на нём не нужен. Я ещё не видел ни одного юсб адаптера, который не чудил бы, ни за какие деньги, ни с какими чипами. на моей памяти только PCI-E асусы из верхнего ценового сегмента норм работают, но в данном случае они неприменимы и стоят больше самого пипца. У меня на пипце клиппер 3д принтером рулит, и пока я 10м провода до него не кинул, у меня с этим вайфаем столько геморроя непонятного было.
ДА ЛАДНО!!!merkwurdigliebe писал(а): ↑ а точно лазер отстает, а не опережает? по фоткам непонятно...
Если бы я ошибся, получился бы негатив.
Я думал 1 мкс.
Код: Выделить всё
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 1000000
SERVO_PERIOD = 1000000
Спасибо за идею! Надо будет испытать.
вычислить задержку и включать лазер через https://linuxcnc.org/docs/html/man/man9 ... lay.9.html ?
А не маловато, если у меня на моем тихоходном станке сигналы STEP могут до 10 КГц доходить? Или эти сигналы не в серво-цикле генерируются?
Надо помнить ,что то что ведёт к "окирпичиванию" девайса сидит именно в нём самом ! Вот в OP PC его нет !
Нет. ну как выше сказали, что степ не в нём генерируется. Каждый сервоцикл lcnc раздает команды (joint.N.pos-cmd / vel-cmd), например: говорит stepgen'ам "крутить двигатель с такой-то частотой", если управление по скорости, или если управление по положению - то говорит новую позицию, а аппаратный степген уже сам считает частоту(конкретная реализация зависит от разный аппаратных устройств/драйверов), и команда обновляется каждый сервоцикл.
хехе, ну можно придумать объяснение.. я со степгенами в lcnc ваще ни разу не ковырялся, но вспомниается, что там в дефолтных конфигах присутствует PID контроллер. а сервосистемы, в подавляющем большинстве случаев, имеют ненулевую ошибку рассогласования. т.е. отстают от задания на некую величину, пропорциональную скорости.
Ага! По аналогии с используемым мной сейчас системой управления:
В конфигах PID не найдено.merkwurdigliebe писал(а): ↑ если у вас в конфигах PID в задании положения нет - придется придумать что-то другое
но, в любом случае, опережение легко можно скомпенсировать задержной сигнала включения/выключения лазера, как уже посоветовали...
Вернуться к началу
ещё надо учесть дискретность - задержка может быть только кратна сервоциклу 1ms
я по тому и предложил попробовать компенсацией люфта этого добиться, чтобы планнер изначально готовил траекторию смещенную на небольшое значение. а то у него и так рассинхрон по расстоянию всего лишь на 1сервоцикл, или даже меньше, если он убавит подачу...
Поразительная точность! После ряда измерений получил значение опережения сигнала на 0.2 - 0.3 мс.
Я так и сделал. Спасибо. Только у timedelay есть неприятный эффект: если импульс короче задержки, то он будет потерян.alex_sar писал(а): вычислить задержку и включать лазер через https://linuxcnc.org/docs/html/man/man9 ... lay.9.html ?
Чем это проще? Я пока не понимаю таких тонкостей.alex_sar писал(а): ↑ ещё надо учесть дискретность - задержка может быть только кратна сервоциклу 1ms
может быть даже проще использовать https://linuxcnc.org/docs/html/man/man9/debounce.9.html вместо timedelay
Компенсация люфта будет наверное сдвигать точку срабатывания на постоянное расстояние, а фактически оно меняется от скорости перемещения.