4.3.7. Обнаружение потери шагов¶
Данный режим используется главным образом если производится работа с шаговым двигателем на предельных скоростях или нагрузках, где возможно застревание оси, приводящее к потере шагов. В этом случае дополнительный датчик положения (датчик оборотов или энкодер) позволяет отследить этот момент уведомить пользователя. Данная функция используется только совместно с шаговыми двигателями и позволяет обнаруживать потерю шагов. Все координаты и положения оси мотора измеряются в шагах и микрошагах.
При использовании энкодера в контроллере сохраняется значение количества шагов двигателя и отсчётов энкодера на оборот (см. вкладку XiLab Настройка кинематики движения). При включении функции, контроллер сохраняет текущую позицию в шагах ШД и текущую позицию по данным энкодера. Далее, в ходе движения, позиция по энкодеру преобразовывается в шаги и, если разница оказывается больше заданного значения, осуществляется индикация проскальзывания и переход в режим Alarm, при включении соответствующей настройки. Подробно использование энкодера как датчика потери шагов описано в разделе Работа с энкодерами.
При использовании датчика оборотов позиция контролируется по нему. По активному и неактивному фронтам на входе от датчика оборотов контроллер запоминает текущее положение в шагах. Далее, при каждом обороте (количество шагов на один полный оборот мотора устанавливается параметром Steps per turn, см. Настройка кинематики движения (Шаговый двигатель)) контроллер проверяет, на сколько шагов сместилась ось. При рассогласовании более чем на заданное значение ошибки Minimal error (устанавливается в настройках контроля позиции, см. Контроль позиции) осуществляется индикация проскальзывания флагом структуры состояния. Если в настройках установлен соответствующий флаг, то при выявлении ошибки контроллер переходит в режим Alarm и мотор останавливается, иначе продолжает свое движение. Если флаг индикации проскальзывания активен, то контроллер переходит в режим Alarm при включении соответствующего параметра в настройках.
Так же в настройках контроля позиции может быть включен режим автоматической коррекции позиции в случае потери шагов. Если эта опция включена, то при обнаружении проскальзывания контроллер останавливает вращение, корректирует шаговую позицию на основании данных энкодера и пытается запустить вращение заново. Флаг ошибки контроля позиции устанавливается, когда позиция сбивается и автоматически снимается после корректировки. В случае невозможности скорректировать позицию устанавливается флаг ошибки контроля позиции и контроллер переходит в режим Alarm. Если потеря шагов происходит в процессе движения, то статус движения не сбрасывается во время коррекции позиции. Если потеря шагов происходит в режиме удержания позиции, то для восстановления корректной позиции подаётся команда движения в позицию, в которой ось мотора находилась до потери шагов.
Примечание
Для использования функции коррекции позиции нужен энкодер с разрешением не менее двух отсчётов на шаг мотора.
Примечание
Для корректной работы коррекции позиции контроллеру нужно дать постоять с запитанными обмотками в течение 1 секунды для калибровки. После перехода конторллера в режим Alarm или изменения настроек требуется повторная калибровка.
Примечание
При использовании автоматической коррекции позиции не рекомендуется устанавливать значение Threshold более 3 шагов т.к. в этом случае не любое проскальзывание будет скорректировано.
Примечание
Команды резкой и плавной остановки могут быть проигнорированы контроллером во время коррекции позиции. В этом случае можно послать команду плавной остановки дважды, что приведёт к снятию питания с обмоток мотора.
Примечание
Замечание. Если Вы пользуетесь программными концевиками, то использовать автоматическую коррекцию позиции не рекомендуется, т.к. положения программных концевиков будут изменяться в процессе коррекции позиции.
Примечание
Команда резкой остановки запускает процесс перекалибровки положения датчика оборотов, причём калибровка происходит при срабатывании датчика оборотов во время движения, управляемого двигателем. Это значит, что если сразу после резкой остановки повернуть ось руками, то после начала движения проскальзывание не будет обнаружено, т.к. калибровка ещё не была произведена.
Примечание
Если датчик оборота двигателя подвержен дребезгу (механическому), то на очень малых скоростях возможны ложные срабатывания контроля по датчику оборотов.
Примечание
Контроль позиции по датчику оборотов не может обнаружить вращение оси при нулевой внутренней скорости. Т.е. если остановить двигатель и руками провернуть ось, то это не будет обнаружено.