Программный комплекс Rapid SCADA предназначен для работы в составе автоматизированных систем и позволяет создавать на своей базе:
Комплекс Rapid SCADA является программным обеспечением верхнего уровня, выполняет функции автоматического сбора, обработки, резервирования данных с различных устройств, управления оборудованием, предоставления информации пользователям в соответствии с правами доступа. Нижний аппаратный уровень системы включает в себя приборы учёта, датчики, контроллеры, интерфейсы связи, сетевое оборудование и др. устройства, выпускаемые различными производителями.
Универсальность программного комплекса достигается благодаря использованию модульной архитектуры программного обеспечения, в состав которого входят библиотеки для взаимодействия с различными измерительными и управляющими устройствами, устройствами сбора и передачи данных. Открытые интерфейсы, форматы хранения и передачи информации позволяют расширять комплекс, создавая новые драйверы устройств, плагины интерфейса оператора и отчётные формы, выполнять интеграцию со сторонними системами.
Rapid SCADA обладает мощными возможностями масштабирования, позволяет с минимальными затратами подключать новые аппаратные средства. Система имеет средства разграничения прав пользователей, таким образом, каждый пользователь, используя имя и пароль для входа в систему, может получить доступ только к той информации, на работу с которой он имеет право. Возможность использования Active Directory для аутентификации пользователей существенно повышает безопасность хранения паролей и избавляет администратора системы от необходимости ручного ведения справочника имён и паролей пользователей.
Следующая таблица содержит описание основных характеристик программного комплекса.
Характеристика | Значение |
---|---|
Семейства поддерживаемых ОС | Windows, Linux |
Макс. количество входных каналов | 65535 |
Макс. количество каналов управления | 65535 |
Макс. количество линий связи | 65535 |
Макс. количество КП (устройств) | 65535 |
Мин. период обновления текущих данных | 1 секунда |
Мин. период сохранения архивных данных | 1 минута |
Макс. длительность хранения архивных данных | 10 лет |
Автоматическое создание резервной копии данных | Есть |
Возможность аутентификации на основе Active Directory | Есть |
Протокол обмена данными между приложениями комплекса | TCP |
Ведение журналов работы приложений и действий пользователей | Есть |
Функция запрета команд телеуправления | Есть |
Возможность наращивать функциональность собственными модулями | Есть |
Открытая архитектура, протоколы обмена данными, форматы файлов | Да |
Программный комплекс Rapid SCADA имеет распределённую многоуровневую архитектуру (рис. 1). Приложения системы могут функционировать как на одном сервере, так и на нескольких компьютерах сети, контролируемые устройства могут использовать каналы связи различных типов для подключения к системе.
Рис. 1. Архитектура программного комплекса
В состав программного комплекса входят следующие основные приложения:
Обеспечение доступа к данным с использованием веб-технологий существенно упрощает развёртывание и обслуживание системы, что особенно актуально при большом количестве пользователей.
В качестве контролируемых устройств системы применяются электросчётчики, теплосчётчики, охранно-пожарные контрольно-приёмные приборы, контроллеры доступа и др. оборудование.
Приложение Сервер предназначено для управления базой архивных данных системы, ведения резервной копии данных, математических расчётов в соответствии с заданной конфигурацией и предоставления информации по запросам клиентов.
Рис. 1. Графическая оболочка для настройки Сервера
Сервер является службой, которая не имеет пользовательского интерфейса и работает постоянно в фоновом режиме вне зависимости от входа и выхода пользователей в операционную систему. Графическая оболочка для настройки Сервера встроена в приложение Администратор (рис. 1).
Программа осуществляет контроль подключенных пользователей и на основе их прав производит ограничение выдаваемых данных и принимаемых команд. Служебная информация о работе приложения сохраняется в текстовом файле журнала. Сервер рассчитан на круглосуточный режим работы.
Дополнительные серверные модули позволяют расширять функциональность Сервера в соответствии с требованиями Заказчика.
Приложение Коммуникатор выполняет следующие функции:
Рис. 1. Графическая оболочка для настройки Коммуникатора
Коммуникатор автоматически записывает в текстовые файлы информацию о работе приложения, линий связи, каждого подключенного устройства. Коммуникатор является службой, которая не имеет пользовательского интерфейса. Графическая оболочка для настройки Коммуникатора встроена в приложение Администратор (рис. 1). Режим работы Коммуникатора круглосуточный. Сторонние разработчики имеют возможность реализовывать собственные драйверы для взаимодействия Коммуникатора с различными устройствами.
Вебстанция – это веб-приложение, которое предназначено для отображения измеряемых системой данных и управления посредством программы-браузера (рис. 1 и 2). Информация представляется в табличной форме, на графиках, на схемах, а также в отчётах, которые генерируются в привычных форматах HTML и Microsoft Excel.
Рис. 1. Приложение Вебстанция. Мнемосхема
Рис. 2. Приложение Вебстанция. Табличное представление
Для получения информации пользователю достаточно выбрать представление (таблицу или схему) и при необходимости изменить дату просматриваемых данных. Чтобы получить график значений интересующего входного канала, следует щёлкнуть мышкой по пиктограмме параметра в таблице или по элементу на схеме.
Приложение Вебстанция доступно с любого компьютера или планшета, подключенного к вычислительной сети организации без выполнения какой-либо инсталляции ПО. Вход в систему возможен только при наличии прав доступа, определённых администратором системы.
Функциональность Вебстанции может быть расширена с помощью дополнительных плагинов. Например, плагин Графики Про расширяет возможности для работы с трендами входных каналов: масштабирование, одновременное отображение нескольких графиков, экспорт в форматы PNG и PDF. Плагин Гибкий отчёт позволяет генерировать отчёты в соответствии с пользовательской конфигурацией. С помощью данного плагина возможно построить практически любой необходимый отчёт. Сторонние разработчики имеют возможность разрабатывать и встраивать в веб-приложение собственные плагины, отображающие информацию оператору в произвольной форме.
Агент необходим для передачи конфигурации между экземпляром Rapid SCADA и приложением Администратор. Кроме того, Агент предоставляет журналы работы для отображения в Администраторе. Агент работает как служба на том сервере, на котором установлен контролируемый им экземпляр Rapid SCADA. Экземпляр Rapid SCADA включает в себя приложения Сервер, Коммуникатор и Вебстанция, все либо некоторые из этих приложений.
Агент взаимодействует с Администратором по протоколу TCP. Поэтому Администратор может быть установлен как на одном компьютере с Агентом, так и на другом компьютере, который доступен по сети. По умолчанию Агент использует TPC-порт 10002. При удалённом подключении входящие соединения по этому порту должны быть разрешены брэндмауэром сервера.
Агент не имеет пользовательского интерфейса. Для контроля его работы используется журнал, расположенный по умолчанию в директории C:\SCADA\ScadaAgent\Log
Приложение Администратор (рис. 1) предназначено для разработки проектов Rapid SCADA и контроля состояния автоматизированной системы. Администратор представляет собой единую среду разработки, которая позволяет редактировать базу конфигурации, настраивать основные приложения Rapid SCADA, модули Сервера и драйверы устройств.
Рис. 1. Приложение Администратор
Инструменты программы Администратор, позволяющие ускорить процесс конфигурирования:
Проект содержит набор конфигурационных файлов, в основном использующих формат XML. Благодаря данному подходу, проект легко может быть скопирован на другой компьютер. Для контроля версий проекта и совместной работы рекомендуется использовать систему Git.
Приложение Редактор таблиц предназначено для создания табличных представлений, которые отображаются на рабочей станции оператора. Редактор таблиц используется инженерами в процессе конфигурирования Rapid SCADA.
Рис. 1. Приложение Редактор таблиц
В левой части окна программы можно выбрать каналы из базы конфигурации и добавить их в табличное представление. Содержимое редактируемого табличного представления показывается в правой части окна. Скрытые элементы не отображаются веб-интерфейсе приложения Вебстанция, но учитываются при фильтрации событий по представлению.
Редактор таблиц удобно вызывать из приложения Администратор, дважды щелчкнув по узлу редактируемой таблицы в проводнике проекта. В строке состояния Редактора таблиц отображается путь к базе конфигуации проекта, в котором расположена редактируемая таблица.
Приложение Редактор схем предназначено для создания мнемосхем, которые отображаются на рабочей станции оператора. Редактор схем используется инженерами в процессе конфигурирования Rapid SCADA.
Рис. 1. Приложение Редактор схем
Схема состоит из текстовых и графических элементов, которые имеют множество свойств, определяющих их внешний вид и поведение. Отображение статических элементов схемы неизменно. Динамические элементы привязываются к каналам базы конфигурации, что позволяет отображать текущие измеряемые значения и состояния, по щелчку пользователя строить графики и отправлять команды телеуправления.
Основная функциональность | |
---|---|
Единая среда разработки проектов Rapid SCADA | Разработано |
Приложение Агент для взаимодействия с удалёнными серверами | Разработано |
Приложение для автоматической генерации и рассылки отчётов | Разработано |
Мнемосхемы | |
Привязка произвольных свойств компонентов схем к входным каналам | Не включено в план |
Новые компоненты схем | Приветствуется помощь сообщества |
Новые изображения для схем | Приветствуется помощь сообщества |
Драйверы Коммуникатора | |
Драйвер Modbus Slave | Разработан |
Драйвер IEC-61850 | Приветствуется помощь сообщества |
Драйвер BACnet | Приветствуется помощь сообщества |
Любые новые драйверы | Приветствуется помощь сообщества |
Модули Сервера | |
Голосовой модуль | Приветствуется помощь сообщества |
Любые новые модули | Приветствуется помощь сообщества |
Плагины Вебстанции | |
Обновление плагина Графики Про согласно пожеланиям пользователей | Разработано |
Развитие плагина Дэшборды | Не включено в план |
Разработка плагина выгрузки и загрузки архивов | Не включено в план |
Любые новые плагины | Приветствуется помощь сообщества |
Аппаратная конфигурация сервера подбирается, исходя из масштаба автоматизированной системы. Минимальная конфигурация определяется требованиями используемой операционной системы. Для оценки требуемого места на жестком диске необходимо сначала настроить Rapid SCADA, затем измерить ежедневный прирост размера архивных данных и умножить его на период хранения архивов.
Rapid SCADA содержит собственную встроенную систему управления базой данных, поэтому никаких дополнительных затрат на стороннюю СУБД не требуется. Программный комплекс может работать как в физической, так и в виртуальной среде.
Для корректной работы Rapid SCADA необходимо включить определённые компоненты Windows. Перейдите в Панель управления > Программы > Включение или отключение компонентов Windows. Компоненты Microsoft .NET Framework, которые нужно включить, показаны на рис. 1 и 3. Обратите внимание, что для Microsoft .NET Framework 3.5 обязательно должны быть отключены вложенные компоненты Windows Communication Foundation.
Для корректной работы веб-приложения Вебстанция должны быть установлены определённые компоненты веб-сервера Internet Information Services (IIS). На рис. 2 и 4 показан выбор обязательных для работоспособности веб-приложения компонентов. При установке веб-приложения наличие данных компонентов автоматически проверяется программой-установщиком.
Рис. 1. Компоненты .NET для Windows 7
Рис. 2. Компоненты IIS для Windows 7
Рис. 3. Компоненты .NET для Windows 10
Рис. 4. Компоненты IIS для Windows 10
Для установки программного комплекса Rapid SCADA необходимо запустить файл ScadaSetup.exe из дистрибутива. Программа-установщик показана на рис. 5. Установку необходимо выполнять под учётной записью, обладающей правами администратора. Для работы Rapid SCADA требуется наличие на компьютере среды выполнения Microsoft .NET Framework актуальной версии. Программа установщик проверяет её наличие и предлагает скачать и установить при необходимости.
Рис. 5. Программа-установщик
В процессе установки сначала предлагается выбрать инсталлируемые приложения, входящие в состав комплекса, а затем предлагается выбрать директорию для установки (рис. 6). Данная директория определяет расположение всего программного комплекса, в ней создаются поддиректории, необходимые для работы инсталлируемых приложений. Рекомендуется использовать директорию по умолчанию C:\SCADA, чтобы упростить последующую настройку приложений.
Рис. 6. Выбор директории для установки
Параметры установки веб-приложения (рис. 7) согласуются с системным администратором. Если специфические требования к веб-приложению отсутствуют, следует использовать значения по умолчанию.
Рис. 7. Параметры установки веб-приложения
После завершения установки рекомендуется с помощью Диспетчера служб IIS убедиться, что веб-приложение Scada использует пул приложений с версией среды .NET 4.0 и встроенным режимом конвейера. В Windows 7 и Windows 10 диспетчер открывается так: Панель управления > Система и безопасность > Администрирование > Диспетчер служб IIS.
Установка Rapid SCADA вручную позволяет сохранять полный контроль в процессе установки, обновлении и удалении программного комплекса.
Последовательность установки вручную:
Последовательность удаления вручную:
Rapid SCADA позволяет устанавливать дополнительные модули, которые расширяют функциональность программного обеспечения. Данный раздел содержит описание последовательности установки, которая типична для большинства модулей.
Последовательность установки нового или обновления существующего модуля для приложения Сервер:
Последовательность установки нового или обновления существующего драйвера для приложения Коммуникатор:
Дополнительные модули для веб-приложения Вебстанция называются плагины. Последовательность установки нового плагина:
После установки Rapid SCADA рекомендуется перезагрузить компьютер, чтобы автоматически запустились службы Сервера, Коммуникатора и Агента. Когда компьютер перезагрузится, запустите браузер Google Chrome, Mozilla Firefox или Microsoft Edge и введите адрес http://localhost/scada/. Должна открыться страница входа (рис. 1), на которой укажите имя пользователя admin и пароль 12345, затем нажмите кнопку Войти.
Рис. 1. Веб-форма входа в систему
Для запуска приложения Администратор используйте ярлык, расположенный в меню Пуск > Программы > SCADA. Если ярлык по какой-либо причине отсутствует, Администратор можно запустить из исполняемого файла C:\SCADA\ScadaAdmin\ScadaAdmin.exe
Приложение Администратор имеет инструменты для управления остальными приложениями Rapid SCADA.
Приложения Сервер, Коммуникатор и Агент работают как службы. При использовании Windows для управления службами можно использовать оснастку services.msc. Она запускается из командной строки или через Панель управления > Система и безопасность > Администрирование > Службы. Наименования служб: ScadaServerService, ScadaCommService и ScadaAgentService.
Кроме того, в директориях соответствующих приложений расположены файлы svc_start.bat и svc_stop.bat, которые позволяют запускать и останавливать службу. Bat-файлы необходимо запускать от имени администратора.
Приложение Администратор также позволяет запускать и останавливать Сервер и Коммуникатор. Для управления службами в Администраторе откройте проект и затем откройте форму статуса экземпляра (рис. 2) с помощью кнопки .
Рис. 2. Статус экземпляра в Администраторе
Тип запуска служб Сервера, Коммуникатора и Агента по умолчанию устанавливается автоматический, т.е. службы запускаются при старте операционной системы и останавливаются при завершении её работы. Если автозапуск не требуется, то в свойствах соответствующих служб нужно установить запуск вручную (рис. 3).
Рис. 3. Установка типа запуска службы
Чтобы открыть веб-приложение Вебстанция, в адресной строке браузера необходимо ввести http://compname/scada/, где compname - имя компьютера или IP-адрес в локальной сети, на котором установлено веб-приложение, scada – виртуальный каталог, указанный при установке. Если веб-приложение открывается на том же компьютере, на котором оно установлено, то можно использовать ссылки http://localhost/scada/ или http://127.0.0.1/scada/
Имя пользователя по умолчанию: admin
Пароль по умолчанию: 12345
Типичные задачи, при которых необходим перенос конфигурации Rapid SCADA на другой сервер:
Последовательность действий для переноса конфигурации:
Обновление Rapid SCADA до новых версий обязательно должно предварительно проводиться на тестовом сервере. Внимательно изучите список изменений в новой версии. Если изменилась структура базы конфигурации, форматы архивных файлов или файлов представлений, потребуется конвертирование данных с помощью специальной утилиты.
Установка на основной сервер допускается только после того, как появится уверенность в том, что новая версия Rapid SCADA на тестовом сервере работает корректно.
Последовательность действий для обновления Rapid SCADA:
Обновление Rapid SCADA путём прямого копирования файлов новой версии технически возможно. Однако эта операция требует глубокого понимания работы Rapid SCADA и может привести к ошибкам в работе программного обеспечения.
Если Rapid SCADA используется в корпоративной среде, необходимо ограничить доступ пользователей домена к директории установки Rapid SCADA, по умолчанию C:\SCADA\. Для этого нужно открыть свойства директории, в которую установлены приложения Rapid SCADA, перейти на закладку Безопасность и настроить права доступа.
Рекомендуется настроить веб-сервер таким образом, чтобы веб-приложение Вебстанция работало по протоколу HTTPS. При использовании HTTPS трафик между браузером и веб-сервером, включая пароли, шифруется.
Для доступа внешних пользователей рекомендуется использовать VPN. Следует по возможности избегать открытого доступа извне к Вебстанции.
Необходимо изменить пароли, установленные по умолчанию. Для этого нужно открыть проект в приложении Администратор, в таблице Пользователи установить новые пароли, а также обновить пароли для подключения к Серверу, указанные в настройках приложений. Для создания надёжных паролей следует использовать генератор паролей. Если в организации используется Active Directory, настройка аутентификации в Rapid SCADA на основе Active Directory повышает защищённость системы.
Настройка Rapid SCADA выполняется в рамках проектов. Проект представляет собой набор файлов в различных форматах, которые сохраняются в директории проекта. Для создания и редактирования проектов предназначено приложение Администратор. При запуске Администратора открывается Стартовая страница, с помощью которой можно создать новый или открыть существующий проект (рис. 1).
Рис. 1. Стартовая страница
Рис. 2. Форма создания проекта
При создании проекта (рис. 2) необходимо обратить внимание на используемый шаблон. Шаблон определяет первоначальную конфигурацию, которая добавляется в проект. В качестве шаблона можно использовать другой существующий проект.
Конфигурация Rapid SCADA представлена в проводнике проекта, который расположен в левой части главного окна Администратора. Проект состоит из следующих основных частей (рис. 3):
Рис. 3. Структура проекта
Экземпляр - это компьютер, на котором развернут программный комплекс Rapid SCADA. Один проект может включать в себя несколько экземпляров Rapid SCADA, между которыми происходит обмен данными. Приложение Администратор поддерживает подключение к удалённым серверам для скачивания и передачи конфигурации, поэтому настройка Rapid SCADA может осуществляться с одной рабочей станции.
Начиная работу с Rapid SCADA, рекомендуется придерживаться общей последовательности настройки, приведённой ниже. Получив определённый опыт работы с комплексом, лучше поняв механизмы взаимодействия приложений, можно варьировать последовательность настройки для удобства.
База конфигурации представляет собой структурированное описание всей автоматизированной системы. Приложения, входящие в состав Rapid SCADA, используют информацию из базы конфигурации в сочетании со своими параметрами настройки.
База конфигурации редактируется с помощью программы Администратор как часть проекта. Редактируемый экземпляр базы конфигурации имеет формат XML. При передаче проекта на сервер для выполнения база конфигурации конвертируется в специально разработанный формат DAT.
База конфигурации состоит из таблиц, которые, в свою очередь, состоят из столбцов и строк. Каждая таблица относится к одной из следующих групп:
Далее приводится перечень таблиц базы конфигурации с их назначением.
Таблица | Назначение |
---|---|
Система | |
Объекты | Содержит логические объекты, которые используются для структурирования информации в системе |
Линии связи | Описывает физические линии связи, по которым производится обмен данными с устройствами |
КП | Содержит контролируемые пункты (КП) - физические или мнимые устройства, с которыми происходит обмен данными |
Входные каналы | Определяет входные данные системы, поступающие с устройств, а также значения, вычисляемые на их основе |
Каналы управления | Определяет команды, выполняемые системой |
Роли | Содержит роли. Роль - это набор функциональных возможностей, доступных пользователю |
Пользователи | Содержит перечень пользователей системы с указанием ролей |
Интерфейс | Содержит описание объектов интерфейса (представлений, отчётов и окон данных) |
Права | Определяет права на объекты интерфейса по ролям |
Справочники | |
Типы каналов | Справочник типов входных каналов |
Типы команд | Справочник типов команд, которые могут использоваться каналами управления |
Типы событий | Справочник типов событий системы, а также статусов входных каналов в архиве |
Типы КП | Справочник типов КП (устройств) |
Величины | Справочник измеряемых физических величин |
Размерности | Справочник размерностей значений входных каналов, а также перечислимые значения каналов |
Значения команд | Справочник значений команд, которые вызываются посредством каналов управления |
Форматы чисел | Справочник форматов, используемых при выводе значений входных каналов |
Формулы | Справочник формул, используемых при расчётах данных входных каналов и значений команд каналов управления |
Таблицы базы конфигурации связаны между собой, то есть значение одной таблицы может ссылаться на запись из другой таблицы. Например, каждый КП ссылается на линию связи, к которой он относится. Поэтому редактирование таблиц удобно выполнять в определённой последовательности. Для таблиц из группы Система ввод данных обычно выполняется по порядку, начиная с таблицы Объекты, заканчивая таблицей Права.
При добавлении линий связи и КП рекомендуется использовать мастеры, которые вызываются с помощью кнопок и
. Использование мастера позволяет не только добавить запись в таблицу базы конфигурации, но также создать соответствующую сущность в настройках Коммуникатора. Для создания входных каналов и каналов управления предназначен мастер, вызываемый кнопкой
. Однако автоматическое создание каналов должно поддерживаться используемыми драйверами КП, иначе каналы необходимо прописать вручную.
Если на панели инструментов таблицы отображается кнопка , значит для данной таблицы доступно редактирование записей с помощью формы. Формы для редактирования свойств канала показаны на рис. 1 и 2.
Рис. 1. Свойства входного канала
Рис. 2. Свойства канала управления
Создание базы конфигурации можно значительно ускорить, если использовать сделанные ранее наработки. Для обмена информацией между различными базами программа Администратор имеет функции Импортировать таблицу и Экспортировать таблицу (рис. 3 и 4), которые вызываются из меню Файл. Таблицы экспортируются в файлы формата DAT, XML и CSV. Затем информация может быть импортирована из файлов формата DAT и XML в тот же самый или другой проект. Существует возможность ограничить перечень выгружаемых и закачиваемых данных, задав начальный и конечный идентификаторы. Кроме того, если при импорте назначить новый начальный идентификатор, то импорт данных выполнится со смещением идентификаторов.
Рис. 3. Импорт таблицы
Рис. 4. Экспорт таблицы
Для входных каналов и каналов управления доступен инструмент клонирования (рис. 5). На форме параметров клонирования необходимо задать исходные номера и номера назначения каналов. Также можно выбрать новый объект и КП для клонированных каналов. Функция обновления номеров каналов в формулах работает, если номер канала используется как аргумент в следующих функциях: N(), Val(), Stat(), SetVal(), SetStat() и SetData().
Рис. 5. Клонирование каналов
Для ячеек таблицы доступны функции копирования (Ctrl + C) и вставки (Ctrl + V). Если щёлкнуть по заголовку столбца, строки таблицы отсортируются по значениям данного столбца. Функция поиска и замены (Ctrl + F) также позволяет ускорить редактирование.
Формулы применяются для расчёта значений и статусов входных каналов, а также для расчёта значений команд управления. Обработка формул выполняется программой Сервер.
Выполняемые формулы вводятся в базу конфигурации в таблицы Входные каналы и Каналы управления в столбец Формула. Чтобы расчёт по формуле для какого-либо канала выполнялся, необходимо установить для него галочку в столбце Исп. формулу. Таблица Формулы базы конфигурации содержит дополнительные функции и структуры данных, которые могут быть использованы в формулах для входных каналов и каналов управления.
Общие правила написания и использования формул:
Правила вычисления формул входных каналов:
Правила вычисления формул каналов управления:
Переменные, доступные в формулах:
Переменная | Тип значения | Описание |
---|---|---|
CnlVal, Cnl | double | Передаваемое Серверу значение входного канала до расчёта |
CnlStat | int | Передаваемый Серверу статус входного канала до расчёта |
CmdVal, Cmd | double | Передаваемое Серверу значение команды управления |
CmdData | byte[] | Передаваемые Серверу данные команды управления |
CnlNum | int | Номер канала, формула которого вычисляется |
E | double | Число e |
PI | double | Число π |
Функции, доступные в формулах:
Функция | Тип значения | Описание |
---|---|---|
N(n) | int | Возвращает номер заданного канала для обновления номеров при клонировании |
Val() | double | Текущее значение входного канала вычисляемой формулы |
Val(n) | double | Текущее значение входного канала n |
SetVal(n, val) | double | Установить текущее значение входного канала n |
Stat() | int | Текущий статус входного канала вычисляемой формулы |
Stat(n) | int | Текущий статус входного канала n |
SetStat(n, stat) | int | Установить текущий статус входного канала n |
SetData(n, val, stat) | double | Установить текущее значение и статус входного канала n |
Abs(x) | double | Модуль |
Sin(x) | double | Синус |
Cos(x) | double | Косинус |
Tan(x) | double | Тангенс |
Exp(x) | double | Экспонента |
Ln(x), Log(x) | double | Натуральный логарифм |
Sqr(x) | double | Квадрат числа |
Sqrt(x) | double | Квадратный корень |
Дополнительные формулы, в том числе формулы для работы со средними значениеми, доступны на GitHub.
При разработке собственных формул необходимо обеспечивать корректность синтаксиса формул и правильность их работы. Если службе Сервера при запуске не удалось скомпилировать формулы, информация об ошибке выводится в журнал работы Сервера, а компилируемый код формул доступен в файле CalcEngine.cs, который расположен по умолчанию в директории журналов Сервера C:\SCADA\ScadaServer\Log\
Для разработки сложных формул рекомендуется использовать Microsoft Visual Studio Community Edition, подключив в зависимости проекта сборку FormulaTester.dll. В качестве примера можно использовать проект формул указанный выше.
Rapid SCADA поддерживает три способа аутентификации пользователей:
При выполнении аутентификации клиентская программа, например, Коммуникатор или Вебстанция, отправляет запрос приложению Сервер, которое выполняет проверку корректности имени и пароля, определяет роль пользователя и сообщает её клиентской программе.
Стандартные роли пользователя и их возможности перечислены в следующей таблице.
Идентификатор | Наименование | Описание |
---|---|---|
0 | Отключен | Доступ к системе заблокирован |
1 | Администратор | Полный доступ ко всем функциям и объектам системы |
2 | Диспетчер | Просмотр информации по всем объектам и телеуправление |
3 | Гость | Просмотр информации по всем объектам |
4 | Приложение | Взаимодействие с программой Сервер |
Чтобы использовать возможности Rapid SCADA по разграничению прав на объекты интерфейса (табличным представлениям, схемам и т.д.), необходимо в таблице Роли базы конфигурации создать новые пользовательские роли, а затем в таблице Права настроить права доступа.
Если программный комплекс функционирует в локальной сети, построенной на основе Active Directory, то в целях безопасности рекомендуется использовать 2-й или 3 й способ аутентификации, которые далее рассматриваются подробнее.
Чтобы служба Сервера имела возможность взаимодействия с Active Directory, необходимо в настройках Сервера на странице Общие параметры указать адрес контроллера домена и установить соответствующую галочку, а на странице Модули активировать модуль ModActiveDirectory.dll.
2-й способ аутентификации используется, если разграничение прав доступа не предусматривает индивидуальную настройку прав на объекты интерфейса системы. Преимущество данного способа заключается в том, что для управления доступом достаточно инструментария работы с Active Directory, не требуется изменений базы конфигурации и перезапуска службы Сервера.
В Active Directory необходимо создать глобальные группы безопасности, предназначенные для определения ролей пользователей:
Членство пользователя (или группы, в которую он входит) в соответствующей группе безопасности определяет его роль в системе SCADA.
3-й способ объединяет возможности 1-го и 2-го способов. Проверка корректности имени и пароля производится с использованием Active Directory, а роль пользователя определяется по таблице Пользователи базы конфигурации. В этом случае таблице Пользователи указывается идентификатор, имя и роль пользователя, а его пароль остаётся пустым.
Допускается одновременное использование всех вышеперечисленных способов аутентификации.
Взаимодействие с физическими или мнимыми устройствами выполняется программой Коммуникатор, которая, выступая в качестве ведущего (Master) или ведомого (Slave), производит опрос данных и передачу команд устройствам. Все устройства привязываются к своим линиям связи, которые не зависят друг от друга и опрашиваются параллельно.
Пользовательский интерфейс Коммуникатора, предназначенный для настройки, встроен в приложение Администратор. Настройка Коммуникатора выполняется как часть проекта.
На рис. 1 показан пример настройки основных параметров линии связи. Канал связи определяет, с помощью какого физического интерфейса или сетевого протокола производится обмен данными с устройствами. Поддерживаются следующие каналы связи: Последовательный порт, TCP-клиент, TCP-сервер, UDP. В некоторых случаях, если взаимодействие с устройствами реализовано в драйвере КП, канал связи следует оставить незаданным (например, при использовании драйвера OPC).
Если отправлять команды телеуправления (ТУ) устройствам не требуется, в целях безопасности рекомендуется снять галочку Команды ТУ разрешены.
Рис. 1. Основные параметры линии связи
Рис. 2. Параметры опроса КП
Порядок и параметры опроса КП на линии связи задаются на странице Опрос КП (рис. 2).
При снятии флажка Активна для линии связи данная линия будет полностью отключена со всеми относящимися к ней КП. При снятии флажка Активен для КП опрос и отправка команды соответствующему КП на линии связи будут отключены.
С помощью флажков Привязан к Серверу можно включить или отключить для определённых КП или для всей линии связи отправку данных программе Сервер. Если открыть страницу Общие параметры настроек Коммуникатора и снять флажок Взаимодействовать с Сервером, то взаимодействие Коммуникатора и Сервера будет полностью отключено. Эти возможности удобно использовать при тестировании новых подключаемых к системе устройств.
Если в свойствах КП поля Время и Период нулевые, то опрос КП производится непрерывно циклически. Если для КП указано время, а период равен нулю, то опрос выполняется один раз в сутки в указанное время. Если период не нулевой, то КП опрашивается периодически, начиная с заданного времени. Поля Таймаут и Пауза определяют длительность ожидания ответа от устройства и задержку после приёма данных. Поле Командная строка позволяет задать дополнительные параметры работы КП, которые определяются драйвером КП и указаны в его описании.
Кнопка Сброс позволяет восстановить параметры опроса КП по умолчанию, которые заложены в DLL, выбранной из списка. Если данная DLL поддерживает отображение свойств конкретного КП, то они открываются кнопкой Свойства или из контекстного меню элемента дерева, соответствующего КП. Для некоторых типов КП задаются общие глобальные свойства, в этом случае они редактируются по кнопке Свойства на странице Драйверы.
Чтобы импортировать линии связи и КП из базы конфигурации в Коммуникатор, в проводнике проекта нужно щёлкнуть правой кнопкой мыши на родительском узле линий связи или на узле конкретной линии связи и в контекстном меню выбрать пункт Импортировать. Форма импорта показана на рис. 3.
Рис. 3. Импорт настроек Коммуникатора
Функция синхронизации настроек (рис. 4) также вызывается из контекстного меню линии связи. Синхронизация позволяет обновить параметры существующих линий связи и КП по базе конфигурации, однако при этом могут утеряны параметры, введённые пользователем вручную.
Рис. 4. Синхронизация настроек Коммуникатора
Представление – это форма отображения информации в приложении Вебстанция. По умолчанию поддерживается 2 типа представлений: табличные представления и схемы. С помощью подключения дополнительных плагинов может быть добавлена поддержка других типов представлений.
Для создания представлений предназначены специальные редакторы: Редактор таблиц и Редактор схем. Созданые представления сохраняются в файлы, которые должны располагаться в директории интерфейса внутри проекта. В процессе выполнения файлы представлений располагаются в директории интерфейса, указанной в настройках приложения Сервер, или в её поддиректориях, по умолчанию C:\SCADA\Interface\
Примеры файлов представлений:
Interface\Servers\ServerRoom.sch - схема,
Interface\Servers\ServerRoom.tbl - табличное представление.
Чтобы открыть диалог для создания представления, выберите пункт контекстного меню Создать файл (рис. 1 и 2). Затем в открывшемся окне выберите тип представления, укажите имя файла и нажмите кнопку OK. Созданный файл отобразится в проводнике проекта. По двойному щечку на соответствующем узле проводника проекта, представление открывается в редакторе.
Рис. 1. Меню для создания представления
Рис. 2. Диалог для создания представления
После того, как файлы представления созданы, их необходимо прописать в базе конфигурации в таблице Интерфейс, как показано на рис. 3. Идентификатор представления должен быть уникальным. Путь к представлению указывается относительно директории интерфейса. Текст, указанный в столбце Заголовок отображается в дереве представлений Вебстанции, а идентификаторы определяют сортировку представлений. Если файлы представлений расположены в поддиректориях директории интерфейса, то эти поддиректории также должны быть прописаны в таблице Интерфейс.
Рис. 3. Редактирование таблицы Интерфейс
Мнемосхемы поддерживают режим работы по шаблону. Шаблон – это обычная мнемосхема, созданная с помощью Редактора схем, которая может быть привязана к произвольным входным каналам и каналам управления.
Чтобы использовать схему в режиме шаблона, необходимо задать соответствующие аргументы в таблице Интерфейс. Возможны два варианта (рис. 3):
Рис. 4. Шаблон схемы в таблице Интерфейс
Описание аргументов:
inCnlOffset - смещение номеров входных каналов;
ctrlCnlOffset - смещение номеров каналов управления;
titleCompID - идентификатор компонента схемы для вывода заголовка;
bindingFileName - имя файла привязки компонентов схемы к каналам относительно директории конфигурации Вебстанции.
Текст заголовка для схемы, работающей в режиме шаблона, берётся из поля Заголовок таблицы Интерфейс. Рекомендуется в Редакторе схем в свойствах схемы оставить свойство Заголовок пустым.
Файлы привязки компонентов схемы должны располагаться внутри директории конфигурации Вебстанции, по умолчанию C:\SCADA\ScadaWeb\config\. Пример файла привязки:
<?xml version="1.0" encoding="utf-8" ?>
<TemplateBindings>
<TemplateFileName>MyScheme.sch</TemplateFileName>
<TitleCompID>3</TitleCompID>
<Binding compID="1" inCnlNum="101" ctrlCnlNum="101" />
<Binding compID="2" inCnlNum="102" />
</TemplateBindings>
Драйвер импорта из БД позволяет получать текущие данные из сторонней базы данных, а также записывать информацию в стороннюю БД с помощью команд телеуправления. Данный драйвер входит в дистрибутив Rapid SCADA и отдельная установка драйвера не требуется. Файл библиотеки драйвера - KpDbImport.dll.
Каждый КП, использующий драйвер импорта из БД, содержит один запрос на получение данных и набор команд телеуправления (ТУ) на изменение данных. На одной линии связи может находится один или несколько КП, импортирующих данные.
Настройка драйвера импорта из БД выполняется с помощью формы свойств КП. Чтобы открыть эту форму, необходимо найти соответствующий КП в настройках Коммуникатора, щёлкнуть на узле КП правой кнопкой мыши и выбрать пункт меню Свойства.
На странице База данных необходимо задать тип базы данных и указать параметры соеднинения с БД. Если требуется ввести нестандартные параметры соединения, то допускается редактирование строки соединения напрямую.
На странице Извлечение данных указывается SQL-запрос для получения текущих данных из БД. Драйвер автоматически создаёт теги КП на основе списка запрашиваемых столбцов таблицы. Если запрос имеет сложный синтаксис, то может потребоваться указать количество тегов вручную.
На странице Команды задаются команды ТУ, поддерживаемые данным КП. Команды обеспечивают передачу информации из Rapid SCADA в базу данных. В SQL-запросе команды доступны переменные cmdVal и cmdNum, которые содержат значение и номер команды соответственно. Для большинства СУБД переменные в запросе имеют префикс @, для Oracle обычно используется префикс : (двоеточие).
Допускается создание команды с номером 0, которая будет выполняться по умолчанию. Если номер отправленной команды не найден в списке команд КП, то будет выполнена команда по умолчанию.
Драйвер поддерживает стандартный протокол обмена данными Modbus и работает в качестве ведомого. При использовании драйвера Коммуникатор ожидает входящих запросов и команд от стороннего устройства или приложения, которое является ведущим (мастером). Поддерживаются следующие каналы связи: последовательный порт, TCP-сервер и UDP. Драйвер может работать как в режиме Modbus RTU, так и в режиме Modbus TCP.
Функции драйвера Modbus Slave:
Драйвер Modbus Slave устанавливается в соответствии с общей последовательностью установки драйверов Коммуникатора. Файл библиотеки драйвера - KpModbusSlave.dll.
В первую очередь необходимо создать новую линию связи и КП в базе конфигурации, а также в настройках Коммуникатора. Для этой цели наиболее удобно использовать мастеры, которые вызываются с помощью кнопок и
. Адрес КП имеет важное значение - именно на этот ID устройства будет отвечать Коммуникатор. В основных параметрах линии связи необходимо выбрать тип канала связи и настроить его свойства. Примеры настройки канала связи показаны на рисунках ниже:
После создания КП в Коммуникаторе, необходимо настроить его, вызвав форму свойств КП.
Период актальности входных данных позволяет автоматически устанавливать неопределённый статус входных тегов КП, если от устройства не было получено новых данных в течение заданного времени.
Шаблон устройства определяет карту регистров Modbus. Шаблоны устройств драйверов KpModbus.dll и KpModbusSlave.dll полностью совместимы.
КП источника данных устанавливается отличным от нуля, чтобы транслировать значения входных каналов, полученных от другого устройства, в стороннюю систему. Если драйвер используется для взаимодействия с реальным прибором, этот параметр должен быть равен 0.
На следующем рисунке показан редактор шаблонов Modbus:
Драйвер Modbus Slave требует регистрации. После завершения настройки передайте проект на сервер с помощью кнопки . Затем откройте страницу Драйверы в приложении Администратор, выберите драйвер KpModbusSlave.dll, откройте свойства драйвера и зарегистрируйте его. После регистрации повторно передайте проект на сервер.
Драйвер Telegram предназначен для рассылки уведомлений пользователям с помощью популярного мессенджера Telegram. Преимуществами использования Telegram является оперативность получения уведомлений, отсутствие платы за использование сервиса и удобство управления группами рассылки.
Драйвер Telegram устанавливается в соответствии с общей последовательностью установки драйверов Коммуникатора. Файл библиотеки драйвера - KpTelegram.dll.
Предварительно необходимо создать бота с системе Telegram. Для этого:
Настройка рассылки уведомлений выполняется с помощью программы Администратор как часть проекта. Последовательность настройки:
Если настройка выполнена правильно, то Ваш бот будет отвечать на команды, отправленные из мессенджера, например, команду /help. Необходимо в настройках драйвера указать подписки (чаты), с которыми взаимодействует Коммуникатор.
Чтобы получить идентификатор и наименование подписки, следует отправить команду /info с помощью мессенджера. Затем добавить полученные данные на форме конфигурации КП.
Устаревший способ: добавление или удаление подписки выполняется с помощью команд /start и /stop с указанием ранее сгенерированного пароля. Однако, по умолчанию изменение подписки заблокировано. Чтобы его разблокировать, в Коммуникаторе нужно отправить для КП стандартную команду номер 2 со значением 1. После этого можно добавлять или удалять подписки.
Чтобы из Rapid SCADA отправить сообщение в группу Telegram, необходимо отправить бинарную команду номер 1, содержащую имя (или идентификатор) группы и текст сообщения. Например:
RapidScadaDemo; Тестовое сообщение.
Автоматическая рассылка уведомлений при выполнении определённых условий и возникновении событий осуществляется с помощью Модуля автоматического управления.
Модуль автоматического управления позволяет в автоматическом режиме отправлять команды при выполнении определённых условий. Без регистрации модуль работает в демонстрационном режиме с ограничением времени полнофункциональной работы 10 минут после перезапуска. Модуль работает под управлением приложения Сервер. Настройка модуля выполняется с помощью удобной формы, показанной на следующем рисунке.
Условия, необходимые для отправки команд, задаются в виде триггеров, которые бывают нескольких типов:
Для каждого триггера создаётся набор команд ТУ, которые отправляются при его срабатывании. Информацию о срабатывании триггеров и отправленных командах можно получить на странице Журнал или напрямую из файла ModAutoControl.log, который находится в директории журналов Сервера, по умолчанию C:\SCADA\ScadaServer\Log
Модуль автоматического управления устанавливается в соответствии с общей последовательностью установки модулей Сервера. Файл библиотеки модуля - ModAutoControl.dll. В процессе подключения модуля необходимо выполнить несколько дополнительных действий:
Строковые данные команду ТУ, которые отправляются при сработке триггеров, могут содержать переменные. Переменные записываются в фигурных скобках.
Поддерживаются следующие переменные:
Переменная | Описание |
---|---|
{n} | Текущее значение входного канала n с размерностью, где n - это номер канала, n = 0 - канал триггера на данные |
{Now} | Текущие дата и время сервера |
{CnlNum}, {CnlName} | Параметры триггера на данные: номер и наименование входного канала |
{CnlVal}, {CnlStat} | Значение и статус входного канала, на которых сработал триггер на данные |
{EvNum}, {EvTime}, {EvObj}, {EvDev}, {EvCnl}, {EvText} | Параметры события при сработке триггера на событие: номер, дата и время, объект, КП, канал, описание |
{CtrlCnlNum}, {CtrlCnlName} | Параметры триггера на команду: номер и наименование канала управления |
{CmdVal}, {CmdDataStr}, {CmdDataHex} | Параметры команды при сработке триггера на команду: значение, данные в виде строки, данные в 16-ричном представлении |
Модуль позволяет в реальном времени экспортировать данные, поступающие от устройств, в популярные базы данных. Поддерживаются СУБД Microsoft SQL Server, Oracle, PostgreSQL и MySQL. Модуль экспорта входит в дистрибутив Rapid SCADA и отдельная установка модуля не требуется. Файл библиотеки модуля - ModDBExport.dll.
В проекте необходимо перейти на страницу Модули, активировать модуль ModDBExport.dll и открыть его свойства. Модуль поддерживает экспорт в несколько различных баз данных параллельно. Чтобы добавить базу данных, нажмите кнопку . На странице Соединение указываются параметры соединения с БД. На страницах Текущие данные, Архивные данные и События необходимо указать SQL-запросы, которые вызывает модуль при получении Сервером новых данных. БД, в которую происходит экспорт, должна быть предварительно создана и содержать соответствующие таблицы для хранения информации.
Если часть данных не была своевременно экспортирована, например, при недоступности БД, то данные можно передать в ручном режиме. Форма экспорта в ручном режиме открывается с помощью конопки . Чтобы ручной экспорт был возможен, в базе конфигурации должны быть созданы каналы управления, которые затем указываются на форме.
-- Удалить таблицу данных входных каналов, если она существует
IF OBJECT_ID('CnlData', 'U') IS NOT NULL
DROP TABLE CnlData;
-- Создать таблицу данных входных каналов
CREATE TABLE CnlData (
DateTime datetime2 NOT NULL,
CnlNum int NOT NULL,
Val float NOT NULL,
Stat int NOT NULL,
PRIMARY KEY (DateTime, CnlNum)
);
CREATE INDEX idx_CnlData_CnlNum ON CnlData (CnlNum);
-- Удалить таблицу событий, если она существует
IF OBJECT_ID('Events', 'U') IS NOT NULL
DROP TABLE Events;
-- Создать таблицу событий
CREATE TABLE Events (
DateTime datetime2 NOT NULL,
ObjNum int NOT NULL,
KPNum int NOT NULL,
ParamID int NOT NULL,
CnlNum int NOT NULL,
OldCnlVal float NOT NULL,
OldCnlStat int NOT NULL,
NewCnlVal float NOT NULL,
NewCnlStat int NOT NULL,
Checked bit NOT NULL,
UserID int NOT NULL,
Descr char(100),
Data char(50)
);
CREATE INDEX idx_Events_DateTime ON Events (DateTime);
CREATE INDEX idx_Events_ObjNum ON Events (ObjNum);
CREATE INDEX idx_Events_KPNum ON Events (KPNum);
CREATE INDEX idx_Events_CnlNum ON Events (CnlNum);
-- Вставить текущие данные
INSERT INTO CnlData (DateTime, CnlNum, Val, Stat)
VALUES (@dateTime, @cnlNum, @val, @stat)
-- Вставить или обновить существующие архивные данные
MERGE CnlData AS target
USING (SELECT @dateTime, @cnlNum) AS source (DateTime, CnlNum)
ON (target.DateTime = source.DateTime AND target.CnlNum = source.CnlNum)
WHEN MATCHED THEN
UPDATE SET Val = @val, Stat = @stat
WHEN NOT MATCHED THEN
INSERT (DateTime, CnlNum, Val, Stat)
VALUES (@dateTime, @cnlNum, @val, @stat);
-- Вставить событие
INSERT INTO Events (DateTime, ObjNum, KPNum, ParamID, CnlNum, OldCnlVal, OldCnlStat, NewCnlVal, NewCnlStat, Checked, UserID, Descr, Data)
VALUES (@dateTime, @objNum, @kpNum, @paramID, @cnlNum, @oldCnlVal, @oldCnlStat, @newCnlVal, @newCnlStat, @checked, @userID, @descr, @data)
-- Удалить таблицу данных входных каналов, если она существует
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE cnldata';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;
-- Создать таблицу данных входных каналов
CREATE TABLE cnldata (
datetime TIMESTAMP NOT NULL,
cnlnum INTEGER NOT NULL,
val FLOAT NOT NULL,
stat INTEGER NOT NULL,
PRIMARY KEY (datetime, cnlnum)
);
CREATE INDEX idx_cnldata_cnlnum ON cnldata (cnlnum);
-- Удалить таблицу событий, если она существует
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE events';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;
-- Создать таблицу событий
CREATE TABLE events (
datetime TIMESTAMP NOT NULL,
objnum INTEGER NOT NULL,
kpnum INTEGER NOT NULL,
paramid INTEGER NOT NULL,
cnlnum INTEGER NOT NULL,
oldcnlval FLOAT NOT NULL,
oldcnlstat INTEGER NOT NULL,
newcnlval FLOAT NOT NULL,
newcnlstat INTEGER NOT NULL,
checked INTEGER NOT NULL,
userid INTEGER NOT NULL,
descr CHAR(100),
data CHAR(50)
);
CREATE INDEX idx_events_datetime ON events (datetime);
CREATE INDEX idx_events_objnum ON events (objnum);
CREATE INDEX idx_events_kpnum ON events (kpnum);
CREATE INDEX idx_events_cnlnum ON events (cnlnum);
-- Вставить текущие данные
INSERT INTO cnldata (datetime, cnlnum, val, stat)
VALUES (:dateTime, :cnlNum, @val, :stat)
-- Вставить или обновить существующие архивные данные
MERGE INTO cnldata
USING dual ON (datetime = :dateTime AND cnlnum = :cnlnum)
WHEN MATCHED THEN
UPDATE SET val = :val, stat = :stat
WHEN NOT MATCHED THEN
INSERT (datetime, cnlnum, val, stat)
VALUES (:dateTime, :cnlNum, :val, :stat)
-- Вставить событие
INSERT INTO events (datetime, objnum, kpnum, paramid, cnlnum, oldcnlval, oldcnlstat, newcnlval, newcnlstat, checked, userid, descr, data)
VALUES (:dateTime, :objNum, :kpNum, :paramID, :cnlNum, :oldCnlVal, :oldCnlStat, :newCnlVal, :newCnlStat, :checked, :userID, :descr, :data)
-- Удалить таблицу данных входных каналов, если она существует
DROP TABLE IF EXISTS cnldata;
-- Создать таблицу данных входных каналов
CREATE TABLE cnldata (
datetime timestamp NOT NULL,
cnlnum integer NOT NULL,
val double precision NOT NULL,
stat integer NOT NULL,
PRIMARY KEY (datetime, cnlnum)
);
CREATE INDEX ON cnldata (cnlnum);
-- Удалить таблицу событий, если она существует
DROP TABLE IF EXISTS events;
-- Создать таблицу событий
CREATE TABLE events (
datetime timestamp NOT NULL,
objnum integer NOT NULL,
kpnum integer NOT NULL,
paramid integer NOT NULL,
cnlnum integer NOT NULL,
oldcnlval double precision NOT NULL,
oldcnlstat integer NOT NULL,
newcnlval double precision NOT NULL,
newcnlstat integer NOT NULL,
checked boolean NOT NULL,
userid integer NOT NULL,
descr char(100),
data char(50)
);
CREATE INDEX ON events (datetime);
CREATE INDEX ON events (objnum);
CREATE INDEX ON events (kpnum);
CREATE INDEX ON events (cnlnum);
-- Вставить текущие данные
INSERT INTO cnldata (datetime, cnlnum, val, stat)
VALUES (@dateTime, @cnlNum, @val, @stat)
-- Вставить или обновить существующие архивные данные
WITH upsert AS (UPDATE cnldata SET val = @val, stat = @stat
WHERE datetime = @datetime AND cnlnum = @cnlNum RETURNING *)
INSERT INTO cnldata (datetime, cnlnum, val, stat)
SELECT @dateTime, @cnlNum, @val, @stat
WHERE NOT EXISTS (SELECT * FROM upsert)
-- Вставить событие
INSERT INTO events (datetime, objnum, kpnum, paramid, cnlnum, oldcnlval, oldcnlstat, newcnlval, newcnlstat, checked, userid, descr, data)
VALUES (@dateTime, @objNum, @kpNum, @paramID, @cnlNum, @oldCnlVal, @oldCnlStat, @newCnlVal, @newCnlStat, @checked, @userID, @descr, @data)
-- Удалить таблицу данных входных каналов, если она существует
DROP TABLE IF EXISTS cnldata;
-- Создать таблицу данных входных каналов
CREATE TABLE cnldata (
datetime DATETIME NOT NULL,
cnlnum INT NOT NULL,
val DOUBLE NOT NULL,
stat SMALLINT UNSIGNED NOT NULL,
PRIMARY KEY (datetime, cnlnum)
) ENGINE=InnoDB;
CREATE INDEX idx_cnldata_cnlnum ON cnldata (cnlnum);
-- Удалить таблицу событий, если она существует
DROP TABLE IF EXISTS events;
-- Создать таблицу событий
CREATE TABLE events (
datetime DATETIME NOT NULL,
objnum INT NOT NULL,
kpnum INT NOT NULL,
paramid INT NOT NULL,
cnlnum INT NOT NULL,
oldcnlval DOUBLE NOT NULL,
oldcnlstat SMALLINT UNSIGNED NOT NULL,
newcnlval DOUBLE NOT NULL,
newcnlstat SMALLINT UNSIGNED NOT NULL,
checked TINYINT UNSIGNED NOT NULL,
userid INT NOT NULL,
descr CHAR(100),
data CHAR(50)
) ENGINE=InnoDB;
CREATE INDEX idx_events_datetime ON events (datetime);
CREATE INDEX idx_events_objnum ON events (objnum);
CREATE INDEX idx_events_kpnum ON events (kpnum);
CREATE INDEX idx_events_cnlnum ON events (cnlnum);
-- Вставить текущие данные
INSERT INTO cnldata (datetime, cnlnum, val, stat)
VALUES (@dateTime, @cnlNum, @val, @stat)
-- Вставить или обновить существующие архивные данные
INSERT INTO cnldata (datetime, cnlnum, val, stat)
VALUES (@dateTime, @cnlNum, @val, @stat)
ON DUPLICATE KEY UPDATE val = @val, stat = @stat
-- Вставить событие
INSERT INTO events (datetime, objnum, kpnum, paramid, cnlnum, oldcnlval, oldcnlstat, newcnlval, newcnlstat, checked, userid, descr, data)
VALUES (@dateTime, @objNum, @kpNum, @paramID, @cnlNum, @oldCnlVal, @oldCnlStat, @newCnlVal, @newCnlStat, @checked, @userID, @descr, @data)
Модуль Быстрый шлюз предназначен для синхронизации данных между различными экземплярами Rapid SCADA. Модуль позволяет организовать работу резервного сервера, а также обеспечивает передачу данных от SCADA, установленных на удалённых объектах, на главную SCADA. Модуль поддерживает произвольное количество независимых шлюзов для обмена информацией с несколькими серверами Rapid SCADA.
Модуль Быстрый шлюз устанавливается в соответствии с общей последовательностью установки модулей Сервера. Файл библиотеки модуля - ModRapidGate.dll. После подключения модуля необходимо выполнить несколько дополнительных действий:
Чтобы сконфигурировать модуль Быстрый шлюз, необходимо отредактировать файл ScadaServer\Config\ModRapidGate.xml, расположенный внутри проекта, с помощью текстового редактора. Обратите внимание, на целевом сервере может потребоваться настройка брандмауэра, чтобы разрешить входящие подключения по TCP-порту 10000.
Кратко рассмотрим содержимое файла конфигурации:
XML-тэг | Описание |
---|---|
Gate | Секция шлюза. Таких секций может быть несколько |
GeneralOptions | Основные параметры шлюза |
ConnectionOptions | Параметры соединения с удалённым сервером. Пароль должен быть зашифрован с помощью утилиты EncryptPassword.exe |
MappingOptions | Соответствие номеров каналов, объектов и КП между данным сервером и удалённым |
TransferOptions | Параметры передачи данных на удалённый сервер |
CurDataTransferOptions | Параметры передачи текущих данных |
ArcDataTransferOptions | Параметры передачи архивных данных |
EventTransferOptions | Параметры передачи событий |
InCmdTransferOptions | Параметры получения команд ТУ от удалённого сервера |
OutCmdTransferOptions | Параметры передачи команд ТУ на удалённый сервер |
ArcUploadOptions | Параметры закачки архивов на удалённый сервер |
Состояние закачки архивов сохраняется в процессе работы модуля и восстанавливается при перезапуске службы Сервера. Файл состояния записывается в директорию Storage. Закачка архивов выполняется автоматически. Однако можно вручную отправить команду на закачку архивов за определённый период. Команда должна быть отправлена на канал управления, указанный в конфигурации модуля, и иметь бинарный тип.
Пример команды:
cmd=ArcUpload minDT=2020-02-18 10:00:00 maxDT=2020-02-18 10:15:00
Плагин Графики Про — это дополнительный плагин для приложения Вебстанция, расширяющий возможности работы с графиками входных каналов: масштабирование, одновременное отображение нескольких графиков, экспорт в форматы PNG и PDF.
Сначала необходимо выполнить общую последовательность установки плагинов, а затем выполнить несколько дополнительных действий:
Плагин Графики Про сконфигурирован по умолчанию. Настройки плагина сохраняются в файле PlgChartPro.xml, который располагается в проекте в директории конфигурации Вебстанции. В случае необходимости администратор системы может изменить настройки, отредактировав существующий или создав новый файл настроек.
В дополнение к файлу конфигурации отображение графика определяется строкой запроса. Строка запроса имеет вид:
http://localhost/Scada/plugins/ChartPro/ChartPro.aspx?cnlNums=101&viewIDs=2&year=2020&month=3&day=31&mode=fixed&period=1&title=Test&config=PlgChartPro.xml
Параметры адресной строки:
Параметр | Значения | Описание |
---|---|---|
cnlNums | Целые числа, разделённые запятыми | Номера входных каналов, отображаемых на графике |
viewIDs | Целые числа, разделённые запятыми | Идентификаторы представлений по каждому входному каналу |
year, month, day | Целые числа | Начальная дата отображаемых данных. Если не указана, используется текущая дата |
mode | fixed | rolling | Режим работы графика: фиксированный или скользящий |
period | Целое число. Может быть как положительным, так и отрицательным | Период графика относительно начальной даты. В днях для фиксированного режима и в минутах для скользящего |
title | Строка. Может быть пустой | Заголовок графика |
config | Строка. Может быть пустой | Имя файла конфигурации графика относительно директории конфигурации веб приложения |
В фиксированном режиме работы плагин отображает график за выбранный период времени. Происходит автоматическое обновление данных на графике с добавлением новых значений в правую часть графика.
В скользящем режиме плагин отображает график от текущего момента до указанной глубины. Происходит автоматическое обновление данных, при этом график смещается справа налево.
Следующий рисунок помогает понять компоновку графика, если необходимо изменить конфигурацию плагина.
Плагин Дэшборды отображает полезные виджеты на дэшбордах: графики, текущие данные и произвольные фреймы, например, изображение с камеры видео-наблюдения. Настройки каждого дэшборда позволяют задать количество столбцов и соотношение сторон виджетов.
Сначала необходимо выполнить общую последовательность установки плагинов, а затем выполнить несколько дополнительных действий:
Конфигурация каждого дэшборда сохраняется в отдельном файле формата XML. Пример файла дэшборда DashboardExample1.xml содержится в установочном пакете плагина. Файлы дэшбордов могут располагаться в директории интерфейса, либо в директории хранилища Вебстанции. Предпочтительным является 1-й вариант.
Чтобы ссылки на дэшборды отображались в дереве представлений Вебстанции, в проекте необходимо выполнить следующие настройки:
Обозначение @DashboardView в составе пути указывает на тип представления. Права пользователей на дэшборды настраиваются через таблицу Права базы конфигурации аналогично правам на табличные представления и мнемосхемы.
Кроме того, файлы дэшбордов могут располагаться в директории хранилища Вебстанции. В этом случае щёлкните пункт Дэшборды главного меню Вебстанции, чтобы открыть список доступных дэшбордов. Примеры расположения дэшбордов в хранилище:
ScadaWeb\storage\allusers\Dashboard\ - дэшборды, доступные всем пользователям;
ScadaWeb\storage\myuser\Dashboard\ - дэшборды, доступные пользователю MyUser.
Рассмотрим содержимое файла конфигурации дэшборда:
<?xml version="1.0" encoding="utf-8" ?>
<DashboardConfig>
<DashboardOptions>
<Name>Dashboard Example 1</Name>
<ColumnCount>2</ColumnCount>
<AspectRatio>1.33</AspectRatio>
</DashboardOptions>
<Widgets>
<Widget type="Chart" cnlNums="101,102" viewIDs="2,2" period="2" />
<Widget type="Chart" cnlNums="101,103" viewIDs="2,2" mode="fixed" period="2" title="Sample Chart" config="PlgChartPro.xml" />
<Widget type="CurData" cnlNums="101,102,103,104,105,106,107,115" viewIDs="2,2,2,2,2,2,2,2" title="Sample Data" />
<Widget type="View" viewID="2" />
<Widget type="CustomUrl" url="https://www.youtube.com/embed/EEIk7gwjgIM" />
</Widgets>
</DashboardConfig>
Секция DashboardOptions содержит общие параметры дэшборда:
Name - наименование дэшборда,
ColumnCount - количество колонок от 1 до 4 (на небольших экранах мобильных устройств виджеты в любом случае располагаются в одной колонке),
AspectRatio - отношение ширины виджетов к высоте.
Секция Widgets содержит список виджетов, которые отображаются на дэшборде. Количество виджетов произвольное. Однако слишком большое количество виджетов на одном дэшборде может снизить быстродействие веб-приложения.
Поддерживаются виджеты следующих типов:
Chart - график заданных входных каналов,
CurData - таблица текущих значений заданных входных каналов,
View - представление с указанным идентификатором,
CustomUrl - произвольная веб-страница.
Для виджетов типа Chart и CurData нужно не только указать номера входных каналов, используемых виджетом, но также указать идентификаторы представлений, которые содержат эти входные каналы. Идентификаторы представлений необходимы для контроля прав доступа пользователя.
Плагин Гибкий отчёт позволяет генерировать отчёты в соответствии с пользовательской конфигурацией. С помощью данного плагина Вы можете построить практически любой необходимый отчёт. Пользователю достаточно выбрать период и нажать на кнопку генерации отчёта. Администратор предварительно создаёт конфигурации отчёта, которые определяют набор секций различной формы, из которых состоит отчёт, и связывают столбцы и строки отчёта с данными системы.
Сначала необходимо выполнить общую последовательность установки плагина, которая описана по ссылке. А затем выполнить несколько дополнительных действий:
Отчёты состоят из набора секций, которые выводятся в выходной документ одна за другой. Каждая секция имеет свой тип, параметры и привязку к данным. Кроме того, отчёт имеет общие параметры, влияющие на все секции. Один и тот же отчёт может быть сгенерирован в различных форматах. В настоящий момент поддерживаются форматы Excel, PDF и HTML. При этом внешний вид одного и того же отчёта, сгенерированного в разных форматах, может незначительно отличаться.
Файл конфигурации задаёт форматирование отчёта и определяет привязку данных отчёта к входным каналам. Для каждой отчётной формы создаётся отдельный файл конфигурации. Файл конфигурации имеет формат XML. Он должен быть сохранён в директории интерфейса или в её поддиректории внутри проекта.
В дистрибутиве плагина содержится пример файла конфигурации отчёта SCADA\Interface\ElasticReport\ElasticRepExample.xml. Данный пример включает подробное описание параметров настройки и демонстрирует формирование секций отчёта всех возможных типов.
Редактирование файлов конфигурации может осуществляться в любом текстовом редакторе. Например, для бесплатного редактора Notepad++ существует плагин для удобной работы с файлами XML.
Имеется возможность настроить собственные стили отчётов: шрифты, цвета, размеры ячеек и т.д.
Стили отчёта для выгрузки в формате Excel настраиваются в файле
SCADA\ScadaWeb\plugins\ElasticReport\templates\ElasticRepExcel.xml
Чтобы создать собственные стили, необходимо открыть этот файл в программе Excel и перейти на страницу Custom Styles, на которой разрешается создание дополнительных стилей. В качестве примера рекомендуется использовать стили со страницы Default Styles.
Пользовательские стили отчёта для выгрузки в формате PDF задаются в файле
SCADA\ScadaWeb\plugins\ElasticReport\templates\ElasticRepPdfCustom.xml
Файл XML, описывающий стили для формата PDF, редактируется вручную в любом текстовом редакторе. В качестве примера удобно использовать стили PDF по умолчанию из файла ElasticRepPdfDefault.xml.
Стили отчёта для выгрузки в HTML настраиваются в файле
SCADA\ScadaWeb\plugins\ElasticReport\css\customstyles.css согласно правилам каскадных таблиц стилей.
Чтобы отчёт появился в списке доступных отчётов, его нужно прописать в таблице Интерфейс с помощью программы Администратор. Необходимо указать путь к файлу конфигурации отчёта относительно директории интерфейса, указать тип отчёта ElasticRep и ввести произвольный заголовок (см. рис.). После передачи проекта на сервер, отчёт будет доступен на странице Главное меню > Отчёты.
Плагин Карты отображает состояние и параметры автоматизированных объектов на интерактивных картах OpenStreetMap. Плагин позволяет наглядно контролировать географически распределённые системы и в случае необходимости переходить на страницу детальной информации по интересующему объекту.
Сначала необходимо выполнить общую последовательность установки плагина, которая описана по ссылке. А затем выполнить несколько дополнительных действий:
Карта является представлением в терминах Rapid SCADA. Создание и редактирование карт выполняется по аналогии со схемами и табличными представлениями.
Параметры отображения и объекты карты хранятся в файле с расширением map. Файл карты должен располагаться в директории интерфейса или её поддиректории внутри проекта.
Дистрибутив плагина содержит пример файла карты SCADA\Interface\Map\MapExample.map. Для редактирования файлов карты используйте любой удобный текстовый редактор, например, Notepad++. Чтобы создать свою карту, необходимо скопировать файл примера под новым именем, а затем отредактировать. Имя файла карты – произвольное, расширение файла – map.
Секция Tiling содержит параметры подключению к серверу тайлов (плиток), из которых состоит подложка карты. Можно использовать сервера тайлов от различных поставщиков, как платные, так и бесплатные.
<Tiling>
<UrlTemplate>https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png</UrlTemplate>
</Tiling>
Секция InitialView задаёт начальные координаты и масштаб карты. Масштаб - это целое число от 0 до 18.
<InitialView>
<Lat>48.861111</Lat>
<Lon>2.336389</Lon>
<Zoom>13</Zoom>
</InitialView>
Секция Locations описывает набор расположений, которые отображаются на карте. Рассмотрим пример:
<Locations>
<Location>
<Lat>48.858222</Lat>
<Lon>2.2945</Lon>
<Name>Eiffel Tower</Name>
<Descr>Avenue Anatole France, Paris, France</Descr>
<StatusCnlNum>0</StatusCnlNum>
<Data>
<DataItem cnlNum="101" />
<DataItem cnlNum="115">Avg. temp</DataItem>
</Data>
<Link viewID="2" />
</Location>
...
Lat и Lon - широта и долгота объекта на карте,
Name - наименование объекта,
Descr - дополнительное описание,
StatusCnlNum - номер входного канала, который означает статус данного объекта; 0 - канал не задан; положительное значение канала - объект в норме, иначе - объект требует внимания,
DataItem - отображаемый элемент данных, связанных с входным каналом,
Link - ссылка на представление, которое содержит детализированную информацию по объекту.
Чтобы карта появилась в дереве представлений, её нужно прописать в таблице Интерфейс с помощью программы Администратор. Необходимо указать путь к файлу карты относительно директории интерфейса и ввести заголовок - текст узла дерева (см. рис.).
Чтобы изменения отобразились в веб-приложении Вебстанция, необходимо передать проект на сервер и выполнить повторный вход в веб-приложение. Результат:
Плагин Уведомления позволяет обратить внимание оператора на наиболее важные события. Плагин формирует уведомления на основе событий по заданным правилам и выводит их на панели уведомлений, которая появляется в правой части веб-страницы. Кроме того, плагин включает звуковое оповещение в зависимости от типа уведомлений.
Сначала необходимо выполнить общую последовательность установки плагинов, а затем выполнить несколько дополнительных действий:
Если плагин установлен корректно, в правом верхнем углу веб-страницы появится значок колокольчика.
Конфигурация плагина уведомлений сохраняется в файле PlgNotification.xml. Этот файл должен быть добавлен в проект и располагаться в директории конфигурации Вебстанции. Во время работы файл конфигурации плагина расположен в директории C:\SCADA\ScadaWeb\config\
Рассмотрим содержимое файла конфигурации:
XML-тэг | Описание |
---|---|
GeneralOptions | Секция основных параметров |
EvPeriod | Период (в днях) охвата событий для создания уведомлений |
DispNotifCnt | Количество отображаемых уведомлений |
NotifOptions | Секция, содержащая параметры, определяющие, как генерировать уведомления |
InfoCondition WarningCondition ErrorCondition |
Определяют условия генерации уведомлений информационного типа, предупреждений и ошибок |
Statuses | Статусы входных каналов, которые вызывают создание нового уведомления |
ParamIDs | Идентификаторы величин входных каналов, для которых разрешены уведомления |
Tips | Секция, которая задаёт подсказки по уведомлениям |
Tip | Секция, которая определяет одну подсказку |
TipCondition | Условие подсказки |
Link | Если определён, указывает ссылку для перехода по подсказке |
Html | HTML-разметка подсказки, используемая вместо ссылки |
Приложение Автоотчёт предназначено для автоматического формирования различных отчётов, их сохранения на диск, а также рассылки по электронной почте. Расписание для генерации отчётов устанавливается с помощью Модуля автоматического управления. Отправка отчётов по электронной почте обеспечивается соответствующим драйвером KpEmail.dll, который входит в стандартную установку Rapid SCADA.
Поддерживаются следующие виды отчётов:
Автоотчёт работает как служба. Он подключается к Серверу и постоянно готов к приёму команд. Модуль автоматического управления, который работает в составе Сервера, в заданное время отправляет команду на выполнение задачи по формированию отчётов. По команде формируется набор отчётов и сохраняется на диск в виде файлов или архива. Если установлена соответствующая опция, приложение Автоотчёт передаёт команду Серверу на отправку сгенерированных отчётов по электронной почте.
Конфигурация Автоотчёта хранится в файле C:\SCADA\ScadaAutoReport\Config\ScadaAutoReportConfig.xml. Для редактирования конфигурации предназначено приложение ScadaAutoReportConfig.exe. Его внешний вид показан на следующих рисунках:
Для работы приложения Автоотчёт необходимо в проекте выполнить определённые настройки:
Действия 1, 2 и 3 показаны на следующих рисунках:
Настройки Модуля автоматического управления (пункт 4) показаны ниже:
Пример настройки Коммуникатора для работы отправки электронной почты (пункт 5) содержится в проекте DemoProject.ru-RU.rsproj. На следующем рисунке показаны свойства КП:
После завершения конфигурирования или изменения существующей конфигурации необходимо перезапустить службу Автоотчётов. Для этого запустите файл ScadaAutoReport\svc_restart.bat от имени администратора или воспользуйтесь консолью управления Windows, имя службы - ScadaAutoReportService.
Для проверки работоспособности можно запустить задачи на формирование отчётов через приложение Администратор. Для запуска задачи необходимо с помощью функции Генератор отправить стандартную команду ТУ на тот канал управления, который отвенчает за генерацию отчётов. В данном примере - канал номер 201. В качестве значения команды - идентификатор задачи. Корректность работы следует проверить по файлам журналов, которые расположены в директории C:\SCADA\ScadaAutoReport\Log\
Если приложение работает нормально, сформированные отчёты сохраняются в директории, указанной в основных параметрах приложения, по умолчанию C:\SCADA\Reports\
На рынке представлено огромное количество устройств, работающих в самых разных областях автоматизации, которые поддерживают обмен данными по протоколу Modbus. Modbus - это открытый коммуникационный протокол, использующий клиент-серверную модель, основанную на транзакциях, состоящих из запроса и ответа. Реализация поддержки протокола Modbus комплексом Rapid SCADA на порядок расширяет перечень устройств, с которыми может работать комплекс. Поддерживаются следующие режимы передачи данных: RTU, ASCII, TCP.
Общая последовательность настройки:
Далее приводится пошаговое описание подключения нового Modbus устройства.
В Администраторе нажмите конпку Новый проект, в открывшемся окне введите наименование проекта и нажмите кнопку OK. Чтобы процесс настройки полностью совпадал с текстом статьи, необходимо использовать пустой проект EmptyProject.ru-RU в качестве шаблона.
Рис. 1. Создание проекта
Разверните узел проводника проекта База конфигурации, откройте таблицу Объекты и добавьте новую строку для объекта 2 "Тестовый объект" (рис. 2). Щёлкните по кнопке на панели инструментов, чтобы открыть мастер добавления линии связи. С помощью мастера создайте линию связи 1 "Тестовая линия" (рис. 3). Затем нажмите кнопку
и добавьте КП 1 "Тестовый КП" (рис. 4).
Рис. 2. Добавление объекта
Рис. 3. Добавление линии связи
Рис. 4. Добавление КП
Обратите внимание на заполнение следующих полей при добавлении КП:
Тип КП: | Modbus |
Адрес: | Modbus адрес Вашего устройства, например, 1 |
Позывной: | IP-адрес, если устройство подключено по сети Ethernet. В противном случае, пустой |
Линия связи: | "Тестовая линия", которая была только что создана |
Откройте таблицы Линии связи и КП базы конфигурации, чтобы проверить, что созданная линия связи и КП успешно добавлены в таблицы. Убедитесь, что соответствующая линия связи и КП созданы в настройках Коммуникатора.
В проводнике проекта перейдите в настройки Коммуникатора, разверните узел созданной линии связи и дважды щёлкните по элементу Параметры линии. На странице основных параметров необходимо настроить канал связи (рис. 5). Для протокола Modbus обычно используется канал TCP-клиент или Последовательный порт.
Рис. 5. Основные параметры линии связи
Если обмен данными выполняется через последовательный порт, то типичные параметры последовательного порта в зависимости от типа протокола Modbus указаны в таблице ниже. В режимах RTU и ASCII необходимо установить одинаковую скорость передачи данных в Коммуникаторе и на устройствах. На одной линии связи все устройства должны работать по протоколу Modbus одного типа и с одной скоростью.
Modbus RTU | Modbus ASCII | Modbus TCP |
---|---|---|
8 битов данных, с проверкой чётности (even – чёт.), 1 стоп-бит |
7 битов данных, с проверкой чётности (even – чёт.), 1 стоп-бит |
- |
8 битов данных, без проверки чётности, 2 стоп-бита |
7 битов данных, без проверки чётности, 2 стоп-бита |
- |
Далее перейдите на страницу Опрос КП и выберите в таблице "Тестовый КП" (рис. 6). Если не указывать время или период опроса КП, то опрос устройств производится циклически. Команды отправляются сразу после завершения очередного опроса.
Рис. 6. Таблица опроса КП
Нажмите кнопку Свойства, чтобы открыть форму настройки дополнительных свойств КП (рис. 7). На форме свойств КП необходимо выбрать тип протокола Modbus, который должен быть указан в документации на устройство. В нашем случае Modbus TCP.
Рис. 7. Свойства КП
Нажмите кнопку , чтобы выбрать существующий шаблон устройства, или кнопку
, чтобы создать новый шаблон. При нажатии на кнопку создания
или на кнопку редактирования шаблона
вызывается Редактор шаблонов устройств (рис. 8). В данной статье используется существующий шаблон KpModbus_Adam6015.xml, который был предварительно скопирован в директорию проекта C:\SCADA\Projects\ModbusTest\Instances\Default\ScadaComm\Config\
Рис. 8. Редактор шаблонов устройств
Шаблон устройства отражает структуру пакетов данных протокола Modbus. Данные, запрашиваемые от устройства, объединены в группы элементов (тегов). Группа элементов описывается наименованием, таблицей данных, адресом и количеством элементов. Для команд, если они поддерживаются устройством, необходимо задать наименование, таблицу данных, адрес и номер команды КП (от 1 и далее по порядку).
Наименования элементов и команд могут быть произвольными. Таблицы данных и адреса элементов должны содержаться в документации на подключаемое устройство. В зависимости от производителя адресация элементов может начинаться с 0 или с 1, указываться в 10-чной или 16-ричной системе. По умолчанию в шаблоне выбрана адресация с 1 в 10-чной системе. Чтобы переключить адресацию шаблона, нажмите на кнопку . Откроется диалоговое окно настроек шаблона (рис. 9).
Рис. 9. Настройки шаблона
Завершив редактирование свойств КП (рис. 7), нажмите кнопку OK. В поле Командная строка в свойствах КП запишется имя файла шаблона KpModbus_Adam6015.xml. Передайте проект на сервер с помощью кнопки .
В проводнике проекта дважды щёлкните элемент дерева, соответствующий КП, чтобы проверить состояние КП и наличие данных (рис. 10). Данные для работы примера предоставлялись с помощью Modbus Simulator.
Рис. 10. Данные КП
При отсутствии связи с устройством используйте журнал линии связи для поиска причины проблемы. Чтобы открыть журнал, дважды щёлкните по элементу дерева Статистика линии, в открывшемся окне перейдите на страницу Журнал линии. С помощью онлайн инструмента Online Modbus Parser можно получить расшифровку пакетов данных, скопировав их на веб-форму из журнала линии связи.
После того, как связь с устройством установлена, необходимо создать входные каналы и каналы управления в базе конфигурации. Наиболее удобный способ создания каналов - использовать мастер, вызываемый кнопкой . Если в систему добавляется несколько однотипных устройств, то ускорить работу можно с помощью инструмента клонирования каналов.
Выполните шаги мастера (рис. 11-13), выбрав из выпадающих списков созданные ранее линию связи, КП и объект. Чтобы проверить, какие номера каналов доступны, используйте карту каналов на шаге 3.
Рис. 11. Создание каналов. Шаг 1
Рис. 12. Создание каналов. Шаг 2
Рис. 13. Создание каналов. Шаг 3
При нажатии на кнопку Создать каналы будут созданы. Каналы создаются автоматически на основе шаблона устройства, который был создан и назначен КП в предыдущем разделе статьи. Посмотреть созданные каналы можно, открыв таблицу базы конфигурации Входные каналы > Тестовый КП или Каналы управления > Тестовый КП. Рекомендуется вручную заполнить поля Величина и Размерность для входных каналов и поле Значения команды для каналов управления. Однако в случае первого опыта это делать необязательно. Полезно понимать, что входные каналы привязываются к тегам КП с помощью поля Сигнал. Каналы управления привязываются к командам КП в соответствии с полем Номер команды.
После того, как редактирование базы конфигурации завершено, следует передать проект на сервер с помощью кнопки . Теперь откройте страницу данных КП в настройках Коммуникатора и убедитесь, что созданные входные каналы связаны с тегами КП – столбец Канал должен содержать номера созданных входных каналов (рис. 14).
Рис. 14. Данные КП с привязкой каналов
В результате проделанных действий данные должны собираться с устройства и сохраняться в архив. Осталось настроить пользовательский интерфейс оператора.
Рассмотрим создание табличного представления для приложения Вебстанция. Если необходимо отобразить данные на мнемосхеме, действия по созданию представления будут аналогичны.
Щёлкните правой кнопкой на узле Интерфейс проводника проекта. Сначала в контекстном меню выберите Создать папку и создайте папку ModbusTest. Затем в контекстном меню созданной папки выберите Создать файл (рис. 15). В открывшемся окне установите табличный тип представления, укажите имя файла ModbusDevice.tbl и нажмите кнопку OK (рис. 16).
Рис. 15. Меню для создания представления
Рис. 16. Диалог для создания представления
Созданный файл представления появится в проводнике проекта. По двойному щелчку на файле откроется Редактор таблиц. Необходимо ввести заголовок и заполнить элементы представления, как показано на рис. 17. Сохраните изменения и закройте редактор.
Рис. 17. Редактирование представления
После того, как файл представления создан, необходимо прописать в таблице Интерфейс базы конфигурации родительскую директорию и файл представления (рис. 18).
Рис. 18. Добавление представления в таблицу Интерфейс
Передайте проект на сервер с помощью кнопки . Теперь запустите браузер и введите адрес http://localhost/scada/. На форме входа в систему используйте логин admin и пароль 12345 (рис. 19). Если настройка выполнена правильно, то после входа в систему Вам будет доступна таблица с получаемыми от устройства данными (рис. 20).
Рис. 19. Вход в систему
Рис. 20. Приложение Вебстанция
Каждый элемент Modbus, относящийся к таблицам Input Register и Holding Registers, состоит из двух байт. В зависимости от установленного для элемента типа полученные от устройства данные преобразуются в значение по-разному.
Если выбран 4-х байтный тип (uint, int, float), то значение элемента получается в результате преобразования 2-х элементов с идущими подряд адресами. Если выбран 8-и байтный тип (ulong, long, double), то значение получается в результате преобразования 4-х элементов.
Кроме того, можно задать порядок байт, в котором зашифровано значение, т.к. для различных устройств порядок байт может отличаться.
В ряде случаев для получения вещественных или отрицательных величин потребуется пересчёт, который выполняется Сервером. Способ пересчёта зависит от используемого устройства и должен указываться его производителем. Два распространённых варианта пересчёта для 2-х байтных значений без знака (ushort) приводятся ниже.
Пусть требуемое вещественное значение изменяется в диапазоне от A до B, X - полученное от устройства целое значение. Тогда пересчёт выполняется по следующей формуле:
X * (B - A) / 65536 + A.
Формулу следует ввести в поле Формула входного канала в базе конфигурации, установив для данного канала признак Исп. формулу. Например, значение измеряемого параметра изменяется в диапазоне от -40 до 160. Тогда формула для ввода в базу конфигурации получится:
Cnl*200/65536-40
Дополнительная информация о дополнительном коде (two’s complement) доступна на Википедии.
Пусть требуемое вещественное значение изменяется в диапазоне от A до B. При этом нижней границе соответствует целое значение A', получаемое от устройства, верхней границе – целое значение B', получаемое от устройства, а нулевому вещественному значению соответствует 0, получаемый от устройства. Значения A' и B' устанавливаются производителем устройства.
Если старший бит полученного значения X равен 0, т.е. X является положительным, то вещественное значение вычисляется по формуле:
X * B / B'.
Если старший бит полученного значения X равен 1, т.е. X является отрицательным, то вещественное значение вычисляется по формуле:
(~X | 128 + 1) * A / (~A' | 128 + 1),
где ~ - оператор побитового отрицания, | - оператор побитового ИЛИ.
Пример:
A = -210, A' = 56482 (0xDCA2), B = 760, B' = 32767 (0x7FFF).
Тогда формула для ввода в базу конфигурации:
Cnl<32768 ? Cnl*760/32767 : -(double)(ushort)(~(ushort)Cnl|128+1)*210/9182
Рекомендуется создать функцию, выполняющую описанный пересчёт, в таблице Формулы базы конфигурации, чтобы сократить последующую запись формул при многократном использовании:
double Convert(double x) { return x<32768 ? x*760/32767 : -(double)(ushort)(~(ushort)x|128+1)*210/9182; }
Вызов этой функции в поле Формула таблицы Входные каналы:
Convert(Cnl)
Стандарт OPC обеспечивает универсальный способ подключения устройств различных производителей к SCADA-системе. Программный комплекс Rapid SCADA поддерживает следующие спецификации OPC:
Реализация OPC-клиента комплексом Rapid SCADA выполнена в виде драйвера KpOpc.dll в составе приложения Коммуникатор. Особенностям настройки программы Коммуникатор для взаимодействия по стандарту OPC, преимущественно, посвящена данная статья.
Общая последовательность настройки:
Детали выполнения перечисленных выше пунктов, за исключением пункта 4, содержатся в разделе Настройка комплекса. Рекомендуется ознакомиться с проектом DemoProject.ru-RU, который устанавливается вместе с Rapid SCADA. Примером устройства является КП 21 "OPC Демо", данные которого отображаются табличным представлением OpcDemo.tbl. Для полноценной работы примера нужно скачать и установить программу MatrikonOPC Simulation Server, которая имитирует работу OPC-сервера.
В Коммуникаторе необходимо создавать отдельные линии связи для каждого используемого OPC-сервера. Такой подход наиболее эффективен, потому что позволяет взаимодействовать с OPC серверами параллельно. В параметрах линий связи с OPC серверами установите тип канала связи Не задан. Затем добавьте КП на линии связи.
Привязка параметров КП к тегам OPC-сервера осуществляется с помощью специальной формы конфигурации КП (рис. 1). Данная форма открывается при вызове свойств КП из настроек Коммуникатора.
Рис. 1. Выбор OPC-тегов
Для использования доступны OPC-серверы, установленные на том же компьютере, на котором работает Коммуникатор. Если необходимо подключение к OPC-серверу, расположенному на другом компьютере сети, то необходимо установить экземпляр Коммуникатора на том компьютере и корректно настроить параметры его связи с Сервером.
Чтобы полученные от OPC-сервера значения были записаны во входные каналы Rapid SCADA, требуется привязка тегов КП к входным каналам базы конфигурации. Эта привязка может выполняться двумя способами, перечисленными ниже. Выбор способа определяется в каждом конкретном случае, исходя из удобства настройки.
После того, как конфигурирвание завершено, передайте проект на сервер с помощью кнопки . Через несколько секунд работы Коммуникатора, если настройка выполнена правильно, на странице данных КП должны появиться значения, полученные от OPC-сервера (рис. 2). Эти значения также можно увидеть в браузере с помощью веб-приложения Вебстанция.
Рис. 2. Значения OPC-тегов
Известная проблема при работе с OPC: не удаётся получить данные от OPC-сервера, при этом в свойствах КП требуемый OPC-сервер доступен.
Вероятная причина проблемы заключается в том, что Коммуникатор работает как служба Windows от пользователя system, а OPC-сервер не поддерживает подключение к нему от имени данного пользователя.
Решение 1. В параметрах DCOM для OPC-сервера необходимо установить запуск от имени конкретного пользователя, который является администратором компьютера. Чтобы открыть настройки DCOM (рис. 3), скопируйте следующий путь в проводник Панель управления\Система и безопасность\Администрирование\Службы компонентов или просто запустите comexp.msc
Рис. 3. Конфигурация DCOM
Решение 2. Установить учётную запись пользователя, которая используется для работы службы Коммуникатора. Откройте настройки служб, скопировав в проводник Панель управления\Система и безопасность\Администрирование\Управление компьютером\Службы или запустив services.msc. Найдите службу ScadaCommService и откройте её свойства. Введите имя пользователя и пароль на странице Вход в систему, как показано на рис. 4. Указанный пользователь должен обладать правами администратора компьютера.
Рис. 4. Свойства службы