Автоматические системы управления технологическим оборудованием с каждым годом работают с возрастающими объемами данных поступающих с датчиков и ис полнительных механизмов по цифровым протоколам (fieldbus & industrial ethernet).
Сейчас на уровне программ управляющих контроллеров информация уже достаточно структурирована за счет распространённости использования функциональных блоков и структур данных. Но без специальных инструментов и функций использование этих данных (переменных, тэгов) в средах создания человек-машинного интерфейса (HMI) делает процесс создания и отладки проектов чрезвычайно трудоемким.В этой статье мы рассмотрим одну из функций CREW для работы с большим количеством однотипных переменных для ПЛК с прямой адресацией.
С обновлением 3.0 в Crew Editor (для панелей оператора, панельных контроллеров и SCADA) была добавлена новая функция смещения «Offset» для работы с переменными в подключенных устройствах. С помощью данной функции пользователь может работать с данными из разных структур (массивов), указывая начальный адрес и индекс.
Например, у нас есть 8 различных электроприводов и для каждого из них необходимо отображать следующую структуру переменных:
8 электроприводов подключенных к 1 контроллеру и панели оператора
В контроллере структуры с данными двигателей располагаются в следующих адресных пространствах:
Внутри каждого адресного пространства данные располагаются с одинаковым смещением относительно начального адреса. Ниже приведен пример распределения адресов одного двигателя:
Обычно пользователь должен создать в проекте 8 переменных (Tag) для каждого двигателя. Общее количество для 8 двигателей 64 переменных (Tag).
При использовании функции смещения общее количество переменных уменьшается до 9.
Необходимо создать 8 переменных параметров двигателей и 1 переменная смещения (OffsetTag).
Переменная смещения «OffsetTag» принимает следующие значения 100, 200, 800. В переменной смещения «Offsettag» задается значение адреса.
Настройка переменной двигателя Current(ток)
Настройка функции смещения для переменной выполняется в окне «Value String». Данное окно открывается по нажатию значка редактирования, расположенного справа от поля задания адреса переменной (Address).
Настройка функции смещения переменной в CREW
Value – значение индекса в структуре данных (массиве), Offset – значение начального адреса структуры (массива). В свойстве Offset задана ссылка на переменную смещения Offsettag, которая содержит значение адреса.
Настройки переменной Offsettag (переменная смещения) в CREW
В данном примере «Offsettag» является внутренней переменной, которой можно делать присвоение значения (100, 200 и т.д.), например, при нажатии кнопок (пролистывание списка) на экране отображения этих данных. Но «Offsettag» может быть переменной в устройстве и получать значение адреса из программы ПЛК.
Как видно из настроек переменных, данная функция существенно сокращает траффик сетевого опроса контроллера, что позволяет более оперативно получать текущие данные или опрашивать больше число устройств.
Помимо функции Offset, для упрощения создания проектов и структурирования данных, обратите внимание на переменные типа Indexed, возможности работы со структурами данных Codesys\Twincat, функции косвенной и динамической адресации переменных для контроллеров, поддерживающих символьные тэги.