Программный комплекс 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. Приложение Сервер
Сервер состоит из службы Windows и графической оболочки. Оболочка показана на рис. 1. Служба Windows не имеет интерфейса и работает постоянно в фоновом режиме вне зависимости от входа и выхода пользователей в операционную систему.
Программа осуществляет контроль подключенных пользователей и на основе их прав производит ограничение выдаваемых данных и принимаемых команд. Служебная информация о работе приложения сохраняется в текстовом файле журнала. Сервер рассчитан на круглосуточный режим работы.
Дополнительные серверные модули позволяют расширять функциональность Сервера в соответствии с требованиями Заказчика.
Приложение Коммуникатор (рис. 1) выполняет следующие функции:
Рис. 1. Приложение Коммуникатор
Коммуникатор автоматически записывает в текстовые файлы информацию о работе приложения, линий связи, каждого подключенного устройства. Коммуникатор состоит из службы Windows и графической оболочки. Режим работы Коммуникатора круглосуточный. Сторонние разработчики имеют возможность реализовывать собственные библиотеки (драйверы) для взаимодействия Коммуникатора с различными устройствами.
Вебстанция – это веб-приложение, которое предназначено для отображения измеряемых системой данных и управления посредством программы-браузера (рис. 1 и 2). Информация представляется в табличной форме, на графиках, на схемах, а также в отчётах, которые генерируются в привычных форматах HTML и Microsoft Excel.
Рис. 1. Приложение Вебстанция. Мнемосхема
Рис. 2. Приложение Вебстанция. Табличное представление
Для получения информации пользователю достаточно выбрать представление (таблицу или схему) и при необходимости изменить дату просматриваемых данных. Чтобы получить график значений интересующего входного канала, следует щёлкнуть мышкой по пиктограмме параметра в таблице или по элементу на схеме.
Приложение Вебстанция доступно с любого компьютера или планшета, подключенного к вычислительной сети организации без выполнения какой-либо инсталляции ПО. Вход в систему возможен только при наличии прав доступа, определённых администратором системы.
Функциональность Вебстанции может быть расширена с помощью дополнительных плагинов. Например, плагин Графики Про расширяет возможности для работы с трендами входных каналов: масштабирование, одновременное отображение нескольких графиков, экспорт в форматы PNG и PDF. Плагин Гибкий отчёт позволяет генерировать отчёты в соответствии с пользовательской конфигурацией. С помощью данного плагина возможно построить практически любой необходимый отчёт. Сторонние разработчики имеют возможность разрабатывать и встраивать в веб-приложение собственные плагины, отображающие информацию оператору в произвольной форме.
Приложение Администратор предназначено для управления конфигурацией системы (рис. 1). Настройка конфигурации производится путём редактирования таблиц базы конфигурации, которая представляет собой структурированное описание всей автоматизированной системы.
Рис. 1. Приложение Администратор
Основные возможности программы Администратор, предназначенные для быстрого создания и удобной модификации базы конфигурации:
Приложение Редактор таблиц предназначено для создания табличных представлений, которые отображаются на рабочей станции оператора. Редактор таблиц используется инженерами в процессе конфигурирования Rapid SCADA.
Рис. 1. Приложение Редактор таблиц
В левой части окна программы можно выбрать каналы из базы конфигурации и добавить их в табличное представление. Содержимое редактируемого табличного представления показывается в правой части окна.
Каналы управления могут быть привязаны к отображаемым элементам двумя способами:
Скрытые элементы не отображаются на экране, но учитываются при фильтрации событий по представлению в приложении Вебстанция.
Приложение Редактор схем предназначено для создания мнемосхем, которые отображаются на рабочей станции оператора. Редактор схем используется инженерами в процессе конфигурирования Rapid SCADA.
Рис. 1. Приложение Редактор схем
Схема состоит из текстовых и графических элементов, которые имеют множество свойств, определяющих их внешний вид и поведение. Отображение статических элементов схемы неизменно. Динамические элементы привязываются к каналам базы конфигурации, что позволяет отображать текущие измеряемые значения и состояния, по щелчку пользователя строить графики и отправлять команды телеуправления.
Аппаратная конфигурация сервера подбирается, исходя из масштаба автоматизированной системы. Минимальная конфигурация определяется требованиями используемой операционной системы. Для оценки требуемого места на жестком диске необходимо сначала настроить 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
Установка программного комплекса должна запускаться из файла ScadaSetup.exe. Установку необходимо выполнять под учётной записью, которая обладает правами администратора на компьютере. Если установка происходит в операционной системе Microsoft Windows 7 и выше, необходимо с помощью контекстного меню запустить установочный файл ScadaSetup.exe от имени администратора или отключить уведомления о вносимых в компьютер изменениях в параметрах контроля учётных записей пользователей. Программа-установщик показана на рис. 5.
Для работы Rapid SCADA требуется наличие на компьютере среды выполнения Microsoft .NET Framework 4. Если среда выполнения не установлена, её установка будет запущена автоматически. Если установка производится на устаревшую ОС Windows XP или Windows Server 2003, то перед запуском ScadaSetup.exe необходимо дополнительно загрузить из Интернета и установить Microsoft .NET Framework 3.5 SP1.
Рис. 5. Программа-установщик
В процессе установки сначала предлагается выбрать инсталлируемые приложения, входящие в состав комплекса, а затем предлагается выбрать директорию для установки (рис. 6). Данная директория определяет расположение всего программного комплекса, в ней создаются поддиректории, необходимые для работы инсталлируемых приложений. Рекомендуется использовать директорию по умолчанию C:\SCADA, чтобы упростить последующую настройку приложений.
Рис. 6. Выбор директории для установки
Параметры установки веб-приложения (рис. 7) согласуются с системным администратором. Если специфические требования к веб-приложению отсутствуют, следует использовать значения по умолчанию.
Рис. 7. Параметры установки веб-приложения
После завершения установки рекомендуется с помощью Диспетчера служб IIS убедиться, что веб-приложение Scada использует пул приложений с версией среды .NET 4.0 и встроенным режимом конвейера. В Windows 7 и Windows 10 диспетчер открывается так: Панель управления > Система и безопасность > Администрирование > Диспетчер служб IIS.
Установка Rapid SCADA вручную позволяет сохранять полный контроль в процессе установки, обновлении и удалении программного комплекса. В том числе, ручная установка может использоваться при установке Rapid SCADA на устаревшие ОС, такие как Windows XP и Windows Server 2003, которые официально не поддерживаются.
Последовательность установки вручную:
Последовательность удаления вручную:
Rapid SCADA позволяет устанавливать дополнительные модули, которые расширяют функциональность программного обеспечения. Данный раздел содержит описание последовательности установки, которая типична для большинства модулей.
Последовательность установки нового или обновления существующего модуля для приложения Сервер:
Последовательность установки нового или обновления существующего драйвера для приложения Коммуникатор:
Дополнительные модули для веб-приложения Вебстанция называются плагины. Последовательность установки нового плагина:
Запуск приложений, входящих в комплекс Rapid SCADA, может осуществляться с помощью ярлыков, которые создаются при установке в меню Пуск > Программы > SCADA, или напрямую из исполняемых исполняемых файлов программ.
Программы Сервер и Коммуникатор состоят из двух частей:
Тип запуска служб Сервера и Коммуникатора по умолчанию устанавливается автоматический, т.е. службы запускаются при старте операционной системы и останавливаются при завершении её работы. Если автозапуск не требуется, то в свойствах служб ScadaServerService и ScadaCommService нужно установить запуск вручную (рис. 1). Для этого перейдите: Панель управления > Система и безопасность > Администрирование > Службы.
Рис. 1. Установка типа запуска службы
Веб-приложение Вебстанция открывается с помощью браузера Google Chrome, Mozilla Firefox или Microsoft Edge. Адресная строка имеет вид http://compname/scada/ где compname - имя компьютера или IP-адрес в локальной сети, на котором установлено веб-приложение, scada – виртуальный каталог, указанный при установке. Если веб-приложение открывается на том же компьютере, на котором оно установлено, то можно использовать ссылки http://localhost/scada/ или http://127.0.0.1/scada/
Имя пользователя по умолчанию: admin
Пароль по умолчанию: 12345
Если выбранная директория установки отличается от рекомендуемой директории C:\SCADA, то при первом запуске приложений следует проверить и при необходимости скорректировать настройки директорий, которые они используют.
Типичные задачи, при которых необходим перенос конфигурации Rapid SCADA на другой сервер:
Последовательность действий для переноса конфигурации:
Обновление Rapid SCADA до новых версий обязательно должно предварительно проводиться на тестовом сервере. Внимательно изучите список изменений в новой версии. Если изменилась структура базы конфигурации, форматы архивных файлов или файлов представлений, потребуется конвертирование данных с помощью специальной утилиты.
Только после того, как появится уверенность в том, что новая версия Rapid SCADA на тестовом сервере работает корректно, можно выполнять установку на основной сервер.
Последовательность действий для обновления ПО:
Начиная работу с Rapid SCADA, рекомендуется придерживаться общей последовательности настройки, приведённой ниже. Получив определённый опыт работы с комплексом, лучше поняв механизмы взаимодействия приложений, можно варьировать последовательность настройки для удобства.
База конфигурации представляет собой структурированное описание всей автоматизированной системы. Программы, входящие в состав Rapid SCADA, используют информацию из базы конфигурации в сочетании со своими параметрами настройки.
База конфигурации редактируется с помощью программы Администратор. Редактируемый экземпляр базы конфигурации имеет формат SDF (Microsoft SQL Server Compact Edition). После того, как внесение необходимых изменений завершено, администратор системы нажимает кнопку , и база конвертируется в специально разработанный формат DAT для использования остальными приложениями комплекса. Такой подход позволяет модифицировать базу конфигурации, не останавливая работу комплекса.
База конфигурации состоит из таблиц, которые, в свою очередь, состоят из столбцов и строк. Каждая таблица относится к одной из следующих групп:
Далее приводится перечень таблиц базы конфигурации с их назначением.
Таблица | Назначение |
---|---|
Система | |
Объекты | Содержит логические объекты, к которым привязываются входные данные и команды управления |
Линии связи | Описывает физические линии связи, по которым производится обмен данными с устройствами |
КП | Содержит контролируемые пункты (КП) - физические или мнимые устройства, с которыми происходит обмен данными |
Входные каналы | Определяет входные данные системы, поступающие с устройств, а также значения, вычисляемые на их основе |
Каналы управления | Определяет команды, выполняемые системой |
Роли | Содержит роли - набор функциональных возможностей, доступных пользователям |
Пользователи | Содержит перечень пользователей системы с указанием ролей |
Интерфейс | Содержит описание объектов интерфейса (представлений, отчётов и окон данных), на которые требуется разграничение прав доступа |
Права | Определяет права ролей на объекты интерфейса |
Справочники | |
Типы каналов | Справочник типов входных каналов |
Типы команд | Справочник типов команд, которые могут использоваться каналами управления |
Типы событий | Справочник типов событий системы, которые соответствуют статусам значений входных каналов |
Типы КП | Справочник типов КП (устройств) |
Величины | Справочник измеряемых физических величин |
Размерности | Справочник размерностей значений входных каналов, а также перечислимые значения каналов |
Значения команд | Справочник значений команд, которые вызываются посредством каналов управления |
Форматы чисел | Справочник форматов, используемых при выводе значений входных каналов |
Формулы | Справочник формул, используемых при расчётах данных входных каналов и значений команд каналов управления |
Заполнение базы конфигурации в программе Администратор выполняется в следующей последовательности:
Создание базы конфигурации можно значительно ускорить, если использовать сделанные ранее наработки. Для обмена информацией между различными базами программа Администратор имеет функции Экспорт и Импорт, которые вызываются из меню База данных. Таблицы экспортируются в файлы формата DAT, после чего информация может быть импортирована из этих файлов в ту же самую или другую базу конфигурации. Существует возможность ограничить перечень выгружаемых и закачиваемых данных, задав начальный и конечный идентификаторы (рис. 1). Кроме того, если при импорте указать новый начальный идентификатор, то импорт данных выполнится со смещением номеров идентификаторов.
Рис. 1. Импорт данных в базу конфигурации
Сервис создания каналов (рис. 2), доступный в меню Сервис, позволяет быстро заполнить таблицы Входные каналы и Каналы управления, используя введённые объекты и КП. Правила создания каналов содержатся в библиотеках КП (драйверах) программы Коммуникатор, расположенных по умолчанию в директории C:\SCADA\ScadaComm\KP\. Если какой-либо файл DLL, указанный в таблице Типы КП, не существует, то создание каналов для КП соответствующего типа невозможно. При создании каналов используются настройки КП, введённые в Коммуникаторе.
Чтобы создать входные каналы и каналы управления, необходимо отметить КП, для которых создаются каналы, выбрать или оставить неопределённым объект для каждого КП, нажать кнопку Рассчитать номера каналов, проконтролировать рассчитанные номера и затем нажать кнопку Создать.
Рис. 2. Создание каналов
Сервис клонирования каналов (рис. 3) также предназначен для ускорения заполнения таблиц Входные каналы и Каналы управления. В процессе клонирования каналов значения объектов и КП могут быть заменены другими.
Рис. 3. Клонирование каналов
Редактирование входных каналов доступно как в табличном виде, так и на форме свойств входного канала, вызов которой производится из контекстного меню по правому щелчку мыши на таблице входных каналов (рис. 4).
Рис. 4. Редактирование свойств входного канала
Функция упаковки позволяет уменьшить размер SDF-файла базы конфигурации, когда её редактирование завершено. Данная функция доступна через главное меню База данных > Упаковать.
Формулы применяются для расчёта значений и статусов входных каналов, а также для расчёта значений команд управления. Обработка формул выполняется программой Сервер.
Формулы вводятся в базу конфигурации в таблицы Входные каналы и Каналы управления. Чтобы расчёт по формуле для какого-либо канала выполнялся, необходимо установить для него галочку в столбце Исп. формулу. Таблица Формулы базы конфигурации содержит дополнительные функции и структуры данных, которые могут быть использованы в формулах для входных каналов и каналов управления.
Общие правила использования формул:
Правила формул входных каналов:
Правила формул каналов управления:
Переменные, доступные в формулах:
Переменная | Тип значения | Описание |
---|---|---|
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 | Квадратный корень |
Rapid SCADA поддерживает три способа аутентификации пользователей:
При выполнении аутентификации клиентская программа, например, Коммуникатор или Вебстанция, отправляет запрос программе SCADA-Сервер, которая выполняет проверку корректности имени и пароля, определяет роль пользователя и сообщает её клиентской программе.
Стандартные роли пользователя и их возможности перечислены в следующей таблице.
Идентификатор | Наименование | Описание |
---|---|---|
0 | Отключен | Доступ к системе заблокирован |
1 | Администратор | Полный доступ ко всем функциям и объектам системы |
2 | Диспетчер | Просмотр информации по всем объектам и телеуправление |
3 | Гость | Просмотр информации по всем объектам |
4 | Приложение | Взаимодействие с программой Сервер |
Чтобы использовать возможности Rapid SCADA по разграничению прав на объекты интерфейса (табличным представлениям, схемам и т.д.), необходимо в таблице Роли базы конфигурации создать новые пользовательские роли, а затем в таблице Права настроить права доступа.
Если программный комплекс функционирует в локальной сети, построенной на основе Active Directory, то в целях безопасности рекомендуется использовать 2-й или 3 й способ аутентификации, которые далее рассматриваются подробнее.
Чтобы программа Сервер имела возможность взаимодействия с Active Directory, необходимо в её настройках на странице Общие параметры указать адрес контроллера домена и установить соответствующую галочку.
2-й способ аутентификации используется, если разграничение прав доступа не предусматривает индивидуальную настройку прав на объекты интерфейса системы. Преимущество данного способа заключается в том, что для управления доступом достаточно инструментария работы с Active Directory, не требуется изменений базы конфигурации и перезапуска Сервера.
В Active Directory необходимо создать глобальные группы безопасности, предназначенные для определения ролей пользователей:
Членство пользователя (или группы, в которую он входит) в соответствующей группе безопасности определяет его роль в системе SCADA.
3-й способ объединяет возможности 1-го и 2-го способов. Проверка корректности имени и пароля производится с использованием Active Directory, а роль пользователя определяется по таблице Пользователи базы конфигурации. В этом случае таблице Пользователи указывается идентификатор, имя и роль пользователя, а его пароль не вводится.
Допускается одновременное использование всех вышеперечисленных способов аутентификации.
Взаимодействие с физическими или мнимыми устройствами выполняется программой Коммуникатор, которая, выступая в качестве ведущего (Master) или ведомого (Slave), производит опрос данных и передачу команд устройствам. Все устройства привязываются к своим линиям связи, которые не зависят друг от друга и опрашиваются параллельно.
На рис. 1 показан пример настройки линии связи. Канал связи определяет, с помощью какого физического интерфейса или сетевого протокола производится обмен данными с устройствами. Поддерживаются следующие каналы связи: Последовательный порт, TCP-клиент, TCP-сервер, UDP. В некоторых случаях, если взаимодействие с устройствами реализовано в библиотеке КП, канал связи следует оставить незаданным (например, в реализации OPC).
Если требуется отправлять команды управления устройствам, нужно поставить галочку Команды ТУ разрешены. По умолчанию она отключена в целях безопасности.
Порядок и параметры опроса КП на линии связи задаются на странице Опрос КП (рис. 2).
Рис. 1. Параметры линии связи
Рис. 2. Опрос КП
При снятии флажка Активна соответствующая линия связи будет полностью отключена со всеми относящимися к ней КП. При снятии флажка Активен для КП опрос и отправка команды соответствующему КП на линии связи будут отключены.
С помощью флажков Привязка можно включить или отключить для определённых КП или для всей линии связи отправку данных программе Сервер. Снятие флажка Использовать SCADA-Сервер на странице Общие параметры полностью отключает взаимодействие Коммуникатора и Сервера. Эти возможности удобно использовать при тестировании новых подключаемых к системе устройств.
Если в свойствах КП поля Время и Период нулевые, то опрос КП производится непрерывно циклически. Если для КП указано время, а период равен нулю, то опрос выполняется один раз в сутки в указанное время. Если период не нулевой, то КП опрашивается периодически, начиная с заданного времени. Поля Таймаут и Пауза определяют длительность ожидания ответа от устройства и задержку после приёма данных. Поле Командная строка позволяет задать дополнительные параметры работы КП, которые определяются библиотекой КП и указаны в её описании.
Кнопка позволяет восстановить параметры опроса КП по умолчанию, которые заложены в DLL, выбранной из списка. Если данная DLL поддерживает отображение свойств конкретного КП, то они открываются кнопкой
или из контекстного меню элемента дерева, соответствующего КП. Для некоторых типов КП задаются общие глобальные свойства, в этом случае они редактируются по кнопке Свойства на странице Библиотеки КП.
Значительно ускорить настройку обмена данными с устройствами позволяет функция импорта (рис. 3). Чтобы ей воспользоваться, галочка Использовать SCADA-Сервер на странице Общие параметры должна быть установлена, а служба Сервера должен быть запущена. Импорт вызывается кнопкой , которая расположена в контекстном меню элементов линий связи, а также на странице Опрос КП. Функция импорта позволяет в настройках программы Коммуникатор создать перечень линий связи и КП на основе информации из базы конфигурации.
Кнопка позволяет обновить настройки существующих линий связи и КП по базе конфигурации, однако при этом будут утеряны настройки, сделанные пользователем вручную.
Рис. 3. Импорт КП
Представление – это форма отображения информации в приложении Вебстанция. По умолчанию поддерживается 2 типа представлений: табличные представления и схемы. С помощью подключения дополнительных плагинов может быть добавлена поддержка других типов представлений.
Для создания представлений предназначены специальные редакторы: Редактор таблиц и Редактор схем. Созданые представления сохраняются в файлы, которые должны располагаться в директории интерфейса, указанной в настройках программы Сервер, или в её поддиректориях. Директория интерфейса по умолчанию C:\SCADA\Interface\
Примеры файлов представлений:
C:\SCADA\Interface\Servers\ServerRoom.sch - схема,
C:\SCADA\Interface\Servers\ServerRoom.tbl - табличное представление.
После того, как файлы представления созданы, их необходимо прописать в базе конфигурации в таблице Интерфейс с помощью программы Администратор, как показано на рис. 1. Идентификатор представления вводится произвольно, обеспечивая уникальность. Путь к представлению указывается относительно директории интерфейса. Текст, указанный в столбце Заголовок отображается в дереве проводника Вебстанции.
Рис. 1. Редактирование таблицы Интерфейс
Чтобы сделанные изменения вступили в силу, необходимо передать базу Серверу с помощью кнопки , перезапустить службу Сервера кнопкой
, затем выполнить выход и повторный вход в веб-приложение.
Драйвер Telegram предназначен для рассылки уведомлений пользователям с помощью популярного мессенджера Telegram. Преимуществами использования Telegram является оперативность получения уведомлений, отсутствие платы за использование сервиса и удобство управления группами рассылки.
Драйвер Telegram устанавливается в соответствии с общей последовательностью установки драйверов Коммуникатора. Файл библиотеки драйвера - KpTelegram.dll.
Предварительно необходимо создать бота с системе Telegram. Для этого:
Настройка рассылки уведомлений выполняется в следующей последовательности:
Если настройка выполнена правильно, то Ваш бот будет отвечать на команды, например, команду /help
Чтобы добавить или удалить подписку данной группы, используйте команды /start и /stop с указанием ранее сгенерированного пароля. Однако, по умолчанию изменение подписки заблокировано. Чтобы его разблокировать, в Коммуникаторе отправьте для КП стандартную команду номер 2 со значением 1. Теперь можно добавлять или удалять подписки.
Чтобы из Rapid SCADA отправить сообщение в группу Telegram, необходимо отправить бинарную команду номер 1, содержащую имя (или идентификатор) группы и текст сообщения. Например: RapidScadaBotTestGroup; Тестовое сообщение.
Автоматическая рассылка уведомлений при выполнении определённых условий и возникновении событий осуществляется с помощью Модуля автоматического управления.
Модуль автоматического управления позволяет в автоматическом режиме отправлять команды при выполнении определённых условий. Без регистрации модуль работает в демонстрационном режиме с ограничением времени полнофункциональной работы 10 минут после перезапуска. Модуль подключается к программе SCADA-Сервер. Настройка модуля выполняется с помощью удобной формы, показанной на следующем рисунке.
Условия, необходимые для отправки команд, задаются в виде триггеров, которые бывают нескольких типов:
Для каждого триггера создаётся набор команд ТУ, которые отправляются при его срабатывании. Информацию о срабатывании триггеров и отправленных командах можно получить на странице Журнал или напрямую из файла 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. Для работы модуля необходимо предварительно создать таблицы базы данных, в которые будет сохраняться информация. В настройках модуля необходимо указать параметры соединения с БД и 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.
Модуль автоматического управления устанавливается в соответствии с общей последовательностью установки модулей Сервера. Файл библиотеки модуля - ModRapidGate.dll. После подключения модуля необходимо выполнить несколько дополнительных действий:
Чтобы сконфигурировать модуль Быстрый шлюз, необходимо отредактировать файл C:\SCADA\ScadaServer\Config\ModRapidGate.xml с помощью текстового редактора. В настройках указываются параметры подключения к тому cерверу SCADA (целевому серверу), на который будут передаваться данные и с которого будут приниматься команды ТУ.
Обратите внимание, что на целевом сервере обычно небходимо настроить брандмауэр, чтобы разрешить подключение к нему по сети.
Алгоритм работы модуля Быстрый шлюз имеет следующие функциональные особенности:
Плагин Графики Про — это дополнительный плагин для приложения Вебстанция, расширяющий возможности работы с графиками входных каналов: масштабирование, одновременное отображение нескольких графиков, экспорт в форматы PNG и PDF.
Сначала необходимо выполнить общую последовательность установки плагинов, а затем выполнить несколько дополнительных действий:
Плагин Дэшборды отображает полезные виджеты на дэшбордах: графики, текущие данные и произвольные фреймы, например, изображение с камеры видео-наблюдения. Настройки каждого дэшборда позволяют задать количество столбцов и соотношение сторон виджетов.
Сначала необходимо выполнить общую последовательность установки плагинов, а затем выполнить несколько дополнительных действий:
Конфигурация каждого дэшборда сохраняется в отдельном файле формата XML. При установке плагина также устанавливается пример дэшборда:
C:\SCADA\ScadaWeb\storage\AllUsers\Dashboard\DashboardExample1.xml
Чтобы создать свой дэшборд, необходимо скопировать файл примера под новым именем, а затем отредактировать в любом текстовом редакторе. Имя файла конфигурации дэшборда – произвольное, расширение файла – XML. Файлы конфигурации дэшбордов могут располагаться в следующих директориях:
C:\SCADA\ScadaWeb\storage\allusers\Dashboard\ - дэшборды, доступные всем пользователям;
C:\SCADA\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="CurData" cnlNums="101,102,103,104,105,106,107,115" viewIDs="2,2,2,2,2,2,2,2" />
<Widget type="CustomUrl" url="https://www.youtube.com/embed/xs8Tqkr-Gn4" />
</Widgets>
</DashboardConfig>
Секция DashboardOptions содержит общие параметры дэшборда:
Name - наименование дэшборда,
ColumnCount - количество колонок от 1 до 4 (на небольших экранах мобильных устройств виджеты в любом случае располагаются в одной колонке),
AspectRatio - отношение ширины виджетов к высоте.
Секция Widgets содержит список виджетов, которые отображаются на дэшборде. Количество виджетов произвольное. Однако слишком большое количество виджетов на одном дэшборде может снизить быстродействие веб-приложения.
Поддерживаются виджеты следующих типов:
Chart - график заданных входных каналов,
CurData - таблица текущих значений заданных входных каналов,
CustomUrl - произвольная веб-страница.
Для виджетов типа Chart и CurData нужно не только указать номера входных каналов, используемых виджетом, но также указать идентификаторы представлений, которые содержат эти входные каналы. Идентификаторы представлений необходимы для контроля прав доступа пользователя.
Плагин Гибкий отчёт позволяет генерировать отчёты в соответствии с пользовательской конфигурацией. С помощью данного плагина Вы можете построить практически любой необходимый отчёт. Пользователю достаточно выбрать период и нажать на кнопку генерации отчёта. Администратор предварительно создаёт конфигурации отчёта, которые определяют набор секций различной формы, из которых состоит отчёт, и связывают столбцы и строки отчёта с данными системы.
Сначала необходимо выполнить общую последовательность установки плагина, которая описана по ссылке. А затем выполнить несколько дополнительных действий:
Отчёты состоят из набора секций, которые выводятся в выходной документ одна за другой. Каждая секция имеет свой тип, параметры и привязку к данным. Кроме того, отчёт имеет общие параметры, влияющие на все секции. Один и тот же отчёт может быть сгенерирован в различных форматах. В настоящий момент поддерживаются форматы Excel, PDF и HTML. При этом внешний вид одного и того же отчёта, сгенерированного в разных форматах, может незначительно отличаться.
Файл конфигурации задаёт форматирование отчёта и определяет привязку данных отчёта к входным каналам. Для каждой отчётной формы создаётся отдельный файл конфигурации. Файл конфигурации имеет формат XML. Он должен быть сохранён в директории интерфейса, по умолчанию C:\SCADA\Interface, или в её поддиректории.
В дистрибутиве плагина содержится пример файла конфигурации отчёта 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 - ссылка на представление, которое содержит детализированную информацию по объекту.
Чтобы карта появилась в дереве представлений, её нужно прописать в таблице Интерфейс с помощью программы Администратор. Необходимо указать путь к файлу карты относительно директории интерфейса и ввести заголовок - текст узла дерева (см. рис.).
Затем следует передать базу конфигурации Серверу, щёлкнув по кнопке . Чтобы изменения отобразились в веб-приложении Вебстанция, необходимо выполнить выход и повторный вход в веб-приложение. Результат:
На рынке представлено огромное количество устройств, работающих в самых разных областях автоматизации, которые поддерживают обмен данными по протоколу Modbus. Modbus - это открытый коммуникационный протокол, использующий клиент-серверную модель, основанную на транзакциях, состоящих из запроса и ответа. Реализация поддержки протокола Modbus комплексом Rapid SCADA на порядок расширяет перечень устройств, с которыми может работать комплекс. Поддерживаются следующие режимы передачи данных: RTU, ASCII, TCP.
Общая последовательность настройки:
Далее приводится пошаговое описание подключения нового Modbus устройства. Чтобы процесс добавления устройства полностью совпадал с текстом статьи, необходимо установить Rapid SCADA с конфигурацией по умолчанию.
Редактирование базы конфигурации выполняется с помощью программы Администратор.
Запустите Администратор. Откройте таблицу Объекты и добавьте новую строку для объекта 2 "Тестовый объект" (рис. 1). Затем откройте таблицу Линии связи и добавьте линию 11 "Тестовая линия" (рис. 2). После чего откройте таблицу КП и добавьте КП 101 "Тестовый КП" (рис. 3).
Для КП необходимо заполнить следующие поля (рис. 3):
Тип КП: | Modbus |
Адрес: | Modbus адрес Вашего устройства, например, 1 |
Позывной: | IP-адрес, если устройство подключено по сети Ethernet. В противном случае, пустой |
Линия связи: | "Тестовая линия", которая была только что создана |
Рис. 1. Добавление объекта
Рис. 2. Добавление линии связи
Рис. 3. Добавление КП
После того, как база конфигурации отредактирована, её необходимо передать Серверу, щёлкнув по кнопке . Чтобы изменения вступили в силу, перезапустите службу Сервера с помощью кнопки
.
Запустите Коммуникатор (точнее его графическую оболочку). При этом служба Сервера должна быть запущена.
Щёлкните правой кнопкой мыши по элементу дерева Линии связи и выберите в контекстном меню пункт Импорт линий связи и КП (рис. 4). В появившемся окне отметьте галочкой созданную линию связи и КП, после чего нажмите кнопку Импорт (рис. 5). Линия связи и КП появятся в Коммуникаторе.
Рис. 4. Контекстное меню линий связи
Рис. 5. Выбор импортируемых КП
Щёлкните в дереве по элементу Линия 11 "Тестовая линия" и на странице Параметры линии связи выберите и настройте канал связи, например, Последовательный порт. Поставьте галочку Команды ТУ разрешены, если необходимо управлять устройством (рис. 6).
Рис. 6. Параметры линии связи
Типичные параметры последовательного порта в зависимости от типа протокола Modbus содержатся в следующей таблице.
Modbus RTU | Modbus ASCII | Modbus TCP |
---|---|---|
8 битов данных, с проверкой чётности (even – чёт.), 1 стоп-бит |
7 битов данных, с проверкой чётности (even – чёт.), 1 стоп-бит |
- |
8 битов данных, без проверки чётности, 2 стоп-бита |
7 битов данных, без проверки чётности, 2 стоп-бита |
- |
В режимах RTU и ASCII необходимо установить одинаковую скорость передачи данных в Коммуникаторе и на устройствах. На одной линии связи все устройства должны работать по протоколу Modbus одного типа и с одной скоростью.
Далее перейдите на страницу Опрос КП и выберите в таблице "Тестовый КП" (рис. 7). Если не указывать время или период опроса КП, то опрос устройств производится циклически. Команды отправляются сразу после завершения очередного опроса.
Рис. 7. Таблица опроса КП
Нажмите кнопку , чтобы открыть форму настройки дополнительных свойств КП (рис. 8). На форме свойств КП необходимо выбрать тип протокола Modbus, который должен быть указан в документации на устройство.
Рис. 8. Свойства КП
Нажмите кнопку , чтобы выбрать существующий шаблон устройства, или кнопку
, чтобы создать новый шаблон. При нажатии на кнопку создания
или на кнопку редактирования шаблона
вызывается Редактор шаблонов устройств (рис. 9). В данной статье используется существующий шаблон KpModbus_Adam6015.xml.
Рис. 9. Редактор шаблонов устройств
Шаблон устройства отражает структуру пакетов данных протокола Modbus. Данные, запрашиваемые от устройства, объединены в группы элементов (тегов). Группа элементов описывается наименованием, таблицей данных, адресом и количеством элементов. Для команд, если они поддерживаются устройством, необходимо задать наименование, таблицу данных, адрес и номер команды КП (от 1 и далее по порядку).
Наименования элементов и команд могут быть произвольными. Таблицы данных и адреса элементов должны содержаться в документации на подключаемое устройство. В зависимости от производителя адресация элементов может начинаться с 0 или с 1, указываться в 10-чной или 16-ричной системе. По умолчанию в шаблоне выбрана адресация с 1 в 10-чной системе. Чтобы переключить адресацию шаблона, нажмите на кнопку . Откроется диалоговое окно настроек шаблона (рис. 10).
Рис. 10. Настройки шаблона
Для сохранения настроек Коммуникатора нажмите кнопку . Теперь можно запустить службу Коммуникатора с помощью кнопки
и проверить связь с устройством.
Щёлкните элемент дерева КП 101 "Тестовый КП", чтобы проконтролировать состояние КП и наличие данных (рис. 11). Данные появятся не сразу после запуска, а после завершения первого опроса КП.
Рис. 11. Данные КП
При отсутствии связи с устройством используйте журнал линии связи для анализа причины проблемы. Чтобы открыть журнал, щёлкните по элементу дерева Статистика линии связи и перейдите на страницу Журнал линии связи. С помощью онлайн инструмента Online Modbus Parser можно получить расшифровку пакетов данных, скопировав их на веб-форму из журнала линии связи.
После того, как связь с устройством установлена, необходимо создать входные каналы и каналы управления в базе конфигурации. Для этого необходимо вновь открыть программу Администратор.
Сервис автоматического создания каналов поможет сэкономить время. Выберите в главном меню программы Сервис > Создание каналов.
На открывшейся форме (рис. 12) выберите в выпадающем списке "Тестовая линия", затем поставьте галочку напротив "Тестового КП", а также установите "Тестовый объект" в столбце Объект. Задайте параметры нумерации каналов, если хотите, чтобы создаваемые каналы имели удобные для работы номера. Нажмите сначала кнопку Рассчитать номера каналов, затем кнопку Создать.
Рис. 12. Создание каналов
Каналы создаются автоматически на основе шаблона устройства, который был создан и назначен КП в предыдущем разделе статьи. Посмотреть созданные каналы можно, щёлкнув в Администраторе по элементу дерева Входные каналы > Тестовый КП или Каналы управления > Тестовый КП. Рекомендуется вручную заполнить поля Величина и Размерность для входных каналов и поле Значения команды для каналов управления. Однако в случае первого опыта это делать необязательно.
Полезно понимать, что входные каналы привязываются к тегам КП с помощью поля Сигнал. Каналы управления привязываются к командам КП в соответствии с полем Номер команды.
После того, как редактирование базы конфигурации завершено, следует нажать кнопку для передачи изменений Серверу, перезапустить Сервер и Коммуникатор с помощью кнопок
и
.
Откройте страницу Данные КП в Коммуникаторе и убедитесь, что созданные входные каналы связаны с тегами КП – столбец Канал должен содержать номера созданных входных каналов (рис. 13).
Рис. 13. Данные КП с привязкой каналов
В результате проделанных действий данные должны собираться с устройства и сохраняться в архив. Осталось настроить пользовательский интерфейс оператора.
Рассмотрим создание табличного представления для приложения Вебстанция. Для этого нам понадобится программа Редактор таблиц (если необходимо отобразить данные на мнемосхеме, то вместо редактора таблиц используйте Редактор схем).
Откройте Редактор таблиц и заполните табличное представление, как показано на рис. 14. Добавить канал в таблицу (из левой части окна в правую) можно по кнопке , двойному щелчку на строке канала или по клавише Enter.
Сохраните созданное табличное представление в файл с именем TestTable.tbl в папку C:\SCADA\Interface\Test. Обратите внимание, что имена папок и файлов представлений должны содержать только латинские символы.
Рис. 14. Редактор таблиц
Далее, чтобы табличное представление появилось в веб-приложении, его необходимо прописать в базе конфигурации в таблице Интерфейс с помощью программы Администратор, как показано на рис. 15.
Рис. 15. Добавление представления в таблицу Интерфейс
Чтобы сделанные изменения вступили в силу, необходимо передать базу Серверу с помощью кнопки и перезапустить службу Сервера кнопкой
.
Теперь запустите браузер и введите адрес http://localhost/scada/. На форме входа в систему используйте логин admin и пароль 12345 (рис. 16). Если настройка выполнена правильно, то после входа в систему Вам будет доступна таблица с получаемыми от устройства данными (рис. 17).
Рис. 16. Вход в систему
Рис. 17. Приложение Вебстанция
Каждый элемент 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, преимущественно, посвящена данная статья.
Общая последовательность настройки:
Детали выполнения пунктов 2, 4 и 5 содержатся в разделе Настройка комплекса. Рекомендуется ознакомиться с примером, который содержится в демо-конфигурации Rapid SCADA, устанавливаемой по умолчанию. Примером устройства является КП 21 "OPC Демо", данные которого отображаются табличным представлением OpcDemo.tbl. Для полноценной работы примера нужно скачать и установить программу MatrikonOPC Explorer, которая имитирует работу 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. Свойства службы
Служба Агент устанавливается на удалённый сервер и обеспечивает обмен конфигурациями между сервером и рабочей станцией инженера, на которой выполняется работа над проектом SCADA-системы.
Агент работает на операционных системах Windows и Linux. Агент не имеет пользовательского интерфейса и работает как служба Windows или как демон на Linux. Пошаговая инструкия по установке Агента находится в архиве его дистрибутива.
Для взаимодейтвия с Агентом необходима программа Администратор версии не ниже 5.1.0.0. Администратор устанавливается в составе Rapid SCADA.
Исходные данные: имеется удалённый сервер с установленной Rapid SCADA и Агентом, а также отдельная рабочая станция инженера, с которой осуществляются описанные в статье действия.
Рекомендуется хранить конфигурации (проекты) Rapid SCADA на отдельном файловом сервере, который резервируется, либо использовать систему контроля версий типа Git. Чтобы передать необходимую для работы конфигурацию на производственный сервер, отредактируйте её на рабочей станции и используйте приложение Администратор для передачи.
Возможна ситуация, когда конфигурация Rapid SCADA хранится только на удалённом сервере. В этом случае, чтобы отредактировать конфигурацию, необходимо сначала её скачать на рабочую станцию. Предварительно откройте в Администраторе файл базы конфигурации в формате SDF, в который будет импортирована конфигурация для редактирования. После этого выберите пункт меню Удалённый сервер > Скачать конфигурацию..., откроется форма, показанная на рисунке ниже.
Для сценария с последующим редактированием конфигурации необходимо выбрать параметры скачивания именно так, как показано на рисунке. После успешного скачивания откроется форма импорта конфигурации из формата DAT в формат SDF. Дело в том, что рабочая копия конфигурации на сервере хранится в специализированном формате DAT, а для редактирования используется формат SDF. После успешного выполнения импорта редактируйте базу конфигурации Rapid SCADA и конфигурацию всех приложений на рабочей станции.
При первом использовании функционала скачивания и передачи конфигурации необходимо создать подключение к серверу, как показано на следующем рисунке. Проверка имени и пароля пользователя выполняется Агентом по базе конфигурации, работающей на удалённом сервере. Указанный пользователь должен иметь роль Администратор. Поля Экземпляр системы и Серетный ключ должны совпадать с соответствующими параметрами настройки Агента.
После того, как необходимое редактирование конфигурации завершено, передайте её обратно на удалённый сервер. Для этого выберите пункт меню Удалённый сервер > Передать конфигурацию..., откроется следующая форма:
Сначала отметьте корневой узел дерева, чтобы выбрать все файлы конфигурации для передачи, а затем раскройте каждый узел дерева, чтобы проверить и исключить из выбора посторонние файлы, если они присутствуют. После успешной передачи конфигурации Агент перезапустит службы Сервера и Коммуникатора на удалённом сервере, чтобы изменения вступили в силу. Обязательно проверьте работоспособность сервера после передачи конфигурации.
Данный сценарий возможен в ситауации, когда существует тестовый и производственный сервера или основной и резервный сервера. Рассмотрим перенос конфигурации с сервера 1 на сервер 2.
Откройте диалог скачивания конфигурации и выберите параметры скачивания, как показано на рисунке. Отличия заключаются в том, что конфигурация сохраняется в архив, специфичные для сервера файлы не скачиваются, и импорт базы конфигурации не вызывается. После завершения скачивания можно открыть сохранённый файл архива и проверить, какие файлы конфигурации в него вошли.
Затем вызовите диалог передачи конфигурации и создайте подключение к серверу 2. Выберите в качестве источника сохранённый ранее архив конфигурации и снимите галочку очистки специфичных файлов сервера. После передачи конфигурации проверьте работоспособность сервера 2.
Проверить состояние сервера поможет соответствующая форма, которая вызывается из меню Удалённый сервер > Статус сервера... На форме необходимо выбрать подключение к серверу и нажать кнопку Соединиться. В случае, если состояние службы Сервера или Коммуникатора - ошибка, необходимо подключиться к файловой системе удалённого сервера и проанализировать журналы работы приложений Rapid SCADA. Кроме того, данная форма позволяет удалённо перезапустить службы Сервера и Коммуникатора.