Работа с регистрами
Содержание
Общие сведения
В контексте задач автоматизации сбора данных, управления оборудованием и диспетчеризации под “Регистрами” понимают данные с которыми работают средства и системы автоматизации. Они могут описывать какие-то внешние параметры технологических процессов (значение температуры, давления, расхода, состояния исполнительных механизмов и т.п.) или внутренние состояния самих устройств (параметры работы регуляторов, фильтров и пр.).
Регистры в проекте WEBHMI соответствуют аналогичным понятиям в системах автоматизации - "тег", "переменная" и указывают на то с какими данными из сопряженных устройств мы собираемся работать (читать/записывать), кроме того, они имеют дополнительные атрибуты, управляющие тем, как будут отображаться и обрабатываться системой данные этих регистров. Регистры могут быть двух типов - внутренние (из внутренней памяти WEBHMI) и внешние (содержащие данные от подключенных устройств). Настройки регистров позволяют задавать:
- Имя регистра, соединение, адрес в сети соединения, временно отключать регистр, т.е. исключать его из списка опрашиваемых данных.
- Тип данных (бит, байт, слово и т.д.), формат (целый, с плав. точкой, знаковый и т.д. ), ед. измерения, задание масштабных и смещающих коэффициентов, границы допустимых значений, границы значений, вводимых оператором , количество знаков после запятой, сопоставление словаря (для регистра с данными типа перечисления, когда каждому номеру записанному в регистре соответствует пункт словаря)
- настраивать запись регистр в лог и на графики
- задавать 4 состояния сигнализации (цветовой) регистра - отключен, норма, предупреждение, авария. При этом визуальные элементы (текст, пиктограммы) и данные в логе меняют цвет соответственно текущему состоянию.
Создание регистра, базовые настройки
Для создания регистра необходимо зайти в меню Setup --> Registers и нажать кнопку Add new register. После этого в появившейся вкладке Basic info указать:
- Title Название регистра
- PLC Соединение (ПЛК), через которое опрашиваются данные регистра
- Register address Адрес в пространстве адресов данного соединения (ПЛК)
Для примера (не подключая никаких внешних усройств) можно использовать внунтренний регистр интервалов I10, значение которого (остаток от деления текущего времени в сек. на 10) меняется с каждой сек. от 0 до 9. Присвоим ему имя "Интервал 10 сек.". Результат базовой настройки:
После нажатия кнопки Save , поскольку не был определен тип данных, система предложит указать тип на вкладке Value, для I10 нужно указать Word и снова нажать Save - мы вернемся к списку всех регистров:
Формат списка регистров:
- ID - уникальный номер регистра в проекте.
- Title, PLC, Address - введенные ранее поля Название,содениение (ПЛК), Адрес.
- Type - тип данных регистра
- State - включен или отключен опрос этого регистра драйвером.
- Value - отображение текущего состояние регистра, удобная функция для отладки - сразу же видно корректность настройки и наличие соединения.
- Кнопки Edit, Delete, Clone - соотвественно Редактирование, Удаление, Копирование регистра.
Настройка типа и формата данных регистра
Вкладка Value меню редактирвоания регистра служит для настройки типа и формата данных регистра. Данные настройки влияют на то, как считанные двоичные данные из регистров подключенного устройства интерпретируются для отображения или записи.
Описание настроек на верхнем рисунке (начало):
- Register Data Type - Тип данных:
- Bit - Битовое значение,
- Byte - размер данных байт
- Word - размер данных слово
- Unix time - формат времени принятый в PHP, форматирование задается в виде Y-m-d H:i:s, например, для отображения даты в формате день - мес. - год (ДД-ММ-ГГГГ), необходимо указать d-m-Y.
- Value format - Задает формат считанным данным.
- Целое (integer)- со знаком или без знака (signed / unsigned)
- C фиксированной плавающей точкой (fixed point float) со знаком (диапазон -1..+1) и без знака (0...1) (signed / unsigned)
- В дополнительном коде (Two's complement)
- В формате с плавающей точкой со знаком (signed floating point), в стандарте IEEE754 - 24 бит(такой формат используется, например, в устройствах ОВЕН), 32 бит (ПЛК uLogix Allen-Bradley, Delta Electronics и др. ), 32 бит с обратным порядком слов (Reverse Word Order)
- Dictionary - Словарь. Содержит перечисление пар "значение, слово" , при выборе словаря для регистра считанные из устройства значения сопоставляются с данными словаря и при совпадении в регистре будет находится соотвествующее значению слово. При несовпадении - регистр будет содержать само значение. Словари создаются и редактируюется в меню Setup --> Dictionary
- Units of measurement - указание инженерных единиц для данных регистра. Указанная в поле строка будет отображаться после текстовой строки со значением регистра на приборной панели.
- Register Data Type - Тип данных:
Описание настроек на нижнем рисунке (Продолжение):
- Value Calculations - Масштабирование со смещением данных в регистре. Используется для приведения шкал считываемых данных например из АЦП в инженерные единицы. Данные преобразуются по формуле:
- Итоговое значение = [Считанное в регистр значение] х Множитель + Смещение
- Multiplicator - Множитель
- Shift Value = Смещение
- Precision = Количество знаков после запятой для значений с плав. точкой.
- Min/Max Allowed Value For Operator - Данные поля позволяют ограничить мин. и макс. возможное значение для регистра, который может меняться пользователем с приборной панели.
- Min/Max Reasonable Value - Данные поля позволяют обозначить зону недостоверных значений регистра, таким образом можно судить о неисправности датчика. При чтении значения вне зоны, в регистр будет записан ноль, который в свою очередь можно определить как "отключенное состояние" - см. ниже по тексту.
- Value Calculations - Масштабирование со смещением данных в регистре. Используется для приведения шкал считываемых данных например из АЦП в инженерные единицы. Данные преобразуются по формуле:
Настройка записи регистра в лог и на графики
<p>Регистры имеют настройки , позволяющие записывать их по определнным правилам в лог и на графики.Запись регистров в лог
После выбора опции "Enable Log" в настройках регистра, в пункте меню Maintenance появится новый пункт - "Registers Log" и появятся 4 настройки:
- Change tolerance - "Допуск" (в абсолютном значении или в %) на отклонение значения регистра от текущего , при превышении которого он запишется в лог. Если поле оставить пустым, запись произойдет при любом изменении. Частота записи при этом будет определяться настройками последующих пунктов.
- Min log interval - Служит для прореживания данных, ограничивет частоту записей на величину в сек., указанных в поле ввода.
- Max log interval - Если регистр не менял значение, либо изменения находились внутри "допуска", тогда эта настройка позволяет тем не менее записать регистр в лог по истечении указанного в поле ввода интервала в сек.
- Max graph interval - Данные лога могут быть источником для исторических графиков (Graphs) (см. настройки регистра для записи на график ниже), тогда если не было данных в течение указанного интервала, на графике будет соответсвующий разрыв.
Настройка вывода информации в логе приведена в разделе Системная информация и логи
Запись регистров на графики
После выбора опции "Save data for graphs" в настройках регистра, появится возможность указать частоту записи на графики и выбрать цвет отображения данных регистра на графиках. Появятся 2 дополнительные настройки:
-
Time interval - Частота записи на графики, возможны варианты: 1 hour (1 час), 15,5,2,1 мин., Use data from log (использовать данные из лога).
-
Color for graphs - Указывается цвет в формате RGB --> #00(R)00(G)00(B), например для выбора синего цвета - #0000ff. Либо можно выбрать из палитры спправа от поля ввода.
Для сохранения изменений служит кнопка Save.
Примеры
Допустим, имеется внутренний интервальный регистр I10, меняющий свои значения от 0 до 9 каждые 10 сек. Лог с настройками по умолчанию, т.е. когда установили опцию Enable log при незаполненных остальных настройках, сохранит все значения по нарастанию:
Если теперь установить значение Tolerance = 2, тогда лог станет выглядеть так:
Т.е. значения пишутся при изменении более чем на 2.
Проредить данные по частоте записи можно установив Min log interval = 2, записывая таким образом данные не чаще чем 2 сек. Результат изменений:
Чтобы проверить работу настройки Max log interval, можно установить Tolerance = 10 (тогда все значения будут "отбрасываться", так как они не в "допуске"), но благодаря установке Max log interval = 10, по истечении 10 сек. тем не менее значение регистра будет записано в лог.
Поскольку период изменения регистра I10 равен как раз 10 сек., в логе находится всегда одно значение 1с.
Для примера настройки записи регистра I10 на исторический график по данным лога, воспользуйтесь предыдущим примером c установкой Tolerance = 2. Настройки лога:
Необходимо указывать значение Max graph interval, иначе на графике точки значений не будут соединены между собой линией.
Настройки графика:
Результат настроек на графике:
Настройка состояний
Вкладка States меню редактирования регистров позволяет задавать 4 состояния цветовой сигнализации соответсвенно определенным значениям считанным из регистра:
- Disabled state - "отключен", данные в регистре говорят о том что механизм выключен, датчик отключен (или обрыв, например для сигнала 4..20мА меньше 4мА), нет рабочего давления и т.п. Цвет сигнализации по умолчанию - серый
- Normal state - "норма", значение соответвующее нормальной работе. Цвет сигнализации по умолчанию - зеленый
- Warning state- "предупреждение", параметр приближается к опасной границе. Цвет сигнализации по умолчанию - желтый
- Alert state - "авария" - аварийное состояние параметра. Цвет сигнализации по умолчанию - красный
При отключенных состояниях значение регистра на приборной панели будет отображаться черным цветом.
Настройка границ значений для каждого из состояний может быть статической и динамической.
- При статической (по умолчанию) настройке интервал значений состояния регистра определяется по формуле: Min <= (значение регистра ) < Max. При этом Min. Max. являются константами
- При динамической настройке Min. Max. также являются константами, но заданными относительно значений других регистров, и таким образом, например, в зависимости от рецептуры производимого продукта, будут меняться зоны предупреждений и аварийных состояний.
Пример динамической настройки предупреждающего (Warning state) состояния:
Здесь Delta Min и Max - смещения от нижней и верхней границ зоны состояния предупреждения используемые в формуле, приводимой для удобства здесь же в интерфейсе. Настройки состояний Disable, Normal, Alert одинаковы изображенному выше на рис. Warning state.