Накапливается ошибка на станке

flank

ШВП
В мач поигрался параметрами step pulse, dir pulse, поставил на 5мс, теперь за 3 прогона тестовой программы ошибка набирается не более 0.05мм, это нормально?
Потестирую остальные 2 оси

Граф

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

flank

попробовал другие оси, так же в пределах 5 соток ошибка за 3 прогона тестовой программы (после каждого прогона ошибку не обнулял), иногда ошибка 0 выходит

пробовал как на старом ноуте, так и на собраном вчера компе, результат одинаковый

flank

взял другу программу для тестов, опять ошибка под 1мм поперла 😦

flank
Lodochnik:

Попробуйте в МАСН сменить активый уровень DIR-a и поменять выходы одной обмотки моторов местами. То есть изменим программно направление и аппаратно, чтобы движение было правильным. Если проблема с оптронами, то ошибка должна будет накапливаться в другую сторону.

наконец то попробовал в софте изменить и фазы поменял, т.е. двигатель не изменил вращение, ошибка пошла в другую сторону

LehaBarnaul

Очень похоже пропуск шагов. Попробуйте поиграться с микрошагом и ускорением. Не так давно сталкивался с подобной проблемой, вылечил поставив шаг 1-256, вопрос был актуален при пилении очень мелких рельефов, (детали для ювилирки)
На больших деталях, наоборот вышло, пришлось опять 1-16 микрошаг ставить.

flank

шагом игрался, от 1 до 1/16, меньше не выставить, с шагом 1 ошибка больше выходит.

Baha
flank:

шагом игрался, от 1 до 1/16, меньше не выставить, с шагом 1 ошибка больше выходит.

а в твоем G коде нет перемещений размером меньше шага?

flank

неее, на столько мелкие вещи не делал, сейчас для теста использую программу фрезировки платы

имею ШВП с шагом 5мм, двигатель 200 шагов на оборот, значит минимальный шаг 0.025, но с учетом микрошага 16, выходит 0,0015625

Creolka
Граф:

Кроме того, не смотря на дробление шага, шаговый мотор фиксируется в ближайшем шаге или полушаге.

Не совсем верно, а точнее совсем не верно.
Деление полного шага на микрошаг происходит посредством аналогового дискретного деления напряжения полного шага на промежуточные шаги
и выражается это в соотношении потенциалов поданных на катушки мотора.
Причём положение полюса мотора будет сохраняться сколь угодно долго, пока есть напряжение.
Если в этот момент обесточить мотор, то да, ротор провернётся всторону ближайшего магнитного полюса соответствующего положению полного шага, а не полушага.