Дерево проекта, устройства, настройка связи

Редактирование дерева проекта в OrangeScada выполняется через пункт панели разработки "Дерево проекта"

Настройка дерева проекта

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

Для всех объектов в дереве доступна функция drug&drop: при помощи мыши можно перетягивать объекты из одного раздела в другой. Кроме того, в настройках объектов есть опция "Раздел", позволяющая выбрать родительский элемент при помощи выпадающего списка. Если есть необходимость скрыть объект, чтобы он не отображался в дереве проекта, в качестве раздела нужно выбрать "Нет". В этом случае доступ к объекту останется только в табличном виде в соответствующем пункте панели разработчика. При попытке удаления родительского объекта система выдаст запрос на автоматическое удаление дочерних объектов. Если удаление дочерних элементов не подтвердить, то после удаления родителя они переместятся на его место в иерархии дерева.

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

Для добавления устройства вызовем правой кнопкой всплывающее меню

Добавление устройств

Пункты подменю добавления объектов

Группа
Для логической группировки объектов можно создать одну или несколько групп
Коммуникационный узел
Используется для шлюзов, перенаправляющих запросы на несколько устройств
Устройство
Непосредственно устройство в сети, может быть добавлено как отдельно, так и в составе коммуникационного узла. Сетевые переменные (теги) добавляются только в устройство
Мнемосхема
Картинка визуализации процесса с возможностью изменения ее элементов в зависимости от состояния сетевых переменных в устройствах. Мнемосхема полностью доступна для редактирования при помощи встроенного графического редактора
Авария
Объект, отвечающий за оповещение об аварийном событии. В свойствах аварии настраиваются условия срабатывания и устранения, задержка срабатывания, правила оповещения пользователей (смс, почта, телеграм), критичность
Тренд
Объект, отвечающий за периодическую регистрацию тега с последующей возможностью вывести накопленные данные в виде графиков и отчетов
Таблица тегов
Объект предназначен для упрощенного вывода значений тегов в табличной форме, когда нет необходимости в отрисовке полноценной мнемосхемы
Планировщик
Объект предназначен для периодической передачи значений (константы или результаты расчета формул) в определенный тег

Рассмотрим подробнее настройки коммуникационного узла и устройства.

Настройки коммуникационного узла

Параметры коммуникационного узла:

Название
Название коммуникационного узла
Режим настройки
Возможен выбор из списка Modbus TCP/IP|Virtual|OPC-DA|Driver. Значение определяет тип устройств с которыми работает шлюз. Список остальных параметров коммуникационного узла также зависит от режима настройки (см. ниже)
Период опроса, мс
Параметр определяет время цикла опроса всех устройств, которые обслуживает коммуникационный узел. Если фактическое время опроса оказывается меньше, то система ждет оставшееся время, иначе, новый цикл опроса запускается незамедлительно
Активно
Галка включает онлайн опрос устройства сервером

Рассмотрим, какие параметры коммуникационного узла возможны при разных режимах настройки:

Modbus TCP/IP:

IP
IP-адрес шлюза
Порт
Порт шлюза, через который происходит коммуникация со скадой
Modbus поверх TCP
Необходимо установить галку при работе шлюза в режиме Modbus over TCP
Многопоточное соединение
При активации этой галки сервер начинает опрашивать узлы параллельно. Если шлюз не делает дополнительную обработку для разнесения запросов во времени, то в сетях Modbus RTU многопоточный режим работать не будет

При выборе типа коммуникационного узла "Virtual" дополнительных настроек не появляется. В таком режиме можно создать группу вложенных в коммуникационный узел виртуальных устройств.

OPC-DA:

UID
Идентификатор, необходимый для того, чтобы утилита поддерживающая коммуникацию по протоколу OPC DA могла подключиться к серверу. Подробнее о работе с утилитой написано в Приложении С

Driver:

Драйвер
Выбор из списка драйверов, определенных в разделе драйверы
Узел из драйвера
Выбор из списка коммуникационных узлов, определяемых драйвером

Коммуникационный узел необходимо использовать в случаях, когда устройства нужно опрашивать последовательно (например, когда Вы используете преобразователь Modbus TCP - RTU). В остальных случаях их можно добавлять сразу в корень или объединять в логические группы. Рассмотрим четыре типа устройств, которые можно создать:

Modbus TCP/IP

Добавление Modbus TCP устройств
Название
Название устройства
IP
IP-адрес устройства
Порт
Порт для Modbus соединения, по умолчанию большинство устройств общаются с Modbus через 502 порт
Период опроса, мс
Параметр определяет время цикла опроса всех тегов устройства. Если фактическое время опроса оказывается меньше, то система ждет оставшееся время, иначе, новый цикл опроса запускается незамедлительно
Modbus поверх TCP
Необходимо установить галку при работе устройства в режиме Modbus over TCP (В TCP-фреймы упаковываются данные запроса Modbus RTU)
Время ответа, мс
Время, которое сервер ждет ответа на запрос. Если его не последовало, то устройство помечается статусом "Нет связи" и соответствующей иконкой
Задержка, мс
Время задержки между приемом ответа от устройства и отправкой нового запроса. Задается в том случае, если устройству необходима пауза между запросами. Параметр необходимо задавать, если наблюдается нестабильная работа сети устройств
ID устройства
Modbus адрес устройства 1..247 (Slave ID)
Адресация с
Выбор 0|1. 0 для устройств, адресация переменных в которых начинается с нуля (Base0), 1 для устройств, адресация переменных в которых начинается с единицы (Base1)
Повтор чтения при ошибке
Количество повторных запросов при ошибке или отсутствии ответа после которых устройство помечается статусом "Нет связи"
Активно
Галка включает онлайн опрос устройства сервером

Virtual

Добавление виртуальных устройств

Виртуальные устройства в активном режиме всегда находятся на связи. Их удобно использовать для тестирования работы мнемосхем, хранения данных и при необходимости различных вычислений и задания логики. Например, если необходимо вычислить среднее арифметическое из нескольких значений или собрать несколько дискретных статусов через логическое ИЛИ, а по каким-то причинам, в контроллере это сделать невозможно. Функции времени, которые можно реализовать в формулах позволяют выполнять какие-то действия по таймеру, например, выполнить инициализацию тегов через минуту после запуска сервера. Также, теги виртуальных устройств можно использовать, как триггеры запуска обмена данными: если по одному сигналу нужно изменить несколько переменных в одном или разных устройствах. Подробнее о возможностях связывания тегов и создания формул написано в статье настройка тегов

Название
Название устройства
Период опроса, мс
Параметр определяет время цикла опроса всех тегов устройства. Если фактическое время опроса оказывается меньше, то система ждет оставшееся время, иначе, новый цикл опроса запускается незамедлительно
Видимость
Везде | Пользователь | Сессия браузера | Сессия вкладки.
Везде - Значения тегов виртуального устройства едины для всех пользователей. Изменение значения тега приведет к его обновлению у всех пользователей.
Пользователь - У каждого пользователя свой набор значений тегов, изменение значений для одного пользователя не затрагивает изменение тега для другого. Режим удобен для хранения опций, применимых к пользователю индивидуально.
Сессия браузера - Значения тегов сохраняются до тех пор, пока открыта хотя бы одна вкладка с веб-приложением скады.
Сессия вкладки - Значения тегов сохраняются только в пределах одной вкладки браузера. Режимы "Сессия браузера" и "Сессия вкладки" предназначены для управления элементами интерфейса индивидуально так, чтобы пользователи не мешали друг другу (например, управление видимостью каких-то элементов при выполнении каких-либо действий пользователем)

OPC-DA

Добавление OPC устройств

Работа с ОРС-серверами осуществляется при помощи вспомогательного софта - утилиты OpcClient, работа с которой рассмотрена в Приложении C. При этом, утилита запускается на том же компьютере, где установлен необходимый для доступа OPC-сервер, но необязательно на том же компьютере, где работает OrangeScada. При установке на разных компьютерах, необходимо обеспечить удаленный доступ через порт, указанный в пункте OPC-DA Порт в основных настройках OrangeScada.

Название
Название устройства
Период опроса, мс
Параметр определяет время цикла опроса всех тегов устройства. Если фактическое время опроса оказывается меньше, то система ждет оставшееся время, иначе, новый цикл опроса запускается незамедлительно
UID
Идентификатор соединения. Должен совпадать с соответствующим параметром утилиты OpcClient
Сервер
Идентификатор соединения. Должен совпадать с соответствующим параметром утилиты OpcClient
Время ответа, мс
Время, которое сервер ждет ответа на запрос. Если его не последовало, то устройство помечается статусом "Нет связи" и соответствующей иконкой
Задержка, мс
Время задержки между приемом ответа от утилиты и отправкой нового запроса. Задается в том случае, если необходимо ограничить трафик обмена данными
Сервер
Выбор сервера ОРС. При отсутствии связи с утилитой параметр неактивен
Режим синхронизации
Синхронный|Асинхронный. В синхронном режиме OrangeScada последовательно отправляет запросы на обновление необходимых тегов утилите OpcClient, а та в свою очередь, переправляет запросы OPC-серверу и возвращает ответы. В асинхронном режиме OrangeScada отправляет запрос со списком тегов, необходимых к обновлению, утилита выполняет подписку этих тегов в OPC-сервере. При изменении значения тега, OPC-сервер сообщает об этом утилите, а та переправляет информацию на сервер. Запросы между OrangeScada и утилитой отправляются при необходимости в зашифрованном виде.
Активно
Галка включает обмен данными между сервером и утилитой

Driver

Добавление устройств универсального драйвера

Тип устройств Driver позволяет добавить устройство, драйвер которого не входит в "коробочную" версию OrangeScada и может быть установлен из библиотеки или написан самостоятельно. Инструкции по настройке драйвера можно найти в статье Настройка драйверов, описание API-функций для реализации собственного драйвера в Приложении F.

Название
Название устройства
Период опроса, мс
Параметр определяет время цикла опроса всех тегов устройства. Если фактическое время опроса оказывается меньше, то система ждет оставшееся время, иначе, новый цикл опроса запускается незамедлительно
Драйвер
Выбор из списка драйверов, определенных ранее в разделе разработки "Драйверы"
Узел из драйвера
Выбор из списка коммуникационных узлов драйвера. Пункт отсутствует, если устройство добавляется внутрь коммуникационного узла.
Устройство из драйвера
Выбор из списка устройств драйвера
Время ответа, мс
Время, которое сервер ждет ответа на запрос. Если его не последовало, то устройство помечается статусом "Нет связи" и соответствующей иконкой
Режим синхронизации
Синхронный|Асинхронный. В синхронном режиме OrangeScada последовательно отправляет запросы на обновление необходимых тегов в драйвере, а тот в свою очередь, переправляет запросы оконечному устройству и возвращает ответы. В асинхронном режиме OrangeScada отправляет запрос-подписку со списком тегов, необходимых к обновлению. При изменении значения тега, драйвер уведомляет сервер о произошедшем изменении.

Контекстное меню

Контекстное меню вызывается нажатием правой кнопки на устройстве

Контекстное меню устройств

Оно позволяет добавить в устройство вложенные объекты, выполнить копирование/вырезание/вставку устройств, переход в редактор тегов, вызов диагностического окна (в котором можно проследить прохождение пакетов запросов и ответов), удаление и редактирование основных свойств устройства. Отдельный блок контекстного меню позволяет перемещать текущее устройство относительно других в списке.

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

Копирование/вставка устройства

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

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

Групповые операции с устройствами

При выборе устройства, в правой части экрана появляется окно статуса:

Окно статуса устройства

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

В закладке лог можно увидеть зарегистрированные события установки и разрыва связи с устройством

В следующей статье мы рассмотрим редактирование списка тегов устройства.