4.3.4. Автокалибровка «домашней» позиции

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

Автокалибровка может быть настроена пользователем в программе XILab на вкладке Device -> Home position см. раздел Настройка исходного положения, а запущена кнопкой в главном окне XiLab.

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

После успешного завершения калибровки домашней позиции в структуре состояния контроллера устанавливается флаг STATE_IS_HOMED. Если после этого позиция каким-либо образом сбилась (остановка по концевому выключателю, экстренная остановка во время движения, обнаружение потери шагов, переход в режим Alarm), то соответствующий флаг структуры состояния снимается и нужно вновь провести калибровку «домашней» позиции.

Примечание

Замечание. Если команда экстренной остановки движения или команда отключения питания мотора выполняются в момент, когда мотор не вращается, то это не сбивает калибровку «домашней» позиции и флаг STATE_IS_HOMED не снимается.

Примечание

Если по концевому выключателю должна произойти остановка движения, то это не сбивает программу калибровки.

4.3.4.1. Точная докалибровка

После первого движения позиция контроллера уже определена, но прежде чем сделать сдвиг до домашней позиции возможно включение дополнительного движения. Это позволяет достичь точной калибровки домашней позиции с точностью достигающей на некоторых позиционерах 1/256 шага для шаговых двигателей или 1 отсчета энкодера для DC двигателя. Если установлен соответствующий флаг, контроллер вращает мотор в заданную пользователем сторону с настроенной скоростью до достижения сигнала со входа синхронизации, сигнала с датчика оборотов или до достижения концевика, в соответствии с выбором пользователя. При этом разумно использовать сигнал с датчика оборота на валу двигателя до редуктора и совершать движение на маленькой скорости. Это обеспечит максимальную точность. Так как сигналы окончания первого движения и второго движения могут совпадать, то предусмотрен флаг начала отслеживания сигнала окончания второго движения только после совершения полуоборота вала двигателя. Это позволяет избежать неоднозначной последовательности получения сигналов завершения первого и второго движений. В результате опционального второго движения калиброванная позиция уточняется.

Примечание

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

Финальным действием контроллер двигает мотор в заданную сторону с настроенной скоростью на заданное расстояние Standoff. Это нужно для попадания в «домашнюю» позицию.

Примечание

Получаемая в результате калибровки позиция будет немного зависеть от скорости, с которой выполнялось последнее движение до срабатывания выбранного датчика. Поэтому для точного попадания в ту же позицию не меняйте параметры скорости.

Описание функций автокалибровки домашней позиции приведено в руководстве по программированию.

Команды настройки параметров автокалибровки описаны в разделе Описание протокола обмена

Команда калибровки позиции приведена в разделе Описание протокола обмена.

Для автоматической установки настроек «домашней позиции» в комплект XILab входит скрипт set_zero. Этот скрипт изменяет настройку Standoff вкладки Home position так, что текущая позиция становится «домашней».

Использование скрипта:

  • установите подвижку в желаемую позицию
  • включите скрипт и дождитесь окончания его выполнения.

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