<?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>Модулі/WebVision - 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">Модулі/WebVision</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%2FWebVision&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/WebVision" title="Modules/WebVision">Modules/WebVision</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/WebVision.html" title="Modules/WebVision (100% translated)">English</a> • ‎<a class="mw-pt-progress mw-pt-progress--complete" href="../../ru/Modules/WebVision.html" title="Модули/WebVision (90% translated)">mRussian</a> • ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">УкраїнÑька</span></div></div> <table class="wikitable"> <tr> <th> Модуль </th> <th> Ім'Ñ </th> <th> ВерÑÑ–Ñ </th> <th> Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ </th> <th> Джерело </th> <th> Мови </th> <th> Платформи </th> <th> Тип </th> <th> Ðвтор </th></tr> <tr> <td> <a href="../Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">WebVision</a> </td> <td> Робочий кориÑтувацький Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ (WEB) </td> <td> 6.13 </td> <td> GPL2 </td> <td> ui_WebVision.so </td> <td> en,uk,ru,de </td> <td> x86,x86_64,ARM </td> <td> КориÑтувацькі інтерфейÑи </td> <td> Роман Савоченко<br /> <font size="-2"><i>МакÑим ЛиÑенко (2007-2012), КÑÐµÐ½Ñ–Ñ Ð¯ÑˆÐ¸Ð½Ð° (2007-2008)</i></font> </td></tr> <tr> <th colspan="9"> ÐžÐ¿Ð¸Ñ </th></tr> <tr> <td colspan="9"> Робочий Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, заÑнований на WEB — зовнішній Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð¾ Ñ€ÑƒÑˆÑ–Ñ Ð¡Ð’Ð£. <ul><li> <b>Загальна працеміÑткіÑть:</b> > 50 <span title="людино-днів, 1ЛД — 10 годин">ЛД<sup style="color: blue">[!]</sup></span></li> <li> <b>СпонÑоруваннÑ, примітиву "Медіа" та Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð° 1.35 <span title="людино-днів, 1ЛД — 10 годин">ЛД<sup style="color: blue">[!]</sup></span>:</b> Хайді Рамазані</li> <li> <b>СпонÑоруваннÑ, Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð° 0.85 <span title="людино-днів, 1ЛД — 10 годин">ЛД<sup style="color: blue">[!]</sup></span>:</b> Вінницька Птахофабрика</li> <li> <b>СпонÑоруваннÑ, Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð¼Ñ–Ñ‚Ð¸Ð²Ñƒ ElFigure на 0.5 <span title="людино-днів, 1ЛД — 10 годин">ЛД<sup style="color: blue">[!]</sup></span>:</b> ТОВ "СВІТоВИР"</li> <li> <b>СпонÑоруваннÑ, ЕкÑпорту на 0.8 <span title="людино-днів, 1ЛД — 10 годин">ЛД<sup style="color: blue">[!]</sup></span>:</b> Вінницька Птахофабрика</li> <li> <b><a href="../../en/To_do.html" title="Special:MyLanguage/Works/To do">Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ (To Do)</a>:</b></li></ul> <dl><dd> * відревізувати та уніфікувати Ð¿Ñ€Ð¸Ð¼ÑƒÑˆÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ð°Ñ‚ÑƒÑ€Ð½Ð¾Ð³Ð¾ фокуÑу на першому активному елементі з урахуваннÑм Ñ—Ñ… Ñпецифіки, Ð´Ð»Ñ Ð³Ð°Ñ€Ð°Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ð°Ñ‚ÑƒÑ€Ð½Ð¸Ñ… Ñкорочень;</dd> <dd> - розширити примітив "Діаграма" операціÑми маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¸ÑˆÐµÑŽ;</dd> <dd> - реалізувати влаÑний RTE-редактор Ð´Ð»Ñ Ð²Ð¸Ð³Ð»Ñду Text примітиву FormEl;</dd> <dd> - ElFigure: виправити втрату деÑких влаÑтивоÑтей (щонайменш товщину лінії) при опрацюванні дій, у процеÑÑ– загальної переробки коду примітиву;</dd> <dd> - доповнити панель ÑтатуÑу, функціÑми: <dl><dd> - друк Ñ– екÑпорт примітиву Діаграма піÑÐ»Ñ Ñ—Ñ— Ð¿ÐµÑ€ÐµÐ²ÐµÐ´ÐµÐ½Ð½Ñ Ð½Ð° "SVG".</dd></dl></dd> <dd> - ElFigure,Diagram: ввімкнути або реалізувати згладжуваннÑ, Ð´Ð»Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ GD;</dd> <dd> - реалізувати примітиви "Діаграма", "ElFigure" тегом "SVG";</dd> <dd> - розширити варіант "ÐнімаціÑ" примітиву "Медіа" викориÑтаннÑм RAW файлів зображень, на кшталт PNG.</dd></dl> </td></tr></table> <p>Модуль надає до OpenSCADA механізм кінцевої візуалізації Ñередовища візуалізації та ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ (СВУ). Модуль заÑновано на WEB технологіÑÑ… (XHTML, JavaScript, CSS, AJAX). У Ñвоїй роботі модуль викориÑтовує дані Ñ€ÑƒÑˆÑ–Ñ Ð¡Ð’Ð£ — модуль <a href="../Modules/VCAEngine.html" title="Special:MyLanguage/Modules/VCAEngine">VCAEngine</a>. </p><p>Среда визуализации и ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (СВУ) ÑвлÑетÑÑ Ð½ÐµÐ¾Ñ‚ÑŠÐµÐ¼Ð»ÐµÐ¼Ð¾Ð¹ ÑоÑтавлÑющей SCADA ÑиÑтемы. Она применÑетÑÑ Ð½Ð° клиентÑких ÑтанциÑÑ… Ñ Ñ†ÐµÐ»ÑŒÑŽ доÑтупного предоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸ об объекте ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ выдачи управлÑющих воздейÑтвий на объект. Ð’ различных практичеÑких ÑитуациÑÑ… и уÑловиÑÑ… могут применÑтьÑÑ Ð¡Ð’Ð£, поÑтроенные на различных принципах визуализации. Ðапример, Ñто могут быть библиотеки виджетов Qt, GTK+, wxWidgets или гипертекÑтовые механизмы на оÑнове технологий HTML, XHTML, XML, CSS и JavaScript или Ñторонние Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸, реализованные на различных Ñзыках Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Java, Python и Ñ‚.д. Любой из Ñтих принципов имеет Ñвои преимущеÑтва и недоÑтатки, ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… может Ñтать непреодолимым препÑÑ‚Ñтвием в возможноÑти иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¡Ð’Ð£ в том или ином практичеÑком Ñлучае. Ðапример, технологии вроде библиотеки Qt позволÑÑŽÑ‚ Ñоздавать выÑокопроизводительные СВУ, что неÑомненно важно Ð´Ð»Ñ Ñтанций оператора ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ‡ÐµÑким процеÑÑом (ТП). Однако, необходимоÑть инÑталлÑции данного клиентÑкого ПО может Ñделать его иÑпользование невозможным в отдельных ÑитуациÑÑ…. С другой Ñтороны, Web-технологии не требуют инÑталлÑции на клиентÑкие ÑиÑтемы и ÑвлÑÑŽÑ‚ÑÑ Ð¿Ñ€ÐµÐ´ÐµÐ»ÑŒÐ½Ð¾ многоплатформенными (доÑтаточно указать ÑÑылку на Web-Ñервер в любом Web-браузере), что наиболее важно Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… инженерных и админиÑтративных Ñтанций. С другой Ñтороны, производительноÑть и надёжноÑть таких интерфейÑов ниже, что практичеÑки иÑключает их иÑпользование на ÑтанциÑÑ… оператора ТП. </p><p>OpenSCADA имеет предельно гибкую архитектуру, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет Ñоздавать внешние интерфейÑÑ‹, в том чиÑле и пользовательÑкие, на любой оÑнове и вкуÑ. Ðапример, Ñреда конфигурации OpenSCADA доÑтупна как на Qt-библиотеке, так и на Web-оÑнове. </p><p>Ð’ тоже времÑ, незавиÑимое Ñоздание реализаций СВУ на различной оÑнове может повлечь за Ñобой невозможноÑть иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… конфигурации одной СВУ в другой. Что неудобно и ограничено Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑкой Ñтороны, а также накладно в плане реализации и поÑледующей поддержки. </p><p>З метою Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ñ†Ð¸Ñ… проблем, а також ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñƒ коротші терміни повного Ñпектру різних типів СВУ, заÑновано <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/VCA" title="Special:MyLanguage/Sub-projects/VCA">проєкт ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ†ÐµÐ¿Ñ†Ñ–Ñ— СВУ</a>. Результатом цього проєкту й Ñтав цей модуль безпоÑередньої візуалізації (на оÑнові Web-технологій), модуль безпоÑередньої візуалізації <a href="../Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">Vision</a> та рушій СВУ <a href="../Modules/VCAEngine.html" title="Special:MyLanguage/Modules/VCAEngine">VCAEngine</a>. </p> <div class="toc" id="toc"><div id="toctitle"><h2>Contents</h2></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#.D0.9F.D1.80.D0.B8.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.BD.D1.8F"><span class="tocnumber">1</span> <span class="toctext">ПризначеннÑ</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#.D0.92.D0.B8.D0.BA.D0.BE.D0.BD.D0.B0.D0.BD.D0.BD.D1.8F_.D1.96.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D1.96.D0.B2_.D0.A1.D0.92.D0.A3"><span class="tocnumber">2</span> <span class="toctext">Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñів СВУ</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#.D0.9F.D1.80.D0.B5.D0.B4.D1.81.D1.82.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.BD.D1.8F_.D0.B1.D0.B0.D0.B7.D0.BE.D0.B2.D0.B8.D1.85_.D0.B5.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D1.96.D0.B2_.28.D0.BF.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2.D1.96.D0.B2.29"><span class="tocnumber">3</span> <span class="toctext"><span>ПредÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð±Ð°Ð·Ð¾Ð²Ð¸Ñ… елементів (примітивів)</span></span></a> <ul> <li class="toclevel-2 tocsection-4"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D0.B5.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.80.D0.BD.D0.BE.D1.97_.D1.84.D1.96.D0.B3.D1.83.D1.80.D0.B8_.28ElFigure.29"><span class="tocnumber">3.1</span> <span class="toctext">Примітив елементарної фігури (ElFigure)</span></a></li> <li class="toclevel-2 tocsection-5"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D1.82.D0.B5.D0.BA.D1.81.D1.82.D1.83_.28Text.29"><span class="tocnumber">3.2</span> <span class="toctext">Примітив текÑту (Text)</span></a></li> <li class="toclevel-2 tocsection-6"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D0.B5.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D1.83_.D1.84.D0.BE.D1.80.D0.BC.D0.B8_.28FormEl.29"><span class="tocnumber">3.3</span> <span class="toctext">Примітив елементу форми (FormEl)</span></a></li> <li class="toclevel-2 tocsection-7"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D0.B2.D1.96.D0.B4.D0.BE.D0.B1.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.BD.D1.8F_.D0.BC.D0.B5.D0.B4.D1.96.D0.B0-.D0.BC.D0.B0.D1.82.D0.B5.D1.80.D1.96.D0.B0.D0.BB.D1.96.D0.B2_.28Media.29"><span class="tocnumber">3.4</span> <span class="toctext">Примітив Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°-матеріалів (Media)</span></a></li> <li class="toclevel-2 tocsection-8"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D0.BF.D0.BE.D0.B1.D1.83.D0.B4.D0.BE.D0.B2.D0.B8_.D0.B4.D1.96.D0.B0.D0.B3.D1.80.D0.B0.D0.BC_.28Diagram.29"><span class="tocnumber">3.5</span> <span class="toctext">Примітив побудови діаграм (Diagram)</span></a></li> <li class="toclevel-2 tocsection-9"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D1.83.D0.B2.D0.B0.D0.BD.D0.BD.D1.8F_.D0.BF.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D1.83_.28Protocol.29"><span class="tocnumber">3.6</span> <span class="toctext">Примітив Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ (Protocol)</span></a></li> <li class="toclevel-2 tocsection-10"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D1.83.D0.B2.D0.B0.D0.BD.D0.BD.D1.8F_.D0.B7.D0.B2.D1.96.D1.82.D0.BD.D0.BE.D1.97_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D1.96.D1.97_.28Document.29"><span class="tocnumber">3.7</span> <span class="toctext">Примітив Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð²Ñ–Ñ‚Ð½Ð¾Ñ— документації (Document)</span></a></li> <li class="toclevel-2 tocsection-11"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D0.BA.D0.BE.D0.BD.D1.82.D0.B5.D0.B9.D0.BD.D0.B5.D1.80.D1.83_.28Box.29"><span class="tocnumber">3.8</span> <span class="toctext">Примітив контейнеру (Box)</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-12"><a href="#.D0.97.D0.B0.D0.B3.D0.B0.D0.BB.D1.8C.D0.BD.D0.B0_.D0.BA.D0.BE.D0.BD.D1.84.D1.96.D0.B3.D1.83.D1.80.D0.B0.D1.86.D1.96.D1.8F_.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D1.8F"><span class="tocnumber">4</span> <span class="toctext">Загальна ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ</span></a></li> <li class="toclevel-1 tocsection-13"><a href="#.D0.95.D1.84.D0.B5.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D1.96.D1.81.D1.82.D1.8C_.D1.82.D0.B0_.D0.BC.D0.B0.D1.81.D1.88.D1.82.D0.B0.D0.B1.D0.BE.D0.B2.D0.B0.D0.BD.D1.96.D1.81.D1.82.D1.8C"><span class="tocnumber">5</span> <span class="toctext"><span>ЕфективніÑть та маÑштабованіÑть</span></span></a></li> <li class="toclevel-1 tocsection-14"><a href="#.D0.97.D0.B0.D1.83.D0.B2.D0.B0.D0.B6.D0.B5.D0.BD.D0.BD.D1.8F"><span class="tocnumber">6</span> <span class="toctext">ЗауваженнÑ</span></a></li> <li class="toclevel-1 tocsection-15"><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.9F.D1.80.D0.B8.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.BD.D1.8F"><span class="mw-headline-number">1</span> ПризначеннÑ</span></h2> <p>Даний модуль безпоÑередньої візуалізації СВУ призначено тільки Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñів СВУ у Ñередовищі WEB-технологій! </p><p>Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ€Ð¸Ñтувача формуєтьÑÑ Ñƒ WEB-браузері шлÑхом Ð·Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ WEB-Ñерверу та Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ нього XHTML-документу за протоколом HTTP. У цьому випадку, у ролі WEB-Ñерверу виÑтупає OpenSCADA, Ñка підтримує Ñтандартні комунікаційні механізми TCP-мереж (модуль <a href="../Modules/Sockets.html" title="Special:MyLanguage/Modules/Sockets">Transport.Sockets</a>), протокол передачі гіпертекÑту (модуль <a href="../Modules/HTTP.html" title="Special:MyLanguage/Modules/HTTP">Protocol.HTTP</a>), а також ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð°Ñ„Ñ–ÐºÑƒ між браузером та Ñервером (<a href="../Modules/SSL.html" title="Special:MyLanguage/Modules/SSL">Transport.SSL</a>). ВиходÑчи з цього, Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупу до інтерфейÑу кориÑтувача, Ñкий надаєтьÑÑ Ñ†Ð¸Ð¼ модулем, потрібно у OpenSCADA налаштувати транÑпорт (Transport.Sockets або Transport.SSL) у поєднані з протоколом HTTP (Protocol.HTTP). Разом з OpenSCADA поÑтачаютьÑÑ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹Ð½Ñ– файли, Ñкі міÑÑ‚Ñть Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Transport.Sockets Ð´Ð»Ñ Ð¿Ð¾Ñ€Ñ‚Ñƒ 10002. Відповідно, Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ, по замовченню, буде доÑтупний за URL: "http://localhost:10002". </p><p>Фінальна верÑÑ–Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¡Ð’Ð£, Ñка побудована на оÑнові даного модулÑ, забезпечить: </p><p>Перелічимо можливоÑті, Ñкі зможе та забезпечує СВУ, побудована на оÑнові даного проєкту: </p> <ul><li> три рівні ÑкладноÑті у формуванні інтерфейÑу візуалізації, Ñкі дозволÑють органічно оÑвоювати та заÑтоÑовувати інÑтрументарій за принципом — від проÑтого до Ñкладного:</li></ul> <dl><dd><ol><li> Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð· шаблонних кадрів, шлÑхом Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¸Ð½Ð°Ð¼Ñ–ÐºÐ¸ та без графічної конфігурації;</li> <li> графічне Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… кадрів, шлÑхом викориÑÑ‚Ð°Ð½Ð½Ñ Ð³Ð¾Ñ‚Ð¾Ð²Ð¸Ñ… елементів візуалізації з бібліотеки — мнемоÑхеми;</li> <li> формуваннÑ, у бібліотеці, нових: кадрів, шаблонних кадрів та елементів відображеннÑ.</li></ol></dd></dl> <ul><li> побудова інтерфейÑів візуалізації практично будь-Ñкої ÑкладноÑті (обмежену "диÑкретніÑтю" функцій примітивів), починаючи від проÑтих інтерфейÑів моніторингу та, закінчуючи повноцінними ієрархічними інтерфейÑами, що викориÑтовуютьÑÑ Ñƒ SCADA ÑиÑтемах;</li> <li> Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… ÑпоÑобів Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° конфігурації кориÑтувацького інтерфейÑу, заÑнованих на різних інтерфейÑах графічного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ (Qt, Web, ...), або-ж за поÑередництвом Ñтандартного інтерфейÑу ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ OpenSCADA;</li> <li> побудова та ÐºÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñу, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° зміна динаміки у процеÑÑ– виконаннÑ;</li> <li> побудова, на рівні кориÑтувача, нових шаблонних кадрів та Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ñпеціалізованих, під облаÑть заÑтоÑуваннÑ, бібліотек кадрів (наприклад, Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ ÐºÐ°Ð´Ñ€Ñ–Ð² параметрів, графіків та інших елементів з ув'Ñзкою Ñ—Ñ… один з другим), згідно до ідеї вторинного викориÑтаннÑ, Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° вдоÑконаленнÑ;</li> <li> побудова нових кориÑтувацьких елементів візуалізації та Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ñпеціалізованих, під облаÑть заÑтоÑуваннÑ, бібліотек кадрів, згідно до ідеї вторинного викориÑтаннÑ, Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° вдоÑконаленнÑ;</li> <li> Ð¾Ð¿Ð¸Ñ Ð»Ð¾Ð³Ñ–ÐºÐ¸ нових шаблонних кадрів та кориÑтувацьких елементів візуалізації Ñк проÑтими зв'Ñзками, так Ñ– лаконічною, повноцінною мовою кориÑтувацького програмуваннÑ;</li> <li> можливіÑть включеннÑ, до кориÑтувацьких елементів візуалізації, функцій (або кадрів обчиÑÐ»ÐµÐ½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹) об'єктної моделі OpenSCADA, практично зв'Ñзуючи предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð· алгоритмом обчиÑленнÑ; наприклад, візуалізуючи бібліотеку моделей апаратів ТП, Ð´Ð»Ñ Ð¿Ð¾Ð´Ð°Ð»ÑŒÑˆÐ¾Ñ— візуальної побудови моделей ТП;</li> <li> розподіл даних кориÑтувацьких інтерфейÑів та інтерфейÑів предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ†Ð¸Ñ… даних, що дозволÑÑ” будувати Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ€Ð¸Ñтувача у одному Ñередовищі, а виконувати у багатьох інших (Qt, Web, ...);</li> <li> можливіÑть Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ виконуваного інтерфейÑу Ð´Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‚Ð° корекції дій; наприклад, при навчанні операторів та контролю за його діÑми у реальному чаÑÑ–;</li> <li> візуальна побудова різних Ñхем з накладаннÑм логічних зв'Ñзків та подальшим централізованим виконаннÑм у фоні — візуальна побудова та Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¼Ð°Ñ‚ÐµÐ¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… моделей, логічних Ñхем, релейних Ñхем та іншого;</li> <li> наданнÑ, до OpenSCADA, функцій об'єктного API; може викориÑтовуватиÑÑ Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð²Ð»Ð°ÑтивоÑÑ‚Ñми інтерфейÑу візуалізації із кориÑтувацьких процедур;</li> <li> побудова Ñерверів длÑ: кадрів, елементів візуалізації та проєктів інтерфейÑів візуалізації; з можливіÑтю обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð½Ð¾Ð¶Ð¸Ð½Ð½Ð¸Ñ… клієнтÑьких підключень;</li> <li> проÑта Ð¾Ñ€Ð³Ð°Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ ÐºÐ»Ñ–Ñ”Ð½Ñ‚Ñьких Ñтанцій на різній оÑнові (Qt, Web, ...), з підключеннÑм до центрального Ñерверу;</li> <li> повноцінний механізм розподілу повноважень між кориÑтувачами, що дозволÑÑ” Ñтворювати та виконувати проєкти з різними правами доÑтупу до його компонентів;</li> <li> гнучке Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð» Ñигналізацій та повідомлень, з урахуваннÑм та підтримкою різних ÑпоÑобів повідомленнÑ;</li> <li> підтримка кориÑтувацького Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð»Ñ–Ñ‚Ñ€Ð¸ та шрифтових переваг інтерфейÑу візуалізації, в ÑтилÑÑ…;</li> <li> підтримка кориÑтувацького Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ñ€Ñ‚ повідомлень під різне Ð¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ñ‚Ð° переваги кориÑтувача;</li> <li> підтримка профілів кориÑтувача, що дозволÑють визначати різні влаÑтивоÑті інтерфейÑу візуалізації (гама кольорів, шрифтові оÑобливоÑті, переважні карти повідомлень);</li> <li> гнучке Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ‚Ð° розповÑÑŽÐ´Ð¶ÐµÐ½Ð½Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐº віджетів, кадрів та проєктів інтерфейÑів візуалізації у БД, підтримуваних OpenSCADA; практично, кориÑтувачу треба тільки зареєÑтрувати отриману БД з даними.</li></ul> <p><br /> </p> <h2><span class="mw-headline" id=".D0.92.D0.B8.D0.BA.D0.BE.D0.BD.D0.B0.D0.BD.D0.BD.D1.8F_.D1.96.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D1.96.D0.B2_.D0.A1.D0.92.D0.A3"><span class="mw-headline-number">2</span> Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñів СВУ</span></h2> <p>Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñу СВУ полÑгає в запуÑку нового ÑеанÑу проєкту, або Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ Ñ–Ñнуючого, на рівні Ñ€ÑƒÑˆÑ–Ñ Ð¡Ð’Ð£ (риÑ.2). Перед запитом на Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ ÑеанÑу здійÑнюєтьÑÑ Ð·Ð°Ð¿Ð¸Ñ‚ на аутентифікацію кориÑтувача (риÑ.1). Далі, модуль безпоÑередньої візуалізації відображає та керує даними ÑеанÑу. Головне вікно режиму Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¾Ð³Ð¾ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¼Ð°Ñ” виглÑд, наведений на риÑунку 3. ÐдмініÑтративні кориÑтувачі ("root" або у групі "root") можуть закривати відкриті ÑеанÑи. </p><p>Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð²Ñ–ÐºÐ½Ð° Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ð½Ñ–Ñтю будуєтьÑÑ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾, Ñкриптом JavaScript та виходÑчи із вміÑту ÑеанÑу проєкту, шлÑхом прÑмих XML запитів до Ñерверу. </p><p>Реалізовано Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¼Ñ–Ñту відкритих Ñторінок інтерфейÑу візуалізації з періодичніÑтю Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð²Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ ÑеанÑу проєкту візуалізації. Ð’ процеÑÑ– Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð´Ñ–Ð¹ÑнюєтьÑÑ: </p> <ul><li> запит у моделі переліку відкритих Ñторінок, з ознакою модифікації Ñторінки, та перевірка відповідноÑті реально відкритих Ñторінок цьому переліку;</li> <li> запит гілки даних модифікованих Ñторінок;</li> <li> Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¼Ñ–Ñту модифікованих Ñторінок та Ñ—Ñ… віджетів у відповідноÑті до отриманих змінених даних.</li></ul> <p>Механізм запиту тільки змінених даних заÑновано на абÑолютному лічильнику Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÑеанÑу. При внеÑенні реальних змін до атрибутів віджетів здійÑнюєтьÑÑ Ð·Ð°Ð¿Ð°Ð¼'ÑÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ лічильника, що й дозволÑÑ” ідентифікувати змінені атрибути. Такий підхід дозволÑÑ” підвищити продуктивніÑть та зменшити трафік, у випадку доÑтупу до Ñ€ÑƒÑˆÑ–Ñ Ð¡Ð’Ð£ через мережу. </p><p>Ієрархічно, модулем передбачаєтьÑÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ–Ñть Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñторінок проєкту Ñк на головному вікні Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ (риÑ.3), так Ñ– вкладаючи вÑередину віджетів контейнерів, а також шлÑхом Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… вікон поверх оÑновного. </p><p>Ðа Ñ€Ñдку ÑтатуÑу розташовуютьÑÑ: </p> <ul><li> Праворуч: <ul><li> поточний кориÑтувач, від ім'Ñ Ñкого виконуєтьÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¡Ð’Ð£ — кліком можна змінити цього кориÑтувача, ввівши нове ім'Ñ Ñ‚Ð° пароль;</li> <li> поточний Ñтиль інтерфейÑу, Ñкий можна змінити обравши з комбобокÑу потрібний;</li> <li> поточний ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð¾Ñ€ÑƒÑˆÐµÐ½Ð½Ñ Ñƒ лампі кольором, Ñкий відповідає рівню порушеннÑ, та іконки активних Ñповіщувачів; блимає при поÑві та зміні порушеннÑ; натиÑнувши на лампу Ви можете Ñквітувати (Ñтишити) ці Ð¿Ð¾Ñ€ÑƒÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ð»ÐºÐ¾Ð¼ або бажаний тип ÑповіщеннÑ, натиÑнувши іконку відповідного Ñповіщувача порÑд;</li> <li> кнопка меню із виклику друку та екÑпорту даних Ñторінки длÑ: <ul><li> друку: ОÑновної Сторінки, Документів;</li> <li> екÑпорту: Документів (HTML,CSV), Таблиць (CSV).</li></ul></li> <li> підручнику на проєкт СВУ — кліком викликає підручник на проєкт візуалізації щодо файлу "<b>{ProjVCA_ID}.[pdf|html|odt]</b>" у <a href="../Program_manual.html#Config" title="Special:MyLanguage/Documents/Program manual">теці документів</a> або визначеного у <a href="#SpecAttrs"> атрибуті "prjDoc"</a>;</li> <li> панель кориÑтувацьких ÑтатуÑів Ñ– дій за визначеннÑм у <a href="#SpecAttrs">атрибуті "statLine"</a>; ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ð»Ñ–Ð²Ð¾ÑŽ, правою та подвійним миші формує події до головної Ñторінки інтерфейÑу.</li></ul></li> <li> У головному полі Ñ€Ñдка ÑтатуÑу виводÑтьÑÑ Ñ€Ñ–Ð·Ð½Ñ– інформаційні Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‚Ð° Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¸.</li></ul> <p>Модуль підтримує багатомовніÑть, Ñка вмикаєтьÑÑ <a href="../Program_manual.html#ConfigTr" title="Special:MyLanguage/Documents/Program manual">динамічним перекладом повідомлень OpenSCADA</a>. Отримана мова передаєтьÑÑ Ð¼Ð¾Ð´ÑƒÐ»ÐµÐ¼ <a href="../Modules/HTTP.html" title="Special:MyLanguage/Modules/HTTP">Protocol.HTTP</a> та визначаєтьÑÑ ÑˆÐ»Ñхом та у поÑлідовноÑті: </p> <ul><li> URL параметр "lang".</li> <li> Мова кориÑтувача, що увійшов.</li> <li> Мова Web-браузеру з HTTP влаÑтивоÑті "Accept-Language".</li> <li> Загальна мова процеÑу OpenSCADA.</li></ul> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:619px;"><a class="image" href="http://oscada.org/wiki/File:HTTP_auth_uk.png"><img class="thumbimage" height="286" src="../files/HTTP_auth_uk.png" width="617" /></a> <div class="thumbcaption">РиÑ.1. Сторінка аутентифікації.</div></div></div></div> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:606px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_connect_uk.png"><img class="thumbimage" height="458" src="../files/WebVision_wvis_connect_uk.png" width="604" /></a> <div class="thumbcaption">РиÑ.2. ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ ÑеанÑу Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ”ÐºÑ‚Ñƒ СВУ.</div></div></div></div> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:1037px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_run_uk.png"><img class="thumbimage" height="817" src="../files/WebVision_wvis_run_uk.png" width="1035" /></a> <div class="thumbcaption">РиÑ.3. Головне вікно режиму виконаннÑ.</div></div></div></div> <h2><span class="mw-headline" id=".D0.9F.D1.80.D0.B5.D0.B4.D1.81.D1.82.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.BD.D1.8F_.D0.B1.D0.B0.D0.B7.D0.BE.D0.B2.D0.B8.D1.85_.D0.B5.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D1.96.D0.B2_.28.D0.BF.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2.D1.96.D0.B2.29"><span class="mw-headline-number">3</span> <span id="Primitives" title="#Primitives">ПредÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð±Ð°Ð·Ð¾Ð²Ð¸Ñ… елементів (примітивів)</span></span></h2> <p>Даною верÑією Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾ не вÑÑ– образи примітивів, закладені проєктом. Загалом, проєктом закладено примітиви: </p> <table class="wikitable"> <tr> <th> Ідентифікатор </th> <th> ÐÐ°Ð¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ </th> <th> Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ </th></tr> <tr> <td> ElFigure </td> <td> Елементарна графічна фігура </td> <td> <p>Примітив Ñ” оÑновою відмальовки елементарних графічних фігур зі вÑілÑкими комбінаціÑми Ñ—Ñ… у одному об'єкті. ПередбачаєтьÑÑ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° наÑтупних елементарних фігур: </p> <ul><li> ЛініÑ.</li> <li> Дуга.</li> <li> Крива Без'Ñ”.</li> <li> Заливка замкненого проÑтору.<br /></li></ul> <p>Ð”Ð»Ñ Ð²ÑÑ–Ñ… фігур, що міÑÑ‚ÑтьÑÑ Ñƒ віджеті, вÑтановлюютьÑÑ Ñ”Ð´Ð¸Ð½Ñ– влаÑтивоÑті товщини, кольору та інше, також, передбачаєтьÑÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ–Ñть ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ Ð²Ð¸Ñ‰ÐµÐ¿ÐµÑ€ÐµÐ»Ñ–Ñ‡ÐµÐ½Ð¸Ñ… атрибутів Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— фігури окремо та Ñ—Ñ… динамізаціÑ. </p> </td></tr> <tr> <td> FormEl </td> <td> Елемент форми </td> <td> <p>Включає підтримку Ñтандартних компонентів форми: </p> <ul><li> Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñдку.</li> <li> Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту.</li> <li> Прапорець.</li> <li> Кнопка.</li> <li> Вибір з переліку.</li> <li> Перелік.</li> <li> Дерево.</li> <li> ТаблицÑ.</li> <li> Слайдер.</li> <li> Стрічка прокрутки. </li></ul> </td></tr> <tr> <td> Text </td> <td> ТекÑÑ‚ </td> <td> Елемент текÑту-мітка. ХарактеризуєтьÑÑ Ñ‚Ð¸Ð¿Ð¾Ð¼ шрифту, кольором, орієнтацією та вирівнюваннÑм. ПередбачаєтьÑÑ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° аргументів. </td></tr> <tr> <td> Media </td> <td> Медіа </td> <td> Елемент Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð°Ñтрових та векторних зображень різних форматів, Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð½Ñ–Ð¼Ð¾Ð²Ð°Ð½Ð¸Ñ… зображень, Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð²Ð°Ð½Ð½Ñ Ð°ÑƒÐ´Ñ–Ð¾-фрагментів та переглÑд відео-фрагментів. </td></tr> <tr> <td> Diagram </td> <td> Діаграма </td> <td> Елемент діаграми з підтримкою можливоÑті Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… потоків у реальному чаÑÑ– длÑ: трендів (чаÑових графіків), чаÑтотного Ñпектру, XY діаграм. </td></tr> <tr> <td> Protocol </td> <td> Протокол </td> <td> Елемент протоколу — візуалізатор повідомлень програми, з підтримкою декількох режимів роботи. </td></tr> <tr> <td> Document </td> <td> Документ </td> <td> Елемент Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð²Ñ–Ñ‚Ñ–Ð², журналів та іншої документації на оÑнові доÑтупних даних. </td></tr> <tr> <td> Box </td> <td> Контейнер </td> <td> МіÑтить механізм розташуваннÑ-Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ–Ð½ÑˆÐ¸Ñ… віджетів Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ…, більш Ñкладних, віджетів та Ñторінок кінцевої візуалізації. </td></tr> <tr> <td> Function, <span style="color: red">у планах</span> </td> <td> Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ API об'єктної моделі OpenSCADA </td> <td> Ðевізуальний віджет, на боці виконаннÑ, що дозволÑÑ” включати обчиÑлювальні функції об'єктної моделі OpenSCADA до СВУ. </td></tr></table> <p><span id="SpecAttrs" title="#SpecAttrs">Модулем візуалізатору надаєтьÑÑ Ñ‚Ð° викориÑтовуєтьÑÑ Ð½Ð¸Ð·ÐºÐ° Ñпецифічних атрибутів</span> загального характеру, інформацію про Ñкі наведено у таблиці. Ці атрибути автоматично ÑтворюютьÑÑ Ð²Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ‚Ð¾Ñ€Ð¾Ð¼ за Ñ—Ñ… відÑутноÑті та під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ запуÑку, або ÑтворюютьÑÑ ÐºÐ¾Ñ€Ð¸Ñтувачем у кадрі вказаної облаÑті, за потреби. </p> <table class="wikitable"> <tr> <th> Ідентифікатор (облаÑть) </th> <th> Ім'Ñ </th> <th> ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ </th></tr> <tr> <td> keepAspectRatio (головна Ñторінка) </td> <td> Зберігати пропорцію при маÑштабуванні </td> <td> Зберігати пропорцію Ñторінок при маÑштабуванні. </td></tr> <tr> <td> stBarNoShow (головна Ñторінка) </td> <td> Ðе показувати Ñ€Ñдок ÑтатуÑу </td> <td> Приховати Ñ€Ñдок ÑтатуÑу головного вікна. </td></tr> <tr> <td> notify{N}, notifyVisWebVision{N} (Ñторінка) </td> <td> Сповіщувач: тип {N} </td> <td> <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Створити вручну із типом "ТекÑÑ‚"! <p>Визначає Ñповіщувач та процедуру Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑу ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð³Ñ–Ð´Ð½Ð¾ до <a href="../Modules/VCAEngine.html#Alarms" title="Special:MyLanguage/Modules/VCAEngine">концепції "Сигналізації (Ðларми)"</a>. </p> </td></tr> <tr> <td> statLine (головна Ñторінка) </td> <td> Елементи Ñ€Ñдку ÑтатуÑу </td> <td> <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Створити вручну із типом "ТекÑÑ‚"! <p>ТекÑтове поле з опиÑом елементів Ñ€Ñдка ÑтатуÑу кориÑтувача, у форматі Ñ€Ñдка "<b>{Id}:{Label}:{ToolTip}:{Color}:{Img}</b>", де: </p> <ul><li> "Id" — ідентифікатор, викориÑтовуєтьÑÑ Ñ‚Ð°ÐºÐ¾Ð¶ Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ від віджету "stIt_{Id}".</li> <li> "Label" — візуальна мітка елементу ÑтатуÑу.</li> <li> "ToolTip" — Ñпливаюча підказка ÑтоÑовно елементу.</li> <li> "Color" — колір мітки.</li> <li> "Img" — Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñƒ ÑтатуÑу, заміÑть мітки.</li></ul> </td></tr> <tr> <td> userSetVis (головна Ñторінка) </td> <td> Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача </td> <td> <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Створити вручну із типом "Ð Ñдок"! <p>Зміна кориÑтувача або виклик діалогу Ð´Ð»Ñ Ð¹Ð¾Ð³Ð¾ обраннÑ. Варіанти значеннÑ: </p> <ul><li> "*" — виклик діалогу Ð¾Ð±Ñ€Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача;</li> <li> "$" — зміна кориÑтувача на типового;</li> <li> "{кориÑтувач}[:{пароль}]" — прÑма зміна на <i>кориÑтувач</i> із <i>паролем</i>; Ð´Ð»Ñ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾Ð³Ð¾ Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувач змінюєтьÑÑ Ð»Ð¸ÑˆÐµ Ñкщо його права менше або дорівнюють; кориÑний приклад зміни на кориÑтувача "user" піÑÐ»Ñ Ñ…Ð²Ð¸Ð»Ð¸Ð½Ð¸ неактивноÑті:</li></ul> <div class="mw-highlight mw-content-ltr" dir="ltr" style="margin-left: 20pt"><pre><span class="k">if</span><span class="p">((</span><span class="nx">SYS</span><span class="p">.</span><span class="nx">time</span><span class="p">()</span><span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">ownerSess</span><span class="p">().</span><span class="nx">userActTm</span><span class="p">())</span> <span class="o"><</span> <span class="mi">60</span><span class="p">)</span><span class="nx">userSetVis</span> <span class="o">=</span> <span class="s2">""</span><span class="p">;</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">ownerSess</span><span class="p">().</span><span class="nx">reqUser</span><span class="p">()</span> <span class="o">!=</span> <span class="s2">"user"</span><span class="p">)</span> <span class="nx">userSetVis</span> <span class="o">=</span> <span class="s2">"user"</span><span class="p">;</span> </pre></div> </td></tr> <tr> <td> prjDoc (головна Ñторінка) </td> <td> Документ проєкту </td> <td> <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Створити вручну із типом "Ð Ñдок"! <p>Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñƒ проєкту виклику кнопкою Ñ€Ñдка ÑтатуÑу із можливіÑтю вимкненнÑ-Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ за порожнього значеннÑ. Документ визначаєтьÑÑ Ñƒ виглÑді "<b>{OffLine}|{OnLineOpenSCADAWiki}</b>", до прикладу Ð´Ð»Ñ <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/Model_AGLKS" title="Special:MyLanguage/Using/Model AGLKS">проєкту ÐГЛКС</a> — "AGLCS|Using/Model_AGLKS". Мережева чаÑтина викориÑтовуєтьÑÑ Ñƒ першу чергу за Ñ—Ñ— визначеннÑ. </p> </td></tr> <tr> <td> vs_goHttpUrl (виглÑд "Кнопка" примітиву "FormEl") </td> <td> Перехід за HTTP URL </td> <td> <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Створити вручну із типом "Ð Ñдок"! <p>Перехід на визначений URL за натиÑканнÑм кнопки. </p> </td></tr> <tr> <td> vs_background (види "Line edit", "Text edit", "Combo box", "List", "Tree", "Table" примітиву "FormEl") </td> <td> КориÑтувацький фон </td> <td> <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Створити вручну із типом "Ð Ñдок"! <p>Визначає кориÑтувацький фон у формі <b>{color}-{transp} {image}</b>. </p> </td></tr> <tr> <td> vs_border (види "Line edit", "Text edit", "Combo box", "List", "Tree", "Table" примітиву "FormEl") </td> <td> КориÑтувацька Ð³Ñ€Ð°Ð½Ð¸Ñ†Ñ </td> <td> <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Створити вручну із типом "Ð Ñдок"! <p>Визначає кориÑтувацьку границю у Ñтандартній формі CSS <b>{wdth}px {style} {color}</b>. </p> </td></tr> <tr> <td> vs_winTitle (вид "Box") </td> <td> Заголовок вікна </td> <td> <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Створити вручну із типом "Ð Ñдок"! <p>Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ заголовку вікна. </p> </td></tr></table> <p>РозглÑнемо реалізацію кожного примітиву більш детально. </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D0.B5.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.80.D0.BD.D0.BE.D1.97_.D1.84.D1.96.D0.B3.D1.83.D1.80.D0.B8_.28ElFigure.29"><span class="mw-headline-number">3.1</span> Примітив елементарної фігури (ElFigure)</span></h3> <p>Реалізовано підтримку елементарних фігур: лінії, еліптичної дуги, кривої Без'Ñ” та заливка замкнених контурів кольором та зображеннÑм; з влаÑтивоÑÑ‚Ñми: </p> <ul><li> Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ñ–Ð»ÑŒÐ½Ð¸Ñ… зображень із трьох елементарних фігур та заповнень замкнених проÑторів кольором або зображеннÑм;</li> <li> можливіÑть Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð»Ð°ÑтивоÑтей фігур Ñк загалом, так Ñ– окремо Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ—: ширина, колір та Ñтиль лінії, ширина та колір бордюру лінії, колір та Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ;</li> <li> маÑштабуваннÑ;</li> <li> транÑформаціÑ: поворот та віддзеркаленнÑ;</li> <li> підтримка кориÑтувацьких атрибутів динамічних: точок, ширин, кольорів, Ñтилів та зображень;</li> <li> Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ð¹ за діÑми маніпулÑтором миші у замкненому проÑторі та загалом.</li></ul> <p>Ðа риÑунку предÑтавлено чаÑтину екрану з кадром, Ñкий міÑтить елементарні фігури. </p> <div class="center"><div class="floatnone"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_run_elfig.png"><img alt="WebVision wvis run elfig.png" height="311" src="../../en/files/WebVision_wvis_run_elfig.png" width="222" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D1.82.D0.B5.D0.BA.D1.81.D1.82.D1.83_.28Text.29"><span class="mw-headline-number">3.2</span> Примітив текÑту (Text)</span></h3> <p>Реалізовано підтримку елементу текÑту зі влаÑтивоÑÑ‚Ñми: </p> <ul><li> Шрифт зі влаÑтивоÑÑ‚Ñми: типу-клаÑу, розміру, підÑиленнÑ, нахилу, підкреÑÐ»ÐµÐ½Ð½Ñ Ñ‚Ð° перекреÑленнÑ. </li> <li> Колір текÑту.</li> <li> ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ñ‚ÐµÐºÑту. </li> <li> Ðвтоматичне перенеÑÐµÐ½Ð½Ñ Ð·Ð° Ñловами.</li> <li> Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту по горизонталі та вертикалі, з уÑіма варіантами.</li> <li> Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð¾Ð½Ñƒ у виглÑді кольору та зображеннÑ.</li> <li> Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð±Ð¾Ñ€Ð´ÑŽÑ€Ñƒ довкола текÑту з вказаним кольором, шириною та Ñтилем.</li> <li> Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ HTML.</li> <li> Ð”Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑту аргументами різного типу та влаÑтивоÑтей.</li></ul> <p>Ðа риÑунку предÑтавлено чаÑтину екрана з кадром, що міÑтить приклади текÑту з викориÑтаннÑм різних параметрів. </p> <div class="center"><div class="floatnone"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_run_txt_uk.png"><img alt="WebVision wvis run txt uk.png" height="156" src="../files/WebVision_wvis_run_txt_uk.png" width="223" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D0.B5.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D1.83_.D1.84.D0.BE.D1.80.D0.BC.D0.B8_.28FormEl.29"><span class="mw-headline-number">3.3</span> Примітив елементу форми (FormEl)</span></h3> <p>Реалізовано підтримку елементів форми на кадрах СВУ із закладеними влаÑтивоÑÑ‚Ñми, включаючи наÑтупні типи: </p> <ul><li> <i>Редактор Ñ€Ñдку</i> — ПредÑтавлено наÑтупними видами: "ТекÑÑ‚", "Combo", "Ціле", "Реальне", "ЧаÑ", "Дата", "Ð§Ð°Ñ Ñ‚Ð° Дата". Ð’ÑÑ– види редактору Ñ€Ñдка підтримують Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð²Ð¾Ð´Ñƒ.</li> <li> <i>Редактор текÑту</i> — Ðадає редактор плаÑкого текÑту з підтвердженнÑм або відмовою від вводу.</li> <li> <i>Поле ознаки</i> — Ðадає поле бінарної ознаки.</li> <li> <i>Кнопка</i> — Ðадає кнопку з підтримкою кольору кнопки, Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñƒ кнопці та режимів: <ul><li> Ñтандартний;</li> <li> перемикальний;</li> <li> виклик меню;</li> <li> виклик Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ;</li> <li> виклик Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ.</li></ul></li> <li> <i>Вибір з переліку</i> — Ðадає поле вибору елементу з переліку вказаних елементів.</li> <li> <i>Перелік</i> — Ðадає поле переліку з контролем за поточним елементом.</li> <li> <i>Дерево</i> — Ðадає елемент дерева з можливіÑтю Ð¾Ð±Ñ€Ð°Ð½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ–Ð².</li> <li> <i>ТаблицÑ</i> — Ðадає елемент таблиці з можливіÑтю вибору клітинок, Ñ€Ñдків або Ñтовпчиків, а також Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¼Ñ–Ñту клітинки.</li> <li> <i>Слайдер</i> — Елемент Ñлайдеру.</li> <li> <i>ПрогреÑ-бар</i> — Стрічка прогреÑ-бару (ідентично до Слайдер).</li> <li> <i>Пароль</i> — Приховане Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŽ.</li></ul> <p>Реалізовано режими "Ввімкнено" та "Ðктивний", а також передача змін та повідомлень у модель даних СВУ — рушій. Режим "Ðктивний" призводить до вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÑƒÑ€Ñору активноÑті Ð´Ð»Ñ Ð½ÐµÐ¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾Ð³Ð¾ фону та додаткових умов різних видів "Text", "Media" та "Box": </p> <ul><li> <i>Text</i> — не порожній текÑÑ‚;</li> <li> <i>Media</i> — не порожнє джерело зображеннÑ.</li></ul> <p>Ðа риÑунку предÑтавлено чаÑтину екрану з кадром, що міÑтить вищеперелічені елементи форми. </p> <div class="center"><div class="floatnone"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_run_formel_uk.png"><img alt="WebVision wvis run formel uk.png" height="341" src="../files/WebVision_wvis_run_formel_uk.png" width="599" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D0.B2.D1.96.D0.B4.D0.BE.D0.B1.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.BD.D1.8F_.D0.BC.D0.B5.D0.B4.D1.96.D0.B0-.D0.BC.D0.B0.D1.82.D0.B5.D1.80.D1.96.D0.B0.D0.BB.D1.96.D0.B2_.28Media.29"><span class="mw-headline-number">3.4</span> Примітив Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°-матеріалів (Media)</span></h3> <p>Реалізовано підтримку елементу Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°-матеріалів з влаÑтивоÑÑ‚Ñми: </p> <ul><li> Ð’ÐºÐ°Ð·Ð°Ð½Ð½Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° медіа даних: Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ відео-матеріалу.</li> <li> ПереглÑд зображень більшоÑті відомих форматів з можливіÑтю Ñ—Ñ… впиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розмір віджету Ñ– Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ ÑÐ¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñторін тут.</li> <li> ÐŸÑ€Ð¾Ð³Ñ€Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñтих анімованих форматів зображень та відео з можливіÑтю ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÑ–Ñтю Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð²Ð°Ð½Ð½Ñ (<font color="red">недоÑтупно</font>).</li> <li> ÐŸÑ€Ð¾Ð³Ñ€Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ð½Ð¾Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð½Ð¾Ð³Ð¾ відео та аудіо за допомогою HTML5.</li> <li> Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð¾Ð½Ñƒ у виглÑді кольору та зображеннÑ.</li> <li> Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð±Ð¾Ñ€Ð´ÑŽÑ€Ñƒ по периметру віджету, з вказаним кольором, шириною та Ñтилем.</li> <li> Ð¤Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ… облаÑтей та Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ при Ñ—Ñ… активації.</li></ul> <p>Ðа риÑунку предÑтавлено чаÑтину екрану з кадром, що міÑтить приклади переглÑду/Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð²Ð°Ð½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°-даних. </p> <div class="center"><div class="floatnone"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_run_media.png"><img alt="WebVision wvis run media.png" height="216" src="../../en/files/WebVision_wvis_run_media.png" width="245" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D0.BF.D0.BE.D0.B1.D1.83.D0.B4.D0.BE.D0.B2.D0.B8_.D0.B4.D1.96.D0.B0.D0.B3.D1.80.D0.B0.D0.BC_.28Diagram.29"><span class="mw-headline-number">3.5</span> Примітив побудови діаграм (Diagram)</span></h3> <p>Реалізовано підтримку елементу побудови діаграм Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñ–Ð² "Графік", "Спектр" та "XY", з влаÑтивоÑÑ‚Ñми: </p> <ul><li> Загальні влаÑтивоÑті типів діаграми "Графік", "Спектр" та "XY": <ul><li> можливіÑть вибору архіватору, буферу архіву або вÑÑ–Ñ… даних, при роботі з архівними даними;</li> <li> Ð°Ð´Ð°Ð¿Ñ‚Ð°Ñ†Ñ–Ñ Ð³Ñ€Ð°Ñ„Ñ–ÐºÑƒ параметра до реальних значень даних шлÑхом Ð¿Ñ–Ð´Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐºÐ°Ð»Ñ‹, у випадку відÑутноÑті прÑмо вказаного діапазону значень;</li> <li> ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð¼Ð°Ñштабом шкали значень шлÑхом збільшеннÑ, Ð·Ð¼ÐµÐ½ÑˆÐµÐ½Ð½Ñ Ñ‚Ð° зÑуву;</li> <li> широкий діапазон маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° адаптації шкали чаÑу з автоматичним приведеннÑм запитаних даних до ÑкоÑті доÑтатньої до відображеннÑ, або потрібної Ð´Ð»Ñ ÐµÐºÑпорту — вказаннÑм граничної кількоÑті вимірів у пікÑелі;</li> <li> Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð½Ð¾Ñ— ґратки та маркерів по горизонталі та вертикалі з адаптацією до діапазону відображеннÑ;</li> <li> Ñлідкуючий режим за поточним чаÑом шлÑхом періодичного Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð° Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу діаграми до поточного чаÑу — чаÑу оÑтанніх даних у буфері архіву.</li></ul></li> <li> ВлаÑтивоÑті типу діаграми "Графік": <ul><li> побудова графіків до 100 параметрів на одній діаграмі у процентній шкалі та можливіÑтю Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¸Ñ… параметрів у влаÑній шкалі;</li> <li> побудова графіку длÑ: поточних, архівних та кориÑтувацьких даних;</li> <li> Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼Ñ–Ð¶Ð½Ð¾Ð³Ð¾ буферу Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ… значень;</li> <li> підтримка активного режиму з курÑором та отриманнÑм значень під курÑором;</li> <li> можливіÑть побудови графіків Ñк у лінійній, так Ñ– логарифмічній шкалі значень.</li></ul></li> <li> ВлаÑтивоÑті типу діаграми "Спектр": <ul><li> побудова графіків чаÑтотного Ñпектру параметрів до 100 на одній діаграмі у процентній шкалі та можливіÑтю Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¸Ñ… параметрів у влаÑній шкалі;</li> <li> побудова графіку длÑ: архівних та кориÑтувацьких даних;</li> <li> підтримка активного режиму з курÑором та отриманнÑм значень під курÑором.</li></ul></li> <li> ВлаÑтивоÑті типу діаграми "XY": <ul><li> побудова XY графіків параметрів до 50 на одній діаграмі у процентній шкалі та можливіÑтю Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¸Ñ… параметрів у влаÑній шкалі;</li> <li> побудова графіку длÑ: поточних, архівних та кориÑтувацьких даних;</li> <li> Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼Ñ–Ð¶Ð½Ð¾Ð³Ð¾ буферу Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ… значень;</li> <li> параметри розподілÑютьÑÑ Ð¿Ð°Ñ€Ð°Ð¼Ð¸ на графік, де парні за оÑÑ– Y (0,2,4...) та непарні за оÑÑ– X (1,3,5...);</li> <li> можливіÑть побудови графіків Ñк у лінійній, так Ñ– логарифмічній шкалі значень.</li></ul></li></ul> <p>Ðа риÑунку предÑтавлено чаÑтину екрану з кадром, що міÑтить приклади діаграм: "Графік", "Спектр" та "XY". </p> <div class="center"><div class="floatnone"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_run_diag.png"><img alt="WebVision wvis run diag.png" height="448" src="../../en/files/WebVision_wvis_run_diag.png" width="348" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D1.83.D0.B2.D0.B0.D0.BD.D0.BD.D1.8F_.D0.BF.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D1.83_.28Protocol.29"><span class="mw-headline-number">3.6</span> Примітив Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ (Protocol)</span></h3> <p>Реалізовано підтримку елементу Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ з влаÑтивоÑÑ‚Ñми: </p> <ul><li> Ð¤Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ з архіву повідомлень на вказаний Ñ‡Ð°Ñ Ñ‚Ð° глибину.</li> <li> Запит даних з вказаних архіваторів повідомлень.</li> <li> Вибірка даних з архівів за рівнем важливоÑті та шаблоном категорії повідомлень.</li> <li> Підтримка режиму ÑÐ»Ñ–Ð´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° поÑвою повідомлень у архіві повідомлень.</li></ul> <p>Ðа риÑунку предÑтавлено чаÑтину екрану з кадром, що міÑтить приклад протоколу. </p> <div class="center"><div class="floatnone"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_run_prot_uk.png"><img alt="WebVision wvis run prot uk.png" height="247" src="../files/WebVision_wvis_run_prot_uk.png" width="462" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D1.83.D0.B2.D0.B0.D0.BD.D0.BD.D1.8F_.D0.B7.D0.B2.D1.96.D1.82.D0.BD.D0.BE.D1.97_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D1.96.D1.97_.28Document.29"><span class="mw-headline-number">3.7</span> Примітив Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð²Ñ–Ñ‚Ð½Ð¾Ñ— документації (Document)</span></h3> <p>Реалізовано підтримку елементу Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð²Ñ–Ñ‚Ð½Ð¾Ñ— документації з влаÑтивоÑÑ‚Ñми: </p> <ul><li> Гнучке Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ñтруктури документу на оÑнові мови гіпертекÑтової розмітки, що надає підтримку широких можливоÑтей Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð².</li> <li> Ð¤Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² за командою або розкладом, що необхідно Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð²Ñ–Ñ‚Ð½Ð¾Ñ— документації до архіву, з подальшим переглÑдом архіву.</li> <li> Ð¤Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² у режимі реального чаÑу, Ð´Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ñ—Ñ… повніÑтю динамічно та на оÑнові архівів за вказаний чаÑ.</li> <li> ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² віджету Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ñ– у документ значень та Ð°Ð´Ñ€ÐµÑ Ð½Ð° архіви, що дозволÑÑ” викориÑтовувати віджет документу Ñк шаблон, при формуванні звітів з іншими вхідними даними.</li></ul> <p>У оÑнові будь-Ñкого документу лежить XHTML-шаблон. XHTML-шаблон це тег "body" WEB-Ñторінки, що міÑтить Ñтатику документу у Ñтандарті XHTML 1.0 та елементи виконувальних інÑтрукцій на мові кориÑтувацького Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ OpenSCADA, у виглÑді <b><?dp {procedure} ?></b>. Результуючий документ формуєтьÑÑ ÑˆÐ»Ñхом Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€ та вÑтавки Ñ—Ñ… результату у документ. </p><p>Джерелом значень виконуваних інÑтрукцій Ñ” атрибути віджету цього примітиву, а також вÑÑ– механізми мови кориÑтувацького Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ OpenSCADA. Ðтрибути можуть додаватиÑÑ ÐºÐ¾Ñ€Ð¸Ñтувачем та лінкуватиÑÑ Ð½Ð° реальні атрибути параметрів або-ж бути автономними, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñких будуть формуватиÑÑ Ñƒ процедурі віджету. У випадку зі злінкованими атрибутами, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ вийматиÑÑ Ð· архіву-Ñ–Ñторії. </p><p>Ðа риÑунку предÑтавлено кадр, Ñкий міÑтить приклад документу. </p> <div class="center"><div class="floatnone"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_run_doc_uk.png"><img alt="WebVision wvis run doc uk.png" height="583" src="../files/WebVision_wvis_run_doc_uk.png" width="905" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D1.96.D1.82.D0.B8.D0.B2_.D0.BA.D0.BE.D0.BD.D1.82.D0.B5.D0.B9.D0.BD.D0.B5.D1.80.D1.83_.28Box.29"><span class="mw-headline-number">3.8</span> Примітив контейнеру (Box)</span></h3> <p>Реалізовано підтримку примітиву контейнеру, що, за ÑуміÑництвом, виконує роль Ñторінок проєктів. Даний примітив Ñ” єдиним елементом-контейнером, Ñкий може включати у Ñебе поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° кадри з бібліотеки, формуючи тим Ñамим кориÑтувацькі елементи потрібної конфігурації. Примітив реалізує передбачені проєктом влаÑтивоÑті. Перелічимо, по пунктах, влаÑтивоÑті даного примітиву: </p> <ul><li> <i>Контейнер</i> — ДозволÑÑ” формувати потрібні об'єкти шлÑхом Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¾Ð²Ð¸Ñ… у межах даного примітиву.</li> <li> <i>Сторінка</i> — Елементи, побудовані на даному примітиві, можуть виконувати роль Ñторінки кориÑтувацького інтерфейÑу.</li> <li> <i>Контейнер Ñторінок</i> — ВлаÑтивіÑть заміщеннÑ, у процеÑÑ– виконаннÑ, влаÑного вміÑту іншою Ñторінкою. ВикориÑтовуєтьÑÑ Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ñ€ÐµÐ¹Ð¼Ñ–Ð² на Ñторінках кориÑтувацького інтерфейÑу. Ðаприклад, головна Ñторінка типової SCADA-ÑиÑтеми з об'єктами Ñигналізації будуєтьÑÑ Ñаме таким чином.</li> <li> <i>Фон</i> — Підтримує можливіÑть ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ Ñ„Ð¾Ð½Ñƒ у виглÑді кольору та зображеннÑ.</li> <li> <i>Бордюр</i> — Підтримує можливіÑть Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð±Ð¾Ñ€Ð´ÑŽÑ€Ñƒ з вказаним кольором, товщиною та Ñтилем.</li></ul> <p><br /> </p> <h2><span class="mw-headline" id=".D0.97.D0.B0.D0.B3.D0.B0.D0.BB.D1.8C.D0.BD.D0.B0_.D0.BA.D0.BE.D0.BD.D1.84.D1.96.D0.B3.D1.83.D1.80.D0.B0.D1.86.D1.96.D1.8F_.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D1.8F"><span class="mw-headline-number">4</span> Загальна ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ</span></h2> <p>Ð”Ð»Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ— та ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†Ð¸Ð¼ модулем, надаєтьÑÑ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹Ð½Ð° Ñторінка інтерфейÑу ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ OpenSCADA (РиÑ.4) де Ви можете здійÑнювати: </p> <ul><li> Контроль за активними WEB-ÑеанÑами.</li> <li> Конфігурацію: <ul><li> Ð§Ð°Ñ Ð¶Ð¸Ñ‚Ñ‚Ñ, у хвилинах, та макÑимальна кількіÑть ÑеанÑÑ–.</li> <li> Ð§Ð°Ñ Ð¶Ð¸Ñ‚Ñ‚Ñ, у годинах, та макÑимальна кількіÑть Ñторінок у кеші.</li> <li> Рівень компреÑÑ–Ñ— PNG-зображень. Більш оптимальним Ñ” мінімальний рівень 1, оÑкільки без ÑтиÑÐ½ÐµÐ½Ð½Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñть великі файли, а більші рівні ÑтиÑÐ½ÐµÐ½Ð½Ñ Ñтворюють більш виÑоке Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° процеÑор.</li> <li> Зміна розміру раÑтрових зображень на боці Ñерверу. Переважно щоб зменшити розмір занадто великий зображень відтак Ñ– трафіку, що призводить до Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° Ñервер.</li> <li> КориÑтувацькі CSS правила інтерфейÑу. CSS правила Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñтандартних, що розташовуютьÑÑ Ð·Ð° Ñпеціальним знаком ##CUST_CSS## файлу WebVisionVCA.html.</li></ul></li></ul> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:1129px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_cfg_uk.png"><img class="thumbimage" height="605" src="../files/WebVision_wvis_cfg_uk.png" width="1127" /></a> <div class="thumbcaption">РиÑ.4. Сторінка конфігурації модулÑ.</div></div></div></div> <p>Ви можете глибоко налаштувати оÑновний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð·Ð°Ð¼Ñ–Ð½Ð¸Ð²ÑˆÐ¸ та доповнивши код HTML Ñ– JavaScript шлÑхом Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ теки вашого проєкту OpenSCADA файлів WebVisionVCA.html Ñ– WebVisionVCA.js, Ñкі початково можете отримати з вихідного коду Ð¼Ð¾Ð´ÑƒÐ»Ñ â€” <a class="external text" href="http://oscada.org/svn/trunk/OpenSCADA/src/moduls/ui/WebVision/" rel="nofollow noreferrer noopener" target="_blank">UI.WebVision</a>. </p> <h2><span class="mw-headline" id=".D0.95.D1.84.D0.B5.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D1.96.D1.81.D1.82.D1.8C_.D1.82.D0.B0_.D0.BC.D0.B0.D1.81.D1.88.D1.82.D0.B0.D0.B1.D0.BE.D0.B2.D0.B0.D0.BD.D1.96.D1.81.D1.82.D1.8C"><span class="mw-headline-number">5</span> <span id="Efficiency" title="#Efficiency">ЕфективніÑть та маÑштабованіÑть</span></span></h2> <p><b><u>31.07.2019</u></b><br /> GROUNDS: The Web-sessions may create many objects servicing the VCA-session for generating images, processing documents and performing other background functions of the end user Web-interface. Moreover, in difference to <a href="../Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">Vision</a>, the VCA-sessions may be created, closed and recreated again multiple times for different users and remote hosts. In the time the memory heap is affected by the memory fragmentation, so the program consumes more memory than at the start. The table below represents the phenomenon for different environments and the first page of <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/Model_AGLKS" title="Special:MyLanguage/Using/Model AGLKS">the DemoDB (AGLKS) project</a> reopening: </p> <table class="wikitable"> <tr> <th> Environment </th> <th> Initially, MB </th> <th> Iter. 1, MB </th> <th> Iter. 2, MB </th> <th> Iter. 3, MB </th> <th> Iter. 4, MB </th> <th> Iter. 5, MB </th> <th> Resume </th></tr> <tr> <td colspan="9"> <i>Complete creation the Web- and VCA-sessions</i> </td></tr> <tr> <td> Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=2 </td> <td> 181 </td> <td> 189 </td> <td> 190 </td> <td> 195 </td> <td> 195 </td> <td> 194 </td> <td> Satiated on the iteration <b>3</b>, base consumption 8 MB, extra consumption 5 MB (<b>62.5</b> %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB </td></tr> <tr> <td> Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 </td> <td> 177 </td> <td> 185 </td> <td> 186 </td> <td> 186 </td> <td> 185 </td> <td> 186 </td> <td> Satiated on the iteration <b>2</b>, base consumption 8 MB, extra consumption 1 MB (<b>13</b> %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB </td></tr> <tr> <td> Debian 9 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 </td> <td> 160 </td> <td> 168 </td> <td> 168 </td> <td> 168.5 </td> <td> 168.5 </td> <td> 168.5 </td> <td> Satiated on the iteration <b>1</b>, base consumption 8 MB, extra consumption 0.5 MB (<b>6</b> %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB </td></tr> <tr> <td> Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + optional background objects in WebVision </td> <td> 184 </td> <td> 194.5 </td> <td> 200 </td> <td> 207 </td> <td> 207 </td> <td> 212.5 </td> <td> Satiated on the iteration <b>5</b>, base consumption 10.5 MB, extra consumption 18 MB (<b>171</b> %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB </td></tr> <tr> <td> Debian 10 amd64, GLibC 2.28, GCC 8.3.0 </td> <td> 182 </td> <td> 191.5 </td> <td> 199 </td> <td> 206 </td> <td> 212 </td> <td> 212 </td> <td> Satiated on the iteration <b>4</b>, base consumption 9.5 MB, extra consumption 20 MB (<b>200</b> %), liboscada.so 3.5 MB, ui_WebVision.so 0.74 MB </td></tr> <tr> <td> Debian 9 amd64, GLibC 2.24, GCC 6.3.0 </td> <td> 160 </td> <td> 170 </td> <td> 178 </td> <td> 179 </td> <td> 183 </td> <td> 185 </td> <td> Satiated on the iteration <b>5</b>, base consumption 10 MB, extra consumption 15 MB (<b>150</b> %), liboscada.so 3.5 MB, ui_WebVision.so 0.72 MB </td></tr> <tr> <td> Debian 8 amd64, GLibC 2.19, GCC 4.9.2 </td> <td> 125.5 </td> <td> 133 </td> <td> 139 </td> <td> 139 </td> <td> 139 </td> <td> 139 </td> <td> Satiated on the iteration <b>2</b>, base consumption 7.5 MB, extra consumption 6 MB (<b>80</b> %), liboscada.so 3.8 MB, ui_WebVision.so 0.79 MB </td></tr> <tr> <td> Debian 7 amd64, GLibC 2.13, GCC 4.7.2 </td> <td> 101 </td> <td> 108 </td> <td> 111 </td> <td> 112 </td> <td> 112 </td> <td> 112 </td> <td> Satiated on the iteration <b>2</b>, base consumption 7 MB, extra consumption 4 MB (<b>57</b> %), liboscada.so 3.4 MB, ui_WebVision.so 0.85 MB </td></tr> <tr> <td> Debian 10 i386, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 </td> <td> 144 </td> <td> 152 </td> <td> 152 </td> <td> 152 </td> <td> 152 </td> <td> 152 </td> <td> Satiated on the iteration <b>1</b>, base consumption 8 MB, extra consumption 0 MB (<b>0</b> %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB </td></tr> <tr> <td> Debian 9 i386, GLibC 2.24, GCC 6.3.0 + MALLOC_ARENA_MAX=1 </td> <td> 126.5 </td> <td> 132.5 </td> <td> 133 </td> <td> 133 </td> <td> 133 </td> <td> 133 </td> <td> Satiated on the iteration <b>1</b>, base consumption 6 MB, extra consumption 0.5 MB (<b>8</b> %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB </td></tr> <tr> <td> Debian 10 i386, GLibC 2.28, GCC 8.3.0 </td> <td> 151 </td> <td> 158 </td> <td> 162.5 </td> <td> 166 </td> <td> 166 </td> <td> 166 </td> <td> Satiated on the iteration <b>3</b>, base consumption 7 MB, extra consumption 8 MB (<b>114</b> %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB </td></tr> <tr> <td> Debian 9 i386, GLibC 2.24, GCC 6.3.0 </td> <td> 125 </td> <td> 131 </td> <td> 132 </td> <td> 136 </td> <td> 136 </td> <td> 139 </td> <td> Satiated on the iteration <b>5</b>, base consumption 6 MB, extra consumption 8 MB (<b>133</b> %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB </td></tr> <tr> <td> Debian 8 i386, GLibC 2.19, GCC 4.9.2 </td> <td> 92.5 </td> <td> 99 </td> <td> 101.5 </td> <td> 103 </td> <td> 103.5 </td> <td> 103.5 </td> <td> Satiated on the iteration <b>2</b>, base consumption 6.5 MB, extra consumption 4.5 (<b>69</b> %), liboscada.so 3.6 MB, ui_WebVision.so 0.94 MB </td></tr> <tr> <td> Debian 7 i386, GLibC 2.13, GCC 4.7.2 </td> <td> 70 </td> <td> 76 </td> <td> 76 </td> <td> 76 </td> <td> 77 </td> <td> 77 </td> <td> Satiated on the iteration <b>2</b>, base consumption 6 MB, extra consumption 1 MB (<b>16</b> %), liboscada.so 3.6 MB, ui_WebVision.so 0.9 MB </td></tr> <tr> <td> ALTLinux 6 i386, GLibC 2.11.3, GCC 4.5.4 </td> <td> 69 </td> <td> 74 </td> <td> 75 </td> <td> 75 </td> <td> 75 </td> <td> 75 </td> <td> Satiated on the iteration <b>2</b>, base consumption 5 MB, extra consumption 1 MB (<b>20</b> %), liboscada.so 2.3 MB, ui_WebVision.so 0.9 MB </td></tr> <tr> <td colspan="9"> <i>Creation only VCA-session, from remote connection to the visualizer server</i> </td></tr> <tr> <td> Debian 10 amd64, GLibC 2.28, GCC 8.3.0 </td> <td> 180 </td> <td> 186 </td> <td> 186 </td> <td> 186 </td> <td> 186 </td> <td> 186 </td> <td> Satiated on the iteration <b>1</b>, extra consumption 0.2 MB (3 %) </td></tr> <tr> <td> Debian 7 amd64, GLibC 2.13, GCC 4.7.2 </td> <td> 100 </td> <td> 104 </td> <td> 105 </td> <td> 105 </td> <td> 105 </td> <td> 105 </td> <td> Satiated on the iteration <b>1</b>, extra consumption 1 MB (25 %) </td></tr> <tr> <td> Debian 10 i386, GLibC 2.28, GCC 8.3.0 </td> <td> 148 </td> <td> 154 </td> <td> 155 </td> <td> 155 </td> <td> 155 </td> <td> 155 </td> <td> Satiated on the iteration <b>1</b>, extra consumption 1 MB (16 %) </td></tr> <tr> <td> Debian 7 i386, GLibC 2.13, GCC 4.7.2 </td> <td> 69 </td> <td> 72 </td> <td> 72 </td> <td> 72 </td> <td> 72 </td> <td> 72 </td> <td> Satiated on the iteration <b>1</b>, extra consumption 0 MB (0 %) </td></tr></table> <p>CONCLUSION: We see obvious degradation in the memory effectivity on the last Debian releases starting at Debian 8 (GLibC 2.19) on I386 and Debian 9 (GLibC 2.24) on AMD64, when the memory consumption increased up to 200% after 3,4 free-allocate iterations of the same data. To more presenting of the problem there have built follow images on the data basis: </p> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:667px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_MemEffectAMD64.png"><img class="thumbimage" height="405" src="../../en/files/WebVision_MemEffectAMD64.png" width="665" /></a> <div class="thumbcaption">Fig.5. Memory effectivity on AMD64 platform.</div></div></div></div> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:643px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_MemEffectI386.png"><img class="thumbimage" height="401" src="../../en/files/WebVision_MemEffectI386.png" width="641" /></a> <div class="thumbcaption">Fig.6. Memory effectivity on I386 platform.</div></div></div></div> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:607px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_AbsInitSizeAMD64.png"><img class="thumbimage" height="427" src="../../en/files/WebVision_AbsInitSizeAMD64.png" width="605" /></a> <div class="thumbcaption">Fig.7. Absolute initial size of OpenSCADA "AGLKS" on the platform AMD64.</div></div></div></div> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:606px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_AbsInitSizeAI386.png"><img class="thumbimage" height="428" src="../../en/files/WebVision_AbsInitSizeAI386.png" width="604" /></a> <div class="thumbcaption">Fig.8. Absolute initial size of OpenSCADA "AGLKS" on the platform I386.</div></div></div></div> <p>MEASURES: </p> <ol><li> The optional background objects were implemented for the primitives "FormEl" and "Text", what will have most effect on mnemonic-schemes with these elements and wont have many effect for other, see the measuring data above.</li> <li> There were some tries to tune the memory allocator of GLibC using "<a class="external text" href="https://www.gnu.org/software/libc/manual/html_node/Memory-Allocation-Tunables.html" rel="nofollow noreferrer noopener" target="_blank">Memory Allocation Tunables</a>" without any significant effect, so we will <a class="external text" href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934080" rel="nofollow noreferrer noopener" target="_blank">notify the Debian community</a>, firstly.</li> <li> The problem was detected in arenas of the memory allocator, setting whose number to 1 (MALLOC_ARENA_MAX=1) completely resolves the problem and the effect you may see on Figures 9, 10, for a real big application.</li></ol> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:1038px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_MemoryDef.png"><img class="thumbimage" height="544" src="../../en/files/WebVision_MemoryDef.png" width="1036" /></a> <div class="thumbcaption">Fig.9. Tendency of the memory consumption on a real big application at the default conditions.</div></div></div></div> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:1058px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_MemoryArenas1.png"><img class="thumbimage" height="552" src="../../en/files/WebVision_MemoryArenas1.png" width="1056" /></a> <div class="thumbcaption">Fig.10. Tendency of the memory consumption on a real big application at the environment variable MALLOC_ARENA_MAX=1.</div></div></div></div> <p><b><u>20.06.2013</u></b><br /> GROUNDS: At working with the board <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/Kontron_MOPSlcdLX" title="Special:MyLanguage/Using/Kontron MOPSlcdLX">MOPSlcdLX</a>, attention was drawn to the heavy load of the task of forming full-size trends. As it turned out later, a large load is created by the formation of a PNG image in the GD2 library, or rather, the packing procedure of ZLib. The subject analysis of the performance of the formation of images of various formats on this board is summarized in the table below: </p> <table class="wikitable"> <tr> <th> Format </th> <th> Trend building, milliseconds </th> <th> Converting to the image format, milliseconds </th> <th> Size of the image, bytes </th></tr> <tr> <td> PNG (0) </td> <td> 200 </td> <td> 800 </td> <td> 1700365 </td></tr> <tr> <td> PNG (1) </td> <td> 200 </td> <td> 690 </td> <td> 24000 </td></tr> <tr> <td> PNG (-1) </td> <td> 200 </td> <td> 1000 </td> <td> 14800 </td></tr> <tr> <td> PNG (9) </td> <td> 200 </td> <td> 1900 </td> <td> 13354 </td></tr> <tr> <td> JPEG (-1) </td> <td> 200 </td> <td> 180 </td> <td> 53157 </td></tr> <tr> <td> GIF </td> <td> 200 </td> <td> 380 </td> <td> 14300 </td></tr></table> <p>CONCLUSION: As can be seen from the table above, the operation of forming PNG as a whole is resource-intensive and the most optimal level of compression is "1". At the same time, the formation of JPEG and GIF is much faster, but these image formats have a number of critical flaws, namely: JPEG does not have an alpha channel (transparency), and GIF is limited by the number of colors, which in both cases leads to loss of transparency and distortion of text smoothing and images in general. </p><p>MEASURES: The ability to select the compression level for the generated PNG images is added, and the default value is set to the optimal level "1". The implementation of the formation of the "Diagram" primitive on the browser side in the "svg" or "canvas" tags is planned. </p><p><br /> </p> <h2><span class="mw-headline" id=".D0.97.D0.B0.D1.83.D0.B2.D0.B0.D0.B6.D0.B5.D0.BD.D0.BD.D1.8F"><span class="mw-headline-number">6</span> ЗауваженнÑ</span></h2> <p>Ðа цьому етапі модуль може бути викориÑтаний Ð´Ð»Ñ Ð¿Ð¾Ð±ÑƒÐ´Ð¾Ð²Ð¸ реальних інтерфейÑів кориÑтувача з підтримкою оÑновних функцій. Однак, окремі проблеми можуть виникати Ñк з причини недопрацьованоÑті, так й різниці браузерів. Ðа цей Ñ‡Ð°Ñ Ð´Ð¾Ñтатньо ÑкіÑно забезпечено працездатніÑть на браузерах: Chromium (Google Chrome), FireFox, Opera, Konqueror. </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:WebVision_MemAllocFree.ods" title="File:WebVision MemAllocFree.ods">Електронна таблицÑ: Ðналіз ефективноÑті розподілу пам'Ñті.</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/WebVision/uk">Modules/WebVision/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>