TIA Portal Подключение энкодера

2020-10-07 Промышленное  4 комментария

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

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

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

Инкрементальные и абсолютные энкодеры

По типу энкодеры делятся на  инкрементальные и абсолютные.

Инкрементальные формируют определенную последовательность импульсов в зависимости от угла поворота/перемещения механизма. Количество импульсов на оборот определяется разрешением энкодера.

Особенностью инкрементального энкодера является формирование сигнала о состоянии только движущегося объекта, если объект неподвижен, инкрементальный энкодер не считывает информацию. Для определения начального положения после подачи питания требуется провести инициализацию для поиска так называемой стартовой метки или нуль-метки (Zero), которая задает начало отсчета импульсов в цикле работы, то есть начальное положение (точка отсчета).

Абсолютные — формируют на выходе уникальный цифровой код, соответствующий текущему положению объекта. Каждая метка абсолютного энкодера формирует свой индивидуальный код для текущей позиции, то есть в любой момент времени можно считать информацию о положении (координате) объекта, вне зависимости от того, вращается механизм или находится в состоянии покоя. Даже если при пропадании питания провернуть механизм на определенный угол, то как только питание снова появится, энкодер моментально выдаст новое, фактическое угловое положение вала. В этом их преимущество перед инкрементальными.

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

Основным параметром абсолютных энкодеров является разрядность, или количество бит на один оборот.

Разработка программы в Tia Portal

После этого небольшого вступления перейдем к нашей непосредственной задаче. А именно подключении абсолютного энкодера Leine Linde к контроллеру Siemens S7 300 по протоколу Profibus DP.

Для нашей задачи нам потребуется скачать конфигурационный файл GSD (General Station Data – общее описание станции), можно сказать драйвер, содержащий спецификацию устройства — идентификатор устройства, конфигурационную информацию, регулируемые параметры, тип данных и допустимые предельные значения. Благодаря GSD файлу отпадает необходимость в ручном вводе данных, осуществляется автоматическая проверка ошибок и целостности данных. Скачать GSD файл можно на официальном сайте производителя конкретного оборудования.

Далее необходимо импортировать наш GSD файл в среду разработки Tia Portal. Для этого выбираем в меню Options пункт Manage general station description files (GSD).

Добавляем в Tia Portal GSD файл

Указываем путь к нашему файлу на жестком диске и после завершения установки наш энкодер добавится в каталоге оборудования.

GSD файл

Добавляем энкодер в проект. Из раздела Devices & networks переходим на вкладку Network view и производим соединение контроллера и энкодера по шине Profibus. В данном случае к контроллеру 314С-2 подключены по Profibus два энкодера Leine Linde и HMI панель KTP700 Basic, а по Profinet еще один контроллер Siemens 317F-2.

Соединение контроллера с энкодером по Profibus

Для настройки обмена данными между ПЛК и энкодером задействуем стандартную телеграмму Telegram 81. Выберем ее в разделе Device view.

Энкодер .Телеграмма 81

Телеграмма 81 включает в себя следующую структуру данных:

telegram81

Слева — это данные, передаваемые с ПЛК в энкодер.

  • STW2_ENC — слово управления 2 используется для контроля правильной синхронизации процессов контроллера с процессами в энкодере.
  • G1_STW — слово управления 1 основными функциями энкодера, такими как установка абсолютного положения, парковка, подтверждение ошибки.

Справа — данные, принимаемые ПЛК с энкодера.

  • ZSW2_ENC — слово состояния 2, эквивалентно STW2_ENC.
  • G1_ZSW — слово состояния 1 основными функциями энкодера, эквивалентно G1_STW.
  • G1_XIST1 — фактическое значение положения 1
  • G1_XIST2 — фактическое значение положения 2. В случае возникновения какой-либо ошибки, отображает код ошибки.

Далее на вкладке Device-specific parameters задаем необходимые значения параметров энкодера, после чего сохраним и скомпилируем наш проект.

Загружаем проект в контроллер PLC - Download to Device.

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

Создадим новую функцию и задаем ей имя Profibus_DP_Leine.

Функция Profibus_DP_Leine готова.

Данную функцию будем вызывать в  функциональном блоке. Создаем новый блок Encoder_Leine&Linde, который отвечает непосредственно за управление энкодерами.

Network 1: Энкодер 1 BQ1

Network 2: Энкодер 2 BQ2

Теперь в организационном блоке OB1 можно вызывать этот ФБ.

pdf1   ФБ Encoder_Leine&Linde — Скачать

pdf1   ФБ Profibus_DP_Leine — Скачать

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Яндекс

  • госуслуги рф says:

    Задание 0-10 вольт в % отмах скорости вращения задается с пульта оператора для изменения скорости вращения двигателя. Также с пульта оператора задается расстояние перемещения. Счетчик должен сброситься при достижении заданного значения датчиком энкодером. Но динамикой торможения наверно тоже управляет счетчик либо какая то программа так как невозможно мгновенно затормозить по окончании счета без перебега. У меня счетчик на 2 Фазы А и В, без нулевой точки. Можно узнать куда в программе они приходят, и что такое квадратурные счетчики 1Х и 4Х?

  • Алёна says:

    Использую s7-12 (s7 215-g40-b0) TIA Portal v15.0, а вот насчет тех.объекта не пробовал, какой именно типа Motion?

    • admin says:

      Вопрос не понятен. Постарайтесь более четко формулировать свои мысли.

  • pkk-rosreestr.ru says:

    Некоторое время назад возникла необходимость подключить энкодеры к S7-1200. В результате обнаружились некоторые нюансы в работе импульсных входов S7-1200 для подсчёта входных импульсов. Энкодеры генерируют 3 выходных сигнала. Использовать в программе можно от 1 до 3 сигналов в зависимости от задачи.

Комментарии

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>