Для чего предназначена SAMUTAG
SCADA SAMUTAG — объектно-ориентированная клиент-серверная отказоустойчивая SCADA-система. За счёт продуманного интерфейса обеспечивает быструю разработку сложных и высоконагруженных систем.
Разработка и настройка проекта выполняются в Studio. После загрузки проекта сервер приложений Runtime работает автономно: для выполнения алгоритмов и обмена с оборудованием подключение к Studio не требуется.
В одном проекте может работать несколько независимых пар «сервер приложений — резервный сервер». Каждая пара обслуживает назначенную ей часть проекта: модели оборудования, экземпляры и серверы ввода-вывода. Это позволяет распределять обработку данных между несколькими серверами, сохраняя резервирование для каждого участка системы. Настройка описана в разделе «Резервные пары».
Сервер истории Historian после применения конфигурации самостоятельно принимает и хранит данные.
Автоматизированное рабочее место оператора (АРМ) использует службу HMI. После загрузки видеокадров HMI отображает их в браузере оператора и взаимодействует с Runtime и Historian.
Studio вновь потребуется для изменения настроек и загрузки обновлённого проекта. Остановка Studio не прерывает работу настроенных компонентов.
Четыре компонента системы
| Компонент | Основная задача | Что требуется для работы |
|---|---|---|
| Studio | Создание и сопровождение проекта: структуры, тэгов, скриптов, графики и конфигураций узлов. | Отдельная база данных PostgreSQL и браузер разработчика. |
| Runtime | Обмен с источниками данных, выполнение серверных скриптов, расчёт состояний и аварий, передача данных в историю. | Конфигурация службы и загруженный исполняемый проект. |
| HMI, или АРМ | Отображение операторских экранов, получение значений от Runtime через службу HMI и обработка разрешённых действий оператора. | Загруженные видеокадры и связь с узлами проекта. |
| Historian | Хранение значений, переходов аварий и событий; выдача архивных данных. | Отдельная база данных PostgreSQL, конфигурация истории и место для архивов. |
Studio и Historian используют отдельные базы PostgreSQL. Runtime и HMI работают без подключения к базе Studio.
- StudioРазработка и загрузка проекта на узлы
- RuntimeОбмен с оборудованием, значения и скрипты
- HistorianЗапись значений, аварий и событий
- HMI / АРМЭкраны оператора: текущие данные от Runtime, история от Historian
Как устроен проект
Шаблон описывает тип оборудования. Например, шаблон насоса содержит тэги состояния, скрипт контроля и несколько графических представлений.
Экземпляр представляет конкретную единицу оборудования, созданную по шаблону: например, насос N1. У каждого экземпляра собственные значения тэгов, состояния скриптов и привязки к источникам данных.
Наследование позволяет создать шаблон на основе существующего. Производный шаблон получает тэги, скрипты и символы базового шаблона; допустимые отличия настраиваются в производном.
Композиция описывает состав объекта. Например, шаблон насосной группы включает насосы N1, N2 и N3. Наследование определяет происхождение шаблона, а композиция — входящие в него объекты; для этих отношений предусмотрены отдельные деревья.
Модель объединяет экземпляры по технологическому или организационному признаку, например «ЦТП → Отопление → Насосная группа». Модели образуют иерархию и могут иметь собственные тэги, скрипты и символы.
Узел описывает размещение службы Runtime, Historian или HMI на компьютере. На одной физической машине могут работать несколько узлов с разными портами, если для них достаточно вычислительных ресурсов.
Тэг представляет параметр объекта: измерение, состояние, команду или текст. У тэга есть тип, значение и настройки обработки, например связь с контроллером, условия аварий и запись в историю.
Символ — графическое представление объекта в векторном формате SVG. Его элементы могут отображать значения тэгов, изменять оформление по условиям и обрабатывать действия оператора.
Видеокадр — операторский экран, составленный из символов и элементов интерфейса: трендов, журналов, навигации и других компонентов.
Откуда берётся значение на экране
- В карте I/O-сервера описана переменная контроллера: адрес Modbus или NodeId OPC UA.
- Тэг экземпляра связан с этой переменной. Runtime получает значение и качество, применяет настроенное преобразование и выполняет скрипты.
- HMI запрашивает необходимые данные у Runtime. Браузер получает их через HMI и обновляет анимации открытой графики.
- Если для тэга включена история, Runtime передаёт записи в Historian. Исторический тренд читает уже сохранённые данные.
Если значение на экране неверно, проверьте эту цепочку последовательно. Сравните значение, качество и время получения данных. При потере связи на экране может сохраняться последнее значение; для обозначения такого состояния настройте индикацию плохого качества.
Первый проект: последовательность действий
- Установите Studio и службы. Подготовьте отдельные базы Studio и Historian, проверьте соединения.
- Войдите в Studio, создайте проект, задайте понятные имя и описание.
- Настройте адреса узлов. Начальные адреса предназначены для локального размещения; для разных машин укажите реальные IP или DNS-имена.
- Создайте небольшой шаблон, например Sensor, и числовой тэг Temperature с описанием и единицей °C. Подключите один известный сигнал I/O.
- Создайте экземпляр, включите его в модель и назначьте корневую модель Runtime-узлу.
- Создайте символ с текстом и анимацией вывода Temperature. Добавьте этот символ на видеокадр, назначьте кадр HMI и выберите его главным.
- Включите историю тэга и настройте Historian. Сначала примените состав истории, затем загрузите проект на узлы Runtime и HMI.
- Сравните показание с контроллером. Проверьте изменение значения, потерю связи, восстановление качества и появление данных на историческом тренде.
Сначала проверьте полный путь одного сигнала: от контроллера через Runtime до экрана АРМ и записи в Historian. Затем создайте остальные объекты из подготовленных шаблонов.
Сохранение, загрузка и обновление — разные операции
| Действие | Что изменяется |
|---|---|
| Сохранить в редакторе | Данные проекта в Studio. Работающий узел продолжает использовать ранее загруженную версию проекта. |
| Загрузить проект на узел | Исполняемая конфигурация Runtime или набор экранов HMI. Программные файлы службы этим не обновляются. |
| Установить новый дистрибутив | Версия программного компонента. После обновления может потребоваться новая загрузка проекта. |
Звёздочка у узла указывает на неприменённые изменения проекта. Перед загрузкой откройте «Показать различия» и проверьте состав изменений.