Редактор тегов
Главное окно
Режим "Редактор тегов" служит для настройки протоколов обмена данными и настройки тегов проекта. Данный редактор активируется автоматически после выбора проекта из списка проектов и включает в себя области:
- Панель переключения редакторов — быстрое переключение редакторов.
- Меню — набор различных функций и параметров.
- Строка состояния — отображает информацию о состоянии. Набор состояний может различаться в зависимости от используемого редактора среды разработки.
- Источники — окно настройки протокола обмена данными с оборудованием и драйверов.
- Проект — окно, в которое переносят теги из числа всех имеющихся тегов окна "Источники". Теги, выбранные пользователем в окне "Источники" и перемещенные в область "Проект", называются активными. Данные активного тега считываются в базу данных и служат для контроля состояния технологического процесса.
- Свойства — окно свойств выбранного активного тега. Список свойств тегов зависит от его типа (физический или виртуальный), а также от типа данных, которые он получает (числовой, строковый, логический).

Панель переключения редакторов
В среде разработки предусмотрены три режима работы:
- режим редактирования тегов и протоколов обмена данными.
- режим редактирования мнемосхем и графических объектов.
- режим редактирования отчетов.
После загрузки выбранного проекта переключение редакторов осуществляется с помощью кнопок:
| Кнопка | Описание | Лицензия проекта |
|---|---|---|
![]() |
Редактор тегов |
Free, Base, Standard, Enterprise |
![]() |
Редактор мнемосхем |
Free, Base, Standard, Enterprise |
![]() |
Редактор отчетов |
Standard, Enterprise |
Строка состояния

В данной строке представлена информация о текущем проекте и режиме работы системы.
- Проект — название разрабатываемого проекта.
- Теги — суммарное количество тегов в проекте. В скобках указано соотношение тегов по количеству (физические : виртуальные).
- Профиль — название активного профиля.
- Сообщения — системные сообщения.
- Режим — режим работы редактора мнемосхем.
- Версия — версия ПО.
Окно "Источники"
В системе используются следующие типы источников данных:
- Системные теги сервера — служебная информация о работе сервера.
- OPC DA — протокол из семейства OPC для обмена данными в реальном времени.
- OPC HDA — протокол из семейства OPC, предназначенный для доступа к историческим, архивированным данным.
- OPC UA — стандарт промышленной автоматизации и обмена данными, который обеспечивает независимую от платформы и производителя связь между оборудованием и системами.
- Modbus — драйвер открытого коммуникационного протокола Modbus TCP/RTU/ASCII.
- PING — драйвер мониторинга доступности сетевых устройств (хостов, серверов, контроллеров).
- SNMP — драйвер сбора данных с сетевых устройств (маршрутизаторов, коммутаторов, серверов, ИБП) по протоколу Simple Network Management Protocol (SNMP).
- MQTT — драйвер протокола MQTT (Message Queuing Telemetry Transport) для обмена данными в IoT и промышленных системах.
- Bus77 — драйвер протокола обмена данными с устройствами от компании iRidi.
В верхней части окна "Источники" находятся кнопки настройки выбранного драйвера. Кнопка становится активной только после выбора соответствующего драйвера из списка.

| Кнопка | Описание |
|---|---|
Настройка драйвера Bus77 |
|
Настройка драйвера MQTT |
|
Настройка драйвера SNMP |
|
Настройка драйвера PING |
|
Настройка драйвера MODBUS |
|
Добавить сервер OPC UA |
|
Редактировать OPC UA-сервер |
|
Удалить OPC UA-сервер |
Системные теги сервера
Системные теги сервера позволяют отслеживать ключевые параметры производительности рабочей станции, на которой работает сервер системы.
- Общая свободная оперативная память — процент свободной оперативной памяти ПК относительно общего объема ОЗУ.
- Потребляемая оперативная память — объем оперативной памяти (в МБ), занятой работой сервера.
- Скорость потребления оперативной памяти — динамика расхода ОЗУ (в МБ/мин), позволяющая оценить интенсивность использования памяти.
- Загрузка процессора — процент использования центрального процессора сервером системы.
- Свободное место на диске — процент доступного дискового пространства.
- Скорость наполнения диска — динамика заполнения диска (в МБ/мин); важная характеристика для прогнозирования нехватки рабочего пространства на диске.
OPC UA
Окно добавления OPC UA-сервера содержит 2 вкладки:
На вкладке "Подключение" доступны параметры для настройки подключения к серверу:
- URL сервера — поле, в котором указывается IP-адрес и порт подключения к OPC UA-серверу.
- Отображаемое имя — имя сервера в системе.
- Basic128Rsa15 — устаревшая политика. Используется для совместимости со старыми системами.
- Basic256 — более надежная политика, но также устаревшая. Не рекомендуется использовать в новых проектах.
- Basic256Sha256 — современная политика.
- Aes128_Sha256_RsaOaep — современная политика, соответствующая актуальным криптографическим стандартам.
- Aes256_Sha256_RsaPss — самая строгая и рекомендуемая политика безопасности.
- Отсутствует — данные передаются в открытом виде. Используется только в защищенных сетях для тестирования и отладки.
- Подписать — цифровая подпись всех сообщений. Гарантия, что телеметрия и команды не были подменены.
- Подписать и шифровать — данные сначала подписываются, а затем шифруются.
- Анонимный — без указания данных аутентификации.
- Логин и пароль — после выбора этой опции становятся доступны для заполнения поля:
- Имя пользователя — имя пользователя для доступа.
- Пароль — пароль пользователя для доступа.
| Признак качества | Описание |
|---|---|
0x0 |
Плохое |
0x08 |
Нет соединения |
0x0C |
Ошибка прибора |
0x10 |
Обрыв датчика |
0x14 |
Сбой связи |
0x18 |
Нет связи |
0x1C |
Out of Service |
0x40 |
Неопределенное |
0xC0 |
Хорошее |
На вкладке "Синхронизация" доступны параметры для настройки:

- История тегов — включение/отключение архивирования истории значений тегов в OPC UA.
- Время отсутствия связи — максимальное время недоступности данных до установки статуса "Плохое качество".
- Интервал разделения при загрузке — длительность сегментов истории при запросе данных от сервера для оптимизации загрузки.

| Тег OPC UA | Описание |
|---|---|
Для аналогового значения |
|
Для дискретного значения |
Modbus
Окно настройки обмена данными системы по протоколам Modbus TCP/RTU/ASCII. В левой части окна находится структура, создаваемая пользователем при настройке. В правой части расположен уникальный набор свойств для каждого выбранного компонента структуры.

Настройка драйвера
Для обмена данными в протоколах Modbus TCP/RTU/ASCII необходимо настроить драйвер Modbus. Для этого следует добавить соответствующий "Узел" к драйверу, а затем создать "Устройство", в которое можно добавлять и настраивать "Теги", которые будут принимать значения в систему по выбранному протоколу.

При создании компонента "Узел" система предложит выбрать "Тип узла":
- TCP/IP — при обмене данными по протоколу Modbus TCP.
- COM — при обмене данными по протоколу Modbus RTU/ASCII.

При создании компонента "Устройство" система предложит выбрать из контекстного меню один из вариантов:
- Добавить новое устройство — добавляет новое устройство.
- Создать по шаблону — вызывает диалоговое окно для выбора шаблона устройства.


Для удобства тиражирования "Устройство" можно сохранить как шаблон. Для этого необходимо нажать правой кнопкой мыши на пункт "Устройство" и выбрать пункт "Сохранить как шаблон". В том же контекстном меню доступна опция "Дублировать" для создания дубликата устройства. Также с помощью контекстного меню можно создать всю структуру объектов в драйвере.

Типы стрелочных индикаторов при добавлении тегов для Modbus-устройств.
| Тег Modbus | Тип доступа |
|---|---|
Чтение/запись |
|
Только чтение |
|
Только запись |
Модель данных Modbus
Обмен данными с Modbus-устройствами происходит через регистры. В протоколе Modbus определяется четыре типа регистров:
Coils(Регистры флагов) — чтение и запись (1 бит)Discrete Inputs(Дискретные входы) — только чтение (1 бит)Holding Registers(Регистры хранения) — чтение и запись (16-бит слово)Input Registers(Регистры ввода) — только чтение (16-бит слово)
Coils хранят однобитные значения — то есть могут находиться в состоянии 0 или 1. Такие регистры могут обозначать текущее состояние выхода (включено реле). Название coil буквально означает обмотку электромеханического реле. Регистры флагов допускают как чтение, так и запись.
Discrete Inputs также являются однобитными регистрами, описывающими состояние входа устройства (например, подано напряжение — 1). Эти регистры поддерживают только чтение.
Holding Registers и Input Registers представлены двухбайтовым словом и могут хранить значения от 0 до 65535 (0x0000 — 0xFFFF в шестнадцатеричной системе счисления). Регистры ввода допускают только чтение (например, текущее значение температуры). Регистры хранения поддерживают как чтение, так и запись (для хранения настроек). В настоящее время во многих устройствах эти регистры не разделяются. Команды на чтение регистра хранения N и регистра ввода N обратятся к одному и тому же значению в адресном пространстве устройства.
- Имя — уникальное название узла для обращения к нему в системе.
- Комментарий — дополнительная информация об узле для удобства сопровождения.
- Хост — IP-адрес или сетевое имя устройства.
-
Порт — номер TCP-порта для подключения (обычно 502).
-
Режимы:
- Прямой — стандартный режим для нативных устройств Modbus TCP.
- RTU поверх TCP — режим для устройств с последовательным портом, работающих через Ethernet-конвертер.
- ASCII поверх TCP — режим для редких устройств, использующих ASCII-кодировку поверх сети.
- Имя — уникальное название узла в системе.
- Комментарий — поясняющая информация об устройстве.
- COM-порт — физический последовательный порт (COM1, COM2) для подключения.
- Порт-путь к файлу — путь к виртуальному COM-порту в системах типа Linux (/dev/ttyS0).
- Скорость — скорость обмена данными (бодрейт), например, 9600.
- Бит данных — количество бит данных в кадре (обычно 8).
- Стоповых бит — количество бит, обозначающих конец кадра (1 или 2).
- Четность — способ проверки ошибок (Нет, Чет, Нечет).
- Управление портом — метод управления потоком (Нет, Аппаратное, Xon/Xoff).
- Протокол:
- RTU — Modbus RTU.
- ASCII — Modbus ASCII.
- Имя — уникальное название данного устройства внутри узла.
- Комментарий — дополнительная информация о подключаемом устройстве.
- Адрес — идентификатор устройства (Slave ID) в сети Modbus (1-255).
- Таймаут ожидания — время ожидания ответа от устройства в мс.
- Повторы при ошибке — количество повторных попыток запроса при неудаче.
- Повторное соединение при ошибке — интервал перед попыткой переподключения после разрыва связи.
- Количество регистров в запросе — максимальное количество регистров, читаемых/записываемых за один запрос.
- Функции записи — разрешенные команды для записи данных:
05, 06— запись одиночных значений: функция05для одного бита (катушки), функция06для одного числа (регистра).15, 06— групповая запись битов и одиночная запись чисел: функция15для нескольких битов, функция06для одного регистра.05, 16— одиночная запись битов и групповая запись чисел: функция05для одного бита, функция16для нескольких регистров.15, 16— групповая запись для максимальной эффективности: функция15для нескольких битов, функция16для нескольких регистров.
- Оптимизатор — алгоритм объединения отдельных запросов в пакеты для повышения эффективности:
- Нет — оптимизация отключена, каждый тег запрашивается отдельным Modbus-запросом.
- Full — полная оптимизация: запросы на чтение объединяются в пакеты по адресам, даже если теги принадлежат разным функциям (03, 04 и т.д.).
- Data — оптимизация только в пределах одной группы данных (функции), например, все регистры Holding Registers (функция 03) читаются одним пакетом.
- Имя — уникальное имя тега в проекте.
- Комментарий — краткое пояснение.
- Адрес — адрес данных в устройстве (доступен ввод адреса в HEX-формате).
- Область памяти (Регион):
Coils (0x)— биты, доступные для чтения и записи (функции 01, 05, 15).Discrete Inputs (1x)— биты только для чтения (функция 02).Holding Registers (4x)— 16-битные регистры для чтения и записи (функции 03, 06, 16).Input Registers (3x)— 16-битные регистры только для чтения (функция 04).
- Тип значения:
Bool— логическое значение (true/false).Int16— целое число со знаком (-32 768 до 32 767).Int32— длинное целое со знаком (-2 147 483 648 до 2 147 483 647).Float32— число с плавающей запятой (±3.4 × 10³⁸).Uint16— целое число без знака (0 до 65 535).Float16— половина слова с плавающей запятой (±65 504).UInt32— длинное целое без знака (0 до 4 294 967 295).
- Тип доступа:
- Чтение/запись — разрешены и чтение значения, и запись.
- Только чтение — значение можно только читать из устройства.
- Только запись — значение можно только записывать в устройство.
- Порядок байт:
Default / BigEndian— стандартный для Modbus порядок: старший байт идет первым[1][2][3][4].LittleEndian— обратный порядок: младший байт идет первым[2][1][4][3].BigEndian 4_3_2_1— полная инверсия байт[4][3][2][1].BigEndian 3_4_1_2— перестановка слов и байт внутри них[3][4][1][2].LittleEndian 1_2_3_4— порядок слов Little-endian, байты в словах Big-endian (редко).LittleEndian 2_1_4_3— порядок слов Little-endian, байты в словах Little-endian.
- Принудительно писать с кодом 0х06 — при включении флага запись в регистр всегда выполняется функцией 06 (Write Single Register), даже для многобайтных данных.
- Использование бита — при включении флага читается не весь регистр, а только один конкретный бит внутри него.
- Номер бита — номер бита (0-15) в регистре, который будет использоваться, если включено "Использование бита".
| Признак качества | Описание |
|---|---|
0x101 |
Недопустимая функция |
0x102 |
Недопустимый адрес данных |
0x103 |
Недопустимое значение |
0x104 |
Сбой устройства сервера |
0x105 |
Acknowledge |
0x106 |
Сервер устройства занят |
0x107 |
Ошибка четности памяти |
0x10A |
Путь шлюза недоступен |
0x10B |
Сбой ответа от целевого устройства шлюза |
0x10F |
Таймаут адреса |
Дублировать
Для копирования тегов и устройств можно воспользоваться функцией "Дублировать". При дублировании тега в окне "Дублирование" необходимо указать следующие параметры:
- Количество тегов — число создаваемых копий исходного тега.
- Шаг приращения адреса — величина, на которую увеличивается адрес Modbus для каждого следующего дубликата.
- Количество бит — число битов, через которое будет изменяться номер бита в каждом следующем дубликате (активно при включенном флаге "Использование бита").

Экспорт/импорт из CSV
Инструмент позволяет быстро загружать или выгружать теги в структурированном виде, что упрощает массовое создание, редактирование или миграцию данных между системами. Он поддерживает чтение и запись CSV с указанием ключевых полей (имя, тип, адрес, пространство и пр.). Например, с помощью данного инструмента удобно создавать длинные списки тегов.
Чтобы экспортировать начальную структуру в CSV-файл необходимо нажать кнопку "Экспорт в CSV" и выбрать каталог для сохранения CSV-файла.

Структура экспортированного CSV-файла:
- Параметры узла.
- Параметры устройства.
- Добавленные в устройство теги.

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

После этого сохранить файл и импортировать его в среду разработки.

Если для драйвера уже настроен узел, то перед импортом данных система отобразит диалоговое окно с предупреждением. При нажатии кнопки "Заменить" происходит полная перезапись структуры существующего узла. Кнопка "Добавить" позволит объединить структуры.

В случае возникновения ошибок при импорте система выдаст предупреждение с указанием номера некорректной строки в файле. Необходимо исправить и повторить процедуру импорта.

Корректно импортированная структура из CSV-файла.

Импорт из Codesys
Инструмент позволяет быстро переносить список переменных посредством копирования их из среды CODESYS (например, из таблицы Global Variables или экспорта в текстовый формат) и вставки в соответствующее окно редактора. Система автоматически распознает имена, типы данных и адреса, преобразует их в совместимый формат, а также проверяет корректность синтаксиса. Для начала необходимо скопировать в буфер обмена таблицу глобальных переменных и перейти в среду разработки.
| Codesys GVL | |
|---|---|

Откроется встроенный редактор среды разработки, в который можно вставить список переменных.

В редакторе нажать кнопку "Ок". В "Устройство" автоматически будут добавлены теги с сохранением адресов и типов данных переменных.

Ping
Для проверки доступности сетевых узлов в системе предусмотрена возможность настройки драйвера утилиты "Ping". В окне "Настроить" можно настроить сетевые параметры опрашиваемого устройства, создать дубликат и выполнить тиражирование устройств с помощью CSV-файла при необходимости. Для всех созданных устройств используется одинаковый набор тегов.

- Активность — можно деактивировать опрос устройства на время ремонтных работ:
- 0 — Offline.
- 1 — Online.
- 2 — Disable.
- Статус — статус устройства (1 — Online; 0 — Offline).
- Качество — индикация качества сигнала в процентах (0 — 100%).
Изменять состояние тега "Активность" необходимо только воздействием с мнемосхемы. Т.е. если, к примеру, необходимо вывести устройство из опроса, недостаточно отключить опрос в свойствах тега — необходимо выполнить привязку и воздействовать на него с мнемосхемы.
- Имя — уникальное сетевое имя устройства для идентификации в системе.
- Хост (IP-адрес) — сетевой адрес устройства в сети.
- Интервал пинга — периодичность проверки доступности устройства путем отправки ping-запросов.
SNMP
Окно настройки драйвера протокола SNMP.

- Имя — уникальное имя устройства в системе.
- Комментарий — дополнительное описание устройства.
- Перехват ловушек — включение приёма асинхронных уведомлений (trap) от устройства.
- Хост — IP-адрес или имя хоста SNMP-устройства.
- Порт — UDP-порт для запросов (обычно 161).
- Версия —версия протокола SNMP:
- SNMP v1 — первая и самая простая версия протокола, обеспечивающая базовые функции мониторинга, но не поддерживающая шифрование и использующая примитивную аутентификацию по сообществу (community string).
- SNMP v2c — улучшенная версия, которая добавила новые типы запросов (например, GetBulk для эффективного получения больших объемов данных). Использует небезопасную аутентификацию по сообществу.
- SNMP v3 — наиболее современная и безопасная версия протокола, которая поддерживает шифрование трафика и надежную аутентификацию пользователей.
- Сообщество — пароль для аутентификации в версиях 1 и 2c (например, "public").
- Таймаут — время ожидания ответа от устройства в миллисекундах.
- Повторы — количество повторных попыток запроса при таймауте.
- Имя — уникальное имя тега в проекте.
- Комментарий — дополнительное описание тега для удобства настройки.
- OID — идентификатор объекта, уникальный адрес параметра в MIB-базе устройства.
- Тип доступа — режим работы: "Только чтение", "Только запись" или "Чтение/запись".
- Тип значения — тип данных, возвращаемых или принимаемых по OID (
Int32,Int64,Uint32,Uint64,String).
Для добавления в устройство OID (Object Identifier) контролируемого узла необходимо нажать кнопку "Выбор OID". Откроется диалоговое окно "Выбор OID".
➕ Загрузить MIB файл — позволяет добавить в программу новый MIB-файл, чтобы расширить список доступных OID.
❌ Выгрузить MIB — удаляет ранее загруженный MIB-файл из программы.

hrSystem (1.3.6.1.2.1.25.1)— общая информация о системе: аптайм, количество пользователей, параметры ОС.hrStorage (1.3.6.1.2.1.25.2)— сведения о хранилищах: диски, разделы, оперативная память, swap.hrDevice (1.3.6.1.2.1.25.3)— перечень устройств: процессоры, сетевые адаптеры, принтеры и прочие компоненты.hrSWRun (1.3.6.1.2.1.25.4)— информация о запущенных процессах/программах в системе.hrSWRunPerf (1.3.6.1.2.1.25.5)— производительность запущенного ПО: использование процессора и памяти.hrSWInstalled (1.3.6.1.2.1.25.6)— список установленного программного обеспечения.hrMIBAdminInfo (1.3.6.1.2.1.25.7)— административная информация о MIB (обычно мало используется, служебный раздел).
MQTT
Окно настройки драйвера протокола MQTT.

- Имя — уникальное название подключения к брокеру в системе.
- Комментарий — дополнительная информация о подключении.
- Хост — адрес или доменное имя MQTT-брокера.
- Порт — сетевой порт для подключения (обычно 1883 или 8883 для SSL).
- Имя пользователя — логин для аутентификации на брокере.
- Пароль — пароль для аутентификации.
- Шифрование — флаг включения защищенного соединения (SSL/TLS).
- Доверять сертификату сервера — флаг игнорирования ошибок проверки сертификата (для самоподписанных).
- ID клиента — уникальный идентификатор клиента для брокера.
- KeepAlive Интервал — периодичность отправки служебных пакетов для поддержания соединения (в секундах).
- Чистая сессия — флаг, указывающий брокеру не хранить подписки и не доставлять пропущенные сообщения после переподключения.
- QoS подписки — уровень качества обслуживания (гарантии доставки) для получаемых сообщений.
- Максимально один раз (0) — брокер отправляет сообщение один раз без подтверждения. Возможна потеря данных.
- По крайней мере один раз (1) — брокер гарантирует доставку, повторяя отправку, пока не получит подтверждение. Возможны дубликаты.
- Точно один раз (2) — брокер гарантирует доставку ровно одного экземпляра сообщения, используя сложный механизм подтверждения. Наиболее надежный режим.
- QoS убликации — уровень качества обслуживания для отправляемых сообщений.
- Максимально один раз (0) — сообщение отправляется один раз без ожидания подтверждения от брокера.
- По крайней мере один раз (1) — клиент повторяет отправку, пока не получит подтверждение от брокера. Гарантирует доставку, но возможны дубликаты на стороне брокера.
- Точно один раз (2) — гарантирует, что сообщение будет обработано брокером ровно один раз.
- Retain публикации — флаг, указывающий брокеру сохранять последнее сообщение в топике и отправлять его новым подписчикам.
- Таймаут переподключения — время задержки перед попыткой переподключения к брокеру при обрыве связи.
- Имя — уникальное имя тега в проекте.
- Комментарий — дополнительное описание тега для удобства настройки.
- Тип доступа — режим работы тега: "Только чтение", "Только запись" или "Чтение/запись".
- Топик подписки — MQTT-топик, из которого тег будет получать данные.
Bus77
Окно настройки драйвера протокола Bus77. Существует два способа настройки драйвера:
- Ручная настройка устройств и тегов.
- Сканирование сети для получения всей структуры устройств. Сканирование можно выполнить с помощью соответствующей кнопки в окне настроек драйвера.

- Имя — уникальное название подключения в системе.
- Комментарий — дополнительная информация о подключении.
- Хост — сетевой адрес устройства в сети.
- Порт — сетевой порт для подключения (обычно 30464).
- Имя — уникальное имя тега в проекте.
- Комментарий — дополнительное описание тега для удобства настройки.
- ID глобальной переменной — уникальный идентификатор переменной.
- Тип значения:
Boolean— логический тип (true/false, 1/0).Int8— целое со знаком (-128 до 127).UInt8— целое без знака (0 до 255).Int16— целое со знаком (-32 768 до 32 767).UInt16— целое без знака (0 до 65 535).Int32— целое со знаком (-2 147 483 648 до 2 147 483 647).UInt32— целое без знака (0 до 4 294 967 295).Float— число с плавающей запятой (±3.4×10³⁸).Int64— целое со знаком (±9.2×10¹⁸).UInt64— целое без знака (0 до 1.8×10¹⁹).Double— число с двойной точностью (±1.7×10³⁰⁸).String— строковый тип данных.ByteArray— массив байтов (8-битных беззнаковых целых чисел).
Окно "Проект"
Для начала работы с тегами в окне "Источники" необходимо перенести их в соответствующее окно "Проект", удерживая левую кнопку мыши. После переноса тег становится активным, и его значения сохраняются в базу данных.
Тег — канал ввода/вывода, который может быть как реальным (физическим), так и виртуальным. Тег содержит значение, полученное от различных устройств, либо получает уже сформированное с помощью программных скриптов.
Реальный (физический) тег получает значение в реальном времени на основе сигналов от оборудования.
Виртуальный тег создаётся и вычисляется внутри SCADA. Его значение может быть результатом математических расчётов, логических операций или просто временным хранилищем данных. Например, средняя температура за час, флаг аварии (срабатывающий при превышении допустимого давления) или промежуточная переменная в скрипте.
| Тег | Описание |
|---|---|
Физический тег |
|
Виртуальный тег |
Для удобства в окне "Проект" предусмотрена панель инструментов.
| Кнопка | Описание |
|---|---|
Тест тегов |
|
Добавить виртуальные теги |
|
Добавить группу |
|
Удалить тег/группу |
|
Развернуть проект |
|
Сохранить проект |
Тест тегов
Для демонстрации работы с активными тегами пользователю предлагается выполнить следующие действия:
- Перенести каталог "Системные теги сервера" в окно "Проект".
- Нажать кнопку "Сохранить" для сохранения изменений в проекте.
- Нажать кнопку "Развернуть проект", чтобы отправить проект на сервер (в роли сервера в данном случае выступает инструментальный ПК, на котором установлена среда разработки).
- Нажать кнопку "Тест тегов". После нажатия этой кнопки среда разработки перейдет в режим опроса технических тегов сервера, добавленных в качестве активных в проект.

Рядом с каждым системным тегом появится поле для выбора, в котором необходимо поставить флаг (символ х). После выбора, рядом с названием тега появится его текущее значение. Если требуется выбрать всю группу, то флаг необходимо установить для каталога. Для остановки режима тестирования необходимо нажать кнопку 🟥 на панели инструментов.

В окне "Проект" также можно использовать контекстное меню, вызвав его нажатием правой кнопки мыши.

- Добавить группу — создать новый каталог для организации тегов.
- Добавить виртуальные теги — создать тег, значение которого вычисляется внутри SCADA.
- Дублировать группу — создать копию существующей группы тегов со всем её содержимым.
- Удалить — удалить выбранный тег или группу.
- Отвязать теги от источника — разорвать связь тегов с устройством, преобразовав их в виртуальные.
- Импорт тегов из v4 — загрузить теги из конфигурации старой версии системы Симплайт 4.
- Копировать свойства тега — скопировать настройки выбранного тега (тип данных, формат значения, шкала и т.д.) в буфер обмена.
- Вставить свойства тега — применить скопированные настройки к выбранному тегу.
- Копировать свойство группы — скопировать настройки группы.
- Вставить свойства группы — применить скопированные настройки группы к другой группе. После активации данной функции система отобразит окно со списком тегов, свойства которых необходимо изменить.
- Развернуть все — полное раскрытие древовидной структуры тегов для просмотра всех элементов.
- Свернуть все — полное сворачивание древовидной структуры тегов до корневого уровня.

Отвязка тегов
Функция "Отвязать теги от источника" может пригодиться, когда на каком-то из этапов разработки проекта источник данных может измениться, но проект уже разработан, в нем выполнены привязки к определённым объектам на мнемосхеме, либо названия тегов используются в скриптах. После активации функции система запросит подтверждение.

При выборе варианта "Да" система отвяжет теги от источника и преобразует физические теги проекта в виртуальные. При этом ID тегов останутся неизменными. После этого необходимо выбрать другой тег в окне "Источники" и перетащить левой кнопкой мыши на отвязанный тег. Система снова преобразует его в физический и в свойствах тега изменит "Тип источника".
Окно "Свойства"
В окне "Свойства" производится настройка свойств тегов. Для редактирования необходимо выделить активный тег или несколько тегов в окне "Проект". Набор основных характеристик может незначительно различаться в зависимости от типа тега (физический или виртуальный).

- Опрашивать — при установленном флаге, значения тега, поступающие от источника данных, обрабатываются системой в соответствии с выбранными настройками. Это включает в себя сохранение данных в базе, контроль связи, активацию сигнализации и другие действия.
- Интервал опроса — период (в мс) между чтениями значения тега из устройства.
- Сохранение в БД:
- Активность — включить/выключить архивацию значения тега.
- Сохранение только при хорошем качестве — записывать в архив только значения с валидным качеством.
- Сохранение только в пределах шкалы — записывать в архив только значения, находящиеся в диапазоне выбранной шкалы.
- Стратегия:
- по изменению — при изменении значения на величину, большую чем "Мертвая зона".
- по таймеру — через фиксированные интервалы времени.
- мертвая зона — минимальное изменение значения, при котором оно будет записано в архив (для стратегии "по изменению").
- Имя — уникальное имя тега в проекте.
- Комментарий — дополнительное описание.
- ID тега — уникальный числовой идентификатор тега в системе.
- Тип источника — тип драйвера, к которому привязан тег.
- Тег источник — ссылка на конкретный тег в драйвере, откуда берутся данные.
- Видимость — флаг определяет, отображается ли тег в списках для выбора.
- Шкала — выбор шкалы значений для тега, которая позволяет реализовать контроль параметров, выдачу сообщений и настройку отображения в окнах, графиках и отчетах.
- Категория событий — выбор категории событий из настроенных в окне "Редактор категорий событий"
- Произвольные сообщения — разрешить запись в журнал событий произвольных текстовых сообщений, связанных с тегом.
- Модификаторы — пользовательские преобразования значения тега перед использованием.
- Чтение — формула для преобразования "сырого" значения, полученного от устройства, перед использованием в системе (например, VALUE * 0.1).
- Запись — формула для преобразования задаваемого значения перед отправкой его в устройство (например, VALUE / 0.1).
- Тип значения (данных) — тип данных тега.
- Резервирование:
- Синхронизировать между узлами — включение синхронизации значения тега между серверами в резервированной конфигурации.
- Сохранение в БД:
- Активность — включить/выключить архивацию значения тега.
- Сохранение только при хорошем качестве — записывать в архив только значения с валидным качеством.
- Сохранение только в пределах шкалы — записывать в архив только значения, находящиеся в диапазоне выбранной шкалы.
- Стратегия:
- по изменению — при изменении значения на величину, большую чем "Мертвая зона".
- по таймеру — через фиксированные интервалы времени.
- мертвая зона — минимальное изменение значения, при котором оно будет записано в архив (для стратегии "по изменению").
- Имя — уникальное имя тега в проекте.
- Комментарий — дополнительное описание.
- ID тега — уникальный числовой идентификатор тега в системе.
- Тип источника — тип драйвера, к которому привязан тег.
- Тег источник — ссылка на конкретный тег в драйвере, откуда берутся данные.
- Видимость — флаг определяет, отображается ли тег в списках для выбора.
- Шкала — выбор шкалы значений для тега, которая позволяет реализовать контроль параметров, выдачу сообщений и настройку отображения в окнах, графиках и отчетах.
- Категория событий — выбор категории событий из настроенных в окне "Редактор категорий событий"
- Произвольные сообщения — разрешить запись в журнал событий произвольных текстовых сообщений, связанных с тегом.
- Значение по умолчанию:
- Активность — включить/выключить установку значения по умолчанию при инициализации тега.
- Значение:
- Сохранять между сессиями — сохранять текущее значение тега при перезапуске системы и восстанавливать его.
- Выражение — формула для расчёта значения тега на основе других тегов, переменных или функций (например, {Tag1} + {Tag2}).
- Тип значения (данных) — тип данных тега.
Boolean— логический тип (true/false, 1/0).Int8— целое со знаком (-128 до 127).UInt8— целое без знака (0 до 255).Int16— целое со знаком (-32 768 до 32 767).UInt16— целое без знака (0 до 65 535).Int32— целое со знаком (-2 147 483 648 до 2 147 483 647).UInt32— целое без знака (0 до 4 294 967 295).Int64— целое со знаком (±9.2×10¹⁸).UInt64— целое без знака (0 до 1.8×10¹⁹).Float (Float32)— число с плавающей запятой (±3.4×10³⁸).Double (Float64)— число с двойной точностью (±1.7×10³⁰⁸).DateTime— дата и время. Дата — целая часть, время — дробная часть. Дата сохраняется как число дней с 30 декабря 1899.String— строковый тип данных.
Модификаторы
Данный инструмент позволяет определить процедуру обработки значений тега. Обработка заключается в производстве арифметических действий над значением. Общую схему модификации значений можно представить в виде следующей последовательности:
- Получение значения из тега.
- Обработка значения в формуле.
- Модифицированное значение.
Чтобы добавить "Модификатор" необходимо нажать кнопку ... в поле "Чтение" или "Запись", в зависимости от того, отправляется ли значение либо получается.

В диалоговом окне "Редактор модификаторов" ввести формулу пересчета значения. Перед подтверждением рекомендуется проверить корректность введенной формулы, нажав кнопку "Проверить".

В случае отсутствия ошибок окно сформирует отчет об успешном прохождении теста.

После подтверждения поле, для которого готовился модификатор, изменит статус на "Да".

Редактор выражений
Данный инструмент доступен в свойствах виртуального тега. Чтобы добавить рассчетную формулу необходимо нажать на кнопку ... поля "Выражение". Появится диалоговое окно "Редактор выражений".

Чтобы добавить тег к выражению необходимо 2 раза нажать левой кнопкой мыши на требуемый тег в "Дереве проекта". После этого система добавит его на поле редактирования выражений. В правой части интерфейса есть возможность быстрого доступа к нужной функции (в данной области представлены не все доступные функции). Перед подтверждением рекомендуется проверить корректность выражения, нажав кнопку "Проверить". В случае отсутствия ошибок, в области сообщений от компилятора будет выведено сообщение об успешном прохождении теста.

- Дерево проекта — перечень всех физических тегов проекта.
- Выражение — область редактирования исходного кода. Добавление тега в область осуществляется двойным нажатием левой кнопки мыши.
- Перечень часто используемых функций в выражениях.
- Область, в которой отображается подсказка по использованию выбранной функции.
- Кнопка "Проверить" — проверка правильности написания исходного выражения.
Функции
В данном разделе представлен полный перечень функций, применяемых в выражениях и модификаторах.
Важно
- Функции, обозначенные символом *, доступны только в выражениях для тегов и не могут быть использованы в модификаторах.
- Функция scaleScalar доступна только в модификаторах.
- Имя тега передается в функцию в формате ${var_name}.
- Если в функцию передается аргумент, представленный в виде строки, то его необходимо заключить в одинарные кавычки 'some string'.
- Значения типа number не требуется заключать в кавычки.
| Оператор | Описание | Пример выражения |
|---|---|---|
abs |
Возвращает абсолютное значение | abs(${var}) |
arccos |
Вычисляет арккосинус значения в радианах | arccos(${var}) |
arcsin |
Вычисляет арксинус значения в радианах | arcsin(${var}) |
arctan |
Вычисляет арктангенс значения в радианах | arctan(${var}) |
arccotan* |
Вычисляет арккотангенс значения в радианах | arccotan(${var}) |
band |
Побитовое И над значениями тегов x и y |
band(${x}, ${y}) |
bnot |
Побитовое НЕ над значением тега x |
bnot(${x}) |
bor |
Побитовое ИЛИ над значениями тегов x и y |
bor(${x}, ${y}) |
blshift |
Побитовое смещение влево значения тега x на n бит |
blshift(${x}, n) |
brshift |
Побитовое смещение вправо значения тега x на n бит |
brshift(${x}, n) |
bxor |
Побитовое исключающее ИЛИ над значениями тегов x и y |
bxor(${x}, ${y}) |
ceil |
Округляет вверх до ближайшего целого значения | ceil(2.4) = 3 |
cos |
Вычисляет косинус значения в радианах | cos(${var}) |
cotan* |
Вычисляет котангенс значения в радианах | cos(${arg}) |
dateTimeToString* |
Преобразует время в формате строки ISO8601 | dateTimeToString('2025-12-16T05:40:05Z') |
exp |
Возводит значение тега x в натуральную степень e ~ 2.72 |
exp(${x}) |
fact* |
Вычисляет факториал значения | fact(${x}) |
floor |
Округляет вниз до ближайшего целого значения | floor(2.6) = 2 |
frac |
Извлекает дробную часть значения | frac(${var}) |
getBit |
Извлекает бит n из значения тега var |
getBit(${var}, n) |
if |
Условная функция: возвращает одно из двух значений: x — (true), y — (false) |
if(${var} > 100, x, y) |
ln |
Вычисляет натуральный логарифм значения | ln(${var}) |
max |
Возвращает максимальное из значений тегов x и y |
max(${x}, ${y}) |
min |
Возвращает минимальное из значений тегов x и y |
min(${x}, ${y}) |
power* |
Возводит значение тега var в степень n |
power(${var}, n) |
round |
Округляет значение до ближайшего целого | round(2.6) = 3 |
scaleScalar |
Масштабирование значения x из диапазона [inS, inE] в диапазон [outS, outE] |
scaleScalar(${x}, inS, inE, outS, outE) |
setBit |
Устанавливает бит n в значение state (0 или 1) тега var |
setBit(${var}, n, state) |
sin |
Вычисляет значение синуса в радианах | sin(${var}) |
sqr* |
Возводит значение в квадрат | sqr(${var}) |
sqrt |
Получает квадратный корень значения | sqrt(${var}) |
strInCommaText* |
Проверяет находится ли текст str в аргументе commaText |
strInCommaText('str', ${commaText}) |
trunc |
Извлекает целую часть значения тега var |
trunc(${var}) |
Примечание:
- ФункцияgetBit(значение, номер_бита)возвращает 1, если бит установлен, и 0 — если сброшен. Нумерация битов обычно начинается с 0 (младший бит).


