<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> <html class="client-nojs" dir="ltr" lang="en"> <head> <meta charset="UTF-8" /> <title>Модулі/Блоковий обчиÑлювач - OpenSCADAWiki</title> <meta content="MediaWiki 1.26.4" name="generator" /> <link href="https://www.gnu.org/copyleft/fdl.html" rel="copyright" /> <link href="../../en/files/doc.css" rel="stylesheet" /></head> <body><div class="floatright"><a href="../index.html"><img alt="OpenSCADA" src="../../en/files/index.png" /></a></div><div id="mw_header"> <div class="mw-indicators"> </div> <h1 id="firstHeading" lang="uk">Модулі/Блоковий обчиÑлювач</h1> </div><div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="uk"><div class="mw-pt-translate-header noprint" dir="ltr" lang="en">This page is a <span class="plainlinks"><a class="external text" href="http://oscada.org/wiki/index.php?title=Special:Translate&group=page-Modules%2FBlockCalc&action=page&filter=&language=uk" rel="nofollow noreferrer noopener" target="_blank">translated version</a></span> of the page <a class="external" href="http://oscada.org/wiki/Modules/BlockCalc" title="Modules/BlockCalc">Modules/BlockCalc</a> and the translation is 100% complete.</div><hr /><div class="mw-pt-languages" dir="ltr" lang="en"><div class="mw-pt-languages-list autonym"><a class="mw-pt-languages-ui mw-pt-progress mw-pt-progress--complete" href="../../en/Modules/BlockCalc.html" title="Modules/BlockCalc (100% translated)">English</a> • ‎<a class="mw-pt-progress mw-pt-progress--complete" href="../../ru/Modules/BlockCalc.html" title="Модули/Блоковый вычиÑлитель (83% translated)">mRussian</a> • ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">УкраїнÑька</span></div></div> <div class="noprint" style="float:right; border:1px solid gray; width:300px; background-color:ivory; padding:2px;"> <table cellspacing="0"> <tr> <td> <a class="image" href="http://oscada.org/wiki/File:Constr.png"><img alt="Constr.png" height="32" src="../../en/files/Constr.png" width="32" /></a> </td> <td style="padding-left:5px;"> The translation checking and actualizing </td></tr></table> </div> <table class="wikitable"> <tr> <th> Модуль </th> <th> Ім'Ñ </th> <th> ВерÑÑ–Ñ </th> <th> Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ </th> <th> Джерело </th> <th> Мови </th> <th> Платформи </th> <th> Тип </th> <th> Ðвтор </th> <th> ÐžÐ¿Ð¸Ñ </th></tr> <tr> <td> <a href="../Modules/BlockCalc.html" title="Special:MyLanguage/Modules/BlockCalc">BlockCalc</a> </td> <td> Блоковий обчиÑлювач </td> <td> 1.12 </td> <td> GPL2 </td> <td> daq_BlockCalc.so </td> <td> en,uk,ru,de </td> <td> x86,x86_64,ARM </td> <td> DAQ </td> <td> Роман Савоченко<br /> <font size="-2"><i>МакÑим ЛиÑенко (2012) — переклад цієї Ñторінки</i></font> </td> <td> Ðадає блоковий обчиÑлювач. </td></tr></table> <p>Модуль підÑиÑтеми "DAQ" BlockCalc надає в ÑиÑтему OpenSCADA механізм ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувацьких обчиÑлень. Механізм обчиÑлень ґрунтуєтьÑÑ Ð½Ð° формальній мові блокових Ñхем (функціональних блоків). </p><p>Також модулем реалізуютьÑÑ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— горизонтального резервуваннÑ, а Ñаме Ñпільної роботи з віддаленою Ñтанцією цього ж рівнÑ. Крім Ñинхронізації значень Ñ– архівів атрибутів параметрів модулем здійÑнюєтьÑÑ ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ блоків блокової Ñхеми, з метою безударного Ð¿Ñ–Ð´Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ Ð°Ð»Ð³Ð¾Ñ€Ð¸Ñ‚Ð¼Ñ–Ð². </p><p>Мови блокового Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ò‘Ñ€ÑƒÐ½Ñ‚ÑƒÑŽÑ‚ÑŒÑÑ Ð½Ð° понÑтті блокових Ñхем (функціональних блоків). При чому в залежноÑті від ÑутноÑті блоку блокові Ñхеми можуть бути: логічними Ñхемами, Ñхемами релейного логіки, моделлю технологічного процеÑу та інше. Суть блокової Ñхеми полÑгає в тому, що вона міÑтить перелік блоків Ñ– зв'Ñзки між ними. </p><p>З формальної точки зору блок — це елемент (функціÑ), Ñкий має входи, виходи Ñ– алгоритм обчиÑленнÑ. ВиходÑчи з концепції Ñередовища програмуваннÑ, блок — це кадр значень, аÑоційований з об'єктом функції. </p><p>ЗвіÑно, входи Ñ– виходи блоків потрібно з'єднувати Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ†Ñ–Ð»Ñ–Ñної блокової Ñхеми. Передбачено наÑтупні типи зв'Ñзків: </p> <ul><li> міжблокові, Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ð¾Ð´Ñƒ одного блоку до виходу іншого, входу одного блоку до входу іншого Ñ– вихід одного блоку до входу іншого;</li> <li> далекі міжблокові, з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð±Ð»Ð¾ÐºÑ–Ð² контролерів різних блокових Ñхем даного модулÑ;</li> <li> коефіцієнти, Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ñ…Ð¾Ð´Ñƒ в поÑтійну, вÑÑ– входи/виходи за замовчуваннÑм ініціюютьÑÑ Ñк поÑтійні;</li> <li> зовнішній атрибут параметра.</li></ul> <p>Умовно з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð±Ð»Ð¾ÐºÑ–Ð² можна зобразити Ñк зв'Ñзки між блоками в цілому (риÑ. 1) або Ð´ÐµÑ‚Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð·Ð²'Ñзків (риÑ. 2). Ð’ процеÑÑ– зв'ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² блоків допуÑтимо з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² будь-Ñкого типу. При цьому, в процеÑÑ– обчиÑÐ»ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ виконуватиÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ðµ Ð¿Ñ€Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñ–Ð². </p> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:639px;"><a class="image" href="http://oscada.org/wiki/File:BlockCalc_model_uk.png"><img class="thumbimage" height="210" src="../files/BlockCalc_model_uk.png" width="637" /></a> <div class="thumbcaption">РиÑ. 1. Загальні зв'Ñзки між блоками блокової Ñхеми.</div></div></div></div> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:601px;"><a class="image" href="http://oscada.org/wiki/File:BlockCalc_links.png"><img class="thumbimage" height="162" src="../../en/files/BlockCalc_links.png" width="599" /></a> <div class="thumbcaption">РиÑ. 2. Деталізовані зв'Ñзки між блоками.</div></div></div></div> <div class="toc" id="toc"><div id="toctitle"><h2>Contents</h2></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#.D0.9A.D0.BE.D0.BD.D1.82.D1.80.D0.BE.D0.BB.D0.B5.D1.80_.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D1.8F"><span class="tocnumber">1</span> <span class="toctext">Контролер модулÑ</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#.D0.91.D0.BB.D0.BE.D0.BA.D0.BE.D0.B2.D0.B0_.D1.81.D1.85.D0.B5.D0.BC.D0.B0_.D0.BA.D0.BE.D0.BD.D1.82.D1.80.D0.BE.D0.BB.D0.B5.D1.80.D0.B0"><span class="tocnumber">2</span> <span class="toctext">Блокова Ñхема контролера</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#.D0.9F.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.B8_.D0.BA.D0.BE.D0.BD.D1.82.D1.80.D0.BE.D0.BB.D0.B5.D1.80.D1.83"><span class="tocnumber">3</span> <span class="toctext">Параметри контролеру</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#.D0.9A.D0.BE.D0.BF.D1.96.D1.8E.D0.B2.D0.B0.D0.BD.D0.BD.D1.8F_.D0.B1.D0.BB.D0.BE.D0.BA.D0.BE.D0.B2.D0.B8.D1.85_.D1.81.D1.85.D0.B5.D0.BC"><span class="tocnumber">4</span> <span class="toctext">ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð±Ð»Ð¾ÐºÐ¾Ð²Ð¸Ñ… Ñхем</span></a></li> <li class="toclevel-1 tocsection-5"><a href="#API_.D0.BA.D0.BE.D1.80.D0.B8.D1.81.D1.82.D1.83.D0.B2.D0.B0.D1.86.D1.8C.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D1.83.D0.B2.D0.B0.D0.BD.D0.BD.D1.8F"><span class="tocnumber">5</span> <span class="toctext">API кориÑтувацького програмуваннÑ</span></a></li> <li class="toclevel-1 tocsection-6"><a href="#.D0.A1.D0.B5.D1.80.D0.B2.D1.96.D1.81.D0.BD.D1.96_.D0.BA.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D0.B8-.D1.84.D1.83.D0.BD.D0.BA.D1.86.D1.96.D1.97_.D0.86.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D1.83_.D0.A3.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D1.96.D0.BD.D0.BD.D1.8F"><span class="tocnumber">6</span> <span class="toctext">СервіÑні команди-функції ІнтерфейÑу УправліннÑ</span></a></li> <li class="toclevel-1 tocsection-7"><a href="#.D0.9F.D0.BE.D1.81.D0.B8.D0.BB.D0.B0.D0.BD.D0.BD.D1.8F"><span class="tocnumber">7</span> <span class="toctext">ПоÑиланнÑ</span></a></li> </ul> </div> <h2><span class="mw-headline" id=".D0.9A.D0.BE.D0.BD.D1.82.D1.80.D0.BE.D0.BB.D0.B5.D1.80_.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D1.8F"><span class="mw-headline-number">1</span> Контролер модулÑ</span></h2> <p>Кожен контролер цього Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¼Ñ–Ñтить блокову Ñхему, Ñку він обраховує із зазначеним періодом. Ð”Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð¾Ð±Ñ‡Ð¸Ñлених даних в ÑиÑтему OpenSCADA в контролері можуть ÑтворюватиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸. Приклад вкладки конфігурації контролера даного типу зображений на риÑ.3. </p> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:820px;"><a class="image" href="http://oscada.org/wiki/File:BlockCalc_cntr_uk.png"><img class="thumbimage" height="639" src="../files/BlockCalc_cntr_uk.png" width="818" /></a> <div class="thumbcaption">РиÑ. 3. Вкладка конфігурації контролера.</div></div></div></div> <p>За допомогою цієї вкладки можна вÑтановити: </p> <ul><li> Стан об'єкту контролеру, а Ñаме: ÑтатуÑ, "Ввімкнено", "ВиконуєтьÑÑ" та ім'Ñ Ñховища, Ñке міÑтить конфігурацію.</li> <li> Ідентифікатор, ім'Ñ Ñ‚Ð° Ð¾Ð¿Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÐµÑ€Ñƒ.</li> <li> Стан "Ввімкнено" та "ВиконуєтьÑÑ", у Ñкий переводити об'єкт контролеру при запуÑку.</li> <li> ÐŸÐ»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ñ‡Ð¸ÑленнÑ, пріоритет задачі Ð¾Ð¿Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¶ÐµÑ€ÐµÐ» даних Ñ– кількіÑть ітерацій в одному циклі Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¾Ð±Ñ‡Ð¸ÑÐ»ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÐ¾Ð²Ð¾Ñ— Ñхеми контролера.</li></ul> <h2><span class="mw-headline" id=".D0.91.D0.BB.D0.BE.D0.BA.D0.BE.D0.B2.D0.B0_.D1.81.D1.85.D0.B5.D0.BC.D0.B0_.D0.BA.D0.BE.D0.BD.D1.82.D1.80.D0.BE.D0.BB.D0.B5.D1.80.D0.B0"><span class="mw-headline-number">2</span> Блокова Ñхема контролера</span></h2> <p>Блокова Ñхема формуєтьÑÑ Ð·Ð° допомогою вкладки блоків контролера, конфігурації блоку (риÑ.4) та його зв'Ñзків (риÑ.5). Блоки зберігаютьÑÑ Ñƒ таблиці із назвою "BlckCalcBlcks_{CntrId}". </p><p>Блоки блокової Ñхеми можуть зв'ÑзуватиÑÑ Ñк між Ñобою, так Ñ– підключатиÑÑ Ð´Ð¾ атрибутів параметрів. Самі блоки при цьому не міÑÑ‚Ñть Ñтруктури входів/виходів (IO), а міÑÑ‚Ñть значеннÑ, виходÑчи зі Ñтруктури IO пов'Ñзаної функції. Функції Ð´Ð»Ñ Ð·Ð²'ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ Ð· блоком викориÑтовуютьÑÑ Ð· об'єктної моделі ÑиÑтеми OpenSCADA. </p><p>Будь-Ñкий блок може в будь-Ñкий момент виключений з обробки та переконфігурований, піÑÐ»Ñ Ñ‡Ð¾Ð³Ð¾ може бути знову включений в обробку. Зв'Ñзки між блоками можуть конфігуруватиÑÑ Ð±ÐµÐ· винÑтку блоків з обробки та зупинки контролера. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÑÑ–Ñ… IO, не охоплених зв'Ñзками, можуть бути змінені в процеÑÑ– обробки. </p><p>За допомогою вкладки блоків можна: </p> <ul><li> додати блок в блокову Ñхему;</li> <li> видалити блок з блокової Ñхеми;</li> <li> проконтролювати загальну кількіÑть, кількіÑть включених Ñ– кількіÑть оброблюваних блоків.</li></ul> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:747px;"><a class="image" href="http://oscada.org/wiki/File:BlockCalc_cfg_uk.png"><img class="thumbimage" height="575" src="../files/BlockCalc_cfg_uk.png" width="745" /></a> <div class="thumbcaption">РиÑ. 4. Вкладка конфігурації блоку блокової Ñхеми.</div></div></div></div> <p>За допомогою форми конфігурації блоку можна вÑтановити: </p> <ul><li> Ñтан блоку, а Ñаме: "Ввімкнений" Ñ– "ОброблÑєтьÑÑ";</li> <li> ідентифікатор, ім'Ñ Ñ‚Ð° Ð¾Ð¿Ð¸Ñ Ð±Ð»Ð¾ÐºÑƒ;</li> <li> Ñтан, в Ñкий переводити блок при завантаженні: "Вмикати" Ñ– "ОброблÑти";</li> <li> вказати блок, Ñкий повинен обов'Ñзково виконуватиÑÑŒ перед даними;</li> <li> призначити робочу функцію з об'єктної моделі, перейти до функції Ð´Ð»Ñ Ð¾Ð·Ð½Ð°Ð¹Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ.</li></ul> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:747px;"><a class="image" href="http://oscada.org/wiki/File:BlockCalc_blk_lnk_uk.png"><img class="thumbimage" height="575" src="../files/BlockCalc_blk_lnk_uk.png" width="745" /></a> <div class="thumbcaption">РиÑ. 5. Вкладка конфігурації зв'Ñзків блоку блокової Ñхеми.</div></div></div></div> <p>За допомогою вкладки конфігурації зв'Ñзків блоку блокової Ñхеми можна вÑтановити зв'Ñзки Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ параметра блоку окремо. </p><p>ПідтримуютьÑÑ Ð½Ð°Ñтупні типи зв'Ñзків: </p> <ul><li> міжблокові: Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ð¾Ð´Ñƒ блоку до виходу іншого блоку, входу одного блоку до входу іншого Ñ– виходу одного блоку до входу іншого;</li> <li> дальні міжблокові; з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð±Ð»Ð¾ÐºÑ–Ð² з різних контролерів даного модулÑ;</li> <li> коефіцієнт; Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ñ…Ð¾Ð´Ñƒ в конÑтанту, вÑÑ– входи/виходи за замовчуваннÑм ініційовані Ñк конÑтанти;</li> <li> зовнішній атрибут параметра.</li></ul> <p>Ð”Ð»Ñ ÑƒÑтановки значень параметрів блоку призначена відповідна вкладка (риÑ.6). </p><p>Відповідно з реалізацією функцій кориÑтувача в ÑиÑтемі OpenSCADA підтримуютьÑÑ Ñ‡Ð¾Ñ‚Ð¸Ñ€Ð¸ оÑновних типи IO: ціле, дійÑне, логічне Ñ– Ñ€Ñдок. </p> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:747px;"><a class="image" href="http://oscada.org/wiki/File:BlockCalc_blk_val_uk.png"><img class="thumbimage" height="575" src="../files/BlockCalc_blk_val_uk.png" width="745" /></a> <div class="thumbcaption">РиÑ. 6. Вкладка конфігурації значень параметрів блоку блокової Ñхеми.</div></div></div></div> <p>Модулем передбачено оÑобливу обробку низки входів/виходів блоку: </p> <ul><li> <i>f_frq</i> — ЧаÑтота обчиÑÐ»ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ Ñ‡Ð°Ñ Ð¿Ñ–ÑÐ»Ñ Ð¾Ñтаннього обчиÑÐ»ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒ, негативне у Ñекундах, Ð´Ð»Ñ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° CRON, тільки читаннÑ.</li> <li> <i>f_start</i> — Прапорець першого Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒ, запуÑк, тільки читаннÑ.</li> <li> <i>f_stop</i> — Прапорець оÑтаннього Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒ, зупинка, тільки читаннÑ.</li> <li> <i>this</i> — Об'єкт цього блоку.</li></ul> <h2><span class="mw-headline" id=".D0.9F.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.B8_.D0.BA.D0.BE.D0.BD.D1.82.D1.80.D0.BE.D0.BB.D0.B5.D1.80.D1.83"><span class="mw-headline-number">3</span> Параметри контролеру</span></h2> <p>Модуль надає тільки один "Стандартний (std)" тип параметрів із назвою таблиці параметрів "BlckCalcPrm_{CntrId}". Параметр Ñлугує Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¾Ð±Ñ‡Ð¸Ñлених в блоках даних на атрибути параметрів контролера. Приклад вкладки конфігурації параметра наведено на риÑ.7. </p> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:785px;"><a class="image" href="http://oscada.org/wiki/File:BlockCalc_prm_uk.png"><img class="thumbimage" height="646" src="../files/BlockCalc_prm_uk.png" width="783" /></a> <div class="thumbcaption">РиÑ. 7. Вкладка конфігурації значень параметрів контролера.</div></div></div></div> <p>За допомогою цієї вкладки можна вÑтановити: </p> <ul><li> Ñтан параметра, а Ñаме: "Включений" Ñ– тип параметра;</li> <li> ідентифікатор, ім'Ñ Ñ‚Ð° Ð¾Ð¿Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°;</li> <li> Ñтан, в Ñкий переводити параметр при завантаженні: "Включений";</li> <li> перелік атрибутів, відображених на параметри блоків. ФормуєтьÑÑ Ñƒ виглÑді ÑпиÑку елементів у форматі: {BLK}.{BLK_IO}[:{AID}:{ANM}]. Де:</li></ul> <dl><dd><i>{BLK}</i> — ідентифікатор блоку, блокової Ñхеми; Ð´Ð»Ñ Ð¿Ð¾Ñтійної Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÑтановлюєтьÑÑ: <dl><dd>'*s' — Ñтроковий тип;</dd> <dd>'*i' — цілочиÑельний тип;</dd> <dd>'*r' — дійÑний тип;</dd> <dd>'*b' — логічний тип.</dd></dl></dd> <dd><i>{BLK_IO}</i> — параметр блоку, блокової Ñхеми; Ð´Ð»Ñ Ð¿Ð¾Ñтійної значень вÑтановлюєтьÑÑ Ð² Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñƒ;</dd> <dd><i>{AID}</i> — ідентифікатор атрибуту параметра;</dd> <dd><i>{ANM}</i> — ім'Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð° параметра.</dd></dl> <h2><span class="mw-headline" id=".D0.9A.D0.BE.D0.BF.D1.96.D1.8E.D0.B2.D0.B0.D0.BD.D0.BD.D1.8F_.D0.B1.D0.BB.D0.BE.D0.BA.D0.BE.D0.B2.D0.B8.D1.85_.D1.81.D1.85.D0.B5.D0.BC"><span class="mw-headline-number">4</span> ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð±Ð»Ð¾ÐºÐ¾Ð²Ð¸Ñ… Ñхем</span></h2> <p>Ð”Ð»Ñ ÑÐ¿Ñ€Ð¾Ñ‰ÐµÐ½Ð½Ñ Ñ– приÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð¸ розробки Ñкладних Ñ– повторюваних блокових Ñхем передбачено механізм ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ–Ð² блокової Ñхеми Ñк окремо, так Ñ– блокових Ñхем цілком. Механізм ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÐ³Ñ€Ð¾Ð²Ð°Ð½Ð¸Ð¹ в Ñдро OpenSCADA Ñ– працює прозоро. </p> <h2><span class="mw-headline" id="API_.D0.BA.D0.BE.D1.80.D0.B8.D1.81.D1.82.D1.83.D0.B2.D0.B0.D1.86.D1.8C.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D1.83.D0.B2.D0.B0.D0.BD.D0.BD.D1.8F"><span class="mw-headline-number">5</span> API кориÑтувацького програмуваннÑ</span></h2> <p>ДеÑкі об'єкти Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð½Ð°Ð´Ð°ÑŽÑ‚ÑŒ функції кориÑтувацького програмуваннÑ. </p> <div class="floatright"><a class="image" href="http://oscada.org/wiki/File:Oscada_UserOM_BlockCalc_uk.png" title="Об'єктна модель кориÑтувача Ð¼Ð¾Ð´ÑƒÐ»Ñ BlockCalc."><img alt="Об'єктна модель кориÑтувача Ð¼Ð¾Ð´ÑƒÐ»Ñ BlockCalc." height="214" src="../files/Oscada_UserOM_BlockCalc_uk.png" width="218" /></a></div> <p><b>Об'єкт "Блок" (SYS.DAQ.BlockCalc["cntr"]["blk_block"])</b> </p> <ul><li> <i>ElTp cfg(string nm)</i> — Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ <i>nm</i> об'єкта.</li> <li> <i>bool cfgSet(string nm, ElTp val)</i> [<span style="color:red">доÑтуп до відповідної підÑиÑтеми</span>] — уÑтановка конфігураційного Ð¿Ð¾Ð»Ñ <i>nm</i> об'єкта у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ <i>val</i>.</li> <li> <i>TCntrNodeObj cntr()</i> — повертає об'єкт контролеру цього параметру, незалежно від вкладеноÑті.</li></ul> <p><br /> </p> <h2><span class="mw-headline" id=".D0.A1.D0.B5.D1.80.D0.B2.D1.96.D1.81.D0.BD.D1.96_.D0.BA.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D0.B8-.D1.84.D1.83.D0.BD.D0.BA.D1.86.D1.96.D1.97_.D0.86.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D1.83_.D0.A3.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D1.96.D0.BD.D0.BD.D1.8F"><span class="mw-headline-number">6</span> СервіÑні команди-функції ІнтерфейÑу УправліннÑ</span></h2> <p>СервіÑні функції — це Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð¾Ñтупу до OpenSCADA із зовнішніх ÑиÑтем поÑередництвом <a href="../API.html#CntrNode" title="Special:MyLanguage/Documents/API">ІнтерфейÑу УправліннÑ</a>. Цей механізм покладено в оÑнову уÑього обміну вÑередині OpenSCADA, реалізованого шлÑхом Ñлабких зв'Ñзків та <a href="../Modules/SelfSystem.html" title="Special:MyLanguage/Modules/SelfSystem">влаÑного протоколу обміну OpenSCADA</a>. </p><p><br /> <b><u>ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ вÑÑ–Ñ… атрибутів блоку об'єкту контролеру</u></b><br /> ЗÐП: <i><get path="/DAQ/BlockCalc/<b>{CNTR}</b>/blk_<b>{BLK}</b>/%2fserv%2fattr" /></i> </p> <ul><li> <i>CNTR</i>, <i>BLK</i> — об'єкт контролеру та блок у блоковій Ñхемі.</li></ul> <p>ВІДП: <i><get path="/DAQ/BlockCalc/{CNTR}/blk_{BLK}/%2fserv%2fattr" rez="<b>0</b>"><b>{attributes}</b></get></i> </p> <ul><li> <i>attributes</i> — атрибути блоку в тегах "a": <i><a id="<b>{ID}</b>"><b>{value}</b></a></i> <ul><li> <i>ID</i> — ідентифікатор атрибуту;</li> <li> <i>value</i> — Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñƒ.</li></ul></li></ul> <div class="mw-highlight mw-content-ltr" dir="ltr" style="margin-left: 10pt"><pre><span class="nt"><get</span> <span class="na">path=</span><span class="s">"/DAQ/BlockCalc/CM101/blk_AT101_1/%2fserv%2fattr"</span> <span class="na">rez=</span><span class="s">"0"</span> <span class="na">user=</span><span class="s">"roman"</span><span class="nt">></span> <span class="nt"><a</span> <span class="na">id=</span><span class="s">"Fi"</span><span class="nt">></span>50.3839725707191<span class="nt"></a></span> <span class="nt"><a</span> <span class="na">id=</span><span class="s">"Pi"</span><span class="nt">></span>10.2588208891757<span class="nt"></a></span> <span class="nt"><a</span> <span class="na">id=</span><span class="s">"Ti"</span><span class="nt">></span>331.149550201738<span class="nt"></a></span> <span class="nt"><a</span> <span class="na">id=</span><span class="s">"Si"</span><span class="nt">></span>0.071<span class="nt"></a></span> <span class="nt"><a</span> <span class="na">id=</span><span class="s">"li"</span><span class="nt">></span>10<span class="nt"></a></span> <span class="nt"></get></span> </pre></div> <p><b><u>Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ переліку атрибутів блоку об'єкту контролеру</u></b><br /> ЗÐП[<b>root-DAQ</b>]: <i><set path="/DAQ/BlockCalc/<b>{CNTR}</b>/blk_<b>{BLK}</b>/%2fserv%2fattr"><b>{attributes}</b></set></i> </p> <ul><li> <i>CNTR</i>, <i>BLK</i> — об'єкт контролеру та блок у блоковій Ñхемі;</li> <li> <i>attributes</i> — атрибути блоку в тегах "a": <i><a id="<b>{ID}</b>"><b>{value}</b></a></i> <ul><li> <i>ID</i> — ідентифікатор атрибуту;</li> <li> <i>value</i> — Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñƒ.</li></ul></li></ul> <div class="mw-highlight mw-content-ltr" dir="ltr" style="margin-left: 10pt"><pre><span class="nt"><set</span> <span class="na">path=</span><span class="s">"/DAQ/BlockCalc/CM101/blk_AT101_1/%2fserv%2fattr"</span><span class="nt">></span> <span class="nt"><a</span> <span class="na">id=</span><span class="s">"Fi"</span><span class="nt">></span>50.3839725707191<span class="nt"></a></span> <span class="nt"><a</span> <span class="na">id=</span><span class="s">"Pi"</span><span class="nt">></span>10.2588208891757<span class="nt"></a></span> <span class="nt"></set></span> </pre></div> <p><br /> </p> <h2><span class="mw-headline" id=".D0.9F.D0.BE.D1.81.D0.B8.D0.BB.D0.B0.D0.BD.D0.BD.D1.8F"><span class="mw-headline-number">7</span> ПоÑиланнÑ</span></h2> <ul><li> <a class="external" href="http://oscada.org/wiki/File:Oscada_UserOM_BlockCalc_uk.odg" title="File:Oscada UserOM BlockCalc uk.odg">Діаграма: Об'єктна модель кориÑтувача Ð¼Ð¾Ð´ÑƒÐ»Ñ BlockCalc.</a></li></ul> </div><table style="border-top: dotted 2px #999999; margin-top: 20pt; color: gray;" width="100%"><tr><td style="text-align: left;" width="40%"><a href="http://oscada.org/wiki/Modules/BlockCalc/uk">Modules/BlockCalc/uk</a> - <a href="http://oscada.org/en/main/about-the-project/licenses/">GFDL</a></td><td style="text-align: center;">April 2025</td><td style="text-align: right;" width="40%">OpenSCADA 1+r3018</td></tr></table></body> </html>