4.3.4. Автокалибровка "домашней" позиции¶
Используется для определения и установки подвижки в начальную позицию. Данная функция контроллера предназначена для простого и не требующего программирования со стороны пользователя поиска "домашней" или "нулевой" позиции, положение которой может быть задано относительно одного или двух внешних датчиков и/или внешнего сигнала.
Автокалибровка может быть настроена пользователем в программе XILab на вкладке Device configuration->Home position см. раздел Настройка исходного положения, а запущена кнопкой в главном окне XiLab.
- движение до концевика, то используются текущие настройки концевиков (расположение, полярность), см. раздел Настройка диапазона движения и концевых выключателей.
- движение до поступления сигнала на вход синхронизации, то используются текущие настройки входа синхронизации, см. раздел Настройки синхронизации, если вход синхронизации программно выключен в соответствующих настройках, то обработка сигнала со входа синхронизации никогда не произойдет.
- движение до поступления сигнала с датчика оборотов, то используются текущие настройки датчика оборотов, см. раздел Контроль позиции.
После успешного завершения калибровки домашней позиции в структуре состояния контроллера устанавливается флаг STATE_IS_HOMED. Если после этого позиция каким-либо образом сбилась (остановка по концевому выключателю, экстренная остановка во время движения, обнаружение потери шагов, переход в режим Alarm), то соответствующий флаг структуры состояния снимается и нужно вновь провести калибровку "домашней" позиции.
Замечание. Если команда экстренной остановки движения или команда отключения питания мотора выполняются в момент, когда мотор не вращается, то это не сбивает калибровку "домашней" позиции и флаг STATE_IS_HOMED не снимается.
Замечание. Если по концевому выключателю должна произойти остановка движения, то это не сбивает программу калибровки.
Точная докалибровка¶
После первого движения позиция контроллера уже определена, но прежде чем сделать сдвиг до домашней позиции возможно включение дополнительного движения. Это позволяет достичь точной калибровки домашней позиции с точностью достигающей на некоторых позиционерах 1/256 шага для шаговых двигателей или 1 отсчета энкодера для DC двигателя. Если установлен соответствующий флаг, контроллер вращает мотор в заданную пользователем сторону с настроенной скоростью до достижения сигнала со входа синхронизации, сигнала с датчика оборотов или до достижения концевика, в соответствии с выбором пользователя. При этом разумно использовать сигнал с датчика оборота на валу двигателя до редуктора и совершать движение на маленькой скорости. Это обеспечит максимальную точность. Так как сигналы окончания первого движения и второго движения могут совпадать, то предусмотрен флаг начала отслеживания сигнала окончания второго движения только после совершения полуоборота вала двигателя. Это позволяет избежать неоднозначной последовательности получения сигналов завершения первого и второго движений. В результате опционального второго движения калиброванная позиция уточняется.
Замечание. Если используется вторая фаза движения, то первое движение можно обычно выполнять с высокой скоростью, так как оно лишь грубо калибрует позицию и точность там не требуется. Не произойдёт повышения точности если использовать для второй фазы движения второй концевик, так как его физические параметры такие же, как и у первого концевика.
Финальным действием контроллер двигает мотор в заданную сторону с настроенной скоростью на заданное расстояние Standoff. Это нужно для попадания в "домашнюю" позицию.
Замечание. Получаемая в результате калибровки позиция будет немного зависеть от скорости, с которой выполнялось последнее движение до срабатывания выбранного датчика. Поэтому для точного попадания в ту же позицию не меняйте параметры скорости.
Описание функций автокалибровки домашней позиции приведено в руководстве по программированию.
Команды настройки параметров автокалибровки описаны в разделе Описание протокола обмена
Команда калибровки позиции приведена в разделе Описание протокола обмена.
Использование скрипта:
- установите подвижку в желаемую позицию
- включите скрипт и дождитесь окончания его выполнения
В результате подвижка окажется в той же позиции, и все последующие вызовы функции homing будут приводить её туда. Не забудьте сохранить настройки в энергонезависимую память контроллера.