5.3.8. Контроль позиции¶
В окне настроек программы Device -> Position control
Для активации контроля позиции необходимо установить флаг параметра Position control.
Base - выбор устройства контроля позиции. В выпадающем окне выбирается: энкодер (Encoder) (см. раздел Работа с энкодерами) или датчик оборотов (Revolution sensor).
Threshold - определяет количество потерянных шагов (0..255), которое считается ошибочным. Если количество потерь превышает заданное число шагов, то устанавливается флаг рассогласования SLIP. Дальнейшие действия зависят от настройки Error action:
Если установлена опция Alarm on errors, то контроллер перейдет в состояние Alarm.
Если установлена опция Correct errors, то контроллер попытается скорректировать ошибку проскальзывания дополнительным движением (см. раздел Обнаружение потери шагов).
Если установлена опция Ignore errors, то контроллер не будет производить никаких дополнительных действий.
Inverted revolution sensor - при отмеченном флаге датчик оборотов считается сработавшим по уровню 1, при неотмеченном действует обычная логика: 0 - это срабатывание/активация/активное состояние.
Команды настройки описаны в разделе Описание протокола обмена.
Важно
- Feedback none: в этом режиме «Position control» полезен и должен использоваться. «Position control» сравнивает позицию по энкодеру/датчику положения и пересчитывает ее в шаги. Если есть расхождения между позициями, в нижней части главного окна XiLab загорится флаг «SLIP». Кроме того, если вкл флаг «Alarm on errors», контроллер перейдет в состояние тревоги.
- Feedback encoder: «Position control» не нужно использовать, поскольку положение строго контролируется энкодером.
- Feedback EMF: алгоритм не должен использоваться с включенным флагом «Position Control». Для плавности хода в режиме EMF реализовано расхождение между фактическим положением и положением по профилю. Если этот флаг включен, могут быть вызваны ложные срабатывания Alarm.
- Feedback encoder mediated: не рекомендуется включать флаг «Position Control. Во время движения алгоритм не отличается от режима «none», но когда двигатель приезжает в позицию реальная позиция сравнивается с желаемой позицией по энкодеру, после чего алгоритм компенсирует расхождение в позициях до момента пока позиция по энкодеру не будет является желаемой.