Stalker писал(а):Микрошаг:16 -> шагов на единицу перемещения (200*16) - это шагов на оборот вала шестерни на движке на 1 оборот. Чтобы повернуть ось умножаем ещё на 6 = 19200. Это 360 градусов. Значит на 1 градус - 19200/360 = 53.3(3) тут все верно тоже надеюсь? Вот и есть дробное число шагов на единицу перемещения.
Вы совершенно правы. При Вашем коэффициенте редукции количество шагов на 1 градус будет дробным. Приведенные Вами расчеты верны, но выводы я бы сделал другие. 53,(3) - это математически точное количество шагов на 1 градус, которое Вы задать в программе не сможете. Давайте зададим 53,3333. Тогда погрешность перемещения на 1 градус составит 0,0000(3) шага. Умножим на 360, получим погрешность 0,012 шага. 1 шаг = 360 / 19200 = 0,01875 градусов, откуда 0,012 шага - это 0,01875 * 0,012 = 0,000225 градуса. Получили погрешность при повороте оси на 360 градусов при заданном количестве шагов на градус - 53,3333 вместо 53,(3). Если убрать микрошаг, чего я Вам делать не рекомендую по разным причинам, погрешность возрастет в 16 раз, но даже это глазом не будет заметно.
А вот если Вы проведете эксперимент и дадите команду G0A360000, т.е. сделаете 1000 оборотов оси, то и погрешность набежит, и Вы получите уже 0,225 градусов ошибки.
Отсюда вывод: заданной точности 4 знака достаточно для того, чтобы не думать про погрешность, с одним исключением. При подготовке УП в САМ нельзя делать непрерывную ротационную обработку, при которой поворотная ось вращается всегда в одну сторону. В этой стратегии обработки за время работы ось сделает несколько тысяч оборотов и тогда ошибка набежит.
Теперь про
Stalker писал(а):По большому счету шд останавливается только на полном шаге - 1,8 градусов.
Не совсем так. Если включен микрошаг 1/16, двигатель стоит в полюсе, и в драйвер придет команда переместиться на 5 микрошагов, то ротор двигателя встанет где-то между полюсами. Не гарантируется, что точно в 5/16 полного шага, но ротор точно сдвинется в нужном направлении. А так ли это важно, если один полный шаг ШД равен 0,3 градуса? Главное, чтобы при подаче 5 микрошагов в другую сторону двигатель вернулся в полюс. А это как раз гарантируется драйвером.
И наконец, про то, как любая ЧПУ система обрабатывает шаги. Напомню, что микрошаг, т.е. деление шага на части существует только в драйвере. Система управления работает в шагах. Просто, 1 шаг для системы управления - это один микрошаг для драйвера. Допустим, в системе задано, что для перехода на 1 градус требуется 53,3 шага. Приходит команда перемещения на 1 градус. Система дает 53 импульса и запоминает, что есть остаток несделанных шагов 0,3 штуки. Перемещаем еще на 1 градус: 53,3 + 0,3 "в уме" = 53,6. Система делает 54 шага и запоминает ошибку -0,4 шага. Еще один градус: 53,3 + (-0,4) = 52,9. Делаем 53 шага, ошибка -0,1. И так далее.
В итоге, да, количество шагов, выданное в драйвер, всегда целое, но оно не совпадает с точным желаемым на +- 0.5 микрошага, а эта величина пренебрежительно мала. Люфты и деформации в механике Вашей оси гораздо больше.
По существу Вашего вопроса о том, что повортка недокручивает довольно сильно, давайте будем разбираться не на этом форуме, а в техподдержке. Вашу заявку видели и в ближайшее время Вам ответим.