Модуль | Ім'я | Версія | Ліцензія | Джерело | Мови | Платформи | Тип | Автор | Опис |
---|---|---|---|---|---|---|---|---|---|
BlockCalc | Блоковий обчислювач | 1.12 | GPL2 | daq_BlockCalc.so | en,uk,ru,de | x86,x86_64,ARM | DAQ | Роман Савоченко Максим Лисенко (2012) — переклад цієї сторінки |
Надає блоковий обчислювач. |
Модуль підсистеми "DAQ" BlockCalc надає в систему OpenSCADA механізм створення користувацьких обчислень. Механізм обчислень ґрунтується на формальній мові блокових схем (функціональних блоків).
Також модулем реалізуються функції горизонтального резервування, а саме спільної роботи з віддаленою станцією цього ж рівня. Крім синхронізації значень і архівів атрибутів параметрів модулем здійснюється синхронізація значень блоків блокової схеми, з метою безударного підхоплення алгоритмів.
Мови блокового програмування ґрунтуються на понятті блокових схем (функціональних блоків). При чому в залежності від сутності блоку блокові схеми можуть бути: логічними схемами, схемами релейного логіки, моделлю технологічного процесу та інше. Суть блокової схеми полягає в тому, що вона містить перелік блоків і зв'язки між ними.
З формальної точки зору блок — це елемент (функція), який має входи, виходи і алгоритм обчислення. Виходячи з концепції середовища програмування, блок — це кадр значень, асоційований з об'єктом функції.
Звісно, входи і виходи блоків потрібно з'єднувати для отримання цілісної блокової схеми. Передбачено наступні типи зв'язків:
Умовно з'єднання блоків можна зобразити як зв'язки між блоками в цілому (рис. 1) або деталізація зв'язків (рис. 2). В процесі зв'язування параметрів блоків допустимо з'єднання параметрів будь-якого типу. При цьому, в процесі обчислення буде виконуватися автоматичне приведення типів.
Кожен контролер цього модуля містить блокову схему, яку він обраховує із зазначеним періодом. Для надання обчислених даних в систему OpenSCADA в контролері можуть створюватися параметри. Приклад вкладки конфігурації контролера даного типу зображений на рис.3.
За допомогою цієї вкладки можна встановити:
Блокова схема формується за допомогою вкладки блоків контролера, конфігурації блоку (рис.4) та його зв'язків (рис.5). Блоки зберігаються у таблиці із назвою "BlckCalcBlcks_{CntrId}".
Блоки блокової схеми можуть зв'язуватися як між собою, так і підключатися до атрибутів параметрів. Самі блоки при цьому не містять структури входів/виходів (IO), а містять значення, виходячи зі структури IO пов'язаної функції. Функції для зв'язування з блоком використовуються з об'єктної моделі системи OpenSCADA.
Будь-який блок може в будь-який момент виключений з обробки та переконфігурований, після чого може бути знову включений в обробку. Зв'язки між блоками можуть конфігуруватися без винятку блоків з обробки та зупинки контролера. Значення всіх IO, не охоплених зв'язками, можуть бути змінені в процесі обробки.
За допомогою вкладки блоків можна:
За допомогою форми конфігурації блоку можна встановити:
За допомогою вкладки конфігурації зв'язків блоку блокової схеми можна встановити зв'язки для кожного параметра блоку окремо.
Підтримуються наступні типи зв'язків:
Для установки значень параметрів блоку призначена відповідна вкладка (рис.6).
Відповідно з реалізацією функцій користувача в системі OpenSCADA підтримуються чотири основних типи IO: ціле, дійсне, логічне і рядок.
Модулем передбачено особливу обробку низки входів/виходів блоку:
Модуль надає тільки один "Стандартний (std)" тип параметрів із назвою таблиці параметрів "BlckCalcPrm_{CntrId}". Параметр слугує для відображення обчислених в блоках даних на атрибути параметрів контролера. Приклад вкладки конфігурації параметра наведено на рис.7.
За допомогою цієї вкладки можна встановити:
Для спрощення і прискорення процедури розробки складних і повторюваних блокових схем передбачено механізм копіювання елементів блокової схеми як окремо, так і блокових схем цілком. Механізм копіювання інтегрований в ядро OpenSCADA і працює прозоро.
Деякі об'єкти модуля надають функції користувацького програмування.
Об'єкт "Блок" (SYS.DAQ.BlockCalc["cntr"]["blk_block"])
Сервісні функції — це інтерфейс доступу до 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>
Modules/BlockCalc/uk - GFDL | December 2024 | OpenSCADA 1+r3000 |