<?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>Документы/Релиз 0.9 - 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">Документы/Релиз 0.9</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-Documents%2FRelease+0.9&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/Documents/Release_0.9" title="Documents/Release 0.9">Documents/Release 0.9</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/Release_0.9.html" title="Documents/Release 0.9 (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/Release_0.9.html" title="Документи/Реліз 0.9 (100% translated)">УкраїнÑька</a></div></div> <div class="toc" id="toc"><div id="toctitle"><h2>Contents</h2></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">1</span> <span class="toctext">Введение</span></a> <ul> <li class="toclevel-2 tocsection-2"><a href="#.D0.9E.D0.B1.D1.89.D0.B0.D1.8F_.D0.B8.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D1.8F"><span class="tocnumber">1.1</span> <span class="toctext">ÐžÐ±Ñ‰Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ</span></a></li> <li class="toclevel-2 tocsection-3"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">1.2</span> <span class="toctext">Применение</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-4"><a href="#.D0.A0.D0.B5.D0.B7.D1.83.D0.BB.D1.8C.D1.82.D0.B0.D1.82.D1.8B_.D0.BF.D1.80.D0.B5.D0.B4.D1.8B.D0.B4.D1.83.D1.89.D0.B5.D0.B3.D0.BE_.D1.80.D0.B5.D0.BB.D0.B8.D0.B7.D1.83_0.8.0_LTS"><span class="tocnumber">2</span> <span class="toctext">Результаты предыдущего релизу 0.8.0 LTS</span></a></li> <li class="toclevel-1 tocsection-5"><a href="#.D0.9F.D0.BB.D0.B0.D0.BD.D0.BE.D0.B2.D1.8B.D0.B5_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87.D0.B8_.D1.80.D0.B5.D0.BB.D0.B8.D0.B7.D0.B0"><span class="tocnumber">3</span> <span class="toctext">Плановые задачи релиза</span></a></li> <li class="toclevel-1 tocsection-6"><a href="#.D0.9E.D0.B1.D1.89.D0.B5.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D0.BD.D1.8B.D0.B5_.D1.81.D0.B2.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0"><span class="tocnumber">4</span> <span class="toctext">ОбщеÑиÑтемные ÑвойÑтва</span></a> <ul> <li class="toclevel-2 tocsection-7"><a href="#.D0.92.D0.BD.D1.83.D1.82.D1.80.D0.B5.D0.BD.D0.BD.D0.B8.D0.B5"><span class="tocnumber">4.1</span> <span class="toctext">Внутренние</span></a></li> <li class="toclevel-2 tocsection-8"><a href="#.D0.A3.D1.81.D0.BE.D0.B2.D0.B5.D1.80.D1.88.D0.B5.D0.BD.D1.81.D1.82.D0.B2.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.B8_.D0.B0.D0.B4.D0.B0.D0.BF.D1.82.D0.B0.D1.86.D0.B8.D1.8F_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D0.BB.D0.B8.D1.87.D0.BD.D1.8B.D1.85_.D0.BF.D0.BB.D0.B0.D1.82.D1.84.D0.BE.D1.80.D0.BC"><span class="tocnumber">4.2</span> <span class="toctext">УÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð°Ð´Ð°Ð¿Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… платформ</span></a></li> <li class="toclevel-2 tocsection-9"><a href="#.D0.9E.D0.BF.D1.82.D0.B8.D0.BC.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F.2C_.D1.81.D1.82.D0.B0.D0.B1.D0.B8.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D0.B8_.D0.BF.D1.80.D0.BE.D0.B4.D1.83.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D1.81.D1.82.D1.8C"><span class="tocnumber">4.3</span> <span class="toctext">ОптимизациÑ, ÑÑ‚Ð°Ð±Ð¸Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¸ продуктивноÑÑ‚ÑŒ</span></a></li> <li class="toclevel-2 tocsection-10"><a href="#.D0.A1.D0.B1.D0.BE.D1.80_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D1.85"><span class="tocnumber">4.4</span> <span class="toctext">Сбор данных</span></a></li> <li class="toclevel-2 tocsection-11"><a href="#.D0.93.D1.80.D0.B0.D1.84.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B5_.D0.BE.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">4.5</span> <span class="toctext">ГрафичеÑкое окружение</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-12"><a href="#.D0.9D.D0.BE.D0.B2.D1.8B.D0.B5_.D0.B8_.D0.B7.D0.BD.D0.B0.D1.87.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.BD.D1.8B.D0.B5_.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D0.B8"><span class="tocnumber">5</span> <span class="toctext">Ðовые и значительно обновленные модули</span></a></li> <li class="toclevel-1 tocsection-13"><a href="#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4.D1.8B"><span class="tocnumber">6</span> <span class="toctext">Выводы</span></a></li> <li class="toclevel-1 tocsection-14"><a href="#.D0.9E.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F"><span class="tocnumber">7</span> <span class="toctext">ОбновлениÑ</span></a> <ul> <li class="toclevel-2 tocsection-15"><a href="#.5B01.01.7533.2F01.03.2025.5D_.D0.92.D0.9E.D0.A1.D0.AC.D0.9C.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">7.1</span> <span class="toctext">[01.01.7533/01.03.2025] ВОСЬМОЕ обновление</span></a></li> <li class="toclevel-2 tocsection-16"><a href="#.5B01.01.7532.2F01.03.2024.5D_.D0.A1.D0.95.D0.94.D0.AC.D0.9C.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">7.2</span> <span class="toctext">[01.01.7532/01.03.2024] СЕДЬМОЕ обновление</span></a> <ul> <li class="toclevel-3"><a href="#Service_updates"><span class="tocnumber">7.2.1</span> <span class="toctext">Service updates</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-17"><a href="#.5B01.01.7531.2F01.03.2023.5D_.D0.A8.D0.95.D0.A1.D0.A2.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">7.3</span> <span class="toctext">[01.01.7531/01.03.2023] ШЕСТОЕ обновление</span></a> <ul> <li class="toclevel-3"><a href="#Service_updates_2"><span class="tocnumber">7.3.1</span> <span class="toctext">Service updates</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-18"><a href="#.5B22.12.7529.2F22.02.2022.5D_.D0.9F.D0.AF.D0.A2.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">7.4</span> <span class="toctext">[22.12.7529/22.02.2022] ПЯТОЕ обновление</span></a> <ul> <li class="toclevel-3"><a href="#Service_updates_3"><span class="tocnumber">7.4.1</span> <span class="toctext">Service updates</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-19"><a href="#.5B14.04.7529.2F14.06.2021.5D_.D0.A7.D0.95.D0.A2.D0.92.D0.81.D0.A0.D0.A2.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">7.5</span> <span class="toctext">[14.04.7529/14.06.2021] ЧЕТВÐРТОЕ обновление</span></a> <ul> <li class="toclevel-3"><a href="#.D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F"><span class="tocnumber">7.5.1</span> <span class="toctext">СервиÑные обновлениÑ</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-20"><a href="#.5B20.10.7528.2F20.12.2020.5D_.D0.A2.D0.A0.D0.95.D0.A2.D0.AC.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">7.6</span> <span class="toctext">[20.10.7528/20.12.2020] ТРЕТЬЕ обновление</span></a> <ul> <li class="toclevel-3"><a href="#.D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_2"><span class="tocnumber">7.6.1</span> <span class="toctext">СервиÑные обновлениÑ</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-21"><a href="#.5B17.06.7528.2F17.08.2020.5D_.D0.92.D0.A2.D0.9E.D0.A0.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">7.7</span> <span class="toctext">[17.06.7528/17.08.2020] ВТОРОЕ обновление</span></a> <ul> <li class="toclevel-3"><a href="#.D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_3"><span class="tocnumber">7.7.1</span> <span class="toctext">СервиÑные обновлениÑ</span></a></li> </ul> </li> <li class="toclevel-2 tocsection-22"><a href="#.5B08.02.7528.2F08.04.2020.5D_.D0.9F.D0.95.D0.A0.D0.92.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">7.8</span> <span class="toctext">[08.02.7528/08.04.2020] ПЕРВОЕ обновление</span></a> <ul> <li class="toclevel-3"><a href="#OpenSCADA_.D0.B1.D0.B8.D0.B1.D0.BB.D0.B8.D0.BE.D1.82.D0.B5.D0.BA.D0.B8_.D0.B8_.D0.BF.D1.80.D0.BE.D0.B5.D0.BA.D1.82.D1.8B"><span class="tocnumber">7.8.1</span> <span class="toctext"><span>OpenSCADA библиотеки и проекты</span></span></a></li> <li class="toclevel-3"><a href="#API"><span class="tocnumber">7.8.2</span> <span class="toctext">API</span></a></li> <li class="toclevel-3"><a href="#.D0.A1.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D0.B0"><span class="tocnumber">7.8.3</span> <span class="toctext">СиÑтема</span></a></li> <li class="toclevel-3"><a href="#.D0.91.D0.94"><span class="tocnumber">7.8.4</span> <span class="toctext">БД</span></a></li> <li class="toclevel-3"><a href="#.D0.A1.D0.B1.D0.BE.D1.80_.D0.94.D0.B0.D0.BD.D0.BD.D1.8B.D1.85"><span class="tocnumber">7.8.5</span> <span class="toctext">Сбор Данных</span></a></li> <li class="toclevel-3"><a href="#.D0.90.D1.80.D1.85.D0.B8.D0.B2.D1.8B-.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F"><span class="tocnumber">7.8.6</span> <span class="toctext">Ðрхивы-ИÑториÑ</span></a></li> <li class="toclevel-3"><a href="#.D0.A2.D1.80.D0.B0.D0.BD.D1.81.D0.BF.D0.BE.D1.80.D1.82.D1.8B"><span class="tocnumber">7.8.7</span> <span class="toctext">ТранÑпорты</span></a></li> <li class="toclevel-3"><a href="#.D0.A2.D1.80.D0.B0.D0.BD.D1.81.D0.BF.D0.BE.D1.80.D1.82.D0.BD.D1.8B.D0.B5_.D0.9F.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D1.8B"><span class="tocnumber">7.8.8</span> <span class="toctext">ТранÑпортные Протоколы</span></a></li> <li class="toclevel-3"><a href="#.D0.98.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81_.D0.9F.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8F"><span class="tocnumber">7.8.9</span> <span class="toctext">Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ</span></a></li> <li class="toclevel-3"><a href="#.D0.A1.D0.BF.D0.B5.D1.86.D0.B8.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5"><span class="tocnumber">7.8.10</span> <span class="toctext">Специальные</span></a></li> <li class="toclevel-3"><a href="#.D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_4"><span class="tocnumber">7.8.11</span> <span class="toctext">СервиÑные обновлениÑ</span></a></li> </ul> </li> </ul> </li> <li class="toclevel-1 tocsection-23"><a href="#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"><span class="tocnumber">8</span> <span class="toctext">СÑылки</span></a></li> </ul> </div> <h2><span class="mw-headline" id=".D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">1</span> Введение</span></h2> <p>Релиз OpenSCADA, открытой SCADA(Supervisory control and data acquisition) ÑиÑтемы, верÑии 0.9 ÑвлÑетÑÑ Ñтабильным промышленным релизом продолжительной поддержки (LTS). </p><p>ОÑновной целью релиза ÑвлÑетÑÑ Ð¿Ñ€ÐµÐ´Ð¾Ñтавление обновленной и Ñтабильной платформы поÑÑ‚Ñ€Ð¾ÐµÐ½Ð¸Ñ Ñ€ÐµÑˆÐµÐ½Ð¸Ð¹ комплекÑных ÑиÑтем автоматизации и других Ñмежных решений Ð´Ð»Ñ ÑообщеÑтва пользователей и разработчиков Ñвободного программного обеÑпечениÑ. Также, релиз предназначен Ñтать актуальным и прочным фундаментом в поÑтроении коммерчеÑких решений. </p><p>Релиз ÑвлÑетÑÑ Ñледующей верÑией Ñтабильной ветви Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾, в течении продолжительного времени, предоÑтавлÑетÑÑ Ñ‚ÐµÑ…Ð½Ð¸Ñ‡ÐµÑÐºÐ°Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ° от разработчиков и обеÑпечиваетÑÑ Ð²Ñ‹Ð¿ÑƒÑк иÑправлений в виде публичных Ñборок Ð´Ð»Ñ Ð¾Ñновных и Ñтабильных окружений Linux, а также оперативных Ñборок Ð´Ð»Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†ÐµÐ² пакетов техничеÑкой поддержки. Жизненный цикл предыдущего релизу 0.8.0 LTS прекращаетÑÑ ÐµÐ³Ð¾ поÑледним обновлением, непоÑредÑтвенно перед первыми Ñборками пакетов 0.9 LTS. </p><p>Именно на Ñтой верÑии оÑущеÑтвлÑетÑÑ Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¹ переход на Ñхему разработки Work/LTS, Ñ‚.е., разработка оÑущеÑтвлÑетÑÑ Ð² рамках рабочей верÑии и на её оÑнове периодичеÑки выпуÑкаютÑÑ Ñтабильные релизы, которые, в Ñвою очередь и параллельно разработке, обновлÑÑŽÑ‚ÑÑ Ð¿ÑƒÑ‚Ñ‘Ð¼ обратного Ð¿Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑовмеÑтимых изменений из рабочей верÑии. Инициирующий переход произошёл в 2013 году, когда текущей Ñтабильной верÑией определено 0.8.0 LTS, а рабочей 0.9 Work. Ðа данный момент, Ñтабильной верÑией ÑтановитÑÑ Ð°Ð½Ð¾Ð½ÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ 0.9 LTS, а рабочей 1 Work. </p><p>Ð’ целом, Ð½Ð¾Ð²Ð°Ñ ÑÑ‚Ð°Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÑвлÑетÑÑ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð¼ шеÑти лет работы Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸, Ð²Ð½ÐµÐ´Ñ€ÐµÐ½Ð¸Ñ Ð² различные решениÑ, Ñтабилизации и ÑкÑплуатации OpenSCADA в её рабочей ветви, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ð° данный момент выпуÑкаетÑÑ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ Ñтабильной. Ð’ÑÑ‘ Ñто Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ 0.8.0 LTS продолжали выпуÑкатьÑÑ Ð¸ что будет оÑущеÑтвлÑÑ‚ÑŒÑÑ Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ñированной 0.9 LTS. </p><p>Ðтот документ ÑвлÑетÑÑ Ð¾Ð±Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ протокола изменений (ChangeLog), Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð½ÑƒÐ»ÐµÐ²Ð¾Ð¹ ревизии предыдущей LTS верÑии, через её Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ Ð·Ð°ÐºÐ°Ð½Ñ‡Ð¸Ð²Ð°Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹. Документ призван коротко и наглÑдно оÑветить новые возможноÑти OpenSCADA. Детально ознакомитьÑÑ Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñми можно в файле "ChangeLog" диÑтрибутивных пакетов или из первоиÑточника: <a class="external free" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog" rel="nofollow noreferrer noopener" target="_blank">http://oscada.org/svn/tags/openscada_0.9/ChangeLog</a>. </p> <h3><span class="mw-headline" id=".D0.9E.D0.B1.D1.89.D0.B0.D1.8F_.D0.B8.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D1.8F"><span class="mw-headline-number">1.1</span> ÐžÐ±Ñ‰Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ</span></h3> <p>Проект OpenSCADA оÑнован Савоченко Романом в 2003 году как Ñвободную Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¡Ð¸Ñтемы ДиÑпетчерÑкого ÐšÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð¸ Сбора Данных (SCADA) или Человеко Машинный Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ (HMI), на оÑнове её фундаментального Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² течении 2002 года и опыта иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ разработки коммерчеÑкой SCADA-ÑиÑтемы до Ñтого. </p><p>SCADA или HMI ÑиÑтемы в целом предназначены и иÑпользуютÑÑ Ð´Ð»Ñ Ð¾ÑущеÑÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‡ÐµÐ»Ð¾Ð²ÐµÐºÐ¾Ð¼ оперативного ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð·Ð° работой Ñложного и ответÑтвенного технологичеÑкого Ð¾Ð±Ð¾Ñ€ÑƒÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ процеÑÑов различных производÑтвенных предприÑтий. </p><p>Ðа Ð²Ñ€ÐµÐ¼Ñ Ð°Ð½Ð¾Ð½Ñа 0.9 LTS, OpenSCADA ÑвлÑетÑÑ Ñ€Ð°Ð·Ð²Ð¸Ñ‚Ð¾Ð¹ SCADA/HMI ÑиÑтемой, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð´Ð¾Ð²Ð¾Ð»ÑŒÐ½Ð¾ широко иÑпользуетÑÑ ÐºÐ°Ðº по прÑмому назначению, так, Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ Ñвоей гибкоÑти, и во многих Ñмежных облаÑÑ‚ÑÑ…, и ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ ÑƒÐ²ÐµÑ€ÐµÐ½Ð½Ð¾Ñтью может называтьÑÑ Ð±Ð¾Ð»ÐµÐµ обобщённо — динамичеÑÐºÐ°Ñ ÑиÑтема работы Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ реального времени. </p><p>Ðомер Ñтабильной верÑии OpenSCADA меньше единицы только из-за того, что её целью была заÑвлена многоплатформенноÑÑ‚ÑŒ, доÑтичь которой в запланированном объёме планируетÑÑ Ñледующим Ñтабильным релизом Ñ Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ 1. Ð’ целом, целÑми OpenSCADA ÑвлÑÑŽÑ‚ÑÑ: </p> <ul><li> <b>открытоÑÑ‚ÑŒ</b> — в оÑновном GPLv2;</li> <li> <b>маÑштабируемоÑÑ‚ÑŒ, гибкоÑÑ‚ÑŒ, раÑширÑемоÑÑ‚ÑŒ</b> — модульноÑÑ‚ÑŒ и внутреннÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡Ð½Ð¾ÑÑ‚ÑŒ;</li> <li> <b>иÑполнÑÐµÐ¼Ð°Ñ Ð¸Ð·Ð±Ñ‹Ñ‚Ð¾Ñ‡Ð½Ð¾ÑÑ‚ÑŒ</b> — резервирование;</li> <li> <b>доÑтупноÑÑ‚ÑŒ</b> — открытые иÑходные текÑÑ‚Ñ‹; автоматичеÑÐºÐ°Ñ Ñборка архивов, пакетов, живых диÑков, ...; многоÑзычноÑÑ‚ÑŒ; динамичеÑÐºÐ°Ñ Ð¼Ð½Ð¾Ð³Ð¾ÑзычноÑÑ‚ÑŒ; Ñборка и иÑполнение на Linux окружениÑÑ… широкого возраÑтного диапазона, от 2002 года (2009-<a class="external text" href="http://ftp.oscada.org/ALTLinux/6" rel="nofollow noreferrer noopener" target="_blank">ALTLinux 6</a>, <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/ICPDAS_LP8x81" title="Special:MyLanguage/Using/ICPDAS LP8x81">LP8x81</a>, <a class="external text" href="http://ftp.oscada.org/OpenSCADA/LTS/Fedora/12" rel="nofollow noreferrer noopener" target="_blank">Fedora 12</a>; 2012-<a class="external text" href="http://ftp.oscada.org/Debian/7" rel="nofollow noreferrer noopener" target="_blank">Debian 7</a>) по Ñовременные;</li> <li> <b>надёжноÑÑ‚ÑŒ</b> — практичеÑкое применение, быÑтрое решение проблем;</li> <li> <b>безопаÑноÑÑ‚ÑŒ</b> — раÑпределение прав, SSL;</li> <li> <b>многоплатформенноÑÑ‚ÑŒ</b> — x86_32, x86_64, ARM, Web, Android, QNX (<a class="external text" href="http://oscada.org/ru/forum/posts/razrabotka_openscada/popytka_adaptacii_openscada_k_qnx_65/" rel="nofollow noreferrer noopener" target="_blank">предадаптировано</a>), MS Windows (<a class="external text" href="http://oscada.org/en/development/tasks/posts/tasks_forming_formirovanie_zadach/adapting_openscada_to_work_on_os_ms_windows/" rel="nofollow noreferrer noopener" target="_blank">запланировано</a>);</li> <li> <b>единый, унифицированных, удобный и развитый Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ</b> — Qt, Web, прозрачное и многоуровневое удалённое управление;</li> <li> <b>широкий Ñпектр иÑточников данных</b> — универÑальные, платы DAQ и низкоуровневые шины, Ñозданные в окружении OpenSCADA.</li></ul> <h3><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">1.2</span> Применение</span></h3> <div class="thumb tright"><div class="thumbinner" style="width:302px;"><a class="image" href="http://oscada.org/wiki/File:Oscada_use_ru.png"><img class="thumbimage" height="367" src="files/300px-Oscada_use_ru.png" srcset="/wiki/images/thumb/7/77/Oscada_use_ru.png/450px-Oscada_use_ru.png 1.5x, /wiki/images/7/77/Oscada_use_ru.png 2x" width="300" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:Oscada_use_ru.png" title="Enlarge"></a></div>Роли OpenSCADA.</div></div></div> <p>К актуальным отраÑлÑм применениÑ, где извеÑтно хотÑ-бы одно внедрение и Ñ ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¸Ð¼ перечнем которых от учаÑтников проекта можно ознакомитьÑÑ Ð¿Ð¾ <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using" title="Special:MyLanguage/Using">Ñтой ÑÑылке</a>, отноÑÑÑ‚ÑÑ: </p> <ul><li> <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using" title="Special:MyLanguage/Using">ÐСУ ТП (SCADA/HMI)</a> или ÑиÑтемы телемеханики — оÑновное направление и тут ÑущеÑтвует множеÑтво внедрений;</li> <li> <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/Model_AGLKS" title="Special:MyLanguage/Using/Model AGLKS">динамичеÑкие модели, имитаторы и тренажеры</a> технологичеÑких процеÑÑов в реальном времени;</li> <li> <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/Vacuum_processing_unit" title="Special:MyLanguage/Using/Vacuum processing unit">Ñтанки и промышленные роботы</a>;</li> <li> <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/Yaroslavskij_broiler" title="Special:MyLanguage/Using/Yaroslavskij broiler">ÑиÑтемы ÑельÑко-хозÑйÑтвенной диÑпетчеризации и управлениÑ, птичники</a>;</li> <li> <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using#Devices" title="Special:MyLanguage/Using">вÑтроенные и мобильные ÑиÑтемы</a> — окружение иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐŸÑ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€ÑƒÐµÐ¼Ð¾Ð³Ð¾ ЛогичеÑкого Контролера (ПЛК), роботы, ...;</li> <li> <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Server" title="Special:MyLanguage/Sub-projects/Server">мониторинг Ð¾Ð±Ð¾Ñ€ÑƒÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ñерверов</a>;</li> <li> <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/HouseSpirit" title="Special:MyLanguage/Using/HouseSpirit">умные дома и автоматика зданий</a>.</li></ul> <p>С некоторыми ограничениÑми и доработками, в оÑновном во внутреннем окружении пользователÑ, OpenSCADA может иÑпользоватьÑÑ Ð¸ в таких отраÑлÑÑ…: </p> <ul><li> управление реÑурÑами предприÑÑ‚Ð¸Ñ (ERP);</li> <li> Geo-Ð»Ð¾ÐºÐ°Ñ†Ð¸Ñ Ð¸ отÑлеживание положениÑ;</li> <li> торговые ÑиÑтемы;</li> <li> медицинÑкие диагноÑтичеÑкие ÑиÑтемы;</li> <li> бухгалтерÑкий учёт;</li> <li> билинговые ÑиÑтемы.</li></ul> <h2><span class="mw-headline" id=".D0.A0.D0.B5.D0.B7.D1.83.D0.BB.D1.8C.D1.82.D0.B0.D1.82.D1.8B_.D0.BF.D1.80.D0.B5.D0.B4.D1.8B.D0.B4.D1.83.D1.89.D0.B5.D0.B3.D0.BE_.D1.80.D0.B5.D0.BB.D0.B8.D0.B7.D1.83_0.8.0_LTS"><span class="mw-headline-number">2</span> Результаты предыдущего релизу 0.8.0 LTS</span></h2> <p>Релиз 0.8.0 LTS выпущен в апреле 2012 года и в течении Ñтих шеÑти лет он претерпел 20 обновлений, которыми, в целом, иÑправлено более 500 ошибок и добавлено множеÑтво уÑовершенÑтвований, которые не нарушают ÑовмеÑтимоÑти библиотечных БД и конфигурации. </p><p>ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¸ библиотечные БД 0.8.0 LTS были в целом заморожены, ввиду больших неÑовмеÑтимых изменений в 0.9 Work, Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð¾Ð² запуÑка OpenSCADA, и неÑовершенÑтво раÑпроÑтранение библиотечных БД на момент выпуÑка 0.8.0 LTS. ПоÑтому, обновление и переход на верÑию 0.9 LTS будет нетривиальным, Ñ…Ð¾Ñ‚Ñ Ð² 0.9 LTS предуÑмотрено вÑÑ‘ возможное Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð¾Ñ‰ÐµÐ½Ð¸Ñ <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Documents/Release_0.9/Updating_0.8.0_LTS" title="Special:MyLanguage/Documents/Release 0.9/Updating 0.8.0 LTS">Ñтой процедуры</a>. Обновление-же 0.9 LTS до запланированной в будущем 1 LTS уже не будет таким Ñложным и фактичеÑки может превратитьÑÑ Ð¸Ñключительно в формальное изменение верÑии рабочей ветви, поÑкольку теперь планируетÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ðµ вÑего, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¸ библиотечные БД. </p> <h2><span class="mw-headline" id=".D0.9F.D0.BB.D0.B0.D0.BD.D0.BE.D0.B2.D1.8B.D0.B5_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87.D0.B8_.D1.80.D0.B5.D0.BB.D0.B8.D0.B7.D0.B0"><span class="mw-headline-number">3</span> Плановые задачи релиза</span></h2> <p>Развитие OpenSCADA, поÑле предыдущей LTS верÑии и в рамках рабочей ветви, в оÑновном оÑущеÑтвлÑлоÑÑŒ путём глубокой Ñтабилизации и через практичеÑкую адаптацию Ñ Ñлементами раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ ÑущеÑтвующего функционала, нацеленные на предоÑтавление Ñтабильного и надёжного Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ð·Ð°Ñ†Ð¸Ð¸ промышленных и Ñмежных задач, а ÑоответÑтвенно и не ÑущеÑтвовало чётко определённого плана. Ðо за три года до Ñтого релиза такой план поÑвилÑÑ Ð¸ ÑоÑтавил Ñледующие задачи, что видно из <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Works/Road_map" title="Special:MyLanguage/Works/Road map">общего плана развитиÑ</a>: </p> <ul><li> ÐŸÐ¾Ð»Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¾Ñновной документации и подготовка анонÑа Ñтого релиза.</li> <li> <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Adaption_to_Android" title="Special:MyLanguage/Sub-projects/Adaption to Android">ÐÐ´Ð°Ð¿Ñ‚Ð°Ñ†Ð¸Ñ Ðº работе на программной платформе "Android"</a>.</li> <li> ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ð±Ð°Ð·Ñ‹ знаний OpenSCADA и Wiki-реÑурÑа Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° новый движок Ñ ÑƒÐ½Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸ÐµÐ¹ Ñтруктуры под многоÑзычноÑÑ‚ÑŒ Ñ Ð¿Ñ€Ð¸Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð¾Ð¼: ÐнглийÑкий, УкраинÑкий, mRussian; и Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð½Ð¾Ð¼Ð½Ð¾Ð¹ документации по её изменению.</li> <li> РевизиÑ, Ð°ÐºÑ‚ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¸ некоторое раÑширение Web-модулей OpenSCADA.</li> <li> РаÑширение и Ð°Ð´Ð°Ð¿Ñ‚Ð°Ñ†Ð¸Ñ OpenSCADA к прÑмой работе Ñ Ð½Ð¸Ð·ÐºÐ¾ÑƒÑ€Ð¾Ð²Ð½ÐµÐ²Ñ‹Ð¼Ð¸ шинами и уÑтройÑтвами вроде 1Wire, I2C и Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð° умного дома в ÑобÑтвенной квартире.</li> <li> Формальное Ñоздание и документирование <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automation_Linux_distributive" title="Special:MyLanguage/Sub-projects/Automation Linux distributive">проекта диÑтрибутива Linux автоматизации Ñ OpenSCADA</a>.</li> <li> Создание автоматизированной ÑиÑтемы Ñборки пакетов OpenSCADA.</li> <li> ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ñерверной инфраÑтруктуры OpenSCADA на <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Server" title="Special:MyLanguage/Sub-projects/Server">ÑобÑтвенное оборудование и канал интернета</a>.</li> <li> <a href="Modules/OPC_UA.html" title="Special:MyLanguage/Modules/OPC UA">DAQ.OPC_UA</a>: Упрощение, увеличение функциональноÑти и Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»ÑŒÐ½Ð¾Ð³Ð¾ кода в отдельную LGPL v3 библиотеку.</li></ul> <p>Ðти задачи выполнены и некоторые детали около них приведены далее. </p> <h2><span class="mw-headline" id=".D0.9E.D0.B1.D1.89.D0.B5.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D0.BD.D1.8B.D0.B5_.D1.81.D0.B2.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0"><span class="mw-headline-number">4</span> ОбщеÑиÑтемные ÑвойÑтва</span></h2> <p>ÐÐ¾Ð²Ð°Ñ ÑÑ‚Ð°Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ OpenSCADA получила заметные общеÑиÑтемные раÑширениÑ, приобрела большей ÑтабильноÑти в работе и увеличение продуктивноÑти, а также получила заметные уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð³Ñ€Ð°Ñ„Ð¸Ñ‡ÐµÑкого интерфейÑа и Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¾ÐºÐ¾Ð»Ð¾ неё, вроде: раÑширенной наÑтройки, документации, доÑтупной прÑмо из программы (offline и online), и ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð½Ð°Ñ‡Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ образом переÑмотрена и актуализирована. </p><p>ОÑÐ½Ð¾Ð²Ð½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ документации проекта перенеÑена на новую Wiki, на оÑнове MediaWiki, и значительный объём Ñтой чаÑти был отревизирован и переведен на три Ñзыка — ÐнглийÑкий, УкраинÑкий, mRussian. Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ½Ð¾Ñа была Ñоздана <a href="Libs_Service_procedures.html#wacko2media" title="Special:MyLanguage/Libs/Service procedures">процедура конвертации Ñтатей из диалекта движка WackoWiki на MediaWiki</a>, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±Ñ‹Ð»Ð° полноÑтью напиÑана на внутреннем Ñзыке Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ OpenSCADA и которую многократно иÑпользовано Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ½Ð¾Ñа большого объёма Ñтарой Wiki. Формат автономной (offline) документации был изменён Ñо Ñтатичных PDF-файлов, которые не обновлÑлиÑÑŒ поÑле предыдущей LTS верÑии, на HTML-файлы, которые динамичеÑки генерируютÑÑ Ð¸Ð· актуальной базы знаний проекта (Wiki), а также имеют актуальные кроÑ-ÑÑылки между Ñтраницами и ÑÑылки на online-документацию, Ð´Ð»Ñ Ð¸Ñключительно внешних материалов. Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ offline-документации также производитÑÑ <a href="Libs_Service_procedures.html#docOffLine" title="Special:MyLanguage/Libs/Service procedures">Ñпециально напиÑанной процедурой</a> на внутреннем Ñзыке OpenSCADA, что, вмеÑте Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð¾Ð¹ конвертации Wiki-диалекта и <a href="Libs_Service_procedures.html#releaseTests" title="Special:MyLanguage/Libs/Service procedures">комплекÑного теÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€ÐµÐ»Ð¸Ð·Ð° OpenSCADA</a>, ÑвлÑетÑÑ Ñрким показателем мощноÑти и текущего ÑƒÑ€Ð¾Ð²Ð½Ñ Ñ€Ð°Ð·Ð²Ð¸Ñ‚Ð¾Ñти внутреннего Ñзыка OpenSCADA. </p><p>Ð’ рамках Ñтарой Wiki, поÑле выпуÑка 0.8.0 LTS были добавлены и обновлены некоторые документы, а Ñ Ð¿ÐµÑ€ÐµÐ½Ð¾Ñом на новую Wiki, кроме ревизии и перевода оÑновной чаÑти документации, была оÑущеÑтвлена Ð¾Ð±Ñ‰Ð°Ñ ÑƒÐ½Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸ÑŽ её Ñтруктуры из Ñоображений: многоÑзычноÑти (ÐнглийÑкого как первичного Ñзыка), логичноÑти организации, удобÑтва перевода и возможноÑти убрать дублирование Ñтатей Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ñ‹Ð¼ Ñайтом, которые ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñто иÑпользуютÑÑ Ð¸Ð· Wiki. Отдельно отметим значительно-раÑширенные главные документы: </p> <ul><li> <a href="Quick_start.html" title="Special:MyLanguage/Documents/Quick start">БыÑтрый Ñтарт</a>;</li> <li> <a href="Program_manual.html" title="Special:MyLanguage/Documents/Program manual">РуководÑтво по программе</a>;</li> <li> <a href="User_API.html" title="Special:MyLanguage/Documents/User API">API Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ OpenSCADA</a>;</li> <li> <a href="FAQ.html" title="Special:MyLanguage/Documents/FAQ">ЧаВо</a> и <a href="How_to.html" title="Special:MyLanguage/Documents/How to">Как Ñделать ...</a>;</li> <li> <a href="How_to_Create_module.html" title="Special:MyLanguage/Documents/How to/Create module">Создание Ð¼Ð¾Ð´ÑƒÐ»Ñ OpenSCADA</a>.</li></ul> <p>Первичный Ñзык (ÐнглийÑкий) был полноÑтью отревизирован в оригинальных ÑообщениÑÑ… программы и во многом Ð´Ð»Ñ Ð¾Ñновных Ñтатей документации-Wiki OpenSCADA, что на данное Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ»Ð°ÐµÑ‚ OpenSCADA адекватно воÑпринимаемой Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ð¾Ñ€Ð¸Ð¸, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ðµ понимает иÑходных Ñзыков — УкраинÑкого или mRussian. И, вмеÑте Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸ÐµÐ¹ в полном объёме механизма динамичеÑкого перевода, делает возможным поÑтроение на оÑнове OpenSCADA динамично многоÑзыковых интерфейÑов пользователÑ, что Ð’Ñ‹ можете кроме вÑего прочего поÑмотреть на публично доÑтупном Web-интерфейÑе динамичеÑких моделей ТП: <a class="external text" href="http://oscada.org:10002" rel="nofollow noreferrer noopener" target="_blank">ÐГЛКС</a>, <a class="external text" href="http://oscada.org:10003" rel="nofollow noreferrer noopener" target="_blank">Котёл</a>. </p><p>Рабочей верÑией, в оÑнове Ñтой Ñтабильной, впервые было определено понÑтие проекту OpenSCADA и реализован Ñценарий командной Ñтроки Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð¾Ð² OpenSCADA. ÐепоÑредÑтвенно перед выпуÑком Ñтой верÑии, понÑтие проекта OpenSCADA было окончательно закреплено за директорий Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ отдельного проекта и конфигурационным файлом OpenSCADA, а Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ€Ð° проекта была интегрировано непоÑредÑтвенно в OpenSCADA. СоответÑтвенно, Ñта LTS верÑÐ¸Ñ Ð¸Ð¼ÐµÐµÑ‚ развитое понÑтие менеджера проектов, что позволÑет гибко Ñ Ð½Ð¸Ð¼Ð¸ работать и иÑключить опаÑную возможноÑÑ‚ÑŒ многократного запуÑка Ñ Ð¾Ð±Ñ‰Ð¸Ð¼Ð¸ данными одного проекту. </p><p>Рабочей верÑией, также, внедрено изменение верÑий модулей по изменению в коде Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¸ непоÑредÑтвенно перед их выгрузкой в репозиторию иÑходных текÑтов, а ÑоответÑтвенно, верÑии модулей OpenSCADA Ñтого релиза наглÑдно отражают общий уровень их развитоÑти и ÑтабильноÑти. </p> <div class="thumb tright"><div class="thumbinner" style="width:502px;"><a class="image" href="http://oscada.org/wiki/File:HowTo_livebootlang.png"><img class="thumbimage" height="192" src="../en/files/500px-HowTo_livebootlang.png" srcset="/wiki/images/thumb/0/02/HowTo_livebootlang.png/750px-HowTo_livebootlang.png 1.5x, /wiki/images/thumb/0/02/HowTo_livebootlang.png/1000px-HowTo_livebootlang.png 2x" width="500" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:HowTo_livebootlang.png" title="Enlarge"></a></div>Живые диÑки диÑтрибутива Linux автоматизации проекта OpenSCADA.</div></div></div> <p>Ð’ процеÑÑе оÑущеÑÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ над рабочей ветвью, в оÑнове Ñтой Ñтабильной, было внедрено формирование репозиториев пакетов диÑтрибутивов Linux Ñо Ñборками OpenSCADA, которые до Ñтого предоÑтавлÑлиÑÑŒ только как отдельные пакеты. Что заметно упроÑтило развёртывание OpenSCADA и Ñодержание её актуальной. Затем был Ñоздан <a class="external text" href="http://oscada.org/en/development/tasks/posts/core/the_automatic_openscada_builder/" rel="nofollow noreferrer noopener" target="_blank">автоматичеÑких Ñборщик Ñтих пакетов</a>, который на данный момент наÑчитывает до 100 целей, и что значительно упроÑтило выпуÑк обновлений как Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ¹ ветви так и Ð´Ð»Ñ Ñтой Ñтабильной. СоответÑтвенно, к Ñтой LTS верÑии предоÑтавлÑÑŽÑ‚ÑÑ Ñборки пакетов Ð´Ð»Ñ Ð¾Ñновных окружений Linux и вÑÑ Ð¸Ñторию публичных обновлений будет Ñохранена. </p><p>К пакетам Ñборок OpenSCADA предоÑтавлÑÑŽÑ‚ÑÑ Ñ‚Ð°ÐºÐ¶Ðµ и Ñборки <a href="How_to_Live_disk.html" title="Special:MyLanguage/Documents/How to/Live disk">живых диÑков</a> быÑтрого Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¸ Ñ€Ð°Ð·Ð²Ñ‘Ñ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ OpenSCADA вмеÑте Ñ ÑиÑтемным окружением. Которые до Ñтого момента получили формальное оÑнование в виде <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automation_Linux_distributive" title="Special:MyLanguage/Sub-projects/Automation Linux distributive">Linux диÑтрибутива автоматизации проекта OpenSCADA</a>. </p> <div class="thumb tright"><div class="thumbinner" style="width:302px;"><a class="image" href="http://oscada.org/wiki/File:Server_net.png"><img class="thumbimage" height="244" src="../en/files/300px-Server_net.png" srcset="/wiki/images/thumb/6/68/Server_net.png/450px-Server_net.png 1.5x, /wiki/images/thumb/6/68/Server_net.png/600px-Server_net.png 2x" width="300" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:Server_net.png" title="Enlarge"></a></div>ОÑновной Ñервер OpenSCADA.</div></div></div> <p>Сборки и пакеты OpenSCADA ÑопровождаютÑÑ Ñ€Ñдом открытого и Ñвободного материала внутреннего Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹, а именно, Ñто: наработки ÑÐ»Ð¾Ñ Ñбора и обработки данных, Ñлементы графичеÑкого предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ целые-комплекÑные проекты моделей ТП. Ðти материалы предоÑтавлÑÑŽÑ‚ÑÑ Ð² виде файлов БД SQLite и включают: </p> <ul><li> <i>Библиотеки функций</i> (<b>OscadaLibs</b>), "LibsDB/OscadaLibs.db" — Ñодержит вÑе наработки проекта OpenSCADA в Ñлое Ñбора и обработки данных Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ <a href="DAQ.html#UserPrt" title="Special:MyLanguage/Documents/DAQ">Ñлементы иÑточников данных пользовательÑкого протокола</a>.</li> <li> <i>СВУ: Главные библиотеки</i> (<b>vcaBase</b>), "LibsDB/vcaBase.db" — Ñодержит <a href="Libs_Main_graphical_elements.html" title="Special:MyLanguage/Libs/Main graphical elements">оÑновные Ñлементы графичеÑкого предÑтавлениÑ</a> и <a href="Libs_Mnemo_elements.html" title="Special:MyLanguage/Libs/Mnemo elements">Ñлементы мнемоÑхем</a> проекта OpenSCADA.</li> <li> <i>СВУ: ТеÑÑ‚Ñ‹</i> (<b>vcaTest</b>), "LibsDB/vcaTest.db" — Ñодержит Ñлементы теÑтов примитивов графичеÑкого предÑтавлениÑ.</li> <li> <i>СВУ: Библиотека Ñлектро-Ñлементов мнемоÑхем пользовательÑкого интерфейÑа</i> (<b>vcaElectroEls</b>), "LibsDB/vcaElectroEls.db" — Ñодержит Ñлементы графичеÑкого предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð¾Ð² ÑлектричеÑких Ñхем.</li></ul> <p>ХоÑтинг проекта в целом и материалов 0.9 LTS в чаÑтноÑти, был перенеÑен на <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Server" title="Special:MyLanguage/Sub-projects/Server">ÑобÑтвенный Ñервер проекта</a>, где дополнительно были развёрнуты: демонÑтрационные Web-интерфейÑÑ‹ моделей OpenSCADA, проект мониторинга Ñервера и умного дома на оÑнове OpenSCADA и Ñборщик пакетов репозиториев OpenSCADA. </p> <h3><span class="mw-headline" id=".D0.92.D0.BD.D1.83.D1.82.D1.80.D0.B5.D0.BD.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">4.1</span> Внутренние</span></h3> <p>Ð Ð°Ð·Ñ€ÐµÑˆÐ°ÑŽÑ‰Ð°Ñ ÑпоÑобноÑÑ‚ÑŒ внутренних данных целого типа Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ OpenSCADA увеличена до 64 разрÑдов. Ð’ целом-же, внутренние данные OpenSCADA, Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ (EVAL) Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾, унифицированы общими типами: логичеÑкое, целое, реальное, Ñтрока и объект. Что в первую очередь каÑаетÑÑ Ð¸Ñточников данных. </p><p>Ð’ Ñдро OpenSCADA, <a href="Modules/UserProtocol.html" title="Special:MyLanguage/Modules/UserProtocol">ÑобÑтвенный протокол</a> и вÑе узлы что работают Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ñ‹Ð¼Ð¸ ÑтанциÑми OpenSCADA; добавлена возможноÑÑ‚ÑŒ "поднÑтиÑ" узлов OpenSCADA, которые находÑÑ‚ÑÑ Ð·Ð° другими узлами и, как правило, в другой Ñети. Что в целом позволÑет централизовано управлÑÑ‚ÑŒ Ñетью Ñтанций OpenSCADA на любом уровне иерархии. </p> <h3><span class="mw-headline" id=".D0.A3.D1.81.D0.BE.D0.B2.D0.B5.D1.80.D1.88.D0.B5.D0.BD.D1.81.D1.82.D0.B2.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.B8_.D0.B0.D0.B4.D0.B0.D0.BF.D1.82.D0.B0.D1.86.D0.B8.D1.8F_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D0.BB.D0.B8.D1.87.D0.BD.D1.8B.D1.85_.D0.BF.D0.BB.D0.B0.D1.82.D1.84.D0.BE.D1.80.D0.BC"><span class="mw-headline-number">4.2</span> УÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð°Ð´Ð°Ð¿Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… платформ</span></h3> <div class="thumb tright"><div class="thumbinner" style="width:302px;"><a class="image" href="http://oscada.org/wiki/File:AsusNexus7.png"><img class="thumbimage" height="172" src="../en/files/300px-AsusNexus7.png" srcset="/wiki/images/thumb/6/69/AsusNexus7.png/450px-AsusNexus7.png 1.5x, /wiki/images/thumb/6/69/AsusNexus7.png/600px-AsusNexus7.png 2x" width="300" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:AsusNexus7.png" title="Enlarge"></a></div>OpenSCADA на Android.</div></div></div> <p>Ðта верÑÐ¸Ñ OpenSCADA получила углублённую поддержку и ÑпоÑобноÑÑ‚ÑŒ к адаптации Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… платформ. Что в оÑновном ÑлучилоÑÑŒ Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ Ð°Ð´Ð°Ð¿Ñ‚Ð°Ñ†Ð¸Ð¸ Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ на программной платформе Android и воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñборки и работы Ñ ucLibC, и что планируетÑÑ Ð¸Ñпользовать в дальнейшей адаптации Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ на программных платформах QNX и MS Windows. </p> <div class="thumb tright"><div class="thumbinner" style="width:292px;"><a class="image" href="http://oscada.org/wiki/File:RaspberryPi.png"><img class="thumbimage" height="690" src="../en/files/RaspberryPi.png" width="290" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:RaspberryPi.png" title="Enlarge"></a></div>Raspberry Pi.</div></div></div> <div class="thumb tright"><div class="thumbinner" style="width:152px;"><a class="image" href="http://oscada.org/wiki/File:OrangePi.png"><img class="thumbimage" height="106" src="../en/files/150px-OrangePi.png" srcset="/wiki/images/thumb/b/b2/OrangePi.png/225px-OrangePi.png 1.5x, /wiki/images/b/b2/OrangePi.png 2x" width="150" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:OrangePi.png" title="Enlarge"></a></div>Orange Pi.</div></div></div> <p>Работа на одноплатных ПК была раÑширена платами <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/Raspberry_Pi" title="Special:MyLanguage/Using/Raspberry Pi">Raspberry Pi</a> и <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/Orange_Pi" title="Special:MyLanguage/Using/Orange Pi">Orange Pi</a>. </p> <div class="thumb tright"><div class="thumbinner" style="width:202px;"><a class="image" href="http://oscada.org/wiki/File:Nokia_N9.png"><img class="thumbimage" height="105" src="../en/files/200px-Nokia_N9.png" srcset="/wiki/images/thumb/7/75/Nokia_N9.png/300px-Nokia_N9.png 1.5x, /wiki/images/thumb/7/75/Nokia_N9.png/400px-Nokia_N9.png 2x" width="200" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:Nokia_N9.png" title="Enlarge"></a></div>Nokia N9.</div></div></div> <p>Поддержка Linux Ñмартфорнов Nokia дополнена поÑледним, оÑнованным на MeeGo 1.2, Ñто — Nokia N9. Или Ñто было обновление поддержки Nokia N950. </p><p>Кроме непоÑредÑтвенной работы (нативно) на различных платформах, был значительно раÑширен Web-интерфейÑ, который ÑÐµÐ¹Ñ‡Ð°Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·ÑƒÐµÑ‚ вÑе общие возможноÑти концепции Ñреды визуализации и ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (СВУ). </p> <h3><span class="mw-headline" id=".D0.9E.D0.BF.D1.82.D0.B8.D0.BC.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F.2C_.D1.81.D1.82.D0.B0.D0.B1.D0.B8.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D0.B8_.D0.BF.D1.80.D0.BE.D0.B4.D1.83.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D1.81.D1.82.D1.8C"><span class="mw-headline-number">4.3</span> ОптимизациÑ, ÑÑ‚Ð°Ð±Ð¸Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¸ продуктивноÑÑ‚ÑŒ</span></h3> <p>Значительной Ñтабилизации Ñдра OpenSCADA, и программы в целом, доÑтигнуто через унификацию ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½Ð¸Ñ… реÑурÑов и раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ <a href="How_to_Debug.html" title="Special:MyLanguage/Documents/How to/Debug">возможноÑтей отладки пользователем</a>. Ð’ общем, пользовательÑÐºÐ°Ñ Ð´Ð¸Ð°Ð³Ð½Ð¾Ñтика и отладка раÑширена: </p> <ul><li> общим включением-выключением отладки и целевым контролем узлов отладки;</li> <li> оÑобенной отладкой объектов контролеров иÑточников данных;</li> <li> оÑобенной отладкой иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð¾Ð² СВУ;</li> <li> формированием углублённой ÑтатиÑтики иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑких объектов OpenSCADA, таких как: объекты контроллеров иÑточников данных и их параметров, входных и выходных транÑпортов, ÑеанÑов СВУ Ñ Ð´ÐµÑ‚Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸ÐµÐ¹ до виджетов;</li> <li> <a href="Program_manual.html#Transports" title="Special:MyLanguage/Documents/Program manual">протоколирование входного и выходного трафика транÑпортов</a>.</li></ul> <p>Глубокой и вÑеÑторонней Ñтабилизации претерпели почти вÑе модули OpenSCADA и многие были оптимизированы, из которых оÑобенно нужно отметить: </p> <ul><li> <i><a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Modules#DB" title="Special:MyLanguage/Modules">Ð’Ñе модули БД</a></i> — добавлена обработка и проверка ошибок БД или СУБД, а также выдача Ñообщений про Ñти ошибки в Ñлучае пользовательÑкой загрузки и запиÑи; увеличена производительноÑÑ‚ÑŒ (до порÑдка) БД поддерживающих SQL, через реализацию режима предзагрузки Ñканирующего запроÑа;</li> <li> <i>ВычиÑлитель на оÑнове Java-подобного Ñзыка</i> (<a href="Modules/JavaLikeCalc.html" title="Special:MyLanguage/Modules/JavaLikeCalc">DAQ.JavaLikeCalc</a>) — увеличена производительноÑÑ‚ÑŒ через: Ñохранение контекÑта иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸, предзагрузку поÑтоÑнных и прÑмой доÑтуп к Ñтроке.</li> <li> <i>Ðрхиватор на БД</i> (<a href="Modules/DBArch.html" title="Special:MyLanguage/Modules/DBArch">Archive.DBArch</a>) — значительно оптимизирована запиÑÑŒ и чтение БД, а именно Ñто: Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð²Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ неÑкольких архивов в одну таблицу и чтение блоками (кратными деÑÑти) в одном запроÑе.</li> <li> <i><a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Modules#Transports" title="Special:MyLanguage/Modules">Ð’Ñе транÑпорты</a></i> — в целом увеличена производительноÑÑ‚ÑŒ.</li> <li> <i>Рабочий пользовательÑкий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ (WEB)</i> (<a href="Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">UI.WebVision</a>) — увеличена чувÑтвительноÑÑ‚ÑŒ интерфейÑа иÑпользованием аÑинхронных запроÑов в общем цикле обновлениÑ.</li></ul> <div class="thumb tright"><div class="thumbinner" style="width:302px;"><a class="image" href="http://oscada.org/wiki/File:DAQ_red_ru.png"><img class="thumbimage" height="205" src="files/300px-DAQ_red_ru.png" srcset="/wiki/images/thumb/c/cc/DAQ_red_ru.png/450px-DAQ_red_ru.png 1.5x, /wiki/images/c/cc/DAQ_red_ru.png 2x" width="300" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:DAQ_red_ru.png" title="Enlarge"></a></div>Резервирование OpenSCADA Ñтанций.</div></div></div> <p>ÐадёжноÑÑ‚ÑŒ резервируемой Ñтанции в маÑштабе комплекÑного решениÑ, точнее Ñохранение данных иÑтории, была уÑовершенÑтвована раÑширением механизма резервированиÑ, который потенциально предуÑматривает резервирование любой подÑиÑтемы и реализует ÑÐµÐ¹Ñ‡Ð°Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ подÑиÑтем "Сбор данных" и "Ðрхивы-ИÑториÑ". </p><p>И, Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ в целом, был выполнен <a class="external" href="http://oscada.org/wiki/Documents/Release_0.9/Tests" title="Documents/Release 0.9/Tests">Ñ€Ñд формальных вÑеÑторонних теÑтов</a>, которые были предварительно раÑширены во <a href="Libs_Service_procedures.html#releaseTests" title="Special:MyLanguage/Libs/Service procedures">внутренней процедуре комплекÑного теÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€ÐµÐ»Ð¸Ð·Ð° OpenSCADA</a>. Ð’ результате Ñтих теÑтов было выÑвлено неÑколько ошибок, которые иÑправлены. </p> <h3><span class="mw-headline" id=".D0.A1.D0.B1.D0.BE.D1.80_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D1.85"><span class="mw-headline-number">4.4</span> Сбор данных</span></h3> <div class="thumb tright"><div class="thumbinner" style="width:402px;"><a class="image" href="http://oscada.org/wiki/File:Oscada_UserOM_ru.png"><img class="thumbimage" height="180" src="files/400px-Oscada_UserOM_ru.png" srcset="/wiki/images/thumb/c/c6/Oscada_UserOM_ru.png/600px-Oscada_UserOM_ru.png 1.5x, /wiki/images/thumb/c/c6/Oscada_UserOM_ru.png/800px-Oscada_UserOM_ru.png 2x" width="400" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:Oscada_UserOM_ru.png" title="Enlarge"></a></div>ПользовательÑÐºÐ°Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð½Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ñдра OpenSCADA.</div></div></div> <p>Ð£Ñ‡Ð¸Ñ‚Ñ‹Ð²Ð°Ñ ÐºÐ»ÑŽÑ‡ÐµÐ²ÑƒÑŽ роль Ñбора данных в программах такого роду, Ñта функциÑ, в лице подÑиÑтемы "Сбор данных" и её модулей, получила значительные уÑовершенÑтвованиÑ, из которых оÑобенно нужно отметить: Ñмещение акцента в раÑширении поддерживаемых иÑточников данных из реализации отдельных модулей подÑиÑтемы "Сбор данных" на ÑиÑтемном Ñзыке "C/C++", на их реализацию в окружении OpenSCADA и на её внутреннем Ñзыке — <a href="DAQ.html" title="Special:MyLanguage/Documents/DAQ">логичеÑкий уровень OpenSCADA</a>. Т.е., на логичеÑком уровне OpenSCADA, может и реализуетÑÑ Ð²Ñе, что: Ð´Ð»Ñ Ð´Ð¾Ñтупа к данным иÑпользует Ñеть, не требует иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑпецифичеÑких библиотек и функций и не ÑвлÑетÑÑ Ð¾Ñ‡ÐµÐ½ÑŒ Ñложным. Ðа данный момент, таким образом реализовано: </p> <div class="thumb tright"><div class="thumbinner" style="width:402px;"><a class="image" href="http://oscada.org/wiki/File:RaspberryPi_experiments.jpg"><img class="thumbimage" height="390" src="../en/files/400px-RaspberryPi_experiments.jpg" srcset="/wiki/images/thumb/1/1f/RaspberryPi_experiments.jpg/600px-RaspberryPi_experiments.jpg 1.5x, /wiki/images/thumb/1/1f/RaspberryPi_experiments.jpg/800px-RaspberryPi_experiments.jpg 2x" width="400" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:RaspberryPi_experiments.jpg" title="Enlarge"></a></div>Ðизкоуровневые уÑтройÑтва подключенный к Raspberry Pi.</div></div></div> <div class="thumb tright"><div class="thumbinner" style="width:402px;"><a class="image" href="http://oscada.org/wiki/File:RaspberryPi_LCD.png"><img class="thumbimage" height="267" src="../en/files/400px-RaspberryPi_LCD.png" srcset="/wiki/images/4/47/RaspberryPi_LCD.png 1.5x, /wiki/images/4/47/RaspberryPi_LCD.png 2x" width="400" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:RaspberryPi_LCD.png" title="Enlarge"></a></div>OpenSCADA на LCD Ñкране Raspberry Pi.</div></div></div> <ul><li> Отправка SMS Ñообщений (SMS) и Ñлектронных пиÑем (SMTP).</li> <li> ИÑточник БеÑперебойного ÐŸÐ¸Ñ‚Ð°Ð½Ð¸Ñ (UPS), как объект данных Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð°Ð¼Ð¸ и значениÑми.</li> <li> ПроÑтые ÑенÑоры и датчики: <ul><li> Елемер TM510x;</li> <li> EDWARDS TURBOMOLECULAR PUMPS (SCU750);</li> <li> Sycon Multi Drop Protocol (SMDP);</li> <li> Блок Ð¿Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ñ‚ÑƒÑ€Ð±Ð¾-молекулÑрного наÑоÑа (TMP-xx03);</li> <li> Измерение температуры IT-3 (IT3);</li> <li> IVE-452HS-02;</li> <li> OPTRIS CT/CTL;</li> <li> CTR 100, 101.</li></ul></li> <li> Компьютер теплового Ñчётчика VKT7.</li> <li> IEC-60870-104.</li> <li> ТеÑтовые реализации и примеры: DCON, OWEN.</li> <li> Шина "One Wire" Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ {DS9097,DS9097U} (1W_{DS9097,DS9097}) Ð´Ð»Ñ Ñ‡Ð¸Ð¿Ð¾Ð²: DS1820, DS1820/DS18S20/DS1920, DS1822, DS2413, DS2408, DS2450, DS2438.</li> <li> Шина I2C: PCF8591, PCF8574, BMP180, DS3231, AT24C{32|64}.</li> <li> Общие порты Ð’Ð’ (GPIO): DHT11,22 (AM23XX). GPIO|I2C: 1602A(HD44780).</li></ul> <p>Ð£Ñ‡Ð¸Ñ‚Ñ‹Ð²Ð°Ñ Ñ€Ð¾ÑÑ‚ роли логичеÑкого ÑƒÑ€Ð¾Ð²Ð½Ñ OpenSCADA, выроÑли и Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ðº гибкоÑти модели данных иÑточников данных и в целом, что было удовлетворено: </p> <ul><li> завершением Ð¿Ð¾ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ¹ модели данных вÑеми функциÑми, характерными Ð´Ð»Ñ Ð¾Ð±Ð»Ð°Ñти применениÑ;</li> <li> добавлением иерархичноÑти к параметрам объектов контроллеров иÑточников данных;</li> <li> добавлением возможноÑти произвольного и динамичеÑкого Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð´ÐµÐ»Ð¸ данных — набору атрибутов параметров.</li></ul> <p>Внутренний Ñзык Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ OpenSCADA приобрёл значительные уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸, ÑейчаÑ, удовлетворÑет вÑем Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚Ñ€Ð°Ñлей Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ OpenSCADA. Многие из Ñтих уÑовершенÑтвований попали в предыдущую верÑию 0.8.0 LTS, а Ñ€Ñд из них не мог туда попаÑÑ‚ÑŒ из-за Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾Ð¹ ÑовмеÑтимоÑти или недоÑтаточной ÑтабильноÑти на то времÑ. Из Ñтих, ÑущеÑтвенных уÑовершенÑтвований, нужно ещё раз отметить: увеличение разрешающей ÑпоÑобноÑти данных внутреннего Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ OpenSCADA целого типа до 64 разрÑдов и Ñохранение контекÑта иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½Ð¸Ñ… процедур. </p> <h3><span class="mw-headline" id=".D0.93.D1.80.D0.B0.D1.84.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B5_.D0.BE.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">4.5</span> ГрафичеÑкое окружение</span></h3> <div class="thumb tright"><div class="thumbinner" style="width:202px;"><a class="image" href="http://oscada.org/wiki/File:QTStarter_dialog_ru.png"><img class="thumbimage" height="292" src="files/200px-QTStarter_dialog_ru.png" srcset="/wiki/images/thumb/8/84/QTStarter_dialog_ru.png/300px-QTStarter_dialog_ru.png 1.5x, /wiki/images/thumb/8/84/QTStarter_dialog_ru.png/400px-QTStarter_dialog_ru.png 2x" width="200" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:QTStarter_dialog_ru.png" title="Enlarge"></a></div>Диалог выбора проектов OpenSCADA.</div></div></div> <div class="thumb tright"><div class="thumbinner" style="width:402px;"><a class="image" href="http://oscada.org/wiki/File:QTStarter_cfg_ru.png"><img class="thumbimage" height="395" src="files/400px-QTStarter_cfg_ru.png" srcset="/wiki/images/thumb/a/ab/QTStarter_cfg_ru.png/600px-QTStarter_cfg_ru.png 1.5x, /wiki/images/a/ab/QTStarter_cfg_ru.png 2x" width="400" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:QTStarter_cfg_ru.png" title="Enlarge"></a></div>ПользовательÑкий контроль вида интерфейÑа Qt.</div></div></div> <p>Ð’ целом, графичеÑкое окружение получило значительное развитие и главным из них Ñтало раÑширение <a href="Modules/QTStarter.html" title="Special:MyLanguage/Modules/QTStarter">Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð·Ð°Ð¿ÑƒÑка Qt-интерфейÑа</a>, как оÑновы Ð´Ð»Ñ Ð¾Ñтальных локальных. Ð’ первую очередь, Ñтот модуль и Ñдро OpenSCADA адаптированы Ð´Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти запуÑка библиотеки графичеÑкой Ñреды Qt в оÑновном потоке программы, что иÑключило много проблем, ÑвÑзанных Ñ Ð¸Ñполнением в неглавном потоке, а также обеÑпечена работа Ñ Ð²ÐµÑ€Ñией 5 Ñтой библиотеки. Во вторых, Ñтот модуль взÑл на ÑÐµÐ±Ñ Ñ€Ð¾Ð»ÑŒ интерфейÑа выбора проектов OpenSCADA при её запуÑке и переключении, а также Ñоздание новых. И в третьих, ввиду его первичноÑти к запуÑку Qt, он получил функцию ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð¾Ð¼ программы незавиÑимо от графичеÑкого Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¸ возможноÑÑ‚ÑŒ его запуÑка-Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð² ÑиÑтемный лоток. Что в целом Ñделало возможным наÑтройку OpenSCADA под перÑональные Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ адаптировать её к очень ÑпецифичеÑким окружениÑм вроде <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automation_Linux_distributive" title="Special:MyLanguage/Sub-projects/Automation Linux distributive">Android</a>. </p><p>Заметных уÑовершенÑтвований получили модули конфигурации Qt и Web, где оÑобенно нужно отметить: </p> <ul><li> <i>Конфигуратор-Qt</i> (<a href="Modules/QTCfg.html" title="Special:MyLanguage/Modules/QTCfg">UI.QTCfg</a>): оÑущеÑтвление запроÑов к удалённым ÑтанциÑм в отдельном потоке от потока Qt, что Ñделало его удобнее и более прогнозируемым и что даже, вмеÑте Ñ Ð¾Ð´Ð½Ð¸Ð¼ из обновлений, попало в предыдущую Ñтабильную верÑию 0.8.0 LTS.</li> <li> <i>Конфигуратор-WEB</i> (<a href="Modules/WebCfgD.html" title="Special:MyLanguage/Modules/WebCfgD">UI.WebCfgD</a>): в целом, был полноÑтью обновлен на предмет интерфейÑа, который ÑÐµÐ¹Ñ‡Ð°Ñ ÑвлÑетÑÑ Ð±Ð¾Ð»ÐµÐµ динамичеÑким, удобным и может быть раÑширен темами.</li></ul> <div class="thumb tright"><div class="thumbinner" style="width:402px;"><a class="image" href="http://oscada.org/wiki/File:WebVision_wvis_run_ru.png"><img class="thumbimage" height="303" src="files/400px-WebVision_wvis_run_ru.png" srcset="/wiki/images/thumb/d/df/WebVision_wvis_run_ru.png/600px-WebVision_wvis_run_ru.png 1.5x, /wiki/images/thumb/d/df/WebVision_wvis_run_ru.png/800px-WebVision_wvis_run_ru.png 2x" width="400" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:WebVision_wvis_run_ru.png" title="Enlarge"></a></div>OpenSCADA на Web.</div></div></div> <p>Заметных уÑовершенÑтвований также получила Ñреда визуализации и ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (СВУ), в ÑоÑтаве вÑех её модулей: </p> <ul><li> <i>Движок СВУ и модули визуализаторов вообще</i> (<a href="Modules/VCAEngine.html" title="Special:MyLanguage/Modules/VCAEngine">UI.VCAEngine</a>): <ul><li> позволÑет оÑущеÑтвлÑÑ‚ÑŒ полноценную-горÑчую разработку, Ñ‚.е. — редактирование проекту СВУ на момент его иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑеанÑами;</li> <li> оригинальные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñа ÑвлÑÑŽÑ‚ÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ñтью откорректированными, грамматичеÑки и орфографичеÑки корректными Ð´Ð»Ñ ÐнглийÑкого Ñзыка;</li> <li> предоÑтавлено Ñ€Ñд дополнительных видов примитива "Ðлементы формы", "Диаграмма" и раÑширено примитив "Text" отображением "HTML";</li> <li> предоÑтавлено механизм ÑпецифичеÑких Ð´Ð»Ñ Ð²Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð° атрибутов виджетов, что позволило раÑкрыть и иÑпользовать их индивидуальные ÑвойÑтва;</li> <li> новый-гибкий механизм Ñообщений Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¾ внештатные ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð² контролируемом ÑиÑтемой процеÑÑе, который предуÑматривает возможноÑÑ‚ÑŒ Ñвободного Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑких извещателей Ñ Ð½ÑƒÐ¶Ð½Ñ‹Ð¼Ð¸ ÑвойÑтвами, как: моно-тонный Ñигнал, Ñинтез речи.</li></ul></li> <li> <i>Визуализатор-Qt</i> (<a href="Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">UI.Vision</a>): <ul><li> заметно улучшена работа иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ñ‹Ñ… интерфейÑов и обеÑпечено оÑущеÑтвление запроÑов к удалённой Ñтанции в отдельном потоке от потока Qt, что упроÑтило удалённую разработку Ñ Ð¿Ð°Ñ€Ð°Ð»Ð»ÐµÐ»ÑŒÐ½Ñ‹Ð¼ иÑполнением проекта;</li> <li> формирование примитива "Документ" может оÑущеÑтвлÑÑ‚ÑŒÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ WebKit.</li></ul></li> <li> <i>Визуализатор-WEB</i> (<a href="Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">UI.WebVision</a>): <ul><li> унифицирован, оптимизирован и раÑширен иÑпользованием CSS3;</li> <li> предоÑтавлена реализацию вÑех Ñлементов-примитивов унифицированного интерфейÑа;</li> <li> оÑущеÑтвлÑетÑÑ Ð¼Ð°Ñштабирование до доÑтупного проÑтранÑтва окна браузера;</li> <li> увеличена производительноÑÑ‚ÑŒ работы и чувÑтвительноÑÑ‚ÑŒ интерфейÑа, через иÑпользование иÑключительно аÑинхронного механизма при обновлении.</li></ul></li></ul> <p>Ð’Ñе Web-модули, в целом, получили возможноÑÑ‚ÑŒ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð° поÑредÑтвом тем, через общеÑиÑтемные интерфейÑÑ‹ <a href="Modules/HTTP.html" title="Special:MyLanguage/Modules/HTTP">Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP</a> и его механизмы обработки запроÑов и Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð¾Ð². Также, вÑе они получили поддержку динамичеÑкого перевода интерфейÑа, что оÑобенно актуально Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¾Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑких Web-интерфейÑов и Ñ Ñ‡ÐµÐ¼ Ð’Ñ‹ можете ознакомитьÑÑ Ð½Ð° демонÑтрационных Web-интерфейÑах моделей OpenSCADA: <a class="external text" href="http://oscada.org:10002" rel="nofollow noreferrer noopener" target="_blank">ÐГЛКС</a>, <a class="external text" href="http://oscada.org:10003" rel="nofollow noreferrer noopener" target="_blank">Котел</a>. Добавлен также механизм Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупа по Ñтраницам, который, кроме вÑего прочего, позволÑет разграничить доÑтуп к Web-модулÑм вообще. </p> <h2><span class="mw-headline" id=".D0.9D.D0.BE.D0.B2.D1.8B.D0.B5_.D0.B8_.D0.B7.D0.BD.D0.B0.D1.87.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.BD.D1.8B.D0.B5_.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D0.B8"><span class="mw-headline-number">5</span> Ðовые и значительно обновленные модули</span></h2> <p>Ð’ новой верÑии были добавлены новые модули и значительным образом обновлен Ñ€Ñд ÑущеÑтвующих: </p> <ul><li> Добавлены новые модули: <ul><li> <i>MMS(IEC-9506)</i> (<a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Modules/MMS" title="Special:MyLanguage/Modules/MMS">DAQ.MMS</a>) — модуль поддержки обмена данных по протоколу "Manufacturing Message Specification (MMS, IEC-9506)".</li> <li> <i>Comedi</i> (<a href="Modules/Comedi.html" title="Special:MyLanguage/Modules/Comedi">DAQ.Comedi</a>) — модуль поддержки иÑточников данных реального времени (библиотека "Comedi"), которые оÑнованы на платах Ñбора данных различных производителей и уÑтанавливаютÑÑ Ð½Ð° шинах: ISA, PCI, PCMCIA и USB.</li> <li> <i>SMH2Gi</i> (<a href="Modules/SMH2Gi.html" title="Special:MyLanguage/Modules/SMH2Gi">DAQ.SMH2Gi</a>) — модуль реализации доÑтупа к аппаратным модулÑм иÑточников данных ПЛК Segnetics SMH2Gi,SMH4 Ð´Ð»Ñ "MC", "MR", а также взаимодейÑÑ‚Ð²Ð¸Ñ Ñ Ð¾Ñ€Ð¸Ð³Ð¸Ð½Ð°Ð»ÑŒÐ½Ñ‹Ð¼ окружением "SMLogix".</li> <li> <i>Fastwel IO</i> (<a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Modules/Fastwel" title="Special:MyLanguage/Modules/Fastwel">DAQ.Fastwel</a>) — модуль обмена данными Ñ Ð°Ð¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼Ð¸ модулÑми Fastwel IO.</li> <li> <i>FT3 (ÐПСТМ)</i> (<a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Modules/FT3" title="Special:MyLanguage/Modules/FT3">DAQ.FT3</a>) — модуль обмена данными Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð»ÐµÑ€Ð°Ð¼Ð¸ ÐПСТМ, ÐСДКУ, СУÐП.</li> <li> <i>GPIO</i> (<a href="Modules/GPIO.html" title="Special:MyLanguage/Modules/GPIO">DAQ.GPIO</a>) — модуль доÑтупа к GPIO одноплатных ПК вроде Raspberry Pi, Orange Pi и другие.</li></ul></li> <li> <i>ВычиÑлитель на оÑнове Java-подобного Ñзыка</i> (<a href="Modules/JavaLikeCalc.html" title="Special:MyLanguage/Modules/JavaLikeCalc">DAQ.JavaLikeCalc</a>) раÑширен: поддержкой внутренних функций, динамичеÑким переводом Ñообщений и многими другими функциÑми интерфейÑа пользовательÑкого Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² целом.</li> <li> <i>Шлюз иÑточников данных</i> (<a href="Modules/DAQGate.html" title="Special:MyLanguage/Modules/DAQGate">DAQ.DAQGate</a>) раÑширен шлюзованием Ñообщений, ÑвÑзанных Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ иÑточником данных.</li> <li> <i>Сбор данных ОС</i> (<a href="../en/Modules/System.html" title="Special:MyLanguage/Modules/System">DAQ.System</a>) раÑширен иÑточниками данных: "Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ Ð¡Ð¸Ñтема", "ИБП", "QSensor" и возможноÑтью Ð¾Ñ‚Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ñ‹Ñ… иÑточников от быÑтрых.</li> <li> <i>ModBus</i> (<a href="Modules/ModBus.html" title="Special:MyLanguage/Modules/ModBus">{DAQ,Protocol}.ModBus</a>) раÑширен поддержкой Ñтроки, как поÑледовательноÑти значений региÑтров.</li> <li> <i>Клиент DCON</i> (<a href="Modules/DCON.html" title="Special:MyLanguage/Modules/DCON">DAQ.DCON</a>) значительно раÑширен поддержкой ÑпецифичеÑких модулей.</li> <li> <div class="thumb tright"><div class="thumbinner" style="width:302px;"><a class="image" href="http://oscada.org/wiki/File:Oscada_use_opcua_ru.png"><img class="thumbimage" height="286" src="files/300px-Oscada_use_opcua_ru.png" srcset="/wiki/images/thumb/f/fa/Oscada_use_opcua_ru.png/450px-Oscada_use_opcua_ru.png 1.5x, /wiki/images/f/fa/Oscada_use_opcua_ru.png 2x" width="300" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:Oscada_use_opcua_ru.png" title="Enlarge"></a></div>Роли OpenSCADA как OPC-UA Ñервер.</div></div></div> <i>OPC-UA</i> (<a href="Modules/OPC_UA.html" title="Special:MyLanguage/Modules/OPC UA">DAQ.OPC_UA</a>) значительно раÑширен публикацией и поддержкой "куÑков" в клиентÑкой чаÑти ÑервиÑа, ÑпецифичеÑкий код протокола выделен в библиотеку.</li> <li> <i>Оборудование ICP_DAS</i> (<a href="Modules/ICP_DAS.html" title="Special:MyLanguage/Modules/ICP DAS">DAQ.ICP_DAS</a>) значительно раÑширен, а фактичеÑки полноÑтью перепиÑан, поддержкой вÑех приÑутÑтвующих плат Ñбора данных от фирмы ICP_DAS Ð´Ð»Ñ Ñерии I8k, I-87k, на шине ISA и унифицированные типы Ð´Ð»Ñ Ñтандартных модулей Ñерии I7k.</li> <li> <i>Siemens S7 ПЛК</i> (<a href="Modules/Siemens.html" title="Special:MyLanguage/Modules/Siemens">DAQ.Siemens</a>) значительно раÑширен ÑобÑтвенной реализацией ISO-TSAP.</li> <li> <i>Diamond платы Ñбора данных</i> (<a href="Modules/DiamondBoards.html" title="Special:MyLanguage/Modules/DiamondBoards">DAQ.DiamondBoards</a>) значительно раÑширен, а фактичеÑки полноÑтью перепиÑан, поддержкой вÑех приÑутÑтвующих плат Ñбора данных от фирмы Diamond Systems.</li> <li> <i>УÑтройÑтва ÐСКУ</i> (<a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Modules/AMRDevs" title="Special:MyLanguage/Modules/AMRDevs">DAQ.AMRDevs</a>) реализована поддержка Ñчётчика Контар (МЗТÐ).</li> <li> <i><a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Modules#DB" title="Special:MyLanguage/Modules">Ð’Ñе модули БД</a></i> значительно раÑширены динамичеÑким переводом.</li> <li> <i>Ðрхиватор на БД</i> (<a href="Modules/DBArch.html" title="Special:MyLanguage/Modules/DBArch">Archive.DBArch</a>) раÑширен архивацией неÑкольких архивов в одну таблицу и воÑÑтановлением Ð¿ÐµÑ€ÐµÑ‡Ð½Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¾Ð² из информации в БД.</li> <li> <i>Ðрхиватор на ФС</i> (<a href="Modules/FSArch.html" title="Special:MyLanguage/Modules/FSArch">Archive.FSArch</a>) добавлена поддержка промежуточных типов "Int16", "Int32", "Int64", "Float", "Double" и дополнен абÑолютным ограничением размера архива на диÑке.</li> <li> <i><a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Modules#Transports" title="Special:MyLanguage/Modules">Ð’Ñе модули транÑпортов</a></i> раÑширены режимом пулинга входных транÑпортов и протоколов.</li> <li> <i>Сокеты</i> (<a href="Modules/Sockets.html" title="Special:MyLanguage/Modules/Sockets">DAQ.Sockets</a>) раÑширен поддержкой шины RAWCAN и инициативным подключением входного транÑпорта.</li> <li> <i>ПоÑледовательный интерфейÑ</i> (<a href="Modules/Serial.html" title="Special:MyLanguage/Modules/Serial">Transport.Serial</a>) раÑширен поддержкой низкоуровневой шины I2C; Ñпециальными пользовательÑкими функциÑми поÑледовательного интерфейÑа: "sendbreak", "TS", "DR", "DCD", "RI"; раÑширенным управлением RTS Ð´Ð»Ñ RS-485.</li> <li> <i>Слой безопаÑных Ñокетов</i> (<a href="../en/Modules/SSL.html" title="Special:MyLanguage/Modules/SSL">Transport.SSL</a>) раÑширен поддержкой: TLSv1.1, TLSv1.2, DTLSv1.</li> <li> <i>СобÑтвенный протокол программы</i> (<a href="Modules/SelfSystem.html" title="Special:MyLanguage/Modules/SelfSystem">Protocol.SelfSystem</a>) раÑширен иерархичеÑким и многоуровневым направлением запроÑов на внешние хоÑÑ‚Ñ‹.</li> <li> <i>HTTP</i> (<a href="Modules/HTTP.html" title="Special:MyLanguage/Modules/HTTP">Protocol.HTTP</a>) раÑширен адаптивноÑтью к интерфейÑам Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² ÑиÑтемных диалогах и предоÑтавлением общего API поÑÑ‚Ñ€Ð¾ÐµÐ½Ð¸Ñ HTTP-интерфейÑов как Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ, так и модулÑм за ним.</li> <li> <i>Программный конфигуратор (Qt)</i> (<a href="Modules/QTCfg.html" title="Special:MyLanguage/Modules/QTCfg">UI.QTCfg</a>) запроÑÑ‹ интерфейÑа ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ OpenSCADA вынеÑены в отдельный поток и улучшена Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñлементов контролÑ.</li> <li> <i>Программный конфигуратор (ДинамичеÑкий WEB)</i> (<a href="Modules/WebCfgD.html" title="Special:MyLanguage/Modules/WebCfgD">UI.WebCfgD</a>) раÑширен новым дизайном Ñ Ð¸Ñпользованием CSS3 и возможноÑтей Ñовременных WEB-браузеров.</li> <li> <i>ÐšÐ¾Ð½Ñ†ÐµÐ¿Ñ†Ð¸Ñ Ð¸ движок Ñреды визуализации и управлениÑ</i> (<a href="Modules/VCAEngine.html" title="Special:MyLanguage/Modules/VCAEngine">UI.VCAEngine</a>) раÑширен: поддержкой ÑпецифичеÑких Ð´Ð»Ñ Ð²Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð° атрибутов виджетов, реализацией нового-гибкого механизма ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ, фоновым (в отдельном потоке) иÑполнением задачи Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð², увеличением количеÑтва трендов на одном кадре до 100 и поддержкой логарифмичеÑкой шкалы примитива "Диаграмма".</li> <li> <i>Рабочий пользовательÑкий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ (Qt)</i> (<a href="Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">UI.Vision</a>) раÑширен: Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ в Ñети через Ñервер визуализации; реализацией группы ÑпецифичеÑких Ñтого визуализатора атрибутов; реализацией видов "Дерево", "Таблица" и раÑширением вида "Кнопка", примитива "Ðлементы формы"; реализацией вида "XY" примитива "Диаграмма"; значительным рефакторингом кода примитива "ÐÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ€Ð½Ð°Ñ Ñ„Ð¸Ð³ÑƒÑ€Ð°".</li> <li> <i>Рабочий пользовательÑкий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ (WEB)</i> (<a href="Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">UI.WebVision</a>) раÑширен иÑпользованием CSS3 и возможноÑтей Ñовременных браузеров, а именно: добавлено маÑштабирование к доÑтупному проÑтранÑтву окна браузера, реализованы вÑе примитивы унифицированного интерфейÑа.</li> <li> <i>Библиотека функций ÑиÑтемного API Ñреды пользовательÑкого программированиÑ</i> (<a href="Modules/FLibSYS.html" title="Special:MyLanguage/Modules/FLibSYS">Special.FLibSYS</a>) раÑширен функциÑми и объектами: "floatExtract", "md5", "tmSleep", объект "IO"; значительно раÑширены ÑущеÑтвующие функции и объекты: "dbReqSQL", "FFT", "strParse", "strDec4Bin".</li></ul> <h2><span class="mw-headline" id=".D0.92.D1.8B.D0.B2.D0.BE.D0.B4.D1.8B"><span class="mw-headline-number">6</span> Выводы</span></h2> <p>По пути к новому релизу 0.9 LTS промышленного Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾ÑущеÑтвлена Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñƒ по Ñтабилизации, раÑширению функциональных возможноÑтей, а также раÑширению адаптационных возможноÑтей к работе на альтернативных платформах. Ð’ÑÑ‘ Ñто в целом ещё больше раÑширило границы полноценного Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ OpenSCADA на вÑех уровнÑÑ… ÑиÑтем промышленной автоматизации и Ñмежных направлениÑÑ… автоматизации и автоматики. </p><p>LTS верÑии OpenSCADA не ÑвлÑÑŽÑ‚ÑÑ Ð¿ÑƒÑтым звуком, они реально поддерживаютÑÑ Ð²ÑÑ‘ времÑ, до Ñледующей LTS верÑии, и поддержка Ñтой верÑии ещё будет раÑширена ÑервиÑными обновлениÑми. Также, будет оÑущеÑтвлёно Ñмещение акцента и политики Ð²Ð½ÐµÐ´Ñ€ÐµÐ½Ð¸Ñ LTS верÑии, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð´Ð¾ Ñтого рекомендовалаÑÑŒ к обновлению конфигураций Ñ Ð·Ð°Ð¼Ð¾Ñ€Ð¾Ð¶ÐµÐ½Ð½Ñ‹Ð¼Ð¸ библиотечными БД, на приоритет в иÑпользовании на широком Ñпектре новых решений. </p> <div class="thumb tright"><div class="thumbinner" style="width:402px;"><a class="image" href="http://oscada.org/wiki/File:Release0.9_QNX4.5-preadaption.png"><img class="thumbimage" height="320" src="../en/files/400px-Release0.9_QNX4.5-preadaption.png" srcset="/wiki/images/thumb/3/31/Release0.9_QNX4.5-preadaption.png/600px-Release0.9_QNX4.5-preadaption.png 1.5x, /wiki/images/thumb/3/31/Release0.9_QNX4.5-preadaption.png/800px-Release0.9_QNX4.5-preadaption.png 2x" width="400" /></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="http://oscada.org/wiki/File:Release0.9_QNX4.5-preadaption.png" title="Enlarge"></a></div>ÐŸÑ€ÐµÐ´Ð°Ð´Ð°Ð¿Ñ‚Ð°Ñ†Ð¸Ñ OpenSCADA к работе на QNX.</div></div></div> <p>Ð’ поÑвлении новой промышленной верÑии OpenSCADA 0.9 LTS принÑли учаÑтие: </p> <ul><li> <i><a class="external" href="http://oscada.org/wiki/User:RomanSavochenko" title="User:RomanSavochenko">Роман Савоченко</a></i>: оÑновной объём работ по разработке, теÑтированию, Ñборке, документированию и переводу программы и документации Ñ‚Ñ€ÐµÐ¼Ñ Ñзыками.</li> <li> <i>МакÑим Кочетков</i>: Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¼Ð¾Ð´ÑƒÐ»ÐµÐ¹ DAQ.Fastwel, DAQ.FT3; раÑширение Ð¼Ð¾Ð´ÑƒÐ»Ñ <a href="Modules/Sockets.html" title="Special:MyLanguage/Modules/Sockets">Transport.Sockets</a> поддержкой RAWCAN и Ð¼Ð¾Ð´ÑƒÐ»Ñ <a href="Modules/Serial.html" title="Special:MyLanguage/Modules/Serial">Transport.Serial</a> раÑширенным управлением RTS Ð´Ð»Ñ RS-485.</li> <li> <i>ÐÑ€Ñен ЗакоÑн</i>: Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ Ñчётчиков ÑлектроÑнергии "Меркурий 200" и "Меркурий 230".</li> <li> <i>РуÑлан Ярмолюк</i>: Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ Ñчётчика ÑлектроÑнергии NIK 2303.</li> <li> <i>Ðлмаз Каримов</i>: раÑширение Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ протокола DCON.</li> <li> <i>Ðркадий КиÑель</i>: Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ I2C ÑенÑора температуры, барометричеÑкого Ð´Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ влажноÑти BME280.</li> <li> <i>КонÑтантин (IrmIngeneer)</i>: поддержка Ñборки OpenSCADA на диÑтрибутиве Linux Gentoo.</li> <li> <i>Сергей Дорошка</i>: <a class="external text" href="http://oscada.org/ru/forum/posts/razrabotka_openscada/popytka_adaptacii_openscada_k_qnx_65/" rel="nofollow noreferrer noopener" target="_blank">Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð°Ð´Ð°Ð¿Ñ‚Ð°Ñ†Ð¸Ñ OpenSCADA к работе на QNX</a>.</li> <li> Организации, которые ÑодейÑтвовали наиболее значительному уÑовершенÑтвованию OpenSCADA через её интеграцию в ÑобÑтвенные ÑиÑтемы управлениÑ: <ul><li> <i>Proviron Holding NV</i>: приобретение пакетов техничеÑкой поддержки Ð´Ð»Ñ Ð¾Ð±Ñ‰ÐµÐ¹ поддержки, иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ протокола Siemens ISO-TSAP(ProfiNet), некоторых наработок около Raspberry Pi, 2014, 2016-2018.</li> <li> <i>Ð›Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ Ð²Ð°ÐºÑƒÑƒÐ¼Ð½Ñ‹Ñ… технологий</i>: "Ð’Ð°ÐºÑƒÑƒÐ¼Ð½Ð°Ñ Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ‡ÐµÑÐºÐ°Ñ ÑƒÑтановка", 2011-2018, и финанÑирование Ð¾Ð±Ð¾Ñ€ÑƒÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ñервера OpenSCADA, 2014.</li> <li> <i>Оптима</i>: "СиÑтема Ðвтоматизации Метрополитена", 2016.</li> <li> <i>Вектор</i>: приобретение пакетов техничеÑкой поддержки Ð´Ð»Ñ Ð¸ÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ OPC-UA в работе Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼Ð¸ OPC-UA клиентами и Ñерверами, 2015-2016.</li> <li> <i>КраматорÑктеплоÑнерго+<a class="external text" href="http://diyaorg.dp.ua" rel="nofollow noreferrer noopener" target="_blank">ДІЯ</a></i>: "СÐУ шаровых барабанных мельниц ШБМ 287\410 котлоагрегата â„–8 БКЗ 160–100 ПТ", 2015, та "СÐУ ФоÑфатированиÑ, ÐÐ¼Ð¼Ð¸Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Гидразина котлоагрегатов БКЗ 160–100 ПТ", 2014. Ð’ качеÑтве ПЛК иÑпользован ICP-DAS LP-8781 Ñ OpenSCADA в роли Ñреды иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐŸÐ›Ðš.</li> <li> <i>Хартрон</i>: "СиÑтема ÐšÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñти (СКР) Ядерной ПодкритичеÑкой УÑтановки (ЯПУ)", 2013-2015.</li></ul></li> <li> Много других организаций и отдельных пользователей, которые пожелали оÑтатьÑÑ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ñ‹Ð¼Ð¸, через приобретение техничеÑкой поддержки и уÑлуг, конÑтруктивные отзывы Ð²Ð½ÐµÐ´Ñ€ÐµÐ½Ð¸Ñ Ð¸ ÑкÑплуатации.</li></ul> <p>ПоÑледующие уÑÐ¸Ð»Ð¸Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ будут направлены на: </p> <ul><li> Завершение ревизии оÑновной документации, в оÑновном по модулÑм и библиотекам.</li> <li> Чёткое определение и обновление политики предоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¼ÐµÑ€Ñ‡ÐµÑких уÑлуг вокруг проекта OpenSCADA: <ul><li> переÑмотр и обновление уÑловий пакетов техничеÑкой поддержки;</li> <li> политика и Ð¾Ñ€Ð³Ð°Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñборок обновлений к Ñтабильной ветви: Ñохранение иÑтории вÑех публичных обновлений и Ð¾Ñ€Ð³Ð°Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑервиÑных;</li> <li> диÑÑ‚Ñ€Ð¸Ð±ÑƒÑ†Ð¸Ñ Ð¸Ñключительно коммерчеÑких Ñборок Ñ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ демонÑтрационными на примере пакетов Ð´Ð»Ñ Android — разработка и формирование механизма ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð·Ð° Ñроком пакета техничеÑкой поддержки и демонÑтрационного режиму. </li></ul></li> <li> ОÑвоение и адаптацию к отраÑли "Управление реÑурÑами предприÑÑ‚Ð¸Ñ (ERP)" Ñ Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ð¾Ñтью на: <ul><li> Ñоздание интерфейÑа ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ€ÐµÑурÑами на Ñервере проекта;</li> <li> Ñоздание общего интерфейÑа ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð·Ð°Ð´Ð°Ñ‡ и их финанÑированиÑ, Ñ Ð¾Ñ€Ð³Ð°Ð½Ð¸Ð·Ð°Ñ†Ð¸ÐµÐ¹ разработчиков к привлечению иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтих задач и техничеÑкой поддержки.</li></ul></li> <li> РаÑширение функций Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² отраÑлÑÑ… "Умный дом", "Ð”Ð¾Ð¼Ð¾Ð²Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸ÐºÐ°" и "Бытовые роботы".</li> <li> Ðдаптацию к работе в окружении операционных ÑиÑтем QNX и MS Windows.</li></ul> <h2><span class="mw-headline" id=".D0.9E.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F"><span class="mw-headline-number">7</span> ОбновлениÑ</span></h2> <h3><span class="mw-headline" id=".5B01.01.7533.2F01.03.2025.5D_.D0.92.D0.9E.D0.A1.D0.AC.D0.9C.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">7.1</span> [01.01.7533/01.03.2025] ВОСЬМОЕ обновление</span></h3> <div style="float:right; border:1px solid gray; width:300px; padding:2px; margin-left: 10pt; margin-bottom: 10pt;"> <ul><li> <b>СоÑтоÑние:</b> <span style="color: red">теÑтирование и поÑле-Ñборка ...</span></li></ul> <p>Общий процеÑÑ Ð²Ñ‹Ð¿ÑƒÑка, пользователÑм Ð´Ð»Ñ Ð¾Ñ†ÐµÐ½ÐºÐ¸ ваших ожиданий и разработчикам Ð´Ð»Ñ Ð½Ð°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð·Ð°Ð´Ð°Ñ‡:<br /> <b><u>1. ÐÐµÐ´ÐµÐ»Ñ Ð¿Ð¾Ð´Ð³Ð¾Ñ‚Ð¾Ð²ÐºÐ¸ и Ñборки:</u></b><br /> </p> <ul><li> Сборка поÑледней Рабочей (Work) SVN-ревизии Ð´Ð»Ñ Ð²Ñех окружений нерегулÑрной Ñборки чтобы обеÑпечить раннее и широкое теÑтирование предшеÑтвующего LTS релиза.</li> <li> ÐнонÑирование начала процеÑÑа выпуÑка: <ul><li> Ñоздание новой <a href="index.html" title="Special:MyLanguage/Documents">Ñтраницы релиза</a> или <a href="Release_0.9.html" title="Special:MyLanguage/Documents/Release 0.9">Ñтраницы обновлениÑ</a> на Wiki;</li> <li> Ñоздание новой новоÑти-Ñтраницы на <a class="external text" href="http://oscada.org/ru/glavnoe/%7Cофициальном" rel="nofollow noreferrer noopener" target="_blank">Ñайте OpenSCADA</a>.</li></ul></li> <li> Объединение изменений Рабочей (Work) верÑии, или копирование целиком дерева Рабочей ветви, в LTS ветвь-дерево.</li> <li> ВнеÑение некоторых изменений, ÑпецифичеÑких Ð´Ð»Ñ LTS, на предмет поднÑÑ‚Ð¸Ñ Ð²ÐµÑ€Ñий: <ul><li> обновление <b>configure.ac</b> на предмет верÑии выпуÑка-Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ библиотеки Ñдра;</li> <li> обновление <b>data/*.spec</b> и <b>data/{debian,debian_mod}/changelog</b> на предмет нового номера верÑии и Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° изменений файлов новыми запиÑÑми выпуÑка-обновлениÑ.</li></ul></li> <li> Формирование-дополнение ПротоколаИзменений LTS изменениÑми из ПротоколаИзменений Work, Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€ÑƒÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾ размещению и ÑÐ¾Ñ€Ñ‚Ð¸Ñ€ÑƒÑ Ð¸Ñ… по ÑоÑтоÑнию иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ уровню, Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ новых возможноÑтей в одном Ñлементе и без ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð»ÑŽÐ±Ñ‹Ñ… отличных изменений.</li> <li> Копирование значительных изменений из Ñформированного ПротоколаИзменений LTS на ÑоответÑтвующую Ñтраницу релиза-обновлениÑ, Ð±ÐµÑ€Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¼ более или равные "!!".</li> <li> Перевод Ñтраницы(ц) релиза-обновлениÑ, обновление "<a href="../en/To_do.html" title="Special:MyLanguage/Works/To do">Сделать (ToDo)</a>" и "<a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Works/Road_map" title="Special:MyLanguage/Works/Road map">Ð”Ð¾Ñ€Ð¾Ð¶Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° (RoadMap)</a>".</li> <li> Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ð°ÐºÑ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ð¹ внеÑетевой документации иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ÑервиÑную процедуру "<a href="Libs_Service_procedures.html#docOffLine" title="Special:MyLanguage/Libs/Service procedures">EXT: Off-line documentation</a>".</li> <li> Применение-выгрузка изменений LTS дерева в репозиторий и Ñборка Ñтого.</li></ul> <p><b><u>2. The testing and post-building week(s):</u></b><br /> </p> <ul><li> Updating the <a class="external text" href="http://oscada.org/en/main/download/" rel="nofollow noreferrer noopener" target="_blank">Download page</a>.</li> <li> Announcing the release-update, also on <a class="external text" href="https://www.facebook.com/Roman.Savochenko" rel="nofollow noreferrer noopener" target="_blank">FaceBook</a> and <a class="external text" href="https://www.linkedin.com/in/roman-savochenko-71b50272/" rel="nofollow noreferrer noopener" target="_blank">LinkedIn</a>.</li> <li> Hot testing the release build.</li> <li> Finishing and fixing the ChangeLog translating and the documentation.</li> <li> Generating the actual offline documentation using the service procedure "<a href="Libs_Service_procedures.html#docOffLine" title="Special:MyLanguage/Libs/Service procedures">EXT: Off-line documentation</a>".</li> <li> Committing the release fixes to the repository and building that for the second build, and for each week of appearing critical fixes — the first week without the critical fixes means the final of the LTS releasing, so, USERS — test closely the LTS release for do not complain to its final build!</li> <li> Updating binary copies of standard OpenSCADA libraries: <a class="external" href="http://oscada.org/wiki/File:OscadaLibs.db.gz" title="File:OscadaLibs.db.gz">OscadaLibs.db</a>, <a class="external" href="http://oscada.org/wiki/File:VcaBase.db.gz" title="File:VcaBase.db.gz">VcaBase.db</a>, <a class="external" href="http://oscada.org/wiki/File:VcaElectroEls.db.gz" title="File:VcaElectroEls.db.gz">VcaElectroEls.db</a>.</li></ul> </div> <p>This update of the <a href="Release_0.9.html" title="Special:MyLanguage/Documents/Release 0.9">0.9 LTS release</a> fixes about 70 bugs and appends MANY improvements with several of significant-conceptual ones, which you can read wholly in <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3015" rel="nofollow noreferrer noopener" target="_blank">the update ChangeLog</a>. </p><p><b><u><a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automation_Linux_distributive" title="Special:MyLanguage/Sub-projects/Automation Linux distributive">Automation Linux distributive of the project OpenSCADA</a></u></b><br /> </p> <ul><li> updating TDE to 14.1.3 and building patched also for Debian 8,10 ARMHF;</li> <li> restoring of starting <b>nm-applet</b> in the system tray and removing the "raspi-firmware" package from Debian 12 installations;</li> <li> formalisation the partial TDE forking under the subproject — the <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automation_Linux_distributive#TDE" title="Special:MyLanguage/Sub-projects/Automation Linux distributive">Automation Linux distributive of the project OpenSCADA</a>;</li> <li> TDE > tdepowersave-trinity: Preventing of locking-sticking the sign "blacklisted_running" after running one blacklisted program.</li> <li> TDE > basket-trinity: Fixing of no replacing selected blocks into note at pasting RTE, just appending before the block.</li> <li> TDE > tdepim-trinity > KOrganizer: Preventing of appearing two dialogues of item editing and new item at double clicking on cell with items in the month view.</li> <li> TDE > krusader-trinity: Fixing of refreshing source panel at moving operations.</li> <li> TDE > tdebase-trinity > Konqueror: Preventing of items sometime doubling in the tab item "System (system:/)" through doubly call <i>setOpen(true)</i>;</li> <li> TDE > tdebase-trinity > QuickLauncher: Completing of fixing of appearance in QuickLauncher of empty-zero items after removing some item, what related with inserting already missing desktop-file (after uninstalling the application) from the popularity;</li> <li> TDE > krusader-trinity: Preventing of force locking mounted media-folders after changing local directory to remote-virtual one, in a way of changing the local folder to Home. Also preventing the memory leakage on call the function <i>getcwd(0, 0)</i> without freeing its result;</li> <li> TDE > krusader-trinity: Preventing of cleaning the panel with item list of a SMB share after item renaming through receiving second or third <i>result()</i> event from IO-Slave, that is the panel refresh is lagged now at 0.5 seconds after renaming;</li> <li> TDE > tdebase-trinity > KDesktop: Preventing of complete freezing KDesktop on waiting the Saver Engine during about one minute after wake up, by not use <i>sigsuspend()</i> for waiting "mSaverProcessReady" where enough to call <i>tqApp->processEvents()</i>;</li> <li> TDE > tdelibs-trinity > DCOP: Switching internal interval timers on the modern "timespec" structure and the Monotonic clock in the base, that is made DCOP insensitivity to jumps of the real time, especially at waking up;</li> <li> TDE > tqt3-trinity: Complete switching Qt3 interval timers (QTimer) on the modern "timespec" structure and the Monotonic clock in the base, that is made Qt3 insensitivity to jumps of the real time, especially at waking up;</li> <li> TDE > kaffeine-trinity: Appending support the WEBM media format;</li> <li> TDE > tdelibs-trinity > MIME: Appending support the WEBM media format;</li> <li> xine-lib: Switching "display_queue.mutex" in Video out to the recursive mode for preventing hangs in <i>xine_new_framegrab_video_port()</i>;</li> <li> TDE > tdemultimedia-trinity > XineThumbnails: Audio Disabled by <i>xine_new_framegrab_audio_port()</i> and HUE corrected. In addition to preventing dead locks in Xine;</li> <li> TDE > tdelibs-trinity > TDE IO: Setting the slave connection timeout of SLAVE_CONNECTION_TIMEOUT_MIN from 2 to 10 and SLAVE_CONNECTION_TIMEOUT_MAX from 10 to 30 for preventing errors of the FILE-slave missing on generally slow hardware and HDD/SSD with slow sectors;</li> <li> TDE > tdeadmin-trinity > KPackage: Adding the menu "APT Specials" by items: "Clean (<span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">apt-get clean</span>)", "Autoremove (<span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">apt-get autoremove</span>)";</li> <li> TDE > tqt3-trinity: Preventing hangs on rendering wrong char shapes in TQTextEngine, it was noticed in KCharSelect on page 15;</li> <li> TDE > tdelibs-trinity: Fixing of substitution correct year in the kdatepicker corresponding to the selected Calendar System;</li> <li> TDE > kdiff3-trinity: Switching URLs in the plugin's menu to the pretty view instead encoding UTF-8 chars of native locales;</li> <li> TDE > tqt3-trinity: Softening an effect of high-whole CPU loading at flooding Pending events from the GLib interface to the X11 server, what is brightly appeared on digikam-showfoto, or qtwaittimer, what detected on kdesktop-screensaver at wake up, by appending short waiting on 1ms after processing the events;</li> <li> TDE > amarok-trinity: Preventing of flooding with high CPU loading especially on old-slow systems during execution in the system tray and before opening the PlayList window, due to the analysers are wrongly started in the background at changing the animation period;</li> <li> TDE > tdebase-trinity > MediaManager: Appending of switching the /etc/fstab using whether by a util of mounting like to <b>udisks</b> or the generic mount program. And that is suitable both for FD and CD/DVD/BLURAY due to <b>udisks[2]</b> doesn't mount them without an entry in /etc/fstab;</li> <li> TDE > tdebase-trinity > MediaManager: Fixing nonconformity in icon names for CD-R and CD-RW in tdeioslave (14.0.10 on Debian 7);</li> <li> TDE > kaffeine-trinity: Fixing of playing DVD with XINE versions which misunderstand URM "dvd://", only "dvd:/";</li> <li> TDE > tdebase-trinity > Kate: Reverting broken sessions from 14.0.</li></ul> <p><b><u>Main WWW-resources, documentation of the project and subprojects</u></b><br /> </p> <ul><li> appending the <a href="Libs_Devices.html" title="Special:MyLanguage/Libs/Devices">Industrial devices library page</a> by description new templates;</li> <li> appending the <a href="Libs_LowLevelDevices.html" title="Special:MyLanguage/Libs/LowLevelDevices">Low level sensors and chips library page</a> by description new templates;</li> <li> appending the <a href="Libs_Main.html" title="Special:MyLanguage/Libs/Main">Main library page</a> by description new templates.</li></ul> <p><b><u>New and significantly updated parts</u></b><br /> </p> <ul><li> OpenSCADA Core: 3:14:0 => <b>3:15:0</b></li></ul> <dl><dd> (<a href="#Upd8ControlObjProp">Implementing properties of the Control Objects</a>, <a href="#Upd8ControlObjACL">Implementing the custom ACLs to the control nodes</a>, <a href="#Upd8InitCon">Implementing initiative connections</a>, <a href="#Upd8ExpProjMan">Expanding the project management</a>, <a href="#Upd8MessTrFix">Messages Translation — fixes of the conceptual changes of the previous updates</a>)</dd></dl> <ul><li> OpenSCADA "Transports" subsystem: 20 => <b>21</b></li> <li> DAQ.DAQGate: 2.13 => <b>2.14</b></li> <li> DAQ.JavaLikeCalc: 5.6 => <b>5.7</b></li> <li> Archive.FSArch: 3.8 => <b>3.9</b></li> <li> Transport.SSL: 4.5 => <b style="color: red">5.1</b></li></ul> <dl><dd> (<a href="#Upd8SSLSockAddrResolv">Unification and overriding the address resolving in different ways</a>)</dd></dl> <ul><li> Transport.Sockets: 4.8 => <b style="color: red">5.0</b></li></ul> <dl><dd> (<a href="#Upd8SSLSockAddrResolv">Unification and overriding the address resolving in different ways</a>)</dd></dl> <ul><li> Protocol.OPC_UA: 2.2 => <b>2.3</b></li></ul> <dl><dd> (<a href="#Upd8OPC_UA">True authentication with control the permission</a>)</dd></dl> <ul><li> Protocol.HTTP: 3.8 => <b>3.9</b></li> <li> UI.QTCfg: 6.0 => <b>6.1</b></li> <li> UI.VCAEngine: 7.13 => <b>7.16</b></li> <li> UI.Vision: 9.1 => <b>9.4</b></li> <li> UI.WebUser: 1.6 => <b style="color: red">2.0</b></li></ul> <dl><dd> (<a href="#Upd8WebUserExt">Expanding for support direct writing</a>)</dd></dl> <ul><li> UI.WebVision: 6.9 => <b>6.13</b></li> <li> UI.WebCfgD: 2.6 => <b>2.7</b></li> <li> LibsDB.OscadaLibs.base: 2.2 => <b>2.3</b></li></ul> <dl><dd><ul><li> initRemCntr: <b style="color: red">1.1</b></li> <li> fileServerHTTP: 1.0 => <b>1.2</b></li></ul></dd></dl> <ul><li> LibsDB.OscadaLibs.LowDevLib: 1.5 => <b>1.6</b></li></ul> <dl><dd><ul><li> 1W: <b style="color: red">2.1</b></li> <li> S1BP: <b style="color: red">1.0</b></li> <li> UC96: 1.0 => <b>1.2</b></li></ul></dd></dl> <ul><li> LibsDB.OscadaLibs.DevLib: 3.0 => <b>3.1</b></li></ul> <dl><dd><ul><li> ergomera125: <b style="color: red">0.5</b></li> <li> mbBase: 1.2 => <b>1.3</b></li></ul></dd></dl> <ul><li> LibsDB.vcaBase.Main</li></ul> <dl><dd><ul><li> storeHouse: 1.4 => <b style="color: red">2.1</b></li></ul> <dl><dd> (<a href="#Upd8StoreHouse">Added file inclusion and image preview</a>)</dd></dl> <ul><li> grph_panel: 1.5 => <b>1.6</b></li> <li> doc_panel: 1.2 => <b>1.3</b></li> <li> userManager: 1.6 => <b>1.7</b></li></ul></dd></dl> <ul><li> LibsDB.vcaTest.test.docTestGasNodeDayRep: 1.0 => <b>1.1</b></li></ul> <p><b><u><span id="Upd8ControlObjProp" title="#Upd8ControlObjProp">CONCEPTUAL > Implementing properties of the Control Objects</span> </u></b><br /> </p> <ul><li> SYS: TCntrNode: <ul><li> Appending of the object properties in groups by prefixes for different parts of OpenSCADA: system (sys), user (usr), connection (con), security (sec), ... .</li> <li> Adding a User API function <i>property()</i> of accessing the object properties from user context in additional to the direct-natural way.</li></ul></li> <li> Transports: Moving the connection parameters to the object properties in group "con".</li> <li> DAQ: Moving the TValue flags <i>resB1()</i> and <i>resB2()</i> to the object properties in group "DAQ", that is removing such functions.</li></ul> <p><b><u><span id="Upd8ControlObjACL" title="#Upd8ControlObjACL">CONCEPTUAL > Implementing the custom ACLs to the control nodes</span> </u></b><br /> </p> <ul><li> SYS: <ul><li> TCntrNode: <ul><li> new functions <i>nodeAccess()</i>, <i>nodeLoadACL()</i>, <i>nodeLoadACLSnthHgl()</i>;</li> <li> moving from static with some improving and adaption to ACL with compatibility of the direct rules for the functions of the control interface: <i>ctrMkNode()</i>, <i>ctrMkNode2()</i>, <i>_ctrMkNode()</i>, <i>ctrChkNode()</i>;</li> <li> new functions of the control interface for ACL: <i>ctrMkNode3()</i>, <i>ctrChkNode2()</i>;</li> <li> <i>_ctrMkNode()</i> switched to no exception at missing container nodes, just don't create and return NULL.</li></ul></li> <li> TFld: <i>cntrCmdMake()</i> added by an argument <i>cntrO</i> for linking with the Control Node, and all code adapted to that.</li> <li> TConfig: <i>cntrCmdMake()</i> and <i>cntrCmdProc()</i> added by an argument <i>cntrO</i> for linking with the Control Node, and all code adapted to that.</li></ul></li> <li> Transports: TTransportS: <i>cntrCmdPrm()</i> added by an argument <i>cntrO</i> for linking with the Control Node, and all code adapted to that.</li> <li> DAQ: Adaptation to ACLs in the description fields of the Controller and Parameter Objects, DAQ-Templates and their configuration, DAQ-Attributes, DAQ.DAQGate. Default owner-permition for the DAQ subsystem set to "root:DAQ"-0775.</li> <li> Protocol.OPC_UA: Using ACL in checking the access.</li></ul> <p><b><u><span id="Upd8InitCon" title="#Upd8InitCon">CONCEPTUAL > <a href="DAQ.html#PassiveAndInitiative" title="Special:MyLanguage/Documents/DAQ">Concentration the different OpenSCADA-hosts on the common server, both for IoT on OpenSCADA and not</a> </span> </u></b><br /> </p> <ul><li> LibsDB.OscadaLibs: <ul><li> tmplib_base: Appended by a template "Control the remote initiative connections (initRemCntr)", with documenting and completed translation to Ukrainian.</li> <li> Appended of the user "RemCntr" with password "RemCntr" and in the group DAQ for use in the initiative remote connections to the OpenSCADA server.</li> <li> Appended of the disabled transports "RemCntr" to Transport.Sockets and Transport.SSL, that is when you want to provide data of your station, you just enable one of them.</li></ul></li> <li> ModelsDB/{AGLKS/oscada_AGLKS.xml,Boiler/oscada_Boiler.xml}: Removing system groups without users, than allow the groups specify in libraries.</li> <li> FIX:Transports: TTransportOut appended by the function isFromInput() to detect automatically created objects from the input transport. The external initiative connections of the OpenSCADA hosts prevented from stop.</li></ul> <p><b><u><span id="Upd8ExpProjMan" title="#Upd8ExpProjMan">CONCEPTUAL > Expanding the project management</span> </u></b><br /> </p> <ul><li> data/openscada-proj.in: Expanding by the commands <b>snapshot</b>, <b>crash</b>, <b>cores</b> with unification of preparing the crash reports also for the crashing processes from itself. Appending the crash-reports by "info thread" and "info sharedlibrary". <ul><li> Refactoring the algorithm of processing the projects in the System and User directory, that is fixing of creation the project directory in the System directory at presence the System configuration file.</li></ul></li> <li> SYS: Enabled in processing the signals SIGFPE and SIGSEGV with call <span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">openscada-proj crash {ProjID}</span> to prepare the crash report immediately for SIGFPE, SIGABRT and SIGSEGV. <ul><li> The process return-exit result for success is forced to EXIT_SUCCESS and for fail to EXIT_FAILURE.</li></ul></li></ul> <p><b><u><span id="Upd8MessTrFix" title="#Upd8MessTrFix">CONCEPTUAL > Messages Translation (fixes of the <a href="Release_0.9.html#MessTrFix" title="Special:MyLanguage/Documents/Release 0.9">conceptual changes of the previous updates</a>) </span> </u></b><br /> </p> <ul><li> LibsDB.OscadaLibs: Automatic updating some translation.</li> <li> LibsDB.vcaBase.wlb_Main: <ul><li> Appended of the dynamic messages with Ukrainian translation for main ones of DiskSMART and UPS during representing by "Object properties (objProps)".</li> <li> anShow,anShow1: Appended of translation dynamic messages from parameter attributes NAME and DESCR.</li> <li> FIX:RootPgSo: The attribute "Procedure of the Demo play (demoPlayProc)" set to the type "Text (translate)".</li></ul></li> <li> SYS,DAQ,UI.VCAEngine: Implementing of disabling translation of string configuration fields, DAQ attributes, UI attributes at changing in the dynamic execution: <ul><li> SYS,DAQ,DB.{FireBird,MySQL,ODBC,PostgreSQL,SQLite}: appending the unified method <i>{TCfg,TVal}::isTransl()</i> of checking translation the element, and moving on its everywhere;</li> <li> TVal: appending the "mNoTransl" flag and functions of its treating: <i>noTransl()</i>, <i>setNoTransl()</i>, <i>TValue::setNoTransl()</i>;</li> <li> UI.VCAEngine::Attr: appending the "NoTransl" flag and its treating in <i>isTransl()</i>;</li> <li> translation is disabled: <ul><li> at writing through links of implementation the templates in <i>TPrmTempl::Impl::lnkOutput()</i>;</li> <li> at the User API call <i>TVal::set()</i>;</li> <li> UI.VCAEngine: at Widget attribute change in the Session context for widgets in processing and at writing to DAQ attribute by links.</li></ul></li> <li> the DAQ Parameters added of restoring the translation of dynamically changed configuration fields at load.</li></ul></li> <li> FIX:SYS: TMess: Adding messages to the table "Trs" is enabled only in the messages level Debug, for preventing flooding to the table of any translated messages and not.</li> <li> FIX:DAQ.OPC_UA,Protocol.HTTP,UI.{QTCfg,Vision}: Fixing and improving some original messages.</li> <li> FIX:DAQ: Fixing-finishing the dynamic translation for title of the controller and parameter object. <ul><li> FIX: Templates fixed-adapted to the dynamic translation in using the IO names.</li> <li> FIX: Fixing-finishing the dynamic translation of values requesting in the Control Request <b>TValue::"get:/serv/attr"</b> for non archiving elements.</li> <li> Parameter templates allowed in setting empty names for their translation clearing in the dynamic translation mode.</li> <li> FIX:DAQGate: Some fixed in Ukrainian translation.</li> <li> FIX:JavaLikeCalk: Some improved in the translation.</li></ul></li> <li> FIX:Protocol.OPC_UA: Adaption to the dynamic translation in data requests.</li> <li> FIX:UI.{QTCfg,Vision}: The messages "Load from DB" and "Save to DB" renamed to "Load" and "Save" and with "storage" instead "DB" in full messages.</li> <li> FIX:UI.VCAEngine: The session User API function <i>this.attr()</i> fixed in checking the translation flag TFld::TransltText. <ul><li> FIX: Templates fixed-adapted to the dynamic translation in using the configuration template of the attributes.</li></ul></li></ul> <p><b><u>OpenSCADA libraries and projects</u></b><br /> </p> <ul><li> FIX:LibsDB.OscadaLibs: <ul><li> tmplib_DevLib: Appended by the template "Ergomera 125 (ergomera125)" with initial implementation the own protocol and documenting. <ul><li> mbBase: Expanded for support Input Registers by function 4.</li> <li> FIX:VSE002: Rewrote in the packages sequential reading mode, that is detection all packages with notifying unknown.</li> <li> FIX:Incubator: Fixing value of the 'Transport (transport)' field.</li></ul></li> <li> tmplib_LowDevLib: Appended by the template "BT: ATORCH S1BP (S1BP)" with documenting and completed translation to Ukrainian. <ul><li> Appended by the template "1-Wire (1W)", which merged from 1W_DS9097 and 1W_DS9097U before appending I2C Drivers and expanded by an option "Only add attributes at scan", with documenting and completed translation to Ukrainian. Adding of support the I2C Driver DS2482-100 and some improving with fixing.</li> <li> UC96: Expanded for support ATORCH UD24. Expanded by reading: "Volts maximum (Vup)", "Volts minimum (Vdwn)", "Data+, V (Dplus)", "Data-, V (Dminus)".</li></ul></li> <li> FIX:tmplib_base.fileServerHTTP: Expanded of big data transferring in chunks by the direct writing function <i>writeTo()</i>. For that appended by the attributes: "Transport (tr)", "Protocol (prt)" and "Sender (sender)".</li> <li> FIX:flb_doc.diagram: Adding of drawing non periodic direct data like months. Implementing of rounding big interval points by the Besier Cubic Curves.</li></ul></li> <li> LibsDB.vcaBase: <ul><li> wlb_Main: <ul><li> grph_panel,doc_panel: Adding of checking for activity the controlled trend or document, and closing at its inactivity. Moving in the size-depth field to the editable combobox with the digital number and human text multiplier, based on the new User API function <i>time2str()</i> and <i>str2time()</i>, that is removing the type field here.</li> <li> docRepDay,docRepMonth,docUsersSet,docRepInstVals,docDin,docRep2WorkSh,docAlarmsRep,docMessRep: Adaptation to opening the document control panel after several seconds of starting-opening, that is for allowing the document control at displaying by QtWebengine.</li> <li> grpGraph,grpCadr,doc_panel,grph_panel,prescrEdit,prescrRun,prescrRunSimple,accept,treeSelect,calendar,userManager,alarmsStReport,docRepDay,docRepMonth,docRepYear},wlb_prescr.{prescrEdit,prescrRun,prescrRunSimple: The variable <i>ev_cur</i> renamed to <i>evCur</i>.</li> <li> <span id="Upd8StoreHouse" title="#Upd8StoreHouse">storeHouse</span>: Expanded by support of including files both to the MySQL LONGTEXT field and to FS. Appending preview the loaded images in the form and the item report. Appending dynamic control panel to the selected items in the table for fast control and accessing data of the complex fields.</li> <li> FIX:grpGraph10: Fixed in the "geomZ" attribute for the included widgets "el9" and "el10".</li> <li> FIX:RootPgSo: Improved by pause the demo-procedure's execution at no requests on WEB, so preventing of opening all pages before real close. The direct pages list append by checking the pages permission.</li> <li> FIX:grpGraph: Fixed in the "geomZ" attribute for the "trnd1" and "arh" included widgets.</li> <li> FIX:weather: Appending by icons of representing different states. Fixed in guaranty receiving the hourly data at the connection problems.</li> <li> treeSelect: Updating icon of the frame with improving the name.</li> <li> userManager: Moving to the Control Interface commands to work in redundant systems.</li></ul></li> <li> wlb_doc.docRepYear: Switching the direct data drawing on the diagram to the non periodic mode.</li></ul></li> <li> LibsDB.vcaTest.wlb_test.docTestGasNodeDayRep: Adaptation to opening the document control panel at setting the "pgOpen" attribute and not setting the "pgOpen" attribute in the panel, due to the document is archiving, that is for allowing the document control at displaying by QtWebengine.</li> <li> ModelsDB.AGLKS: <ul><li> wlb_doc.{docRepMonth,docRepDay}: Set to no process periodically.</li> <li> wlb_test.docTestGasNodeDayRep: Set to process with period 10 seconds.</li></ul></li></ul> <p><b><u>API</u></b><br /> <i>!!!!:Changes</i>: </p> <ul><li> SYS: Type of the limit variables "limUserFile_SZ", "limUserIts_N" changed to unsigned. <ul><li> TCntrNode: Moving from static with renaming some arguments: <i>ctrMkNode()</i>, <i>ctrMkNode2()</i>, <i>_ctrMkNode()</i>, <i>ctrChkNode()</i>. Changing prototype of the <i>objPropSet()</i> function in the "val" argument.</li> <li> TVal: Moving to constant for <i>fld()</i>.</li> <li> TFld: <i>cntrCmdMake()</i> added by an argument "cntrO" with renaming some arguments.</li> <li> TConfig: <i>cntrCmdMake()</i> and <i>cntrCmdProc()</i> added by an argument "cntrO" with renaming some arguments.</li></ul></li> <li> Security: Renaming the function <i>TSecurity::access()</i> argument "access" to "perm", also for User API.</li> <li> Transports: <i>TTransportS::cntrCmdPrm()</i> added by an argument "cntrO".</li> <li> DAQ: Moving the TValue flags <i>resB1()</i> and <i>resB2()</i> to the object properties in group "DAQ", that is removing such functions.</li></ul> <p><i>Appends</i>: </p> <ul><li> SYS: Appending the <i>sysTmJmp()</i> function as a variant of <i>sysTm()</i>. <ul><li> Appended by the "DEF_HTaskPer" definition.</li> <li> TError: New error "Tr_ErrUnknown".</li> <li> TCfg,TVal: New unified method <i>isTransl()</i>.</li> <li> TVal: New functions: <i>noTransl()</i>, <i>setNoTransl()</i>.</li> <li> TValue: New function <i>setNoTransl()</i>.</li> <li> TCntrNode: New functions: <i>nodeAccess()</i>, <i>nodeLoadACL()</i>, <i>nodeLoadACLSnthHgl()</i>, <i>ctrMkNode3()</i>, <i>ctrChkNode2()</i>, <i>property()</i>, <i>propertyClrGrp()</i>. Adding a User API function <i>property()</i>.</li> <li> Appended by the limiting option "limObjDscr_SZ" for the description configuration fields (DESCR).</li> <li> Adding function <i>str2time()</i> with parsing the human time from <i>time2str()</i>, which added also by the "inParts" argument.</li> <li> Adding new User API functions with representing the system ones in the user space: <i>time2str()</i>, <i>cpct2str()</i>, <i>str2time()</i>.</li> <li> XMLNodeObj: <i>getElementsBy()</i> and its User API variant expanded by arguments "limit" and "from".</li> <li> Mess: Adding the global label functions <i>labTime()</i>, <i>labTimeSel()</i>.</li></ul></li> <li> Transports: TTransportOut appended by the function <i>isFromInput()</i>.</li></ul> <p><b><u>SYS</u></b><br /> </p> <ul><li> Building: <ul><li> configure.ac: Core library version risen to 3:15:0 and the program version risen to 0.9.8. The module version of the subsystem "Transports" risen to 21.</li> <li> acinclude.m4: The <b>autoconf</b> macro AX_LIB_MYSQL added of using PKG_CONFIG when presence the configuration file, to build together MySQL in cross-compiling environments with binary <b>mysql_config</b> or <b>mariadb_config</b>. Removing the spare macroses: AX_LIB_SQLITE3, BNV_HAVE_QT. Some improving the macro AX_LIB_POSTGRESQL.</li> <li> data/{debian,debian_mod}: Appending "openscada-server.service" and "openscada-plc.service", also as a commented entry "dh_installsystemd" in "rules", and that switched to use in Debian 12,11,10 and Ubuntu 24.04,22.04,20.04. Appending MySQL default dependency as "default-libmysqlclient-dev".</li></ul></li> <li> FIX:Security,ModSchedul,DAQ.{Function,Templates,BFN,JavaLikeCalc,OPC_UA,Siemens},Archive.{.,FSArch},Protocol.{ModBus,OPC_UA,HTTP,UserProtocol},UI.VCAEngine: Adding permission to column-list fields of the Table control elements of the Control Interface to work not only from root-root.</li> <li> FIX:LibsDB.OscadaLibs.tmplib_base.fileServerHTTP,UI.WebVision: Unified in processing the data transferring in the sequence: ranges of media in the head, big data by chunks, simple single package for small data.</li> <li> Archive.{MessArchive,MessArchiver,ValArchive},DAQ: Moving in the size-depth field of the Control Interface to the editable combobox with the digital number and human text multiplier, based on the new function <i>time2str()</i> and <i>str2time()</i>.</li> <li> .,DAQ.{BlockCalc,JavaLikeCalc},Protocol.{ModBus,OPC_UA,UserProtocol},UI.{VCAEngine,WebUser}: Appended by the limiting option "limObjDscr_SZ" for the description configuration fields (DESCR) with default value 1000 and range [300...1000000].</li> <li> DAQ.{LogicLev,ModBus,OPC_UA,Siemens},UI.{QTCfg,WebCfgD}: Implementing of ordering value of the updating time of the configuration interface of the calculated objects, to update after the object processing.</li> <li> FIX:Transports,Protocols: Unification of errors generation in calls <i>messProtIO()</i> and its User API variant <i>messIO(XMLNodeObj req, string prt)</i> in accordance the documentation, that is obligatory with the error code.</li> <li> The commandline options appended by getting default value from the environment variable "OSCADA_{cmd}", what is enabled itself by the environment variable "OSCADA_CMD_EN".</li></ul> <p><b><u>DB</u></b><br /> </p> <ul><li> FIX:SQLite: The error code SQLITE_CORRUPT added for reconnection the DB file, since this error can be appeared with changing the DB-file structure from an external source.</li></ul> <p><b><u>DAQ</u></b><br /> </p> <ul><li> FIX: Fixed in remote archives detection for temporarily empty ones, that is no source.</li> <li> JavaLikeCalc: Implementing the "var" statement for true scope processing, that is defining new variables in functions with the statement and using global ones without.</li> <li> DAQGate: Improving algorithm of the archives detection with providing an information field with list of the archieving attributes.</li> <li> FIX:ModBus: Fixed in complete processing strings with encoding, that is registering all registers. The data requesting improved in the TCP variant for waiting tail to any first package size, that is not only the MBAP header in 7 bytes size.</li></ul> <p><b><u>Archives-History</u></b><br /> </p> <ul><li> The value archives appended of detection the doubly links and their all removing.</li> <li> FSArch: The archives unpacking function appended by the error message unification and a possibility to remove error archives, currently only at checking the value archive files.</li></ul> <p><b><u>Transports</u></b><br /> </p> <ul><li> The IO log items appended by whole package (or aggregation) size and the aggregation default time set to 1 second. Using the variables "ReqTm", "ReqMode", "ToTmOut", "InBufSz", "ReqAnsw" moved to the individual space of the transport object.</li> <li> <span id="Upd8SSLSockAddrResolv" title="#Upd8SSLSockAddrResolv">Sockets,SSL</span>: <i>TTransSock::getAddr()</i> renamed to <i>TTransSock::addrGet()</i> and the address resolving moved to a new function <i>TTransSock::addrResolve()</i> with direct resolving the static addresses and dynamic resolving by <i>gethostbyname()</i> due to <i>getaddrinfo()</i> has problems with reenteranting (on old systems) and global lock causes long hangs on all addresses at problems with DNS. Also appended a commandline option "--getaddrinfo" to enable it for yourself. <ul><li> FIX: Resolving a hard-detected problem of substitution wrong addresses during the addresses resolving by <i>getservbyname_r()</i> from other thread, that is from GLibC 2.24 there forced using <i>getaddrinfo()</i> as more correct or <i>inet_pton()</i> + locked <i>getservbyname_r()</i> on old systems.</li></ul></li> <li> FIX:SSL: Fixed in processing responses of the output transports from initiative connections, especially for no response. <ul><li> Appended of implementation <i>TTransportIn::writeTo()</i> with moving to map in holding the SSockIn structure.</li> <li> Input part of the transports switched to use unified <i>TTransSock::addrResolve()</i> for precursory resolving all dynamic addresses and pass ready static addresses to <i>BIO_new_accept()</i>.</li></ul></li></ul> <p><b><u>Transport Protocols</u></b><br /> </p> <ul><li> <span id="Upd8OPC_UA" title="#Upd8OPC_UA">OPC_UA</span>: Implementing the true authentication with checking permission to the DAQ-Nodes for the user: <ul><li> libOPC_UA: implementing the authentication through <i>UA::Server::EP::sessActivate()</i> and the property "identTkn", from which there is taken the user in the attribute "userAuthenticated" and that is written to "UA::Server::Sess::{user,idPolicyId}";</li> <li> libOPC_UA: all data requests by <i>reqData()</i> appended in "req" by an attribute "sesTokId" with session identifier here and for accessing the user;</li> <li> appending a configuration field "Anonymous user" for representing the anonymous authentication.</li></ul></li> <li> HTTP: Appended by the generic function of transition any method to WEB-modules — <i>HTTP()</i>.</li></ul> <p><b><u>User Interface</u></b><br /> </p> <ul><li> FIX:Vision,WebVision: Implementing of rounding big interval points by the Besier Cubic Curves. Fixing of calculating bottom border for vertical scale.</li> <li> VCAEngine,Vision,WebVision: The type Image of the primitive Media appended by the attribute "Keep aspect ratio at fitting (keepAspect)".</li> <li> FIX:VCAEngine,Vision: Adding an option in the "Styles" tab of the projects with control the writing to styles in the execution context. And the writing to the styles disabled on the project side.</li> <li> FIX:WebVision: Requesting data of the resources added by support chunks for big data and conversion only for small images. The Save type of the buttons appended by support the media ranges with storing the data in WebVision context for retries.</li> <li> <span id="Upd8WebUserExt" title="#Upd8WebUserExt">WebUser</span>: Switched to the generic function <i>HTTP()</i> of transition from Protocol.HTTP. Appended by an optional attribute "Transport (tr)" of the processing procedures and templates, taken from the protocol object. The attribute "Result (rez)" allowed in empty value to prevent sending any response, that is meaning direct writing by <i>TTransportIn::writeTo()</i>.</li> <li> QTCfg: The Back and Forward buttons expanded by a menu of the direct items accessing.</li> <li> FIX:Vision: Preventing fullscreen mode fault in some XOrg conditions, when the fullscreen Qt-flag occasionally cleared, that is the flag was doubled internally. Reproduced often with Qt6 on Debian 12.</li> <li> VCAEngine: Appending of the not processed events sending to a page who opened the source page.</li> <li> WebCfgD: Expanding of call <i>pageRefresh()</i> by integrating the lag time.</li></ul> <h3><span class="mw-headline" id=".5B01.01.7532.2F01.03.2024.5D_.D0.A1.D0.95.D0.94.D0.AC.D0.9C.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">7.2</span> [01.01.7532/01.03.2024] СЕДЬМОЕ обновление</span></h3> <p>Ðто обновление <a href="Release_0.9.html" title="Special:MyLanguage/Documents/Release 0.9">релиза 0.9 LTS</a> иÑправлÑет около 60 ошибок и добавлÑет ОЧЕÐЬ ÐœÐОГО улучшений Ñ Ð½ÐµÑколькими значительными-концептуальными, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ целиком можно ознакомитьÑÑ Ð² <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2967" rel="nofollow noreferrer noopener" target="_blank">протоколе изменений обновлениÑ</a>. </p><p><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> <b><u>User significant actions on the update</u></b><br /> </p> <ul><li> DAQ.System: ID of the automaticly generated DA parameters changed to: CPU - "CPU[{N}]", fs - "FS{MP}", hddstat - "DiskSt_{dev}", MEM - "MEM", netstat - "Net_{IF}", sensors - "Sensors", hddsmart - "DiskSMART", ups - "UPS", uptime - "UpTm_{U}".</li></ul> <dl><dd> <b><span style="color: red">=</span></b>> manually relink all the automatically created sources which changed, when you use the Automatic creation mode</dd></dl> <ul><li> FIX:UI.VCAEngine: Prevented from connection the attribute "focus" of any included widget to the calculation IOs and appended by processing the exceptions of accessing those IOs for missing included widgets.</li></ul> <dl><dd> <b><span style="color: red">=</span></b>> manually replace all static using the "focus" attribute like to <span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">if(alarms_focus) alUnSel = 10;</span> in <a href="Libs_Main_graphical_elements.html#alarmsSt" title="Special:MyLanguage/Libs/Main graphical elements">LibsDB.vcaBase.wlb_Main.alarmsSt</a> to the code <span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">if(this.alarms.attr("focus")) alUnSel = 10;</span></dd></dl> <p><b><u><a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automation_Linux_distributive" title="Special:MyLanguage/Sub-projects/Automation Linux distributive">Automation Linux distributive of the project OpenSCADA</a></u></b><br /> </p> <ul><li> appending Debian 12 as the distributive base;</li> <li> moving of building the Debian 11,10,9 base to the Debian 12 environment;</li> <li> updating TDE to 14.1.1 and next to 14.1.2, with stabilising up to the level of 14.0.13;</li> <li> preventing optionally the system tray from show program icons with different WMID but equal names like to BlueMan;</li> <li> preventing the very flooding in "~/.xsession-errors" by the debug messages like to "[FIXME] UNCLASSIFIED DEVICE name: ...";</li> <li> disabling of using Security Cards for authentication in the kdesktop lock dialog, due to it became unusable;</li> <li> HWLib: using in calculation Ah from Wh of the Designed Voltage instead the Current Voltage for accordance with the capacity information on the battery; prevented from freezing in the Hardware Manager;</li> <li> KRDC, KRFB: restoring the normal functioning from 14.0.13;</li> <li> KXKB-KLayouts: Fixing regressions in loss-clean the system keyboard layouts;</li> <li> TDESVN: preventing crashes at accessing DB from KPart;</li> <li> Krusader: fixing of unpacking *.tar.xz and *.txz, so completing of implementation the XZ support there;</li> <li> KMix: adaption the mixers dynamic;</li> <li> KMilo: restoring the brightness control after its breakage;</li> <li> QuickLauncher: it is just ignore empty items, so they will be removed after the configuration updating;</li> <li> TDM: disabling the authentication by a Security Card to prevent hangs at the exit;</li> <li> KOrganizer: improving the attachments dialogue for pointing only file with naming the attachment item from the file name and inline by default; improving the categories editing dialogue for notifying the underlying selecting dialogue about categories changing;</li> <li> TDEPowerSave: prevents of resetting the widget of displaying values the batteries since their become to show empty bar and -1; commented the SLOT slotHelpContents() due to its missing; prevents appearing the false inactivity dialogue to suspend just after awakening, which is appeared especially often on notebooks in work from the battery;</li> <li> KPackage: optimisation of the memory consumption in way of reading "apt-cache dumpavail" result through an temporary file but not through memory, that is the memory consumption on Debian 12 decreased from ~900MB to ~450MB;</li> <li> TDEPrint: fixing of translation of names of groups of the printing properties;</li> <li> translation to Ukrainian: knmap, knutclient, konversation, tdenetworkmanager.</li></ul> <p><b><u>Main WWW-resources, documentation of the project and subprojects</u></b><br /> </p> <ul><li> the "<a href="Quick_start.html" title="Special:MyLanguage/Documents/Quick start">Quick start</a>" manual completely revised and actualized for the last LTS changes;</li> <li> appending the <a href="Libs_Devices.html" title="Special:MyLanguage/Libs/Devices">Industrial devices library page</a> by description <a href="#tmplib_DevLibExt">new templates</a>;</li> <li> appending the <a href="Libs_LowLevelDevices.html" title="Special:MyLanguage/Libs/LowLevelDevices">Low level sensors and chips library page</a> by description <a href="#tmplib_DevLibExt">new templates</a>;</li> <li> appending the <a href="Libs_Main.html" title="Special:MyLanguage/Libs/Main">Main library page</a> by description <a href="#tmplib_baseExt">new templates</a>;</li> <li> appending the <a href="Libs_Main_graphical_elements.html" title="Special:MyLanguage/Libs/Main graphical elements">Main elements library of the user interface page</a> by description <a href="#wlb_MainExt">new widgets</a>;</li> <li> complete revision and actualising to the last LTS changes for pages of the modules: <a href="../en/Modules/System.html" title="Special:MyLanguage/Modules/System">DAQ.System</a>, <a href="../en/Modules/SSL.html" title="Special:MyLanguage/Modules/SSL">Transport.SSL</a>;</li> <li> started the new subproject <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/NetGear_R6220" title="Special:MyLanguage/Using/NetGear R6220">NETGEAR R6220</a> with OpenSCADA building and adaption to MIPS.</li></ul> <p><b><u>New and significantly updated parts</u></b><br /> </p> <ul><li> OpenSCADA Core: 3:13:0 => <b>3:14:0</b></li></ul> <dl><dd> (<a href="#BuildD12Qt6SSL3">Unification the building with adaption ...</a>, <a href="#TransportAddPrm">Refactoring and unifying the Transports subsystem ...</a>, <a href="#BigMemConsum">Control for big memory consumption</a>, <a href="#MessTrFix7">Messages Translation — fixes of the conceptual changes of the previous updates</a>)</dd></dl> <ul><li> OpenSCADA "Transport" subsystem: 19 => <b>20</b></li></ul> <dl><dd> (<a href="#TransportAddPrm">Refactoring and unifying the Transports subsystem ...</a>)</dd></dl> <ul><li> OpenSCADA "DAQ" subsystem: 14 => <b>15</b></li></ul> <dl><dd> (<a href="#DAQPrmTypes">Unification of conception the parameter types</a>)</dd></dl> <ul><li> DAQ.System: 2.4 => <b style="color: red">3.3</b></li></ul> <dl><dd> (<a href="#SystemExt">Complete refactoring and expanding for ...</a>)</dd></dl> <ul><li> DAQ.LogicLev: 2.7 => <b>2.9</b></li> <li> DAQ.DAQGate: 2.11 => <b>2.13</b></li> <li> DAQ.ModBus: 3.6 => <b>3.8</b></li> <li> DAQ.OPC_UA: 2.6 => <b>2.8</b></li> <li> DAQ.JavaLikeCalc: 5.5 => <b>5.6</b></li> <li> DAQ.Siemens: 4.4 => <b>4.5</b></li> <li> DAQ.AMRDevs: 0.7 => <b>0.8</b></li> <li> Transport.SSL: 3.4 => <b style="color: red">4.5</b></li></ul> <dl><dd> (<a href="#SSLExt">Expanding by support of the initiative connections, adaption to OpenSSL 1.1 and more</a>)</dd></dl> <ul><li> Transport.Sockets: 4.5 => <b>4.8</b></li> <li> Transport.Serial: 2.6 => <b>2.7</b></li> <li> Protocol.SelfSystem: 1.10 => <b style="color: red">2.0</b></li></ul> <dl><dd> (<a href="#SelfSystemExt">Significant reviewing and fixing in the external connections implementation and more</a>)</dd></dl> <ul><li> UI.QTCfg: 5.12 => <b style="color: red">6.0</b></li></ul> <dl><dd> (<a href="#BuildD12Qt6SSL3">Unification the building with adaption to Qt6, QtWebEngine, QtMultimediaEngine, ...</a>)</dd></dl> <ul><li> UI.QTStarter: 5.14 => <b style="color: red">6.0</b></li></ul> <dl><dd> (<a href="#BuildD12Qt6SSL3">Unification the building with adaption to Qt6, QtWebEngine, QtMultimediaEngine, ...</a>)</dd></dl> <ul><li> UI.VCAEngine: 7.11 => <b>7.13</b></li> <li> UI.Vision: 8.6 => <b style="color: red">9.2</b></li></ul> <dl><dd> (<a href="#BuildD12Qt6SSL3">Unification the building with adaption to Qt6, QtWebEngine, QtMultimediaEngine, ...</a>)</dd></dl> <ul><li> UI.WebCfgD: 2.4 => <b>2.5</b></li> <li> UI.WebVision: 6.8 => <b>6.10</b></li> <li> LibsDB.OscadaLibs.base: 2.0 => <b>2.2</b></li></ul> <dl><dd><ul><li> fileServerHTTP: <b style="color: red">1.0</b></li> <li> weather: <b style="color: red">1.0</b></li></ul></dd></dl> <ul><li> LibsDB.OscadaLibs.DevLib: 2.6 => <b style="color: red">3.0</b></li></ul> <dl><dd><ul><li> Incubator: <b style="color: red">1.0</b></li> <li> VSE002: <b style="color: red">1.1</b></li> <li> FF_LE: <b style="color: red">0.9</b></li> <li> ergomera625: <b style="color: red">0.1</b></li> <li> Goboy1M: <b style="color: red">1.0</b></li> <li> AutoPILOT: <b style="color: red">1.0</b></li> <li> AutoPILOT_old: <b style="color: red">1.0</b></li> <li> CorBK: <b style="color: red">1.0</b></li> <li> TDS: <b style="color: red">1.0</b></li> <li> UltraMag: <b style="color: red">1.0</b></li> <li> enronDaniel: <b style="color: red">1.0</b></li> <li> FlowGAS: <b style="color: red">1.0</b></li></ul></dd></dl> <ul><li> LibsDB.OscadaLibs.LowDevLib: 1.4 => <b>1.5</b></li></ul> <dl><dd><ul><li> UC96: <b style="color: red">1.0</b></li></ul></dd></dl> <ul><li> LibsDB.vcaBase.Main: 2.0 => <b>2.1</b></li></ul> <dl><dd><ul><li> weather: <b style="color: red">1.0</b></li> <li> storeHouse: 1.3 => <b>1.4</b></li> <li> grpGraph, grpGraph10: 1.5 => <b>1.6</b></li> <li> ElViewGraph: 1.4 => <b>1.5</b></li></ul></dd></dl> <p><b><u><span id="BuildD12Qt6SSL3" title="#BuildD12Qt6SSL3">CONCEPTUAL > Unification the building with adaption to Debian 12, Qt6, QtWebEngine, QtMultimediaEngine, OpenSSL3, MIPS</span> </u></b><br /> </p> <ul><li> FIX: Finished in true building with the core library only in static: <ul><li> configure.ac: the configuration option <span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">--enable-CoreLibStatic</span> expanded for definition the AM_CONDITIONAL(CoreLibStatic) and the environment variable LIB_MOD;</li> <li> moduls/*/*/Makefile.am: appended by the option --tag=disable-shared and expanded by using the environment variable LIB_MOD;</li> <li> src_call/Makefile.am: expanded by the AM_CONDITIONAL(CoreLibStatic) specific processing for static linking the core library with all included modules.</li></ul></li> <li> configure.ac,acinclude.m4: Cleaned from the deprecated macroses in AutoConf 2.70: <ul><li> AC_HELP_STRING renamed to AS_HELP_STRING;</li> <li> AM_CONFIG_HEADER renamed to AC_CONFIG_HEADER;</li> <li> AC_LIBTOOL_DLOPEN replaced by LT_INIT([dlopen]);</li> <li> AX_PTHREAD replaced by AC_SEARCH_LIBS(pthread, [pthread_create])</li> <li> commented for AC_PROG_LIBTOOL, AM_PROG_LIBTOOL, AC_HEADER_STDC, AC_HEADER_TIME, AC_TYPE_SIGNAL, AC_ISC_POSIX.</li></ul></li> <li> acinclude.m4,DAQ.OPC_UA.libOPC_UA,Transport.SSL,Special.FLibSYS: Cleaned from deprecated functions in OpenSSL 1.1 (API 3.0): <ul><li> acinclude.m4: testing function of the macro AX_LIB_OpenSSL() and AX_LIB_OpenSSL_opt() for libcrypto replaced from MD5_Init() to BIO_new(); testing function of the macro AX_LIB_OpenSSL() for libssl replaced from SSL_free() to SSL_new();</li> <li> OPC_UA.libOPC_UA: UA::symmetricEncrypt() and UA::symmetricDecrypt() merged to UA::symmetricCrypt() and switched for using EVP_CipherInit() and EVP_CipherUpdate() instead AES_cbc_encrypt() for new versions; <ul><li> using RSA_public_encrypt() moved to EVP_PKEY_encrypt() and RSA_private_decrypt() moved to EVP_PKEY_decrypt() for new versions.</li></ul></li> <li> Transport.SSL,Special.FLibSYS: using of MD5() moved to EVP_DigestInit_ex(), EVP_DigestUpdate(), EVP_DigestFinal_ex() for new versions.</li></ul></li> <li> configure.ac: In appending Qt6 that is appended by Qt6Sensors, Qt6WebEngineWidgets, Qt6MultimediaWidgets. <ul><li> Appended by checking Qt5WebEngineWidgets and Qt5MultimediaWidgets for support in UI.Vision.</li> <li> Appended by checking the declarations-functions clock_nanosleep, pthread_rwlock_timedwrlock, newlocale for very pure environments of MIPS with UCLibC.</li> <li> The parameters <span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">--disable-WebKit</span> and <span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">--disable-Phonon</span> renamed to <span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">--disable-QtWebEngine</span> and <span style="border: solid gray 1px; padding: 1px; font-family: monospace; font-size: 1.2em; white-space: nowrap;">--disable-QtMultimediaEngine</span> respectively.</li> <li> The generic variables QtWebKit_{CFLAGS,LIBS} and phonon_{CFLAGS,LIBS} renamed to QtWebEngine_{CFLAGS,LIBS} and QtMultimediaEngine_{CFLAGS,LIBS} respectively.</li> <li> Most of the corresponding messages were improved.</li> <li> Appended by checking the header pthread.h.</li></ul></li> <li> acinclude.m4: The AutoConf macro AX_LIB_Qt expanded by Qt6 support and improved in MOC and RCC detection for Qt5. <ul><li> Some messages improved.</li></ul></li> <li> data/{debian,debian_mod}/compat: The level was risen up to 7 for default building at modern Debian distributives.</li> <li> data/{debian,debian_mod}/control: Appended by the dependency variants qt6-base-dev, qt6-webengine-dev, qt6-multimedia-dev and qtwebengine5-dev, qtmultimedia5-dev. Appended by the dependency variant libsensors-dev to libsensors4-dev.</li> <li> ResRW::{resRequestW,resRequestR}(): Appended of using the timed version at the definition HAVE_DECL_PTHREAD_RWLOCK_TIMEDWRLOCK.</li> <li> TSYS::atime2str(),SYS.strftime(): Appended of using the localized data at the definition HAVE_DECL_NEWLOCALE.</li> <li> TSYS::{sysSleep,taskSleep}(): Appended of using the clocked sleep at the definition HAVE_DECL_CLOCK_NANOSLEEP.</li> <li> Control Interface of the main page appended by hiding the tab "Translations" and the language fields at missing the internationalisation in whole.</li> <li> TMess,TModule: The HAVE_LIBINTL_H checking replaced by "#if HAVE_LIBINTL_H", that is checking for 1.</li> <li> Transports.SSL: Adapted to new functions of OpenSSL 1.1 (API 3.0) with treating deprecated ones.</li> <li> UI.{QTStarter,QTCfg,Vision}: Adapting for building with Qt6, including adapting to Qt6WebEngine and Qt6Multimedia: <ul><li> QLayout::{setMargin,margin}() replaced by QLayout::{setContentsMargins,getContentsMargins}();</li> <li> QVariant(char*) replaced by QVariant(QString);</li> <li> the QMouseEvent constructor replaced by one with the global position;</li> <li> QRegExp replaced by the OpenSCADA's variant TRegExp for functions of replacing and testing or by the direct checking;</li> <li> the QComboBox signal activated(const QString&), currentIndexChanged(const QString&) replaced by activated(int), currentIndexChanged(int) respectively;</li> <li> the QSignalMapper signal mapped(QWidget*) replaced by mappedObject(QObject*);</li> <li> QPalette::Background replaced by QPalette::Window and Qt::MidButton by Qt::MiddleButton;</li> <li> QFileDialog::setReadOnly() replaced by setOption();</li> <li> QApplication::desktop() replaced by QScreen;</li> <li> QAction::parentWidget() replaced by parent();</li> <li> QVariant::type() renamed to typeId(), QMouseEvent::{pos,globalPos}() renamed to {position,globalPosition}(), QDateTime::{setTime_t,fromTime_t,toTime_t}() renamed to {setSecsSinceEpoch,fromSecsSinceEpoch,toSecsSinceEpoch}();</li> <li> appended by renaming functions for different Qt versions with help the macro-definitions in different files and for: typeId() to type(), position() to pos(), globalPosition() to globalPos(), setSecsSinceEpoch() to setTime_t(), fromSecsSinceEpoch() to fromTime_t(), toSecsSinceEpoch() to toTime_t(), mappedObject() to mapped(), setSource() to setMedia(), setVolume() to audioOutput()->setVolume(), setMedia() to setSource(), state() to playbackState();</li> <li> appended for support QRegularExpression instead QRegExp in Qt6;</li> <li> the QMouseEvent property mouseBtHold splitted on two QPointF: mouseBtHoldPos, mouseBtHoldPosG;</li> <li> the keyboard combination separator "+" replaced by "|", that is "Qt::SHIFT|Qt::Key_F1";</li> <li> the event QEvent::KeyRelease in LineEdit apply replaced by QEvent::KeyPress;</li> <li> QTStarter: the generic library lib_qtgen appended by the function winFit() of specific windows fitting on mobile systems in common; appended by the attribute Qt::AA_ShareOpenGLContexts before the Qt application object for QtWebEngine work on Qt6;</li> <li> Vision: adaption to Qt WebEngineWidgets instead WebKit and to Qt MultimediaWidgets instead Phonon, and the primitive Document split for force using QTextBrowser in the development mode. Restored in new action items of the library widgets appearance by placing the new actions to Menu before ToolBar.</li></ul></li></ul> <p><b><u><span id="TransportAddPrm" title="#TransportAddPrm">CONCEPTUAL > Refactoring and unifying the Transports subsystem in the additional parameters management and expanding in using the connection time parameters for registering configuration parameters of external sources</span> </u></b><br /> </p> <ul><li> the container configuration field "A_PRMS" of the additional parameters moved to the core library from the modules;</li> <li> appended by functions TTransportS::{prm,cntrCmdPrm}(), {TTransportIn,TTransportOut}::prm() with common implementation the additional parameters;</li> <li> conPrm() expanded by support the configuration parameters of external sources like to protocols and it extended to the input part, also as for the User API;</li> <li> conPrm() appended by an argument of the default value and what used in all transport modules;</li> <li> clearConPrm() expanded by clearing single parameter and only from external sources;</li> <li> setConPrm() was removed after implementing this feature in conPrm() and some modules was updated for that: DAQ.AMRDevs, Protocol.SelfSystem;</li> <li> Protocol.SelfSystem is the first protocol who is used now the configuration parameters in transport;</li> <li> the output transports appended by a link to an input transport, who created the output one, and it is used for holding here the configuration parameters of external sources;</li> <li> all configuration of the associated output transports are set hidden;</li> <li> control of the additional parameters moved in own tab "Additional (aprm)" with a function of resetting their values;</li> <li> marking the input and output transports as modified set only at the configuration fields real change.</li></ul> <p><b><u><span id="BigMemConsum" title="#BigMemConsum">CONCEPTUAL > Control for big memory consumption</span> </u></b><br /> </p> <ul><li> SYS: TCntrNode::cntrCmd() in processing the primary commands of the Control Interface appended by their generic logging to control actions caused the big memory consumption.</li> <li> FIX:DAQ: JavaLikeCalc: The strings concatenation operation appended by the limit checking on limUserFile_SZ(10M). <ul><li> System: Appended by DA Process as an interface to Linux processes in control their memory usage.</li></ul></li> <li> FIX:Archives: The requests TVArchEl::getVals() and "TValue:get:/serv/attr" appended of limiting the requesting depth in limUserIts_N (1e6) items to prevent for big memory consumption. <ul><li> FIX: The Control Interface request "TValue:get:/serv/attr" fixed in limit calculation of the function getVals().</li> <li> FIX:.,FSArch: The values archiving appended by limiting the writing operations at limUserIts_N (1e6) entries for tracing of consuming all memory in some cases.</li></ul></li></ul> <p><b><u><span id="MessTrFix7" title="#MessTrFix7">CONCEPTUAL > Messages Translation (fixes of the <a href="Release_0.9.html#MessTrFix" title="Special:MyLanguage/Documents/Release 0.9">conceptual changes of the previous updates</a>) </span> </u></b><br /> </p> <ul><li> FIX:SYS,DB: TMess::translGet() fixed in detecting the system prestored messages at setting empty translation messages and the function TMess::translGetU() fixed in cleaning service zero symbols in non dynamic translation modes. <ul><li> DB: TTable::fieldSQLSet() adapted to clearing the message base and all translations at zeroing a translation, for clear messages edition in the dynamic translation mode and from non base language.</li></ul></li> <li> SYS,DB.{SQLite,MySQL,PostgreSQL,FireBird},Protocol.HTTP: The messages translation adapted mostly for language codes more of 2 (two) symbols.</li> <li> Protocol.HTTP,UI.{WebUser,WebVision}: Finished in adapting for dynamic translation the station name with unification the User API function pgCreator() for using language from objFuncCall(). <ul><li> Protocol.HTTP: Path from TSYS::ico() used for obtaining translated icons.</li></ul></li> <li> SYS,UI.{Vision,WebVision}: The function TSYS::atime2str() appended by the date translation and it is used in building the time scale of the primitive Diagram of VCA.</li> <li> FIX:DB: Allowed in true writing of user changes in the Dynamic Translation Mode on non Base Language, by early checking for dynamic data.</li> <li> FIX:DAQ: The DAQ-Templates finished in adapting to translation string type values at their editing and using in the Template Configuration Tab and fixed-adapted to the dynamic translation in using the IO names. <ul><li> FIX:DAQGate: Fixed in the values sending of the translatable fields not in the internal translation structure.</li></ul></li> <li> Protocol: HTTP: Adapted for dynamic translation the station name and processing encoded file names of images. <ul><li> UserProtocol: Fixed-adapted for the dynamic translation of the IO names.</li></ul></li> <li> FIX:UI.VCAEngine: Templates fixed-adapted to the dynamic translation in using the configuration template of the attributes.</li> <li> FIX:UI.WebUser: Fixed in translation the page name in the index.</li> <li> FIX:UI.WebVision: Fixed in dynamic translation the user name on the index page.</li></ul> <p><b><u>OpenSCADA libraries and projects</u></b><br /> </p> <ul><li> data/{oscada_plc.xml,oscada_server.xml,oscada_start.xml,ModelsDB/{AGLKS/oscada_AGLKS.xml,Boiler/oscada_Boiler.xml}}: Cleared in the input transport description and the transports appended by the port group: 10002,10003,10004 for WEB and 10005,10006,10007 for CNTR.</li> <li> LibsDB.{OscadaLibs.flb_Controller.test,vcaBase.prj_archBrowser.IDW},ModelsDB.AGLKS.St.{OPC_UA.test,Archive.{MemInfo_use,CPULoad_load}},ModelsDB.Boiler.St.Archive.{MemInfo_use,CPULoad_load}: Adapted to renaming DAQ.System.AutoDA.CPULoad and DAQ.System.AutoDA.MemInfo to DAQ.System.AutoDA.CPU and DAQ.System.AutoDA.MEM.</li> <li> FIX:ModelsDB.AGLKS.St: The input SSL transports set by the port group 10042,10043,10044 for WEB and 10045,10046,10047 for CNTR. <ul><li> FIX:WebUser.test: restored in the text before unification the translation.</li> <li> DAQGate.test: Updated for the parameter cache.</li> <li> LogLevPrm.gen: All parameter objects set for "alDelay" in 1, to prevent the alarm messages at the exiting.</li> <li> Sockets.{testRelease,testRelease1,testRelease2}: disabled by default.</li></ul></li> <li> LibsDB.OscadaLibs: <ul><li> <span id="tmplib_DevLibExt" title="#tmplib_DevLibExt">tmplib_DevLib</span>: The library appended by the templates with documenting: <ul><li> from VPF: Incubator, VSE002, "FF LE-03MB CT (FF_LE)", "Ergomera 625(ergomera625)";</li> <li> from Blue Star Group: "Goboy 1M (Goboy1M)", "AutoPILOT PRO Flow Computers (AutoPILOT)", "AutoPILOT OLD Flow Computers (AutoPILOT_old)", "Corrector BK (CorBK)", "Tancy Data (TDS)", "UltraMag", "Enron, Daniel (enronDaniel)", FlowGAS.</li></ul></li> <li> <span id="tmplib_baseExt" title="#tmplib_baseExt">tmplib_base</span>: Appended by a new template for WebUser "HTTP File Server (fileServerHTTP)" with implementing the HTTP File Server in OpenSCADA, currently that is only reading resources with support partiality; and the new templates "Weather (weather)", "Disk SMART (DiskSMART)". <ul><li> digAlarm,manInUnif,anUnif,pidUnifImp,anUnifSt,pidUnif,codeState,SNMP,UPS: The NAME IO set to the type "String (translate)" and the DESCR IO to the type "Text (translate)".</li></ul></li> <li> tmplib_LowDevLib: Appended by the template "BT: ATORCH UC96". <ul><li> RDTech: Nondouble commands set to send the command twicely for stable applying by the device, postcommand delay set to 0.2 and moved in common.</li></ul></li> <li> tmplib_base.ntf: Expanded by a possibility of specifying messages to exclude from the notification.</li></ul></li> <li> LibsDB.vcaBase: <ul><li> <span id="wlb_MainExt" title="#wlb_MainExt">wlb_Main</span>: The library appended by the widget "Weather (weather)" with documenting. <ul><li> storeHouse: Expanded by creating the item edition form in the main frame after hiding the main table and other. <ul><li> FIX: Prevented of <EVAL> for <NULL> cells in the item report.</li> <li> FIX: Guaranteed in filling the report dialogs by generating the opening events from the procedure.</li> <li> FIX: Fixed in early setting the vertical position for the data table at changing the user.</li> <li> The text fields of the single-item report were cleared from the left margin for texts.</li> <li> The reports appended by processing the links as the external ones.</li> <li> Expanded by processing ID (index) also as other standard fields "NAME", "DSCR" — to control the field visibility.</li> <li> Appended of resetting filters at the page restart or user change.</li> <li> The whole-table report appended of limiting cells' text in 30 symbols, that is like to the edition table.</li> <li> The item report appended by hiding empty fields.</li> <li> Appended of updating the selection context of the form items at change such item value.</li></ul></li> <li> grpGraph: Procedure rewrote for unification to work with different elements, so for use in all derivative frames like to grpGraph10.</li> <li> grpGraph10: Switched to inheritance from grpGraph.</li> <li> FIX:alarmsSt: Fixed in the alarms_focus variable accessing after removing of forcing the "focus" attribute, which replaced by this.alarms.attr("focus").</li> <li> tmplSO: Some cleaned for items of the ResultGraph page.</li> <li> ResultGraph: The attribute "grpName" set to the "String (translate)" type.</li> <li> ElViewGraph: Appended of reading the default-static properties for clearing to them.</li></ul></li> <li> wlb_doc: <ul><li> FIX:docRepInstVals: Restored in translation values of title and parameter's dimension, name.</li> <li> FIX:docUsersSet: Appended by encoding the value fields also, due to there can be not just digits now.</li></ul></li></ul></li> <li> LibsDB.vcaTest: Finished in renaming CPULoad to CPU and MemInfo to MEM.</li></ul> <p><b><u>API</u></b><br /> <i>!!!!:Changes</i>: </p> <ul><li> SYS: ico() appended by an argument of obtaining the file path. <ul><li> strLabEnum() appended by an argument "onlyDec" for enumerating one digit.</li> <li> Removed sysClk(), clkCalc(), shrtCnt(), HZ().</li> <li> TError: Removed for DB_TrRemoved.</li> <li> TMess: labStorRemGenStor() renamed to labStorRem(), labStor() cleaned for arguments.</li> <li> TElem: fldList() set to const.</li> <li> TFld: TFld(): Type of the argument vals, nSel changed from "const char *" to "const string&". Removed for selValS(), selValI(), selValR(), selValB(), selNm(), selVl2Nm(), selNm2VlS(), selNm2VlI(), selNm2VlR(), selNm2VlB().</li> <li> TCfg,TVal: Removed getSEL() and setSEL().</li> <li> TCntrNode: isModify() set to constant, save() added by an argument of the maximum error level.</li></ul></li> <li> DAQ: TController::id() set to const.</li> <li> Transports: <ul><li> TTransportIn,TTransportOut: Moved to the protected section for logLen(), setLogLen(), pushLogMess(). Removed for logItLim(), setLogItLim().</li> <li> TTransportOut: Merged for conPrm() and setConPrm() to one conPrm(), also for UserAPI ones. clearConPrm() expanded by an argument of specifying identifier or group of cleaned parameters.</li> <li> TTransportIn::associateTrO(): expanded by support the different stages ATrStg_Create, ATrStg_Proc.</li></ul></li></ul> <p><i>Appends</i>: </p> <ul><li> SYS: The new definition DB_GEN "<gen>". <ul><li> Appended sysClk(), setSysClk() for receiving the CPU frequency from DAQ.System.</li> <li> The sysTm() function appended by arguments for detection of time jumps after suspending.</li> <li> TMess: The new function labStorFromCode() of names the specific storages.</li> <li> TElem: Appended by the function contN() of obtaining for counter of the connected containers.</li></ul></li> <li> DAQ: TVal: Appended by the function setTime() and by a new flag AttrFlg::NoSave for preventing of marking as modified at the attribute change. <ul><li> TController: Appended by tbl() for tables of the parameter types.</li></ul></li> <li> UI: User API appended by SYS.UI.mimeGet() of obtaining the MIME type from the file name.</li> <li> Transports: The new definition STR_A_PRM "prms", STR_A_PRM_CFGP "CFG:". <ul><li> TTransportS: The new functions prm(), cntrCmdPrm() of common processing transport parameters.</li> <li> TTransportIn: Appended by the function prm(), conPrm(), clearConPrm(). Appended by the UserAPI function conPrm() and setConPrm() (for compatibility) and in accordance with ones in TTransportOut.</li></ul></li></ul> <p><b><u>SYS</u></b><br /> </p> <ul><li> Building: <ul><li> configure.ac: Core library version risen to 3:14:0 and the program version risen to 0.9.7. The module version of the subsystem "DAQ" risen to 15, "Transports" risen to 20.</li> <li> Appended for building to Debian 12 and Ubuntu 24.04 LTS.</li></ul></li> <li> FIX:DB,Transports,DAQ.BFN,UI.VCAEngine: Adapted for checking the TBDS::dataDel() success result to prevent hangs here on RO storages with fixing function TTable::fieldSQLDel() for true checking the function success.</li> <li> .,DAQ.{DAQGate,DCON,DiamondBoards,ICP_DAS,LogicLev,ModBus,OPC_UA,Siemens,SoundCard,System},Protocol.{ModBus,OPC_UA},UI.VCAEngine: Simplified significantly in support the selectable types, making that optional and with support the dynamic translation. Allowed also for specifying only list of values.</li> <li> .,Archive.DBArch,DAQ.{BFN,JavaLikeCalc,ModBus,OPC_UA},Protocol.UserProtocol,UI.{VCAEngine,Vision,WebUser}: The Generic Storage renamed from "*.*" to "<gen>": <ul><li> with naming the specific storages as "Generic Storage" and "Configuration File" everywhere through the new function TMess::labStorFromCode();</li> <li> appended by the definition DB_GEN "<gen>", which used everywhere instead "*.*";</li> <li> all generic fields like to "Archiver DB" renamed to "Storage";</li> <li> TMess::labStorRemGenStor() renamed to TMess::labStorRem() and appended by information about all object storages.</li></ul></li> <li> .,DAQ.{BlockCalc,Comedi,DiamondBoards,FT3,Fastwel,ICP_DAS,SNMP},Protocol.{ModBus,UserProtocol},UI.{VCAEngine,Vision,WebCfg,WebCfgD,WebUser}: std::string::substr() replaced by std::string::find() in places with static obtaining data for comparing, what is clearer, safer and mostly faster for short strings.</li> <li> .,UI.{VCAEngine,Vision}: Improved for messaging the warnings at saving.</li> <li> TCntrNode::cntrCmd() in processing the primary commands of the Control Interface appended by their generic logging.</li> <li> FIX:TCfg::setS() in the variant with RqFlg appended of locking the critical sections at accessing the container TVariant and appended by notification, only on the data stages and without the returning back.</li></ul> <p><b><u>DAQ</u></b><br /> </p> <ul><li> .,*: Moved in the DAQ sources to fix table names of different parameter types and adapted to the <span id="DAQPrmTypes" title="#DAQPrmTypes">unified conception the parameter types</span>, that is the configuration fields are hidden now when their are standard ones and it scheduled to be cleaned in whole in v1.0.</li> <li> FIX: TValFunc::get{S,I,R,B}() appended by code of casting the object TVarObj with EVAL/null converting.</li> <li> <span id="SystemExt" title="#SystemExt">System</span>: Completely refactored and expanded for: <ul><li> expanding the CPU DA by CPU information and frequency from different sources, including CPUFreq with the control;</li> <li> appending a new DA Power as an interface to Linux Power and DA Process as an interface to Linux processes;</li> <li> Sensors>DA appended by support of the directly accessible sensors "/sys/devices/virtual/thermal/*/temp" and /sys/devices/virtual/hwmon/*/temp*;</li> <li> unification the DA interface calls DA::init(), DA::deInit(), DA::makeActiveDA() with moving most DA modules to call the unified code and implementing for them only the unified function dList();</li> <li> the DA interface class appended by the new signs: isDynamic(), hasSubTypes();</li> <li> appending a mode of the data generic updating from the Service Cycle and the Controller DA Task, by the new function updGen();</li> <li> ID of the automaticly generated DA parameters changed to: CPU - "CPU[{N}]", fs - "FS{MP}", hddstat - "DiskSt_{dev}", MEM - "MEM", netstat - "Net_{IF}", sensors - "Sensors", hddsmart - "DiskSMART", ups - "UPS", uptime - "UpTm_{U}";</li> <li> switched to the soft mode of parameters automatic creation, that is you allowed to create the source parameters automatically, save forcibly need ones and next switch to the manual mode, than preventing continued scanning.</li></ul></li> <li> FIX:DAQGate: Time of the requesting archive increased for 1 (one) microsecond to prevent of spare values requesting and their direct rewriting to the archives. <ul><li> Improved in work with remote host without the time sync: <ul><li> the values can be in future up to one hour;</li> <li> the remote host timestamp everywhere used at the archive presence even in the tag "<vl>";</li> <li> appended of detection the remote host time for its display and using in timestamp the changed values.</li></ul></li></ul></li> <li> FIX:LogicLev: Significant improving the Parameter Reflection mode in: <ul><li> dynamic creation and removing attributes;</li> <li> disabling at the error enabling with missing the source parameter with removing all attributes;</li> <li> the selection changed to not editable;</li> <li> measuring the processing time.</li></ul></li> <li> OPC_UA: Appended by support the asynchronous writing like to DAQ.ModBus.</li> <li> AMRDevs: Adapted in the Kontar part to the new conception of the associated output transports for the input ones.</li></ul> <p><b><u>Archives-History</u></b><br /> </p> <ul><li> FIX: The message archivers are prevented from resetting the buffer position of the last read message since we get doubling the messages at each updating the subsystem, which is often for updation the value archive connections, and especially at missing the resource lock.</li> <li> FIX: The Control Interface request "TValue:get:/serv/attr" fixed in expanding to equivalent archivers.</li></ul> <p><b><u>Transports</u></b><br /> </p> <ul><li> Sockets,SSL: Appended for support by the port group in the input transports, that is connection to first free. The input transports appended by a configuration field of properties of the initiative connection and the associated output transports.</li> <li> <span id="SSLExt" title="#SSLExt">SSL</span>: <ul><li> Expanded by support of the initiative connections: <ul><li> SSL connection code of TSocketOut::{start,stop}() moved to static ones TSocketOut::{connectSSL,disconnectSSL}() for using in the input transport;</li> <li> SSL connection code of TSocketIn::Task() moved to TSocketIn::{start,stop}();</li> <li> removed for support the SSL algorithms and versions specifying in the mode due to that removing in the OpenSSL library and that was not used mostly, so there used only TLS_{client,server}_method() for new libraries (> 1.1) and SSLv23_{client,server}_method() for old ones.</li></ul></li> <li> FIX: TSocketOut::messIO() prevented from hang at endlessly reading by BIO_read() after the socket closing, by checking errno for EAGAIN.</li> <li> The SSL context moved to the generic module object separately for input (ctxIn) and output (ctxOut) parts and the ciphers information was added for: <ul><li> the generic module object by SSL_CTX_get_ciphers();</li> <li> input-server transport status for SSL_get_shared_ciphers(), SSL_get_client_ciphers() and SSL_get1_supported_ciphers() or SSL_get_ciphers();</li> <li> output-client status for SSL_get1_supported_ciphers() or SSL_get_ciphers().</li></ul></li> <li> The input and output transports appended by control MSS and the input transports appended by control the system input buffer, both taken from Transport.Sockets.</li></ul></li></ul> <p><b><u>Transport Protocols</u></b><br /> </p> <ul><li> FIX:<span id="SelfSystemExt" title="#SelfSystemExt">SelfSystem</span>: Significantly reviewed and fixed in the external connections implementation, appended by checking limit the header size. Fixed in double request packing of the output transports at second tries of reconnection or reauth. </li></ul> <p><b><u>User Interface</u></b><br /> </p> <ul><li> VCAEngine,Vision,WebVision: Appended by support of data built-in to resource marked attributes, primarily for the source attribute of the Media primitive.</li> <li> FIX:Vision: Adapted for obtaining named list of the storages.</li> <li> FIX:VCAEngine: Prevented from connection the attribute "focus" of any included widget to the calculation IOs and appended by processing the exceptions of accessing those IOs for missing included widgets. FIX: Attr::setS() improved in the critical section processing.</li> <li> FIX:WebVision: Appended of implementation the user fields in the status bar.</li></ul> <h4><span class="mw-headline" id="Service_updates"><span class="mw-headline-number">7.2.1</span> Service updates</span></h4> <ul><li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3007" rel="nofollow noreferrer noopener" target="_blank">the fifth (5) at 01.02.2025</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2997" rel="nofollow noreferrer noopener" target="_blank">the third (4) at 13.11.2024</a>;</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2984" rel="nofollow noreferrer noopener" target="_blank">the third (3) at 12.08.2024</a>;</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2975" rel="nofollow noreferrer noopener" target="_blank">the second (2) at 26.06.2024</a>;</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2969" rel="nofollow noreferrer noopener" target="_blank">the first (1) at 02.06.2024</a>.</li></ul> <h3><span class="mw-headline" id=".5B01.01.7531.2F01.03.2023.5D_.D0.A8.D0.95.D0.A1.D0.A2.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">7.3</span> [01.01.7531/01.03.2023] ШЕСТОЕ обновление</span></h3> <p>Ðто обновление <a href="Release_0.9.html" title="Special:MyLanguage/Documents/Release 0.9">релиза 0.9 LTS</a> иÑправлÑет около 70 ошибок и добавлÑет ÐœÐОЖЕСТВО улучшений Ñ Ð½ÐµÑколькими значительными-концептуальными, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ целиком можно ознакомитьÑÑ Ð² <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2892" rel="nofollow noreferrer noopener" target="_blank">протоколе изменений обновлениÑ</a>. </p><p><b><u><a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automation_Linux_distributive" title="Special:MyLanguage/Sub-projects/Automation Linux distributive">Automation Linux distributive of the project OpenSCADA</a></u></b><br /> </p> <ul><li> updating TDE to 14.0.13 and 14.1.0 — adaption all patches-fixes and for Debian 11 only;</li> <li> initial appending the Calendar System from the <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automation_Linux_distributive#WorldCS" title="Special:MyLanguage/Sub-projects/Automation Linux distributive">World Creation</a> at which year 2023 is 7531;</li> <li> fixing KDesktop, TDE HW Manager, noatun, TDESVN, basket, KGpg, KPDF, disabling thumbnails for video, than appending the new patched packages "tdelibs-trinity", "tdebase-trinity", "tdegraphics-trinity", "tdesvn-trinity" and "basket-trinity" to the distributive collection;</li> <li> some improving and updating KCalc, holiday_ua, korganizer;</li> <li> complete translation to Ukrainian for KDiff3 and showfoto;</li> <li> packages building with own patches for Debian 11,10,9,8,7 before adaption the release TDE 14.1.0;</li> <li> switching the Debian 9 base to the archive repository, after its official archiving;</li> <li> appending the Debian 11,10,9 distributives by packages of RHVoice — Speech synthesizer with many voices for ten languages;</li> <li> translation the <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automation_Linux_distributive" title="Special:MyLanguage/Sub-projects/Automation Linux distributive">subproject page</a> to Ukrainian.</li></ul> <p><b><u>Main WWW-resources, documentation of the project and subprojects</u></b><br /> </p> <ul><li> completely revised and translated to Ukrainian the "<a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Server" title="Special:MyLanguage/Sub-projects/Server">Server and hosting infrastructure of the OpenSCADA project</a>" document;</li> <li> fixed for the <a class="external text" href="http://oscada.org/" rel="nofollow noreferrer noopener" target="_blank">Site</a> working in WebBrowsers of old embedded devices like to Nokia N900, N9;</li> <li> <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/Nokia_Linux" title="Special:MyLanguage/Using/Nokia Linux">Maemo 5 (Nokia N900)</a> restored with moving to the CSSU-Thumb Toolchain grounded on GCC 4.7.2 from Linaro; and the project page updated;</li> <li> completely revised the "API" document in the <a href="../en/API.html#CntrNode" title="Special:MyLanguage/Documents/API">section "Control Interface and dynamic tree of program objects"</a> and the section "Service commands-functions" moved there as a subsection, the <a href="../en/API.html#ServFunc" title="Special:MyLanguage/Documents/API">subsection "Service commands-functions"</a> completely rewrote and appended by, and all these translated in Ukrainian;</li> <li> started the new subproject <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Using/PinePhone" title="Special:MyLanguage/Using/PinePhone">Open Phone — PinePhone</a>;</li> <li> completely revised and actualised for the "<a href="How_to_Create_module.html" title="Special:MyLanguage/Documents/How to/Create module">How to Create OpenSCADA module</a>";</li> <li> started the new subproject <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Graphical_PLC_Programming" title="Special:MyLanguage/Sub-projects/Graphical PLC Programming">Graphical PLC Programming in OpenSCADA</a>;</li> <li> the building scripts of the project <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automatic_Builder_of_OpenSCADA" title="Special:MyLanguage/Sub-projects/Automatic Builder of OpenSCADA">Automatic Builder of OpenSCADA</a> completely revised and unified with the subproject document updating and translation to Ukrainian.</li></ul> <p><b><u>New and significantly updated parts</u></b><br /> </p> <ul><li> OpenSCADA Core: 3:12:0 => <b>3:13:0</b></li></ul> <dl><dd> (<a href="#VCAProd">Productivity optimisation of the VCA interface</a>, <a href="#AssocOutTrToIn">Unification the associated output transports to the input one AND the generic output transport connection</a>, <a href="#MessTrFix">Messages Translation — fixes of the conceptual changes of the previous update</a>)</dd></dl> <ul><li> OpenSCADA "Transport" subsystem: 18 => <b>19</b></li></ul> <dl><dd> (<a href="#AssocOutTrToIn">Unification the associated output transports to the input one AND the generic output transport connection</a>)</dd></dl> <ul><li> DAQ.DAQGate: 2.9 => <b>2.12</b></li> <li> DAQ.JavaLikeCalc: 5.4 => <b>5.6</b></li> <li> DAQ.LogicLev: 2.6 => <b>2.7</b></li> <li> {DAQ,Protocol}.ModBus: 3.4 => <b>3.7</b>, 2.9 => <b>2.10</b></li> <li> Archive.FSArch: 3.7 => <b>3.8</b></li> <li> Transport.Sockets: 4.3 => <b>4.5</b></li></ul> <dl><dd> (<a href="#AssocOutTrToIn">Unification the associated output transports to the input one AND the generic output transport connection</a>)</dd></dl> <ul><li> Protocol.SelfSystem: 1.9 => <b>1.10</b></li> <li> Protocol.UserProtocol: 1.5 => <b>1.6</b></li> <li> BD.PostgreSQL: 3.0 => <b>3.1</b></li> <li> UI.QTStarter: 5.12 => <b>5.14</b></li> <li> UI.QTCfg: 5.9 => <b>5.13</b></li> <li> UI.VCAEngine: 7.8 => <b>7.11</b></li></ul> <dl><dd> (<a href="#VCAProd">Productivity optimisation of the VCA interface</a>)</dd></dl> <ul><li> UI.Vision: 8.0 => <b>8.6</b></li> <li> UI.WebCfgD: 2.3 => <b>2.5</b></li> <li> UI.WebVision: 6.6 => <b>6.8</b></li> <li> LibsDB.OscadaLibs.LowDevLib: 1.4 => <b>1.5</b> <ul><li> mbBase: 1.0 => <b>1.2</b></li></ul></li> <li> LibsDB.OscadaLibs.base.initConAssociateTrs: 1.1 => <b>1.2</b></li> <li> LibsDB.vcaBase.Main <ul><li> RootPgSo: 2.5 => <b>2.6</b></li> <li> storeHouse: 1.1 => <b>1.3</b></li> <li> {grpGraph,grpGraph10}: 1.4 => <b>1.5</b></li> <li> grpCadr: 1.2 => <b>1.3</b></li> <li> ElCadr: 1.2 => <b>1.4</b></li> <li> ElViewGraph: 1.3 => <b>1.4</b></li> <li> ResultGraphEl: 1.1 => <b>1.2</b></li> <li> anShow: 1.2 => <b>1.3</b></li> <li> anShow1: 1.3 => <b>1.4</b></li> <li> TextLab: 1.1 => <b>1.2</b></li> <li> ImgLab: 1.1 => <b>1.2</b></li></ul></li> <li> LibsDB.vcaBase.mnEls <ul><li> El_Kran_Sh: 1.1 => <b>1.2</b></li> <li> Compressor: 1.1 => <b>1.2</b></li> <li> El_Kran_polozh: 1.0 => <b>1.1</b></li></ul></li> <li> LibsDB.vcaBase.doc <ul><li> docAlarmsRep: 1.6 => <b>1.7</b></li> <li> docRepDay: 3.1 => <b>3.2</b></li> <li> docRepMonth: 3.1 => <b>3.2</b></li> <li> docRepYear: 1.2 => <b>1.3</b></li> <li> docUsersSet: 1.7 => <b>1.8</b></li> <li> docDin: 1.2 => <b>1.3</b></li></ul></li></ul> <p><b><u><span id="VCAProd" title="#VCAProd">CONCEPTUAL > Productivity optimisation of the VCA interface</span> </u></b><br /> </p> <ul><li> FXI:UI.VCAEngine: <ul><li> Adapted to work in very big processing periods and disabling the periodic processing in whole: <ul><li> fixed in obtaining the period from the owner session widget;</li> <li> appended by setting the session side period with the User API function calcPer() of the session side widget, expanded by specifying the special period values: PerVal_Sess(0), PerVal_Parent(-1), PerVal_UserMin(PerVal_Dis(-2)), PerVal_SessDef(-3);</li> <li> "Period of the calculation" renamed to the "Periodic processing" and the renamed field is specified as a generic parameter, that moved to the main configuration tab and appended by the page widgets of the project and child widget of the library widget;</li> <li> the session object appended by the User API function period(), what returns the session processing period;</li> <li> the processing period was clarified in the session widget status.</li></ul></li> <li> Change of the attribute "alarmSt" appended by accompaniation the new event "ws_alarmChange".</li></ul></li> <li> UI.Vision: Adapted for renaming "Period of the calculation" to the "Periodic processing" and for moving to the main configuration tab. The previous field in the "Processing" tab is set to be hidden at that missing in the VCA model.</li> <li> LibsDB.vcaBase,ModelsDB.{AGLKS.vca,Boiler.St}: The VCA projects set to the calculation period 250 ms. Calculation of the control group of the VCA projects set to 1000 ms.</li> <li> LibsDB.vcaBase: <ul><li> wlb_Main.RootPgSo: Adapted to work in very big processing periods and disabling the periodic processing in whole: <ul><li> appended by continuing the immediately cycles before the container page opening at the start and after navigation, using the new event "usr_calc";</li> <li> appended by switching to the fast cycle at alarm blink, using the new function calcPer();</li> <li> switched to the processing period 1000 ms.</li></ul></li> <li> wlb_Main.ElCadr: Adapted to work in very big processing periods and disabling the periodic processing in whole: <ul><li> appended by continuing the immediately cycles using the new event "usr_calc";</li> <li> appended by switching to the fast cycle at alarm blink, using the new function calcPer();</li> <li> switched to the processing period -1 (parent).</li></ul></li> <li> wlb_Main.{grpGraph,grpGraph10}: Adapted to work in very big processing periods and disabling the periodic processing in whole: <ul><li> appended by continuing the immediately cycles using the new event "usr_calc";</li> <li> switched to the processing period -1 (parent);</li> <li> tracing period of the Diagram primitive linked also to the Widget period.</li></ul></li> <li> wlb_Main.ElViewCadr: Adapted to work in very big processing periods and disabling the periodic processing in whole: <ul><li> appended by switching to the fast cycle at cursor blink, using the new function calcPer();</li> <li> switched to the processing period -1 (parent);</li> <li> tracing period of the Diagram primitive linked also to the Widget period.</li></ul></li> <li> wlb_Main.storeHouse: Adapted to work in very big processing periods and disabling the periodic processing in whole: <ul><li> switched to the processing period -2 (disabled);</li> <li> appended by continuing the immediately cycles using the new event "usr_calc".</li></ul></li> <li> wlb_Main.ElViewGraph: Adapted to work in very big processing periods: <ul><li> appended by continuing the immediately cycles in waiting the values appear, using the new event "usr_calc";</li> <li> appended by switching to the fast cycle at cursor blink, using the new function calcPer();</li> <li> the calculation set in 2000 ms due to need of that updating at the trend cursor changing.</li></ul></li> <li> wlb_Main.grph_panel: Appended by storing the tracing period of the linked Diagram primitive. Switched to the processing period -1 (parent).</li> <li> wlb_Main.{grpCadr,ResultGraphEl}: Adapted to work in very big processing periods and disabling the periodic processing in whole: <ul><li> switched to the processing period -1 (parent);</li> <li> tracing period of the Diagram primitive linked also to the Widget period.</li></ul></li> <li> wlb_Main.{TextLab,ImgLab},wlb_mnEls.{El_Kran_polozh,El_Kran_Sh,Compressor}: Adapted to work in very big processing periods and disabling the periodic processing in whole: <ul><li> appended by switching to the fast cycle at cursor blink, using the new function calcPer();</li> <li> switched to the processing period -1 (parent).</li></ul></li> <li> wlb_Main.{anShow,anShow1}: switched to the processing period -1 (parent) and appended by switching to the fast cycle (500 ms) at focus and alarm blink.</li> <li> wlb_doc.{docRepDay,docRepMonth}, wlb_Main.{graphSelPrm,doc_panel,accept,treeSelect,cntrPaspExt}, wlb_Main.{ViewCadr,ResultGraph}: Switched to the processing period -1 (parent).</li> <li> wlb_doc.{docDin,docAlarmsRep}: Switched to the processing period -2 (disabled).</li> <li> wlb_doc.docRepMonth: Excluded from execution at stopping.</li> <li> wlb_doc.docRepYear: Appended by one immediately cycle after f_start, using the new event "usr_calc". Disabled for the periodic processing.</li> <li> wlb_Main.userManager: Disabled in the periodic processing.</li></ul></li></ul> <p><b><u><span id="AssocOutTrToIn" title="#AssocOutTrToIn">CONCEPTUAL > Unification the associated output transports to the input one AND the generic output transport connection</span> </u></b><br /> </p> <ul><li> FIX: Unification the associated output transports processing of the input Sockets transport for: <ul><li> Transport: <ul><li> the function TTransportIn::assTrO() renamed to TTransportIn::associateTrO() and expanded by creation new transports at the first and next removing for stopped ones, and the just created transports appended by reading the initial connection ID with it registering in the connection parameter "initConID";</li> <li> the new function TTransportIn::associateTr() and its UserAPI variant SYS.Transport["Modul"]["in_Transp"].associateTr() of obtaining the output transport object at its Connection ID;</li> <li> the associated output transports from an input one appended by removing at the inactivity at the TTransportIn::keepAliveTm();</li> <li> the new UserAPI function SYS.Transport["Modul"]["in_Transp"].associateTrsList() as a correct naming variant to assTrsList();</li> <li> the output transport object appended by the UserAPI functions conPrm() and setConPrm() of accessing the connection parameters;</li> <li> changing the name template in "inA_ID_N" of the associated output transports to the input one;</li> <li> FIX:Sockets: the input transports prevented at spare socket closing in the initiative mode; the new initiative connection limit checking moved to the main limits checking part.</li></ul></li> <li> LibsDB.OscadaLibs: tmplib_base.initConsAssignTrs: Renamed to initConAssociateTrs and adapted to use the function conPrm("initConID") and associateTrsList().</li></ul></li> <li> The generic output transport connection: <ul><li> Transports: <ul><li> the new function TTransportS::outAt() and its UserAPI variant SYS.Transport.outAt() of the output transport generic obtaining from the unified address;</li> <li> TTransportS::extHost() moved to use TTransportS::outAt().</li></ul></li> <li> Transport,UI.{QTCfg,WebCfgD}: The field "Transport" of the external hosts table expanded for specifying the transport address in the unified-common form and expanded by the selection specifying per item with support such behaviour in the common configurators.</li> <li> DAQ.ModBus: The first one what moved to use the unified connection to the output transport.</li> <li> LibsDB.OscadaLibs: tmplib_DevLib.mbBase: Switched to use TTransportS::outAt().</li></ul></li></ul> <p><b><u><span id="MessTrFix" title="#MessTrFix">CONCEPTUAL > Messages Translation (fixes of the <a href="Release_0.9.html#MessTr" title="Special:MyLanguage/Documents/Release 0.9">conceptual changes of the previous update</a>) </span> </u></b><br /> </p> <ul><li> FIX:SYS: <ul><li> FIX: Prevented from propagating the base language column of the translations table "Tr" in the SINGLE translation mode and the base language.</li> <li> FIX: The string EVal value "<EVAL>" appended as not translated one to prevent that translation in VCAEngine for NULL DB values.</li> <li> FIX: The static messages translation function improved in omitting empty messages for the binary strings with only zero symbols.</li> <li> TFunction::operator=() finished in adaption to the IO name translation.</li> <li> Writing to the configuration in XML prevented in doubling the translated field for the configuration contexts.</li></ul></li> <li> FIX:DB: <ul><li> FIX: The translation prevented from propagating the base language column in the SINGLE translation mode for already translated DBs, by appending for different detection the translated DBs in whole and the translated column presence.</li> <li> FIX: Fixed for the DB syntax error at cleaning the translation fields equal to the base.</li> <li> FIX: Fixed in writing untranslated strings, by clearing all translation and writing to base.</li> <li> FIX: Prevented in the DBs service termination, as the transactions closing, at some wrong DB presence.</li> <li> FIX: The translation setting prevented in setting double messages to the base messages; what completing not translation "<EVAL>".</li> <li> FIX: Absence the flag TFld::TransltText means as the translation complete missing for that field.</li></ul></li> <li> FIX: The Translation Manager: <ul><li> FIX: prevented in the marked base changing to a human readable form at all, since that used as a key;</li> <li> the notification about fixes was moved to pass them for the user through the expanded Control Interface warnings;</li> <li> the flag "chkAndFix" split to "chkAndFix" and "chkAndFixMB";</li> <li> the translation configuration fields TrPassN, TrChkAndFix, TrChkAndFixMB moved to the dynamic variables due to there is no need of their store;</li> <li> the translation mark "<<<Unmatched sources>>>" renamed to "<<<SEVERAL VARIANTS>>>".</li></ul></li> <li> FIX:DAQ::ParamTmpl: <ul><li> FIX: Fixed for the IO name edition in the non basic mode of the dynamic translation.</li> <li> FIX: Fixed in the flag IO::TransltText processing for strings.</li> <li> FIX: The service request "list:/DAQ/{MOD}/{CNTR}/prm_{PRM}[/prm_{PRM}]/%2fserv%2fattr" fixed in the attribute name translation.</li></ul></li> <li> FIX:Transports,UI.{QTCfg,Vision,WebCfgD}: The function TTransportS::extHostList() appended by an argument "lang" to receive translated names of remote hosts.</li> <li> FIX:Protocol.ModBus: Fixed-adapted in the IO name dynamic translation.</li> <li> FIX:UI: <ul><li> FIX:VCAEngine: The dynamic translation of tr() fixed in the translation loss after the translation cache cleaning and placing the spare messages to the project's table "Trs".</li> <li> FIX:WebUser: Fixed-adapted for the dynamic translation of the IO names.</li></ul></li></ul> <p><b><u>OpenSCADA libraries and projects</u></b><br /> </p> <ul><li> FIX:LibsDB.OscadaLibs: <ul><li> The library tmplib_LowDevLib appended by the template "BT: RDTech UM24C, UM25C and UM34C (RDTech)".</li> <li> The library tmplib_DevLib appended by the template "Slot LTD devices (SLOT)".</li></ul></li> <li> FIX:LibsDB.vcaBase: <ul><li> wlb_Main.storeHouse: Significantly expanded by: implementation the procedures support for the logical columns; implementation the report of all visible table and a selected record.</li> <li> wlb_Main.RootPgSo: The "Notification: type 2 (TextSpeech) (notify2)" method expanded by the RHVoice support and appended by the builtin syntax highlight for BASH. The "Notification: type 1 (Buzzer) (notify1)" method rewrote for the long samples playback in the background, that is with control the sample playing stop and restarting only in the case. Appended also by the syntax highlight.</li> <li> FIX:wlb_doc.docRepDay: Some improved and appended by: the columns grouping in the header, string values direct reading, colors disable in the table at EVAL scale.</li> <li> wlb_doc.docUsersSet: Added by the "Message category (messCat)" configuration.</li></ul></li></ul> <p><b><u>API</u></b><br /> <i>!!!!:Changes</i>: </p> <ul><li> SYS,UI.{QTCfg,WebCfgD}: The Control Requests code TError::Core_CntrWarning expanded for the warning messages pass in the attribute "mtxt" with the main data storing.</li> <li> SYS: <ul><li> The functions TSYS::id(), TSYS::name() and TSYS::user() were set as constant.</li> <li> The definitions SEC_XT, SEC_WR, SEC_RD moved from the file tsecurity.h to tcntrnode.h and used there also.</li> <li> ctrChkNode() cleaned for the argument "warn" due to the response attribute "force" is deprecated.</li> <li> The Control Interface request "chlds:/{nPath}/%2fobj" appended by not creating the empty icon tags "ico".</li> <li> NSTR_BUF_LEN(50) split to CFG_A_LEN (100) for using in the maximum attribute size of the configuration cell in XML.</li> <li> The argument "init" removed from setIcoDir(), setDocDir(), setLang() during moving under the generic clearing mechanism.</li> <li> Appending the enumeration MdfSYSFlds by the fields: MDF_Name, MDF_MESS, MDF_TR, MDF_DBG, MDF_RD.</li> <li> The TSYS::ShieldSimb encoding of the function TSYS::strEncode() renamed to TSYS::ShieldSymb, moved to the function TSYS::strDecode() and in TSYS::strEncode() appended by the common one. And the UserAPI function SYS.strDecode() appended by the decoding method "ShieldSymb".</li></ul></li> <li> DB: The Control Interface request "call:/BD/{MOD}/{DB}/%2fserv%2fSQL" appended by processing the "intoTrans" attribute as EVAL at missing and clearing the request text in the response.</li> <li> DAQ::Value: The service request "get:/serv/attr" of the Control Interface prevented from clearing the "el" subtags at missing the representing attribute, them value is set to EVAL for true mark that as processed in DAQ.DAQGate and don't continue them request in each cycle.</li> <li> Archives-History: The value archive link type "Passive param. attribute (TVArchive::PassiveAttr)" renamed to "DAQ attribute (TVArchive::DAQAttr)". The value archive link type "Active param. attribute" renamed to "Active DAQ attribute" with that mark as DEPRECATED.</li> <li> Transports: The function TTransportIn::assTrO() renamed to TTransportIn::associateTrO(). The TTransportOut::isNetwork() virtual function sign moved to the TTypeTransport object with linking the old one to new one, for marking all module as the network one.</li> <li> UI.VCAEngine: The Control Interface request "get:/UI/VCAEngine/%2fserv%2fwlbBr" appended by not creating the empty icon tags "ico". The request "connect:/serv/sess" appended by the attribute "onlyMy" for connection only to own sessions, and the request "get:/ses/ses" appended by the same attribute for listing only own ones.</li></ul> <p><i>Appends</i>: </p> <ul><li> SYS: <ul><li> The new function TSYS::ico() of the icon obtaining.</li> <li> Names of the security standard permissions appended by _W_W_W(0222).</li> <li> TError: expanded by new constructors with the "const string &" type arguments for no limiting strings and the convenience.</li> <li> TRegExp: <ul><li> Appended by a new option 'U' (ungreedy) of the greedy mode toggle, together the User API method "ungreedy".</li> <li> Appended by the function mode(), the argument "mode" in setPattern() and the enumeration "Mode" with the items: MD_8, MD_16, MD_32, MD_WCHAR, MD_SAVE.</li> <li> The search() function of the object appended by an argument "length" of the measured block size return.</li></ul></li> <li> XMLNode: The loading flags appended by the no flag item LD_NO.</li> <li> TMess: Appended by the common label labStdOutTrs() for address format of the unified output transport function.</li></ul></li> <li> DAQ: <ul><li> The DAQ item linking functions expanded by the base node specifying in the attribute "ndBase", for: ctrListPrmAttr(), daqAt(), prmAt(), attrAt().</li> <li> The object TPrmTempl::Impl appended by the new function archAttrs() of updating-archiving attributes of the LogicalLevel.</li></ul></li> <li> Archives-History: The value archive object TVArchive appended by declaration the enumeration ServReqDtMode for the Control Interface request "get:/Archive/va_{ARCH}/%2fserv%2fval".</li> <li> Transports: <ul><li> The new function TTransportIn::associateTr() and its UserAPI variant SYS.Transport["Modul"]["in_Transp"].associateTr().</li> <li> The new function TTransportS::outAt() and its UserAPI variant SYS.Transport.outAt().</li> <li> The new UserAPI function SYS.Transport["Modul"]["in_Transp"].associateTrsList() as a correct naming variant to assTrsList().</li> <li> The output transport object appended by the UserAPI functions conPrm() and setConPrm() of accessing the connection parameters.</li> <li> The function TTransportS::extHostList() appended by an argument "lang" to receive translated names of remote hosts.</li> <li> The "in_" and "out_" prefix moved to the definitions STR_IN_PREF and STR_OUT_PREF respectively.</li> <li> The TTransportS object appended by the enumeration LogType with the items: LTP_BinaryText, LTP_Binary, LTP_Text.</li></ul></li> <li> UI.VCAEngine: <ul><li> Appended by setting the session side period with the User API function calcPer() of the session side widget, expanded by specifying the special values: PerVal_Sess(0), PerVal_Parent(-1), PerVal_UserMin(PerVal_Dis(-2)), PerVal_SessDef(-3).</li> <li> The session object appended by the User API function period(), returning the session periodic processing.</li> <li> The attribute "alarmSt" change appended by accompaniation by the new event "ws_alarmChange".</li></ul></li></ul> <p><b><u>SYS</u></b><br /> </p> <ul><li> FIX:Building: <ul><li> FIX:configure.ac: Core library version risen to 3:13:0 and the program version risen to 0.9.6. The module version of the subsystem "Transport" risen to 19.</li> <li> FIX:Debian: Improving and fixing the DEB-packages signing for all repositories.</li></ul></li> <li> *: Most close(), iconv_close(), dlclose(), pclose() functions appended by checking the result and warning at problems.</li> <li> *: All system (SYS) configuration parameters adapted for true handling the default value.</li> <li> .,DAQ.JavaLikeCalc: Getting help from the second line for the Control Interface appended in: description of the element fields (TFld) with DAQ-values; name of function IOs (TFunction) with links and attributes builder of the DAQ Logical Level.</li> <li> FIX: Rewrote the function TCntrNode::nodeAt() to prevent of call the virtual chldAt() under the lock mChM, so preventing some dead locks in the virtual definitions of chldAt().</li> <li> Revised for all templates in the folders =Tmpl=.</li> <li> FIX: The tab "Station" of the main page of the OpenSCADA Control Interface appended by the system time information and commonly restructured.</li> <li> FIX:data/openscada-proj.in: <ul><li> Expanded by the new environment variable OSCD_TAR_Args of defining extra <b>tar</b> arguments like to --exclude and it was set to the default value "--exclude=lock --exclude=ARCHIVES".</li> <li> FIX: Fixed in description and using the environment variables OSCD_TAR_ComprPrg and OSCD_BackLim.</li></ul></li> <li> During unification the common project icon obtaining through using the project name and ID there performed: <ul><li> the Base Language Name used also for obtaining the icon, so now checked: The Translated Name, the Base Language Name, ID;</li> <li> the icon obtaining mechanism moved in a new separated function TSYS::ico().</li></ul></li> <li> TRegExp: Appended by the 16 and 32 modes support by the pcre16 and pcre32 libraries respectively and only for the search() function currently.</li></ul> <p><b><u>DB</u></b><br /> </p> <ul><li> FIX:.,PostgreSQL: Processing the table emptiness some softened during problems in DB.PostgreSQL about that, that is no exception generated now. <ul><li> FIX:PostgreSQL: Switched to the standard way of detection the missing Tables with them creation at "toCreate" and the exceptions generating else, so preventing the message "Table is empty.".</li></ul></li></ul> <p><b><u>DAQ</u></b><br /> </p> <ul><li> The Logical Level linking appended by a form of the address representing as the prefixed path "prm:/node/node", so with support of the relative addressing at "." and "..": <ul><li> the DAQ item linking functions expanded by the base node specifying in the attribute "ndBase", for: ctrListPrmAttr(), daqAt(), prmAt(), attrAt();</li> <li> the implementation object TPrmTempl::Impl of the Logical Level of the DAQ-template expanded for the new linking support.</li></ul></li> <li> FIX: Setting the LogicalLevel links prevented from cleaning all the string after the space at the link constants "val:".</li> <li> ModBus: Appended by the option "e" for the register endian switch to LE for generic and BE for strings. The string extension of the registers appended by the input charset conversion. Appended by the parameter "Omit cycles for read back of written" for control such feature apart from the asynchronous writing.</li> <li> FIX:DAQGate: <ul><li> FIX: The message categories in catsPat() of obtaining the data source messages of the Controller Object switched to generate own detailed rules of the regular expression from the specified remote controllers — to prevent very redundant messages obtaining.</li> <li> FIX: Improved-fixed in the Controller Alarm status formation for multiple stations, when ALARM it is at missing connection of all stations.</li> <li> The sync() function of the controller object rewrote completely in the "Removing remotely missed parameters" section for: <ul><li> processing the parameter's representing stations: removing completely for missing stations and parameters with no station;</li> <li> removing disabled parameters and the logical containers at the flag "Allow the automatic removal of parameters and attributes".</li></ul></li> <li> The function TMdContr::messSet() of the DAQ related messages setting adapted to support attributes in the parameter address for significant attributes of the generic-container parameters, that is needed for the messages transmission from the up stations to the down ones.</li></ul></li> <li> JavaLikeCalc: Expansion-finishing the object's cycle implementation "<b>for({var} in {obj}) {body of the loop}</b>" by the possibility of pointing as the Object <obj> of the included ones through the properties or from the results. The constant values appended by "null" as a synonym to EVAL (EVAL_REAL).</li> <li> OPC_UA: Finished in the writing support through custom flags of the Standard mode and the type obtaining from IO for the Logical mode.</li></ul> <p><b><u>Archives-History</u></b><br /> </p> <ul><li> .,DAQ.{LogicLev,ModBus,OPC_UA}: Finished the unification of archiving at the Logical Level sources when used only the direct-passive archiving: <ul><li> the object TPrmTempl::Impl appended by the new function archAttrs() of updating-archiving attributes of the LogicalLevel;</li> <li> the value archive link type "Passive param. attribute (TVArchive::PassiveAttr)" renamed to "DAQ attribute (TVArchive::DAQAttr)";</li> <li> the value archive link type "Active param. attribute" renamed to "Active DAQ attribute" with that mark as DEPRECATED.</li></ul></li> <li> The "Messages" tab appended by a function of automatic clearing old Alarms from the Active Alarms Table at the specified days depth.</li> <li> FIX:FSArch: <ul><li> FIX: Prevented for access to files[iA] in ModVArchEl::setValsProc() outside the lock using the read-lock switching.</li> <li> FIX: Prevented for access to "files" in ModMArch::checkArchivator() outside the lock.</li> <li> FIX: Files accessing locks completely revised for including the packing/unpacking, new files creation, removing old ones under the WR lock space including also the conditions checking. Also removed for the relocks in cycles and at indexes.</li></ul></li></ul> <p><b><u>Transports</u></b><br /> </p> <ul><li> FIX: The output transports appended by the force stopping at the object system disable-disconnection, not in destructors what is late then there can be lost the socket handlers.</li> <li> The IO log of the transports appended by the data modes "Binary & Text", "Binary", "Text", and by it writing to a file for very big ones at pointing the log size -1.</li> <li> FIX:Sockets: Fixed in processing the not complete writing for the Input part, when the message cuts on the TCP transmitter buffer size. The input buffer size of the Input part bound to the hardware receiver buffer size control and the internal one just frozen to the standard string buffer length since that is not critical and need no control.</li></ul> <p><b><u>Transport Protocols</u></b><br /> </p> <ul><li> FIX:SelfSystem: Significantly reviewed and fixed in the external-output connections implementation, appended by checking limit the header size.</li> <li> ModBus: Appended by the option "e" for the register endian switch to LE for generic and BE for strings.</li> <li> HTTP: Appended by the HTTP Attributes of disabling the WEBBrowser Cache in whole: "Cache-Control: no-cache, no-store, must-revalidate", "Pragma: no-cache", "Expires: 0".</li> <li> UserProtocol: The input part expanded by a possibility of schedule the user procedures call in the service cycle, for the background processing of some data; the Object's attribute "This (this)" was appended here also.</li></ul> <p><b><u>User Interface</u></b><br /> </p> <ul><li> QTStarter,QTCfg,Vision: The common Syntax Highlighter in SnthHgl::rule() switched to the main work using PCRE in TRegExp, since that is 5 TIMES FASTER and very richer comparing to QRegExp; and QRegExp left to be automatically enabled at missing the PCRE 32/16 libraries. The Qt-generic library (lib_qtgen) appended by the static-external functions getFont() and getColor() from UI.Vision and by the object SnthHgl from UI.Vision and UI.QTCfg.</li> <li> QTCfg,WebCfgD: Unified in notification the errors of the Control Interface during improvement the code TError::Core_CntrWarning and QMessageBox appended of the detailed text at the message longer for 255.</li> <li> QTStarter: Appended by the display sessions control, that is the sessions restore.</li> <li> QTCfg: Appended by the Favorite pages implementation. The image element appended by a function of clearing the image completely.</li> <li> FIX:Vision: <ul><li> FIX: All control requests "<info>" appended by checking the child nodes presence to prevent crashes in some cases.</li> <li> Appended by the possibility of call remote station interfaces by selecting the remote station in a dialog, for what the user selection dialog was expanded.</li> <li> The text areas with the syntax highlighting appended by the builtin variant.</li> <li> The image elements (icons) of the item dialogs appended by a button menu with the functions: Save, Load, Clear.</li> <li> The Widget Attributes edition table appended by the multiline edition for the "Name" column and the context help loading for that.</li> <li> The popup menu of the project, the project pages, the widget libraries and the library widgets in appending widgets from the libraries removed for limit of the libraries here in 20 items by moving all them to a new separated menu item "... from the Library".</li></ul></li> <li> FIX:VCAEngine: <ul><li> Icons of the projects and the widget libraries switched to download the common project icon at missing local.</li> <li> The widget libraries adapted to interhost copying.</li> <li> FIX: The Document primitive generation appended by limiting the repeating blocks size in limUserFile_SZ (10MB).</li> <li> FIX: Fixed in the correct treating of the project pages and the library widgets with initially wrong parent addresses, for don't remove child widgets and change them parent at pointing the correct parent address.</li></ul></li> <li> FIX:WebVision: <ul><li> Appended by the export implementation for the "Document - HTML,CSV" and "Table CSV".</li> <li> Appended by the printing implementation for the "Document" and "Main Page".</li> <li> The type Table of the primitive FormEl added by tearing off the table header at big tables scrolling down.</li> <li> FIX: The type Table of the primitive FormEl improved and fixed for: <ul><li> setting the CSS property "white-space" to "pre-wrap";</li> <li> setting the color changes under the selected cells;</li> <li> preventing the focus loss just after entry to the cell editing;</li> <li> fixing the boolean value setting at entry to the cell editing;</li> <li> the table refitting at growing the column string length.</li></ul></li> <li> The included pages closing set after several (4) row appears — to prevent of closing all pages at fast navigation;</li> <li> Improved in processing the connections of the ordinal users to own VCA-sessions.</li></ul></li> <li> WebUser: Expanded by a possibility of schedule the user procedures call in the service cycle, for the background processing of some data.</li></ul> <h4><span class="mw-headline" id="Service_updates_2"><span class="mw-headline-number">7.3.1</span> Service updates</span></h4> <ul><li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2942" rel="nofollow noreferrer noopener" target="_blank">the fourth (4) at 20.12.2023</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2921" rel="nofollow noreferrer noopener" target="_blank">the third (3) at 13.09.2023</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2912" rel="nofollow noreferrer noopener" target="_blank">the second (2) at 12.08.2023</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2899" rel="nofollow noreferrer noopener" target="_blank">the first (1) at 25.06.2023</a>.</li></ul> <h3><span class="mw-headline" id=".5B22.12.7529.2F22.02.2022.5D_.D0.9F.D0.AF.D0.A2.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">7.4</span> [22.12.7529/22.02.2022] ПЯТОЕ обновление</span></h3> <p>Ðто обновление <a href="Release_0.9.html" title="Special:MyLanguage/Documents/Release 0.9">релиза 0.9 LTS</a> иÑправлÑет около 50 ошибок и добавлÑет ÐœÐОЖЕСТВО улучшений Ñ Ð½ÐµÑколькими значительными-концептуальными, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ целиком можно ознакомитьÑÑ Ð² <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2831" rel="nofollow noreferrer noopener" target="_blank">протоколе изменений обновлениÑ</a>. </p><p><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> <b><u>Significant actions of the developer of the OpenSCADA modules on the update</u></b><br /> </p> <ul><li> FIX:SYS.TMess: Type of labStor(), labSecCRON(), labSecCRONsel(), labTaskPrior(), labMessCat() changed to "string".</li></ul> <dl><dd> <b><span style="color: red">=</span></b>> obligatory revise of using the label functions since the compiler mayn't to say an error in functions like to printf(), TSYS::strMess() but that module will be crashed.</dd></dl> <p><b><u><a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Sub-projects/Automation_Linux_distributive" title="Special:MyLanguage/Sub-projects/Automation Linux distributive">Automation Linux distributive of the project OpenSCADA</a></u></b><br /> </p> <ul><li> appending Debian 11 as the distributive base;</li> <li> moving of building the Debian 10,9 base to the Debian 11 environment, then expanding the installer variants;</li> <li> updating TDE to 14.0.11 and next 14.0.12;</li> <li> fixing the plymouth problems, then the installations are safe now and "/var/boot.log" doesn't grow;</li> <li> fixing Digikam, TDEPim, KArm and kdiff3, than appending the new patched packages "tdepim-trinity", "digikam-trinity" and kdiff3-trinity to the distributive collection.</li></ul> <p><b><u>Main WWW-resources of the project — <a class="external text" href="http://oscada.org" rel="nofollow noreferrer noopener" target="_blank">Site</a></u></b><br /> </p> <ul><li> significant changes in the Site common interface: <ul><li> the Wiki-pages call in IFRAME appended for a waiting screen and an animated image of representing the loading wait; the opened pages vertical size was precisely fitted also at three attempts;</li> <li> the content window horizontal size limited in 1000 pixels;</li> <li> moving the vertical submenu of the main menu from the static left position to the call at an options button on the left of the main menu;</li> <li> moving to the top right for the service panel with buttons of the language select, call the print variant and the Google-search field;</li> <li> dividing twice the top logo image;</li> <li> the Google-search field: width expanding, moving up and hide under a search icon.</li></ul></li> <li> <a class="external text" href="http://oscada.org/en/news/single-page/article/changing-the-registration-conditions-and-rules-on-the-openscada-site/" rel="nofollow noreferrer noopener" target="_blank">changing the registration conditions and rules on the OpenSCADA site</a>;</li> <li> the registration module finished in the translation to Ukrainian and enabled for acknowledge the new users registration by the site administrator.</li></ul> <p><b><u>New and significantly updated parts</u></b><br /> </p> <ul><li> OpenSCADA Core: 3:11:0 => <b>3:12:0</b></li></ul> <dl><dd> (<a href="#DataStorage">Common Conception of the Data Storage</a>, <a href="#MessTr">Messages Translation</a>, <a href="#MessSubLev">Message Sublevels {Main}[0...9] and Unification for the User Messages Transferring</a>)</dd></dl> <ul><li> OpenSCADA "BD", "DAQ" subsystems: 14 => <b>15</b>, 13 => <b>14</b></li></ul> <dl><dd> (<a href="#CommonSQL">Significant Unification the Common SQL-code in the OpenSCADA Core</a>)</dd></dl> <ul><li> DAQ.DAQGate: 2.5 => <b>2.9</b></li></ul> <dl><dd> (<a href="#MessRedundTr">redundancy and the messages transferring</a>, <a href="#DAQGate">asynchronous writing mode implementation</a>)</dd></dl> <ul><li> DAQ.JavaLikeCalc: 5.1 => <b>5.4</b></li> <li> DAQ.Siemens: 4.2 => <b>4.4</b></li> <li> {DAQ,Protocol}.ModBus: 3.3 => <b>3.4</b>, 2.8 => <b>2.9</b></li> <li> {DAQ,Protocol}.OPC_UA: 2.5 => <b>2.6</b>, 2.1 => <b>2.2</b></li> <li> Archive.FSArch: 3.6 => <b>3.7</b></li> <li> Archive.DBArch: 3.0 => <b>3.1</b></li> <li> Transport.SSL: 3.3 => <b>3.4</b></li></ul> <dl><dd> (<a href="#SSL">pointing the certificates and the key directly from an external file with the input transports restarting at it change</a>)</dd></dl> <ul><li> Protocol.HTTP: 3.6 => <b>3.8</b></li> <li> Protocol.UserProtocol: 1.4 => <b>1.5</b></li> <li> BD.DBGate: 1.0 => <b>1.1</b></li> <li> BD.SQLite: 3.0 => <b>4.0</b></li> <li> BD.MySQL: 3.5 => <b>4.0</b></li> <li> BD.PostgreSQL: 2.5 => <b>3.0</b></li> <li> BD.FireBird: 2.5 => <b>3.0</b></li> <li> UI.QTStarter: 5.10 => <b>5.12</b></li> <li> UI.QTCfg: 5.6 => <b>5.9</b></li> <li> UI.WebCfg: 1.8 => <b>2.0</b></li> <li> UI.WebCfgD: 2.1 => <b>2.3</b></li> <li> UI.VCAEngine: 7.1 => <b>7.8</b></li></ul> <dl><dd> (<a href="#VCAEngine">finishing of implementing the changes obtaining in the runtime mode by the clocking cycles through</a>)</dd></dl> <ul><li> UI.Vision: 7.14 => <b>8.0</b></li></ul> <dl><dd> (<a href="#Vision">early opening the restored and specified pages in the init procedure</a>)</dd></dl> <ul><li> UI.WebUser: 1.4 => <b>1.5</b></li> <li> UI.WebVision: 6.2 => <b>6.6</b></li> <li> LibsDB.OscadaLibs.base.anUnif: 2.1 => <b>2.4</b></li> <li> LibsDB.OscadaLibs.base.anUnifSt: 1.2 => <b>1.3</b></li> <li> LibsDB.OscadaLibs.base.digAlarm: 1.2 => <b>1.3</b></li> <li> LibsDB.OscadaLibs.base.codeState: 1.3 => <b>1.4</b></li> <li> LibsDB.OscadaLibs.servProc.docOffLine: 1.2 => <b>1.3</b></li> <li> LibsDB.OscadaLibs.Controller.test: 1.1 => <b>1.2</b></li> <li> LibsDB.vcaBase.Main <ul><li> alarmsAct: 1.1 => <b>1.3</b></li> <li> alarmsSt: 1.2 => <b>1.4</b></li> <li> RootPgSo: 2.4 => <b>2.5</b></li> <li> ElCadr: 1.1 => <b>1.2</b></li> <li> TextLab,ImgLab: 1.0 => <b>1.1</b></li> <li> graphSelPrm: 1.4 => <b>1.5</b></li> <li> objProps: 1.1 => <b>1.2</b></li> <li> cntrRegul: 1.1 => <b>1.2</b></li> <li> storeHouse: 1.0 => <b>1.1</b></li></ul></li> <li> LibsDB.vcaBase.mnEls.El_Kran_Sh,Compressor: 1.0 => <b>1.1</b></li> <li> LibsDB.vcaBase.doc <ul><li> docAlarmsRep: 1.5 => <b>1.6</b></li> <li> docUsersSet: 1.5 => <b>1.7</b></li></ul></li></ul> <p><b><u><span id="DataStorage" title="#DataStorage">CONCEPTUAL > Common Conception of the Data Storage</span> </u></b><br /> </p> <ul><li> the Conception is commonly unified in the direct storage specification and definition the Generic Storage "*.*" as a combination of the Configuration File and the work Data Base, when the Configuration File is the priority one for accessing the allowed data and the work Data Base for new data.</li> <li> TBDS::{dataSeek,dataGet,dataSet,dataDel,genDBGet,genDBSet}() moved to the bit flags TBDS::ReqGenFlg;</li> <li> the TBDS::dbList() moved to the bit flags TBDS::DBLsFlg;</li> <li> TCntrNode appended of the functions storage() and setStorage() for tracking the availability of node data in different storages and offer a queue of the storages for the mechanism of sequentially removing duplicates, and they also used in the object functions DB(), fullDB(), setDB();</li> <li> the objects are adapted for tracking the multiple storages and are appended of the sequentially removing duplicates: Security.{User,Group}, Transport.{Input,Output}, DAQ.{Controller,TemplateLib}, Archives.{VArchive,VArchiver,MArchiver}, DAQ.JavaLikeCalc.Lib, Protocol.{ModBus,OPC_UA,UserProtocol}.*, UI.WebUser.Page, UI.{VCAEngine,Vision}.{WdgLib,Proj};</li> <li> the generic parameters accessing functions TBDS::genDBGet() and TBDS::genPrmSet() moved under the new storage conception using TBDS::dataGet() and TBDS::dataSet() respectively, and renamed to genPrmGet() and genPrmSet() everywhere;</li> <li> the objects moved to use the new function dataDelTbl(): DAQ.{TController,TPrmTmplLib,JavaLikeCalc,LogicLev,BlockCalc,ModBus,Siemens,OPC_UA}, Archive.DBArch, UI.{VCAEngine,Vision}.{WdgLib,Proj};</li> <li> the functions moved and used everywhere as static ones: TBDS::{dbList,dataSeek,dataGet,dataSet,dataDel,dataDelTbl}();</li> <li> the spare storage addresses with tables were shortened to the standard storage address with the table name unification, where the previous not standard names leave to be edited up to the 1.0 release, for the objects: SYS, DAQ.{TemplateLib,JavaLikeCalc.Lib}, UI.{VCAEngine,Vision}.{WdgLib,Proj};</li> <li> switched to select only DBs: Archive.DBArch, Protocol.HTTP;</li> <li> the root object of the DB subsystem TTypeBD appended of the DB priority base [0...9] in the generic storages list and the Data Base object TBD appended of the configuration field "Priority in list" to control order of the databases from TBDS::dbList(), than control the loading order;</li> <li> the "Work DB" configuration field changing disabled on the modification marking of all nodes;</li></ul> <p>CONFIGURATION FILE </p> <ul><li> the configuration parameters and tables implementing in the common context of the TBDS::data{Seek,Get,Set}() functions;</li></ul> <p>REFACTORING THE TCntrNode FLAGS </p> <ul><li> TCntrNode::{chldDel,nodeDis}() moved to direct use the new TCntrNode::EnDisFlag;</li> <li> the flags TCntrNode::{NodeRemove,NodeRemoveOnlyStor} used everywhere of the function postDisable() checking and chldDel() call.</li></ul> <p><b><u><span id="CommonSQL" title="#CommonSQL">CONCEPTUAL > Significant Unification the Common SQL-code in the OpenSCADA Core</span> </u></b><br /> </p> <ul><li> unification the table structure control by the structure item object TTable::TStrIt;</li> <li> refactored, initially on SQLite, in the request lists form in the separate list variables;</li> <li> common SQL-code moving to the functions: fieldSQLSeek(), fieldSQLGet(), fieldSQLSet(), fieldSQLDel();</li> <li> declaration in the core for the service definitions, methods and functions to the common SQL-code: SEEK_PRELOAD_LIM, tblStrct, seekSess, connRes, fieldFix(), getSQLVal(), setSQLVal();</li> <li> the fieldFix() appended an argument "langLs" of specifiyng need languages instead the argument "trPresent";</li> <li> propagating in such way of the last MULTILANGUAGE support code in DB.SQLite.</li></ul> <p><b><u><span id="MessTr" title="#MessTr">CONCEPTUAL > Messages Translation</span> </u></b><br /> TFunction::IO object appended the flag IO::TransltText of marking the translate String IO directly: </p> <ul><li> the types "String (translate)" and "Text (translate)" appended in: template object of DAQ-Parameter, TFunction object of DAQ.JavaLikeCalc, UI-Attributes of UI.VCAEngine;</li> <li> the flag TFld::TransltText used in: value getting of TValue of DAQ-Atributes, DAQ-Attributes translation of DAQ.{LogicLev,ModBus,OPC_UA,Siemens}, UI-Attributes translation of UI.VCAEngine;</li> <li> set to the type "String (translate)" for: the field "colDscrCustNames" of wlb_Main.{alarmsAct,alarmsSt}.</li></ul> <p>Expanding by the language for the execution environment of the user functions of the OpenSCADA object, for functions like to strftime(): </p> <ul><li> the object TCntrNodeObj, the function TCntrNode::objFuncCall() and TConfig::objFunc() expanded in the argument "user" renaming to "user_lang" with pointing language in the second line;</li> <li> DAQ.JavaLikeCalc: the TCntrNodeObj execution appended of the language;</li> <li> SYS.strftime() appended of execution from the pointed language-locale.</li></ul> <p>TUIS,UI.{QTCfg,Vision}: docGet() expanded by the language in the second line.<br /> FIX: The "Translations" tab expansion and fixing for: </p> <ul><li> the option "check for mismatch (TrChkUnMatch)" renamed to "check/fix (TrChkAndFix)" and expanded of the translation fixing functions: by propagation the translations to empty sources, clearing the double to base translations, merging the base messages as the translations;</li> <li> information of the non matching was appended in the second message text;</li> <li> the translation management table appended of the user functions "Split item" and "Remove from Trs";</li> <li> the translation status appended of the short labels "SINGLELANGUAGE", "MULTILANGUAGE", "MULTILANGUAGE-DYNAMIC"; the message index; size of the cache and the translation context;</li> <li> the base language configuration field of the MULTILANGUAGE modes expanded by list the project locales separated by ";".</li></ul> <p>FIX: Expansion the Data Messages Translation in the tree modes: SINGLELANGUAGE, MULTILANGUAGE and MULTILANGUAGE-DYNAMIC: </p> <ul><li> the user language obtaining unified in the function lang2Code(), expanded by the arguments "user" and "onlyUser";</li> <li> the lang2CodeBase() function separated to the common one langBase() and appended the function langToLocale() of obtaining the complete locale at language from langBase();</li> <li> the language field of the objects TSYS, TUser appended of the selection list from langBase();</li> <li> FIX: the TMess::mRes lock renamed to TMess::trMessIdxRes and limited in use only for TMess::trMessIdx;</li> <li> the translation cache significant extending and unification: <ul><li> in the new TMess object's functions translCacheGet(), translCacheSet(), translCacheLimits() and the own lock trMessCacheRes;</li> <li> extended by the message category for caching the system translations and users;</li> <li> the cache limiting also appended by the time limit variable "limCacheIts_TM" for what it checked in the service task.</li></ul></li> <li> appended for the translation context at the new function TMess::trCtx() and the object TrCtxAlloc for handling the context registration as user and language bound to the call thread: <ul><li> TCntrNode::cntrCmd(), Protocol.HTTP, UI.{Vision,WebVision,WebUser,WebCfg,WebCfgD} attached to use the translation context.</li></ul></li> <li> synchronized in the system prestored and the dynamic-data setting messages;</li> <li> the DB type-module objects were appended by the specific information field "Features" of specifying the supported by DB features;</li> <li> FIX: complete disabling the translation and registering in the message index at the loading for generic TConfig nodes with the JavaLikeCalc procedure text and a deprecated flag of enabling that procedure whole translation;</li> <li> UI.QTCfg: the tree update enabled for the root page updation through the reconnection and the tree update at the user change; enabled for using the system language in the SINGLETRANSLATION mode for remote connections;</li> <li> FIX:UI.VCAEngine: the project styles moved under a new storing table "{DB_TBL}_stls" and its structure with translation;</li> <li> UI.{WebCfg,WebCfgD}: Generically adapted to the dynamic translation in the MULTILANGUAGE-DYNAMIC mode, using the HTTP-variable "lang", the user language and browser language;</li> <li> the <a href="../en/Create_multi_language_project.html" title="Special:MyLanguage/Documents/How to/Create multi language project">How to "Create multi language project"</a> document was created.</li></ul> <dl><dd> PRIMARY PROJECT OBJECTS</dd></dl> <ul><li> implemented for the base message and its translations mark as fuzzy - "<!>" in the text end at changing, and warning the translation removing;</li> <li> accessing the dynamic translation moved under the new functions trD()->TMess::translGet() and trDSet()->TMess::translSet(): TArchives,TDAQ,TTypeDAQ,TController,TParamContr,TFunction,TPrmTmpl,TTransports,DAQ.{BlockCalc,JavaLikeCalc};</li> <li> appended in the dynamic translation for: <ul><li> DAQ-attributes name-description postranslation after the system translation and translation in the context help;</li> <li> DAQ-attributes translation in the UserAPI functions: get(), set(), descr();</li> <li> DAQ.JavaLikeCalc: names setting part of the execution form moved to itself;</li> <li> Protocol;{ModBus,OPC_UA,UserProtocol},UI.{VCAEngine,WebUser}.</li></ul></li> <li> adapted commonly to the new changing conception in the MULTILANGUAGE-DYNAMIC mode through "{base}\000{lang}\000{mess}";</li> <li> appended and used for a new function translIdxCacheUpd() of updating the operative translation messages' index and cache in the MULTILANGUAGE-DYNAMIC mode for the SET command;</li> <li> appended of the translation copy in the SQL INSERT command and for the MULTILANGUAGE-DYNAMIC mode;</li> <li> the configuration file appended of the MULTILANGUAGE-DYNAMIC mode support.</li></ul> <dl><dd> INDIVIDUAL MESSAGES - "Trs"</dd></dl> <ul><li> UI.VCAEngine: appended of changing the storage just after the widget procedure compile for placing of the dynamic messages translation to the project storage;</li> <li> the transitive dynamic translation prevented in appending the table "Trs" for messages available in other sources, so checking the message index before;</li> <li> appended for filtering the messages for they translatability before registering.</li> <li> LibsDB.vcaBase: <ul><li> wlb_Main.ElViewGraph: enabled for the transitive translation in the tooltip and for the parameter description;</li> <li> wlb_Main.objProps: enabled for the transitive dynamic translation;</li> <li> wlb_Main.storeHouse: significantly expanded for the specific fields, ordering the columns, appending of the highlighting rules for column values with filter index or list, fixed in whole work.</li></ul></li></ul> <dl><dd> SYSTEM MESSAGES</dd></dl> <ul><li> implemented for a function of prestoring system messages translation trS(), where the base message just return with the catalogue information, that is "{base}\000{cat}" and what is translated really in the call _() — in the background there is used Mess->I18N(), but for the specific language code mess_PreSave="<PSV>";</li> <li> the system translation function TMess::I18N() was attached to the messages cache;</li> <li> the TFld and IO objects expanded in work with the prestoring system messages;</li> <li> module info fields adapted to the MULTILANGUAGE-DYNAMIC mode;</li> <li> adaption to the postranslation for the User API function TConfig::cfg() in the translatable strings;</li> <li> UI.{QTCfg,Vision}: adapted to the control items obtain in language of the user and update the main window interface language at it change; <ul><li> UI.Vision: appended in updation the toolbars at the user change, what also adapted for the dynamic translation; all development dialogs adapted for the dynamic translation.</li></ul></li> <li> UI.{QTStarter,QTCfg,Vision}: appended for the system Qt-messages translation relating to the selected user language, through the common application property "lang" for the Qt-translation reimplemented function QTranslator::translate(), and then the language commonly switched by the last interface and for all opened; the Starter Menu set for dynamic translation and updating.</li></ul> <p><b><u><span id="MessSubLev" title="#MessSubLev">CONCEPTUAL > Message Sublevels {Main}[0...9] and Unification for the User Messages Transferring</span> </u></b><br /> </p> <ul><li> generic adaption to sublevels {Main}[0...9] of the main message levels [0...7];</li> <li> DAQ,DAQ.DAQGate: the function TController::messSet() appended of the messages transferring from the top to the down, so sinking down, making the function virtual one and redefine that in DAQGate, and defining also the new OpenSCADA control service request of the TController object "set:/serv/mess";</li> <li> DAQ: specified for <a href="Program_manual.html#ArchMess" title="Special:MyLanguage/Documents/Program manual">the DAQ-transparency messages</a> in the category form "{TP}{ModId}:{CntrId}[.{prm}][:{spec}]", appended of such messages creation function TController::messSet() and the User API functions SYS.DAQ["Modul"]["Controller"].messSet(), SYS.DAQ["Modul"]["Controller"]["Parameter"].messSet();</li> <li> LibsDB.vcaBase: <ul><li> wlb_Main.{ElCadr,TextLab,ImgLab,cntrRegul},mnEls.{El_Kran_Sh,Compressor}: adapted for the user action messages forming by the new DAQ-function messSet() with the unified category structure for transferring between OpenSCADA stations of different levels;</li> <li> wlb_Main.{alarmsAct,alarmsSt}: adapted to process of sublevels of the main levels with coloring all the levels; expanded by the new user field "Type" as name of the alarm level from the new configuration attribute "types";</li> <li> wlb_doc.{docUsersSet,docAlarmsRep}: appended in the DAQGate source complete scanning for whole transferring hierarchy;</li> <li> wlb_Main.alarmsSt,wlb_doc.{docMessRep,docAlarmsRep}: adapted to the transferred messages by DAQGate;</li> <li> wlb_Main.{alarmsSt,alarmsAct},wlb_doc.docMessRep: improved in the DAQGate source complete scanning for whole transferring hierarchy, also for user actions (OP);</li> <li> wlb_Main.TextLab: optionally enabled for the transitive translation in the status text which often comes from some DAQ-source.</li></ul></li></ul> <p><b><u>OpenSCADA libraries and projects</u></b><br /> </p> <ul><li> FIX:LibsDB.{OscadaLibs,vcaBase,vcaTest},{AGLKS,Boiler}.*: Appended, cleaned and fixed for the multilanguage messages by applying the new translation fixing mechanisms.</li> <li> LibsDB.vcaBase,AGLKS.vca,Boiler.St: All project styles moved under a new storing table and its structure with translation.</li> <li> FIX:LibsDB.vcaBase: <ul><li> FIX:wlb_Main.{alarmsAct,alarmsSt}: The default sorting at the field of the alarm time set back to "1" as not default descending order. wlb_Main.alarmsAct: Appended for the field "messCat" of specifying the alarm categories.</li> <li> wlb_Main.{ElViewGraph,graphSelPrm}: Adapted to reset the trend item color to the default styled at setting that to empty; appended of the empty color processing as the default one also taken from the style.</li> <li> FIX:wlb_Main.RootPgSo: Appended of complete updating at the user change, but language also can be changed, and the language.</li></ul></li> <li> LibsDB.OscadaLibs: The "DB" field content and the table base ID of UserFuncLibs.{techApp,servProc,Controller} renamed to the standard one "flb_techApp", "flb_servProc", "flb_Controller" respectively. <ul><li> tmplib_base.{anUnif,anUnifSt,digAlarm,codeState}: Adapted to the syntax highlight builtin of the input preprocessing procedure.</li> <li> tmplib_base.digAlarm: Expanded in the common attribute DESCR using for the specific parameters redefinition by the new fields "CustomFlds".</li> <li> tmplib_base.anUnif: Expanded in the common attribute DESCR using for the specific parameters redefinition by the new fields "CustomFlds" and "CustomAlarms". Appended of the user procedure option "toSave" of force saving the object at the exit.</li></ul></li> <li> flb_servProc.docOffLine: Expanded for the index page accessing from any other pages.</li></ul> <p><b><u>API</u></b><br /> <i>!!!!:Changes</i>: </p> <ul><li> SYS: TCntrNode::{chldDel,nodeDis}() moved to direct use the new TCntrNode::EnDisFlag: NodeNoFlg, NodeRemove, NodeRemoveOnlyStor; and the space after > 0x100(TCntrNode::NodeSpecific) was reserved for the node specific, where the TParamContr::EnDisFlag set only to NodeRemove_NoArch and Widget::EnDisFlag set only to Widget::{NodeRemove_NoDelMark,NoContainer}. TCntrNode::Flag items renamed SelfModify->Modified, SelfModifyS->ModifiedS, SelfSaveForceOnChild->SaveForceOnChild. <ul><li> Storage object's functions DB(), fullDB() and setDB() expanded of the argument "qTop".</li> <li> The subsystem name moved to the function subName() call and which set "virtual" and "constant", also as subVer() and subId().</li> <li> The description field type of the TFld object and the name field of the IO object changed to "string".</li> <li> Result of TCntrNode::nodeNameSYSM() changed to "string".</li> <li> TMess: The lang2CodeBase() function separated to the common one langBase() and appended the function langToLocale() of obtaining the complete locale at language from langBase(). <ul><li> The function lang2Code() expanded by the arguments "user" and "onlyUser".</li> <li> I18N() changed in the arguments for "const string &mess" the first and mLang moved to the second, it result changed to "string", also for TModule::I18N(), and updated all definitions _().</li> <li> The data translation functions (short definitions) renamed to trD_L(), trD_U(), trD_LU(), trDSet_L(), trDSet_U(), trDSet_LU().</li> <li> Removed for I18Ns().</li> <li> labStorGen() merged to labStor() and that labels labStor(), labSecCRON(), labSecCRONsel(), labTaskPrior(), labMessCat() type changed to "string"; appended of the label labStorGen().</li> <li> lang2Code() and lang2CodeBase() renamed to langCode() and langCodeBase() respectively for starting the adaption to the language code more than 2 symbols.</li></ul></li> <li> Security: The static method "pHashMagic" moved to the definition SEC_HASH_MAGIC.</li></ul></li> <li> DB: The functions TBDS::{open,close}() renamed to TBDS::{tblOpen,tblClose}() and set to static ones. <ul><li> TBDS::{dataSeek,dataGet,dataSet,dataDel,genDBGet,genDBSet}() moved to the bit flags TBDS::ReqGenFlg (renamed from TBDS::ReqGen): NoFlg, NoException, OnlyCfg, UseTranslation (renamed from ReqGen::UseTranslation), UseCache, UseAllKeys.</li> <li> TBDS::dbList() moved to the bit flags TBDS::DBLsFlg: LsNoFlg, LsCheckSel, LsInclGenFirst.</li> <li> The functions moved as static ones: TBDS::{dbList,dataSeek,dataGet,dataSet,dataDel,dataDelTbl}(), TBDS::{fullDBSYS,fullDB}().</li> <li> The generic parameters accessing functions TBDS::genDBGet() and TBDS::genPrmSet() renamed to genPrmGet() and genPrmSet() everywhere.</li></ul></li> <li> DAQ: TTypeDAQ::compileFuncSynthHighl() renamed to TTypeDAQ::compileFuncSnthHgl() in a way of the name unification.</li> <li> Archives-History: Definitions of the archive specific names renamed for BUF_ARCH_NM, ALRM_ARCH_NM, ALRM_ARCH_CH_NM to ARCH_BUF, ARCH_ALRM, ARCH_ALRM_CH; and appended for ARCH_NOALRM ("<noalarms>").</li></ul> <p><i>Appends</i>: </p> <ul><li> SYS: The global short functions appended of s2l() and s2u(). <ul><li> Appended of a new function strParseEnd() of parsing the separated string from the end.</li> <li> The function pathLev() appended of a new argument of position the offset to the next token begin and what also appended in the UserAPI function parsePath() of DAQ.JavaLikeCalc.</li> <li> TCntrNode appended of the functions storage() and setStorage() for tracking the availability of node data. TCntrNode::Flag appended of the item LoadForcibly. TCntrNode::modif() and TCntrNode::modifG() appended of a new argument "forceLoad".</li> <li> The time limit variable "limCacheIts_TM" appended for the cache limiting.</li> <li> The common encoding function strEncode() and the User API one appended the variant "ShieldBin" of shield the binary symbols [\x0-\x8\xB-\xC\x0E-\x1F].</li> <li> TMess: Appended for a function of checking the messages for them translatability — isMessTranslable(). <ul><li> Appended for functions of managing the translation cache: translCacheGet(), translCacheSet(), translCacheLimits() and the own lock trMessCacheRes. Appended for a function translIdxCacheUpd() of updating the operative translation messages' index and cache, and functions translItSplit(), translItRemTrs() of the items splitting and removing from Trs.</li> <li> Appended for the translation context at the new function trCtx() and the object TrCtxAlloc for handling.</li> <li> Appended for the data translation trD()->translGet() and trDSet()->translSet().</li> <li> Appended for the prestoring system messages translation trS(), as an other link to I18N().</li> <li> Appended for the function messLevelTest().</li> <li> The TMess::Type structure appended of an item "MaxLev" of the maximum message types/levels specifying.</li> <li> The TMess definitions appended of mess_PreSave="<PSV>" and mess_TrModifMark="<!>".</li></ul></li> <li> XMLNode: Appended of the new saving option BinShield(0x400) for controllable shield the binary symbols [\x0-\x8\xB-\xC\x0E-\x1F].</li> <li> TConfig,TCfg: Expanded for new parameters TConfig::{trcSet,setTrcSet}(), TCfg::{isSet,setIsSet}() of detection the configuration field changing and using in the partial DB-loading instead toDefault(); and TConfig::{noTransl,setNoTransl}() for global setting the structure default translation. TCfg::setExtVal() function appended an argument "toOne".</li> <li> TError: codes appended of: DB_TrRemoved (22) for mark the translation removing in DB, DB_ReadOnly (23) introduced by SQLite at the unification process, Core_NoNode (5) of the TCntrNode missing, Tr_ErrTransport (12) for the transport errors mark, Tr_ErrResponse (13) and Tr_ErrDevice (14) for more specific transport errors.</li></ul></li> <li> DB: The TBDS::realDBName() appended of the back conversion argument. <ul><li> The static methods of TBDS appended of the new function dbPart() of getting the storage address parts and appended of a new function dataDelTbl() of the common tables removing, also in the Configuration File.</li> <li> Appended for the structure item object TTable::TStrIt.</li> <li> Common SQL-code moving to the new functions: TTable::fieldSQLSeek(), TTable::fieldSQLGet(), TTable::fieldSQLSet(), TTable::fieldSQLDel(); with the flags TTable::SQLReqFlag: SQLNoFlg, SQLOrderForSeek, SQLFirstSkipForSeek.</li> <li> Declaration in the core for the service definitions, methods and functions to the common SQL-code: SEEK_PRELOAD_LIM, tblStrct, seekSess, connRes, fieldFix(), getSQLVal(), setSQLVal().</li> <li> Appended of the list priority specifying functions TBD::lsPr(), TBD::setLsPr() and virtual one TTypeBD::lsPr().</li> <li> Appended of <a href="Program_manual.html#DBFeat" title="Special:MyLanguage/Documents/Program manual">the DB features</a> specifying virtual function TTypeBD::features().</li></ul></li> <li> DAQ: TFunction::IO object's structure IO::IOFlgs appended the flag IO::TransltText of marking the translate String IO directly. <ul><li> The function {TController,TParameter}::messSet() appended of the messages transferring from the top to the down, and also the User API functions SYS.DAQ["Modul"]["Controller"].messSet(), SYS.DAQ["Modul"]["Controller"]["Parameter"].messSet().</li> <li> The TCntrNodeObj appended of the function lang() obtained from the second line of the common method mUserLang.</li> <li> The User API functions appended of the function funcSnthHgl() in the DAQ module object and for obtaining the syntax highlight rules of the module and language.</li></ul></li> <li> Archives-History: Appended of the function "void TArchives::messPut( const TMess::SRec &rec, const string &arch = "" )" variant.</li> <li> Transports: Appended of the new function extHostSeek().</li> <li> UI: Appended of the Configuration File option "FontSnthHglCode" and the corresponded functions TUIS::fontSnthHglCode() and TUIS::setFontSnthHglCode(). <ul><li> VCAEngine: <ul><li> The User API functions mime() and mimeSet() appended of the correct equivalents resource() and resourceSet().</li> <li> The Project object appended a Control Interface service request "read:/serv/access", of checking the read access.</li> <li> The Control Interface service request "get:/prm/cfg/prj" appended an option "noName" for preventing the project name request.</li></ul></li></ul></li></ul> <p><b><u>SYS</u></b><br /> </p> <ul><li> FIX:Building: configure.ac: Core library version risen to 3:12:0 and the program version risen to 0.9.5. <ul><li> The module version of the subsystem "BD" risen to 15, the subsystem "DAQ" risen to 14.</li> <li> The Debian 11 root file systems (chroots) are appended for build OpenSCADA; appended for build to Ubuntu 22.04 LTS and Debian 11 ARM64; and Maemo 5 (Nokia N900) removed since the compiler crashes now constantly in several places.</li> <li> data/*.xml: The TBDS Generic parameter "SYSStPref" removed.</li> <li> SYS,data/ModelsDB/{AGLKS/oscada_AGLKS.xml,Boiler/oscada_Boiler.xml}: The configuration parameter "Lang2CodeBase" renamed to "LangBase" with support "Lang2CodeBase" up to the 1.0 release.</li></ul></li> <li> The source code messages and program documentation: <ul><li> The "<a href="Quick_start.html" title="Special:MyLanguage/Documents/Quick start">Quick start</a>" manual completely revised and actualized for the last LTS changes, and also included the new section "Execution the ready OpenSCADA project in the service-background space" into own section "<a href="Quick_start.html#Demon" title="Special:MyLanguage/Documents/Quick start">Background and remote execution — server, PLC execution environment and remote development</a>".</li> <li> The "<a href="Program_manual.html" title="Special:MyLanguage/Documents/Program manual">Program Manual</a>" document appended of the new section "<a href="Program_manual.html#Service" title="Special:MyLanguage/Documents/Program manual">Execution the ready OpenSCADA project in the service-background space</a>" and revised in the section "<a href="Program_manual.html#Startup" title="Special:MyLanguage/Documents/Program manual">Startup and execution</a>".</li> <li> New document of the How to "<a href="../en/Create_multi_language_project.html" title="Special:MyLanguage/Documents/How to/Create multi language project">Create multi language project</a>" appended for downloading to offline.</li> <li> The whole source code labels like to ????, !!!!, ?!?! and they comments were revised.</li> <li> The language Russian,РоÑійÑька,РоÑÑийÑкий renamed to its true name mRussian.</li> <li> UI.{VCAEngine,Vision}: The "Mime data" renamed to "Resources" and "Mime type" to "MIME".</li></ul></li> <li> <span id="MessRedundTr" title="#MessRedundTr">.,DAQ.DAQGate</span>: The messages redundancy and messages transferring in DAQ.DAQGate limited for depth of the requesting messages up to the restoring time or one hour. <ul><li> The archivers redundancy and DAQ.DAQGate switched in the initial messages requesting to: <ul><li> request the active alarms;</li> <li> request the archive in deep and up to the alarms requesting time, without the alarms activation;</li> <li> ordinal-periodic request of the last messages, without the alarms activation.</li></ul></li></ul></li> <li> Protocol.HTTP,UI.{WebCfg,WebCfgD,WebUser,WebVision}: Appended of the previous user detection to mark that actions for HTTP-modules with moving the previous user authentication session closing after successful the new one. <ul><li> All the HTTP-modules adapted to the user field in the HTTP-functions with the previous user in the second line.</li> <li> FIX:WebVision: The previous user is used now for detection of the user change between the ordinal users and for single session, than prevent to create new sessions.</li></ul></li> <li> Expanding the binary symbols [\x0-\x8\xB-\xC\x0E-\x1F] shielding: <ul><li> XMLNode: Appended of the new saving option BinShield(0x400) for controllable shield the binary symbols [\x0-\x8\xB-\xC\x0E-\x1F], what is significant for the WebBrowsers.</li> <li> UI.{WebCfgD,WebVision}: Appended of encoding the XML traffic for the binary symbols shielding using the new option "BinShield".</li></ul></li> <li> FIX: strParse() rewrote and tested in processing the group symbols merging at the scan; and strParse(), strLine(), pathLev() in position the offset to the next token begin and limiting in the down for 0; and pathLevEnd() in positioning the offset to the next token end and limited in the up for the size. TModSchedul::chkAllowMod(),UI.QTCfg,Protocol.HTTP: switched in use TSYS::pathLevEnd() and TSYS::pathLev() in the new behaviour.</li> <li> Force loading appended of the errors suppression for not modified nodes before that operation.</li> <li> .,DB,DAQ: The global configuration context copying mechanism (interstation) appended for the marking link to the last setting operation object, to easy postmarks setting. <ul><li> DAQ: As a postmark to the saving DAQ-parameter object there appended the attribute "prmTp" with the parameter type, which is used next in true detection the parameter type changing at the following loading.</li></ul></li> <li> .,UI.{QTCfg,WebCfgD}: The OpenSCADA Control Interface for Tables expanded by the user commands.</li></ul> <p><b><u>DB</u></b><br /> </p> <ul><li> FIX: The TBD object appended an internal flag "mIsFirst" of control the object first enable and what used to prevent of the table "Trs" registering at each enable-connection-reconnection.</li> <li> FIX: The TBDS::dataDel() fixed-appended in removing multiple items and appended of removing the empty table nodes of the Configuration File.</li></ul> <p><b><u>DAQ</u></b><br /> </p> <ul><li> FIX: The controller objects manual start defined for some specific hot doings of the object enabling, when the doing was prevented from call twice at the normal start: <ul><li> DAQGate: resync the remote source data at the sync period >= 0;</li> <li> ModBus: force reformation of the acquisition blocks;</li> <li> OPC_UA: force reformation of the monitored items list;</li> <li> Siemens: force reformation of the acquisition blocks.</li></ul></li> <li> The "Return" type IO of the TFunction object was set to ReadOnly in the manual execution tab.</li> <li> FIX:<span id="DAQGate" title="#DAQGate">DAQGate</span>: Appended of the asynchronous writing mode implementation. The configuration field of the remote stations selection moved in simple combobox. The controller object status appended of the counters of read/archive's/wrote values, read messages and the writing buffer status. <ul><li> FIX: Fixed in reusing parameters with empty address for included ones and appended for clearing the address at the parameters copy.</li> <li> FIX: Unified in the sync commonly and fixed in the attributes sync, with preventing in constantly sync of the missed on remote host parameters.</li></ul></li> <li> FIX:JavaLikeCalc: Prevented in some resources lock of the library function at its program change, when performed the program compile at disabled function.</li> <li> Siemens: Appended of the new option "Maximum size of the request block, bytes" of specifying the maximum requesting block.</li></ul> <p><b><u>Transports</u></b><br /> </p> <ul><li> The UpRiseLev stations splited in the requesting transport per the first host of the "reforwardHost" address, than preventing the common connection hung at long connection to very far reforward missing station.</li> <li> <span id="SSL" title="#SSL">SSL</span>: Both input and output parts appended of the possibility to point the certificates and the key directly from an external file. Appended for reloading the certificates file of the input transport at it change by the transport reconnect.</li></ul> <p><b><u>Transport Protocols</u></b><br /> </p> <ul><li> FIX:HTTP: Fixed in reading the "accept-language" HTTP variable only as the two symbol language code, then the common interface is translated also now on FireFox who sends there the country code also.</li> <li> FIX:SelfSystem: In the input part switched to load the whole input message before checking the auth information, then preventing for strange error messages "Error the command format." for the message tail.</li></ul> <p><b><u>User Interface</u></b><br /> </p> <ul><li> VCAEngine,Vision,WebVision: The "openlist:/serv/pg" control request appended in the attribute "pgGrp" (group) of the opened page for detection several pages open in one container then open last one and close previous ones, to prevent mostly the included pages all close and allow of specifying-override the need pages open. <ul><li> <span id="Vision" title="#Vision">Vision</span>: Refactored also for early opening the restored and specified pages in the init procedure.</li></ul></li> <li> QTStarter,WebVision,WebCfgD: Qt part, in the generic Qt Library, and Web appended for the table edition text apply at Enter and new line at Ctrl+Enter.</li> <li> FIX:QTCfg,Vision: Prevented from hangs at stopping from a termination signal, from the console mostly, since locking the main Qt thread in modStop() without qApp->processEvents().</li> <li> QTCfg: The text fields appended of checking and activation the builtin syntax highlight rules from the XML-tag "SnthHgl". The Tables appended of finding for pointed strings.</li> <li> <span id="VCAEngine" title="#VCAEngine">VCAEngine</span>: <ul><li> Finishing of implementing the changes obtaining in the runtime mode by the clocking cycles through, after observing the race condition on the attributes changing, which cause to do not update the value on visualizers: <ul><li> rewrote for the modification control mechanism;</li> <li> specifying the forming and fixed cycles;</li> <li> reducing the main calculation clock to uint16;</li> <li> dividing the changes clock value of attributes and the widget commonly to the forming (uint16) and the fixed (uint16) = uint32;</li> <li> processing the changes clock value both at the modification and reading-checking;</li> <li> support of reloading the main calculation clock and clearing the old changes clock value;</li> <li> preventing the empty cycles for the common widgets requesting;</li> <li> removed for code of the previous slide current mark mechanism of the attributes changing detection with the doubles.</li></ul></li> <li> The Widget copy operation appended of copying the used widget resources (the Image type now only), and in that way there performed.</li> <li> FIX: The "<deleted>" mark setting for the removed inherited included widgets moved to the save function of the container widget, since that is lost at the copy operations and now you can easy undo/redo such widgets removing.</li> <li> FIX: Fixed in the mime data copy at the widget libraries and the projects copy, moving the copy to the copy save, with expanding the mime operations for work with completely specified DBs.</li> <li> FIX: Prevented in the attribute values inheriting for the output links, then do not write to DAQ the obviously wrong values at the hot edition of running projects and their items.</li></ul></li> <li> FIX:Vision: Fixed, or finished the implementation, for UNDO/REDO the removing operation of the inherited included Widgets of the Project Pages. <ul><li> Adjusted in the focus policy to the UI.WebVision way and appended the focus force clearing at lost, to prevent the widget focus return at window activation, so you can use now the event "ws_FocusIn" in opening external subwindows.</li> <li> The child widgets selection conception at the visual editing of the development mode was unified and fixed in a new part "Visual editing" of <a href="Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">the UI.Vision module documentation</a>.</li> <li> Requesting of the widget attributes' values of the developed widget moved to a single big request, than the remote development is become much faster.</li></ul></li> <li> FIX:WebVision: The session methods mUser and mUserOrig moved under the data mutex lock, due to there can be crashes at active user manipulations. <ul><li> FIX: The view "Combo" of the type "Line" and the types "List" and "Combo" appended of creation value items missed in the selection list.</li> <li> FIX: The popup windows of the calendar and editable combo appended of the geometry check than preventing the main window overflow; and the popup windows closing moved completely at a mouse button press outward the window, together other popup menus.</li> <li> FIX: Improved and fixed in usability the view Table of the primitive FormEl and mostly in the text edition: true width fitting and minimum height setting to 40 pixels, FIX: fixed in specifying the column sorting value "0" as ascending-default and "1" as descending from the top, like to the UI.Vision behaviour and the numbers (integer,float) sort-comparing was implemented separately.</li> <li> Appended for the FrontEnd status display in the session status field with that requesting-scheduling at display the field.</li></ul></li></ul> <h4><span class="mw-headline" id="Service_updates_3"><span class="mw-headline-number">7.4.1</span> Service updates</span></h4> <ul><li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2862" rel="nofollow noreferrer noopener" target="_blank">the fifth (5) at 03.12.2022</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2855" rel="nofollow noreferrer noopener" target="_blank">the fourth (4) at 23.10.2022</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2849" rel="nofollow noreferrer noopener" target="_blank">the third (3) at 03.09.2022</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2843" rel="nofollow noreferrer noopener" target="_blank">the second (2) at 08.08.2022</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2839" rel="nofollow noreferrer noopener" target="_blank">the first (1) at 24.07.2022</a>.</li></ul> <h3><span class="mw-headline" id=".5B14.04.7529.2F14.06.2021.5D_.D0.A7.D0.95.D0.A2.D0.92.D0.81.D0.A0.D0.A2.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">7.5</span> [14.04.7529/14.06.2021] ЧЕТВÐРТОЕ обновление</span></h3> <p>Ðто обновление <a href="Release_0.9.html" title="Special:MyLanguage/Documents/Release 0.9">релиза 0.9 LTS</a> иÑправлÑет около 45 ошибок и добавлÑет некоторые улучшениÑ, которые целиком вы можете почитать в <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2758" rel="nofollow noreferrer noopener" target="_blank">протоколе изменений обновлениÑ</a>. </p> <div style="float:right; border:1px solid gray; width:300px; padding:2px; margin-left: 10pt; margin-bottom: 10pt;"> <p>Переведено в Ñчёт пакета ТП <a class="external text" href="http://e-beam.ru" rel="nofollow noreferrer noopener" target="_blank">Лаборатории Вакуумных Технологий</a> </p> </div> <p><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> <b><u>Важные дейÑÑ‚Ð²Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ обновлению</u></b><br /> </p> <ul><li> FIX:SYS: Общее конфигурационное поле "WorkDir" предотвращено от Ð¼Ð°Ñ€ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ðº модифицированное при переключении проекта, чем и от ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² конфигурационном файле, но отÑутÑтвует механизм автоматичеÑкого ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñтого Ð¿Ð¾Ð»Ñ Ð¸Ð· конфигурационного файла Ñтарых проектов.</li></ul> <dl><dd> <b><span style="color: red">=</span></b>> удалите вручную общее конфигурационное поле "WorkDir" еÑли оно поÑвилоÑÑŒ там ошибочно и вы имеете проблемы иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð² чужих проектов Ñтим проектом.</dd></dl> <p><b><u>Ðовые и значительно обновленные чаÑти</u></b><br /> </p> <ul><li> Ядро OpenSCADA: 3:9:0 => <b>3:10:0</b></li></ul> <dl><dd> (<a href="#Translations">Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¼ÐµÑ…Ð°Ð½Ð¸Ð·Ð¼Ð° переводов</a>)</dd></dl> <ul><li> ПодÑиÑтема "ТранÑпорты" OpenSCADA: 17 => <b>18</b></li> <li> {DAQ,Protocol}.OPC_UA,libOPC_UA: 1.7 => <b>2.1</b>, 1.10 => <b>2.1</b>, 1.2 => <b>2.1</b></li></ul> <dl><dd> (<a href="#OPC_UA">дополнено реализацией ÑервиÑа Publish, поддержкой куÑков (CHUNKS) на клиентÑкой чаÑти Сбора Данных и общим переÑмотром кода в Ñтом процеÑÑе</a>)</dd></dl> <ul><li> DAQ.ModBus: 2.12 => <b>3.1</b></li> <li> DAQ.DAQGate: 2.2 => <b>2.3</b></li> <li> DAQ.Siemens: 3.5 => <b>3.6</b></li> <li> Transport.Sockets: 4.2 => <b>4.3</b></li> <li> Transport.Serial: 2.5 => <b>2.6</b></li> <li> Transport.SSL: 3.2 => <b>3.3</b></li> <li> UI.WebCfgD: 1.5 => <b>2.0</b></li> <li> UI.VCAEngine: 6.9 => <b>7.1</b></li> <li> UI.QTStarter: 5.8 => <b>5.9</b></li> <li> UI.QTCfg: 5.1 => <b>5.4</b></li></ul> <dl><dd> (<a href="#Table">общий переÑмотр и переделка таблиц</a>)</dd></dl> <ul><li> UI.Vision: 7.7 => <b>7.13</b></li></ul> <dl><dd> (<a href="#Table">общий переÑмотр и переделка таблиц в Qt в целом и вида Таблица примитива FormEl СВУ</a>)</dd></dl> <ul><li> UI.WebVision: 5.8 => <b>6.2</b></li></ul> <dl><dd> (<a href="#Table">общий переÑмотр и переделка таблиц вида Таблица примитива FormEl СВУ</a>)</dd></dl> <ul><li> LibsDB.OscadaLibs.DevLib.IEC62056: 1.0 => <b>1.1</b></li> <li> LibsDB.vcaBase.Main: 2.0 => <b>2.1</b> <ul><li> storeHouse: <b>1.0</b></li> <li> RootPgSo: 2.3 => <b>2.4</b></li></ul></li></ul> <p><b><u>OpenSCADA библиотеки и проекты</u></b><br /> </p> <ul><li> LibsDB.vcaBase,AGLKS.vca: Main.RootPgSo: Дополнено на предмет: <ul><li> виджета "alarms" на оÑнове примитива "Протокол" Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñтью включить/выключить;</li> <li> Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð¿Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð¾Ð¹ функции возврата к типовому пользователю поÑле определённого времени неактивноÑти в атрибуте "defUser";</li> <li> переключено на неотноÑительный алгоритм вычиÑÐ»ÐµÐ½Ð¸Ñ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾Ð¹ позиции и выÑоты главной мнемоÑхемы.</li></ul></li> <li> LibsDB.OscadaLibs: DevLib.IEC62056: ПерепиÑано в Ñинхронный режим (запроÑ-ответ) Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ неÑкольких уÑтройÑтв на одной поÑледовательной шине.</li> <li> LibsDB.vcaBase: <ul><li> Библиотека "ОÑновнаÑ" дополнена новой Ñтраницей реализации "Склада (storeHouse)".</li> <li> Main.RootPgSo: ПериодичноÑÑ‚ÑŒ иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ°Ð´Ñ€Ð° поднÑта до 1000 миллиÑекунд поÑле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ€Ð°Ð½Ð½ÐµÐ¹ обработки Ñобытий. Значительным образом переключено Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð½Ñ‹Ñ… поÑледовательноÑтей "Ctrl+?" на "CtrlAlt+?".</li></ul></li> <li> AGLKS.vca: Страница проекта /prj_AGLKS/pg_so/pg_4/pg_mn/pg_1 переименована в /prj_AGLKS/pg_so/pg_4/pg_mn/pg_CM101, как Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸.</li></ul> <p><b><u>API</u></b><br /> <i>!!!!:ИзменениÑ</i>: </p> <ul><li> SYS: Функцию TSYS::curTime() дополнено аргументом Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ñточника чаÑов Ñ Ð¸Ñпользованием функции clock_gettime(). Определение EVAL_RFlt дополнено ÑуффикÑом "f".</li> <li> Mess: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð° TMess::translSet() дополнена аргументом "srcFltr" фильтрации по иÑточникам.</li> <li> ТранÑпорты: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° Ð’Ð’ pushLogMess() дополнена аргументами "data" и "dataDir".</li></ul> <p><i>ДополнениÑ</i>: </p> <ul><li> Mess: Блокирование данных отделено от Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñех Ñообщений в dtRes.</li> <li> SYS: Функции API Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹ функцией lang() быÑтрого Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑиÑтемного Ñзыка. <ul><li> Дополнено функцией TSYS::curTimeN().</li> <li> .,DAQ.{LogicLev,ModBus,Siemens}: Дополнено и иÑпользовано глобальную поÑтоÑнную DAQ_APER_FRQ предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‡Ð°Ñтоты апериодичеÑких вызовов, вроде f_start, периодичеÑких процеÑÑов.</li></ul></li> <li> БезопаÑноÑÑ‚ÑŒ: Объект Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½ функцией ПользовательÑкого API auth() Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ по паролю.</li> <li> ТранÑпорты: Входные и выходные объекты транÑпортов дополнены атрибутами протокола Ð’Ð’: "mLogLstDt", "mLogLstDtTm".</li> <li> DAQ: Объект DAQ-параметра дополнен информационным полем метки времени Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ ÐµÐ³Ð¾ макÑимальным значением на объекте контроллера, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ нового конфигурационного Ð¿Ð¾Ð»Ñ Ð‘Ð” "TIMESTAMP" объекта параметра.</li></ul> <p><b><u>СиÑтема</u></b><br /> </p> <ul><li> FIX:Сборка:configure.ac: ВерÑÐ¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ¸ Ñдра увеличена до 3:10:0 и верÑÐ¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ увеличена до 0.9.4.</li> <li> Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ñходного кода и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹: <ul><li> rom_as@oscada.org заменено на roman@oscada.org везде в иÑходниках.</li> <li> Документ "Modules/OPC_UA" целиком отревизирован Ð´Ð»Ñ Ð²ÐµÑ€Ñии модулей 2.1 и перевода.</li></ul></li> <li> <span id="Translations" title="#Translations">Вкладка "Переводы"</span> неÑколько отревизирована, дополнена актуальным ÑтатуÑом, дополнена контекÑтной помощью и менеджер переводов дополнен на предмет:</li></ul> <dl><dd><dl><dd><ul><li> Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ в prmInterf_TM (7 Ñекунд);</li> <li> конфигурационного Ð¿Ð¾Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка количеÑтва верхних Ñообщений;</li> <li> уÑтановки перевода только Ð´Ð»Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… иÑточников;</li> <li> проверки Ñодержимого на Ñовпадение только Ð´Ð»Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… иÑточников;</li> <li> пропуÑк ошибок отÑутÑÑ‚Ð²Ð¸Ñ Ð¸Ñточников.</li></ul></dd></dl> <ul><li> Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð° TMess::translSet() предотвращена от раÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð²Ñ‹Ñ… Ñообщений, изменённых не из менеджера перевода.</li></ul></dd></dl> <ul><li> FIX:.,BD.LDAP,Archive.{DBArch,FSArch},DAQ.{ModBus,MMS},{DAQ,Protocol}.OPC_UA,UI.Vision: ÐеÑколько очищено от предупреждений Ñборки.</li> <li> FIX: Определение EVAL_RFlt дополнено ÑуффикÑом "f" Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¾ÑˆÐ¸Ð±Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ double EVAL_RFlt Ñ Ñохранённым float значением, иÑправлÑет работу архиватора Archive.FSArch Ñ Ñ‚Ð¸Ð¿Ð°Ð¼Ð¸ значений float при выÑвлении EVAL.</li> <li> FIX:Mess: Блокирование данных отделено от Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñех Ñообщений в dtRes Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÐºÑƒÑ€ÐµÐ½Ñ‚Ð½Ñ‹Ð¼ блокировкам при активной работе Ñ Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð°Ð¼Ð¸. Ðтрибуты mLang2CodeBase, mLang2Code переключены на Ñто новое блокирование.</li> <li> data/openscada-proj.in: Переключено на ÑÑылку Ñодержимого ПользовательÑкой LibsDB на ÑиÑтемные библиотеки, Ñ Ñодержимым только на чтение, вмеÑто копированиÑ.</li></ul> <p><b><u>Сбор Данных</u></b><br /> </p> <ul><li> ModBus,Siemens: Переключено, в формирование Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ "f_frq", на иÑпользование информации реального иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ñ‡Ð¸.</li> <li> <span id="OPC_UA" title="#OPC_UA">{DAQ,Protocol}.OPC_UA.{.,libOPC_UA} </span>: Дополнено реализацией ÑервиÑа Publish, поддержкой куÑков (CHUNKS) на клиентÑкой чаÑти Сбора Данных и общим переÑмотром кода в процеÑÑе Ñтого:</li></ul> <dl><dd><dl><dd> <i>КЛИЕÐТ</i>:</dd></dl> <ul><li> добавление атрибутов (Ñлементов мониторинга) перенеÑено из attrPrc() непоÑредÑтвенно в enable() и ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ð¿ÑƒÑкаетÑÑ Ð¿Ñ€Ð¸ запуÑке объекта контроллера</li> <li> ... и обработка Ñлементов улучшена обновлением опиÑаниÑ, флагов и ÑвÑзываниÑ;</li> <li> Ñбор данных унифицирован обработкой в функции параметра upVal()</li> <li> ... и запроÑа значений функцией объекта контроллера getValMIt() Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ МаÑÑивов</li> <li> ... чем вплотную подготовлено Ð´Ð»Ñ Ð²Ñтраивание логичеÑкого типа параметров;</li> <li> объекты параметров Сбора Данных автивированы Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… параметров;</li> <li> уÑтановка и удаление EVAL ко вÑем атрибутам проверено во вÑех режимах;</li> <li> Ñтруктурные переменные, в проÑмотрщике выбора DAQ-параметра, разрешены Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° их Ñлементов отдельно;</li> <li> разбор Ð¿ÐµÑ€ÐµÑ‡Ð½Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ… DAQ-параметров уÑтановлен в полный разбор Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑком пуÑÑ‚Ñ‹Ñ… Ñтрок;</li> <li> объект DAQ-контроллера дополнен закрытием ÑеанÑа и безопаÑного канала при его оÑтанове;</li> <li> общий ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° контроллера дополнен детализированной информацией на предмет иÑпользованного канала безопаÑноÑти, ÑеанÑа, подпиÑки и обрабатываемыми Ñлементами мониторинга;</li> <li> блокирование запроÑа переименовано в resOPC.</li></ul> <dl><dd> <i>СЕРВЕР</i>:</dd></dl> <ul><li> объект OPC-UA Сервера дополнен вкладкой общего ÑтатуÑа Ñервера Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÐµÐ¹ на предмет активноÑти каналов безопаÑноÑти;</li> <li> объект Узла EndPoint дополнен общим ÑтатуÑом Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÐµÐ¹ на предмет активноÑти ÑеанÑов и подпиÑок, а также периодичноÑтью и временем иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ñ‡Ð¸ подпиÑок.</li></ul> <dl><dd> <i>БИБЛИОТЕКÐ</i>:</dd></dl> <ul><li> унифицировано и определено типовое значение времени жизни канала безопаÑноÑти, которое уÑтановлено в 300000 мÑ;</li> <li> типовой LifeTimeCounter подпиÑок уÑтановлен в 2400;</li> <li> объект NodeId дополнен функцией прÑмого ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ operator==();</li> <li> Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ XML_N::childClear() дополнена результатом возврата того Ñамого объекта XML_N Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ;</li> <li> Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ curTime() дополнена аргументом Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ñточника чаÑов Ñ Ð¸Ñпользованием функции clock_gettime();</li> <li> короткие функции дополнены str2int() и str2uint();</li> <li> некоторые Ð¿Ð¾Ð»Ñ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ñ‹: publInterv в publInterval, cntrLifeTime в lifetimeCnt, cntrKeepAlive в maxKeepAliveCnt, maxNotPerPubl в maxNtfPerPubl, en в publEn;</li> <li> иÑправление Ñлова "POOL" на "POLL".</li></ul> <dl><dd> <i>БИБЛИОТЕКÐ_КЛИЕÐТ</i>:</dd></dl> <ul><li> Client::reqService() дополнен мета-командой "CloseALL" Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ ÑеанÑа и каналу безопаÑноÑти;</li> <li> Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ клиентÑких ÑервиÑов protIO() адаптирована к работе в аÑинхронном режиме (не запроÑ);</li></ul> <dl><dd><ul><li> Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Client::messIO() раÑширена аргументом таймаута Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸ÐµÐ¼ также режима запроÑа;</li> <li> запиÑÑŒ в канал и чтение из него отделено в обработке MSG пакетов;</li> <li> Ð°Ð´Ð°Ð¿Ñ‚Ð°Ñ†Ð¸Ñ Ñообщений безопаÑноÑти к работе Ñо Ñмешанным входным буфером;</li> <li> Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð¾Ñновного ÑервиÑного запроÑа "OPN" под обработку Ñообщений из-за отправки обновлений в Ñередине Publish активноÑти.</li></ul></dd></dl> <ul><li> реализован ÑÐµÑ€Ð²Ð¸Ñ Publish на Ñтороне клиента:</li></ul> <dl><dd><ul><li> объект "Client" дополнен реализацией подобъекта "Subscr" (но ÑохранÑетÑÑ Ð² Client::SClntSess) Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñми: activate(), monitoredItemAdd() и monitoredItemDel();</li> <li> объект "Client" дополнен функцией poll() Ñ:</li></ul> <dl><dd><ul><li> унификацией Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ в обоих режимах Read и Publish;</li> <li> проверкой потери вÑех Publish запроÑов в течении OpcUa_ClntPublishResentCntr(2) попыток-времени ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¶Ð¸Ð²Ñ‹Ð¼;</li> <li> воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÑƒÐ»Ð° Publish.</li></ul></dd></dl> <ul><li> объект Client::Subscr::MonitItem добавлен как предÑтавитель Ñлементов мониторинга Ñ Ð´Ð¾Ñтупом из под общего Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñких реÑурÑов;</li></ul> <dl><dd><ul><li> ÑервиÑные запроÑÑ‹ дополнены реализацией, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÑƒ ответов: CreateSubscription, DeleteSubscriptions, CreateMonitoredItems, Publish, Poll;</li> <li> реализовано и проверено в поддержке безопаÑных политик по Publish;</li> <li> целевой пул Publish запроÑов на подпиÑку уÑтановлено в виртуальной функции publishReqsPool() Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ñ‹Ð¼ значением 2.</li></ul></dd></dl> <ul><li> дополнено реализацией куÑков (CHUNKS) как в запроÑах, так и ответах;</li> <li> целиком отревизировано и очищено общую функцию запроÑа reqService() от дубликатов аргументов и параметров:</li></ul> <dl><dd><ul><li> дополнено воÑÑтановлением ÑеанÑов при переподключении канала безопаÑноÑти;</li> <li> унифицировано очиÑтку текущего ÑеанÑа и канала безопаÑноÑти.</li></ul></dd></dl> <ul><li> объект клиента дополнен общим блокированием реÑурÑов mtxData;</li> <li> ÑвойÑтво ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ "timeoutHint" уÑтановлено в 0 Ð´Ð»Ñ Ð²Ñех Ñообщений;</li> <li> Ð·Ð°Ð¿Ñ€Ð¾Ñ Read возвращён к "плоÑкому" запроÑу Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ÐµÐ¼ только в CHUNKS;</li> <li> ошибка OpcUa_BadSecureChannelIdInvalid добавлена к очиÑтке канала безопаÑноÑти;</li> <li> Client::SClntSess::{sessOpen,lstMessReq} переименован в {secChnlOpenTm,secLstMessReqTm}</li> <li> ... и предотвращён от очиÑтки и воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеанÑа и канала безопаÑноÑти;</li> <li> дополнено отладочными ÑообщениÑми ошибок запроÑов.</li></ul></dd> <dd> <i>БИБЛИОТЕКÐ_СЕРВЕР</i>:</dd></dl> <ul><li> ÑÐµÑ€Ð²ÐµÑ€Ð½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ адаптирована к работе Ñ UAExpert 1.5 на предмет: уÑтановки атрибута AId_Descr DAQ-Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² тип OpcUa_LocalizedText, Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ð¸ целочиÑленного типа OpcUa_IntAuto и OpcUa_UIntAuto;</li> <li> обработка подпиÑок возвращена к их обработке в отдельной задаче и функции subScrCycle() на предмет:</li></ul> <dl><dd><ul><li> правильного раÑчёта вÑех таймаутов Ð´Ð»Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ;</li> <li> обработки периодичноÑти подпиÑки и публикации;</li> <li> проверки ÑоÑтоÑÐ½Ð¸Ñ ÑвÑзанных ÑеанÑов и каналов безопаÑноÑти на предмет Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñок.</li></ul></dd></dl> <ul><li> но Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¾Ñтавлена на обработку в активноÑти входного канала и функции Server::EP::publishCall() Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸ÐµÐ¼ обработки Publish Ð´Ð»Ñ Ð¾ÑˆÐ¸Ð±Ð¾Ñ‡Ð½Ñ‹Ñ… и чужих ПодпиÑок, через проверку inPrtId, sesTokId и isSecCnlAct;</li> <li> ÑƒÐ½Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¡ÐµÐ°Ð½Ñа на предмет: ÑвÑÐ·Ñ‹Ð²Ð°Ð½Ð¸Ñ ÑеанÑов Ñ ÐºÐ°Ð½Ð°Ð»Ð°Ð¼Ð¸ безопаÑноÑти переключено на один вмеÑто маÑÑива, проверку ÑеанÑа вÑех Ñообщений дополнено предотвращением иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‡ÑƒÐ¶Ð¸Ñ… подключений;</li> <li> не поÑледние куÑки пакета переключены на отправку прÑмо, чтобы не добавлÑÑ‚ÑŒ к одному TCP-пакету;</li> <li> EP::mtxData блокирование переключено в PTHREAD_MUTEX_RECURSIVE;</li> <li> каналы безопаÑноÑти ограничены колчеÑтвом OpcUa_SecCnlLimit(10) и очередь публикаций количеÑтвом OpcUa_ServerMaxPublishQueue(10);</li> <li> EP::secSize() переименовано в EP::secN() и добавлено EP::sessN(), EP::subscrN() и chnlList();</li> <li> Server.SecCnl.{TokenId,TokenIdPrev} переименовано в Server.SecCnl.{tokenId,tokenIdPrev}.</li></ul></dd></dl> <ul><li> ModBus: Ð’Ñ‹Ñ…Ð¾Ð´Ð½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ RTU варианта протокола дополнена ранним прерыванием Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¾Ð² Ñтандартных функций [ERR,1...6,15,16], что увеличивает общую пропуÑкную ÑпоÑобноÑÑ‚ÑŒ вдвое. <ul><li> Ð’Ð’ параметров ЛогичеÑкого Ð£Ñ€Ð¾Ð²Ð½Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾ в перевод, Ð´Ð»Ñ Ð½Ðµ ÑвÑзанных Ñтрок и так как в DAQ.LogicLev.</li> <li> Разбор атрибутов Сбора Данных переключено на иÑпользование TSYS::strLine() и TSYS::strParse(), чем разрешено Ñимвол ':' в названии и пуÑтые Ñтроки в текÑте.</li></ul></li> <li> DAQGate: Режимы Ñинхронизации дополнены режимом Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñинхронизации вообще Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð¾Ð² Ñохранённых в кеше, путём Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ <b>-1</b> конфигурационного Ð¿Ð¾Ð»Ñ "ПериодичноÑÑ‚ÑŒ Ñинхронизации Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð¹ Ñтанцией, Ñекунд".</li></ul> <p><b><u>Ðрхивы-ИÑториÑ</u></b><br /> </p> <ul><li> FIX:FSArch: КритичеÑки иÑправлено обработку файлов архива значений, при попытке запиÑи их ИД в нулевую Ñтроку.</li> <li> DBArch: Ðрхиваторы Ñообщений дополнены конфигурационным полем "Уникальные и недублирующие ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ за временем и категорией". <ul><li> FIX: ИÑправлено падение при обработке групп архиватора значений из-за неочиÑтки ÑвÑÐ·Ñ‹Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ полей таблицы (TConfig) под блокированием и неблокирование функции ModVArch::grpLimits() в reqRes.</li></ul></li></ul> <p><b><u>ТранÑпорты</u></b><br /> </p> <ul><li> Протокол Ð’Ð’, во входной и выходной чаÑти, раÑширен и дополнен: <ul><li> комбинированием данных пакетов Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñ‹Ð¼ направлением и адреÑом данных в течении prmWait_TM (5 Ñекунд);</li> <li> микроÑекундную чаÑÑ‚ÑŒ времени зафикÑировано в 6(шеÑти) Ñимволах;</li> <li> ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… дополнены Ñимволом направлениÑ;</li> <li> ограничением размера одного блока обработки, новым конфигурационным полем;</li> <li> значительным повышением производительноÑти через иÑпользование предопределённого буфера.</li></ul></li> <li> FIX:Serial: Выходной транÑпорт иÑправлен в ожидании между запроÑами на предмет обработки reqRetrMult*wCharTm как миллиÑекунды.</li> <li> FIX:Sockets: Обнаружено ошибку "Обрыв канала (32)" при запиÑи, поÑле Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñервера, поÑтому попытки Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÑƒÑтановлены в 2 по (kz <= 0).</li></ul> <p><b><u>Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ</u></b><br /> </p> <ul><li> FIX:<span id="Table" title="#Table">Общий переÑмотр и переделка таблиц в Qt и Web в целом и вида Таблица примитива FormEl СВУ</span>:</li></ul> <dl><dd><ul><li> QTStarter,QTCfg,Vision: Общий библиотечный клаÑÑ TableDelegate значительным образом улучшено в работе на QTCfg и Vision:</li></ul> <dl><dd><ul><li> дополнено ÑобÑтвенными пользовательÑкими ролÑми SelectRole, TextLimRole и OneLineString;</li> <li> отображение Ñчеек дополнено фоновым цветом через чтение-применение общих ролей;</li> <li> чиÑловые типы (целое и реальное) дополнены принудительным центрированием;</li> <li> Ñтроковые типы дополнены опциÑми Ð²Ñ‹Ñ€Ð°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð·Ð°Ð²Ð¾Ñ€Ð°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ Ñлов Ñ Ñ€Ð¾Ð»Ñми Qt::TextAlignmentRole;</li> <li> дополнено поддержкой визуального Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ð¸Ð½Ð½Ñ‹Ñ… текÑтов ÑобÑтвенной ролью TextLimRole и типовое значение уÑтановлено в 300 Ñимволов через дополнительное переопределение sizeHint().</li></ul></dd></dl> <ul><li> FIX: Вид "Таблица" примитива "FormEl":</li></ul></dd></dl> <dl><dd><dl><dd><ul><li> VCAEngine,QTStarter,Vision,WebVision: Дополнено новым типом Ñчейки 't'-текÑÑ‚, в оÑновном Ð´Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð° 's'-Ñтрока нажатием Enter.</li> <li> VCAEngine,Vision,WebVision: Дополнено опцией "prec" проÑтранÑтва колонки, Ñтроки и Ñчейки Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ñ‚Ð¾Ñ‡Ð½Ð¾Ñти реальных значений; и реализацией атрибута "align" колонки и Ñчейки.</li> <li> WebVision,Vision: Дополнено переключением таблиц в предотвращение двойному хранению иÑходного Ñодержимого при его размере более чем 10000.</li> <li> FIX:Vision: ИÑпользование общего делегата таблицы Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñтью многоÑтрочного редактированиÑ.</li></ul> <dl><dd><ul><li> УÑовершенÑтвовано отображение колонок, Ñтрок и Ñчеек при обновлении и в целом:</li></ul> <dl><dd><ul><li> ограничением визуального размера Ñодержимого Ñчейки 300 Ñимволами и выÑоты Ñтрок в 70% от общего размера таблицы;</li> <li> более точным выравниванием ширины колонок;</li> <li> подÑтройкой в режиме разработки, а также при видимоÑти вертикального заголовка;</li> <li> плотным заполнением таблицы через учёт размера видимой полоÑÑ‹ вертикальной прокрутки;</li> <li> подÑтройкой только поÑле полного Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° таблицы, чем также допуÑÐºÐ°Ñ Ñ€ÑƒÑ‡Ð½Ð¾Ðµ изменение колонок и Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð°ÐºÐ¾Ð¹-правильной подÑтройки вÑегда.</li></ul></dd></dl> <ul><li> Реализовано "лёгкую" обработку Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ñ‹ и обновлениÑ:</li></ul> <dl><dd><ul><li> "лёгкое" редактирование без переподÑтройки колонок при каждом обновлении, только при: поÑвлении первой Ñтроки, Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð¸Ñ‡ÐµÑтва колонок и Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° колонки, изменении шрифта и изменении размера;</li> <li> применение фикÑированной ширины колонки и учёт выÑоты Ñтрок Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñми незавиÑимо от Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ атрибута "colsWdthFit";</li> <li> уÑтановка значениÑ, раннее изменение размера и подÑтройка таблицы, перенеÑены в проÑтранÑтво Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñодержимого таблицы и поÑле ÑортированиÑ.</li></ul></dd></dl> <ul><li> Функцию ÑкÑпорта во Ð²Ñ€ÐµÐ¼Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¾ ÑкÑпортом вида Таблица примитива "FormEl" в CSV.</li></ul></dd></dl> <ul><li> WebVision:</li></ul> <dl><dd><ul><li> УÑовершенÑтвовано отображение колонок, Ñтрок и Ñчеек при обновлении и в целом:</li></ul> <dl><dd><ul><li> реализацией режима не подÑтройки (отÑутÑтвие атрибута "colsWdthFit"), Ñ Ð¸Ñпользованием режима автоматичеÑкого Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ Ð´Ð»Ñ Ð²Ñ‹Ñ‡Ð¸ÑÐ»ÐµÐ½Ð¸Ñ Ñ„Ð¸ÐºÑированной ширины и поÑледующего Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð² фикÑированный режим Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹;</li> <li> многоÑтрочным редактированием текÑта Ñчеек в полную ширину и выÑоту Ñчейки, Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸ÐµÐ¼ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ Ctrl+Enter;</li> <li> вид Ñтрочных Ñчеек ограничен 300 Ñимволами;</li> <li> отображение логичеÑких Ñчеек изображением ÑоÑтоÑÐ½Ð¸Ñ TRUE;</li> <li> Ñчейки таблицы, в режиме редактированиÑ, разрешены к вызову контекÑтного меню ÑиÑтемы-браузера.</li></ul></dd></dl> <ul><li> Реализовано "лёгкую" обработку Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ñ‹ и обновлениÑ:</li></ul> <dl><dd><ul><li> обнаружение Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ и обновление переключено в режим не ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸Ñходного Ñодержимого дважды;</li> <li> предотвращено от полного Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ модификации атрибута "value".</li></ul></dd></dl> <ul><li> Дополнено поддержкой Ñортировки по колонкам. УÑтановка в Ñортировку по первой видимой колонке при включении Ñортировки.</li></ul></dd></dl></dd></dl></dd></dl> <dl><dd><ul><li> WebCfgD: РаÑширение таблицы на предмет:</li></ul> <dl><dd><ul><li> большое видимое Ñодержимое текÑта ограничено 300 Ñимволами;</li> <li> Ñтроковый тип разрешён Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¾Ñтрочного Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ TEXTAREA;</li> <li> тип данных "bool" отображено изображением, не "On" или "Off";</li> <li> центрирование Ñодержимого логичеÑкого, чиÑел, времени и выбора;</li> <li> упрощение Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñодержимого таблицы Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð² времÑ, чиÑло и Ñтрока, путём ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÐºÐ½Ð¾Ð¿Ð¾Ðº Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ прокручиваниÑ.</li></ul></dd></dl></dd></dl> <ul><li> QTStarter,QTCfg,Vision: Ðачат Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ Qt-кода Qt-модулей OpenSCADA в файлы новой библиотеки lib_qtgen.*, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð° в каталоге Ð¼Ð¾Ð´ÑƒÐ»Ñ QTStarter и привÑзано во вÑех Qt-модулÑÑ…, и Ñто оÑущеÑтвлено длÑ: внешней icoSize(), colorAdjToBack() и TableDelegate.</li> <li> VCAEngine:</li></ul> <dl><dd><ul><li> Дополнено, и включено как Ð¾Ð¿Ñ†Ð¸Ñ Ñборки, на предмет механизма Ð¼Ð°Ñ€ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð² без дубликатов, путём запроÑа предыдущих-завершенных циклов, чем также Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰Ð°Ñ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð¾Ñти выÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð´ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ‚Ð¾Ð² в визуализаторах и Ñохранению большого иÑходного Ñодержимого.</li> <li> ИÑполнение проектов улучшено при Ñмене Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð°Ñ‚Ñ‹Ð²Ð°ÐµÐ¼Ñ‹Ñ… Ñтраниц на лету.</li> <li> ИÑполнение задач ÑеанÑов дополнено ранним иÑполнением, при наличии Ñобытий.</li> <li> FIX: СВУ-Ñтили иÑправлены при доÑтупе к пуÑтым полÑм, которые не загружаютÑÑ.</li> <li> Страницу "ДиагноÑтика" СВУ-проектов адаптировано к отображению Ñообщений ÑƒÑ€Ð¾Ð²Ð½Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ при включении отладки.</li> <li> Информацию иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑеанÑа проекта дополнено реальной периодичноÑтью, полученной из задачи, которую также иÑпользовано при формировании Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð° "f_frq" процедуры.</li></ul></dd></dl> <ul><li> Vision: Диалоги ÑвойÑтв "Виджеты" и "Проекты / Библиотеки виджетов" дополнены ÑобÑтвенной Ñтрокой ÑтатуÑа и кнопкой вызова контекÑтной документации. Виджеты TextEdit переключены на ÑобÑтвенную Ñтроку ÑтатуÑа диалогов ÑвойÑтв, на предмет позиции курÑора и что выключено во Ð’Ñплывающей ПодÑказке. Виджет Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐºÑта кода диалога ÑвойÑтв "Виджеты" дополнен воÑÑтановлением позиции курÑора поÑле Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ отмены.</li> <li> FIX:WebVision: Дополнен обнаружением иÑÑ‡ÐµÐ·Ð°Ð½Ð¸Ñ ÑеанÑа иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð° и возвратом ошибки, в общем запроÑе "pgOpenList", и ÑброÑа Ñчётчика вычиÑлений "tmCnt".</li></ul> <dl><dd><ul><li> Клавиатурный Ñ„Ð¾ÐºÑƒÑ Ð¸ ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð·Ð½Ð°Ñ‡Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ образом уÑовершенÑтвованы на предмет гарантии работы Ñтого в целом через:</li></ul> <dl><dd><ul><li> уÑтановку атрибута "tabindex" Ð´Ð»Ñ Ð²Ñех активных виджетов и Ñпецифично Ð´Ð»Ñ FormEl — непоÑредÑтвенно в Ñлементы формы;</li> <li> Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²Ñ‹Ñ‡Ð¸Ñлением чиÑла "tabindex" как уникальный Ð´Ð»Ñ Ñ†ÐµÐ»Ð¾Ð³Ð¾ интерфейÑа, чем Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰Ð°Ñ Ñкачки фокуÑа;</li> <li> обработки ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ onfocus на предмет уÑтановки ÑобÑтвенного фокуÑа в setFocus();</li> <li> вид Кнопка примитива FormEl дополнен обработкой клавиатурных Ñобытий Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ð¸ отпуÑÐºÐ°Ð½Ð¸Ñ Ð¿Ð¾ клавишам Space и Enter;</li> <li> примитив Диаграмма упрощён путём ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð»Ð¸ÑˆÐ½ÐµÐ³Ð¾ Ñлемента тега A;</li> <li> FIX: ИÑправлено переключение фокуÑа при клацанье на кнопках Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñми.</li></ul></dd></dl> <ul><li> FIX: ИÑправлено проверку удаленных виджетов Ð´Ð»Ñ Ð²Ñех и главной Ñтраницы.</li> <li> FIX: ИÑправлено наконец размножение лишних DIV Ñлементов при Ñмене Ñтраницы в контейнере Ñтраниц.</li> <li> FIX: Предотвращение зацикливанию при наличии Web-ÑеанÑа, но отÑутÑтвии ÑоответÑтвующего СВУ-ÑеанÑа.</li></ul></dd></dl> <ul><li> FIX:WebCfgD: Целиком отревизировано и раÑширено на предмет:</li></ul> <dl><dd><ul><li> переноÑа вÑех дейÑтвий внутренних инÑтрументов на реализацию кнопками и размер панели инÑтрументов уÑтановлен Ñ 25 в 30 пикÑелей;</li> <li> ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ð¸-Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° изображений кнопок инÑтрументов на Ñтороне Ñервера;</li> <li> уÑтановки раÑÑтоÑÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ иконкой Ñтраницы и заголовком в 10 пикÑелей;</li> <li> полного Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ð¹ Ñтраницы поÑле Ñмены размера окна;</li> <li> раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐºÑта TEXTAREA применением и отменой из клавиатуры;</li> <li> привÑзки функции Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ…Ð¾Ñтов к двойному клацанью мышей на общем проÑтранÑтве облаÑти дерева;</li> <li> FIX: иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ…Ð¾Ñтов на предмет выÑÐ²Ð»ÐµÐ½Ð¸Ñ Ñлементов дублированных хоÑтов;</li> <li> FIX: принудительного Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð°ÐºÑ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ…-выбранных Ñлементов в дереве ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð¿Ð¾Ñле его разворачиваниÑ;</li> <li> ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ nodeText() и setNodeText() путём непоÑредÑтвенного иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ "innerText" и "textContent".</li></ul></dd></dl> <h4><span class="mw-headline" id=".D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F"><span class="mw-headline-number">7.5.1</span> СервиÑные обновлениÑ</span></h4> <ul><li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2768" rel="nofollow noreferrer noopener" target="_blank">первое (1) от 29.08.2021</a>.</li></ul> <h3><span class="mw-headline" id=".5B20.10.7528.2F20.12.2020.5D_.D0.A2.D0.A0.D0.95.D0.A2.D0.AC.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">7.6</span> [20.10.7528/20.12.2020] ТРЕТЬЕ обновление</span></h3> <p>Ðто обновление <a href="Release_0.9.html" title="Special:MyLanguage/Documents/Release 0.9">релиза 0.9 LTS</a> иÑправлÑет около 40 ошибок и добавлÑет некоторые улучшениÑ, которые целиком вы можете почитать в <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2726" rel="nofollow noreferrer noopener" target="_blank">протоколе изменений обновлениÑ</a>. </p><p><b><u><a class="external text" href="http://oscada.org/ru/novosti/odinochnaja-stranica/article/trinity-desktop-environment-tde-release-1409/" rel="nofollow noreferrer noopener" target="_blank">Linux ДиÑтрибутив Ðвтоматизации проекта OpenSCADA</a></u></b><br /> </p> <ul><li> пакеты "tdelibs" и "tdebase" были удалены из-за Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñтих иÑправлений в главной и Ñтабильной ветви TDE;</li> <li> иÑправленные пакеты "tdemultimedia-trinity", "tdenetwork-trinity" и "tdeutils-trinity" были переÑобраны;</li> <li> Ñобрано новый иÑправленный пакет "tde-i18n-uk-trinity";</li> <li> перед Ñборкой пакетов была изменена Ñхема Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²ÐµÑ€Ñий пакетов Ñтого диÑтрибутива из "{+1}:14.0.9-0" на "4:14.0.9-{+1}" Ñ Ñ†ÐµÐ»ÑŒÑŽ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð¼Ð¾Ñ€Ð¾Ð·ÐºÐ¸ Ñтих пакетов в Ñледующих верÑиÑÑ… TDE; и главный репозиторий пакетов TDE <a href="How_to_Live_disk.html" title="Special:MyLanguage/Documents/How to/Live disk">Живых ДиÑков</a> переключен на ветвь "r14.0.x" вмеÑто предварительной Ñтабильной, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ‚Ð°ÐºÐ¶Ðµ приÑутÑтвует, но закомментирована;</li> <li> перед Ñтим релизом, в <a class="external text" href="https://mirror.git.trinitydesktop.org/weblate/" rel="nofollow noreferrer noopener" target="_blank">TDE Weblate</a> завершен перевод УкраинÑким Ñзыком чаÑтей-пакетов TDE: tdelibs, tdebase, tdegraphics, tdenetwork, tdemultimedia, tdepim, tdeadmin, tdeaccessibility, tdeutils, krusader, yakuake, basket; и Ñоздан иÑправленный пакет "tde-i18n-uk-trinity" Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð° отличий ветви "r14.0.x" от главной;</li> <li> заплатка к "tdeutils" дополнена комбинацией клавиш Ñ ÑƒÐ´ÐµÑ€Ð¶Ð°Ð½Ð¸ÐµÐ¼ Ctrl Ð´Ð»Ñ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾Ð³Ð¾ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑркоÑти диÑÐ¿Ð»ÐµÑ Ðº KMilo.</li></ul> <p><b><u>OpenSCADA библиотеки и проекты</u></b><br /> </p> <ul><li> FIX:LibsDB.OscadaLibs: Библиотека DevLib дополнена шаблонами "MTP 4D (MTP4D)" и "ModBus база (mbBase)".</li> <li> FIX:LibsDB.vcaBase: Шаблонный проект (tmplSO) очищен от лишних мнемоÑхем ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ€ÐµÑ†ÐµÐ¿Ñ‚Ð°Ð¼Ð¸ и Ð³Ð»Ð°Ð²Ð½Ð°Ñ Ñтраница дополнена таблицей актуальных Ñигналов-нарушений. Кадр Main.RootPgSo унифицирован уведомителÑми только в общих атрибутах Ð´Ð»Ñ Ð¡Ð’Ð£-Ñервера и уведомителей Vision, WebVision: notify0, notify1 та notify2.</li></ul> <p><b><u>API</u></b><br /> <i>!!!!:ИзменениÑ</i>: </p> <ul><li> Ðрхивы-ИÑториÑ: {TMArchivator,TVArchivator,TVArchive}::DB() уÑтановлена в квалификатор поÑтоÑнной.</li> <li> ТранÑпорты.{.,*}: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ ÑƒÑтановки таймаутов setTimings() выходных транÑпортов раÑширена различием типовых таймаутов Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… протоколов, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ аргумента "isDef".</li></ul> <p><i>Дополнение</i>: </p> <ul><li> SYS.,*: <ul><li> ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¸ параметры проÑтранÑтва ÑиÑтемы перенеÑены в проÑтранÑтво конфигурации Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (конфигурационный файл) Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ разрешённого диапазона. STD_WAIT_DELAY перенеÑено в prmWait_DL и изменено в 0.1 Ñекунд. Предыдущие Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ð¹ и параметров проÑтранÑтва ÑиÑтемы оÑтавлены Ð´Ð»Ñ ÑовмеÑтимоÑти внешних модулей!</li> <li> TSYS дополнено функцией taskSendSIGALRM() отправки Ñигнала Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°Ð½Ð¸Ñ "ALARM" задачам OpenSCADA.</li> <li> TValFunc: Дополнено ÑоÑтоÑнием иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ через функцию isCalc().</li></ul></li> <li> ТранÑпорты: Выходные транÑпорты раÑширены обозначением Сетевых транÑпортов, функцией isNetwork(), также в пользовательÑком API.</li></ul> <p><b><u>СиÑтема</u></b><br /> </p> <ul><li> FIX:Сборка:configure.ac: ВерÑию библиотеки Ñдра увеличено до 3:9:0 и верÑию программы увеличено до 0.9.3.</li> <li> {DAQ,Протокол}.ModBus: <ul><li> подтип "_b" — битовый тип, дополнен перемещением номера бита к полю номера региÑтра вроде "R_b:123.12";</li> <li> дополнено флажком "~" Ð´Ð»Ñ Ð¸Ð½Ð²ÐµÑ€Ñии порÑдка региÑтров комплекÑных подтипов в некоторых региÑтрах, вроде "_f";</li> <li> флажок "rw" разделён на "r" и "w".</li></ul></li> <li> Модульную верÑию подÑиÑтемы "ТранÑпорты" увеличено до 17.</li> <li> FIX: Предотвращено аутентификацию в интерфейÑе Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð³Ð¾Ñ‚Ð¾Ð²Ñ‹Ð¼ хешем паролÑ.</li></ul> <p><b><u>Сбор Данных</u></b><br /> </p> <ul><li> LogicLev,ModBus,Siemens: Дополнено прерыванием продолжительного иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² при иÑполнении параметра, Ñ Ð¸Ñпользованием новых функций TValFunc::isCalc() и TSYS::taskSendSIGALRM().</li> <li> FIX:LogicLev: Удалено блокирование иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ "calcRes", которое иÑпользовано только в блокировании запиÑи в параметр в течении вычиÑÐ»ÐµÐ½Ð¸Ñ Ð¸ что может быть продолжительным.</li></ul> <p><b><u>Ðрхивы-ИÑториÑ</u></b><br /> </p> <ul><li> FIX: Полученные текущие значениÑ, в активном режиме архивированиÑ, принудительно уÑтановлено в текущее времÑ, что важно Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑких атрибутов.</li> <li> Конфигурационное поле архива значений "Режим Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ID автоматичеÑки Ñоздаваемых архивов" раÑширено Ñлементом выбора "Ð’Ñе ID контроллера, параметра и атрибута", в процеÑÑе раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð½Ð° размер ИД архива значений до 50 Ñимволов.</li> <li> FIX:DBArch: ИÑправлено только прÑмое архивирование значений в групповом режиме и когда тип значений может ÑбраÑыватьÑÑ Ð² Целый тип, как типовой. Ðрхивирование значений в групповом режиме дополнено удалением ÑоответÑтвующей колонки таблицы при удалении архива, Ð´Ð»Ñ Ð³Ð¾Ñ€Ñчего ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº Ñразу поÑле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ архиву, чем Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰Ð°Ñ Ñ€Ð°Ð½Ð½ÐµÐ¼Ñƒ разроÑтанию таблицы до ограничений БД.</li> <li> FIX:FSArch: ÐÐ´Ð°Ð¿Ñ‚Ð°Ñ†Ð¸Ñ Ðº размеру ИД архива значений больше чем 20 Ñимволов, когда дополнительные 14 Ñимволов ÑохранÑÑŽÑ‚ÑÑ Ð² резервной чаÑти (переименованной в "archive_add") заголовка и оÑтальное в названии файла.</li></ul> <p><b><u>ТранÑпорты</u></b><br /> </p> <ul><li> FIX: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ TTransportIn::assTrO() обработки входных инициативных подключений целиком отревизировано чтобы обеÑпечить обÑзательным Ñоздание новых подключений в виде нового выходного транÑпорта, чем Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰Ð°Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð¼Ñƒ завершению приÑутÑтвующих закрытых но не оÑвобождённых выходных транÑпортов.</li> <li> Команды транÑпортов переименовано из "ИÑполнение" в "Подключение" и ÑтатуÑÑ‹ переименованы из "Запущено. " в "Получение данных. " и "Подключено. ", из "ОÑтановлено. " в "Отключено. ".</li> <li> FIX:{Sockets,SSL}: Типовые таймауты возвращены в "10:1".</li></ul> <p><b><u>ТранÑпортные Протоколы</u></b><br /> </p> <ul><li> HTTP: <ul><li> Дополнено динамичеÑким названием Ð¿ÐµÑ‡ÐµÐ½ÑŒÑ (cookies) и ПользовательÑким проÑтранÑтвом ИД, где название Ð¿ÐµÑ‡ÐµÐ½ÑŒÑ "oscd_UID" и иÑпользовано ПользовательÑкое проÑтранÑтво ИД при работе Ñ Ð¾Ð±Ñ‰ÐµÐ¹ таблицей ÑеанÑов аутентификации, и название Ð¿ÐµÑ‡ÐµÐ½ÑŒÑ "oscd_UID_{PrjNm}" при работе без Ñтого.</li> <li> FIX: POST выходной функции outMess() Ñ Ð¼Ð½Ð¾Ð¶ÐµÑтвом чаÑтей предотвращён от Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÐµÑ‡Ð½Ð¾Ð³Ð¾ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ñ Ð¸ улучшено в формировании "Content-Disposition".</li> <li> Улучшено генерацию ИД Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸ÐµÐ¹ различных ИД Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… процеÑÑов, ограниченное в 1e6, и дополнено Ñлучайным и конфигурируемым ПользовательÑким проÑтранÑтвом ИД [0...99] * 1e6, иÑпользованным в работе Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÐµÐ¹ общих ÑеанÑов аутентификации.</li></ul></li> <li> SelfSystem: СпецифичеÑкие таймауты выходного транÑпорта уÑтановлены в "20:2".</li> <li> ModBus: СпецифичеÑкие таймауты выходного транÑпорту уÑтановлены в "5:0.1" Ð´Ð»Ñ Ð¡ÐµÑ‚ÐµÐ²Ñ‹Ñ… транÑпортов — isNetwork() и варианта протокола "RTU".</li></ul> <p><b><u>Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ</u></b><br /> </p> <ul><li> FIX: TUIS::docKeyGet() иÑправлено на предмет утечки пользовательÑких объектов маÑÑивов.</li> <li> VCAEngine,WebVision,Vision: Примитив "Media" дополнен типом "Audio" и тип "Полное видео" переименован в "Видео", который также имплементирован в WebVision и Vision.</li> <li> QTCfg,Vision: Дополнен функцией подÑтройки цветов текÑта к фоновому цвету — colorAdjToBack(), которую иÑпользовано в коррекции цветов подÑветки ÑинтакÑиÑа, и других динамичеÑких цветов, к Ñмене палитры.</li> <li> VCAEngine,Vision: РаÑширено реализацией уведомлений в процеÑÑе их Ð²Ð½ÐµÐ´Ñ€ÐµÐ½Ð¸Ñ Ð² WebVision, на предмет: <ul><li> иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтандартного пути Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ð¹ через активацию ÑоответÑтвующих атрибутов;</li> <li> раÑширение ntfReg() иÑпользованием отрицательного типа Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ вÑех типов, в оÑновном очиÑтки, и некоторой унификации кода;</li> <li> раÑширение получением типа реÑурÑа;</li> <li> дополнение уведомителей флажком "notifyServ" Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ñтороне СВУ-Ñервера;</li> <li> дополнено, на Ñтороне СВУ-Ñервера, полем "resStatic" прÑмого Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ€ÐµÑурÑа (не динамичеÑкое);</li> <li> дополнение контекÑта процедуры ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´Ð²ÑƒÐ¼Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ð¼Ð¸ "resTp" и "prcID".</li></ul></li> <li> FIX:UI.QTStarter: Дополнено периодичеÑким обновлением диалога запуÑка в перечне проектов.</li> <li> FIX:VCAEngine: ИÑправлено падение при уÑтановке ÑÑылки виджета в "prm". Ð¡ÐµÑ€Ð²Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа реÑурÑа "get:/wdg/res", Widget::resourceGet() и {WidgetLib,Project}::mimeDataGet() дополнено запроÑом чаÑтей реÑурÑа, в оÑновном Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ñ… медиа файлов.</li> <li> FIX:Vision: Дополнено проигрыванием уведомлений внутренним проигрывателем на Phonon и не в отдельной задаче уведомителÑ. Вызов saveState() перемещён из деÑтруктора окна разработки в Ñобытие закрытиÑ, поÑкольку была помечена проблема ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿ÑƒÑтого контекÑта поÑле Ð¿Ñ€Ð¾Ð¸Ð³Ñ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ медиа.</li> <li> FIX:WebVision: <ul><li> Ð˜Ð¼Ð¿Ð»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ уведомлений.</li> <li> Ð˜Ð¼Ð¿Ð»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ чаÑтей реÑурÑов, Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ñ… медиа, HTTP параметром "Range: bytes=".</li> <li> FIX: ИÑправлено лишнюю очиÑтку кеша Ñтраницы на предмет виджетов из Ñтраниц Ñ Ð¾Ð±Ñ‰Ð¸Ð¼ названием к Ñтранице ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑƒÐ´Ð°Ð»ÑетÑÑ.</li></ul></li> <li> WebUser: Ðдаптировано к работе Ñ POST и Ñодержимым в теле.</li></ul> <h4><span class="mw-headline" id=".D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_2"><span class="mw-headline-number">7.6.1</span> СервиÑные обновлениÑ</span></h4> <ul><li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2741" rel="nofollow noreferrer noopener" target="_blank">третье (3) от 23.03.2021</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2737" rel="nofollow noreferrer noopener" target="_blank">второе (2) от 01.03.2021</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2731" rel="nofollow noreferrer noopener" target="_blank">первое (1) от 01.02.2021</a>.</li></ul> <h3><span class="mw-headline" id=".5B17.06.7528.2F17.08.2020.5D_.D0.92.D0.A2.D0.9E.D0.A0.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">7.7</span> [17.06.7528/17.08.2020] ВТОРОЕ обновление</span></h3> <p>Ðто обновление <a href="Release_0.9.html" title="Special:MyLanguage/Documents/Release 0.9">релиза 0.9 LTS</a> иÑправлÑет около 60 ошибок и добавлÑет некоторые улучшениÑ, которые целиком вы можете почитать в <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2706" rel="nofollow noreferrer noopener" target="_blank">протоколе изменений обновлениÑ</a>. </p><p><b><u><a class="external" href="http://oscada.org/wiki/Sub-projects/Automation_Linux_distributive" title="Sub-projects/Automation Linux distributive">Linux ДиÑтрибутив Ðвтоматизации проекта OpenSCADA</a></u></b><br /> </p> <ul><li> Завершено уÑовершенÑтвование KMix в работе Ñ PulseAudio, путём его динамизации патчем "<a class="external text" href="https://bugs.pearsoncomputing.net/show_bug.cgi?id=2782" rel="nofollow noreferrer noopener" target="_blank">kmix-UpdMixersForChangeAndChMaster.patch</a>".</li> <li> KRfb (VNC-Ñервер) был иÑправлен на предмет аварийного Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¸ завершена Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€Ð° дополнительных клавиш к оÑновной клавиатурной раÑкладке, в оÑновном Кириллицы, но также и дополнительных UTF Ñимволов.</li> <li> Завершено обновление перевода <a class="external text" href="http://www.trinitydesktop.org/" rel="nofollow noreferrer noopener" target="_blank">проекта ÐžÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ Стола Trinity</a> на УкраинÑкий Ð´Ð»Ñ Ñ‡Ð°Ñтей: tdelibs, tdebase, tdenetwork, tdemultimedia, tdepim (в оÑновном), krusader, yakuake.</li></ul> <p><b><u>OpenSCADA библиотеки и проекты</u></b><br /> </p> <ul><li> LibsDB.OscadaLibs: Библиотеку УÑтройÑтв дополнено реализацией протокола IEC-62056 (DevLib.IEC62056). ВнеÑÐµÑ‚ÐµÐ²Ð°Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð° документом "СОГЛÐШЕÐИЕ О ТЕХÐИЧЕСКОЙ ПОДДЕРЖКЕ ПРОГРÐММÐОГО ОБЕСПЕЧЕÐИЯ "OpenSCADA" верÑии 2 и нового Ð¼Ð¾Ð´ÑƒÐ»Ñ DB.DBGate.</li> <li> FIX:LibsDB.vcaBase.Main.alarmsSt: ÐеÑколько иÑправлено на предмет оригинальных Ñообщений и "quietation" целиком заменено на "confirmation". ВоÑÑтановлено предотвращение дублированных запиÑей новых нарушений в той Ñамой категории.</li></ul> <p><b><u>API</u></b><br /> <i>!!!!:ИзменениÑ</i>: </p> <ul><li> SYS: Унифицированы ÑтатуÑÑ‹ Ñтанции в функциÑÑ… isRunning(), isFinalKill() и stopSignal(). TCfg::setReqKey() дополнен новым аргументом "treatDep".</li> <li> DB: dataSeek(),dataGet(),dataSet(): РаÑширены аргументом локального конфигурационного контекÑта "localCfgCtx";</li> <li> *,DB: TBDS::dataSeek() и TTable::fieldSeek() переключены на реализацию кеша ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² ÑоответÑтвующих модулÑÑ….</li></ul> <p><i>ДополнениÑ</i>: </p> <ul><li> TMess,DB,DB.{SQLite,MySQL,PostgreSQL,FireBird}: TMess дополнено функцией Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð° конфигурации translCfg(), которую иÑпользовано во вÑех модулÑÑ… БД и в dataSet().</li> <li> SYS: Дополнено функциÑми доÑтупа к глобальному конфигурационному контекÑту cfgCtx() и setCfgCtx(). <ul><li> Загрузка и Ñохранение конфигурации дополнена ÑобÑтвенным блокированием TSYS->cfgLoadSaveM().</li> <li> Дополнено функцией pathLevEnd() обработки путей Ñ ÐºÐ¾Ð½Ñ†Ð°.</li> <li> TRegExp: Дополнено функцией getPattern().</li> <li> TFld: Дополнено комбинированным Ñтроковым вариантом Ð¿Ð¾Ð»Ñ Ð´Ð»Ð¸Ð½Ñ‹ - lenS().</li></ul></li></ul> <p><b><u>SYS</u></b><br /> </p> <ul><li> FIX: Building: <ul><li> FIX:configure.ac: Core library version risen to 3:8:0 and the program version risen to 0.9.2.</li> <li> Modules version of the subsystem "BD" risen to 14, of the subsystem "Transport" risen to 16.</li> <li> data/ModelsDB/{AGLKS/oscada_AGLKS.xml,Boiler/oscada_Boiler.xml}: The input Sockets' transports unified in the names "WEB" and "CNTR".</li> <li> data/ModelsDB/AGLKS/St.sql: The input SSL transports unified in the names "WEB" and "CNTR" and updated for the KeepAlive timeout setting in 60 and for the SSL-certificate.</li> <li> data/{oscada_start,oscada_server,oscada_plc}.xml: <ul><li> The input WWW-transports are unified, where "WEB_1" renamed to "WEB" and "WEB_2" removed.</li> <li> Appended for the disabled DB-entries of the standard OpenSCADA libraries.</li> <li> /oscada_start.xml: Appended for the disabled input transports "WEB" and "CNTR". Appended for the value archivers FSArch.{SYS,alarms,actions} and message archivers FSArch.{1s,1m,1h}.</li></ul></li></ul></li> <li> FIX:data/openscada-proj.in,UI.QTStarter: Implementation the builtin backuping. <ul><li> FIX:data/openscada-proj.in: Appended for the commands "backup", "backupRestore", "backupList" to implement the project backups.</li> <li> UI.QTStarter: Appended for the backup commands call from the project manager - list of the projects.</li></ul></li> <li> .,DB,DAQ.{LogicLev,ModBus,Siemens},UI.{QTCfg,WebCfgD}: Implementation the interstation copying mechanism of the control interface nodes.</li> <li> .,UI.QTStarter: OpenSCADA starting with a module as the GUI in the main thread significantly refactored for: <ul><li> early registration the GUI module in the main thread directly by that module itself and in postEnable() function;</li> <li> adaption the function perSYSCall() to use for update the GUI module in the main thread, its splash mostly, during the program starting and stopping (from the service task) and at the configuration loading (for switch to the starting splash);</li> <li> enabling the messages dynamic display for the main thread execution mode;</li> <li> unification of the splash display for the both modes.</li></ul></li> <li> .,Protocol.SelfSystem,DAQ.AMRDevs: Client accessing of the OpenSCADA control interface expanded by the multiple authentication, what prevents of using direct requests of the OpenSCADA control interface with the authentication in each the request, often for UI.Vision.</li> <li> FIX:TRegExp: The patterns processing fixed appending the end symbol treating, so preventing TController::alarmSet() collisions in the objects strict detection.</li> <li> FIX:LibsDB.OscadaLibs.doc.diagram,UI.{Vision,WebVision}: Prevented from the value scale double adjustment for the percent scale and appended for the value range expanding.</li> <li> FIX: The function TCntrNode::isModify() processing for the children allowed only for nodes in the state "Enabled".</li></ul> <p><b><u>БД</u></b><br /> </p> <ul><li> Создан новый модуль "DBGate".</li> <li> FIX: TBDS::dataSet() раÑширено уÑтановкой только ключей и видимых Ñлементов, как у других БД. Дополнено Ñменой-Ñохранением определённых Ñлементов в конфигурационном файле вмеÑто полного ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð²Ñех их в типовой БД.</li> <li> FIX: ИÑправлен первый ошибочный запуÑк объектов БД на предмет поÑледующих попыток запуÑка.</li> <li> FIX: Загрузка БД предотвращена от двойной загрузки из конфигурационного файла и БД, отноÑительно одинаковых запиÑей.</li> <li> Объект TBD дополнен поддержкой ÑервиÑных контрольных запроÑов "call": "/serv/SQL", "/serv/fieldStruct", "/serv/fieldSeek", "/serv/fieldGet", "/serv/fieldSet", "/serv/fieldDel".</li> <li> FIX:SQLite: Обнаружена и иÑправлена Ð¿Ð¾Ñ‚ÐµÑ€Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… при конкурентном доÑтупе, когда генерируетÑÑ Ð½ÐµÐ¿Ñ€Ð¸Ð½Ñ†Ð¸Ð¿Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° неактивированноÑти транзакции "cannot commit - no transaction is active (1)", котораÑ, однако, прерывает запиÑÑŒ данных.</li></ul> <p><b><u>Сбор Данных</u></b><br /> </p> <ul><li> FIX: JavaLikeCalc: ИÑполнение внутренних функций дополнено Ñохранением контекÑта общих-ÑобÑтвенных региÑтров, в двух вариантах, первично Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ рекурÑии.</li></ul> <p><b><u>ТранÑпорты</u></b><br /> </p> <ul><li> Выходные транÑпорты унифицированы Ñозданием параметров подключениÑ, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ conPrm(), вмеÑто прÑмых prm1() и prm2().</li> <li> Удалён конфигурационный параметр "START" выходных транÑпортов, как лишний и Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ запуÑка.</li> <li> FIX:Sockets,SSL: Ð”Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼Ð½Ð¾Ð³Ð¾Ñ€Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов выÑокой нагрузки и продолжительного контролÑ, выходные транÑпорты переключены на: <ul><li> типовую конфигурацию Ð´Ð»Ñ ÐŸÐ¾Ð¿Ñ‹Ñ‚Ð¾Ðº=1, Таймауты="30:2";</li> <li> Ð´Ð»Ñ Ð¿Ð¾Ñ‚ÐµÑ€Ð¸ подключений количеÑтво попыток уÑтановлено в 2;</li> <li> Ð´Ð»Ñ Ð¾ÑˆÐ¸Ð±Ð¾Ðº "ИÑчерпано времÑ" подключение также пере-подключаетÑÑ, кроме типа SOCK_FORCE.</li></ul></li></ul> <p><b><u>ТранÑпортные Протоколы</u></b><br /> </p> <ul><li> FIX:ModBus: Выходные запроÑÑ‹ TCP-варианта дополнены проверкой Идентификатора Транзакции пакетов ответа.</li> <li> FIX:SelfSystem: Ð’Ñ‹Ñ…Ð¾Ð´Ð½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ раÑширена проверкой ÑоответÑÑ‚Ð²Ð¸Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð¾Ð² запроÑам, по названию тега запроÑа. Дополнено кодированием Ñпециальных Ñимволов Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ паролÑ, и пуÑтой пароль кодируетÑÑ ÐºÐ°Ðº "<EMPTY>".</li></ul> <p><b><u>Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ</u></b><br /> </p> <ul><li> Vision,WebVision: СвойÑтво ÑпецифичеÑкое Ð´Ð»Ñ Ð²Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð° "userSetVis" дополнено реализацией Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾Ñле прÑмо указанного Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñо вÑеми пользователÑми.</li> <li> FIX:QTStarter: СтандартнаÑ-ÑиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð·Ð°Ñтавка запуÑка/оÑтанова обновлена и дополнена информацией про программу (также пользовательÑкие заÑтавки) и проект OpenSCADA, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¸ÐºÐ¾Ð½ÐºÑƒ проекта. КонтекÑтное меню ÑпиÑка проектов дополнено пунктом ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ иÑполнÑемых проектов.</li> <li> FIX:QTCfg: Дополнен Ñлежением за Ñменой Ñтраницы Ñ Ð¸Ð½Ð´Ð¸ÐºÐ°Ñ†Ð¸ÐµÐ¹ в дереве навигации и Ñ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ¾Ð¹ к текущему Ñлементу.</li> <li> FIX:VCAEngine: Предотвращено аварийное завершение на больших конфигурациÑÑ… Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ закрытием ÑеанÑов иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ð´Ð¾Ñтупа к наÑледникам виджета (mHerit), добавлением ResRW Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ "mHeritRes". СвойÑтво "Перевод" процедур виджетов целиком перенеÑено под прÑмой доÑтуп и видимоÑÑ‚ÑŒ уÑтановлена только при наличии процедуры, также как видимоÑÑ‚ÑŒ облаÑти текÑта процедуры и периодичноÑти вычиÑÐ»ÐµÐ½Ð¸Ñ Ð¾Ñ‚ выбора Ñзыка.</li> <li> FIX:Vision: СущеÑтвенно унифицирована процедура аутентификации и Ñмены Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² UserStBar::userSel() и объект диалога "DlgUser".</li> <li> FIX:WebVision: Унифицирована Ð¸Ð¼Ð¿Ð»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸Ð¼Ð¸Ñ‚Ð¸Ð²Ð° "Кнопка": переноÑом ÑпецифичеÑких кнопок под <button></button> и добавлением ÑоответÑтвующих CSS-Ñтилей Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ и нажатого ÑоÑтоÑÐ½Ð¸Ñ Ñ Ð¾Ñ‚Ð»Ð¸Ñ‡Ð½Ð¾Ð¹ границей и полупрозрачным изображением. ИÑправлена, в конце концов, проблема Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð²Ñех Ñтраниц контейнера оÑновных Ñтраниц Ñ Ð·Ð°Ð¼Ð¾Ñ€Ð¾Ð·ÐºÐ¾Ð¹ поÑледней потерÑнной Ñтраницы при быÑтром переключении. Дополнено пользовательÑкими CSS правилами интерфейÑа.</li></ul> <h4><span class="mw-headline" id=".D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_3"><span class="mw-headline-number">7.7.1</span> СервиÑные обновлениÑ</span></h4> <ul><li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2719" rel="nofollow noreferrer noopener" target="_blank">третье (3) от 15.11.2020</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2714" rel="nofollow noreferrer noopener" target="_blank">второе (2) от 20.10.2020</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2709" rel="nofollow noreferrer noopener" target="_blank">первое (1) от 21.09.2020</a>.</li></ul> <h3><span class="mw-headline" id=".5B08.02.7528.2F08.04.2020.5D_.D0.9F.D0.95.D0.A0.D0.92.D0.9E.D0.95_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5"><span class="mw-headline-number">7.8</span> [08.02.7528/08.04.2020] ПЕРВОЕ обновление</span></h3> <p>Обновление оÑущеÑтвлено поÑле 1.5 года от <a href="Release_0.9.html" title="Special:MyLanguage/Documents/Release 0.9">релиза 0.9 LTS</a>, ÑоответÑтвенно оно Ñтоит 10 обновлений, поÑкольку им иÑправлено более 250 ошибок и добавлено множеÑтво уÑовершенÑтвований, которые целиком вы можете почитать в <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2677" rel="nofollow noreferrer noopener" target="_blank">протоколе изменений обновлениÑ</a>. </p><p>Ключевыми ÑвойÑтвами Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑвлÑетÑÑ: </p> <ul><li> значительное раÑширение и ÑÑ‚Ð°Ð±Ð¸Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Web-интерфейÑа в течении практичеÑкой ÑкÑплуатации в большом раÑпределённом решении, поÑтроенном на оÑнове Ð¼Ð¾Ð´ÑƒÐ»Ñ <a href="#WebVision">UI.WebVision</a>; также раÑширение и ÑÑ‚Ð°Ð±Ð¸Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð³Ð¾Ñ€Ñчей разработки в течении множеÑтвенного иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð°Ñ‚Ñ‹Ð²Ð°ÐµÐ¼Ð¾Ð³Ð¾ проекта;</li> <li> теÑтирование, иÑправление и раÑширение Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² чаÑти Ñообщений, также Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ Ð¿Ñ€Ð°ÐºÑ‚Ð¸Ñ‡ÐµÑкой ÑкÑплуатации в большом раÑпределённом и ещё резервированном решении, в <a href="#Redundancy">чаÑти обще-ÑиÑтемного кода</a> и Ð¼Ð¾Ð´ÑƒÐ»Ñ <a href="#ModBus">DAQ.ModBus</a>;</li> <li> Ð¿Ð¾Ð»Ð½Ð°Ñ Ñ€ÐµÑтруктуризациÑ, уÑовершенÑтвование и дополнение <a href="#ProjLibs">библиотек OpenSCADA</a> в SQLite файлах;</li> <li> общее улучшение документации, дополнение документацией <a href="#ProjLibs">вÑех библиотек</a> и Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð½Ñтва документации модулей.</li></ul> <h4><span class="mw-headline" id="OpenSCADA_.D0.B1.D0.B8.D0.B1.D0.BB.D0.B8.D0.BE.D1.82.D0.B5.D0.BA.D0.B8_.D0.B8_.D0.BF.D1.80.D0.BE.D0.B5.D0.BA.D1.82.D1.8B"><span class="mw-headline-number">7.8.1</span> <span id="ProjLibs" title="#ProjLibs">OpenSCADA библиотеки и проекты</span></span></h4> <ul><li> FIX:DB.LibsDB.{OscadaLibs,vcaBase}: Обновление перевода. <ul><li> FIX:JavaLikeCalc.doc,doc: Библиотека пользовательÑкого интерфейÑа "Документы" и JavaLikeCalc "Библиотека отчётов и документов" отревизировано, улучшено, дополнено, документировано и документацию добавлена в offline. <ul><li> FIX:doc: {docUsersSet,docAlarmsRep,docMessRep}: Поле "Параметр" переименовано в "ИÑточник", в процеÑÑе глобальной унификации Ñтруктуры Ñообщений нарушений функции alarmSet(). <ul><li> Дополнено реализацией "Годовой отчёт меÑÑчных значений (docRepYear)" Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÐµÐ¹ ввода значений в ручном режиме, поддержкой ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ€ÑƒÑ‡Ð½Ñ‹Ñ… значений в архиве Ñообщений, их Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² таблице и диаграмме.</li> <li> {doc,docDin,docRep2WorkSh(переименованный docRepSm2),docAlarmsRep,docRepInstVals(переименованный docGasNodeMgn),docMessRep,docUsersSet, docRepDay(переименованный docGasNodeDayA),docRepMonth(переименованный docGasNodeMonthA),docRepYear(переименованный docResourcesYear)}: выполнено JavaLikeCalc перевод в tr().</li> <li> {docRepInstVals,docRep2WorkSh,docRepDay,docRepMonth}: Значительным образом перепиÑано, улучшено и Ñделано повторно-иÑпользуемым, позволив подключение DAQ-параметров.</li> <li> docMessRep: Дополнено обработкой удалённых Ñтанций только как дополнительный иÑточник и вÑегда.</li></ul></li> <li> JavaLikeCalc.doc: Дополнено реализацией поÑÑ‚Ñ€Ð¾ÐµÐ½Ð¸Ñ "Диаграммы (diagram)" в SVG.</li></ul></li> <li> PrescrTempl,prescr: Библиотеку интерфейÑа Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ шаблонную библиотеку "Рецепты" отревизировано, улучшено, дополнено, документировано и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в offline. <ul><li> PrescrTempl: Дополнено шаблоном "Менеджер", перенеÑенного из библиотеки контролеров.</li> <li> prescr: Ðлементы библиотеки раÑширены линковкой БД и автоматичеÑким Ñозданием таблиц команд и программ.</li></ul></li></ul></li> <li> DB.LibsDB.vcaElectroEls: Библиотеку интерфейÑа Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ "Ðлементы Ñлектрики" отревизировано, улучшено, дополнено, документировано и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в offline. <ul><li> Дополнено Ñ‡ÐµÑ‚Ñ‹Ñ€ÑŒÐ¼Ñ ÑƒÐ½Ð¸Ñ„Ð¸Ñ†Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼Ð¸ Ñлементами: "Ключ, унифицированный (keyUnif)", "Переключатель, унифицированный (swUnif)", "СоÑтоÑние общее, унифицированное (stGenUnif)", "СоÑтоÑние облаÑти, унифицированное (stAreaUnif)".</li></ul></li> <li> FIX:DB.LibsDB.OscadaLibs: <ul><li> Обновлено на предмет некоторых Ñообщений.</li> <li> FIX:base: Библиотеку шаблонов "ОÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ°" отревизировано, улучшено, дополнено, документировано и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в offline. <ul><li> {anUnif,anUnifSt,manInUnif,digAlarm,codeState,pidUnif,pidUnifImp,SNMP,UPS}: Переведено на унифицированный механизм Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ð¹.</li> <li> Дополнено шаблоном "initConsAssignTrs" обработки выходных транÑпортов инициативных подключений Сокетов Ð´Ð»Ñ Ð»ÑŽÐ±Ñ‹Ñ… типов объектов иÑточников, вроде DAQ-модули, контроллеры и параметры логичеÑкого уровнÑ.</li> <li> Дополнено шаблоном "codeState" Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑоÑтоÑÐ½Ð¸Ñ Ð¿Ð¾ коду.</li> <li> Дополнено реализацией Ñложного ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð¸Ñ‚ÐµÐ»Ñ Ð² шаблоне "ntf", Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ð°Ñ JavaLikeCalc Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸ объекты пользовательÑких протоколов "SMS" и "SMTP" помечены уÑтарелыми.</li> <li> Дополнено шаблоном "UPS", перенеÑено из библиотеки "Промышленные уÑтройÑтва".</li></ul></li> <li> FIX:DevLib: Ð¨Ð°Ð±Ð»Ð¾Ð½Ð½Ð°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ° ÑвлÑетÑÑ Ð¾Ñ‚Ð´ÐµÐ»Ñ‘Ð½Ð½Ð¾Ð¹ чаÑтью оригинальной библиотеки "УÑтройÑтва" Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸ÐµÐ¼ "Промышленные уÑтройÑтва", которую отревизировано, улучшено, дополнено, документировано и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в offline. <ul><li> FIX:IEC60870: Дополнено отдельным временем "tmPoolAll" периодичноÑти полного опроÑа. <ul><li> Дополнено поддержкой пакетов M_ME_TF_1, M_ME_NC_1, раÑширено поддержкой SQ-режима, проверено M_ME_TF_1 и M_ME_NC_1, M_ME_NB_1 в SQ-режиме, AI уÑтановлено в вещеÑтвенный тип.</li> <li> Дополнено опцией "syncTimePLC" ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ñинхронизации ПЛК.</li></ul></li> <li> Дополнено правильной реализацией DCON в шаблонах DCON_Prt, DCON_Prt_DI, DCON_Prt_AO, DCON_Prt_DO, объект пользовательÑкого протокола "DCON" удалён.</li> <li> Дополнено полнофункциональной реализацией протокола OWEN в чаÑти Ñбора данных.</li> <li> Дополнено реализацией DNP3 и её иÑпытано Ñ outstation-demo из opendnp3.</li> <li> Дополнено реализацией модулей Ñчётчиков Pulsar-M (pulsarM).</li> <li> Дополнено реализацией Ñканера ModBus, как шаблон "ModBusScan".</li></ul></li> <li> LowDevLib: Ð¨Ð°Ð±Ð»Ð¾Ð½Ð½Ð°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ° ÑвлÑетÑÑ Ð¾Ñ‚Ð´ÐµÐ»Ñ‘Ð½Ð½Ð¾Ð¹ чаÑтью оригинальной библиотеки "УÑтройÑтва" Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸ÐµÐ¼ "Ðизкоуровневые уÑтройÑтва", которую отревизировано, улучшено, дополнено, документировано и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в offline. <ul><li> FIX:{1W_DS9097,1W_DS9097U}: ИÑправлено определение ÑемейÑтва уÑтройÑтва как шаблон 0x7F, обнаружено на поÑледних DS2413 Ñ Ð¿ÐµÑ€Ð²Ñ‹Ð¼ байтом 0xBA.</li> <li> Дополнено реализацией шаблона "MAX6675", низкоуровневого SPI Конвертора K-Термопар-в-Цыфру КомпенÑации-Холодных-Спаев.</li> <li> Дополнено реализацией шаблона "SHT3x", низкоуровневого ÑенÑора влажноÑти.</li> <li> Дополнено реализацией шаблона ADS111x(ADS101x) и MCP4725, низкоуровневых I2C-чипов.</li></ul></li> <li> FIX:JavaLikeCalc.techApp: JavaLikeCalc библиотеку "ТехнологичеÑкие аппараты" документировано и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в offline. Ð’Ñе КирилличеÑкие Ñимволы удалено из идентификаторов моделей и вÑе текÑÑ‚Ñ‹ откорректировано.</li> <li> tests: Библиотека шаблонов "ТеÑÑ‚Ñ‹" переименована из библиотеки "S7".</li> <li> JavaLikeCalc.servProc: JavaLikeCalc библиотеку "СервиÑные процедуры" отревизировано, неÑколько улучшено, дополнено, документировано и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в offline. <ul><li> docOffLine: Значительно раÑширено детализацией Ñообщений про ошибки и размещением незавершённых Ñтраниц в аргументе "pagesCur" Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÑ€Ñ‹Ð²Ð¾Ð².</li></ul></li> <li> JavaLikeCalc.regEl: JavaLikeCalc библиотеку "Ðлементы регулированиÑ" документировано и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в offline.</li></ul></li> <li> FIX:DB.LibsDB.vcaBase: <ul><li> FIX: ÐŸÐ¾Ð»Ð½Ð°Ñ Ð¸ Ð·Ð½Ð°Ñ‡Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¾Ñ‡Ð¸Ñтка от КирилличеÑких Ñимволов и уÑовершенÑтвование оригинальных идентификаторов и Ñообщений, Ñ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ их на ÐнглийÑкий Ñзык.</li> <li> БольшинÑтво Ñтандартных кадров и виджетов адаптировано к ÑтилÑм и Ñоздано Ñтиль "Светлый" Ð´Ð»Ñ Ð²Ñех проектов.</li> <li> FIX:Main: Библиотеку интерфейÑов Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ "ОÑновные Ñлементы" отревизировано, улучшено, дополнено, документировано и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в offline. <ul><li> FIX:{alarmsAct,alarmsSt}: <ul><li> РаÑширено поддержкой квитации-подтверждениÑ, комментариÑми и пользовательÑким полÑми.</li> <li> Поле "Параметр (prm)" переименовано в "ИÑточник" где размещено вÑе удалённые и локальные иÑточники.</li></ul></li> <li> RootPgSo: УÑовершенÑтвованно динамичеÑким Ñозданием объектов Ñигнализации, количеÑтво которых ограничено только общей длиной названий объектов Ñигнализации и их Ð´Ð²ÑƒÐ¼Ñ Ñ€Ñдами. ПоддерживаетÑÑ Ñ‚Ð°ÐºÐ¶Ðµ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ ÐºÐ½Ð¾Ð¿Ð¾Ðº объектов Ñигнализации Ñправа от логотипа. Типы Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ‚Ð°ÐºÐ¶Ðµ унифицировано идентификаторами "view[1..6]", когда пользователь может их назначить в ÑобÑтвенный ÑпоÑоб. СовмеÑтимоÑÑ‚ÑŒ Ñ Ð¾Ñ€Ð¸Ð³Ð¸Ð½Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ названиÑми видов Ñохранено Ð´Ð»Ñ ÑущеÑтвующих проектов!</li> <li> Дополнено: <ul><li> панелью-окном ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ "ВычиÑление параметра графика (graphCalc)";</li> <li> объектным виджетом "СвойÑтва объекта (objProps)";</li> <li> кадром нарушений "ÐÐ°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ â€” отчёт (alarmsStReport)";</li> <li> виджетом "Метка изображением (ImgLab)";</li> <li> кадром "Менеджер пользователей (userManager)".</li></ul></li> <li> grph_panel: Дополнено незавиÑимой кнопкой Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½Ð° Ð²Ñ€ÐµÐ¼Ñ ÐºÑƒÑ€Ñора вмеÑто непрÑмого Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ Ñмещении глубины.</li> <li> ElViewGraph: Размер шрифта Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ ÑƒÐ¼ÐµÐ½ÑŒÑˆÐµÐ½ Ñ 15 до 11 и цвет тренда отображаемых Ñлементов по умолчанию уÑтановлен в "gray".</li> <li> Кадры рецептов "prescrEdit", "prescrRun" и "prescrRunSimple" вынеÑено в новую библиотеку "Рецепты (prescr)".</li> <li> cntrRegul: Толщину трендов увеличено до 2 пикÑелей.</li></ul></li> <li> FIX:mnEls: Библиотеку Ñлементов интерфейÑа Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ "Ðлементы мнемоÑхемы" документировано и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в offline.</li></ul></li> <li> FIX:Model.{AGLKS,Boiler}: Значительно обновлено ÑоглаÑно общим изменениÑм в библиотеках. <ul><li> FIX: Значительно очищено и вÑе оригинальные идентификаторы переименованы ÐнглийÑким Ñзыком, в процеÑÑе ревизии документации.</li> <li> FIX: AGLKS.vca,Boiler.St: Ðдаптировано к новым изменениÑм оÑновной Ñтраницы. <ul><li> Создан Ñтиль "Светлый" Ð´Ð»Ñ Ð²Ñех проектов. Стили переведены на Ñхему прÑмого иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтилей при их наличии вмеÑто "Ðет ÑтилÑ" и добавлен Ñтиль "Типовой".</li></ul></li> <li> FIX:Model.AGLKS: <ul><li> FIX:St: <ul><li> FSArch.1m: Удалены Ñтранные и временные архиваторы: FSArch.{NetRequsts,test,StatErrors}, DBArch.test и добавлены актуальнные: FSArch.{alarms,actions,SYS}, DBArch.SYS.</li></ul></li> <li> FIX:vca: ПерепривÑзаны аналоговые параметры и графики.</li></ul></li></ul></li></ul> <h4><span class="mw-headline" id="API"><span class="mw-headline-number">7.8.2</span> API</span></h4> <p><i>!!!!:ИзменениÑ</i>: </p> <ul><li> SYS: Типовой конÑтруктор ResMtx уÑтановлен в true Ð´Ð»Ñ "isRecurs", поÑкольку Ñто Ð¾Ð±Ñ‰Ð°Ñ ÑитуациÑ. <ul><li> БольшинÑтво функций Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² контейнер узлов раÑширено возвратом результирующего идентификатора/имени Ñозданного узла длÑ: chldAdd(), TSecurity::{usrAdd(),grpAdd()}, TTypeBD::open(), TTypeTransport::{inAdd(),outAdd()}, TValue.chldAdd(), DAQ.{TController::add(),TParameter::add(),BlockCalc.blkAdd()}, TTypeArchivator::{messAdd(),valAdd()}, TArchiveS::valAdd(), UI.VCAEngine::{wlbAdd(),prjAdd(),WLib.add(),Project.add(),Project.Page.pageAdd()}, UI.WebUser.uPgAdd().</li> <li> TFld::Selected везде переименован в TFld::Selectable.</li> <li> Вариант Ñпециальной функции strMess() Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ÐµÐ¼ размера результирующего ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½ и заменен функцией strEncode() Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ TSYS::Limit.</li> <li> chldList() и chldPresent() Ñделаны виртуальными.</li></ul></li> <li> DAQ,Special: Ðтрибут "run_st" в TPrmTmplLib и TSpecial переименован в runSt.</li> <li> Archives: TArchiveS::messPut() очищено от аргумента "force".</li> <li> Protocols.HTTP: Функции пользовательÑкого API pgAccess(), pgCreator() перенеÑены из TProtocol в TProtocolIn.</li> <li> Transports.In: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ protocol() переименована в protocols() и удалена protocolFull().</li></ul> <p><i>ДополнениÑ</i>: </p> <ul><li> SYS: Добавлен общий механизм замков через контейнер замков, Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ commonLock(). <ul><li> TConfig,*: Функции API Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ TConfig::cfg() и TConfig::cfgSet() раÑширены контролем прав.</li> <li> Дополнено функциÑми TCfg::toDefault() и TConfig::cfgToDefault() ÑброÑа конфигурационного контекÑта к типовому.</li> <li> Объект TFunction дополнен признаком изменённоÑти процедуры isChangedProg(), и флажок TFld::Selectable и Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ioAdd() дополнены результатом позиции добавленного Ð’Ð’.</li> <li> Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñа Ð£Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ "load" раÑширен определением выбранной БД в атрибуте "force", Ð´Ð»Ñ Ð¾ÑущеÑÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð°ÐºÐ¾Ð¹ операции над конкретным узлом.</li> <li> XMLNode: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð² attr() раÑширена опциональным аргументом Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ÑутÑтвиÑ.</li> <li> "МаÑÑив (Array)" проÑтранÑтва Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ€Ð°Ñширен функциÑми indexOf() и lastIndexOf().</li> <li> Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ API Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ SYS.fileRead() раÑширена аргументами ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¸ размера блока чтениÑ.</li> <li> Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ API Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ strEncode() дополнена поддержкой вариантов "ToLower" и "Limit".</li> <li> API Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¾ функцией strFromCharUTF() Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтроки из UTF-8, UTF-16, UTF-16LE, UTF-16BE, UTF-32, UTF-32LE, UTF-32BE.</li> <li> Дополнено определением периодичноÑти ÑервиÑного Ð·Ð°Ð´Ð°Ð½Ð¸Ñ SERV_TASK_PER=10.</li> <li> API Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¾ функцией SYS.fileSize().</li> <li> Добавлена Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ str2atime() Ð´Ð»Ñ ÐºÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð°Ñ†Ð¸Ð¸ времени в Ñтроке во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚ Ñпохи UNIX Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ GMT.</li> <li> TError дополнено названиÑми кодов ошибок в перечиÑлении "Codes", которые везде иÑпользованы.</li> <li> Специальные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¾Ð² дополнено названием ALRM_ARCH_CH_NM ("<alarmsChange>"), Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñтой Ñмены приÑутÑтвующих нарушений.</li> <li> ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹ USER_ITS_LIMIT (1000000) Ð´Ð»Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð¸Ñ‡ÐµÑтва Ñлементов вроде пользовательÑких маÑÑивов из DAQ.JavaLikeCalc.</li></ul></li> <li> DB: Добавлен контроль Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¹ в Ñдре OpenSCADA функциÑми trTm_ClsOnOpen(), trTm_ClsOnReq() и trPr_ClsTask(). <ul><li> Добавлен контроль процеÑÑа пере-Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð¾Ð² БД функцией disabledByUser().</li> <li> Дополнено конфигурацией "Ð’Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ открытых таблиц", Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ñ… таблиц функцией tblLifeTime().</li> <li> Ðтрибут TBD::mEn перенеÑён в защищённое проÑтранÑтво.</li></ul></li> <li> ТранÑпорты: <ul><li> In: Дополнено виртуальными функциÑми keepAliveReqs(), keepAliveTm() Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð³Ð¾ KeepAlive на Web.</li> <li> Out: Дополнено ÑервиÑом Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ñ‹Ñ… транÑпортов ÑоглаÑно временем жизни (неактивноÑти), ÑервиÑной функцией outLifeTime(). <ul><li> РаÑширено полем общего ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚Ð¾Ðº в функции attempts().</li> <li> Унифицировано контролем времени поÑледнего запроÑа в функции lstReqTm().</li> <li> Добавлена Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ outAddrHelp() Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¾Ð±Ñ‰ÐµÐ¹ помощи по адреÑу модулей выходных транÑпортов.</li></ul></li></ul></li> <li> Protocol.HTTP: РаÑширено функцией пользовательÑкого API setUser() Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸Ñ†Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ.</li> <li> DAQ: TController::alarmSet() раÑширено аргументом "force" Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð½ÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ ÑƒÑтановки нарушений на объектах контроллеров в резервировании. <ul><li> DAQ-параметры дополнены функцией пользовательÑкого API alarmSet() и функцией vlSetRednt() унифицированной запиÑи значений в резервировании.</li> <li> TDAQS::rdRestDtTm() раÑширено возвратом double вмеÑто float.</li> <li> Дополнено функцией пользовательÑкого API daqAt().</li> <li> Функцию пользовательÑкого API funcCall() раÑширено аргументом "err".</li> <li> JavaLikeCalc: Функции пользовательÑкого API charAt() и charCodeAt() раÑширено поддержкой UTF. Функции пользовательÑкого API раÑширено isNaN() Ð´Ð»Ñ bool, integer, real, string (оÑобенно Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ чиÑел в Ñтроке).</li></ul></li> <li> Ðрхивы: <ul><li> Объекты TMArchivator и TArchiveS дополнено функцией redntTm() и rdTm() Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñледнего времени Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¾Ð² Ñообщений.</li> <li> TArchiveS::rdRestDtOverTm() раÑширено возвратом double вмеÑто float.</li> <li> Ðрхивы значений дополнено общей опцией autoIdMode() режима Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð° автоматичеÑки Ñоздаваемых архивов Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð°Ð¼Ð¸ перечиÑÐ»ÐµÐ½Ð¸Ñ AutoIdMode::{BothPrmAttrId,OnlyPrmId,OnlyAttrId}.</li> <li> Val: Добавлены функции API Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ getVals() и setVals() Ð´Ð»Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ общего механизма доÑтупа к архивам/иÑтории в маÑÑиве и Ñ Ñ„Ð¸ÐºÑированной периодичноÑтью.</li></ul></li> <li> UI: Декларацию контекÑтной документации из опиÑÐ°Ð½Ð¸Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… узлов унифицировано функцией TUIS::docKeyGet(). <ul><li> VCAEngine: Добавлена Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑкого API ÑƒÑ€Ð¾Ð²Ð½Ñ ÑеанÑа this.ownerSess().uiCmd(). Виджет иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½ функцией API Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ this.attrList() Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÑ‡Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð² виджета.</li></ul></li></ul> <h4><span class="mw-headline" id=".D0.A1.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D0.B0"><span class="mw-headline-number">7.8.3</span> СиÑтема</span></h4> <ul><li> FIX: Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ñходного кода и Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹: <ul><li> TMess: Дополнено очиÑткой переменной Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ LC_ALL и уÑтановкой "LANG" ÑÑли пуÑто, Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ LC_NUMERIC=C в конце концов.</li> <li> FIX:.,*: ИÑправлено множеÑтво оригинальных Ñообщений иÑходного кода также в течении Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð½Ñтва модулей.</li> <li> FIX:DAQ.JavaLikeCalc: ИÑправлено перевод JavaLikeCalc кода функцией tr() в Ñоздании таблицы перевода "Trs" и запиÑей там в проÑтом режиме (один Ñзык).</li> <li> КонтекÑÑ‚Ð½Ð°Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ: <ul><li> ВнеÑÐµÑ‚ÐµÐ²Ð°Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð° некоторыми модулÑми OpenSCADA и большинÑтвом библиотек внутренних процедур и графичеÑких Ñлементов. Файл общих CSS-Ñтилей внеÑетевой документации "doc/en/files/doc.css" улучшено выключением прозрачного фонового цвета и некоторыми ÑвойÑтвами выбора Ñзыка.</li> <li> Унифицировано декларацией из опиÑÐ°Ð½Ð¸Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… узлов в функции TUIS::docKeyGet() и добавлены узлы Ð´Ð»Ñ Ñтого: <ul><li> DAQ-шаблоны и JavaLikeCalc библиотеки;</li> <li> СВУ-библиотеки в UI.VCAEngine и UI.Vision.</li></ul></li> <li> UI: TUIS::docGet() дополнено кодом Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ LTS Ñборок и иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð¼Ð¾Ñ€Ð¾Ð¶ÐµÐ½Ð½Ð¾Ð¹ LTS документации на OpenSCADA файл-Ñервере.</li> <li> FIX:DAQ.JavaLikeCalc,UI.VCAEngine: ИÑправлена Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð²Ð½ÐµÑетевой документации Ð´Ð»Ñ "User_API".</li></ul></li></ul></li> <li> FIX: Сборка: <ul><li> FIX:configure.ac: ВерÑÐ¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ¸ Ñдра увеличена до 3:7:0 и верÑÐ¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ увеличена до 0.9.1.</li> <li> Дополнено корневыми файловыми ÑиÑтемами (chroots) Debian 10, CentOs 8 и Ubuntu 20.04 Ð´Ð»Ñ Ñборки OpenSCADA. <ul><li> ИÑходные текÑÑ‚Ñ‹ значительно почищены на предмет предупреждений Ñборки из GCC 9 (CentOs 8).</li> <li> UI.{QTCfg,Vision}: Ðдаптировано к Ñборке в окружении Debian 10 на предмет Qt5.11.3, GCC8 и ошибки около конфликта макроÑа message() в StdLibC++ через Qt5.</li></ul></li></ul></li> <li> Android: Изучено поведение иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ QT_SCALE_FACTOR на Android, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑƒÑтановлена в 1.5 и удален типовой шрифт "Helvetica,12,-1" вмеÑте Ñ CSS-правилами QScrollBar.</li> <li> ÐœÐ¾Ð´ÑƒÐ»ÑŒÐ½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¿Ð¾Ð´ÑиÑтемы "Специальные" увеличена до 12; подÑиÑтемы "БД", "DAQ", "Ðрхивы" и "UI" увеличена до 13; подÑиÑтемы "ТранÑпорты" увеличена до 15.</li> <li> FIX: ПотоковоÑÑ‚ÑŒ, заданиÑ, реальное Ð²Ñ€ÐµÐ¼Ñ Ð¸ замки: <ul><li> Ðекоторые общие реÑурÑÑ‹ данных dataRes() заменены ÑобÑтвенными реÑурÑами, в оÑновном из-за Ð½Ð°Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² Protocol.HTTP и <b>DAQ.ModBus</b>.</li> <li> FIX: Добавлен механизм общих замков через контейнер замков, Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ commonLock(). <ul><li> FIX: Transport.{Sockets,SSL}: ИÑпользовано Ð´Ð»Ñ ÑиÑтемных функций вроде getaddrinfo(), которые не ÑвлÑÑŽÑ‚ÑÑ Ð¼Ð½Ð¾Ð³Ð¾Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ñ‹Ð¼Ð¸.</li></ul></li> <li> Планирование задач дополнено фазированием их вызова, что делает нагрузку на процеÑÑор ровной.</li> <li> FIX: Ожидание функции TCntrNode::nodeDis() иÑправлено Ð´Ð»Ñ Ð½ÑƒÐ»ÐµÐ²Ð¾Ð³Ð¾ времени и Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ chldDel() уÑтановлена в отÑутÑтвие Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾ умолчанию.</li> <li> FIX: ИÑправлена Ð½ÐµÐ³Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ð¿Ñ€Ð¸Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚ÑŒ политики "BATCH".</li> <li> Archive,DAQ.Controller: Ð”Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ времени Ñообщений и значений в оÑновном иÑпользовано TSYS::curTime()/1000000 вмеÑто time(NULL) поÑкольку Ð²Ñ€ÐµÐ¼Ñ Ñообщений и значений в микроÑекундах и помечено TSYS::curTime().</li></ul></li> <li> FIX: <span id="Redundancy" title="#Redundancy"><b>Резервирование</b></span>: <ul><li> .,UI.{QTCfg,Vision,WebCfg,WebCfgD}: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ "Передача локальных первичных команд" резервированных ÑиÑтем унифицирована и раÑширена полным перемещением в TCntrNode::cntrCmd(), итак, Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ð° данное Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ Ð´Ð»Ñ Ð»ÑŽÐ±Ñ‹Ñ… вызовов также из Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ.</li> <li> Archives,DAQ.DAQGate: Обработка верхней границы времени Ñообщений в резервировании и DAQGate изменена на иÑпользование поÑледнего ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð° его запроÑа дважды, чтобы предотвратить потере Ñообщений на границе. <ul><li> FIX: Резервирование и DAQ.DAQGate воÑÑтановлены в запиÑи больших архивных блоков значений, в оÑновном в воÑÑтановлении учаÑтков архива значений.</li> <li> Первое получение нарушений в резервировании Ñообщений включено только при наличии архиваторов Ñообщений в резерве.</li> <li> Размещение Ñообщений в архиваторах процедурой Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ TMArchivator::redntDataUpdate() изменено на иÑпользование функции put(), Ð´Ð»Ñ Ð¾ÑущеÑÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ñтой операции автоматичеÑки Ð´Ð»Ñ Ð²Ñех полученных Ñообщений под замком.</li></ul></li> <li> DAQ,DAQ.*: ЗапиÑÑŒ значений в резервировании унифицировано функцией vlSetRednt(). Ð¡ÐµÑ€Ð²Ð¸Ñ "TValue::get:/serv/attr" раÑширен неÑколько лишним запроÑом поÑледнего запрошенного Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ EVAL там при потере ÑоединениÑ.</li></ul></li> <li> Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ strEncode() дополнена вариантом "Limit" Ð´Ð»Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° Ñтроки Ñ ÑƒÑ‡Ñ‘Ñ‚Ð¾Ð¼ переменчивоÑти UTF-8, и Ñледующие Ñлементы переведены на неё, вмеÑто удалённого ограничивающего варианта функции strMess(): ключи TConfig, Ð’Ð’ DAQ-шаблонов, DB.SQLite, UI.QTCfg.</li> <li> FIX: КонфигурациÑ: <ul><li> TConfig,TCfg: Ключевые Ð¿Ð¾Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹ ограничением их размера перед обрезанием на Ñтороне БД. <ul><li> *: Функции Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹ обработкой Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð°, или названиÑ, и Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¸Ñ… в размере, возвратом результирующего Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ñ‚Ð¾Ñ€Ð°, Ñ Ð¸Ñпользованием раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ узла chldAdd() до прÑмого возврата идентификатора и проÑтого ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ узла Ð´Ð»Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñ‹Ñ….</li> <li> DAQ: Идентификаторы Ð’Ð’ ЛогичеÑкого Ð£Ñ€Ð¾Ð²Ð½Ñ DAQ-шаблонов раÑширены ограничением размера до 1.5*OBJ_ID_SZ=30 Ñимволов и дополнены их обрезанием при Ñоздании.</li> <li> ТранÑпорты: Размер Идентификатора выходных транÑпортов уÑтановлен в OBJ_ID_SZ*2, поÑкольку они могут комбинироватьÑÑ Ð¸Ð· обычного идентификатора узла и некоторого префикÑа, в автоматичеÑком режиме.</li> <li> Дополнено функцией уÑтановки полей TCfg в типовое значение, Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐµ значений предыдущих запиÑей в отÑутÑтвующие полÑ.</li></ul></li> <li> TConfig,*: Функции пользовательÑкого API Ð´Ð»Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ cfg() и cfgSet() раÑширены контролем доÑтупа.</li> <li> Загрузка из выбранной БД улучшено предварительной проверкой Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð² функции TSYS::chkSelDB().</li> <li> TCntrNode,DAQ,DAQ.JavaLikeCalc: Дополнено функцией load__() Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ некоторых дейÑтвий в конце загрузки.</li></ul></li> <li> Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð£Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ: <ul><li> *: Унифицировано на предмет ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ объектов узлов и очищено лишние модификации, переноÑом модификации из контекÑта иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ опцию "modifCalc".</li> <li> .,UI.{QTCfg,WebCfgD}: Таблицы раÑширены отдельной помощью по колонкам и Ñчейкам. <ul><li> ТранÑпорты: Таблица внешних хоÑтов OpenSCADA раÑширена контекÑтной помощью к Ñчейке адреÑа транÑпорта, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÑŽ outAddrHelp().</li></ul></li></ul></li> <li> DAQ-шаблоны и вÑе их реализации дополнены функцией ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð² выбора из второй и третьей Ñтроки шаблонного Ð¿Ð¾Ð»Ñ "Значение", TFunction::IO дополнен флагом TFld::Selectable.</li> <li> Завершена ÑƒÐ½Ð¸Ñ„Ð¸Ñ†Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸ÑŽ DAQ-шаблонов — TPrmTempl::Impl, и такие Ñлементы мигрированы и адаптированы к ней: DAQ.{JavaLikeCalc,<b>ModBus</b>,LogicLev,Siemens}, Protocol.{ModBus,UserProtocol}, UI.WebUser.</li> <li> FIX:DAQ,Archive.DBArch: Реализован копирующий конÑтруктор TElem Ð´Ð»Ñ Ð¸ÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ в Archive.DBArch и многих групп-таблиц в групповом табличном режиме.</li> <li> Function,DAQ.{JavaLikeCalc,LogicLev,<b>ModBus</b>,Siemens}: РаÑширено Ñлежением за Ñменой программы функции и на предмет гарÑчего перезапуÑка иÑполнÑемых процедур, уÑтановкой флага "f_start".</li> <li> TMess,XMLNode: Дополнено функцией setUTF8(), Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ UTF-8 из их кодов, взÑто из XMLNode Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² других меÑтах.</li></ul> <h4><span class="mw-headline" id=".D0.91.D0.94"><span class="mw-headline-number">7.8.4</span> БД</span></h4> <ul><li> FIX:*: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ ÑброÑа конфигурационного контекÑта cfgToDefault() иÑпользована в начале функции dataSeek() и fieldSeek(), поÑкольку Ñто обÑÐ·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ, как минимум Ð´Ð»Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð³Ð¾ файла, и должна также оÑущеÑтвлÑÑ‚ÑŒÑÑ Ð´Ð»Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ в БД отноÑительно новых полей.</li> <li> Дополнено контролем Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¹ в Ñдре OpenSCADA, в ÑервиÑной задаче Ð´Ð»Ñ Ñ‚Ð°Ð¹Ð¼Ð°ÑƒÑ‚Ð° > 10 Ñекунд или в отдельной на БД задаче быÑтрого Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¹ общих СУБД. Ð”Ð»Ñ Ñ‡ÐµÐ³Ð¾ добавлена Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ trTm_ClsOnOpen(), trTm_ClsOnReq() и trPr_ClsTask().</li> <li> Объекты БД дополнены воÑÑтановлением их Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле потери Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ (или другой причины) Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑƒÑмотренных к включению и не выключенных пользователем, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ disabledByUser().</li> <li> Дополнено конфигурацией "Ð’Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ открытых таблиц, Ñекунд", Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ñ… таблиц.</li> <li> FIX:{SQLite,MySQL,PostgreSQL,FireBird}: <ul><li> FIX:{MySQL,PostgreSQL,FireBird}: УÑовершенÑтвовано и проверено горÑчее воÑÑтановление потерÑнных подключений и без потери данных. <ul><li> FIX:FireBird: ВоÑÑтановлено оÑновную работу в запроÑе первичных ключей и адаптировано к FireBird верÑии 3.</li> <li> FIX:MySQL: Решено Ñ Ð°Ð²Ð°Ñ€Ð¸Ð¹Ð½Ñ‹Ð¼ завершением во вÑтроенном переподключении (по MYSQL_OPT_RECONNECT), который заменён ÑобÑтвенным и горÑчим переподключением. ИÑправлена ошибка "BLOB/TEXT can't have a default value (1)" на Ñовременных верÑиÑÑ… Ñервера MariaDB, полным удалением DEFAULT Ð´Ð»Ñ TEXT.</li></ul></li> <li> SQLite: Дополнено корректной обработкой Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² БД SQLite, при доÑтупе к общим библиотекам из различных процеÑÑов.</li></ul></li></ul> <h4><span class="mw-headline" id=".D0.A1.D0.B1.D0.BE.D1.80_.D0.94.D0.B0.D0.BD.D0.BD.D1.8B.D1.85"><span class="mw-headline-number">7.8.5</span> Сбор Данных</span></h4> <ul><li> TController::alarmSet(): РаÑширено имплементацией концепции Ñ‚Ñ€Ð¸Ð³ÐµÑ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ð¹, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ñ€ÐµÐ´ÑƒÑматривает также пропуÑк нарушений в буфер Ñ Ñ†ÐµÐ»ÑŒÑŽ очиÑтки только при наличии нарушений. <ul><li> Глобально унифицировано и полноÑтью опиÑано в документации на предмет Ñообщений из объектов контроллеров и DAQ-параметров, когда параметр-иÑточник в Ñообщении дополнÑетÑÑ Ð¸Ð¼ÐµÐ½ÐµÐ¼ объекта контроллера.</li> <li> FIX: Изменено на иÑпользование полного ID-пути параметра, Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð»Ð¸Ð·Ð¸Ñм в нарушениÑÑ… от параметров Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñ‹Ð¼Ð¸ идентификаторами, но различными иÑточниками.</li></ul></li> <li> FIX:*: СвойÑтво period() заранее актуализировано, при Ñмене конфигурации "SCHEDULE", Ð´Ð»Ñ Ð¾Ð±ÐµÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð¹ периодичноÑти данных архивов.</li> <li> РаÑширено ранним включением библиотек шаблонов в процеÑÑе загрузки, изначально Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ñпортных протоколов оÑнованных на DAQ-шаблонах.</li> <li> FIX:<span id="ModBus" title="#ModBus"><b>ModBus</b></span>: <ul><li> FIX: Режим "ÐÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ" воÑÑтановлен и проверен на запиÑи поÑле воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ, Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² предотвращении потерь. ÐÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ перенеÑена на поÑле фазы запроÑа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼-задержкой Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñанных значений в атрибутах до Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð¸Ñ Ð±ÑƒÑ„ÐµÑ€Ð° запиÑи.</li> <li> FIX: ИÑправлена работа в режиме резервированиÑ.</li> <li> FIX: ÐžÐ±Ñ‰Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ upVal() поделена на две функции upValStd() и upValLog() Ð´Ð»Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð¾Ð² параметров Ñначала "Стандартный" и "ЛогичеÑкий" тип на конец, Ð´Ð»Ñ Ñлучаев иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… "Стандартного" типа параметров в "ЛогичеÑком".</li> <li> РаÑширено работой Ñ Ð¾ÑˆÐ¸Ð±Ð¾Ñ‡Ð½Ñ‹Ð¼ или пуÑтым транÑпортом подключений, чтобы обеÑпечить его Ñмену из внешних процедур.</li> <li> РаÑширено флагом "s" Ñтрогого запроÑа Ñложных данных.</li></ul></li> <li> FIX:JavaLikeCalc: РаÑширено попыткой воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ¹ процедуры в Ñлучае ошибок в новой, в оÑновном из DAQ-шаблонов. <ul><li> FIX: ИÑправлено аварийное завершение при горÑчей компилÑции, в оÑновном при возврате к корректной процедуре поÑле компилÑции ошибочной, в Ñлучае иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð¾Ð¹ внутренних функций, возможно и внешних также, из-за отÑутÑÑ‚Ð²Ð¸Ñ Ð¾Ñ‡Ð¸Ñтки "fPrmst". Ð’Ñе Ñти очиÑтки унифицированы в функциÑÑ… buildClear(), workClear().</li> <li> УÑтановлено в оÑтановку функции при Ñмене иÑточника программы, Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹.</li> <li> FIX: Предотвращено рекурÑивные вызовы, что наблюдалоÑÑŒ на рекурÑивном Ñоздании виджетов в UI.VCAEngine.</li></ul></li> <li> Siemens: РаÑширен прÑмым определением типа данных адреÑа. LibnoDave обновлен к 0.8.5.1.</li> <li> DAQGate: РаÑширен опцией и функцией Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… удалённых контроллеров в виртуальных параметрах.</li></ul> <h4><span class="mw-headline" id=".D0.90.D1.80.D1.85.D0.B8.D0.B2.D1.8B-.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F"><span class="mw-headline-number">7.8.6</span> Ðрхивы-ИÑториÑ</span></h4> <ul><li> FIX:СообщениÑ: <ul><li> /serv/mess: УÑовершенÑтвовано во вÑтавке, отноÑительно незавиÑимой запиÑи в архив и чиÑто Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ÑутÑтвующих нарушений.</li> <li> Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñов "message", "mess_info", ... к функции Mess->put() перенаправлено на запиÑÑŒ в буфер, Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ñмой запиÑи в архиваторы.</li> <li> TArchiveS::messPut() очищено от аргумента "force".</li></ul></li> <li> FIX:ЗначениÑ: <ul><li> TVArchive::getVals(): УÑовершенÑтвовано обработку неÑвободных буферов (Ñ Ñ„Ð¸ÐºÑированной периодичноÑтью) отноÑительно запроÑа данных из буфера и различных архиваторов, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¿Ñ€Ð¾Ð¼ÐµÐ¶ÑƒÑ‚Ð¾Ñ‡Ð½Ñ‹Ð¹ буферный маÑÑив, который проигрываетÑÑ Ð² конце.</li> <li> FIX: УÑовершенÑтвовано обработку Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимо Ð´Ð»Ñ Ð±ÑƒÑ„ÐµÑ€Ð°, архиваторов и их периодичноÑти, Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ запроÑов данных на большом интервале и выÑокой периодичноÑти.</li> <li> FIX: TValBuf.get() переключено из генерации иÑключений на возврат EVAL при отÑутÑтвии запрошенных данных.</li> <li> Ðрхиваторы значений дополнены общей опцией "Режим Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ID автоматичеÑки Ñоздаваемых архивов" Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð¾Ð¼ из режимов: "Оба ID параметра и атрибута", "Только ID параметра", "Только ID атрибута". Ð”Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð½Ð°Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑких архивов.</li> <li> TVArchive::{setVals(),setVal()}: ДоÑтуп к функциÑм запиÑи в архив ограничено только пользователÑм в группе "Ðрхив".</li></ul></li> <li> FIX:FSArch: Режим Ñообщений в XML дополнен кешем позиций. <ul><li> FIX: ÐÑ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ñ Ñообщений значительно уÑовершенÑтвована и иÑправлена отноÑительно Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð½ÐµÑкольких различных Ñообщений на одно времÑ.</li> <li> FIX: ИÑправлено отноÑительно ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ info.db и его обработки, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð°Ð´Ñ€ÐµÑ Ð‘Ð” как уникальную ÑущноÑÑ‚ÑŒ вмеÑто ограниченного идентификатора БД, который ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸Ð¼ÐµÐ½ÑƒÐµÑ‚ÑÑ Ñ‡ÐµÑ€ÐµÐ· индекÑацию одинаковых.</li> <li> FIX: Создание каталога архива перенеÑено на начало, до Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ info.db.</li> <li> FIX: ИÑправлена Ð°Ñ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð´ÑƒÐ±Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… Ñообщений в режиме Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð´ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ‚Ð°Ð¼ - перепиÑано.</li></ul></li> <li> FIX:DBArch: <ul><li> FIX: ИÑправлено включение архивов значений в архиваторы Ð´Ð»Ñ Ð½ÐµÐ³Ñ€ÑƒÐ¿Ð¿Ð¾Ð²Ð¾Ð³Ð¾ типа архивации.</li> <li> FIX: Окончательно иÑправлен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¾Ð´Ð¸Ð½Ð¾Ñ‡Ð½Ñ‹Ñ… значений архиву, поÑле неполного иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚ 2018-02-23 только Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… архіватора в периодичноÑти 1 Ñекунда.</li> <li> Ðдаптировано к работе только в режиме прÑмой запиÑи архива, Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð²Ð¾Ð³Ð¾ режима архивов и отноÑительно Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ†ÐµÐ»ÐµÐ²Ð¾Ð¹ информации при запиÑи.</li></ul></li></ul> <h4><span class="mw-headline" id=".D0.A2.D1.80.D0.B0.D0.BD.D1.81.D0.BF.D0.BE.D1.80.D1.82.D1.8B"><span class="mw-headline-number">7.8.7</span> ТранÑпорты</span></h4> <ul><li> .,*: РаÑширено поддержкой выбора многих протоколов и Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ protocol() переименована в protocols(). <ul><li> Дополнено ÑервиÑом Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ñ‹Ñ… транÑпортов по времени жизни (неактивноÑти) и функцией outLifeTime(), унифицировано отноÑительно ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ поÑледнего запроÑа функцией lstReqTm().</li></ul></li> <li> FIX:Serial: ИÑправлен режим "Модем" выходного транÑпорта, корректной обработкой результата функции ResMtx::tryLock(). Поле ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð¼ перенеÑено в поле опций из-за необходимоÑти прÑмого Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ опцией вроде -RS485.</li> <li> FIX:Sockets,SSL: РаÑширено поддержкой IPv6 как Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð½Ñ‹Ñ…, так и выходных транÑпортов, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ getaddrinfo(). <ul><li> Дополнено обработкой (подключением) вÑех IP-адреÑов, полученных из ÑимволичеÑкого, оÑобенно Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ñ‹Ñ… транÑпортов.</li> <li> Выходные транÑпорты дополнены прÑмым определением неÑкольких адреÑов хоÑтов.</li> <li> Выходные транÑпорты уÑовершенÑтвовано в иÑпользовании попыток поÑле Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ запроÑа "Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸Ñтекло.".</li> <li> FIX:Sockets: ИÑправлена обработка выходных транÑпортов Ñ Ð°Ð´Ñ€ÐµÑом "SOCK:{N}" от инициативных подключений, отноÑительно очиÑтки адреÑа уÑтановкой в "SOCK:-1", чем Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑ‚ÑŒ перезапуÑка Ñ Ð¸Ñпользованием уже закрытого опиÑÐ°Ñ‚ÐµÐ»Ñ Ñокета, но возможно уже выделенного другой чаÑтью программы. <ul><li> ÐÐ´Ñ€ÐµÑ Ð²Ñ…Ð¾Ð´Ð½Ñ‹Ñ… транÑпортов в TCP-режиме может быть раÑширен дополнительными параметрами и ÑÐµÐ¹Ñ‡Ð°Ñ Ñледующим полем поÑле режима ÑвлÑетÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸Ñ†Ð¸Ñ€ÑƒÑŽÑ‰ÐµÐµ Ñообщение инициативного Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð² режимі 2, Ñ‚.е. Ñтот режим раÑширен отправкой идентифицирующих Ñообщений поÑле уÑтановки инициативных подключений.</li> <li> "TCP:" Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð°Ð´Ñ€ÐµÑа Ñделан необÑзательным-опциональным.</li> <li> Режим адреÑа входного транÑпорта по умолчанию уÑтановлен в 1 (не закрывать, только по параметрам KeepAlive).</li> <li> Порт по умолчанию уÑтановлен в 10005.</li></ul></li> <li> SSL: Дополнено обработкой NO_*_METHOD Ð´Ð»Ñ TLS1, TLS1_1, TLS1_2, DTLS1 и прÑмой поддержкой DTLSv1_2. Порт по умолчанию уÑтановлен в 10045.</li></ul></li></ul> <h4><span class="mw-headline" id=".D0.A2.D1.80.D0.B0.D0.BD.D1.81.D0.BF.D0.BE.D1.80.D1.82.D0.BD.D1.8B.D0.B5_.D0.9F.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D1.8B"><span class="mw-headline-number">7.8.8</span> ТранÑпортные Протоколы</span></h4> <ul><li> FIX:HTTP: Дополнено корректной поддержкой KeepAlive, функциÑми входных транÑпортов keepAliveTm() и keepAliveReqs(). РаÑширено таблицей БД "HTTP_AuthSessions" внешних ÑеанÑов аутентификации.</li> <li> FIX:ModBus: Ð’Ñ…Ð¾Ð´Ð½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ раÑширена иÑпользованием DAQ-шаблонов. <ul><li> Перечень типов данных таблицы Ð’Ð’ дополнен типом "Объект".</li> <li> Определение варианта протокола по входным запроÑам неÑколько улучшено определением Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¾Ð² RTU и TCP, через учёт типа транÑпорта.</li></ul></li> <li> UserProtocol: РаÑширено поддержкой DAQ-шаблонов.</li> <li> SelfSystem: РаÑширено поддержкой попыток выходных транÑпортов.</li></ul> <h4><span class="mw-headline" id=".D0.98.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81_.D0.9F.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8F"><span class="mw-headline-number">7.8.9</span> Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ</span></h4> <ul><li> FIX: TUIS::mimeGet() изменён на предмет Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° "svg" как "image/svg+xml" Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ SVG-файлов, и множеÑтва таких файлов, на WEB.</li> <li> FIX:VCAEngine,Vision,<b>WebVision</b>: Вариант "LineEdit" примитива "FormEl" дополнен видом "Пароль".</li> <li> FIX: СВУ-Ñтили переведены на Ñхему Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñтилей при их приÑутÑтвии вмеÑто Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ "Ðет ÑтилÑ", также иÑправлено Ñоздание новых Ñлементов и в целом.</li> <li> VCAEngine,Vision: Ð’ÑÑ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÑŽ Ñведена в поле ÑтатуÑа Ð´Ð»Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ð¾Ð², библиотек и проектов; которые дополнены ÑтатуÑом иÑполнÑемой процедуры - наÑледовано, переопределено.</li> <li> FIX:VCAEngine: <ul><li> Страницы проектов дополнены типом "СÑылка", Ð´Ð»Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ð¸ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼Ñти на выÑоко-динамичеÑких и выÑоко-повторÑемых Ñтраницах, на Ñтороне ÑеанÑа проекта. Открытие Ñтраниц при иÑполнении проекта (ÑеанÑÑ‹) улучшено предотвращением лишнего и двойного Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¸ закрытиÑ, что критично Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ ÑÑылок на Ñтраницы.</li> <li> МножеÑтво мероприÑтий около Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¸Ð·ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ… Ñлементов во Ð²Ñ€ÐµÐ¼Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð°. <ul><li> ИÑправлено удаление Ñтраниц проекта во Ð²Ñ€ÐµÐ¼Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð°, на предмет Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸ÑŽ объектов и обеÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ Ð¸Ñ… раннего ÑвÑÐ·Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñтраниц ÑеанÑов вмеÑте Ñо Ñтраницами проектов.</li> <li> Объекты ÑеанÑов переведены на ÑобÑтвенную блокировку данных Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÑ€Ñ‚Ð²Ð¾Ð³Ð¾ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² Ñложных ÑитуациÑÑ…, поÑкольку вызовы Ñтилей иÑпользуют непрÑмой parent().</li></ul></li> <li> ÐžÐ¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð¹ разработки: <ul><li> информационные ÑервиÑÑ‹ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ "/prm/cfg/prj", "/page/page" дополнены получением количеÑтва дочерних Ñтраниц в атрибуте "chPgN" при уÑтановке "getChPgN";</li> <li> дополнено на предмет Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ иконок виджетов в контрольном ÑервиÑе "/serv/wlbBr" загрузки полного дерева виджетов, уÑтановкой атрибутов "disIconsW", "disIconsCW".</li></ul></li> <li> СеанÑÑ‹ проектов СВУ прибраны, в конце концов, из под ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ режима разработки.</li> <li> Добавлено прÑмое определение ÑпецифичеÑких Ð´Ð»Ñ Ð²Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð° атрибутов, Ð¼Ð°Ñ€ÐºÐ¸Ñ€ÑƒÑ Ð¸Ñ… префикÑом "vs_".</li> <li> FIX: Команда ÑеанÑа проекта "close" ÑервиÑа "/serv/pg" принудительно обрабатываетÑÑ, что актуально Ð´Ð»Ñ ÑÑылок на Ñтраницы.</li> <li> FIX: Процедура загрузки СВУ-Ñтраниц дополнена очиÑткой лишних запиÑей и запиÑей унаÑледованных, но отÑутÑтвующих виджетов, в таблице "*_incl".</li> <li> FIX: ИÑправлена работа функции пользовательÑкого API tr() из документов.</li></ul></li> <li> FIX:QTCfg,Vision: ИÑправлена обработка подÑветки ÑинтакÑиÑа текÑтовых полей путём первичной загрузки правил ÑинтакÑиÑу а потом текÑта, Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ€Ñ‡Ðµ текÑта в отдельных ÑлучаÑÑ…, обнаружено в протоколе обмена транÑпорта и Qt 5.11. <ul><li> Дополнено кнопками принудительной загрузки и ÑохранениÑ, в меню.</li> <li> Улучшено формирование Таблиц на предмет Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупной ширины из maximumViewportSize().</li></ul></li> <li> FIX:Vision,<b>WebVision</b>: Улучшен контроль лент прокрутки вложенных Ñтраниц, Ð´Ð»Ñ Ð¾Ð±ÐµÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ Ð¸Ñ… работы отдельно, не двух вмеÑте. <ul><li> FIX:ElFigure: Завершена поддержка отражениÑ, реализацией: в целом, Ñ‡ÐµÑ€Ñ‡ÐµÐ½Ð¸Ñ Ð”ÑƒÐ³Ð¸, Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð² целом и изображением. Заполнение изображением предотвращено от пробелов при доÑтупе поза изображением.</li> <li> FIX:Диаграмма: <ul><li> FIX:Тренды: РаÑширено поÑтроение шкалы времени, Ð´Ð»Ñ Ð¼Ð½Ð¾Ð¶ÐµÑтва Ñуток Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ Ñкрытием времени, и отображение первого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñлева, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñмещение временной зоны. Дополнено поддержкой больших временных интервалов по меÑÑцам.</li> <li> Отключено ограничение точноÑти запрошенных значений архиву, Ð´Ð»Ñ Ð´Ð»Ð¸Ð½Ð½Ñ‹Ñ… Ñчётчиков.</li> <li> Улучшена ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° на медленных каналах и Ñ Ð¿ÐµÑ€Ð¸Ð¾Ð´Ð¸Ñ‡Ð½Ð¾Ñтью буфера значений в 10 Ñекунд.</li></ul></li> <li> Text,Media,Box: РаÑширено отображением курÑора активноÑти.</li> <li> FormEl: Ðекоторые виды (Редактирование Ñтроки, Редактирование текÑта, КомбобокÑ, СпиÑок, Дерево, Таблица) раÑширены отдельным фоном и границей, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑпецифичеÑких пользовательÑких атрибутов "vs_background", "vs_border".</li> <li> Дополнено ÑпецифичеÑким пользовательÑким атрибутом "vs_winTitle" динамичеÑкого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° окна.</li></ul></li> <li> FIX:Vision: <ul><li> ÐžÐ¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð¹ разработки: <ul><li> Дерево проектов переключено на чаÑтичную загрузку ветвей и раÑширение, Ð´Ð»Ñ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ на медленных подключениÑÑ….</li> <li> Дерево виджетов улучшено в работе на медленных подключениÑÑ… путём отключением загрузки иконок виджетов по пороговому времени полной загрузки дерева более 5 Ñекунд и Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñтого Ð´Ð»Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ менее 0.1 Ñекунды.</li></ul></li> <li> РаÑширено планированием периода Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð² завиÑимоÑти от реального качеÑтва Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð² режиме иÑполнениÑ, вроде <b>UI.WebVision</b>.</li> <li> FIX: Общие иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð¾Ð² иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾ÐºÐ½Ð°: <ul><li> FIX: Ручное маÑштабирование окна иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ (отноÑительно полного Ñкрана или макÑимизации) улучшено и иÑправлено в обработке признака isResizeManual.</li> <li> FIX: ИÑправлен запуÑк в полно-Ñкранном режиме и не полное маÑштабирование при воÑÑтановлении в не нулевую позицию окна.</li></ul></li> <li> FIX:FormEl: <ul><li> FIX:Таблица: Улучшена подÑтройка к иÑпользованию макÑимальной ширины из размера виджета и макÑимума порта отображениÑ, поÑкольку только макÑимум порта может быть тут ещё не инициированным. Окончательное иÑправление подÑтройки таблиц, переноÑом процедуры в ÑообщениÑ: Ñоздать, изменить размер и показать. ИÑключены Ñлучайные падений.</li> <li> FIX:Date: ИÑправлено аварийное завершение при уÑтановке конфигурации.</li></ul></li> <li> FIX: ИÑправлена регулÑÑ€Ð½Ð°Ñ Ð·Ð°Ð¼ÐµÐ½Ð° оÑновной Ñтраницы (аварийное завершение) и маÑштабирование в режиме иÑполнениÑ.</li> <li> FIX: ИÑправлено иÑполнение отноÑительно аварийного Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð² закрытии внешних окон при закрытии главного окна.</li> <li> FIX: ИÑправлены диалоги Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑвойÑтв Страниц/Библиотек и Виджетов отноÑительно: <ul><li> Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¿Ð¾ Esc;</li> <li> Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹ изменений по времени в LineEdit;</li> <li> отвÑзки признака редактируемоÑти от видимоÑти в TextEdit;</li> <li> Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚ÐµÑ€Ðµ изменений во вкладке "Обработка";</li> <li> Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ изменение наÑледованной вычиÑлительной процедуры.</li></ul></li> <li> Контроль за фокуÑом перепиÑан в Ñпецифичный около СВУ-виджетов контроль, а не Qt-виджетов, что похоже на UI.WebVision и что предотвращает некоторые проблемы.</li> <li> ElFigure: Редактирование фигур переключено в нормальный режим, без какой-нибудь транÑформации (поворота и отражениÑ).</li></ul></li> <li> FIX:<span id="WebVision" title="#WebVision"><b>WebVision</b></span>: <ul><li> FIX:ОÑновное функционирование: <ul><li> FIX: JS Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ servSet() запиÑи на Ñервер переключена в Ñинхронный режим Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚ÐµÑ€ÑŒ.</li> <li> Унифицирована оÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° фоновых объектов отноÑительно поддержки опциональных фоновых объектов, Ð´Ð»Ñ ÑƒÐ¼ÐµÐ½ÑŒÑˆÐµÐ½Ð¸Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ количеÑтва фоновых объектов, где обÑзательными ÑÐµÐ¹Ñ‡Ð°Ñ ÑвлÑÑŽÑ‚ÑÑ: "ElFigure", "Диаграмма", "Документ", "FormEl"; и опциональный только "ТекÑÑ‚".</li> <li> Границу вертикального раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð¾Ñновного окна уÑтановлено в 10% от общего размера и в 50% Ð´Ð»Ñ ÑƒÐ¼ÐµÐ½ÑŒÑˆÐµÐ½Ð¸Ñ, Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼Ð¸Ð³Ð°Ð½Ð¸ÑŽ на FireFox от примечаний про блокирование внешних окон. УÑтановлено иÑпользование-включение вÑтроенного режима маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑоглаÑно к window.devicePixelRatio равного 1 на уровне Web-бравзера.</li> <li> Значительно улучшено обнаружение потерь Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ñ€ÑƒÐ·ÐºÐ¸ оÑновной Ñтраницы, в ÑлучаÑÑ… возврата к уже закрытым ÑеанÑам в Web-браузере.</li> <li> Дополнено реализацией ÑпецифичеÑкого к визуализатору атрибута "userSetVis".</li> <li> FIX: ВоÑÑтановлена перегрузка целого дерева виджетов Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚ÑутÑтвующих виджетов в визуализаторе при их удалении в СВУ-движке.</li> <li> FIX: Предотвращены лишние и отдельные запроÑÑ‹ Ñодержимого вложенных Ñтраниц при запуÑке.</li> <li> FIX: Улучшено поведение ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ñ„Ð¾ÐºÑƒÑа и предотвращены ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¼Ñ‹ÑˆÐ¸ вне Ñтраниц.</li></ul></li> <li> Дополнено контролем кеша Ñтраниц по времени жизни и макÑимальному количеÑтву Ñтраниц как на Ñтороне Ñервера, так и Web-бравзера, итак Ñтот модуль, на данное времÑ, больше подходит Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ в оперативном режиме!</li> <li> Контроль ÑеанÑов: <ul><li> РаÑширено возможноÑтью ручного Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ñ… ÑеанÑов от админиÑтративного пользователÑ.</li> <li> FIX: Обычные пользователи иÑключены от возможноÑти Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº чужим ÑеанÑам.</li> <li> FIX: ОÑновной код запроÑа GET значительно упрощён отноÑительно Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñм к СВУ-ÑеанÑам без локальных предÑтавителей.</li> <li> Дополнено ÑоÑтоÑнием открытых ÑеанÑов на Ñтранице контролÑ, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ‹Ð¹ проект и пользователÑ.</li></ul></li> <li> FIX:Панель ÑтатуÑа: <ul><li> Добавлен уровень нарушений Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÐµÐ¹ глобальной квитации, отправкой "ws_alarmLev".</li> <li> РаÑширено поддержкой СВУ-Ñтилей в их отображении и изменении.</li> <li> FIX: ИÑправлено в формировании размера панели ÑтатуÑа, обновлении и предотвращении её Ð¼Ð¸Ð³Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ обновлении оÑновной Ñтраницы.</li></ul></li> <li> FIX:FormEl: <ul><li> FIX:{Tree,Table}: иÑправлен раÑчёт ширины границы и отÑтупа в конечной геометрии. <ul><li> FIX:Tree: ИÑправлена обработка пуÑтой Ñтроки в конце. Дополнено маÑштабированием изображений дерева управлениÑ.</li></ul></li></ul></li> <li> РаÑширено уÑтановкой визуальных Ñлементов СВУ на предмет атрибута "class" в "Примитив {WPrimitive}" и атрибута "id" в идентификатор виджета вроде "wdg_{id}", Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð¾Ñ‰ÐµÐ½Ð¸Ñ Ð´ÐµÑ‚Ð°Ð»ÑŒÐ½Ð¾Ð¹ подÑтройки.</li></ul></li> <li> FIX:QTStarter: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ updLookFeel() иÑправлена на предмет возврата типа "void". Добавлена ÑмулÑцию правой клавиши мыши и контекÑтного меню при удержании левой клавиши мыши в течении времени, уÑтановленного опцией командной Ñтроки --simulRightMKeyTm. Ðто Ð²Ñ€ÐµÐ¼Ñ ÑƒÑтановлено в 2 Ñекунды Ð´Ð»Ñ Android.</li> <li> FIX:QTCfg: <ul><li> FIX: ИÑправлено применение-принÑтие забытых изменений редактируемых виджетов при переключении к другому узлу. Ðлементы TextEdit иÑправлены отноÑительно Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°ÐºÐ° редактированиÑ, который отвÑзан от видимоÑти.</li> <li> Добавлен намёк к группам узлов Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÐ·Ð»Ð°.</li> <li> Операции перемещениÑ, в конфигурационной таблице, раÑширены горÑчими клавишами "Ctrl+Up" и "Ctrl+Down".</li> <li> ÐžÐ¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð¹ работы: <ul><li> Предотвращено обновление дерева навигации при выборе любого Ñлемента.</li> <li> Замедление цикла периодичеÑкого Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð° занÑтоÑти.</li></ul></li> <li> УÑкорено закрытие окна конфигуратора Ñо многими неактивными OpenSCADA хоÑтами, путём раннего ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹ хоÑтов.</li></ul></li> <li> WebUser: РаÑширено поддержкой DAQ-шаблонов.</li></ul> <h4><span class="mw-headline" id=".D0.A1.D0.BF.D0.B5.D1.86.D0.B8.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5"><span class="mw-headline-number">7.8.10</span> Специальные</span></h4> <ul><li> FIX:FLibSYS: <ul><li> FIX:IO: write() иÑправлено отноÑительно Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ типа данных, получение ошибочных данных Ñделано безопаÑным.</li> <li> CRC: Завершено иÑпользованием нормальных полиномов, входных и выходных отноÑительноÑтей и XOR Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð°.</li> <li> VArchObj: ДоÑтуп к функции запиÑи в архив ограничен только пользователÑми в группе "Ðрхив".</li></ul></li></ul> <h4><span class="mw-headline" id=".D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_4"><span class="mw-headline-number">7.8.11</span> СервиÑные обновлениÑ</span></h4> <ul><li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2697" rel="nofollow noreferrer noopener" target="_blank">пÑтое (5) от 20.07.2020</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2693" rel="nofollow noreferrer noopener" target="_blank">четвертое (4) от 07.07.2020</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2688" rel="nofollow noreferrer noopener" target="_blank">третье (3) от 15.06.2020</a>.</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2684" rel="nofollow noreferrer noopener" target="_blank">второе (2) от 01.06.2020</a>;</li> <li> <a class="external text" href="http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=2680" rel="nofollow noreferrer noopener" target="_blank">первое (1) от 11.05.2020</a>.</li></ul> <h2><span class="mw-headline" id=".D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"><span class="mw-headline-number">8</span> СÑылки</span></h2> <ul><li> <a class="external" href="http://oscada.org/wiki/Documents/Release_0.9/Tests" title="Documents/Release 0.9/Tests">Протокол теÑтированиÑ</a> промышленного релиза 0.9 LTS.</li> <li> <a class="external" href="http://oscada.org/wiki/Special:MyLanguage/Documents/Release_0.9/Updating_0.8.0_LTS" title="Special:MyLanguage/Documents/Release 0.9/Updating 0.8.0 LTS">РуководÑтво Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ 0.8.0 LTS</a>.</li> <li> <a class="external text" href="http://oscada.org/en/development/tasks/posts/core/release_of_the_openscada_09_lts/" rel="nofollow noreferrer noopener" target="_blank">Задача выпуÑка релиза и ÑпиÑок поÑлерелизовых работ до первого Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ 0.9 LTS</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/Documents/Release_0.9/ru">Documents/Release_0.9/ru</a> - <a href="http://oscada.org/en/main/about-the-project/licenses/">GFDL</a></td><td style="text-align: center;">March 2025</td><td style="text-align: right;" width="40%">OpenSCADA 1+r3012</td></tr></table></body> </html>