OpenSCADA

Модулі/Блоковий обчислювач

This page is a translated version of the page Modules/BlockCalc and the translation is 100% 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 Роман Савоченко
  Максим Лисенко (2012) — переклад цієї сторінки
Надає блоковий обчислювач.

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

Також модулем реалізуються функції горизонтального резервування, а саме спільної роботи з віддаленою станцією цього ж рівня. Крім синхронізації значень і архівів атрибутів параметрів модулем здійснюється синхронізація значень блоків блокової схеми, з метою безударного підхоплення алгоритмів.

Мови блокового програмування ґрунтуються на понятті блокових схем (функціональних блоків). При чому в залежності від сутності блоку блокові схеми можуть бути: логічними схемами, схемами релейного логіки, моделлю технологічного процесу та інше. Суть блокової схеми полягає в тому, що вона містить перелік блоків і зв'язки між ними.

З формальної точки зору блок — це елемент (функція), який має входи, виходи і алгоритм обчислення. Виходячи з концепції середовища програмування, блок — це кадр значень, асоційований з об'єктом функції.

Звісно, входи і виходи блоків потрібно з'єднувати для отримання цілісної блокової схеми. Передбачено наступні типи зв'язків:

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

Рис. 1. Загальні зв'язки між блоками блокової схеми.
Рис. 2. Деталізовані зв'язки між блоками.

Contents

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

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

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

За допомогою цієї вкладки можна встановити:

2 Блокова схема контролера

Блокова схема формується за допомогою вкладки блоків контролера, конфігурації блоку (рис.4) та його зв'язків (рис.5). Блоки зберігаються у таблиці із назвою "BlckCalcBlcks_{CntrId}".

Блоки блокової схеми можуть зв'язуватися як між собою, так і підключатися до атрибутів параметрів. Самі блоки при цьому не містять структури входів/виходів (IO), а містять значення, виходячи зі структури IO пов'язаної функції. Функції для зв'язування з блоком використовуються з об'єктної моделі системи OpenSCADA.

Будь-який блок може в будь-який момент виключений з обробки та переконфігурований, після чого може бути знову включений в обробку. Зв'язки між блоками можуть конфігуруватися без винятку блоків з обробки та зупинки контролера. Значення всіх IO, не охоплених зв'язками, можуть бути змінені в процесі обробки.

За допомогою вкладки блоків можна:

Рис. 4. Вкладка конфігурації блоку блокової схеми.

За допомогою форми конфігурації блоку можна встановити:

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

За допомогою вкладки конфігурації зв'язків блоку блокової схеми можна встановити зв'язки для кожного параметра блоку окремо.

Підтримуються наступні типи зв'язків:

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

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

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

Модулем передбачено особливу обробку низки входів/виходів блоку:

3 Параметри контролеру

Модуль надає тільки один "Стандартний (std)" тип параметрів із назвою таблиці параметрів "BlckCalcPrm_{CntrId}". Параметр слугує для відображення обчислених в блоках даних на атрибути параметрів контролера. Приклад вкладки конфігурації параметра наведено на рис.7.

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

За допомогою цієї вкладки можна встановити:

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

4 Копіювання блокових схем

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

5 API користувацького програмування

Деякі об'єкти модуля надають функції користувацького програмування.

Об'єктна модель користувача модуля BlockCalc.

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


6 Сервісні команди-функції Інтерфейсу Управління

Сервісні функції — це інтерфейс доступу до OpenSCADA із зовнішніх систем посередництвом Інтерфейсу Управління. Цей механізм покладено в основу усього обміну всередині OpenSCADA, реалізованого шляхом слабких зв'язків та власного протоколу обміну OpenSCADA.


Отримання значень всіх атрибутів блоку об'єкту контролеру
ЗАП: <get path="/DAQ/BlockCalc/{CNTR}/blk_{BLK}/%2fserv%2fattr" />

ВІДП: <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>

Встановлення значень переліку атрибутів блоку об'єкту контролеру
ЗАП[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/uk - GFDLNovember 2024OpenSCADA 1+r2996