<?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&amp;group=page-Documents%2FFAQ&amp;action=page&amp;filter=&amp;language=uk" rel="nofollow noreferrer noopener" target="_blank">translated version</a></span> of the page <a class="external" href="http://oscada.org/wiki/Documents/FAQ" title="Documents/FAQ">Documents/FAQ</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/FAQ.html" title="Documents/FAQ (100% translated)">English</a>&nbsp;• ‎<a class="mw-pt-progress mw-pt-progress--complete" href="../ru/FAQ.html" title="Документы/Часто задаваемые вопросы (91% translated)">mRussian</a>&nbsp;• ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">Українська</span></div></div>
<div class="toc" id="toc"><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#.D0.9F.D0.BE.D0.BB.D1.96.D1.82.D0.B8.D1.87.D0.BD.D1.96_.D1.82.D0.B0_.D0.BA.D0.BE.D0.BD.D1.86.D0.B5.D0.BF.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D1.96"><span class="tocnumber">1</span> <span class="toctext">Політичні та концептуальні</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#.D0.90.D1.80.D1.85.D1.96.D1.82.D0.B5.D0.BA.D1.82.D1.83.D1.80.D0.BD.D1.96.2C_.D0.B2.D0.B8.D0.BA.D0.BE.D1.80.D0.B8.D1.81.D1.82.D0.B0.D0.BD.D0.BD.D1.8F_.D1.82.D0.B0_.D0.BA.D0.BE.D1.80.D0.BE.D1.82.D0.BA.D1.96_.22.D0.AF.D0.BA_.D0.B2.D0.B8.D0.BA.D0.BE.D0.BD.D0.B0.D1.82.D0.B8_....22"><span class="tocnumber">2</span> <span class="toctext">Архітектурні, використання та короткі "Як виконати ..."</span></a>
<ul>
<li class="toclevel-2 tocsection-3"><a href="#.D0.AF.D0.B4.D1.80.D0.BE_OpenSCADA"><span class="tocnumber">2.1</span> <span class="toctext"><span>Ядро OpenSCADA</span></span></a></li>
<li class="toclevel-2 tocsection-4"><a href="#.D0.91.D0.94"><span class="tocnumber">2.2</span> <span class="toctext">БД</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="#.D0.A4.D1.96.D0.B7.D0.B8.D1.87.D0.BD.D0.B8.D0.B9_.D1.82.D0.B0_.D0.BB.D0.BE.D0.B3.D1.96.D1.87.D0.BD.D0.B8.D0.B9-.D0.B2.D1.96.D1.80.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D0.B8.D0.B9_.D0.B7.D0.B1.D1.96.D1.80_.D0.B4.D0.B0.D0.BD.D0.B8.D1.85"><span class="tocnumber">2.3</span> <span class="toctext">Фізичний та логічний-віртуальний збір даних</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="#.D0.90.D1.80.D1.85.D1.96.D0.B2.D1.83.D0.B2.D0.B0.D0.BD.D0.BD.D1.8F-.D1.96.D1.81.D1.82.D0.BE.D1.80.D1.96.D1.8F_.D1.82.D0.B0_.D0.9F.D0.BE.D1.80.D1.83.D1.88.D0.B5.D0.BD.D0.BD.D1.8F"><span class="tocnumber">2.4</span> <span class="toctext">Архівування-історія та Порушення</span></a></li>
<li class="toclevel-2 tocsection-7"><a href="#.D0.86.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81_.D0.BA.D1.96.D0.BD.D1.86.D0.B5.D0.B2.D0.BE.D0.B3.D0.BE_.D0.BA.D0.BE.D1.80.D0.B8.D1.81.D1.82.D1.83.D0.B2.D0.B0.D1.87.D0.B0"><span class="tocnumber">2.5</span> <span class="toctext">Інтерфейс кінцевого користувача</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-8"><a href="#.D0.9F.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC.D0.B8_.28.D0.B0.D0.BA.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D1.96.2C_.D0.BE.D1.82.D0.BE.D1.87.D0.B5.D0.BD.D0.BD.D1.8F.2C_.D0.B2.D0.B8.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.BE.29"><span class="tocnumber">3</span> <span class="toctext"><span>Проблеми</span> (актуальні, оточення, виправлено)</span></a></li>
</ul>
</div>

<h2><span class="mw-headline" id=".D0.9F.D0.BE.D0.BB.D1.96.D1.82.D0.B8.D1.87.D0.BD.D1.96_.D1.82.D0.B0_.D0.BA.D0.BE.D0.BD.D1.86.D0.B5.D0.BF.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D1.96"><span class="mw-headline-number">1</span> Політичні та концептуальні</span></h2>
<p><b>Q:</b> OpenSCADA незрозуміла та складна у сприйняті. Чому так та чи є інструкції швидкого старту та просунутого "Як виконати ..."?<br /> 
<b>Re:</b> OpenSCADA детально описано, гранично структуровано та формалізовано. Однак враження незрозумілості та складності очікувані. Виходячи з цілей проєкту, програма є гранично модульною, що означає наявність великої кількості варіантів конфігурації та використання. З одного боку це ускладнює сприйняття, але з іншого — підвищує шанси "охоплення" саме вашого спеціалізованого завдання. Окрім того, треба завжди пам'ятати, що складне та незрозуміле все невідоме, яке дійсно зовсім необов'язково є таким. І цей психологічний бар'єр треба переборювати при вивченні будь чого нового. Посібник зі швидкого старту існує та доступний <a href="Quick_start.html" title="Special:MyLanguage/Documents/Quick start">тут</a>, розширений "Як виконати ..." також <a href="How_to.html" title="Special:MyLanguage/Documents/How to">тут</a>.
</p><p><b>Q:</b> Чи працює OpenSCADA у операційній системі QNX, FreeBSD, MS Windows?<br /> 
<b>Re:</b> OpenSCADA розробляється за принципами багатоплатформності, базуючись на визнаному світовому стандарті POSIX та багатоплатформених бібліотеках. Однак, у зв'язку з обмеженістю ресурсів та інтересами автора і розробників, проєкт ведеться лише у ОС Linux. Подальша адаптація до інших платформ запланована після випуску версії 1.0 та наразі OpenSCADA працює на апаратних платформах x86, x86_64, ARM та програмній платформі Android. Підтримка тієї або іншої платформи буде залежати від зацікавленості спільноти та наявності окремого мантейнера для апаратно-програмної платформи.
</p><p><b>Q:</b> Чи можна керувати OpenSCADA за допомогою звичайного WEB-браузера?<br />
<b>Re:</b> Так, це можливо. Для керування OpenSCADA із WEB-браузера створено модулі <a href="Modules/WebCfg.html" title="Special:MyLanguage/Modules/WebCfg">UI.WebCfg</a> та <a href="Modules/WebCfgD.html" title="Special:MyLanguage/Modules/WebCfgD">UI.WebCfgD</a>; для виконання інтерфейсів оператору створено модуль <a href="Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">UI.WebVision</a> та для створення користувацьких HTML сторінок створено модуль <a href="Modules/WebUser.html" title="Special:MyLanguage/Modules/WebUser">UI.WebUser</a>. Які викликаються модулем <a href="Modules/HTTP.html" title="Special:MyLanguage/Modules/HTTP">Protocol.HTTP</a>, підсистеми "Транспортні Протоколи".
</p><p><b>Q:</b> Чи допускає програма додання/видалення/оновлення модулів на ходу (без зупинки)?<br /> 
<b>Re:</b> Цю можливість передбачено програмою та вона забезпечується підсистемою "Керування модулями". Фактично, оновлення модулів може відбуватися автоматично, після виявлення нової версії модуля.
</p>
<h2><span class="mw-headline" id=".D0.90.D1.80.D1.85.D1.96.D1.82.D0.B5.D0.BA.D1.82.D1.83.D1.80.D0.BD.D1.96.2C_.D0.B2.D0.B8.D0.BA.D0.BE.D1.80.D0.B8.D1.81.D1.82.D0.B0.D0.BD.D0.BD.D1.8F_.D1.82.D0.B0_.D0.BA.D0.BE.D1.80.D0.BE.D1.82.D0.BA.D1.96_.22.D0.AF.D0.BA_.D0.B2.D0.B8.D0.BA.D0.BE.D0.BD.D0.B0.D1.82.D0.B8_....22"><span class="mw-headline-number">2</span> Архітектурні, використання та короткі "Як виконати ..."</span></h2>
<h3><span class="mw-headline" id=".D0.AF.D0.B4.D1.80.D0.BE_OpenSCADA"><span class="mw-headline-number">2.1</span> <span id="UsingCore" title="#UsingCore">Ядро OpenSCADA</span></span></h3>
<p><b>Q:</b> Яким чином реалізується підтримка багатьох мов? Чи можу я виконати локалізацію на рідну мову?<br /> 
<b>Re:</b> Багатомовна підтримка реалізована ґрунтуючись на стандарті інтернаціоналізації I18N. Та файли інтернаціоналізації модулів відокремлено від файлу інтернаціоналізації ядра програми, що забезпечує повноцінну підтримку незалежного розповсюдження та розробки модулів до OpenSCADA. Переклад програми загалом та модулів зокрема може бути виконано незалежно від наявності їх вихідних текстів. Для перекладу достатньо отримати *.po або *.pot файли потрібного компоненту та у звичайному текстовому редакторі, або спеціалізованій програмі, виконати переклад повідомлень у файлах з англійської на потрібну мову. Актуальні файли ви можете отримати з <a class="external text" href="http://oscada.org/svn/trunk/OpenSCADA" rel="nofollow noreferrer noopener" target="_blank">репозиторію вихідних текстів проєкту</a> у теці "src/po" ядра програми та теках "src/moduls/{subsys}/{module}/po" модулів, а по завершенню запропонувати результати нового перекладу до включення у репозиторії вихідних текстів, написавши до <a class="external text" href="http://oscada.org/ua/forum/topics/proekt-1/" rel="nofollow noreferrer noopener" target="_blank">форуму проєкту</a> або прямо <a class="external" href="http://oscada.org/wiki/User:RomanSavochenko" title="User:RomanSavochenko">автору та головному розробнику проєкту</a>. PO-файли не використовуються програмою безпосередньо, тому для швидкої перевірки результату перекладу та виправлення помилок форматування можете скористатися командою <span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">msgfmt -vo [openscada|oscd_{ModId}].mo {lang}.po</span> і розташувати отриманий MO-файл <b>[openscada|oscd_{ModId}].mo</b> до теки "/usr/share/locale/{lang}/LC_MESSAGES" актуальної інсталяції OpenSCADA для мови <i>lang</i>.
</p><p><b>Q:</b> Чи можу я створити свій власний модуль для будь якої підсистеми?<br /> 
<b>Re:</b> Так, звісно. Для допомоги в цьому створено <a href="API.html" title="Special:MyLanguage/Documents/API">документ</a>, де практично повністю описано архітектуру ядра, його функції та API модулів різних підсистем. Додатково створено <a href="How_to_Create_module.html" title="Special:MyLanguage/Documents/How to/Create module">посібник по створенню модулів до OpenSCADA</a> та для кожної підсистеми створено модуль-шаблон, взявши за основу який можна швидко створити власний модуль.
</p><p><b>Q:</b> Як забезпечується розподіл доступу?<br /> 
<b>Re:</b> Використовується схема безпеки подібна до UNIX ОС. Так, потрібні компоненти мають власника, входять до груп та містять тріаду доступу "rwxrwxrwx". Крім того цей механізм безпеки втілено у <a href="API.html#CntrNode" title="Special:MyLanguage/Documents/API">інтерфейсі керування OpenSCADA</a>, який своєю чергою пронизує всю програму.
</p><p><b>Q:</b> Яким чином в OpenSCADA можна реалізовувати через-модульні зв'язки?<br /> 
<b>Re:</b> Через-модульні зв'язки можуть бути наступних типів:
</p>
<ul><li> Стандартний інтерфейс доступу — здійснюється за допомогою віртуального інтерфейсу модульних підсистем.</li>
<li> Розширений інтерфейс доступу — передбачає експорт функції зовнішнього інтерфейсу, модулем експортером, та наступне підключення модуля імпортера до цих функцій за допомогою функцій "<a href="API.html#TModule" title="Special:MyLanguage/Documents/API">TModule::modFunc()</a>".</li>
<li> Функції користувача — будь який компонент програми може реєструвати власні функції користувача ("<a href="API.html#TCntrNode" title="Special:MyLanguage/Documents/API">TCntrNode::objFuncCall()</a>"), які надалі можуть бути використані в оточенні користувацького програмування OpenSCADA.</li></ul>
<p><b>Q:</b> Як зібрати OpenSCADA з вихідних текстів?<br /> 
<b>Re:</b> Збірка будь якого програмного проєкту з вихідних текстів, на системній мові на кшталт C/C++ та складністю вище середнього, є нетривіальним завданням, особливо для специфічних оточень та оточень до яких ще не здійснено адаптацію. Для вирішення цього завдання потрібна відповідна підготовка та попередній досвід збірки. Якщо є можливість отримати OpenSCADA зібраною та у вигляді готових пакунків під ваше оточення, то обов'язково скористайтеся нею! Якщо ж немає пакунків під ваше оточення або ви свідомо бажаєте зібрати програму з вихідних текстів під адаптоване оточення тоді скористайтеся <a href="How_to_Build_from_source.html" title="Special:MyLanguage/Documents/How to/Build from source">посібником для збірки з вихідних текстів</a>. Адаптація до збірки та роботи у інших оточеннях є значно більш нетривіальним завданням, особливо до оточень дуже далеких від POSIX або поняття міжплатформової сумісності загалом, є окремим під-проєктом OpenSCADA та передбачає тривалий процес на кшталт <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Adaption_to_Android" title="Special:MyLanguage/Sub-projects/Adaption to Android">адаптації до Android</a>, тому не треба її плутати із простою збіркою під адаптоване оточення!
</p>
<h3><span class="mw-headline" id=".D0.91.D0.94"><span class="mw-headline-number">2.2</span> БД</span></h3>
<p><b>Q:</b> Чи можу я отримати дані безпосередньо з БД?<br />
<b>Re:</b> Так, ви можете. Для баз даних (БД), що підтримують SQL, ви можете використати <a href="User_API.html#SYS.BD" title="Special:MyLanguage/Documents/User API">функцію SQLReq()</a> до відповідної БД. Загалом та для не SQL баз даних можете використати API доступу до прошарку баз даних OpenSCADA у функціях таблиці БД <a href="User_API.html#SYS.BD" title="Special:MyLanguage/Documents/User API">fieldStruct(), fieldSeek(), fieldGet(), fieldSet(), fieldDel()</a>.
</p>
<h3><span class="mw-headline" id=".D0.A4.D1.96.D0.B7.D0.B8.D1.87.D0.BD.D0.B8.D0.B9_.D1.82.D0.B0_.D0.BB.D0.BE.D0.B3.D1.96.D1.87.D0.BD.D0.B8.D0.B9-.D0.B2.D1.96.D1.80.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D0.B8.D0.B9_.D0.B7.D0.B1.D1.96.D1.80_.D0.B4.D0.B0.D0.BD.D0.B8.D1.85"><span class="mw-headline-number">2.3</span> Фізичний та логічний-віртуальний збір даних</span></h3>
<p><b>Q:</b> Де і як виконувати додаткову логічну обробку атрибутів параметрів, включаючи логічне зв'язування у одному об'єкті?<br /> 
<b>Re:</b> Будь яка математична обробка атрибутів параметрів може виконуватися у обчислювальних об'єктах контролеру (модулях підсистемі "Збір даних"), наприклад, у блоковому обчислювальному контролері (<a href="Modules/BlockCalc.html" title="Special:MyLanguage/Modules/BlockCalc">DAQ.BlockCalc</a>) та об'єкті контролеру ґрунтованому на Java-подібній мові (<a href="Modules/JavaLikeCalc.html" title="Special:MyLanguage/Modules/JavaLikeCalc">DAQ.JavaLikeCalc</a>). Крім того, обробка може здійснюватися на логічному рівні параметрів (<a href="Modules/LogicLev.html" title="Special:MyLanguage/Modules/LogicLev">DAQ.LogicLev</a>) у модулях підсистеми "Збір даних", спеціально для цього передбачених (які працюють за шаблонами параметрів) або які містять вбудовану реалізацію механізму шаблонів параметрів. Тобто користувач може формувати параметри з потрібною структурою та алгоритмом після-обробки, формуючи логічно пов'язані об'єкти. Частина обробки може виконуватися безпосередньо при візуалізації (<a href="Modules/VCAEngine.html" title="Special:MyLanguage/Modules/VCAEngine">UI.VCAEngine</a>). Щодо збору даних в цілому дивіться у <a href="DAQ.html" title="Special:MyLanguage/Documents/DAQ">документі</a>.
</p><p><b>Q:</b> Де перевіряються шкали параметрів та різні уставки сигналізації?<br /> 
<b>Re:</b> Перевірка шкал та уставок може реалізовуватися самим контролером, з сигналізацією через відповідні атрибути параметрів, а також на логічному рівні параметрів, для "сирих" джерел даних. Крім того, даний аналіз може здійснюватися безпосередньо в середовищі візуалізації та управління (СВУ).
</p><p><b>Q:</b> Чи можу я отримати (прочитати та записати) значення атрибуту параметру збору даних, наприклад, з процедури користувацького інтерфейсу?<br />
<b>Re:</b> Основним інтерфейсом обміну значеннями параметрів збору даних з елементами або атрибутами відповідної частини OpenSCADA є статичне зв'язування, яке є найшвидшим. Однак внутрішня мова та динамічна об'єктна модель вузлів OpenSCADA дозволяє вам здійснювати динамічний доступ до об'єктів атрибутів параметрів збору даних, наприклад, ви можете отримати значення атрибуту <a href="User_API.html#SYS.DAQ" title="Special:MyLanguage/Documents/User API">функцією get()</a>.
</p><p><b>Q:</b> Як я можу зберегти-відновити модифіковані дані на логічному рівні?<br />
<b>Re:</b> Дійсно, інколи може знадобитися збереження та потім відновлення, переважно при перезапуску, деяких модифікованих динамічних даних на кшталт лічильників пробігу обладнання. В цілому, обробку такого роду джерел даних та обладнання треба здійснювати на <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Logical_level" title="Special:MyLanguage/Sub-projects/Logical level">логічному рівні</a> підсистеми "Збір даних", а реалізувати її можна багатьма способами, що передбачають збереження даних на деякому сховищі та подальше їх відновлення, однак більш відомі способи це:
</p>
<ul><li> Періодичне, або при завершені, збереження контексту параметрів шаблону за допомогою запиту користувацького API OpenSCADA через <a href="User_API.html#SYS" title="Special:MyLanguage/Documents/User API">cntrReq()</a>, де "force" для примусового збереження немодифікованих параметрів:</li></ul>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span class="nx">SYS</span><span class="p">.</span><span class="nx">cntrReq</span><span class="p">(</span><span class="nx">SYS</span><span class="p">.</span><span class="nx">XMLNode</span><span class="p">(</span><span class="s2">"save"</span><span class="p">).</span><span class="nx">setAttr</span><span class="p">(</span><span class="s2">"path"</span><span class="p">,</span><span class="k">this</span><span class="p">.</span><span class="nx">nodePath</span><span class="p">()</span><span class="o">+</span><span class="s2">"/%2fobj"</span><span class="p">).</span><span class="nx">setAttr</span><span class="p">(</span><span class="s2">"force"</span><span class="p">,</span><span class="s2">"1"</span><span class="p">));</span>
</pre></div>
<ul><li> Якщо атрибут шаблону з лічильником архівується, тоді при старті параметру можете отримати останнє значення з цього архіву, наприклад, так:</li></ul>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span class="k">if</span><span class="p">(</span><span class="nx">f_start</span><span class="p">)</span>    <span class="nx">prevArchRestore</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
<span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">prevArchRestore</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">archEnd</span><span class="o">=</span><span class="k">this</span><span class="p">.</span><span class="nx">cntr</span><span class="p">.</span><span class="nx">arch</span><span class="p">().</span><span class="nx">end</span><span class="p">(</span><span class="s2">"FSArch.1s"</span><span class="p">)))</span> <span class="p">{</span>
    <span class="nx">SYS</span><span class="p">.</span><span class="nx">messInfo</span><span class="p">(</span><span class="s2">"testArch"</span><span class="p">,</span> <span class="s2">"val="</span><span class="o">+</span><span class="k">this</span><span class="p">.</span><span class="nx">cntr</span><span class="p">.</span><span class="nx">arch</span><span class="p">().</span><span class="nx">getVal</span><span class="p">(</span><span class="nx">archEnd</span><span class="p">)</span><span class="o">+</span><span class="s2">"; "</span>
               <span class="s2">"val1="</span><span class="o">+</span><span class="k">this</span><span class="p">.</span><span class="nx">cntr</span><span class="p">.</span><span class="nx">arch</span><span class="p">().</span><span class="nx">getVal</span><span class="p">(</span><span class="nx">archEnd</span><span class="p">,</span><span class="kc">false</span><span class="p">,</span><span class="s2">"FSArch.1s"</span><span class="p">)</span><span class="o">+</span><span class="s2">"; "</span>
               <span class="s2">"val2="</span><span class="o">+</span><span class="k">this</span><span class="p">.</span><span class="nx">cntr</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">archEnd</span><span class="o">/</span><span class="mi">1000000</span><span class="p">,</span><span class="nx">archEnd</span><span class="o">%</span><span class="mi">1000000</span><span class="p">));</span>
    <span class="nx">cntr</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cntr</span><span class="p">.</span><span class="nx">arch</span><span class="p">().</span><span class="nx">getVal</span><span class="p">(</span><span class="nx">archEnd</span><span class="p">);</span>
    <span class="nx">prevArchRestore</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<ul><li> Створення спеціальної таблиці БД та запис/читання цих даних прямо у цю таблицю за посередництвом SQL-запитів через <a href="User_API.html#DB" title="Special:MyLanguage/Documents/User API">SQLReq()</a>.</li></ul>
<p><b>Q:</b> Чи можна, та яким чином, реалізується резервування параметрів?<br /> 
<b>Re:</b> Як і будь яка пост-обробка, резервування параметрів здійснюється <a href="DAQ.html#LogicLev" title="Special:MyLanguage/Documents/DAQ">логічним рівнем</a> шляхом створення шаблону параметра, що реалізує можливість у одному параметрі описувати декілька типових давачів, які будуть мати власні атрибути значень. Результуючє значення давачів буде поміщатися до узагальнювального атрибуту значення.
</p>
<h3><span class="mw-headline" id=".D0.90.D1.80.D1.85.D1.96.D0.B2.D1.83.D0.B2.D0.B0.D0.BD.D0.BD.D1.8F-.D1.96.D1.81.D1.82.D0.BE.D1.80.D1.96.D1.8F_.D1.82.D0.B0_.D0.9F.D0.BE.D1.80.D1.83.D1.88.D0.B5.D0.BD.D0.BD.D1.8F"><span class="mw-headline-number">2.4</span> Архівування-історія та Порушення</span></h3>
<p><b>Q:</b> Яким чином визначається циклічність архівації значень?<br /> 
<b>Re:</b> Архівація є незалежним від контролерів та їх параметрів завданням, та виконується вона модульною підсистемою "<a href="Program_manual.html#CfgArch" title="Special:MyLanguage/Documents/Program manual">Архіви-Історія</a>". Що та як архівувати визначається особисто для кожного атрибута параметру. Передбачено два режими архівації: пасивний та активний. Пасивна архівація визначається циклічністю отримання даних контролером — циклом модуля збору даних. Активна архівація забезпечується завданням підсистеми архівації та незалежно від циклу та способу збору даних модулем "DAQ".
</p><p><b>Q:</b> У процесі розробки-налагодження у мене залишаються невідповідні активні порушення. Що з ними робити?<br /> 
<b>Re:</b> Так, враховуючи, що порушення до таблиці активних порушень часто потрапляють-формуються користувацькими процедурами, то "залипання" їх там може траплятися. Відповідно, ви можете просто перезапустити проєкт OpenSCADA або видалити-зняти такі порушення у <a class="external" href="http://oscada.org/wiki/File:QTCfg_subsys_arch_mess_uk.png" title="File:QTCfg subsys arch mess uk.png">головній вкладці "Повідомлення" сторінки підсистеми "Архіви-Історія"</a>: обираєте рівень порушень "Інформація (1[X]), ПОРУШЕННЯ", встановлюєте розмір у 0, після чого у таблиці повідомлень мають бути всі актуальні порушення, окремі з яких можна прибрати через контекстне меню, а все видиме кнопкою під таблицею; для великої групи порушень, та не всіх, можете виставити їх чіткі характеристики часу, рівня та категорії, щоб побачити у таблиці, а відповідно "зняти" гуртом всі потрібні.
</p><p><b>Q:</b> Чи можлива робота з потоковими даними?<br />
<b>Re:</b> Потоковий та пакетний збір даних працює у зв'язці з архівом та його буфером. Тобто джерело, отримавши пакет/блок даних, безпосередньо поміщає його до архіву атрибута параметра, або ж бере пакет з буферу, при потоковому виводі.
</p><p><b>Q:</b> Чи можу я здійснити експорт архівних даних (історії) у інший формат, скажемо — CSV, Excel?<br />
<b>Re:</b> Загалом, експортувати архівні дані можете та тут є три особливості, а саме: місце, формати та режим експорту. Оскільки кінцевим користувачем, для якого ці дані формуються, є користувач кінцевого інтерфейсу візуалізації — оператор, то вбудована функція експорту надається <a href="Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">цими інтерфейсами</a> для даних примітивів <a href="Modules/VCAEngine.html#Diagram" title="Special:MyLanguage/Modules/VCAEngine">діаграми</a> та <a href="Modules/VCAEngine.html#Document" title="Special:MyLanguage/Modules/VCAEngine">документу</a>, де можна здійснити експорт у CSV, файл зображення та HTML. Щодо інших форматів даних, особливо закритих та одноплатформених на кшталт Excel, то експорт у них може бути реалізовано <a href="User_API.html" title="Special:MyLanguage/Documents/User API">користувацькою процедурою</a> через загальний інтерфейс візуалізації користувача як прямим формуванням, якщо формат простий, так і викликом зовнішньої утиліти перетворення, якщо вона доступна. Експорт загалом може здійснюватися у двох режимах: інтерактивному та потоковому. Саме інтерактивний режим вбудовано у інтерфейс користувача та він передбачає визначення діапазону та якості даних (даних примітивів), як обмежувальних факторів доцільного часу виконання цієї операції. Потоковий режим передбачає фонове, можливо навіть разом з основними процесами, здійснення експорту як поточних даних так і даних локальних архівів та часто використовується для експорту у таблицю БД з потрібною структурою. Експорт із оточення розробки, як і потоковий режим, вбудованими функціями не передбачається, окрім експериментальних на кшталт експорту у WAV. Це, за потреби, може бути реалізовано <a href="Libs_Service_procedures.html" title="Special:MyLanguage/Libs/Service procedures">сервісною процедурою</a> або частиною коду основного процесу для потокового режиму.
</p>
<h3><span class="mw-headline" id=".D0.86.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81_.D0.BA.D1.96.D0.BD.D1.86.D0.B5.D0.B2.D0.BE.D0.B3.D0.BE_.D0.BA.D0.BE.D1.80.D0.B8.D1.81.D1.82.D1.83.D0.B2.D0.B0.D1.87.D0.B0"><span class="mw-headline-number">2.5</span> Інтерфейс кінцевого користувача</span></h3>
<p><b>Q:</b> Яким чином здійснюється сигналізація мовою та що треба для її функціювання?<br />
<b>Re:</b> Сигналізація мовою, як і інші методи сигналізації, є елементом підсистеми "Інтерфейси користувача" та здійснюється у модулях середовища візуалізації та управління (СВУ), а саме у рушії СВУ <a href="Modules/VCAEngine.html" title="Special:MyLanguage/Modules/VCAEngine">UI.VCAEngine</a> та візуалізаторах <a href="Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">UI.Vision</a> і <a href="Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">UI.WebVision</a>. Зазвичай, для синтезу мови необхідний відповідний синтезатор з підтримкою потрібної мови, на кшталт <b>RHVoice</b>, <b>festival</b>, <b>espeak</b>. Для програвання синтезованого звуку вам не потрібно специфічних засобів у типовому оточені. Але, для специфічних оточень, потрібна програма <b>play</b>, що типово міститься у пакеті <b>sox</b> та для точного визначення залежностей дивіться у <a href="Modules/VCAEngine.html#Alarms" title="Special:MyLanguage/Modules/VCAEngine">відповідних процедурах зовнішніх методів сповіщення</a>.
</p><p><b>Q:</b> Як я можу швидко та коректно змінити співвідношення сторін екрану візуального інтерфейсу користувача на інше, наприклад, на 16:9?<br />
<b>Re:</b> Так, основний інтерфейс користувача OpenSCADA, заснований на концепції об'єктів сигналізації та її <a href="Libs_Main_graphical_elements.html#RootPgSo" title="Special:MyLanguage/Libs/Main graphical elements">кореневій сторінці</a>, пристосовано та розроблено до співвідношення сторін 4:3. Для загальних проєктів СВУ заплановано реалізацію відповідних стилів на різні співвідношення сторін однак мнемосхеми мають залишатися незмінними. Відтак, для ручної, швидкої та коректної зміни співвідношення сторін наразі маєте виконати наступне у дереві проєкту СВУ:
</p>
<ul><li> Встановити, або помножити оригінальне, атрибут "Геометрія: x масштаб" (geomX) у значення (16/9)/(4/3) = 1.333, для:
<ul><li> <a href="Libs_Main_graphical_elements.html#RootPgSo" title="Special:MyLanguage/Libs/Main graphical elements">кореневої сторінки</a>;</li>
<li> всіх шаблонних сторінок на кшталт "<a href="Libs_Main_graphical_elements.html#grpGraph" title="Special:MyLanguage/Libs/Main graphical elements">Групи графіків</a>", лише у сторінок, використаних як шаблони;</li>
<li> всіх сторінок документів та панелей керування, індивідуально.</li></ul></li>
<li> Через те, що сторінки мнемосхем рідко допускають зміну оригінального співвідношення сторін, з причини використання правильних фігур на кшталт кола та квадратів, ми вимушені розробляти ці кадри від початку та у розмірі [900*1.333 x 550] = [1199 x 550].</li></ul>
<p><b>Q:</b> Як я можу підключити візуалізатор UI.Vision до віддаленого серверу візуалізації або до ПЛК з цією функцією?<br />
<b>Re:</b> Так, ви можете створювати сервери візуалізації та ПЛК, засновані на модулі <a href="Modules/VCAEngine.html" title="Special:MyLanguage/Modules/VCAEngine">UI.VCAEngine</a>, зі всіма даними СВУ проєктів візуалізації користувачів на них та очевидно зі встановленою там OpenSCADA. Надалі ви можете підключатися до цих віддалених серверів візуалізації та ПЛК за допомогою модуля <a href="Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">UI.Vision</a> для локальної розробки та візуалізації віддалених проєктів візуалізації користувача. Детальну інструкцію можете отримати у розділі "<a href="Quick_start.html#RemConUse" title="Special:MyLanguage/Documents/Quick start">Підключення та використання віддалених та фонових конфігурацій</a>" <a href="Quick_start.html" title="Special:MyLanguage/Documents/Quick start">посібника зі Швидкого Старту</a> та тут ви отримаєте коротку інструкцію. Ця коротка інструкція також корисна для отримання віддаленого контролю серверів візуалізації та ПЛК! Для здійснення цього маєте на клієнтській станції дотримуватися наступної процедури з модулем UI.Vision та з будь якою конфігурацією включно з порожньою:
</p>
<ul><li> Створити підключення до візуального серверу або ПЛК, як станції OpenSCADA, на <a class="external" href="http://oscada.org/wiki/File:QTCfg_subsys_tr_sub_uk.png" title="File:QTCfg subsys tr sub uk.png">сторінці транспортів</a> будь якого конфігуратору OpenSCADA у режимі "Системний". Якщо також встановите режим "Користувацький", то після оновлення дерева навігації зможете контролювати віддалену станцію з цього конфігуратору та користувача.</li>
<li> Обрати на <a class="external" href="http://oscada.org/wiki/File:Vision_cfg.png" title="File:Vision cfg.png">сторінці візуалізатору</a> будь якого конфігуратору OpenSCADA: нове підключення, користувача запуску, пароль користувача цієї віддаленої станції та проєкту(ів) для їх автоматичного виконання, інакше отримаєте режим розробки. Наступний запуск модуля UI.Vision має призвести до встановлення підключення до віддаленого серверу візуалізації або ПЛК з розробкою або виконанням їх проєктів. Для запиту станції разом із користувачем та паролем при загальному виклику модуля ви можете обрати підключення-станцію "&lt;Вибір&gt;", корисно за наявності багато станцій керування та відкриття декількох з них одночасно.</li></ul>
<p><b>Q:</b> Як я можу автоматично запустити OpenSCADA з відповідним оперативним інтерфейсом користувача — проєктом диспетчерського контролю?<br />
<b>Re:</b> Звісно, після завершення процесу розробки маєте забезпечити запуск програми разом із запуском операційної системи та повно-екранне виконання результуючого оперативного інтерфейсу користувача. Для цього маєте дотримуватися процедури:
</p>
<ul><li> Забезпечте специфічні до системи заходи запуску самої OpenSCADA з вашим проєктом. Тут маєте попередньо створити або знайти іконку робочого столу вашого проєкту у OpenSCADA з <a href="Program_manual.html#Projects" title="Special:MyLanguage/Documents/Program manual">менеджеру проєктів OpenSCADA</a> та скопіювати або розташувати її у теці або переліку програм, що запускаються автоматично вашим оточенням робочої стільниці. Деталі дивіться у документації на відповідне оточення робочої стільниці.</li>
<li> Оберіть запуск модуля <a href="Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">UI.Vision</a> із загальним запуском OpenSCADA, у <a href="Modules/QTStarter.html#Cfg" title="Special:MyLanguage/Modules/QTStarter">полі "Модулі Qt для запуску" модуля UI.QTStarter</a> з будь якого конфігуратору OpenSCADA.</li>
<li> Оберіть Ваш проєкт СВУ для його автоматичного виконання, у <a href="Modules/Vision.html#Cfg" title="Special:MyLanguage/Modules/Vision">полі "Перелік проєктів для запуску" модуля UI.Vision</a> з будь якого конфігуратору OpenSCADA. Тут ми також рекомендуємо встановити для виконання проєкту користувача, відмінного від системного, звісно із правами на цей проєкт.</li></ul>
<p><b>Q:</b> Чи можу я підлаштувати мій проєкт під дещо специфічне оформлення (брендінг)?<br />
<b>Re:</b> Більшість візуального оформлення (брендінгу) кінцевого користувача розташовано у <a href="Modules/VCAEngine.html" title="Special:MyLanguage/Modules/VCAEngine">кінцевому інтерфейсі СВУ користувача</a>, але ви можете також забажати підлаштувати зображення заставки, іконки та подібне:
</p>
<ul><li> іконка праворуч нагорі кадру "<a href="Libs_Main_graphical_elements.html#RootPgSo" title="Special:MyLanguage/Libs/Main graphical elements">Коренева сторінка (СО)</a>" — просто завантажте ваше зображення до <a class="external" href="http://oscada.org/wiki/File:Vision_wlbpg_mime_uk.png" title="File:Vision wlbpg mime uk.png">ресурсів проєкту</a> як "logo", бажано у розмірі <b>110x55</b> пікселів (2x1);</li>
<li> іконка вікна-сторінки проєкту при виконанні — просто завантажте вашу <a class="external" href="http://oscada.org/wiki/File:Vision_wlbpg_uk.png" title="File:Vision wlbpg uk.png">іконку проєкту</a>, бажано у розмірі <b>128x128</b> пікселів, або очистіть це для використання зображення загальної іконки проєкту (дивіться нижче) яка може бути перекладена — залежна від мови поточного інтерфейсу;</li>
<li> <a class="external" href="http://oscada.org/wiki/File:QTStarter_splash_uk.png" title="File:QTStarter splash uk.png">зображення стартової заставки</a> проєкту — підготуйте представницьке зображення, бажано у розмірі <b>600x300</b>, та розташуйте його до <a href="Program_manual.html#Config" title="Special:MyLanguage/Documents/Program manual">теки іконок проєкту</a> із назвою "<b>{ProjectID}_splash.[png|gif|jpg|jpeg]</b>" для заставки запуску та виходу і "<b>{ProjectID}_splash_exit.[png|gif|jpg|jpeg]</b>" для заставки виходу;</li>
<li> зображення загальної іконки проєкту для <a class="external" href="http://oscada.org/wiki/File:QTCfg_listelem.png" title="File:QTCfg listelem.png">дерева навігації конфігураторів OpenSCADA</a> — підготуйте представницьке зображення, бажано у розмірі <b>128x128</b>, та розташуйте його до <a href="Program_manual.html#Config" title="Special:MyLanguage/Documents/Program manual">теки іконок проєкту</a> із назвою "<b>{ProjectName}.[png|gif|jpg|jpeg]</b>", де <i>ProjectName</i> може бути або специфічним до мови або на Базовій Мові для всіх випадків або навіть обидві якщо ваш проєкт є <a href="Create_multi_language_project.html" title="Special:MyLanguage/Documents/How to/Create multi language project">багатомовним</a>.</li></ul>
<p><b>Q:</b> Оперативний інтерфейс оператору запускається на весь екран та я не можу його закрити для отримання доступу до системного оточення робочої стільниці!<br />
<b>Re:</b> Звісно, OpenSCADA захищає систему контролю від закриття та непривілейованого доступу до системного оточення робочої стільниці. Відтак, для отримання доступу до системного оточення робочої стільниці ви маєте бути привілейованим користувачем, змінити користувача інтерфейсу на свій обліковий запис та у глобальному меню, що виникло, здійснити потрібне: вимкнути повно-екранний режим, закрити або вийти з програми. Якщо глобальне меню не з'являється то маєте проблемне оточення робочого простору, як то Unity, яке "відриває" меню вікна; відтак, попередньо вимкніть цю функцію оточення!
</p><p><b>Q:</b> Я можу легко підключати аналогові сигнали для побудови трендів примітивом <a href="Modules/VCAEngine.html#Diagram" title="Special:MyLanguage/Modules/VCAEngine">Діаграма</a>, але використання тут дискретних-логічних сигналів не є таким очевидним...<br />
<b>Re:</b> Так, примітив <a href="Modules/VCAEngine.html#Diagram" title="Special:MyLanguage/Modules/VCAEngine">Діаграма</a> розроблено переважно для аналогових сигналів, але можете також використовувати тут дискретні-логічні сигнали як аналогові із двома станами [0,1], тож їх натуральна шкала це [0...1] і якщо підключите один сигнал у автоматичній-натуральній шкалі, то отримаєте його на весь екран, із заповненими стрічками для стану ПРАВДА (TRUE). Але це не дуже зручно та ви не зможете поєднувати його із іншими аналоговими або дискретними-логічними сигналами навіть у напівпрозорому кольорі, тож маєте вручну визначити шкалу для позиціювання стрічки дискретного-логічного сигналу у потрібній частині екрану. Деякі приклади шкал:
</p>
<ul><li> <b>[0...5]</b> — ділите екран по вертикалі на п'ять стрічок та відображаєте сигнал унизу;</li>
<li> <b>[-4...1]</b> — ділите екран по вертикалі на п'ять стрічок та відображаєте сигнал нагорі;</li>
<li> <b>[-2...3]</b> — ділите екран по вертикалі на п'ять стрічок та відображаєте сигнал уцентрі;</li>
<li> <b>[0...10]</b> — ділите екран по вертикалі на десять стрічок та відображаєте сигнал унизу.</li></ul>
<p><b>Q:</b> Я маю дуже навантажену систему із багатьма процесами OpenSCADA, які працюють через Web інтерфейс та я бажаю зменшити навантаження на сервер і прискорити всі ці інтерфейси.<br />
<b>Re:</b> Так, типово інтерфейси OpenSCADA створено для функціювання за деякої достатньо швидкої періодичності перенесення-життя (100 мс) яка переважно підходить для активних локальних Qt-інтерфейсів <a href="Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">модуля UI.Vision</a> із високою реактивністю, та на достатньо швидких мережах при функціюванні із сервером візуалізації. Але наразі можете підлаштувати ваш інтерфейс для досягнення зменшення навантаження у рази:
</p>
<ul><li> першим та очевидним кроком є збільшення періодичності перенесення-життя в <a class="external" href="http://oscada.org/wiki/File:Vision_wlbpg_uk.png" title="File:Vision wlbpg uk.png">конфігурації Проєкту СВУ</a>, де можете встановити "Період обчислення" у значення до 500 мс для активних локальних Qt-інтерфейсів <a href="Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">модуля UI.Vision</a> та до 1000 мс для нешвидких Web-інтерфейсів <a href="Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">модуля UI.WebVision</a>;</li>
<li> другим кроком є встановлення періоду оновлення динамічних даних залежно від того, що ви вважаєте достатньо частим, або вимкнути періодичне оновлення взагалі встановленням періодичності у -2; та здійснити це для <a href="Libs_Main_graphical_elements.html#RootPgSo" title="Special:MyLanguage/Libs/Main graphical elements">головної-кореневої сторінки</a> у <a class="external" href="http://oscada.org/wiki/File:Vision_wdg_uk.png" title="File:Vision wdg uk.png">конфігурації Віджету</a> дерева вашого проєкту; те саме можете здійснити для всіх панелей розташованих у групі "Панелі керування (control)" логічної структури проєкту від головної-кореневої сторінки, встановивши потрібну періодичність для самої групи;</li>
<li> третім кроком є заглиблення у адаптацію ваших віджетів-кадрів для функціювання на великих періодичностях без втрати реактивності на кшталт вже адаптованих у стандартній бібліотеці як <a href="Libs_Main_graphical_elements.html#RootPgSo" title="Special:MyLanguage/Libs/Main graphical elements">основна-коренева сторінка</a> та <a href="Libs_Main_graphical_elements.html#anShow" title="Special:MyLanguage/Libs/Main graphical elements">Відображення аналогового</a>; та ця адаптація переважно передбачає:
<ul><li> надсилання користувацьких подій за потреби у швидкому оновлені у наступному циклі життя після опрацювання подій;</li>
<li> контроль періодичності виконання віджету узалежнено від ситуаційної активності на кшталт блимання курсору обрання та кольорів сигналізації.</li></ul></li></ul>
<h2><span class="mw-headline" id=".D0.9F.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC.D0.B8_.28.D0.B0.D0.BA.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D1.96.2C_.D0.BE.D1.82.D0.BE.D1.87.D0.B5.D0.BD.D0.BD.D1.8F.2C_.D0.B2.D0.B8.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.BE.29"><span class="mw-headline-number">3</span> <span id="Problems" title="#Problems">Проблеми</span> (<a class="external text" href="http://oscada.org/ua/forum/zbirnii-forum/?tx_mmforum_pi1%5Baction%5D=list_prefix&amp;tx_mmforum_pi1%5Blist_prefix%5D%5Bprfx%5D=BugConfirmed" rel="nofollow noreferrer noopener" target="_blank">актуальні</a>, <a class="external text" href="http://oscada.org/ua/forum/zbirnii-forum/?tx_mmforum_pi1%5Baction%5D=list_prefix&amp;tx_mmforum_pi1%5Blist_prefix%5D%5Bprfx%5D=BugEnvironment" rel="nofollow noreferrer noopener" target="_blank">оточення</a>, <a class="external text" href="http://oscada.org/ua/forum/zbirnii-forum/?tx_mmforum_pi1%5Baction%5D=list_prefix&amp;tx_mmforum_pi1%5Blist_prefix%5D%5Bprfx%5D=BugFixed" rel="nofollow noreferrer noopener" target="_blank">виправлено</a>)</span></h2>
<p><b>Q:</b> Чому я втратив дробову частину у всіх завантажених значеннях реального типу?<br />
<b>Re:</b> Ви використовуєте локаль, відмінну від "C" або загальної Англійської, та встановлюєте її прямо, змінною оточення "LC_NUMERIC" або її загальним варіантом "LC_ALL", що призводить до використання у функціях на кшталт atof() та sprintf() символу роздільника дробової частини відмінного від "." (крапка), часто це "," (кома).
</p>
<dl><dd> <b>!&gt;</b> Тобто, ніколи не встановлюйте змінних оточення "LC_NUMERIC" та "LC_ALL" прямо оскільки вони перевизначають коректне встановлення "LC_NUMERIC" у "C", в середині! Для зміни мови програми використовуйте тільки змінні "LANG" та "LANGUAGE", яких завжди достатньо.</dd>
<dd> <b>+&gt;</b> Наразі проблему повністю виключено, через перевірку та очищення змінної оточення "LC_ALL"!</dd></dl>
<p><b>Q:</b> "Немає доступу для створення політики реального часу для '****'. Створено звичайну нитку!"<br /> 
<b>Re:</b> Таке повідомлення OpenSCADA формує при спробі встановити для потоку-завдання політики реального часу, за пріоритетом більше 0, у випадку запуску від звичайного користувача.
</p>
<dl><dd> <b>+&gt;</b> Потенційно такі права можна надати шляхом редагування файлу "/etc/security/limits.conf" наступним чином:</dd></dl>
<pre style="white-space: pre;">
user    hard    nice    -20 
user    soft    nice    -15 
user    hard    rtprio  99 
user    soft    rtprio  90
</pre>
<p><b>Q:</b> Я спостерігаю відсутність всіх текстових міток на графіках (примітив "Діаграма") інтерфейсів модуля <a href="Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">UI.WebVision</a>. Чому так?<br />
<b>Re:</b> Такий результат можливий на інтерфейсах, побудованих на бібліотеці GD, та якщо сама ця бібліотека зібрана без використання бібліотеки FontConfig. На цей час тільки модуль <a href="Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">UI.WebVision</a> використовує цю бібліотеку для виключної побудови примітивів "Елементарна Фігура" та "Діаграма".
</p>
<dl><dd> <b>+&gt;</b> Відтак, для виправлення цієї проблеми маєте встановити коректний пакет-збірку бібліотеки або скласти бібліотеку самостійно з FontConfig. Наразі відомо один випадок такого сорту проблеми з пакетом "libgd2-noxpm" старих версій дистрибутиву Linux Debian, де Ви маєте встановити коректний пакет "libgd2-xpm".</dd></dl>
<p><b>Q:</b> Я спостерігаю відсутність SVG-зображень у інтерфейсах Qt. Чому так?<br />
<b>Re:</b> Як правило це вказує на відсутність у системі Qt-модуля для SVG-графіки, наприклад, пакет "libqt5svg5" у Linux дистрибутивах на основі Debian.
</p>
<dl><dd> <b>+&gt;</b> Встановіть пакет або безпосередньо Qt-втулок підтримки SVG-графіки.</dd></dl>






</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/Documents/FAQ/uk">Documents/FAQ/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>