<?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="ru">Модули/WebVision</h1> </div><div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="ru"><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=ru" 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 90% 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> • ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">mRussian</span> • ‎<a class="mw-pt-progress mw-pt-progress--complete" href="../../uk/Modules/WebVision.html" title="Модулі/WebVision (100% translated)">УкраїнÑька</a></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> UI </td> <td> Roman Savochenko<br /> <font size="-2"><i>Maxim Lysenko (2007-2012), Ksenia Yashina (2007-2008)</i></font> </td></tr> <tr> <th colspan="9"> Description </th></tr> <tr> <td colspan="9"> Visual operation user interface, based on the WEB — front-end to the VCA engine. <ul><li> <b>Total complexity:</b> > 50 <span title="human-days, 1 HD — 10 hours">HD<sup style="color: blue">[!]</sup></span></li> <li> <b>Sponsored by, for the primitive "Media" and Notification on 1.35 <span title="human-days, 1 HD — 10 hours">HD<sup style="color: blue">[!]</sup></span>:</b> Hadi Ramezani</li> <li> <b>Sponsored by, for the Notification on 0.85 <span title="human-days, 1 HD — 10 hours">HD<sup style="color: blue">[!]</sup></span>:</b> Vinnica Poultry Farm</li> <li> <b>Sponsored by, for finishing the mirroring of the primitive ElFigure on 0.5 <span title="human-days, 1 HD — 10 hours">HD<sup style="color: blue">[!]</sup></span>:</b> SVItoVYR Ltd</li> <li> <b>Sponsored by, for the Export on 0.8 <span title="human-days, 1 HD — 10 hours">HD<sup style="color: blue">[!]</sup></span>:</b> Vinnica Poultry Farm</li> <li> <b><a href="../../en/To_do.html" title="Special:MyLanguage/Works/To do">To Do</a>:</b></li></ul> <dl><dd> * revise and unify the keyboard focus forcing on a first active element considering them specifity, to ensure the keyboard shortcuts;</dd> <dd> - expand the primitive "Diagram" by the mouse scaling operations;</dd> <dd> - implement own RTE-editor for the view Text of the primitive FormEl;</dd> <dd> - ElFigure: fix some properties loss (line width at the least) at the actions processing, in the way of the primitive code common refactoring;</dd> <dd> - expand the status-bar, with the functions: <dl><dd> - printing and exporting the Diagram primitive after it moving to "SVG".</dd></dl></dd> <dd> - ElFigure,Diagram: enable or make the anti aliasing, for the library GD;</dd> <dd> - implement the primitives "Diagram", "ElFigure" in the tag "SVG";</dd> <dd> - expand the variant "Animation" of the primitive "Media" in using the raw image files, like to 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.9D.D0.B0.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">1</span> <span class="toctext">Ðазначение</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D0.BE.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.B8.D0.B5_.D0.B1.D0.B0.D0.B7.D0.BE.D0.B2.D1.8B.D1.85_.D1.8D.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2_.28.D0.BF.D1.80.D0.B8.D0.BC.D0.B8.D1.82.D0.B8.D0.B2.D0.BE.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.D0.B8.D1.82.D0.B8.D0.B2_.D1.8D.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.80.D0.BD.D0.BE.D0.B9_.D1.84.D0.B8.D0.B3.D1.83.D1.80.D1.8B_.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.D0.B8.D1.82.D0.B8.D0.B2_.D1.82.D0.B5.D0.BA.D1.81.D1.82.D0.B0_.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.D0.B8.D1.82.D0.B8.D0.B2_.D1.8D.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D0.B0_.D1.84.D0.BE.D1.80.D0.BC.D1.8B_.28FormEl.29"><span class="tocnumber">3.3</span> <span class="toctext">Примитив Ñлемента формы (FormEl)</span></a></li> <li class="toclevel-2 tocsection-7"><a href="#Primitive_of_the_displaying_the_media-materials_.28Media.29"><span class="tocnumber">3.4</span> <span class="toctext">Primitive of the displaying the media-materials (Media)</span></a></li> <li class="toclevel-2 tocsection-8"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D0.B8.D1.82.D0.B8.D0.B2_.D0.BF.D0.BE.D1.81.D1.82.D1.80.D0.BE.D0.B5.D0.BD.D0.B8.D1.8F_.D0.B4.D0.B8.D0.B0.D0.B3.D1.80.D0.B0.D0.BC.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.D0.B8.D1.82.D0.B8.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.BF.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D0.B0_.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.D0.B8.D1.82.D0.B8.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.BE.D1.82.D1.87.D1.91.D1.82.D0.BD.D0.BE.D0.B9_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D0.B8.D0.B8_.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.D0.B8.D1.82.D0.B8.D0.B2_.D0.BA.D0.BE.D0.BD.D1.82.D0.B5.D0.B9.D0.BD.D0.B5.D1.80.D0.B0_.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.9E.D0.B1.D1.89.D0.B0.D1.8F_.D0.BA.D0.BE.D0.BD.D1.84.D0.B8.D0.B3.D1.83.D1.80.D0.B0.D1.86.D0.B8.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.AD.D1.84.D1.84.D0.B5.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D1.81.D1.82.D1.8C_.D0.B8_.D0.BC.D0.B0.D1.81.D1.88.D1.82.D0.B0.D0.B1.D0.B8.D1.80.D1.83.D0.B5.D0.BC.D0.BE.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.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.D1.8F"><span class="tocnumber">6</span> <span class="toctext">ЗамечаниÑ</span></a></li> <li class="toclevel-1 tocsection-15"><a href="#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"><span class="tocnumber">7</span> <span class="toctext">СÑылки</span></a></li> </ul> </div> <h2><span class="mw-headline" id=".D0.9D.D0.B0.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.B8.D0.B5"><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="../../en/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.98.D1.81.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D0.BE.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>Located in the status bar: </p> <ul><li> On the right side: <ul><li> the current user, on whose behalf the VCA interface is executed — by a clicking this user can be changed, typing of the new username and password;</li> <li> the current interface style, which can be changed selecting need one in the combobox;</li> <li> the current alarm status by a lamp with color related to the alarm level and the active notifiers' icons; blinks at the alarm appearing or changing; pressing on the lamp you may quiet the alarm in whole or the desired type of the notification, pressing the correspond notifier icon near;</li> <li> the menu buttons of call the page printing and data exporting for: <ul><li> printing: Main Page, Documents;</li> <li> exporting: Documents (HTML,CSV), Tables (CSV).</li></ul></li> <li> manual on the VCA-project — calls by a click the manual on the visualization project for the file "<b>{ProjVCA_ID}.[pdf|html|odt]</b>" in <a href="../Program_manual.html#Config" title="Special:MyLanguage/Documents/Program manual">the document folder</a> or specified in the <a href="#SpecAttrs">"prjDoc" attribute</a>;</li> <li> panel of user statuses and actions when specified in the <a href="#SpecAttrs">"statLine" attribute</a>; mouse clicking left, right and double forms events to the main interface page.</li></ul></li> <li> In the main field of the status line various messages and assistance messages are displayed.</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:624px;"><a class="image" href="http://oscada.org/wiki/File:HTTP_auth_ru.png"><img class="thumbimage" height="278" src="../files/HTTP_auth_ru.png" width="622" /></a> <div class="thumbcaption">РиÑ.1. Страница аутентификации.</div></div></div></div> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:604px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_connect_ru.png"><img class="thumbimage" height="443" src="../files/WebVision_wvis_connect_ru.png" width="602" /></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.png"><img class="thumbimage" height="817" src="../../en/files/WebVision_wvis_run.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.B8.D0.B5_.D0.B1.D0.B0.D0.B7.D0.BE.D0.B2.D1.8B.D1.85_.D1.8D.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2_.28.D0.BF.D1.80.D0.B8.D0.BC.D0.B8.D1.82.D0.B8.D0.B2.D0.BE.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">The visualizer module provides and uses set of specific attributes</span> of the generic means, the information of which is given in the table. These attributes are automatically created by the visualizer in their absence and during the first run, or created by the user in the frame of the specified area, as needed. </p> <table class="wikitable"> <tr> <th> Identifier (area) </th> <th> Name </th> <th> Appointment </th></tr> <tr> <td> keepAspectRatio (main page) </td> <td> Keep aspect ratio on scale </td> <td> Keep aspect ratio of the pages on scale. </td></tr> <tr> <td> stBarNoShow (main page) </td> <td> Do not show the status bar </td> <td> Hide the status bar of the main window. </td></tr> <tr> <td> notify{N}, notifyVisWebVision{N} (page) </td> <td> Notification: type {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> Create manually with the type "Text"! <p>Specifies a notifier and a procedure of the notification resource obtaining according to the <a href="../Modules/VCAEngine.html#Alarms" title="Special:MyLanguage/Modules/VCAEngine">"Signalling (Alarms)" conception</a>. </p> </td></tr> <tr> <td> statLine (main page) </td> <td> Status line items </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> Create manually with the type "Text"! <p>Text field with description of the status line item in the string form "<b>{Id}:{Label}:{ToolTip}:{Color}:{Img}</b>", where: </p> <ul><li> "Id" — identifier, uses also to form events from the widget "stIt_{Id}".</li> <li> "Label" — visual label of the status element.</li> <li> "ToolTip" — context help about the element.</li> <li> "Color" — label color.</li> <li> "Img" — image of the status element, instead the label.</li></ul> </td></tr> <tr> <td> userSetVis (main page) </td> <td> Setting the user </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> Create manually with the type "String"! <p>Change the user or call a dialog to select it. Variants of the value: </p> <ul><li> "*" — call for a selecting dialog of the user; </li> <li> "$" — change the user to the default one;</li> <li> "{user}[:{password}]" — direct change to <i>user</i> with <i>password</i>; for empty password, the user is changed only if its permission is lesser or equal; a useful example of changing to the "user" after one minute inactivity:</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 (main page) </td> <td> Project document </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> Create manually with the type "String"! <p>Specifying the project documentation of call from the status line's button with a possibility of disabling-concealing the button at empty value. The documentation specified in view "<b>{OffLine}|{OnLineOpenSCADAWiki}</b>", for example for the <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/Model_AGLKS" title="Special:MyLanguage/Using/Model AGLKS">AGLCS project</a> — "AGLCS|Using/Model_AGLKS". The online part is used in first order at its specifying! </p> </td></tr> <tr> <td> vs_goHttpUrl (view "Button" of the primitive "FormEl") </td> <td> Go to the 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> Create manually with the type "String"! <p>Go to the specified URL at the button press. </p> </td></tr> <tr> <td> vs_background (views "Line edit", "Text edit", "Combo box", "List", "Tree", "Table" of the primitive "FormEl") </td> <td> Custom background </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> Create manually with the type "String"! <p>Specifies for the custom background in the form <b>{color}-{transp} {image}</b>. </p> </td></tr> <tr> <td> vs_border (views "Line edit", "Text edit", "Combo box", "List", "Tree", "Table" of the primitive "FormEl") </td> <td> Custom border </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> Create manually with the type "String"! <p>Specifies for the custom border in the standard CSS-form <b>{wdth}px {style} {color}</b>. </p> </td></tr> <tr> <td> vs_winTitle (the view "Box") </td> <td> Window title </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> Create manually with the type "String"! <p>Dynamic window title value. </p> </td></tr></table> <p>РаÑÑмотрим реализацию каждого примитива более детально. </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B8.D1.82.D0.B8.D0.B2_.D1.8D.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.80.D0.BD.D0.BE.D0.B9_.D1.84.D0.B8.D0.B3.D1.83.D1.80.D1.8B_.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.D0.B8.D1.82.D0.B8.D0.B2_.D1.82.D0.B5.D0.BA.D1.81.D1.82.D0.B0_.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_ru.png"><img alt="WebVision wvis run txt ru.png" height="154" src="../files/WebVision_wvis_run_txt_ru.png" width="225" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B8.D1.82.D0.B8.D0.B2_.D1.8D.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D0.B0_.D1.84.D0.BE.D1.80.D0.BC.D1.8B_.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_ru.png"><img alt="WebVision wvis run formel ru.png" height="337" src="../files/WebVision_wvis_run_formel_ru.png" width="599" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id="Primitive_of_the_displaying_the_media-materials_.28Media.29"><span class="mw-headline-number">3.4</span> Primitive of the displaying the media-materials (Media)</span></h3> <p>Support of the element of the displaying of the media-materials with the following properties is provided: </p> <ul><li> Indication of the media data source: images or video-material.</li> <li> Review of the images of most well-known formats with the possibility of fitting in the widget size and keeping aspect ratio here.</li> <li> Playback of the simple animated images and video formats with the possibility to control the playback speed (<font color="red">inaccessible</font>).</li> <li> Playback of the full-formatted video and audio by HTML5.</li> <li> Displaying the background as the color and image.</li> <li> Displaying the border along the perimeter of the widget, with the specified color, width and style.</li> <li> Formation of the active areas and generating the events when they are activated.</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.D0.B8.D1.82.D0.B8.D0.B2_.D0.BF.D0.BE.D1.81.D1.82.D1.80.D0.BE.D0.B5.D0.BD.D0.B8.D1.8F_.D0.B4.D0.B8.D0.B0.D0.B3.D1.80.D0.B0.D0.BC.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.D0.B8.D1.82.D0.B8.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.BF.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D0.B0_.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_ru.png"><img alt="WebVision wvis run prot ru.png" height="239" src="../files/WebVision_wvis_run_prot_ru.png" width="457" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B8.D1.82.D0.B8.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.BE.D1.82.D1.87.D1.91.D1.82.D0.BD.D0.BE.D0.B9_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D0.B8.D0.B8_.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>ИÑточником значений иÑполнÑемых инÑтрукций ÑвлÑÑŽÑ‚ÑÑ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ‹ виджета Ñтого примитива, а также вÑе механизмы Ñзыка пользовательÑкого программированиÑ. Ðтрибуты могут добавлÑÑ‚ÑŒÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¼ и линковатьÑÑ Ð½Ð° реальные атрибуты параметров или-же ÑвлÑÑ‚ÑŒÑÑ Ð°Ð²Ñ‚Ð¾Ð½Ð¾Ð¼Ð½Ñ‹Ð¼Ð¸, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… будут формироватьÑÑ Ð² Ñкрипте виджета. Ð’ Ñлучае Ñо Ñлинкованными атрибутами могут извлекатьÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸Ð· иÑтории, архива. </p><p>Ðа риÑунке предÑтавлен кадр, Ñодержащий пример документа. </p> <div class="center"><div class="floatnone"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_run_doc_ru.png"><img alt="WebVision wvis run doc ru.png" height="581" src="../files/WebVision_wvis_run_doc_ru.png" width="904" /></a></div></div> <p><br /> </p> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B8.D1.82.D0.B8.D0.B2_.D0.BA.D0.BE.D0.BD.D1.82.D0.B5.D0.B9.D0.BD.D0.B5.D1.80.D0.B0_.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.9E.D0.B1.D1.89.D0.B0.D1.8F_.D0.BA.D0.BE.D0.BD.D1.84.D0.B8.D0.B3.D1.83.D1.80.D0.B0.D1.86.D0.B8.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:1147px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_cfg_ru.png"><img class="thumbimage" height="605" src="../files/WebVision_wvis_cfg_ru.png" width="1145" /></a> <div class="thumbcaption">РиÑ.4. Страница конфигурации модулÑ.</div></div></div></div> <p>You can deeply customise main interface of the module overriding and adding the HTML and JavaScript code by placing to folder of your OpenSCADA project files WebVisionVCA.html and WebVisionVCA.js which initially you can obtain from the module source code — <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.AD.D1.84.D1.84.D0.B5.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D1.81.D1.82.D1.8C_.D0.B8_.D0.BC.D0.B0.D1.81.D1.88.D1.82.D0.B0.D0.B1.D0.B8.D1.80.D1.83.D0.B5.D0.BC.D0.BE.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.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.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.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"><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/ru">Modules/WebVision/ru</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>