Работа с регистрами

Материал из WebHMI
Перейти к: навигация, поиск

Общие сведения

В контексте задач автоматизации сбора данных, управления оборудованием и диспетчеризации под “Регистрами” понимают данные с которыми работают средства и системы автоматизации. Они могут описывать какие-то внешние параметры технологических процессов (значение температуры, давления, расхода, состояния исполнительных механизмов и т.п.) или внутренние состояния самих устройств (параметры работы регуляторов, фильтров и пр.).

Регистры в проекте WEBHMI соответствуют аналогичным понятиям в системах автоматизации - "тег", "переменная" и указывают на то с какими данными из сопряженных устройств мы собираемся работать (читать/записывать), кроме того, они имеют дополнительные атрибуты, управляющие тем, как будут отображаться и обрабатываться системой данные этих регистров. Регистры могут быть двух типов - внутренние (из внутренней памяти WEBHMI) и внешние (содержащие данные от подключенных устройств). Настройки регистров позволяют задавать:

  • Имя регистра, соединение, адрес в сети соединения, временно отключать регистр, т.е. исключать его из списка опрашиваемых данных.
  • Тип данных (бит, байт, слово и т.д.), формат (целый, с плав. точкой, знаковый и т.д. ), ед. измерения, задание масштабных и смещающих коэффициентов, границы допустимых значений, границы значений, вводимых оператором , количество знаков после запятой, сопоставление словаря (для регистра с данными типа перечисления, когда каждому номеру записанному в регистре соответствует пункт словаря)
  • настраивать запись регистр в лог и на графики
  • задавать 4 состояния сигнализации (цветовой) регистра - отключен, норма, предупреждение, авария. При этом визуальные элементы (текст, пиктограммы) и данные в логе меняют цвет соответственно текущему состоянию.

Создание регистра, базовые настройки

Для создания регистра необходимо зайти в меню Setup --> Registers и нажать кнопку Add new register.

Create reg.png

После этого в появившейся вкладке Basic info указывается:

Create reg basic.png

Title Название регистра
PLC Соединение, из которого опрашиваются данные регистра
Register address Адрес в пространстве адресов данного соединения. При вводе работает проверка правильности задания адреса. Форматы задания адресов описаны здесь.
Priority - Приоритет опроса. Данная опция используется совместно с функцией Strict scan (Меню Settings). Регистры с высоким приоритетом будут опрашиватьcя в первую очередь, регистры с приоритетом normal во вторую. Если часть регистров с приоритетом normal не поместилась в время скана, эта часть опрашивается в следующем скане и т.д. Регистры от внутренних соединений опрашиваются в последнюю очередь (после регистров на внешних соединениях) вне зависимости от этой настройки поскольку они читаются быстро по локальной шине устройства WebHMI.
Disable - Отключение опроса для данного регистра.
Communication interval override - Переопределение времени опроса для данного регистра от заданного по умолчанию (Меню Settings). Регулируется с шагом от 1 сек. до 1 часа.
Send real time data to WebHMI cloud - Указывает, необходимо ли отправлять данные на облачный сайт разработчика webhmicloud.com для использования в системе верхнего уровня.

Настройка типа и формата данных регистра

Вкладка Value меню редактирования регистра служит для настройки типа и формата данных регистра. Данные настройки влияют на то, как считанные двоичные данные из регистров подключенного устройства интерпретируются для отображения или записи.

Regs value 1.png

Описание настроек на верхнем рисунке (начало):

Register Data Type - Тип данных:
  • Bit - Битовое значение,
  • Byte - размер данных байт
  • Word - размер данных слово
  • Double Word - размер данных двойное слово
  • Unix time - формат времени принятый в PHP, форматирование задается в виде Y-m-d H:i:s, например, для отображения даты в формате день - мес. - год (ДД-ММ-ГГГГ), необходимо указать d-m-Y.

Для чтения двойных слов в обратном порядке (некоторые устройства работают в таком формате ) предусмотрен опция "Reverse word order".

Value format - Задает формат считанным данным.
  • Целое (integer)- без знака unsigned или со знаком signed.
  • 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)
Bit mask - при установке битовой маски в регистр попадет значение, соответсвтующее весам выбранных двоичных разрядов.

Описание настроек на нижнем рисунке (Продолжение):

Delta format - позволяет превратить данные регистра в приращение или производную. В первом случае (delta value) регистр будет равен разнице текущего вычитанного значения и предыдущего. Во втором (Delta value/Delta time)- тоже, деленное на время между опросами, т.е. производную по времени.
Display as time duration - Показать число в секундах в формате длительности временного промежутка (часы, дни и т.д.). Формат полезен, например, при отображении длительности событий.
Dictionary - Словарь. Содержит перечисление пар "значение, слово" , при выборе словаря для регистра считанные из устройства значения сопоставляются с данными словаря и при совпадении в регистре будет находится соответствующее значению слово. При несовпадении - регистр будет содержать само значение. Словари создаются и редактируюется в меню Setup --> Dictionary
Units of measurement - указание инженерных единиц для данных регистра. Указанная в поле строка будет отображаться после текстовой строки со значением регистра на приборной панели.

Value tab 2.png

Value Calculations - Масштабирование со смещением данных в регистре. Используется для приведения шкал считываемых данных например из АЦП в инженерные единицы. Данные преобразуются по формуле:
Итоговое значение = [Считанное в регистр значение] х Множитель + Смещение
Multiplicator - Множитель
Shift Value = Смещение
Precision = Количество знаков после запятой для значений с плав. точкой.

Credible values.png

Min/Max Allowed Value For Operator - Данные поля позволяют ограничить мин. и макс. возможное значение для регистра, который может меняться пользователем с приборной панели.
Min/Max Reasonable Value - Данные поля позволяют обозначить зону недостоверных значений регистра, таким образом можно судить о неисправности датчика. При чтении значения вне зоны, в регистр будет записан ноль, который в свою очередь можно определить как "отключенное состояние" - см. ниже по тексту.

Настройка записи регистра в лог и на графики

Регистры имеют настройки , позволяющие записывать их по определённым правилам в лог и на графики.

Запись регистров в лог

После выбора опции "Enable Log" в настройках регистра, в пункте меню Maintenance появится новый пункт - "Registers Log" и появятся дополнительные настройки:

  • Color for trends and graphs - выбор цвета отображения данных регистра на трендах и графиках.
  • Change tolerance - "Допуск" (в абсолютном значении или в %) на отклонение значения регистра от текущего , при превышении которого он запишется в лог. Если поле оставить пустым, запись произойдет при любом изменении. Частота записи при этом будет определяться настройками последующих пунктов.
  • Min log interval - Служит для прореживания данных, ограничивает частоту записей на величину в сек., указанных в поле ввода.
  • Max log interval - Если регистр не менял значение, либо изменения находились внутри "допуска", тогда эта настройка позволяет тем не менее записать регистр в лог по истечении указанного в поле ввода интервала в сек.
  • Max graph interval - Данные лога могут быть источником для исторических графиков (Graphs) (см. настройки регистра для записи на график ниже), тогда если не было данных в течение указанного интервала, на графике будет соответствующий разрыв.

Настройка вывода информации в логе приведена в разделе Системная информация и логи

Log en chkbox2.jpg

Запись регистров на графики

После выбора опции "Save data for graphs" в настройках регистра, появится возможность указать частоту записи на графики и выбрать цвет отображения данных регистра на графиках. Также появится опция передачи данных лога на облачный сайт разработчика.

  • Time interval - Частота записи на графики, возможны варианты: 1 hour (1 час), 15,5,2,1 мин., Use data from log (использовать данные из лога).

Save data grph.jpg

Для сохранения изменений по регистру служит кнопка Save.

Настройка состояний

Вкладка States меню редактирования регистров позволяет задавать 4 состояния цветовой сигнализации соответствующим определенным значениям считанным из регистра:

  • Disabled state - "отключен", данные в регистре говорят о том что механизм выключен, датчик отключен (или обрыв, например для сигнала 4..20мА меньше 4мА), нет рабочего давления и т.п. Цвет сигнализации по умолчанию - серый
  • Normal state - "норма", значение соответствующее нормальной работе. Цвет сигнализации по умолчанию - зеленый
  • Warning state- "предупреждение", параметр приближается к опасной границе. Цвет сигнализации по умолчанию - желтый
  • Alert state - "авария" - аварийное состояние параметра. Цвет сигнализации по умолчанию - красный

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

Reg states.png

Настройка границ значений для каждого из состояний может быть статической и динамической.

При статической (по умолчанию) настройке интервал значений состояния регистра определяется по формуле: Min <= (значение регистра ) < Max. При этом Min. Max. являются константами
При динамической настройке Min. Max. также являются параметрами, заданными в виде других регистров, и таким образом, например, в зависимости от рецептуры производимого продукта, будут меняться зоны предупреждений и аварийных состояний.

Пример динамической настройки предупреждающего (Disabled state) состояния:

Dynamic reg state.png

Здесь Delta Min и Max - смещения от нижней и верхней границ зоны состояния предупреждения используемые в формуле (задаваемые с помощью Register Min, Register Max), приводимой для удобства здесь же в интерфейсе. Настройки состояний Normal, Alert, Warning аналогичны изображенному выше на рис. Disabled state.

Работа со списком регистров

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

Reg list.png

Формат списка регистров:

ID - уникальный номер регистра в проекте.
Title - Название,регистра / соединения
Interval - интервал опроса данного регистра
Address - адрес регистра согласно используемого протокола (для соединения - сетевой адрес)
Type - тип данных регистра (для соединения - тип протокола)
State - включен или отключен опрос этого регистра (соединения) драйвером. Слева от знака состояния - признак приоритетности опроса (прочерк - обычный, стрелка вверх - высокий)
Value - отображение текущего состояние регистра, удобная функция для отладки - сразу же видно корректность настройки и наличие соединения
Кнопки Edit, Delete, Clone - соответственно Редактирование, Удаление, Копирование регистра (соединения).

Групповые операции

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

Bulk operation.png

Меню bulk actions для выбранной группы регистров позволяет:

Отключить (Disable) или Включить (Enable) Удалить (Delete) Назначить другое соединение (Change connection)

Change conn.png

  • Экспортировать регистры (Export registers) - данная операция экспортирует список регистров в csv файл, который можно впоследствии удобно отредактировать в табличном процессоре (Open Office, Google sheets и др.), используя возможности автоматизации операций табличного процессора. Пример открытия экспортированного файла в приложении Google sheets (При открытии файла в табличном процессоре типа MS или Open Office необходимо указывать формат разделителей - запятые, кодировка UTF-8.):

Csv in google.png

Колонки таблицы соответствуют свойствам регистров, которое описаны выше по тексту в этом рзаделе. Таким образом, можно:

a) переопределить любое свойство для всего существующего списка или его части, выделив группу регистров по некоему признаку, использовать возможности автоподстановки, формулы и т.д., а затем c помощью функции импорта, внести необходимые изменения в проект WebHMI.
б) создать свой список (использовать существующую таблицу тегов из проекта ПЛК и т.п.) и импортировать его в проект.
в) хранить готовые списки для устройств и повторно использовать их

Диалоговое окно импорта регистров:

Import regs window.png

Move to connection - позволяет использовать номер (ID) соединения из файла csv либо поместить регистры с существующее соединение.
Overwrite existent registers - в случае выбора опции, если при импорте списка в проекте уже есть регистры с данным ID, они перезапишутся, в противном случае - регистры с совпадающими ID из списка получат новые ID.

Примеры

Допустим, имеется внутренний интервальный регистр I10, меняющий свои значения от 0 до 9 каждые 10 сек. Лог с настройками по умолчанию, т.е. когда установили опцию Enable log при незаполненных остальных настройках, сохранит все значения по нарастанию:

Log 12345.png

Если теперь установить значение Tolerance = 2, тогда лог станет выглядеть так:

Log tol 2.png

Т.е. значения пишутся при изменении более чем на 2.

Проредить данные по частоте записи можно установив Min log interval = 2, записывая таким образом данные не чаще чем 2 сек. Результат изменений:

Log interleave 2sec.png

Чтобы проверить работу настройки Max log interval, можно установить Tolerance = 10 (тогда все значения будут "отбрасываться", так как они не в "допуске"), но благодаря установке Max log interval = 10, по истечении 10 сек. тем не менее значение регистра будет записано в лог.

Log max 10 sec.png

Поскольку период изменения регистра I10 равен как раз 10 сек., в логе находится всегда одно значение 1с.

Для примера настройки записи регистра I10 на исторический график по данным лога, воспользуйтесь предыдущим примером c установкой Tolerance = 2. Настройки лога:

Save data for graph.png

Необходимо указывать значение Max graph interval, иначе на графике точки значений не будут соединены между собой линией. Настройки графика:

Graph setup.png

Результат настроек на графике:

Graph result.png