English version
Українська версія?
Статус: | Публикация |
Версия: | 0.9.5 |
Содержание: | Cодержит описание системы OpenSCADA, её функций, назначения и применения. |
Данный документ является описанием 'open source' проекта системы именуемой 'OpenSCADA'. OpenSCADA представляет собой открытую SCADA систему построенную по принципам модульности, многоплатформенности и масштабируемости.
В качестве политики разработки данной системы выбраны 'open source' принципы. Выбор данной политики определяется необходимостью создания открытой, надёжной и общедоступной SCADA системы. Данная политика позволяет привлечь к разработке, тестированию, развитию, распространению и использованию продукта значительное количество разработчиков, энтузиастов и других заинтересованных лиц с минимизацией и распределением финансовых затрат.
Система OpenSCADA предназначена для сбора, архивирования, визуализации информации, выдачи управляющих воздействий, а также других родственных операций характерных для полнофункциональной SCADA системы. Благодаря высокому уровню абстракции и модульности, система может использоваться во многих смежных областях.
Система OpenSCADA может применяться:
В качестве базовой (хостовой) операционной системы, для разработки и использования, выбрана ОС Linux, которая является оптимальным компромиссом в вопросах:
Поскольку проект разрабатывается и реализуется по принципам многоплатформенности, то не составляет проблемы портировать его на другие ОС, что в дальнейшем и планируется.
Сердцем системы является модульное ядро. И в зависимости от того какие модули подключены система может выступать как в роли различных серверов, так и в роли разнообразных клиентов, а также совмещать эти функции в одной программе. Это позволяет реализовывать клиент-серверную архитектуру SCADA системы на базе одних и тех же компонентов/модулей, экономя при этом: машинную память, дисковое пространство, а также ценное время программистов.
Серверные конфигурации системы предназначены для сбора, обработки, выдачи воздействий, архивирования, протоколирования информации от различных источников, а также предоставления этой информации клиентам (UI, GUI, TUI ...). Модульная архитектура позволяет расширять функциональность сервера без его перегрузки.
Клиентские конфигурации могут строиться на основе различных графических библиотек (GUI/TUI ToolKits), как используя ядро программы и его модули (путём добавления к нему UI-user interface модуля), так и в качестве самостоятельного приложения, подключая ядро OpenSCADA как библиотеку.
Возможность гибкой конфигурации системы позволяет строить решения под конкретные требования надёжности, функциональности и размеры системы.
Для придания гибкости и высокой степени масштабируемости система OpenSCADA построена по модульному принципу. Тесная интеграция модулей с ядром системы накладывает большую ответственность на процесс написания модулей и вводит элемент нестабильности в систему, однако благодаря возможности создания распределённых конфигураций эта опасность сглаживается с сохранением высокой степени гибкости.
Модули системы OpenSCADA хранятся в динамических библиотеках. Каждая динамическая библиотека может содержать множество модулей различного типа. Наполнение динамических библиотек модулями определяется функциональной связностью самих модулей. Динамические библиотеки допускают горячую замену, что позволяет, в процессе функционирования, производить обновление отдельных частей системы. Метод хранения кода модулей в динамических библиотеках является основным для системы OpenSCADA, поскольку поддерживается практически всеми современными операционными системами(ОС). Однако это не исключает возможности разработки других методов хранения кода модулей.
На основе модулей реализованы следующие функциональные части системы OpenSCADA:
Управление модулями осуществляется подсистемой «Управление модулями». Функциями подсистемы является: подключение, отключение, обновление модулей, а также другие операции связанные с модулями и библиотеками модулей.
Архитектурно система OpenSCADA делится на подсистемы. Подсистемы могут быть двух типов: обычные и модульные. Модульные подсистемы обладают свойством расширения посредством модулей. Каждая модульная подсистема может содержать множество модульных объектов. Например модульная подсистема «Базы данных» содержит модульные объекты типов баз данных. Модульный объект является корнем внутри модуля.
Всего система OpenSCADA содержит 9 подсистем из них 7 подсистем являются модульными. 9 подсистем системы OpenSCADA являются базовыми и присутствуют в любой конфигурации. К списку 9 подсистем могут добавляться новые подсистемы посредством модулей. Подсистемы системы OpenSCADA:
Для обеспечения поддержки источников динамических данных, будь то PLC-контроллеры, платы УСО, виртуальные источники и т.д., предназначена подсистема «Сбор данных». В функции этой подсистемы входит предоставление полученных данных в структурированном виде и обеспечение управления этими данными, например модификация данных.
Подсистема «Сбор данных» является модульной и, как следствие, содержит модульные объекты типов источников динамических данных. Например, на октябрь 2007г, система OpenSCADA поддерживает следующие типы источников данных:
Каждый тип источника выполнен в виде отдельного модуля, который может быть подключен/отключен. Каждый тип источника может содержать отдельные источники (контроллеры).
Отдельно взятый контроллер может содержать параметры, определённых модулем, типов. Например параметры аналогового типа, основной информацией которую они предоставляет является значение целого или вещественного типа. Структурно, параметр представляет собой список атрибутов, которые и содержат данные. Атрибуты могут быть четырёх базовых типов: символьная строка(текст), целое, вещественное и логический тип.
Структуры контроллеров, параметров и их типов содержатся в подсистеме 'Сбор данных', а объекты модулей выполняют их заполнение в соответствии с собственной спецификой.
Источник динамических данных может быть удалённым, т.е. быть подключен на удалённой системе OpenSCADA. Для связи с такими источниками данных используется транспортный тип контроллеров (Transporter). Функцией данного типа источника данных является отражение источников данных удалённой OpenSCADA станции на локальную станцию.
Для хранения данных системы повсеместно используются базы данных (БД). В целях систематизации доступа и управления базами данных в системе OpenSCADA предусмотрена подсистема 'Базы данных'. Для обеспечения поддержки различных БД/СУБД подсистема выполнена модульной.
В роли модульных объектов, содержащихся в подсистеме, выступает тип БД/СУБД, т.е. модуль подсистемы «Базы данных», практически, содержит реализацию доступа к определённому типу БД. Например модули: DBF, MySQL, SQLite.
Объект типа БД/СУБД, в свою очередь, содержит список объектов отдельных БД данного типа. А объект БД содержит список объектов таблиц, которые и содержат данные в табличной форме.
Практически все данные системы OpenSCADA хранятся в той или иной БД. Инструментарий системы позволяет легко переносить данные из одного типа БД на другой, и как следствие оптимально подбирать тип БД под конкретную область применения системы OpenSCADA. Перенос информации с одной БД в другую может быть выполнен двумя способами. Первый - это изменение адреса рабочей БД и сохранение всей системы на неё, второй - это прямое копирование информации между БД. Кроме копирования поддерживается и функция прямого редактирования содержимого таблиц БД.
Для организации централизованного доступа распределённой системы к единой БД предусматриваются два способа. Первый это использование сетевых СУБД, например MySQL. Второй способ это использование транспортного типа БД на локальных системах, для доступа к одной центральной БД (Планируется.). Функцией транспортной БД является пересылка запросов к БД на удалённую OpenSCADA систему.
Данные могут храниться, также, в конфигурационном файле системы. Реализован механизм полного отражения структуры БД на структуру конфигурационного файла. Т.е. стандартную конфигурацию можно размещать в конфигурационном файле. Суть такого механизма в том, что данные системы, по умолчанию, например при старте без БД, можно описывать в конфигурационном файле. В дальнейшем, эти данные могут переопределяться в БД. Кроме этого, для случаев невозможности запуска какой либо БД вообще, можно все данные хранить в конфигурационном файле.
Для доступа к базам данных используется механизм регистрации БД. Зарегистрированные в системе БД доступны всем подсистемам системы OpenSCADA и могут использоваться в их работе. Благодаря этому механизму можно обеспечить распределёность хранения данных. Например, различные библиотеки могут храниться и распространяться независимо, а подключение библиотеки будет заключаться в простой регистрации нужной БД.
В дальнейшем, планируется реализация дублирования БД путём связывания зарегистрированных БД. Этот механизм позволит значительно повысить надёжность системы OpenSCADA в целом путём резервирования механизма хранения данных. (Планируется.)
Любая SCADA система предоставляет возможность архивирования собранных данных, т.е. формирование истории изменения (динамики) процессов. Архивы, условно, можно разделить на два типа: архивы сообщений и архивы значений.
Особенностью архивов сообщений является то, что архивируются, так называемые, события. Характерным признаком события является время возникновения этого события. Архивы сообщений, обычно, используются для архивирования сообщений в системе, т.е. ведение логов и протоколов. В зависимости от источника, сообщения могут классифицироваться по различным критериям. Например, это могут быть протоколы аварийных ситуаций, протоколы действий операторов, протоколы сбоев связи и др.
Особенностью архивов значений является их периодичность, определяемая промежутком времени между двумя смежными значениями. Архивы значений применяются для архивирования истории непрерывных процессов. Поскольку процесс непрерывный, то и архивировать его можно только путём введения понятия квантования опроса значений, поскольку иначе мы получаем архивы бесконечных размеров, ввиду непрерывности самой природы процесса. Кроме этого, практически, мы можем получать значения с периодом ограниченным самими источниками данных. Например, довольно качественные источники данных, в промышленности, редко позволяют получать данные с частотой более 1 кГц. И это без учёта самих датчиков имеющих ещё менее качественные характеристики.
Для решения задач архивирования потоков данных в системе OpenSCADA предусмотрена подсистема 'Архивы'. Подсистема 'Архивы' позволяет вести как архивы сообщений, так и архивы значений. Подсистема 'Архивы' является модульной. Модульным объектом, содержащимся в подсистеме 'Архивы', выступает тип архиватора. Тип архиватора определяет способ хранения данных, т.е. хранилище (файловая система, СУБД, сеть и т.д.). Каждый модуль подсистемы 'Архивы' может реализовывать как архивирование сообщений, так и архивирование значений. Подсистема 'Архивы' может содержать множество архивов, обслуживаемых различными модулями подсистемы.
Сообщение в системе OpenSCADA характеризуется: датой, уровнем важности, категорией и текстом сообщения. Дата сообщения указывает на время создания сообщения. Уровень важности указывает на степень важности сообщения. Категория определяет адрес или условный идентификатор источника сообщения. Обычно, категория содержит полный путь к источнику сообщения в системе. Текст сообщения, собственно, и несёт смысловую нагрузку сообщения.
В процессе архивирования сообщения пропускаются через фильтр. Фильтр работает по уровню важности и категории сообщения. Уровень сообщения в фильтре указывает, что нужно пропускать сообщения с указанным или более высоким уровнем важности. Для фильтрования по категории применяются шаблоны, которые определяют какие сообщения пропускать. Каждый архиватор содержит собственные настройки фильтра. Следовательно можно легко создавать различные специализированные архиваторы для архива сообщений. Например архиваторы сообщений можно специализировать на:
Архив значений в системе OpenSCADA выступает как независимый компонент, который включает буфер обрабатываемый архиваторами. Основным параметром архива значения является источник данных. В роли источника данных могут выступать атрибуты параметров системы OpenSCADA, а также другие внешние источники данных (пассивный режим). Другими источниками данных могут быть: сетевые архиваторы удалённых OpenSCADA систем, среда программирования системы OpenSCADA и др.
Ключевым компонентом архивирования значений непрерывных процессов является буфер значений. Буфер значений предназначен для промежуточного хранения массива значений, полученных с определённой периодичностью (квантом времени). Буфер значений используется как для непосредственного хранения больших массивов значений в архивах значений, перед непосредственным «сбросом» на физические носители, так и для манипуляций с кадрами значений, т.е. в функциях покадрового запроса значений и их помещения в буфера архивов.
Для организации выделенных архиваторов, в распределённых системах можно использовать транспортный тип архиватора (Планируется.). Функцией транспортного типа архиватора является отражение удалённого центрального архиватора на локальной системе. Как следствие архиваторы транспортного типа выполняют передачу данных между локальной системой и архиватором удалённой системы, скрывая от подсистем локальной системы реальную природу архиватора.
Поскольку система OpenSCADA закладывается как высоко-масштабируемая система то поддержка коммуникаций должна быть достаточно гибкой. Для удовлетворения высокой степени гибкости коммуникации в системе OpenSCADA реализованы в подсистемах 'Транспорты' и 'Транспортные протоколы', которые являются модульными.
Подсистема «Транспорты» предназначена для обмена неструктурированными данными между системой OpenSCADA и внешними системами. В роли внешних систем могут выступать и удалённые OpenSCADA системы. Под неструктурированными данными понимается массив символов определённой длины. Модульным объектом, содержащимся в подсистеме «Транспорты», выступает тип транспорта. Тип транспорта определяет механизм передачи неструктурированных данных. Например это могут быть:
Подсистема 'Транспорты' включает поддержку входящих и исходящих транспортов. Входящий транспорт предназначен для обслуживания внешних запросов и отправки ответов. Исходящий транспорт, наоборот, предназначен для отправки сообщений и ожидания ответа. Следовательно, входящий транспорт содержит конфигурацию данной станции как сервера, а исходящий транспорт содержит конфигурацию удалённого сервера. Модуль подсистемы 'Транспорты' реализует поддержку как входящего, так и исходящего транспортов.
Подсистема 'Транспортные протоколы' предназначена для структуризации данных полученных от подсистемы 'Транспорты'. По сути, подсистема 'Транспортные протоколы' является продолжением подсистемы 'Транспорты' и выполняет функции проверки структуры и целостности полученных данных. Так, для указания протокола, в связке с которым должен работать транспорт, предусмотрено специальное конфигурационное поле. Модульным объектом, содержащимся в подсистеме 'Протоколы' является сам протокол. Например, транспортными протоколами могут быть:
Полную цепочку связи можно записать следующим образом:
Поддерживаются протоколы и для исходящих транспортов. Исходящий протокол берёт на себя функцию общения с транспортом и реализацию особенностей протокола. Внутренняя сторона доступа к протоколу реализуется потоковым образом с собственной структурой для каждого протокольного модуля. Такой механизм позволяет выполнять прозрачный доступ к внешней системе, посредством транспорта, просто указывая имя протокола, с помощью которого обслуживать передачу.
Благодаря стандартному API-доступа к транспортам системы OpenSCADA можно легко менять способ обмена данными не затрагивая самих обменивающихся систем. Например, в случае локального обмена можно использовать более быстрый транспорт на основе разделяемой памяти, а в случае обмена через интернет и локальную сеть использовать TCP или UDP сокеты.
SCADA-системы, как класс, предполагают наличие интерфейсов пользователя. В OpenSCADA, для предоставления пользовательских интерфейсов, предусмотрена подсистема 'Пользовательские интерфейсы'. Под пользовательским интерфейсом системы OpenSCADA понимается не только среда визуализации, с которой должен работать конечный пользователь, но и всё, что имеет отношение к пользователю, например:
Подсистема 'Пользовательские интерфейсы' является модульной. Модульным объектом подсистемы выступает, собственно, конкретный интерфейс пользователя. Модульность подсистемы позволяет создавать различные интерфейсы пользователей на различных GUI/TUI библиотеках и использовать наиболее оптимальное из решений в конкретно взятом случае, например, для сред исполнения программируемых логических контроллеров можно использовать конфигураторы и визуализаторы на основе Web-технологий (WebCfg, WebUI), а в случае стационарных рабочих станций использовать те-же конфигураторы и визуализаторы, но на основе библиотек типа QT, GTK.
Система OpenSCADA является разветвлённой системой, которая состоит из десятка подсистем и может включать множество модулей. Следовательно, предоставление всем неограниченного доступа к этим ресурсам является по крайней мере небезопасным. Поэтому, для разграничения доступа в системе OpenSCADA, предусмотрена подсистема 'Безопасности'. Основными функциями подсистемы 'Безопасности' является:
Система OpenSCADA построена по модульному принципу, что подразумевает наличие множества модулей, которыми необходимо управлять. Для выполнения функции управления модулями системы OpenSCADA предусмотрена подсистема 'Управление модулями'. Все модули, на настоящий момент, поставляются в систему посредством разделяемых библиотек(контейнеров). Каждый контейнер может содержать множество модулей различного типа.
Подсистема 'Управление модулями' реализует контроль за состоянием контейнеров и позволяет выполнять горячее добавление, удаление и обновление контейнеров и содержащихся в них модулей.
Разумеется, предусмотреть всех возможных функций невозможно, поэтому в системе OpenSCADA предусмотрена подсистема 'Специальные'. Подсистема 'Специальные' является модульной и предназначена для добавления в систему OpenSCADA непредусмотренных функций путём модульного расширения. Например, с помощью подсистемы «Специальные» могут быть реализованы:
Любая современная SCADA система должна содержать механизмы предоставляющие возможность программировать на пользовательском уровне, т.е. содержать среду программирования. Система OpenSCADA содержит такую среду. С помощью среды программирования системы OpenSCADA можно реализовывать:
Среда программирования системы OpenSCADA представляет собой комплекс средств организующих вычислительное окружение пользователя. В состав комплекса средств входят:
Модули библиотек функций предоставляют множество функций определённой направленности, расширяющих объектную модель системы. Библиотеки могут реализоваться как набором функций фиксированного типа, так и функциями допускающими свободную модификацию и дополнение.
Библиотеки функций фиксированного типа могут предоставляться стандартными модулями системы, органично дополняя объектную модель. Функции таких библиотек будут представлять собой интерфейс доступа к средствам модуля на уровне пользователя. Например, «Среда визуального представления данных» может предоставлять функции для выдачи различных сообщений. Используя эти функции пользователь может реализовывать интерактивные алгоритмы взаимодействия с системой.
Библиотеки функций свободного типа предоставляют среду написания пользовательских функций на одном из языков программирования. В рамках модуля библиотек функций могут предоставляться механизмы создания библиотек функций. Так, можно создавать библиотеки аппаратов технологических процессов, а в последствии использовать их путём связывания. Различные модули библиотек функций могут предоставлять реализации различных языков программирования.
На основе функций, предоставляемых объектной моделью, строятся вычислительные контроллеры. Вычислительные контроллеры выполняют связывание функций с параметрами системы и механизмом вычисления.
SCADA (Supervisory Control And Data Acquisition), в общем виде, имеют распределённую архитектуру вроде изображённой на рис. 2. Элементы SCADA систем, в смысле программного обеспечения, выполняют следующие функции:
Сервер сбора: представляет собой задачу или группу задач занимающихся сбором данных из источников данных, или же сами выступают в роли источником данных. В задачи сервера входит:
Сервер архивирования: представляет собой задачу или группу задач занимающихся архивированием данных. В задачи сервера входит:
Сервер протоколирования: представляет собой задачу или группу задач занимающиеся архивированием сообщений. В задачи сервера входит:
Сервер сигнализации: представляет собой задачу или группу задач выполняющие функции сервера протоколирования в отношении узкой категории сообщений сигнализации.
Рабочее место оператора: представляет собой постоянно функционирующее GUI(Grafical User Interface) приложение выполненное в одномониторном, многомониторном или панельном режиме и выполняющее функции:
Рабочее место инженера: представляет собой GUI приложение используемое для конфигурации SCADA системы. В задачи приложения входит:
Рабочее место руководителя: представляет собой GUI приложение, как правило, выполненное в одномониторном режиме и выполняющее функции:
Рабочее место технолога: полностью включает в себя функции рабочего места оператора плюс модель технологического процесса (без непосредственной связи с технологическим процессом).
Рабочее место технолога-программиста: полностью включает в себя функции рабочего места технолога плюс инструментарий для создания моделей технологических процессов.
В простейшем случае систему OpenSCADA можно сконфигурировать в серверном режиме (рис. 3) для сбора и архивирования данных. Данная конфигурация позволяет выполнять следующие функции:
Для повышения надёжности и производительности система OpenSСADA допускает множественное резервирование (рис. 4), при котором контроллеры одного экземпляра отражаются в другом. При использовании подобной конфигурации возможно распределение нагрузки опроса/вычисления на различных станциях. Данная конфигурация позволяет выполнять функции:
Частным случаем дублированного соединения является дублированное соединение в рамках одного сервера (рис. 5), т. е запуск нескольких станций на одной машине с перекрещиванием параметров. Целью данной конфигурации является повышение надёжности и отказоустойчивости системы путём резервирования ПО.
Для визуализации данных содержащихся на сервере, хорошим решением является использование пользовательского WEB-интерфейса (рис. 6). Данное решение позволяет использовать стандартный WEB-браузер у клиента и следовательно является наиболее гибким, поскольку не привязано к одной платформе, т.е. является кроссплатформенным. Однако это решение имеет существенные недостатки – это невысокая производительность и надёжность. В связи с этим рекомендуется использовать данный метод для визуализации некритичных данных или данных имеющих резервный высоконадёжный способ визуализации. Например, хорошим решением будет использование этого метода у начальства промышленных установок, где всегда существует операторская с надёжным способом визуализации. Данная конфигурация позволяет выполнять следующие функции:
Для визуализации критических данных, а также в случае если требуется высокое качество и производительность, можно использовать визуализацию на основе системы OpenSCADA сконфигурированной с GUI модулем (рис. 7). Данная конфигурация позволяет выполнять следующие функции:
Полнофункциональная клиент-серверная конфигурация на одной машине (рис. 8) может использоваться для повышения надёжности системы в целом путём запуска клиента и сервера в разных процессах. Данная конфигурация позволяет, без последствий для сервера, останавливать клиент и выполнять с ним различные профилактические работы. Рекомендуется для использования на станциях оператора путём установки двух машин совмещающих в себе станции оператора и резервированный сервер. Данная конфигурация позволяет выполнять следующие функции:
Смешанное подключение совмещает функции сервера и клиента (рис. 9). Может использоваться для тестовых, демонстрационных функций, а также для предоставления моделей технологических процессов как единое целое. В этом режиме могут выполняться следующие функции:
Данная конфигурация является одним из вариантов устойчивого/надёжного соединения (рис. 10). Устойчивость достигается путём распределения функций по:
Сервер опроса, конфигурируется на основе системы OpenSCADA и представляет собой задачу (группу задач) занимающихся опросом контроллера (группы контроллеров одного типа). Полученные значения доступны центральному серверу через любой транспорт, поддержка которого добавляется путём подключения соответствующего модуля транспорта. Для снижения частоты опроса и величины сетевого трафика, сервер опроса может оснащаться небольшим архивом значений. Конфигурация сервера опроса хранится в одной из доступных БД.
Центральный сервер архивирования и обслуживания клиентских запросов выполняет функцию централизованного сбора и обработки параметров серверов опроса и их значений. Доступ к серверам опроса выполняется посредством одного из доступных в OpenSCADA транспортов+протоколов (на примере это SGA). Для предоставления единого интерфейса доступа к параметрам и контроллерам используется модуль Transporter, который отражает данные серверов опроса на структуру локальных параметров.
Для выполнения внутренних вычислений и дополнительного анализа параметров используются вычислительные контроллеры.
Для разностороннего и глубокого архивирования используются различные модули архивов.
Для доступа клиентов к серверу используются доступные для OpenSCADA сетевые транспорты, на примере это Sockets, и транспортные протоколы, на примере это протокол OpenSCADA 'SelfSystem'.
Конфигурация центрального сервера хранится в одной из доступных БД (на примере это сетевая СУБД MySQL).
Для предоставления пользовательского WEB-интерфейса используется модуль WebCfg посредством транспортного протокола 'HTTP'.
Различные клиенты, в их числе АРМ и WEB-клиенты, выполняются на отдельных машинах в необходимом количестве. АРМ реализуется на основе системы OpenSCADA. В его функции входит опрос значений параметров из центрального сервера и их визуализация на GUI интерфейсе(ах). Для получения параметров в АРМ, также, используется модуль отражения удалённых параметров Transporter. Для предоставления доступа к архивам может использоваться модуль архива сетевого типа. Конфигурация АРМ может храниться в одной из доступных БД (в примере это сетевая СУБД MySQL, расположенная на машине центрального сервера архивирования).
Как можно видеть в разделе выше, OpenSCADA предоставляет возможность конфигурации для выполнения в различных ролях. Поддержка этой возможности обеспечивается развитыми механизмами конфигурации и хранения конфигурационных данных. Данный раздел содержит описание этих механизмов, призваное дать представление о гибкости и разнообразии и позволив тем самым использовать OpenSCADA на 100%.
При описании механизмов конфигурации и способов её хранения, в этом разделе, будет делаться упор на описание общесистемных механизмов. Особенности конфигурации и использования модулей подсистем OpenSCADA предоставляются в собственной документации модулей.
В OpenSCADA используется формализованный подход к описанию конфигурационных интерфейсов, основанный на языке XML. Фактически, особенности конфигурации компонента системы предоставляется самим компонентом, пронизывая тем самым всю систему, как нервная система организма. В терминах OpenSCADA это называется интерфейсом контроля OpenSCADA (Control interface). На основе интерфейса контроля формируются графические интерфейсы конфигурации пользователя посредством модулей OpenSCADA. Такой подход имеет следующие важные преимущества:
В OpenSCADA уже предоставляется три модуля конфигурации на разной основе визуализации. Отметим их и их возможности конфигурации:
Значения конфигурации, изменённые в конфигураторах, а также большинство данных, сохраняются в базах данных (БД). Учитывая модульность подсистемы 'БД' ими могут быть различные БД. Причём предоставляется возможность хранения разных частей OpenSCADA как в разных БД одного типа, так и БД разных типов.
Кроме БД, данные о конфигурации могут содержаться в конфигурационном файле OpenSCADA, а также передаваться посредством параметров командной строки при вызове OpenSCADA. Однако сохранение изменений конфигурации в конфигураторах доступно только в БД. Типовым именем конфигурационного файла OpenSCADA является /etc/oscada.xml. Формат конфигурационного файла и параметры командной строки рассмотрим в отдельном разделе.
Дальнейшее рассмотрение конфигурации OpenSCADA будет производиться на основе интерфейса конфигуратора UI.QTCfg, однако принципы работы будут полностью соответствовать и остальным конфигураторам благодаря общности в используемом интерфейсе контроля OpenSCADA.
Рассмотрение начнём с конфигурации системных параметров OpenSCADA, которая размещается в трёх вкладках корневой страницы станции:
Для модификации полей этой страницы могут потребоваться права привилегированного пользователя. Получить такие права можно включив вашего пользователя в группу суперпользователя 'root' или войдя на станцию от имени суперпользователя 'root'.
Нужно отметить ещё один важный момент - поля идентификаторов всех объектов OpenSCADA недопустимы для прямого редактирования, поскольку являются ключом для хранения данных объектов в БД. Однако поменять идентификатор объекта можно с помощью команды переноса и последующей вставки объекта (Cut->Paste) в конфигураторе.
При рассмотрении страниц конфигурации модульных подсистем будет описаны общие для всех модулей свойства. Однако нужно отметить, что каждый модуль может предоставлять как дополнительные вкладки так и отдельные поля для конфигурации собственных особенностей функционирования для страниц объекты которых наследуются модулями. Об особенностях и дополнениях модулей можно ознакомиться в отдельной документации на них.
Подсистема является модульной и содержит иерархию объектов изображённую на рис.14. Для конфигурации подсистемы предусмотрена корневая страница подсистемы 'БД', содержащая вкладки 'Модули' и 'Помощь'. Вкладка 'Модули' (рис.15) содержит список модулей подсистемы 'БД' доступных на станции. Вкладка 'Помощь' содержит краткую помощь для данной страницы.
Для модификации полей страниц этой подсистемы могут потребоваться права привилегированного пользователя или включение вашего пользователя в группу 'БД'.
Каждый модуль подсистемы 'БД' предоставляет конфигурационную страницу с вкладкам 'БД' и 'Помощь'. Вкладка 'БД' (рис.16) содержит список БД, зарегистрированных в модуле и флажёк признака полного удаления БД при выполнении команды удаления. В контекстном меню списка БД предоставляется пользователю возможность добавления, удаления и перехода к нужной БД. Во вкладке 'Помощь' содержится информация о модуле подсистемы 'БД' (рис.17):
Каждая БД содержит собственную страницу конфигурации с вкладками 'База данных' и 'Таблицы'.
Вкладка 'База данных' (рис.18) содержит основные настройки БД в составе:
Вкладка 'Таблицы' (рис.19) содержит список открытых таблиц. При нормальной работе программы эта вкладка пуста, поскольку после завершения работы с таблицами программа их закрывает. Наличие открытых таблиц говорит о том, что программа сейчас с таблицей работает или таблица открыта пользователем для ручного изучения её содержимого. В контекстном меню перечня открытых таблиц можно открыть таблицу для изучения (команда 'Добавить'), закрыть открытую страницу (команда 'Удалить') и перейти к ручному изучению содержимого таблицы.
Страница ручного изучения содержимого таблицы содержит только одну вкладку 'Таблица'. Вкладка 'Таблица' (рис.20) содержит поле имени таблицы и таблицу с содержимым. Таблицей содержимого предоставляются функции:
Подсистема не является модульной. Для конфигурации подсистемы предусмотрена корневая страница подсистемы 'Безопасность', содержащая вкладки 'Пользователи и группы пользователей' и 'Помощь'. Вкладка 'Пользователи и группы пользователей' (рис.21) содержит списки пользователей и групп пользователей. Пользователь с привилегированными правами может добавить, удалить пользователя или группу пользователей. Все остальные пользователи могут перейти к странице пользователя или группы пользователя. Вкладка 'Помощь' содержит краткую помощь для данной страницы.
Для конфигурации пользователя предоставляется страница, содержащая только вкладку 'Пользователь' (рис.22). Вкладка содержит конфигурационные данные профиля пользователя, которые может изменять только сам пользователь или привилегированный пользователь:
Для конфигурации группы пользователей предоставляется страница, содержащая только вкладку 'Группа' (рис.23). Вкладка содержит конфигурационные данные профиля группы пользователей, которые может изменять только привилегированный пользователь:
Подсистема является модульной и содержит иерархию объектов изображённую на рис.24. Для конфигурации подсистемы предусмотрена корневая страница подсистемы 'Транспорты', содержащая вкладки 'Подсистема', 'Модули' и 'Помощь'.
Вкладка 'Подсистема' (рис.25) содержит таблицу конфигурации внешних, для данной, Внешние станции могут быть системными и пользовательскими, что выбирается соответствующим параметром. Системные внешние станции доступны только привилегированному пользователю и используются компонентами системного назначения, например модулем DAQ.Transporter. Пользовательские внешние станции привязаны к пользователю, который их создавал, а значит список пользовательских внешних станций индивидуален для каждого пользователя. Пользовательские внешние станции используются компонентами графического интерфейса, например UI.QTCfg, UI.WebCfgD и UI.Vision. В таблице внешних станций возможно добавление и удаление записей про станцию, а также их модификация. Каждая запись содержит поля:
Вкладка 'Модули' (рис.15) содержит список модулей подсистемы 'Транспорты' и идентична для всех модульных подсистем. Вкладка 'Помощь' содержит краткую помощь для данной страницы.
Каждый модуль подсистемы 'Транспорты' предоставляет конфигурационную страницу с вкладками 'Транспорты' и 'Помощь'. Вкладка 'Транспоты' (рис.26) содержит список входящих и исходящих транспортов, зарегистрированных в модуле. В контекстном меню списков транспортов пользователю предоставляется возможность добавления, удаления и перехода к нужному транспорту. Во вкладке 'Помощь' содержится информация о модуле подсистемы 'Транспорты' (рис.17), состав которой идентичен для всех модулей.
Каждый транспорт содержит собственную страницу конфигурации с одной вкладкой 'Транспорт'. Эта вкладка содержит основные настройки транспорта. Входящий транспорт (рис.27) содержит:
Исходящий транспорт (рис.28) содержит:
Подсистема является модульной. Для конфигурации подсистемы предусмотрена корневая страница подсистемы 'Транспортные протоколы', содержащая вкладки 'Модули' и 'Помощь'. Вкладка 'Модули' (рис.15) содержит список модулей подсистемы 'Транспортные протоколы' и идентична для всех модульных подсистем. Вкладка 'Помощь' содержит краткую помощь для данной страницы.
Каждый модуль подсистемы 'Транспортные протоколы' предоставляет конфигурационную страницу с одной вкладкой 'Помощь'. Во вкладке 'Помощь' содержится информация о модуле подсистемы 'Транспортные протоколы' (рис.17), состав которой идентичен для всех модулей.
Подсистема является модульной и содержит иерархию объектов изображённую на рис.29. Для конфигурации подсистемы предусмотрена корневая страница подсистемы 'Сбор данных', содержащая вкладки 'Библиотеки шаблонов', 'Модули' и 'Помощь'.
Для получения доступа на модификацию объектов этой подсистемы необходимы права пользователя в группе "DAQ" или права привилегированного пользователя.
Вкладка 'Библиотеки шаблонов' (рис.30) содержит список библиотек шаблонов для параметров этой подсистемы. В контекстном меню списка библиотек шаблонов пользователю предоставляется возможность добавления, удаления и перехода к нужной библиотеке. Вкладка 'Модули' (рис.15) содержит список модулей подсистемы 'Транспорты' и идентична для всех модульных подсистем. Вкладка 'Помощь' содержит краткую помощь для данной страницы.
Каждая библиотека шаблонов подсистемы 'Сбор данных' предоставляет конфигурационную страницу с вкладками 'Библиотека' и 'Шаблоны параметров'. Вкладка 'Библиотека' (рис.31) содержит основные настройки библиотеки в составе:
Вкладка 'Шаблоны параметров' (рис.32) содержит список шаблонов в библиотеке. В контекстном меню списка пользователю предоставляется возможность добавления, удаления и перехода к нужному шаблону.
Каждый шаблон библиотеки шаблонов предоставляет конфигурационную страницу с вкладками 'Шаблон' и 'IO'. Вкладка 'Шаблон' (рис.33) содержит основные настройки шаблона в составе:
Вкладка 'IO' (рис.34) содержит конфигурацию атрибутов (IO) шаблонов и программу шаблона на одном из языков пользовательского программирования OpenSCADA, например DAQ.JavaLikeCalc.JavaScript. В таблицу атрибутов шаблона пользователь может, посредством контекстного меню: добавить, вставить, удалить, передвинуть вверх или вниз запись атрибута, а также отредактировать поля атрибута:
С синтаксисом языка программы шаблона можно ознакомиться в документации модуля предоставляющего интерпретатор выбранного языка. Например, типичным языком пользовательского программирования OpenSCADA является DAQ.JavaLikeCalc.JavaScript
Каждый модуль подсистемы 'Сбор данных' предоставляет конфигурационную страницу с вкладками 'Контроллеры' и 'Помощь'. Вкладка 'Контроллеры' (рис.35) содержит список контроллеров зарегистрированных в модуле. В контекстном меню списка пользователю предоставляется возможность добавления, удаления и перехода к нужному контроллеру. Во вкладке 'Помощь' содержится информация о модуле подсистемы 'Сбор данных' (рис.17), состав которой идентичен для всех модулей.
Каждый контроллер содержит собственную страницу конфигурации с вкладками 'Контроллер' и 'Параметры'.
Вкладка 'Контроллер' (рис.36) содержит основные настройки. Состав этих настроек может несколько отличаться от одного модуля этой подсистемы к другому, о чём можно узнать в собственной документации модулей. В качестве примера рассмотрим настройки контроллера у модуля контроллера логического DAQ.LogicLev:
Вкладка 'Параметры' (рис.37) содержит список параметров в контроллере, а также информацию об общем количестве и количестве включенных параметров. В контекстном меню списка пользователю предоставляется возможность добавления, удаления и перехода к нужному параметру.
Параметры контроллеров подсистемы 'Сбор данных' предоставляет конфигурационную страницу с вкладками 'Параметр', 'Атрибуты', 'Архивация' и 'Конфигурация шаблона'. Вкладка 'Конфигурация шаблона' не является стандартной, а присутствует только в модулях подсистемы 'Сбор данных', которые реализуют механизмы работы по шаблону в контексте источника данных ими обслуживаемого. В данный обзор эта вкладка включена для обеспечения логической завершённости обзора конфигурации шаблонов параметров подсистемы 'Сбор данных' как финальный этап - использования.
Вкладка 'Параметр' (рис.38) содержит основные настройки в составе:
Вкладка 'Атрибуты' (рис.39) содержит атрибуты параметра и их значения в соответствии с конфигурацией используемого шаблона и вычисления его программы.
Вкладка 'Архивация' (рис.40) содержит таблицу с атрибутами параметра, в колонках, и архиваторами, в строках. Пользователь имеет возможность установить архивацию нужного атрибута требуемым архиватором просто изменив ячейку на пересечении.
Вкладка 'Конфигурация шаблона' (рис.41) содержит конфигурационные поля в соответствии с шаблоном. В примере это групповая связь на внешний параметр. Эту связь можно установить просто указав путь к параметру если флаг 'Показывать только атрибуты' не установлен. Или-же установить адреса атрибутов по отдельности если флаг установлен.