Шаговый двигатель 28BYJ-48. Прошу помощи в доработке класса

У меня только marlin на нём именно так и получается. Скорость движения головы существенно ниже скорости подачи команд поэтому сам процесс движения при интерполяции выглядит плавным. Но это не отменяет факта что

Чего это видны будут? Шаговый двигатель по определению вещь дискретная. И какая бы мощная система ЧПУ им не управляла, всё равно получается ступенька, хоть по очереди, хоть одновременно.
В реальных системах степень “ломкости” кривых настраивается, это уже вопрос быстродействия МК.

Это сервоприводы так могут, и то из-за энерции.

У меня тут 3 станка токарных ЧПУ, со стойкой Сименс и шаговыми двигателями (трехполюсными), шарики точат с высоким квалитетом…

Спор бессмысленный.
Ну не хватит мощностей 8битного AVR для расчетов в реальном времени движения осей с интерполяцией.

Не хвати 100% для промышленного токарного: большие скорости, резьбы. И ещё подачу необходимую поддерживать.
Для “деревяшечного” не так однозначно, там не такие жёсткие требования.
Опять же ж, распределение задач наше всё: 1 МК(мощный,ARM какой-нить) работает на human интерфейс и прочее, другой управляет приводами, получая элементарные команды типа “ось Х на 1 шаг влево, Y шаг вправо”.
В такой связке работают ЧПУ Mach3(которая, по сути, получает элементарные команды и сигналы со станка).
Так что спора нет, я согласен)))

Насколько помню Mach3 и NCStudio в интерполяцию тоже не умеют.

Именно, этим занимается всегда Главный(ПК или МК). Даже там, где есть команды G2 G3. Они же так или иначе разбиваются незаметно для пользователя.
И в любой ЧПУ системе есть параметр, отвечающийй за количество команд джикода, считываемых заранее. Как раз для расчёта ускорений, среза углов и т.п.

В ЧПУ делалось так: “теоретическая” точка движется, а на привода задается задание в видет ПИД-регуляторов по отклонению Реал-Теор точка. Чем больше скорость, тем больше погрешность по отслеживанию.
Вроде так.

Сейчас погрешность обычно не более нескольких микрон, и то при резком изменении скорости.
Там же ж 3 контура регулирования: по положению, по скорости, по моменту. Все они дают идеальную управляемость привода.
Например на FMS-3000, 3400 по-умолчанию системный тик 1мс. 1000 раз в секунду отслеживает и регулирует привода.

Кстати! Когда разбирался в потрохах станка, оказалось что Программа Электроавтоматики(ПЭ) ни что иное как Loop в Ардуйне. Банально бесконечный цикл считает всё что там написал наладчик.

Нет не так.
Там параметр RAMP, разгон/торможение.
Торможение начинается только при подходе к точке и не по PID. Нельзя скорость менять по PID, неравномерная подача будет.Тупо по расстоянию или времени.
“погрешность по отслеживанию” или сервоошибка должна, в соответствии с теорией приводов, быть пропорциональна скорости подачи и не превышать значение указанное в параметрах характеризации станка.
И да, для корректной интерполяции жесткость (коэффициент усиления), всех осей участвующих в процессах интерполяции должна обеспечивать сопоставимую сервоошибку. Т.е. если привод Х при движении на скорости 2000мм/мин имеет сервоошибку в 2мм, то ось У должна иметь на этой скорости точно такую же ошибку

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

отож, они открывают циклограмму и смотрят, какой датчик дал дуба и тупо его меняют (сначала проверив подвигав флажок)

Этим занимается сервисный инженер или ремонтник.

Наладчик станков ЧПУ занимается проверкой и правкой программы обработки, коррекцией инструмента и следит как правило за изготовлением первых деталей. После чего передает станок в кривые лапы оператора.

Впрочем с обязанностями всех вовлечённых в процесс можно ознакомится в умной книжке.
Называется : “Единый Тарифно Квалификационный Справочник”, сокращённо ЕКТС.

Не путайте оператора-наладчика ЧПУ с инженером-наладчиком. Именно он определяет Электроавтоматику. Это я не чётко сформулировал.
Ведь сам компуктер и всяческие интерфейсные платы это одно, а станок это другое. Там жеж настройка идёт под конкретные привода, ШВП, системы защиты, смазки ит.д. и т.п.
Конечно, чаще всего их не с нуля пишут, а корректируют типовые.
Ни один производитель не знает к какому выводу будет подключен конвейер стружки или насос СОЖ и уж точно заранее неизвестна масса суппорта станка, а это напрямую влияет на настройки ПИД-регулятора.
И таких настроек и возможностей сотни.
Да по сути идея плат Ардуино это детская копия. Один в один.

Это называется характеризация.
Зачем ты мне рассказываешь, что и как пишут ?
Этим занимаюсь я. Инженер-конструктор.
А кто такой “инженер-наладчик” я понятия не имею. ЕКТС тоже про таких не слышал.
Какой производитель не знает ?
Производитель стойки ЧПУ ?
Ему не надо знать.
Он написал программу стойки.
А в каком качестве будет выступать эта стойка ему знать и не надо. Он предоставил пакет документации и этого достаточно.
Оборудование подбирает конструктор.
Схему подключения рисует конструктор.
Характеризацию станка производит конструктор.
Программу логики встроенного ПЛК пишет конструктор.
В противном случае конструктор "охереет объяснять “инженеру-наладчику”, что и как должно работать.
Единственное, после сборки станка и поверке функционала инженер-мехатроник проводит измерения и вносит в стойку таблицу коррекции (отклонения геометрии и неравномерность винтов).
После этого, возможно но необязательно, программист напишет постпроцессор программы обработки.

Мне нравилось наблюдать за тем, как режущий инструмент берется из одного гнезда карусели (правильно называю?) и возвращается в другое гнездо. И станок помнит в своей башке, где хранится этот инструмент. И берет его оттуда, куда положил.

Он ничего не помнит - просто выполняет заложенную программу: “положить инструмент в ячейку хх”, “взять инструмент из ячейки хх” :wink:

Это самое сложное место в программе электроавтоматики.
На С/С++ программа сложности никакой не представляет, но в стойках ЧПУ в основном используется LD, а тут уже сплошные вилы и грабли.

Чой та ?
В данном случае он именно должен помнить, что бы вернуть его не куда попало, а на прежнее место.
К каждой ячейке привязаны коррекции на высоту и диаметр инструмента.

Есть ещё вариант с матрицей инструмента, когда он пихает куда ближе, но там реализация ещё сложнее.
В случае с револьверный барабаном смысла не имеет. В цепном барабане вполне применим.