Модуль: | BlockCalc |
Имя: | Блочный вычислитель |
Тип: | DAQ |
Источник: | daq_BlockCalc.so |
Версия: | 1.7 |
Автор: | Роман Савоченко |
Описание: | Предоставляет блочный вычислитель. |
Лицензия: | GPL |
Модуль подсистемы «DAQ» BlockCalc предоставляет в систему OpenSCADA механизм создания пользовательских вычислений. Механизм вычислений основывается на формальном языке блочных схем(функциональных блоков).
Также модулем реализуются функции горизонтального резервирования, а именно совместной работы с удалённой станцией этого-же уровня. Кроме синхронизации значений и архивов атрибутов параметров модулем осуществляется синхронизация значений блоков блочной схемы, с целью безударного подхвата алгоритмов.
Языки блочного программирования основываются на понятии блочных схем (функциональных блоков). При чем в зависимости от сущности блока блочные схемы могут быть: логическими схемами, схемами релейной логики, моделью технологического процесса и другое. Суть блочной схемы состоит в том, что она содержит список блоков и связи между ними.
С формальной точки зрения блок это элемент (функция), который имеет входы, выходы и алгоритм вычисления. Исходя из концепции среды программирования, блок — это кадр значений, ассоциированный с объектом функции.
Разумеется, входы и выходы блоков нужно соединять для получения цельной блочной схемы. Предусмотрены следующие типы связей:
Условно соединения блоков можно изобразить как связи между блоками в целом (рис. 1) или детализация связей (рис. 2). В процессе связывания параметров блоков допустимо соединение параметров любого типа. При этом, в процессе вычисления будет выполняться автоматическое приведение типов.
Каждый контроллер этого модуля содержит блочную схему, которую он обсчитывает с указанным периодом. Для предоставления вычисленных данных в систему OpenSCADA в контроллере могут создаваться параметры. Пример вкладки конфигурации контроллера данного типа изображен на рис.3.
С помощью этой вкладки можно установить:
Блочная схема формируется посредством вкладки блоков контроллера, конфигурации блока (Рис.4) и его связей (Рис.5).
Блоки блочной схемы могут связываться как между собой, так и подключаться к атрибутам параметров. Сами блоки при этом не содержат структуры входов/выходов(IO), а содержат значения, исходя из структуры IO связанной функции. Функции для связывания с блоком используются из объектной модели системы OpenSCADA.
Любой блок может в любой момент быть исключён из обработки и переконфигурирован после чего может быть опять включен в обработку. Связи между блоками могут конфигурироваться без исключения блоков из обработки и остановки контроллера. Значения всех IO, не охваченных связями могут быть изменены в процессе обработки.
С помощью вкладки блоков можно:
С помощью формы конфигурации блока можно установить:
С помощью вкладки конфигурации связей блока блочной схемы можно установить связи для каждого параметра блока отдельно.
Поддерживаются следующие типы связей:
Для установки значений параметров блока предназначена соответствующая вкладка (Рис.6).
В соответствии с реализацией пользовательских функций в системе OpenSCADA поддерживаются четыре основных типа IO: целое, вещественное, логическое и строка.
Модулем предусмотрена особая обработка ряда входов/выходов блока:
Модуль предоставляет только один тип параметров “Стандартный”. Параметр служит для отражения вычисленных в блоках данных на атрибуты параметров контроллера. Пример вкладки конфигурации параметра приведен на Рис.7.
С помощью этой вкладки можно установить:
Для упрощения и ускорения процедуры разработки сложных и повторяющихся блочных схем предусмотрен механизм копирования элементов блочной схемы как по отдельности, так и блочных схем целиком. Механизм копирования интегрирован в ядро OpenSCADA и работает прозрачно.
Некоторые объекты модуля предоставляют функции пользовательского программирования.
Объект "Блок" (SYS.DAQ.BlockCalc["cntr"]["blk_block"])