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

Материал из WebHMI Wiki
Перейти к: навигация, поиск
Другие языки:
English • ‎русский

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

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

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

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

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

Для создания регистра необходимо зайти в меню Конфигурация / Регистры (Setup --> Registers) и нажать кнопку Новый регистр (Add new register).

Create reg.png

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

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

Create reg basic.png

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

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

Тип данных (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 Calculations) - Масштабирование со смещением данных в регистре. Используется для приведения шкал считываемых данных например из АЦП в инженерные единицы. Данные преобразуются по формуле:
Итоговое значение = [Считанное в регистр значение] х Множитель + Смещение
Multiplicator - Множитель
Shift Value = Смещение
Precision = Количество знаков после запятой для значений с плав. точкой.
Мин./Макс. значение для ввода Min/Max Allowed Value For Operator - Данные поля позволяют ограничить мин. и макс. возможное значение для регистра, который может меняться пользователем с приборной панели.
Мини./Макс. достоверное значение (Min/Max Reasonable Value) - Данные поля позволяют обозначить зону недостоверных значений регистра, таким образом можно судить о неисправности датчика. При чтении значения вне зоны, в регистр будет записан ноль, который в свою очередь можно определить как "отключенное состояние" - см. ниже по тексту.

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

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

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

После выбора опции "Включить журналирование" ("Enable Log") в настройках регистра, его изменени можно будет отслеживать в пункте меню Аналитика / Журнал регистров Maintenance. Настройки журналирования :

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

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


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 состояния цветовой сигнализации соответсnвующим определенным значениям считанным из регистра:

  • Отключен (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
Здесь Сдвиг минимума и Сдвиг максимума - смещения от нижней и верхней границ зоны состояния предупреждения используемые в формуле (задаваемые с помощью Минимальное значение (Register Min), Максимальное значение (Register Max), приводимой для удобства здесь же в интерфейсе.

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

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

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

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

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

В списке регистров и соединений можно проводить групповые операции - их импорт, экспорт, включение/отключение и переназначение соединения для выбранной группы регистров.
Bulk operation.png
Меню Гупповые операции (bulk actions) для выбранной группы регистров позволяет:

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

Окно назначения соединения для группы регистров

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

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

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

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

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