Настройка тегов

Окно редактирования тегов открывается из контекстного меню устройства или из окна статуса устройства (пункт "Теги")

Список тегов

В названии тегов можно использовать символ разделения "/" при помощи которого можно создать иерархию любой сложности. Она позволит упростить и ускорить дальнейшую работу с тегами. Представим, что у уже известной нам компании "Нефть и Пиво" есть двухэтажный производственный комплекс в котором нам нужно контролировать температуру в трех баках, один из которых находится на первом этаже, а остальные на втором. В таком случае можно завести вот такие имена для тегов:

Разметка структуры тегов

При дальнейшем обращении к тегам, например, из графического редактора они будут упакованы в вот такую удобную для обзора структуру:

Дерево тегов

В таблице тегов любого устройстве присутствует статусный тег StatusDevice, который нельзя удалить. Тег содержит фактическое время цикла опроса переменных устройства при наличии связи с устройством. При получении ошибки от устройства статусный тег имеет значение -1. При отсутствии связи -2. Эти константы можно использовать для генерации аварийных сообщений, если в этом есть необходимость.

Для устройств Modbus статусный тег привязывается к конкретной modbus-переменной, это необходимо учитывать при создании новых устройств, которые могут иметь статус "Нет связи" именно из-за того, что статусный тег привязан к несуществующей переменной.

Для устройств Modbus, OPC, Driver есть возможность импортировать список тегов. Для Modbus это импорт из map-файлов для контроллеров Segnetics и импорт в свободной форме из csv-файла. Пример csv-файла для импорта можно скачать здесь. Для устройств OPC импорт тегов возможен напрямую из OPC-сервера. Для устройств типа Driver импорт тегов происходит из списка тегов, определенных при настройке драйвера. Функции импорта вызываются из меню, расположенного сверху над таблицей тегов. Следует иметь в виду, что если в названиях импортируемых тегов присутствует символ "/", то для таких теги будет создана соответствующая названию структура.

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

Панель сортировки и фильтрации

Рассмотрим список параметров доступных при добавлении/редактировании тега:

ID переменной
Для устройств Modbus - сетевой номер переменной, для виртуальных устройств, OPC и Driver - порядковый номер, используемый в сортировке и определяющий порядок вычислений в формулах
Название
Название тега. Правила формирования названия для тега были описаны в этой статье выше
Тип
Для всех устройств
Virtual|Статус аварии|Счетчик аварии. Virtual - переменная хранится в базе данных OrangeScada, физически не содержится в устройстве. Статус аварии - специальный тег, содержащий статус определенной аварии. Статус кодируется двумя битами: бит 0 равен 0, если авария неактивная, равен 1, если авария сработала; бит 1 равен 0, если авария подтверждена пользователем, равен 1, если не подтверждена. Счетчик аварии - специальный тег, ведущий подсчет количества срабатываний определенной аварии.
Modbus
Coils|Descrete Inputs|Holding Registers|Input Registers - стандартные типы переменных Modbus, определяющие их тип и доступ на чтение/запись.
OPC
Теги OPC всегда имеют тип OPC
Driver
Теги Driver всегда имеют тип Universal
Переменная чтения/записи
Определяет тип переменной отдаваемой/принимаемой устройством. Некоторые типы переменных включают дополнительные опции. Например для типа boolean можно выбрать номер бита, для типа float последовательность считывания байт (для устройств Modbus)
Вывод
Формат который будет представлен пользователю в OrangeScada. Если тип чтения/записи и вывода не совпадают, то значения будут конвертироваться автоматически. Для типа вывода Float и DataTime есть возможность задать формат вывода.
Формат вывода(маска)
Для типа вывода float
Можно задать маску вывода для ограничения количества знаков после запятой вида: #.##(округление до сотых), #.#(округление до десятых), #.0(округление до десятых c обязательным указанием одного знака после запятой, даже если это 0, например 20.0)
Для типа вывода datatime
DD-дата,MM-месяц,YY/YYYY-год, HH-часы, MM-минуты, SS-секунды. Например: DD.MM.YY HH:MM:SS
Период тренда
Указывается значение в миллисекундах для регистрации показаний в базу данных. По умолчанию 0 - значения не регистрируются. Для типа boolean выбор осуществляется галкой. При активации тренда в столбце "История" появляется иконка при нажатии на которую можно в табличном виде проконтролировать последние зарегистрированные значения.
Макс. кол-во отсчетов тренда (млн)
Максимальное число отсчетов значения в базе данных для ограничения ее размеров, 0-не ограничено
Макс. период тренда (дней)
Максимальный период хранения записей значения. По умолчанию 0 - не ограничено. При указании обоих параметров: Макс. кол-во отсчетов тренда и Макс. период тренда, ограничение начинает действовать по наступлению первого из этих порогов: при регистрации новых значений из базы удаляются наиболее старые
Формула ввода
Для преобразования значения тега перед записью результата можно воспользоваться формулой. Например, если записываемое нами значение преобразуется устройством с делителем на 10, то для отправки правильного значения, мы должны ввести формулу #*10. Знак "#" в формуле означает значение текущего тега. Кроме того, в формулы можно подставлять значения других тегов и различные математические операции и функции. С полным списком функций можно ознакомиться в Приложении D. При подключении формулы тег помечается символами "Fx" в одноименном столбце.
Формула вывода
Для обработки значения тега после получения данных от физического устройства можно воспользоваться формулой. Например, если принимаемое нами значение приходит с 10-ти кратным масштабом, то для получения реального значения, мы должны ввести формулу #/10. Знак "#" в формуле означает значение текущего тега. Кроме того, в формулы можно подставлять значения других тегов и различные математические операции и функции. С полным списком функций можно ознакомиться в Приложении D. При подключении формулы тег помечается символами "Fx" в одноименном столбце.
Чтение
Галка активирует опрос тега.
Запись(доступно для тегов с возможностью записи)
Галка активирует возможность записи в тег
Всегда читать
В обычном режиме опрос тега происходит по мере необходимости: если открыта мнемосхема или таблица тегов или необходимо ведение регистрации значений. При необходимости постоянного опроса тега устанавливается галка "Всегда читать"
Запись из формулы(доступно для тегов с возможностью записи)
Галка активирует постоянную запись в тег результата полученного из формулы тега. Это возможность передать данные вычислений над несколькими тегами в другой тег или другое устройство, или просто обеспечить передачу данных между устройствами. Не рекомендуется включать галку, если в формуле есть зависимость тега от себя самого - это может привести к бесконечной рекурсии. При выключенной галке, запись в тег происходит только по изменению значения пользователем.
Событие по изменении(доступно для тегов с возможностью записи)
Галка включает регистрацию события изменения тега в базу данных при необходимости иметь информацию о том когда и какой пользователь производил изменение тега.

Аварии тегов

Для задания аварий для тега необходимо нажать на аварийную иконку в соответствующей тегу строке:

Настройка аварий

Подробно работе с авариями посвящена отдельная статья.

Триггеры

Настройка триггеров тега

Триггер позволяет настроить передачу какого-то значения по срабатыванию определенного условия. Отличие передачи данных при помощи триггеров от передачи при помощи формул в том, что формулы передают данные при каждом обновлении значений, а триггеры только в момент срабатывания условия. Эта функция удобна в случаях, когда какое-то действие над тегом или группой тегов нужно совершить единовременно, при этом давая оператору возможность внести последующие изменения. Например, у нашей компании "Нефть и Пиво" есть несколько корпусов, в которых наружное освещение включается автоматически по датчику освещенности. Мы можем настроить триггер между датчиком и контроллерами, управляющими освещением с двумя порогами срабатывания: вечером будет уходить команда на включение, утром на выключение. Но при этом, в некоторых корпусах раз в неделю проводятся санитарные дни и персонал в них отсутствует. У оператора есть график таких дней и он с целью экономии электроэнергии может корректировать работу автоматики, выключая освещение на неработающих зданиях.

Рассмотрим настройку на примере. Допустим, у нас есть следующие теги:

Список тегов

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

Добавление триггера

Выберем теги, в которые необходимо передавать значения: Building1/LightOn, Building2/LightOn, Building3/LightOn. Так как у нас будет по две команды на каждый тег (вкл/выкл), то необходимо добавить их в список дважды. Кроме того, в окне добавления триггера есть дополнительные опции: название, событие (при срабатывании триггера будет появляться запись в событиях), раздел(при создании триггера можно сразу определить его в нужный раздел иерархии объектов)

Добавление триггеров

Теперь настроим условия срабатывания передачи в эти теги. Пусть датчик освещенности выдает нам значения в условных единицах (процентах). Будем включать наружное освещение при показаниях ниже 40% и выключать при показаниях выше 70%

Настройка условий срабатывания триггеров

Итоговый результат должен выгладить так:

Результат настройки

Закрыв окно связи в таблице тегов мы можем увидеть, что для тега IlluminationSensor в столбце "Связь" появилось их количество: 6. Теперь, изменяя значение IlluminationSensor, мы можем видеть как реагируют на это теги, отвечающие за включение освещения. Проделанные в этой статье операции отражены в бэкапе. О том как делать импорт и экспорт базы данных у нас есть статья Резервное копирование

Права доступа для тегов

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

Настройка доступа

Подробно настройке доступа посвящена отдельная статья.

Групповые операции над тегами

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

Выбор всех тегов

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

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

Доступны следующие операции:

  1. Настройка прав доступа пользователей на изменение группы тегов
  2. Настройка прав доступа группы пользователей на изменение группы тегов
  3. Удаление группы тегов
  4. Сдвиг адресации. По запросу вводится положительное или отрицательное смещение для адресов группы тегов
  5. Поиск/замена. По запросу вводится строка для поиска и замены для группового изменения названий тегов. Если в процессе замены название тегов совпадут, то замена не производится
  6. Копирование группы тегов
  7. Вставка группы тегов
  8. Дублирование группы тегов. При вставке и дублировании есть возможность задать строки поиска/замены для названия нового тега, а также смещение адреса и копирование настроек прав доступа
  9. Групповое редактирование. Для того, чтобы задать одинаковые опции для серии тегов.
  10. Экспорт. Если есть необходимость перенести список тегов между разными проектами или серверами, даннную процедуру можно выполнить при помощи экспорта/импорта. Экспорт создает xml-файл со списком тегов.
  11. Импорт. Восстанавливает список тегов из xml-файла