OpenSCADA

Модули/Блоковый вычислитель

This page is a translated version of the page Modules/BlockCalc and the translation is 83% complete.

English • ‎mRussian • ‎Українська
Constr.png The translation checking and actualizing
Модуль Имя Версия Лицензия Источник Языки Платформы Тип Автор Описание
BlockCalc Блочный вычислитель 1.12 GPL2 daq_BlockCalc.so en,uk,ru,de x86,x86_64,ARM DAQ Роман Савоченко Предоставляет блочный вычислитель.

Модуль подсистемы "DAQ" BlockCalc предоставляет в систему OpenSCADA механизм создания пользовательских вычислений. Механизм вычислений основывается на формальном языке блочных схем(функциональных блоков).

Также модулем реализуются функции горизонтального резервирования, а именно совместной работы с удалённой станцией этого-же уровня. Кроме синхронизации значений и архивов атрибутов параметров модулем осуществляется синхронизация значений блоков блочной схемы, с целью безударного подхвата алгоритмов.

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

С формальной точки зрения блок это элемент (функция), который имеет входы, выходы и алгоритм вычисления. Исходя из концепции среды программирования, блок — это кадр значений, ассоциированный с объектом функции.

Разумеется, входы и выходы блоков нужно соединять для получения цельной блочной схемы. Предусмотрены следующие типы связей:

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

Рис. 1. Общие связи между блоками блочной схемы.
Рис. 2. Детализированные связи между блоками.

Contents

1 Контроллер модуля

Каждый контроллер этого модуля содержит блочную схему, которую он обсчитывает с указанным периодом. Для предоставления вычисленных данных в систему OpenSCADA в контроллере могут создаваться параметры. Пример вкладки конфигурации контроллера данного типа изображен на рис.3.

Рис. 3. Вкладка конфигурации контроллера.

From this tab you can set:

2 The block scheme of the controller

The block scheme is formed by means of the tab controller's blocks, configuration of the block (Figure 4) and its connections (Fig. 5). The blocks are stored in a table with the name "BlckCalcBlcks_{CntrId}".

Блоки блочной схемы могут связываться как между собой, так и подключаться к атрибутам параметров. Сами блоки при этом не содержат структуры входов/выходов(IO), а содержат значения, исходя из структуры IO связанной функции. Функции для связывания с блоком используются из объектной модели системы OpenSCADA.

Любой блок может в любой момент быть исключён из обработки и переконфигурирован после чего может быть опять включен в обработку. Связи между блоками могут конфигурироваться без исключения блоков из обработки и остановки контроллера. Значения всех IO, не охваченных связями могут быть изменены в процессе обработки.

С помощью вкладки блоков можно:

Рис. 4. Вкладка конфигурации блока блочной схемы.

С помощью формы конфигурации блока можно установить:

Рис. 5. Вкладка конфигурации связей блока блочной схемы.

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

Поддерживаются следующие типы связей:

Для установки значений параметров блока предназначена соответствующая вкладка (Рис.6).

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

Рис. 6. Вкладка конфигурации значений параметров блока блочной схемы.

Модулем предусмотрена особая обработка ряда входов/выходов блока:

3 Parameters of the controller

The module provides only one the "Standard (std)" type of the parameters with the parameters table name "BlckCalcPrm_{CntrId}". The parameter used to reflect the data, calculated in the blocks, on the attributes of the controller's parameters. Example of the configuration tab of the parameter is shown in Fig.7.

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

С помощью этой вкладки можно установить:

{BLK} — идентификатор блока, блочной схемы; для постоянной значение устанавливается:
'*s' — строковый тип;
'*i' — целочисленный тип;
'*r' — вещественный тип;
'*b' — логический тип.
{BLK_IO} — параметр блока, блочной схемы; для постоянной значений устанавливается в значение атрибута;
{AID} — идентификатор атрибута параметра;
{ANM} — имя атрибута параметра.

4 Копирование блочных схем

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

5 API пользовательского программирования

Некоторые объекты модуля предоставляют функции пользовательского программирования.

Объектная модель пользователя модуля BlockCalc.

Объект "Блок" (SYS.DAQ.BlockCalc["cntr"]["blk_block"])


6 Service commands-functions of the Control Interface

Service functions are an interface for accessing OpenSCADA from external systems through the Control Interface. This mechanism is the basis of all exchange within OpenSCADA, implemented through weak links and OpenSCADA's own exchange protocol.


Getting for values of all block attributes of the controller object
REQ: <get path="/DAQ/BlockCalc/{CNTR}/blk_{BLK}/%2fserv%2fattr" />

RESP: <get path="/DAQ/BlockCalc/{CNTR}/blk_{BLK}/%2fserv%2fattr" rez="0">{attributes}</get>

<get path="/DAQ/BlockCalc/CM101/blk_AT101_1/%2fserv%2fattr" rez="0" user="roman">
  <a id="Fi">50.3839725707191</a>
  <a id="Pi">10.2588208891757</a>
  <a id="Ti">331.149550201738</a>
  <a id="Si">0.071</a>
  <a id="li">10</a>
</get>

Setting for values of list the block attributes of the controller object
REQ[root-DAQ]: <set path="/DAQ/BlockCalc/{CNTR}/blk_{BLK}/%2fserv%2fattr">{attributes}</set>

<set path="/DAQ/BlockCalc/CM101/blk_AT101_1/%2fserv%2fattr">
  <a id="Fi">50.3839725707191</a>
  <a id="Pi">10.2588208891757</a>
</set>


7 Ссылки

Modules/BlockCalc/ru - GFDLMay 2024OpenSCADA 0.9.7