<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		
		<title>oscada.org: Latest News</title>
		<link>http://www.oscada.org/</link>
		<description>Latest news from oscada.org</description>
		<language>en</language>
		<image>
			<title>oscada.org: Latest News</title>
			<url>http://www.oscada.org/fileadmin/tt_news_article.gif</url>
			<link>http://www.oscada.org/</link>
			<width></width>
			<height></height>
			<description>Latest news from oscada.org</description>
		</image>
		<generator>TYPO3 - get.content.right</generator>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		
		
		
		<lastBuildDate>Thu, 08 Dec 2011 17:07:00 +0200</lastBuildDate>
		
		
		<item>
			<title>OpenSCADA приняла участие в выставке в рамках Qt Developer Days 2011 в Мюнхене и Сан-Франциско</title>
			<link>http://qt.nokia.com/qtdevdays2011</link>
			<description>На выставке были представлены следующие решения:

Динамическая модель парового котла №9 ДМК на...</description>
			<content:encoded><![CDATA[]]></content:encoded>
			<category>Новость</category>
			<category>Публикация</category>
			
			
			<pubDate>Thu, 08 Dec 2011 16:58:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Релиз OpenSCADA 0.7.2</title>
			<link>http://www.oscada.org/ru/khranilishche-novostei/odinochnaja-stranica/article//release-of-openscada-072//d9e0be591951d2c4f2dffabfb38d62ad/</link>
			<description>Основной целью данного релиза является стабилизация и отработка ключевых функций перед выпуском...</description>
			<content:encoded><![CDATA[<p class="indent10">&nbsp;</p><div style="text-align: center; "><h1 style="margin: 0px; padding: 2px 0px 7px; font-family: Verdana; font-size: 23px; line-height: 25px; color: rgb(51, 51, 51); ">OpenSCADA 0.7.2 </h1></div><h2>Введение</h2>
<p id="p80923-3" class="align-justify auto indent10"> Данный релиз является плановым выпуском рабочей версии системы  OpenSCADA, которые обычно осуществляются с периодичностью 3-4 месяца.  Основной целью данного релиза является стабилизация и отработка ключевых  функций перед выпуском следующей версии OpenSCADA продолжительной  поддержки (LTS) 0.8.0. Кроме основных задач в рамках данного релиза  проделана большая работа по стабилизации, чистке исходного кода,  всестороннему расширению возможностей, а также опробование на  встраиваемых и мобильных устройствах архитектуры ARM.</p>
<p id="p80923-4" class="indent10 auto align-justify"> Данный документ является обработкой(компиляцией) документа &quot;ChangeLog&quot;  системы OpenSCADA версии 0.7.2, который призван вкратце и наглядно  осветить новые возможности. Детальнее ознакомиться с изменениями в  системе OpenSCADA можно в файле &quot;ChangeLog&quot; из дистрибутива системы или  здесь: <a href="http://wiki.oscada.org/Works/ChangeLog" target="_blank" class="outerlink" >http://wiki.oscada.org/Works/ChangeLog</a>.</p>
<p id="p80923-5" class="auto indent10"> Ключевыми особенностями данной версии являются:</p><ul><li> Реализация плановых задач. </li><li> Оптимизация, повышение стабильности, устойчивости и производительности системы. </li><li> Усовершенствование и стабилизация графической подсистемы. </li><li> Расширение API пользовательского программирования. </li><li> Общесистемные расширения. </li><li> Публикация решений OpenSCADA.</li></ul><p id="p80923-6" class="auto indent10"> Новые и обновленные модули:</p><ul><li> <em>Archive.DBArch (0.9.5)</em> — Добавлены лимиты запроса данных по времени запроса и ещё некоторые расширения. </li><li> <em>Archive.FSArch (1.5.0)</em> — Повышение производительности  чтения индексов файлов архивов значений. Адаптация хранения и чтения  вещественного к ARM FPA. Добавлены лимиты запроса данных по времени  запроса. Некоторые расширения. Значительная стабилизация. </li><li> <em>DB.FireBird (0.9.7)</em> — Стабилизация. </li><li> <em>DB.MySQL (1.7.1)</em> — Стабилизация. </li><li> <em>DB.PostgreSQL (0.9.2)</em> — Стабилизация. </li><li> <em>DB.SQLite (1.6.4)</em> — Стабилизация. </li><li> <em>DAQ.BFN (0.5.1)</em> — Очистка кода. </li><li> <em>DAQ.BlockCalc (1.5.0)</em> — Добавлено планирование вызовов по CRON. Добавлен запускающий и останавливающий вызов блоков. Стабилизация. </li><li> <em>DAQ.DAQGate (0.9.5)</em> — Добавлено планирование вызовов по CRON. Стабилизация. </li><li> <em>DAQ.DCON (0.5.1)</em> — Стабилизация. </li><li> <em>DAQ.DiamondBoards (1.2.5)</em> — Добавлена возможность смены типа параметра. Стабилизация. </li><li> <em>DAQ.ICP_DAS (0.8.0)</em> — Добавлена библиотека API &quot;ICP DAS&quot; libi8k.a для архитектуры ARM и включена возможность сборки модуля для ARM. Стабилизация. </li><li> <em>DAQ.JavaLikeCalc (1.9.5)</em> — Добавлен прямой,  динамический вызов библиотечных функций. Добавлено прямое объединение  строковых констант. Добавлен условный вызов аргументов выражения  (второго аргумента) с логическими операциями ||(OR) и &amp;&amp;(AND).  Значительная стабилизация. Некоторые расширения. </li><li> <em>DAQ.LogicLev (1.2.0)</em> — Стабилизация. Добавлена возможность смены типа параметра. Добавлено планирование вызовов по CRON. Некоторое расширение. </li><li> <em>DAQ.ModBus (1.2.0)</em> — Добавлена поддержка типа  параметра &quot;Логический&quot; для работы по шаблону параметра, а также функции  пользовательского API для отправки произвольных-нестандартных  ModBus-запросов из шаблонов. Добавлена и использована функция  формирования сообщений о нарушениях в контроллере. Добавлена поддержка  функций групповой записи (0x0F, 0x10). Значительная стабилизация. </li><li> <em>DAQ.OPC_UA (0.6.2)</em> — Стабилизация. Адаптация хранения и чтения вещественного к ARM FPA. </li><li> <em>DAQ.SNMP (0.6.1)</em> — Стабилизация. Некоторые улучшения.  </li><li> <em>DAQ.Siemens (1.3.0)</em> — Значительная стабилизация.  Версия библиотеки LibnoDave обновлена до 0.8.4.6. Добавлено планирование  вызовов по CRON. Добавлена функция переподключения для &quot;Industrial  Ethernet&quot; соединений. Некоторые расширения. </li><li> <em>DAQ.System (1.7.5)</em> — Стабилизация. Добавлено планирование вызовов по CRON. </li><li> <em>Transport.SSL (1.0.0)</em> — Стабилизация. Некоторые улучшения. </li><li> <em>Transport.Serial (0.7.3)</em> — Стабилизация. </li><li> <em>Transport.Sockets (1.5.0)</em> — Значительная стабилизация. </li><li> <em>Protocol.HTTP (1.6.0)</em> — Добавлена поддержка  пользовательских шаблонов для внутреннего содержимого модуля. Добавлена  генерация сообщений аутентификации пользователей. Добавлена поддержка  всех основных вариантов завершения строки при разборе HTTP-запроса. </li><li> <em>Protocol.ModBus (0.6.3)</em> — Стабилизация. Некоторые улучшения. </li><li> <em>Protocol.OPC_UA (0.6.2)</em> — Стабилизация. </li><li> <em>Protocol.SelfSystem (0.9.5)</em> — Стабилизация. </li><li> <em>Protocol.UserProtocol (0.6.2)</em> — Стабилизация. </li><li> <em>Special.FLibComplex1 (1.1.0)</em> — Добавлен прямой, динамический вызов библиотечных функций. </li><li> <em>Special.FLibMath (0.6.0)</em> — Добавлен прямой, динамический вызов библиотечных функций. </li><li> <em>Special.FLibSYS (1.0.0)</em> — Добавлен прямой, динамический вызов библиотечных функций. </li><li> <em>UI.QTCfg (2.1.0)</em> — Стабилизация. Значительные расширения и улучшения. Реализация ряд функций для повышения удобства. </li><li> <em>UI.QTStarter (1.6.2)</em> — Стабилизация. Шрифт сообщение в &quot;сплеше&quot; зафиксирован в размере 10 пикселов, для обеспечения единообразного отображения. </li><li> <em>UI.VCAEngine (1.2.0)</em> — Стабилизация. Значительные расширения и улучшения. </li><li> <em>UI.Vision (1.2.0)</em> — Значительная стабилизация. Значительные расширения и улучшения. </li><li> <em>UI.WebCfg (1.5.6)</em> — Стабилизация. </li><li> <em>UI.WebCfgD (0.8.0)</em> — Стабилизация. Значительные расширения и улучшения. </li><li> <em>UI.WebUser (0.6.2)</em> — Стабилизация. </li><li> <em>UI.WebVision (1.0.0)</em> — Значительная стабилизация. Значительные расширения и улучшения.</li></ul><p class="bodytext"> <a name="h1083-3"></a></p>
<h2>1 Реализация плановых задач</h2>
<p id="p80923-7" class="auto indent10"> В соответствии с <a name=".works.roadmap" href="http://wiki.oscada.org/Works/RoadMap?v=nrh" title="Works&amp;nbsp;/&amp;nbsp;Road&amp;nbsp;Map">планом</a> релиза были выполнены следующие задачи:</p><ul><li> <em>Реализация механизма откатов изменений редактирования в Vision. </em>  — В рамках окна визуального редактирования виджетов реализован  многоуровневый механизм отката изменений для всех основных операций:  визуальное изменение геометрии, изменение значения атрибута виджета,  добавление/удаление виджета, копирование виджета и редактирование  виджетов на основе примитива &quot;ElFigure&quot;. </li><li> <em>Адаптация системы OpenSCADA для работы на аппаратной платформе ARM.</em> — В дополнении к первичной адаптации, в прошлом релизе, для планшета <a href="http://ru.wikipedia.org/wiki/Nokia_N800" target="_blank" class="outerlink" >N800</a> (<a href="http://wiki.oscada.org/Works/Tests/ARM" target="_blank" class="outerlink" >http://wiki.oscada.org/Works/Tests/ARM</a> ) была выполнена сборка и адаптация OpenSCADA для сложного (очень старого) програмного окружения контроллера <a name=".using.lp5xxx" href="http://wiki.oscada.org/Using/LP5xxx?v=dsm" title="Using&amp;nbsp;/&amp;nbsp;LP&amp;nbsp;5&amp;nbsp;xxx">LP-5451</a>, а так-же сборка для контроллера <a href="http://segnetics.com/main.aspx?Page=412" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />SMH2Gi</a> и смартфонов фирма <a href="http://ru.wikipedia.org/wiki/Nokia" target="_blank" class="outerlink" >Nokia</a>: <a href="http://ru.wikipedia.org/wiki/Nokia_N900" target="_blank" class="outerlink" >N900</a>, N950, <a href="http://ru.wikipedia.org/wiki/Nokia_N9" target="_blank" class="outerlink" >N9</a>. В рамках сборки и адаптации на различные мобильные устройства были выполнены следующие задачи: <ul><li> <em>DAQ.ICP_DAS</em>:	Добавлена библиотека API &quot;ICP DAS&quot; libi8k.a для архитектуры ARM и включена возможность сборки модуля для ARM. </li><li> <em>SYS, DAQ.OPC_UA</em>: Добавлены системные функции  floatLE(), floatLErev(), doubleLE(), doubleLErev() для преобразования  формата хранения вещественного числа на различных архитектурах. </li><li> <em>SYS</em>: Выполнена адаптация для сборки с GLibC версии меньше 2.5 (2.3.2). </li><li> <em>Archive.FSArch</em>: <ul><li> Исправлено хранение вещественного числа формата LE в архиве, на архитектуре ARM.  </li><li> В алгоритме быстрого подсчёта количества битов использовано функцию невыравненного чтения TSYS::getUnalign32().  </li><li> Размер поля кодировки в плоском архиве сообщения расширен с 9 до 99 символов.</li></ul></li></ul></li></ul><p class="bodytext"> <a name="h1083-4"></a></p>
<h2>2 Оптимизация, повышение стабильности, устойчивости и производительности системы</h2>
<p id="p80923-8" class="indent10 auto align-justify"> В процессе работ над данной версией, а также её практической адаптации,  было обнаружено и исправлено в общей сложности около 170 ошибок. Так-же  была продолжена работа по чистке кода от предупреждающих сообщений  компилятора, с флагом &quot;-Wall&quot;.</p>
<p id="p80923-9" class="indent10 auto align-justify"> Перечислим наиболее существенные ошибки, исправление которых значительно отразилось на повышении стабильности:</p><ul><li> <em>SYS</em>: <ul><li> Исправлены внеплановые вызовы по расписанию, связанные с  рассинхронизацией значений функций time() и  clock_gettime(CLOCK_REALTIME,&amp;sp_tm). </li><li> Исправлена проверка и ожидание потоков на доступность при перекрытии с остановкой предыдущего, одноимённого потока. </li><li> Отключено ожидание инициализации для отсоединяемых задач с целью предотвращения зависания на ожидании быстро закрываемых задач. </li><li> Исправлена работа функций невыравненного чтения getUnalign*() на ARM. Проблема обнаружена на PXA270. </li></ul></li><li> <em>Archive.FSArch</em>: <ul><li> Исправлено чтение данных из буфера архива в соответствии с размером буфера в алгоритме быстрого вычисления количества битов. </li><li> Исправлено помещение смещения в кеш из алгоритма быстрого вычисления количества битов. </li><li> Исправлена некорректная обработка конца невыравненных блоков быстрого алгоритма подсчёта количества битов. </li><li> Добавлен монопольный ресурс к вызову функции calcVlOff() с целью предотвращения некорректной работы с кешем. </li></ul></li><li> <em>Transport, DAQ.AMRDevs, DAQ.DCON, DAQ.ICP_DAS, DAQ.ModBus, DAQ.OPC_UA, Protocol.HTTP</em>: Исправлено использование функции TTransportOut::messIO() при запросе хвоста и получении нулевого ответа. </li><li> <em>DAQ.ModBus, Transport.Serial, UI.WebCfg, UI.WebCfgD, UI.WebUser, UI.WebVision</em>:  Исправлено ошибочное использование символа завершения строки '\n' для  множества программных платформ UNIX, MAC, DOS/Windows, путём замены  на&quot;\x0A&quot; . </li><li> <em>Transport.*</em>: Исправлено использование беззнакового  типа в возврате функций read() и write(). Добавлены ресурсы к счётчикам  входных/выходных запросов. </li><li> <em>Transport.Sockets</em>: Исправлен пропуск инициализации размера возвратного значения для функции getsockopt(). </li><li> <em>DAQ.JavaLikeCalc</em>: Исправлено падение функции replace(), объекта &quot;RegExp&quot;. </li><li> <em>DAQ.Siemens</em>: Исправлено получение и запись значений  вещественных типов. Исправлено переподключение в случае ошибки.  Исправлено использование свойства размера целого, вещественного и  строкового типов. Добавлена очистка связей параметра при его выключении. </li><li> <em>UI.Vision, UI.WebVision</em>: Исправлен доступ за границу вектора при отрисовке графиков примитива &quot;FormEls&quot;. </li><li> <em>UI.VCAEngine</em>: Предотвращена возможность потери  изменений в сервере визуализации при отображении в визуализаторах путём  предварительного сохранения значения тактового счётчика в сервисном  запросе &quot;openList&quot;. </li><li> <em>UI.WebVision</em>: <ul><li> Исправлено открытие и замена корневой страницы. </li><li> Исправлена обработка масштаба вложенных страниц, с учётом масштаба корневой.</li></ul></li></ul><p id="p80923-10" class="auto indent10"> Оптимизация и повышение производительности:</p><ul><li> <em>SYS</em>:  Механизм ресурса объекта &quot;ResString&quot; заменён с RW-блокировок на мютекс, с  целью повысить производительность и сократить потребление памяти. </li><li> <em>Archive.FSArch</em>: Обработка индексной таблицы архива  значений значительно ускорена посредством использования быстрого  алгоритма вычисления количества битов в 32-разрядном целом. </li><li> <em>UI.WebCfgD</em>: Использован групповой запрос содержимого  страниц для значительного повышения производительности на медленных и  высоколатентных каналах. </li><li> <em>UI.Vision</em>: Повышена производительность отрисовки заполнений примитива &quot;ElFigure&quot;. </li><li> <em>UI.VCAEngine</em>: <ul><li> Выполнены мероприятия по повышению скорости запуска сеанса  проекта в числе: пропущена инициализация базовых атрибутов ввиду их  последующего наследования. </li><li> Удален перевод некоторых сообщений времени исполнения сеанса. </li><li> Реализовано включение только нужных страниц при запуске  сеанса. Остальные страницы исполняющегося сеанса включаются по мере  обращения к ним. Это позволило значительно повысить скорость запуска  сеанса, а также уменьшить зависимость скорости запуска от сложности  проекта визуализации. </li><li> Реализация архивного режима примитива &quot;Документ&quot; изменена на  прямую работу с БД, что позволило расширить глубину архива до 1000000  документов и без ущерба для оперативной памяти.</li></ul></li></ul><p class="bodytext"> <a name="h1083-5"></a></p>
<h2>3 Усовершенствование и стабилизация графической подсистемы</h2>
<p id="p80923-11" class="indent10 auto align-justify"> Заметная работа была выполнена в рамках графической подсистемы, а именно  в модулях движка СВУ UI.VCAEngine, визуализаторов UI.Vision и  UI.WebVision, а также конфигураторах. Внесённые изменения были  направленны на стабилизацию, оптимизацию потребления памяти и улучшение  пользовательских свойств.</p>
<p id="p80923-12" class="indent10 auto align-justify"> Улучшения графической подсистемы:</p><ul><li> <em>UI.VCAEngine, UI.Vision, UI.WebVision</em>: <ul><li> Исправлено обращение за границы массива (вектора) при построении трендов, примитива &quot;Диаграмма&quot;. </li><li> Добавлено и реализовано свойство ширины графика, примитива &quot;Диаграмма&quot;. </li><li> Добавлена периодическая проверка дерева виджетов страницы с  целью обнаружения факта удаления виджетов, путём запроса полного перечня  виджетов. </li><li> Реализовано отображение графиков, группы графиков примитива  &quot;Диаграмма&quot; в шкале значения в случае отличия шкал всех графиков не  более чем на 20%.  </li><li> Добавлена и реализована возможность выбора режима  подтверждения для элементов редактирования строки и текста примитива  &quot;Элементы формы&quot;. </li><li> Исправлена возможность потери некоторых изменений в модели, при отображении их в визуализаторах. </li><li> Добавлено и реализовано свойство количества значений на пиксел  в графиках примитива &quot;Диаграмма&quot;, с целью управления детализацией  экспорта в CSV и т.д. </li><li> Реализована логарифмическая шкала значений для графиков примитива &quot;Диаграмма&quot;. </li><li> Добавлено и реализовано свойство сохранения соотношения сторон  главной страницы при разворачивании главного окна исполнения сеанса  проекта. </li></ul></li><li> <em>UI.VCAEngine</em>: <ul><li> Реализовано включение страниц сеанса проекта по надобности, с  целью повышения скорости запуска и оптимизации использования оперативной  памяти.  </li><li> Примитив &quot;Документ&quot; переделан для ведения архивов, архивного  режима, полностью в БД, а также добавлена функция пользовательского API  для доступа к элементам архива. </li><li> Добавлена периодическая (30 минут) проверка и закрытие уже неиспользованных (потерянных) сеансов проектов. </li><li> Удалён предыдущий (противоречивый) механизм отката удаления  вложенных виджетов и заменён полноценным механизмом откатов в  визуализаторе <em>UI.Vision</em>.  </li><li> Выполнена оптимизация использования памяти элементами сеанса до 20%.  </li><li> Удалена поддержка первой, устаревшей, версии структуры БД среды визуализации.  </li><li> Добавлено ограничение на время генерации документов в примитиве &quot;Документ&quot; в 5 секунд.  </li><li> Добавлена поддержка типа атрибутов &quot;Объект&quot; и &quot;Текст&quot;. </li><li> Отключена принудительная инициализация новых пользовательских атрибутов в EVAL. </li><li> Примитив &quot;Документ&quot; переключен в режим полного разбора XML с целью полноценного сохранения разметки XHTML. </li><li> Добавлена индикация состояния корректности ссылок в виде &quot;(+)&quot; в конце. </li></ul></li><li> <em>UI.Vision</em>: <ul><li> Добавлена реализация полноценных откатов и повторов изменений при визуальном редактировании виджетов. </li><li> Улучшения в отзывчивости и обновлении изменений в сеансе  исполнения проекта: оптимизирована производительность отрисовки  примитива &quot;ElFigure&quot;, обработка изменения уровня виджета &quot;geomZ&quot;. </li><li> Добавлен экспорт в CSV формат из примитивов &quot;Диаграмма&quot; и &quot;Документ&quot;. </li><li> Введено ограничение на размер диалогов ввода и включено адаптивное определение их размеров по содержимому. </li><li> Полностью переписан механизм исполнения правил подсветки синтаксиса.  </li><li> Добавлено создание нового сеанса после восстановления удалённого подключения и отсутствии предыдущего сеанса. </li><li> Фон окна редактируемого виджета установлен в шаблон QT::Dense7Pattern с целью устранения возможного перекрытия по цвету. </li><li> Добавлена обработка событий выбора виджета при нажатии в области скролинга, но за пределами виджета. </li><li> Примитив &quot;Элементарная фигура&quot;: <ul><li> Выполнена реорганизация операций из диалога свойств и контекстного меню с динамическими и статическими свойствами. </li><li> В процессе добавления фигуры реализована её отрисовка при перемещении курсора мыши. </li></ul></li></ul></li><li> <em>UI.WebVision</em>: <ul><li> Исправлена обработка масштаба вложенных кадров, а также пересмотрен механизм формирования-включения скрола.  </li><li> Добавлена функция преобразования изображений на стороне  сервера. Функцию преобразования использовано для изменения размера и  обесцвечивания изображений неактивных кнопок. </li><li> Реализовано открытие малых окон вложенных страниц в виде  DIV-блоков, что решает проблему блокировки и продолжительного открытия  внешних окон многими браузерами. </li><li> Главная страница интерфейса отцентрована в окне браузера.  </li></ul></li><li> <em>UI.QTCfg</em>: <ul><li> Добавлено ограничение на высоту строк таблиц в половину высоты таблицы.  </li><li> Введено ограничение на размер диалога ввода и включено адаптивное определение его размера по содержимому.  </li><li> У элементов доступных для изменения высоты пользователем, для  обеспечения работы везде, установлен фиксированный стиль &quot;StyledPanel&quot;.  </li><li> Добавлена функция полнотекстового редактирования текста ячеек таблиц.  </li><li> Движок воспроизведения правил подсветки синтаксиса полностью переписан для упрощения и предотвращения скрытых ошибок. </li></ul></li><li> <em>UI.WebCfgD</em>:  <ul><li> Уменьшена яркость обесцвеченных-пассивных кнопок. </li><li> Все окна диалогов реализованы в виде DIV-блоков с целью  исключить проблемы и задержки в открытии внешних окон различными  браузерами. </li><li> Использован групповой запрос содержимого страниц для  значительного повышения производительности на медленных и  высоколатентных каналах. </li><li> Добавлена информация в строке статуса о текущем пользователе и возможность его смены. </li><li> Выполнена адаптация для работы в полную ширину экрана.</li></ul></li></ul><p class="bodytext"> <a name="h1083-6"></a></p>
<h2>4 Расширение API пользовательского программирования</h2>
<p id="p80923-13" class="indent10 auto align-justify"> Было продолжено формирование объектного API пользовательского  программирования, которое предусматривает интеграцию пользовательских  функций в дерево объектов системы OpenSCADA. Кроме этого был внесен ряд  изменений в существующие библиотеки функций пользовательского API.</p>
<p id="p80923-14" class="auto indent10"> В частности были осуществлены следующие изменения:</p><ul><li> <em>SYS</em>: <ul><li> Добавлены функции работы с файлами: SYS.fileRead() и SYS.fileWrite(). </li><li> К API объекта XMLNodeObj добавлена функция getElementBy() для поиска вложенных узлов по значению атрибута. </li><li> Добавлена функция осуществления кодирования текста между различными символьными кодировками. </li><li> Добавлена функция NodeObj.nodePath(). </li></ul></li><li> <em>TConfig, TBD, TTransportIn, TTransportOut,  TUser, TGroup, TPrmTmplLib, TPrmTempl, TParamContr, TController,  TVArchive, TVArchivator, TMArchivator</em>: Добавлены функции пользовательского API cfg() и cfgSet() для доступа к конфигурации объектов (хранящейся в БД). </li><li> <em>DAQ</em>: <ul><li> Добавлена функция TController::alarmSet() для генерации типовых  нарушений в объекте контроллера модулей подсистемы &quot;Сбор данных&quot;. </li><li> Добавлена функция  SYS.DAQ[&quot;Modul&quot;][&quot;Controller&quot;][&quot;Parameter&quot;][&quot;Attribute&quot;].arch() для  прямого обращения к объекту архива, связанного с атрибутом параметра. </li><li> Добавлены функции пользовательского API enable() и start() для прямого контроля за состоянием объекта контроллера. </li></ul></li><li> <em>DAQ.JavaLikeCalc, Special.FLibComplex1, Special.FLibMath, Special.FLibSYS</em>: Добавлена функция динамического вызова библиотечных функций SYS.DAQ.JavaLikeCalc[&quot;lib_{Lib}&quot;].funcId(prms, ...). </li><li> <em>Archive</em>: Добавлены функции пользовательского API  status(), end() и begin() для доступа к состоянию и свойствам объекта  архиватора сообщений. </li><li> <em>DAQ.JavaLikeCalc</em>: <ul><li> Для типа данных &quot;null&quot; добавлена функция isEVal(), которая всегда возвращает &quot;true&quot;. </li><li> К объектам библиотечных функций добавлена функция пользовательского API call(). </li></ul></li><li> <em>DAQ.ModBus</em>: Добавлена функция  пользовательского API messIO() в объект контроллера &quot;ModBus&quot; с целью  предоставления возможности отправки нестандартных ModBus-запросов прямо  из шаблона параметра.</li></ul><p class="bodytext"> <a name="h1083-7"></a></p>
<h2>5 Общесистемные расширения</h2>
<p id="p80923-15" class="indent10 auto align-justify"> В общесистемное API системы OpenSCADA были внесены значительные изменения и расширения с целью общей стабилизации и расширения:</p><ul><li> <em>SYS</em>:  <ul><li> Объект хранения строки с ресурсом &quot;ResString&quot; значительно расширен на предмет прозрачного преобразования из/в тип std::string. </li><li> Добавлена возможность сохранения в конфигурационный файл: <ul><li> Добавлен префикс БД &quot;&lt;cfg&gt;&quot; для представления конфигурационного файла в роли источника загрузки/сохранения конфигурации. </li><li> Функции TDBS::dataSeek() и TDBS::dataDel() обновлены для строгой обработки конфигурационного файла. </li><li> Функция chkSelDB() адаптирована для поддержки записи в конфигурационный файл. </li><li> Добавлено сохранение больших и многострочных значений полей  конфигурации в текстовом поле отдельного тега конфигурационного файла. </li></ul></li><li> Тип &quot;long long&quot;, обычно 64-рязрядное целое заменён везде на более определённый &quot;int64_t&quot; на всех архитектурах. </li><li> Объекты потоков OpenSCADA жёстко слинкованы со своим потоком. Добавлена статистика загрузки и вызовов периодичных потоков. </li><li> Реализована возможность проверки загружаемых объектов на их  отсутствие в БД и удаление. Функция проверки активируется только в  случае прямой загрузки из БД. </li><li> Добавлена системная периодическая функция perSYSCall() вызова  объектов подсистем и их модулей. Используется для сервисных целей  ненагруженных и редких задач модулей и подсистем. </li><li> Функция тестирования выражения по шаблону перемещена в объект TRegExp. </li><li> <em>SYS.XMLNode</em>: <ul><li> Полностью удалён код использования XML-парсера &quot;Expat&quot;. </li><li> Добавлена возможность загрузки текстовых частей тега в  отдельные-специальные теги, в полном режиме. Предназначено для полного  сохранения конфигурации тега. </li><li> Добавлена возможность загрузки и сохранения блоков комментариев в отдельные-специальные теги, в полном режиме. </li></ul></li></ul></li><li> <em>DOC</em>: <ul><li> Выполнена проверка и исправление Английских текстов в ядре  OpenSCADA. Обновлены переводы ядра OpenSCADA на Немецкий, Русский и  Украинский языки. </li><li> Выполнена проверка и исправление Английских текстов модулей  OpenSCADA. Обновлены переводы модулей OpenSCADA на Немецкий, Русский и  Украинский языки. </li><li> Обновлены все основные документы на доступных языках:  openscada.pdf, build.pdf, properties.pdf, &quot;OpenSCADA API&quot;, &quot;Про  OpenSCADA&quot;, &quot;Библиотека TechApp&quot;, &quot;Quick Start&quot;, &quot;WLib Основные&quot;, &quot;WLib  Элементы мнемосхем&quot;.  </li></ul></li><li> <em>Базы данных библиотек</em>: <ul><li> Библиотека основных визуальных элементов дополнена кадрами  реализации редактирования и исполнения &quot;Рецептов&quot;-&quot;Пользовательских  программ&quot;. </li><li> К комплекту пакета библиотек добавлено <a name=".using.graphicelementslibraries.electroelements" href="http://wiki.oscada.org/Using/GraphicElementsLibraries/ElectroElements?v=ywe" title="Using&amp;nbsp;/&amp;nbsp;Graphic&amp;nbsp;Elements&amp;nbsp;Libraries&amp;nbsp;/&amp;nbsp;Electro&amp;nbsp;Elements">библиотеку элементов Электрических схем</a>.  </li><li> Кадр главной страницы дополнен механизмом &quot;проигрывания&quot; моделей технологических процессов (ТП). </li><li> Модель <a name=".using.modeldmkk9" href="http://wiki.oscada.org/Using/ModelDMKK9?v=yz3" title="Using&amp;nbsp;/&amp;nbsp;Model&amp;nbsp;DMKK&amp;nbsp;9">промышленного котлоагрегата</a> переведено на Английский и Украинский языки. </li></ul></li><li> <em>DB</em>: Добавлено временное ограничение в 5 секунд и поле указания начального смещения для запроса содержимого больших таблиц. </li><li> <em>DAQ</em>: Добавлена возможность выбора типа атрибута  шаблона &quot;Объект&quot;. Предназначено в первую очередь для хранения внутренних  данных в объекте и не может быть использовано как тип атрибута  параметра объекта контроллера источника данных. </li><li> <em>TArchives</em>: Добавлена возможность использования регулярных выражений при поиске по категории посредством &quot;/match/&quot; </li><li> <em>Transport</em>: Типы форматов исходящих запросов расширены вариантами текста с разным завершением строки: LF, CR, CR/LF. </li><li> <em>DAQ, DAQ.DiamondBoards, DAQ.ModBus, DAQ.LogicLev</em>: Добавлена возможность смены типа параметра для отключенных параметров многотиповых модулей подсистемы &quot;Сбор данных&quot;. </li><li> <em>DAQ.LogicLev, DAQ.Siemens, DAQ.ModBus</em>: В случае  выполнения по расписанию в атрибут &quot;f_frq&quot; записывается время после  последнего вычисления в отрицательном значении. Добавлены  инициализирующие и останавливающие вызовы при включении/выключении  параметра. </li><li> <em>TArchives, Archive.DBArch, Archive.FSArch</em>: Добавлена временная граница при запросе сообщений из архива. </li><li> <em>SYS.TConfig, Archives, DAQ, Security, Transports, Archive.*, DAQ.*, Protocol.UserProtocol, Transport.*, UI.VCAEngine, UI.WebUser</em>: Хранение строковых конфигурационных полей переведено в объект ресурсной строки &quot;ResString&quot;.</li></ul><p class="bodytext"> <a name="h1083-8"></a></p>
<h2>6 Публикация решений OpenSCADA</h2>
<p id="p80923-16" class="indent10 auto align-justify"> В процессе осуществления работ над данным релизом на разных конференциях  и выставках были представлены решения на основе проекта OpenSCADA:</p><ul><li> <a href="http://www.foss-sea.org.ua/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />FOSS Sea 2011</a>  — на конференции был зачитан доклад о решениях на основе OpenSCADA, а в  холе был организован мини-стенд с решениями на основе OpenSCADA вживую. </li><li> <a href="http://www.hi-techexpo.com/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />Международный инновационный форум 2011</a>  — в составе стенда OOO НИП &quot;ДІЯ&quot; и Днепродзержинского Государственного  Университета (ДГТУ) было представлено оборудование и материалы с  решениями на основе OpenSCADA. </li><li> <a href="http://conference.osdn.org.ua/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />10 Всеукраинская Конференция разработчиков и пользователей свободного ПО</a>  — на конференции был зачитан доклад о решениях на основе OpenSCADA, а в  холе был организован мини-стенд с решениями на основе OpenSCADA вживую. </li><li> Дни разработчиков QT <a href="http://qt.nokia.com/qtdevdays2011" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />Qt Developer Days 2011</a>  в Мюнхене и Сан-Франциско: в рамках этих мероприятий в Qt Demo Pavilion  состоялась демонстрация OpenSCADA посредством представления решений <a href="http://wiki.oscada.org/Using/ModelDMKK9" target="_blank" class="outerlink" >Динамическая модель парового котла №9 ДМК</a> на ПК и <a href="http://wiki.oscada.org/Using/ModelAGLKS" target="_blank" class="outerlink" >Динамическая модель реального времени Анастасиевской ГЛКС</a> на Nokia N9.</li></ul><p class="bodytext"> <a name="h1083-9"></a></p>
<h2>Заключение</h2>
<p id="p80923-17" class="indent10 auto align-justify"> Данным релизом системы OpenSCADA фактически завершена работа по  адаптации на аппаратную архитектуру ARM, что выразится в предоставлении и  публикации официальных сборок релиза 0.7.2 для мобильных устройств.</p>
<p id="p80923-18" class="align-justify auto indent10"> Хотя выпуск данного релиза несколько запоздал и затянулся он всё же был  тщательно подготовлен и станет хорошей основой для доводки кодовой базы  проекта к предстоящему ответственному релизу 0.8.0 LTS. Кроме этого  данный релиз можно использовать и для повсеместного внедрения и  применения в ответственных задачах с последующим плавным переходом на  0.8.0 LTS после его выхода.</p>
<p id="p80923-19" class="indent10 auto align-justify"> Последующие усилия разработчиков будут направлены на завершения плановых  заданий и подготовке к выпуску релиза OpenSCADA продолжительной  поддержки (LTS) версии 0.8.0.</p>]]></content:encoded>
			<category>Новость</category>
			<category>Релиз</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Mon, 05 Dec 2011 16:00:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Первый промышленный релиз OpenSCADA 0.7.0 LTS (обновление 6)</title>
			<link>http://oscada.org/ru/glavnaja/relizy/odinochnaja-stranica/article//first-production-release-of-openscada-070</link>
			<description>Первая промышленная версия предназначена для повсеместной интеграции в решения автоматизации для...</description>
			<content:encoded><![CDATA[<p class="indent10">&nbsp;</p><div style="text-align: center; "><h1 style="margin: 0px; padding: 2px 0px 7px; font-family: Verdana; font-size: 23px; line-height: 25px; color: rgb(51, 51, 51); ">OpenSCADA 0.7.0 LTS</h1></div><h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">Изменения</h2><ul><li>24.10.2010 - Промышленный релиз 0.7.0.</li><li>19.12.2010 - Первое плановое&nbsp;обновление промышленного релиза. Исправлено порядка 30 ошибок.</li><li>01.03.2011 - Второе плановое&nbsp;обновление промышленного релиза. Исправлено более 30 ошибок.</li><li>09.05.2011 - Третье плановое&nbsp;обновление промышленного релиза. Исправлено более 30 ошибок.</li><li>09.07.2011 - Четвёртое плановое&nbsp;обновление промышленного релиза. Исправлено более 15 ошибок и добавлены некоторые улучшения.</li><li>12.10.2011 - Пятое плановое&nbsp;обновление промышленного релиза. Исправлено более 50 ошибок и добавлены некоторые улучшения.</li></ul><h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">Введение</h2>
<p id="p14126-3" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Релиз открытой SCADA(Supervisory control and data acquisition) системы версии 0.7.0 является первым стабильным промышленным релизом, что связано с завершением стадии бета-тестирования, начатой с версии 0.6.4.</p>
<p id="p14126-3" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Основной целью данного релиза является предоставление сообществу пользователей и разработчиков свободного программного обеспечения (ПО) платформы для построения решений комплексных систем автоматизации и других смежных решений, а также предоставления коммерческих услуг на основе проекта OpenSCADA.</p>
<p id="p14126-3" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Данный релиз является первым стабильным релизом, для которого предоставляется техническая поддержка от разработчиков и для которого планируется выпуск исправлений в течении продолжительного времени.</p>
<p id="p14126-3" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Данный документ является обработкой(компиляцией) документа &quot;ChangeLog&quot; системы OpenSCADA версии 0.7.0, который призван вкратце и наглядно осветить новые возможности системы OpenSCADA. Детально ознакомиться с изменениями в системе OpenSCADA можно в файле &quot;ChangeLog&quot; из дистрибутива системы или здесь:&nbsp;<span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://wiki.oscada.org/Works/ChangeLog" target="_blank" class="outerlink" >http://wiki.oscada.org/Works/ChangeLog</a></span>.</p>
<p id="p14126-7" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">Ключевыми особенностями данной версии являются:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Реализация плановых задач.</li><li style="font-family: Verdana; font-size: 13px; ">Оптимизация, повышение стабильности, устойчивости и производительности системы.</li><li style="font-family: Verdana; font-size: 13px; ">Усовершенствование и стабилизация СВУ.</li><li style="font-family: Verdana; font-size: 13px; ">Формирование и стабилизация API пользовательского программирования.</li><li style="font-family: Verdana; font-size: 13px; ">Общесистемные расширения.</li><li style="font-family: Verdana; font-size: 13px; ">Значительные улучшения и исправления отдельных модулей.</li><li style="font-family: Verdana; font-size: 13px; ">Формирование документации и переводы документации и интерфейса.</li><li style="font-family: Verdana; font-size: 13px; ">Унификация демонстрационной БД.</li></ul><p id="p14126-8" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">&nbsp;</p>
<p id="p14126-8" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">Новые и обновленные модули:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Archive.FSArch - 1.3.1 -&gt; 1.4.1, исправления и улучшения для повышения производительности</li><li style="font-family: Verdana; font-size: 13px; ">Archive.DBArch - 0.9.0 -&gt; 0.9.2, исправления и некоторые улучшения</li><li style="font-family: Verdana; font-size: 13px; ">DB.DBF - 2.0.1 -&gt; 2.0.2, исправления</li><li style="font-family: Verdana; font-size: 13px; ">DB.MySQL - 1.6.1 -&gt; 1.6.2, некоторые улучшения</li><li style="font-family: Verdana; font-size: 13px; ">DB.SQLite - 1.6.1 -&gt; 1.6.2, улучшения</li><li style="font-family: Verdana; font-size: 13px; ">DB.FireBird - 0.9.1 -&gt; 0.9.5, значительные улучшения</li><li style="font-family: Verdana; font-size: 13px; ">DB.PostgreSQL - 0.9.0, новый модуль</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.DiamondBoards - 1.2.0 -&gt; 1.2.1, адаптация к изменению API</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.System - 1.7.0 -&gt; 1.7.2, очистка кода и адаптация к изменению API</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.BlockCalc - 1.2.1 -&gt; 1.4.0, улучшения и исправления</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.JavaLikeCalc - 1.5.0 -&gt; 1.8.0, значительные улучшения, исправления и оптимизация</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.LogicLev - 1.0.1 -&gt; 1.1.2, улучшения и исправления</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.SNMP - 0.4.0 -&gt; 0.4.1, адаптация к изменению API</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.Siemens - 1.2.1 -&gt; 1.2.3, исправления и адаптация к изменению API</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.ModBus - 1.0.1 -&gt; 1.1.1, исправления и улучшения</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.DCON - 0.3.0 -&gt; 0.3.3, исправления и улучшения</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.ICP_DAS - 0.5.0 -&gt; 0.7.2, значительные улучшения и исправления</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.DAQGate - 0.8.0 -&gt; 0.9.1, значительные улучшения и исправления</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.SoundCard - 0.6.0 -&gt; 0.6.1, адаптация к изменению API</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.OPC_UA - 0.6.0, новый модуль</li><li style="font-family: Verdana; font-size: 13px; ">Transport.Sockets - 1.4.0 -&gt; 1.4.5, улучшения и исправления</li><li style="font-family: Verdana; font-size: 13px; ">Transport.SSL - 0.8.2 -&gt; 0.9.5, улучшения и исправления</li><li style="font-family: Verdana; font-size: 13px; ">Transport.Serial - 0.5.0 -&gt; 0.7.1, значительные улучшения и исправления</li><li style="font-family: Verdana; font-size: 13px; ">Protocol.HTTP - 1.4.1 -&gt; 1.5.0, значительные улучшения</li><li style="font-family: Verdana; font-size: 13px; ">Protocol.SelfSystem - 0.9.1 -&gt; 0.9.3, исправления и адаптация к изменению API</li><li style="font-family: Verdana; font-size: 13px; ">Protocol.UserProtocol - 0.6.0, новый модуль</li><li style="font-family: Verdana; font-size: 13px; ">Protocol.ModBus - 0.5.0 -&gt; 0.6.1, исправления и улучшения</li><li style="font-family: Verdana; font-size: 13px; ">Protocol.OPC_UA - 0.6.0, новый модуль</li><li style="font-family: Verdana; font-size: 13px; ">Special.FLibComplex1 - 1.0.4 -&gt; 1.0.6, исправления и улучшения</li><li style="font-family: Verdana; font-size: 13px; ">Special.FLibMath - 0.5.1 -&gt; 0.5.2, адаптация к изменению API</li><li style="font-family: Verdana; font-size: 13px; ">Special.FLibSYS - 0.9.0 -&gt; 0.9.2, исправления и улучшения</li><li style="font-family: Verdana; font-size: 13px; ">Special.SystemTests - 1.3.7 -&gt; 1.5.0, переработка и унификация тестов</li><li style="font-family: Verdana; font-size: 13px; ">UI.QTStarter - 1.5.3 -&gt; 1.6.0, улучшения</li><li style="font-family: Verdana; font-size: 13px; ">UI.QTCfg - 1.8.1 -&gt; 1.9.0, значительные улучшения и исправления</li><li style="font-family: Verdana; font-size: 13px; ">UI.WebCfg - 1.5.3 -&gt; 1.5.4, исправления и адаптация к изменению API</li><li style="font-family: Verdana; font-size: 13px; ">UI.WebCfgD - 0.6.2 -&gt; 0.6.5, исправления</li><li style="font-family: Verdana; font-size: 13px; ">UI.VCAEngine - 0.9.0 -&gt; 1.0.0, значительные улучшения, исправления и оптимизация</li><li style="font-family: Verdana; font-size: 13px; ">UI.Vision - 0.9.0 -&gt; 1.0.0, значительные улучшения, исправления и оптимизация</li><li style="font-family: Verdana; font-size: 13px; ">UI.WebVision - 0.7.0 -&gt; 0.9.0, значительные улучшения и исправления</li><li style="font-family: Verdana; font-size: 13px; ">UI.WebUser - 0.6.0, новый модуль</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1020-3"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">1 Реализация плановых задач</h2>
<p id="p14126-9" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">В соответствии с планом релиза были выполнены следующие задачи:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>Реализация примитивов &quot;Связь&quot; и &quot;Функция&quot; СВУ.</em>&nbsp;- Ввиду непринципиальности для промышленного релиза и невостребованности на данный момент эта задача была вынесена за пределы первого промышленного релиза.</li><li style="font-family: Verdana; font-size: 13px; "><em>Стабилизация и выпуск промышленной ветки OpenSCADA.</em>&nbsp;- Проделана большая работа по стабилизации и оптимизации промышленного релиза, о чём подробнее в следующем разделе.</li><li style="font-family: Verdana; font-size: 13px; "><em>Реализация модуля БД ОДБС, PostgresSQL и транспортного модуля БД.</em>&nbsp;- Максимом Лысенко была выполнена реализация модуля БД &quot;PostgresSQL&quot;. Реализация модуля БД &quot;ODBC&quot; была признана нецелесообразной, поскольку технология &quot;ODBC&quot; фактически является интерфейсом SQL-запросов, который не учитывает особенностей SQL-диалектов реальных БД, а значит не может прямо, без оглядки на тип БД, использоваться в OpenSCADA при решении её основных задач. Перспектива использования &quot;ODBC&quot; остаётся для реализации доступа к БД, у которых нет &quot;родного&quot; API прямого доступа к БД, но есть драйвер ODBC, или для предоставления простого интерфейса SQL-запросов в OpenSCADA. Реализация транспортного модуля БД была вынесена за пределы первого промышленного релиза.</li><li style="font-family: Verdana; font-size: 13px; "><em>Реализация нового механизма/модуля тестов системы OpenSCADA.</em>&nbsp;- Для выполнения внутрисистемных тестов OpenSCADA механизм модуля тестирования был реализован в виде функций пользовательского API, что с одной стороны сохранило возможность автономного вызова статичных тестов и с другой стороны предоставило возможность вызова тестов по одному, вручную, а также из пользовательских скриптов в любом порядке и в нужном количестве отдельных задач.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1020-4"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">2 Оптимизация, повышение стабильности, устойчивости и производительности системы.</h2>
<p id="p14126-10" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">В процессе работ над данной версией, а также её практической адаптации, было обнаружено и исправлено в общей сложности около 200 ошибок.</p>
<p id="p14126-10" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Кроме исправления множества ошибок была проделана работа по оптимизации различных компонентов OpenSCADA. Особенно заметной оптимизации по-прежнему подверглась среда визуализации и управления (СВУ) и её визуализаторы.</p>
<p id="p14126-10" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Перечислим наиболее существенные ошибки, исправление которых значительно отразилось на повышении стабильности:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>Общесистемные</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Исправлена некорректная установка политики реального времени для потоков. Не был установлен флаг потока PTHREAD_EXPLICIT_SCHED.</li><li style="font-family: Verdana; font-size: 13px; ">Исправлен контроль за двойным захватом ресурса в одном потоке и захват ресурса по таймауту.</li><li style="font-family: Verdana; font-size: 13px; ">Механизм предотвращения многократного запуска исправлен на предмет проверки PID заблокированного процесса по причине удаления системой lock-файлов из директории /tmp.</li><li style="font-family: Verdana; font-size: 13px; ">Отключена упаковка данных структуры классов с помощью #pragma pack(push,1) по причине появления неявной ошибки с зависанием одного из потоков и блокирования остальных в прошивке OpenSCADA для ПЛК LP8x81.</li><li style="font-family: Verdana; font-size: 13px; ">Код инициализации и обновления модулей обновлен для исключения двойной инициализации разделяемых библиотек.</li><li style="font-family: Verdana; font-size: 13px; ">Функция создания задачи исправлена для предотвращения падения при создании автоматически закрываемых задач при быстром закрытии.</li><li style="font-family: Verdana; font-size: 13px; ">Исправлено зависание функции cron() в случае указания пустого расписания.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Транспорты</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>Serial, DAQ.DCON, DAQ.ModBus</em>: Транспорт последовательного интерфейса оптимизирован, сделан типовым и исправлен на предмет нескольких ошибок. Клиенты транспорта адаптированы для использования нового механизма.</li><li style="font-family: Verdana; font-size: 13px; "><em>Sockets, SSL</em>: Исправлена возможность неполной записи функцией write(). При записи в сокет эта функция пишет только часть размером в свой буфер (50кБ). Для полной записи больших сообщений добавлен повтор записи.</li><li style="font-family: Verdana; font-size: 13px; "><em>Transport.SSL:</em>&nbsp;Окончательно исправлено ожидание данных ответа сервера путём дожидания обработки данных в функции BIO_read().</li><li style="font-family: Verdana; font-size: 13px; "><em>Transport.Sockets:</em>&nbsp;Исправлена обработка нулевого результата ожидания хвоста сообщений для исключения зависания на запросах в DAQ.System.HDDTemp.</li><li style="font-family: Verdana; font-size: 13px; "><em>Transport.Serial:</em>&nbsp;Исправлено использование флага &quot;CSTOPB&quot; для указания количества стоп-битов.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Сбор данных</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>ModBus</em>: Исправлена потеря ресурса во время сбора данных. По этой причине исключена возможность присвоения строки прямо к объекту ресурсной строки.</li><li style="font-family: Verdana; font-size: 13px; "><em>JavaLikeCalc</em>: Исправлено использование функций для параметров контроллеров DAQ из IO функций для первого использования.</li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ, BlockCalc, JavaLikeCalc, LogicLev, Siemens</em>: Исправлено получение ошибочных данных по схеме резервирования в нерезервированных задачах и при отсутствии резервных станций.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Protocol.HTTP, UI.WebCfg, UI.WebCfgD, UI.WebUser, UI.Vision:</em>&nbsp;Значение HTTP-параметра &quot;Content-Type&quot; исправлено для элемента &quot;Charset&quot;.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.VCAEngine:</em>&nbsp;Исправлено падение движка визуализации при изменении мутированных атрибутов, которые многократно унаследованы.</li></ul><p id="p14126-13" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">&nbsp;</p>
<p id="p14126-13" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">Оптимизация и повышение производительности:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS.XML</em>: Функция преобразования дерева XML в строку оптимизирована по времени.</li><li style="font-family: Verdana; font-size: 13px; "><em>SYS.Archive</em>: Добавлен механизм адаптивной генерации запросов к архивам различного качества в случае общего запроса. Предотвращает продолжительную обработку в случае запроса больших интервалов времени и наличия менее качественных архивов.</li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ, DAQ.DAQGate</em>: Выполнена оптимизация запросов между резервными станциями по размеру запросов и по времени. Запрашиваются только архивные атрибуты параметров DAQ и атрибуты, запланированные к запросу.</li><li style="font-family: Verdana; font-size: 13px; "><em>Archive.FSArch</em>: Добавлено создание информационных файлов упакованных архивов без хранения этих данных в БД. Эта функция позволяет обеспечить быстрое подключение больших архивов к другим станциям.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.Vision</em>: В примитиве &quot;ElFigure&quot; для отрисовки вместо QImage использован QPixmap, что значительно повысило производительность.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.Vision</em>: Для построения изображения примитива &quot;Diagram&quot; использован QImage вместо QPicture, что значительно повысило производительность.</li><li style="font-family: Verdana; font-size: 13px; "><em>TFunction, DAQ.JavaLikeCalc</em>: Добавлен вложенный контекст функций с целью повышения производительности внешних вызовов.</li></ul><p id="p14126-14" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">&nbsp;</p>
<p id="p14126-14" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">Оптимизации использования памяти:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS</em>: Система переключена на использование традиционного &quot;map&quot; вместо &quot;hash_map&quot; во всех объектах с целью уменьшения потребления памяти.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.VCAEngine</em>: Объект атрибута &quot;Attr&quot; оторван от объекта &quot;TCntrNode&quot; с целью уменьшения потребления памяти до 25%.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1020-5"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">3 Усовершенствование и стабилизация СВУ.</h2>
<p id="p14126-15" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Заметные изменения были выполнены в рамках среды визуализации и управления (СВУ), а именно в модулях движка СВУ UI.VCAEngine, визуализаторов UI.Vision и UI.WebVision. Внесённые изменения были направленны на стабилизацию, оптимизацию потребления памяти и улучшение пользовательских свойств СВУ.</p>
<p id="p14126-15" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Улучшения СВУ:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлена полная поддержка вертикального масштабирования диаграмм.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена поддержка альфа-канала в атрибуты цвета всех примитивов.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.VCAEngine</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Включено и сделано безопасным наследование описания мутирующих атрибутов.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлены новые функции пользовательского API для сеансов wdgAdd(), wdgDel(), link(), linkSet(). Добавление этих функций позволило реализовать концепцию полностью динамического формирования интерфейса пользователя.</li><li style="font-family: Verdana; font-size: 13px; ">Свойства прав доступа к виджету реализованы атрибутами &quot;owner&quot; и &quot;perm&quot; для повышения гибкости управления.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлен механизм автоматического создания и запуска сеанса при загрузке.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>UI.Vision</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">В инспектор атрибутов добавлена возможность групповой установки одноимённых атрибутов разных виджетов. Установка производится в групповом контейнере свойств инспектора атрибутов, который появляется при выделении одновременно нескольких виджетов.</li><li style="font-family: Verdana; font-size: 13px; ">В примитиве &quot;ElFigure&quot; для отрисовки вместо QImage использован QPixmap, что значительно повысило производительность.</li><li style="font-family: Verdana; font-size: 13px; ">Для построения изображения примитива &quot;Diagram&quot; использован QImage вместо QPicture, что значительно повысило производительность.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена поддержка свойств пользовательского интерфейса. Добавлено управление и сохранение размера иконок панелей инструментов.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена возможность копирования значений атрибутов и связей посредством контекстного меню инспекторов атрибутов и связей.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена функция поиска по элементу &quot;TextEdit&quot;.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>UI.WebVision</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлена поддержка поворота примитива &quot;Text&quot;.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена генерация основных событий мыши. Для обработки некоторых событий добавлен стек функций обработчиков.</li><li style="font-family: Verdana; font-size: 13px; ">Для пользователя-отправителя адаптирован доступ к его сеансу и управление.</li></ul></li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1020-6"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">4 Формирование и стабилизация API пользовательского программирования.</h2>
<p id="p14126-17" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">В значительной степени было произведено формирование нового объектного API пользовательского программирования, которое предусматривает интеграцию пользовательских функций в дерево объектов системы OpenSCADA. Кроме этого, был внесен ряд изменений в существующие библиотеки функций пользовательского API.</p>
<p id="p14126-17" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">В частности были осуществлены следующие изменения:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS, Special.FLibSYS</em>: Объект пользовательского API XMLNodeObj перемещён в ядро OpenSCADA (файлы tvariant.h, tvariant.cpp).</li><li style="font-family: Verdana; font-size: 13px; ">Пользовательское системное API OpenSCADA основанное на объекте TCntrNodeObj расширено для контроля прав доступа пользователя.</li><li style="font-family: Verdana; font-size: 13px; ">Объект TAreaObj переименован в TArrayObj.</li><li style="font-family: Verdana; font-size: 13px; ">Свойства объектов, вызовы функций и обработка исключений пользовательского API унифицировано.</li><li style="font-family: Verdana; font-size: 13px; "><em>SYS.TVarObj</em>: Добавлена функция propList() для возможности сканирования атрибутов.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ.JavaLikeCalc</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Функции пользовательского API добавлены: insert(), replace(), toReal(), toInt(), parse(), parsePath() и path2sep() в объект значения строкового типа.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена функция isEVal() к базовым типам, для обнаружения EVAL-значений.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Special.FLibComplex1</em>: Функция ПИД расширена новыми параметрами: Kd, Tzd и followSp. Удалён параметр Tf.</li><li style="font-family: Verdana; font-size: 13px; "><em>Объектное API пользовательского программирования</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS</em>: Функции пользовательского API: system(), message(), XMLNode(), cntrReq(), time(), localtime(), strftime(), strptime(), cron(), messDebug(), messInfo(), messNote(), messWarning(), messErr(), messCrit(), messAlert(), messEmerg() и strFromCharCode() добавлены в корневой объект ядра OpenSCADA.</li><li style="font-family: Verdana; font-size: 13px; "><em>DB</em>: Функция пользовательского API SQLReq() добавлена в объект БД.</li><li style="font-family: Verdana; font-size: 13px; "><em>Transport</em>: Функция пользовательского API messIO() добавлена для объекта исходящего транспорта.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.VCAEngine</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Функции пользовательского API: user(), alrmSndPlay() и alrmQuittance() добавлены в объект сеанса проекта.</li><li style="font-family: Verdana; font-size: 13px; ">В объект &quot;Widget&quot; добавлены функции пользовательского API: ownerSess(), ownerPage(), ownerWdg(), attrPresent(), attr(), attrSet(), wdgAdd(), wdgDel(), link() и linkSet().</li><li style="font-family: Verdana; font-size: 13px; ">Добавлен специальный атрибут &quot;this&quot; во все скрипты СВУ для доступа к объекту виджета и последующего вызова его функций пользовательского API.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Archives</em>: Функция пользовательского API messGet() добавлена для объекта подсистемы &quot;Архивы&quot;.</li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ.Value</em>: Добавлены функции пользовательского API get() и set() для атрибутов.</li></ul></li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1020-7"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">5 Общесистемные расширения.</h2>
<p id="p14126-19" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">В общесистемное API системы OpenSCADA были внесены значительные изменения и расширения с целью повышения функциональности и общей стабилизации:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлен механизм предотвращения повторного запуска в скрипты: demo-start и user-start.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлены глобальные функции для создания (регистрации) taskCreate() и закрытия taskDestroy() потоков. Все компоненты OpenSCADA используют новое API.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлены файлы debian/* для поддержки построения Debian пакетов.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена функция strParse() для расширения функции strSepParse() на предмет поддержки многосимвольных разделителей и объединения односимвольных.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена инфраструктура счётчиков отладки.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена возможность назначения процессоров для потоков OpenSCADA на много-процессорных системах и много-ядерных процессорах.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлен менеджер задач. Добавлено поле идентификатора процесса потока в менеджер задач.</li><li style="font-family: Verdana; font-size: 13px; ">Для реализации специфических функций добавлена обёртка над задачами OpenSCADA. Добавлена обработка исключений &quot;TError&quot; для задач внутри обёртки.</li><li style="font-family: Verdana; font-size: 13px; ">Код ядра системы OpenSCADA помещён в область имён &quot;OSCADA&quot;. Версия библиотеки ядра OpenSCADA повышена до 1:0:0.</li><li style="font-family: Verdana; font-size: 13px; ">Унифицированы права доступа ко всем элементам интерфейса управления.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена проверка на версию более 2.0 утилиты сборки libtool. Включена сборка только разделяемых библиотек для модулей.</li><li style="font-family: Verdana; font-size: 13px; ">Идентификатор модуля помещён в класс конструктора для упрощения инициализации перевода текстовых сообщений модулей.</li><li style="font-family: Verdana; font-size: 13px; ">Для всех переводов использовано параметры утилиты xgettext &quot;-C --no-location --no-wrap -k_&quot;. Использовано для очистки от мусора файлов переводов.</li><li style="font-family: Verdana; font-size: 13px; ">Версии API всех модульных подсистем установлено в 5.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>SYS.Function, DAQ.BlockCalc, DAQ.LogicLev, UI.VCAEngine</em>: Добавлен механизм контроля за изменениями параметров контроллеров подсистемы &quot;Сбор данных&quot;.</li><li style="font-family: Verdana; font-size: 13px; "><em>DB</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлено автоматическое открытие доступных таблиц по запросу к ним.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлено управление транзакциями в функцию sqlReq(), а также добавлена функция transCloseCheck().</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>TFunction, DAQ.JavaLikeCalc</em>: Добавлен вложенный контекст функций с целью повышения производительности внешних вызовов.</li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ</em>: Код ошибки добавлен в статус контроллера, что позволяет идентифицировать состояние и отображать его.</li><li style="font-family: Verdana; font-size: 13px; "><em>Protocol, Transport, DAQ.ModBus, Protocol.UserProtocol</em>: Добавлена функция itemListIn() для выбора элементов протокола. Добавлен выбор элементов протокола посредством функции TProtocol::itemListIn().</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1020-8"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">6 Значительные улучшения и исправления отдельных модулей.</h2>
<p id="p14126-20" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">В процессе работы над данным промышленным релизом значительных изменений, улучшений и стабилизации претерпели отдельные модули OpenSCADA:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>DB.MySQL</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлена поддержка неограниченных значений типов данных &quot;Вещественное&quot; и &quot;Целое&quot;.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлено преобразование значения EVAL для вещественного типа.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>DB.SQLite</em>: Улучшен механизм транзакций для поддержки внутрипользовательских SQL-запросов и закрытия старых транзакций.</li><li style="font-family: Verdana; font-size: 13px; "><em>DB.FireBird</em>: Добавлена поддержка многоязыковости текстовых переменных. Унифицирована поддержка транзакций.</li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>DAQGate</em>: Добавлена поддержка возможности запроса отдельных атрибутов. Использовано для запроса архивируемых и часто запрашиваемых атрибутов. Все остальные атрибуты запрашиваются с периодом синхронизации путём полного запроса. Используется для уменьшения нагрузки и времени при обмене DAQGate с удалённой OpenSCADA станцией.</li><li style="font-family: Verdana; font-size: 13px; "><em>ICP_DAS</em>: Добавлен статус DIP-переключателя для ПЛК LP-8781. Функции отправки сообщений по последовательному интерфейсу перемещены в общую функцию serReq() и все запросы используют её.</li><li style="font-family: Verdana; font-size: 13px; "><em>ModBus</em>: Добавлены суффиксы &quot;i2,i4,f,b0&quot; к регистрам (R и RI) для гибкого доступа посредством различных типов данных.</li><li style="font-family: Verdana; font-size: 13px; "><em>JavaLikeCalc</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлена поддержка обзорного цикла для сканирования свойств объекта &quot;for( &lt;i&gt; in &lt;obj&gt; ) &lt;code&gt;;&quot;.</li><li style="font-family: Verdana; font-size: 13px; ">Свойства объектов, вызовы функций и обработка исключений пользовательского API унифицировано.</li></ul></li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Transport</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>Serial</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлена возможность выбора типа управления потоком. Поддерживается аппаратное (CRTSCTS) и программное (IXON IXOFF) управление потоком.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена поддержка режима модема для всех входных и выходных транспортов.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>SSL</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлена поддержка KeepAlive лимитов. Добавлена поддержка переподключения после потери соединения и для предотвращения потери сообщений.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлено получение адреса отправителя.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>SSL, Sockets</em>: В исходящий транспорт добавлены тайминги для отдельного управления временем соединения и временем ожидания последующих ответов.</li><li style="font-family: Verdana; font-size: 13px; "><em>Protocol.HTTP</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлена функция исходящего протокола.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена поддержка автоматического входа.</li></ul></li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Archive.FSArch</em>: Добавлено создание информационных файлов упакованных архивов без хранения этих данных в БД. Эта функция позволяет обеспечить быстрое подключение больших архивов к другим станциям.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.QTCfg</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлена подстройка строк для таблиц, после добавления новых строк. Добавлена поддержка копирования содержимого таблицы в буфер обмена.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена функция поиска по элементу &quot;TextEdit&quot;.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена возможность копирования списка выбранных узлов.</li></ul></li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1020-9"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">7 Формирование документации и переводы документации и интерфейса.</h2>
<p id="p14126-21" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">Поскольку данный релиз позиционируется как промышленный релиз с продолжительным периодом поддержки, то к его выходу было закончено написание на Русском языке, а также перевод на Английский язык всей основной документации. Кроме того, завершён перевод интерфейса программы на Английский, Русский, Украинский и Немецкий языки:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавлен перевод README на Украинский.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлен перевод документа DAQ и обобщающего документа на Английский.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлен документ &quot;Быстрый старт&quot;.</li><li style="font-family: Verdana; font-size: 13px; ">Выполнен перевод документа &quot;Быстрый старт&quot; на Английский язык.</li><li style="font-family: Verdana; font-size: 13px; ">Общий документ &quot;OpenSCADA&quot; на Английском обновлен для включения частей &quot;Быстрый старт&quot; и DAQ.OPC_UA.</li><li style="font-family: Verdana; font-size: 13px; ">Обновлен перевод интерфейса ядра системы на Русский, Украинский и Немецкий языки.</li><li style="font-family: Verdana; font-size: 13px; ">Для всех переводов использовано параметры утилиты xgettext &quot;-C --no-location --no-wrap -k_&quot;. Использовано для очистки от мусора файлов переводов.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1020-10"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">8 Унификация демонстрационной БД.</h2>
<p id="p14126-22" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">В процессе подготовки промышленного релиза значительное внимание было уделено улучшению демонстрационной БД как яркой демонстрации функций системы OpenSCADA:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Значительное обновление для поддержки новых возможностей и включения новых улучшений из системы автоматизации шаровых мельниц.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлена поддержка пользовательского вызова демонстрационной БД в полноценном режиме на запись.</li><li style="font-family: Verdana; font-size: 13px; ">Добавлено масштабирование существующих элементов в случае отсутствия строк и колонок для обзорного кадра и сводной таблицы.</li><li style="font-family: Verdana; font-size: 13px; ">Обновлено для включения новых моделей аппаратов технологических процессов и адаптации всех остальных моделей.</li><li style="font-family: Verdana; font-size: 13px; ">Обновлено для:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Добавления объектов сигнализации компрессоров: KM201, KM301, KM202 и KM302.</li><li style="font-family: Verdana; font-size: 13px; ">Поддержки ручного ввода переменных с панели управления.</li><li style="font-family: Verdana; font-size: 13px; ">Обновления перевода.</li><li style="font-family: Verdana; font-size: 13px; ">Исправления нескольких ошибок.</li></ul></li><li style="font-family: Verdana; font-size: 13px; ">Скрипт главной страницы проекта переписан для использования новых функций пользовательского API.</li><li style="font-family: Verdana; font-size: 13px; ">Использован новый механизм доступа к элементам пользовательского интерфейса. Предоставлен реальный доступ на чтение для простого пользователя (&quot;user&quot;).</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1020-11"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">9 Решения, построенные на основе OpenSCADA</h2>
<p id="p14126-23" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">На основе проекта OpenSCADA построен фактически весь спектр решений автоматизации, которые ярко демонстрируют возможности, а также являются сигналом готовности системы для широкого промышленного применения.</p>
<p id="p14126-24" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">В целом, на основе OpenSCADA авторами проекта решались задачи: полного динамического моделирования технологических процессов (ТП), управление ТП на уровне программируемого логического контроллера (ПЛК) и формирование человеко-машинного интерфейса ТП.</p>
<p id="p14126-24" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">Моделирование ТП представлено решениями: «Библиотека моделей аппаратов технологических процессов», «Динамическая модель реального времени Анастасиевской ГЛКС» и «Динамическая модель парового котла №9 ДМК». Причём решение «Динамическая модель реального времени Анастасиевской ГЛКС» было положено в основу демонстрационной БД проекта и распространяется со всеми дистрибутивами OpenSCADA.</p>
<p id="p14126-24" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">Сфера управления ТП на уровне программируемого логического контроллера (ПЛК) представлена решениями: «OpenSCADA в программируемом логическом контроллере (ПЛК)» и «Среда исполнения ПЛК LP-8x81 фирмы ICP DAS на основе OpenSCADA».</p>
<p id="p14126-24" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">Сфера формирование человеко-машинного интерфейса ТП представлена решениями: «Библиотеки графических элементов пользовательских интерфейсов» и «АСУ ТП шаровых мельниц ШБМ 287\410 котлоагрегата БКЗ 160–100 ПТ».</p>
<p id="p14126-24" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">Нужно также отметить наличие ряда решений, не вошедших в вышеприведенный перечень, и выполненных разработчиками системы для третьих лиц или непосредственно её пользователями.</p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">Заключение</h2>
<p id="p14126-29" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Система OpenSCADA готова для практического использования в сложных промышленных условиях и выполнения широкого спектра задач автоматического управления технологическими процессами.</p>
<p id="p14126-29" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">С целью предоставления качественного сервиса на основе решений OpenSCADA, а также развития в направлении поддержки специализированного оборудования, протоколов и интерфейсов; разработчиками планируется и активно ведётся работа по формированию политики предоставления услуг на коммерческой основе. В число коммерческих услуг будет входить: техническая поддержка, консультации и целевая разработка расширений, интеграция и внедрение решений, а также разработка специализированных решений и продуктов на основе OpenSCADA.</p>
<p id="p14126-29" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Версия 0.7.0 предоставляет решения OpenSCADA только для платформы Linux x86 и x86_64. Для осуществления поддержки других аппаратных и программных платформ, запланированных проектом, работа будет продолжена. Так, к версии 0.8.0 планируется расширить поддержку аппаратных платформ минимум на платформу АРМ, как представителя RISC архитектур.</p>
<p id="p14126-29" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">В появлении первой промышленной версии системы OpenSCADA активное участие приняли:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".romansavochenko" href="http://wiki.oscada.org/RomanSavochenko?v=1bw8" title="Roman&amp;nbsp;Savochenko">Савоченко Роман</a></span>: Основной объём работ по проектированию, разработке, документированию и тестированию.</li><li style="font-family: Verdana; font-size: 13px; "><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".maximlysenko" href="http://wiki.oscada.org/MaximLysenko?v=2iq" title="Maxim&amp;nbsp;Lysenko">Лысенко Максим</a></span>: Разработка примитива &quot;Элементарная фигура&quot; среды визуализации и управления (СВУ), создание модуля поддержки БД PostgreSQL и перевод большей части документации на Английский язык.</li><li style="font-family: Verdana; font-size: 13px; "><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".yashinaksenia" href="http://wiki.oscada.org/YashinaKsenia?v=139q" title="Yashina&amp;nbsp;Ksenia">Яшина Ксения</a></span>: Разработка примитива &quot;Элементарная фигура&quot; СВУ.</li><li style="font-family: Verdana; font-size: 13px; "><em>Попкова Ирина</em>: Перевод интерфейса системы OpenSCADA и её модулей на Немецкий язык.</li><li style="font-family: Verdana; font-size: 13px; "><em>Алмаз Каримов</em>: Разработка модуля поддержки протокола DCON и активное тестирование.</li><li style="font-family: Verdana; font-size: 13px; "><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".popkovaleksey" href="http://wiki.oscada.org/PopkovAleksey?v=141x" title="Popkov&amp;nbsp;Aleksey">Попков Алексей</a></span>: Активное тестирование и участие.</li><li style="font-family: Verdana; font-size: 13px; ">Многие другие пользователи системы OpenSCADA, посредством всестороннего тестирования.</li></ul>]]></content:encoded>
			<category>Новость</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Wed, 16 Nov 2011 18:00:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>27-30го сентября 2011г. в городе Киев (Украина), состоялся международный инновационный форум, а 1 октября конференция и выставка открытых решений - FOSS 2011</title>
			<link>http://www.oscada.org/ru/khranilishche-novostei/odinochnaja-stranica/article//on-september-27-30th-2011-in-city-kiev-ukraine-the-international-innovation-forum-and-on-october//205ac1107f3cd1615ae1aaa8b7095dcf/</link>
			<description>На стенде Днепродзержинского Государственного Университета (ДГТУ) и фирмы ООО НИП &quot;ДІЯ&quot;, в рамках...</description>
			<content:encoded><![CDATA[<p class="align-justify indent10">На форуме и выставке были представлены следующие решения OpenSCADA:</p><ul><li>Динамические модели технологических процессов и систем управления ими: Газо-лифтная компрессорная станция на шесть компрессоров, Многотопливный паровой котлоагрегат БКЗ-160.</li><li>Модель и контроллер (ICP_DAS) САУ шаровой барабанной мельницы помола угля для котлоагрегатов ТЭЦ.</li><li>OpenSCADA на мобильном устройстве: Nokia N800, N950.</li><li>OpenSCADA на промышленных контроллерах: ICP_DAS LP-8781, LP-5141.</li></ul>]]></content:encoded>
			<category>Новость</category>
			<category>Доклад</category>
			<category>Публикация</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Sun, 25 Sep 2011 09:15:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>Сборка OpenSCADA и прошивки для ARM-контроллеров фирмы ICP DAS (LP-5141)</title>
			<link>http://www.oscada.org/ru/khranilishche-novostei/odinochnaja-stranica/article//building-openscada-and-firmware-for-arm-controllers-of-icp-das-company-lp-5141//7575b52247497f23f6ec5e3a7984e7be/</link>
			<description>Имя: LP-5xxx
Основан: август 2011г
Завершен: сентябрь 2011г
Версия: 1.0.0
Участники: Роман...</description>
			<content:encoded><![CDATA[<p id="p51258-4" class="align-justify auto indent10"> Фирма <a href="http://www.icpdas.com/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">ICP_DAS</a> достаточно давно выпускает контроллеры на процессорах <a href="http://ru.wikipedia.org/wiki/ARM" target="_blank" class="outerlink" >ARM</a> архитектуры c предустановленным окружением <a href="http://ru.wikipedia.org/wiki/Linux" target="_blank" class="outerlink" >ОС Linux</a>, что делает интересным создание сборки OpenSCADA или новой прошивки с OpenSCADA.</p>
<p id="p51258-5" class="align-justify auto indent10"> До последнего момента был ряд причин, препятствующих созданию сборки OpenSCADA для ARM-контроллеров ICP DAS:</p><ul><li> отсутствие на руках одного из ARM-контроллеров; </li><li> неготовность OpenSCADA для работы на ARM-архитектуре; </li><li> крайне устаревшее окружение Linux ARM-контроллеров фирмы &quot;ICP DAS&quot;.</li></ul><p id="p51258-6" class="align-justify auto indent10"> На данный момент все эти препятствия были устранены. Так, благодаря  Петру Литковцу на руках появился контроллер LP-5141, а к этому моменту  OpenSCADA в значительной степени была уже адаптирована к работе на  ARM-архитектуре, посредством отработки и стабилизации на наладонном  компьютере фирмы <a href="http://www.nokia.ru/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">Nokia</a> - <a href="http://ru.wikipedia.org/wiki/Nokia_N800" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">N800</a>.  В последствии же работы с контроллером LP-5141 было устранено последнее  препятствие путём обновления исходного программного окружения с  сохранением изначального функционала.</p>
<p id="p51258-7" class="align-justify auto indent10"> В общем, целью данного проекта является отработка механизмов и создание  сборки OpenSCADA для контроллеров семейства ARM фирмы &quot;ICP DAS&quot;, а также  создание прошивок под контроллеры &quot;ICP DAS&quot;, которые будут попадать в  руки разработчиков OpenSCADA.</p>
<h2>1. ПЛК LP-5141</h2>
<p id="p51258-8" class="align-justify auto indent10"> ПЛК конструктивно выполнен в виде моноблока, который не содержит  встроенного УСО, а подключение внешнего осуществляется посредством  встроенного интерфейса RS-485, например, в виде модулей серии I-7000  фирмы &quot;ICP DAS&quot;.</p><div style="float:center; text-align:center"><p class="bodytext"><img src="http://wiki.oscada.org/Using/LP5xxx/files?get=lp5141.png" alt=" (27&amp;nbsp;Кб)" title=" (27&amp;nbsp;Кб)" height="200" width="154"><br /> Рис. ПЛК серии LP-5xxx.</p></div><p id="p51258-9" class="align-justify auto indent10"> Процессор контроллера имеет следующие технические характеристики:</p><table rules="all" style="border-style: solid; border-width: 1px; border-color: rgb(0, 0, 0); border-collapse: collapse; " class="contenttable"> <thead><tr class="userrow"><th scope="col" class="usercell"><p class="bodytext"> CPU </p></th><th scope="col" class="usercell"><p class="bodytext"> PXA270 или совместимый (32-бит и 520МГц) </p></th></tr></thead><tbody> <tr class="userrow"><td class="usercell"><p class="bodytext"> SDRAM </p></td><td class="usercell"><p class="bodytext"> 128 MB </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Flash </p></td><td class="usercell"><p class="bodytext"> 64 MB </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> EEPROM </p></td><td class="usercell"><p class="bodytext"> 16 KB<br /> Хранение данных: 40 лет; 1,000,000 циклов удаления/записи. </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Расширенная Flash память </p></td><td class="usercell"><p class="bodytext"> microSD сокет с одной microSD картой на 2GB (может поддерживать 16 GB microSDHC карты) </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> 64-бит Серийный Номер Оборудования </p></td><td class="usercell"><p class="bodytext"> Есть </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Двойной Watchdog таймер </p></td><td class="usercell"><p class="bodytext"> Есть </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> VGA </p></td><td class="usercell"><p class="bodytext"> 800 × 600 </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Ethernet порты </p></td><td class="usercell"><p class="bodytext"> RJ-45 x 2, 10/100 Base-TX Ethernet Контроллер (Авто-согласование, авто MDI/MDI-X, LED индикатор) </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> USB 1.1 (хост) </p></td><td class="usercell"><p class="bodytext"> 1 </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> COM1 (/dev/ttySA0) </p></td><td class="usercell"><p class="bodytext"> RS-232 (RxD, TxD and GND); Не изолирован </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> COM2 (/dev/ttySA1) </p></td><td class="usercell"><p class="bodytext"> RS-485 (D2+,D2-); 2500 VDC; изолирован </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> COM3 (/dev/ttySA3) </p></td><td class="usercell"><p class="bodytext"> RS-232 (RxD, TxD and GND); Не изолирован </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Рабочая температура </p></td><td class="usercell"><p class="bodytext"> -25 ~ +75 °C </p></td></tr> </tbody></table><p class="bodytext"> <a name="h1076-4"></a></p>
<h2>2. Программное окружение на основе OpenSCADA.</h2>
<p id="p51258-10" class="align-justify auto indent10"> Программное окружение, основанное на ОС Linux, для ARM контроллеров  фирмы ICP DAS обычно имеет: ядро Linux 2.6.19, GLibC 2.2.5 и GCC 2.95.  Для сборки стороннего ПО фирмой ICP-DAS предоставляется SDK с  кросскомпилятором, набором библиотек и заголовков к ним (Linux  toolchain). Как можно видеть, версии GLibC и GCC очень старые, а именно  времён 2001 года. Сборка OpenSCADA в таком окружении фактически  невозможна. Если использование GLibC версии 2.2.5 ещё возможно, то GCC  версии 2.95 имеет C++ компилятор, который на сборке кода OpenSCADA  просто рушится, а стандартная библиотека C++ или STL крайне ограничена и  под неё требуется значительная и главное бессмысленная адаптация. По  этой причине потребовалось обновление исходного программного окружения  до версии GCC компилятора или библиотеки C++ не менее 3.</p>
<p id="p51258-11" class="indent10 auto align-justify"> Поскольку внутренняя флешь-память имеет сравнительно небольшой объём (64  Мб), а полная пересборка исходного программного окружения контроллера —  достаточно трудоёмкий процесс, то решено было обеспечить совместимость  базовых библиотек нового и старого окружения. А именно, возможность  использовать библиотеки вроде fontconfig, i8k из исходного окружения и  работу программ исходного окружения с новыми библиотеками.</p>
<p id="p51258-12" class="align-justify auto indent10"> В процессе подбора нового программного окружения для процессора PXA-270  контроллера &quot;ICP DAS&quot; было опробовано несколько вариантов, поскольку  часть из них обладала теми или иными недостатками:</p><ul><li> <em><a href="http://kegel.com/crosstool" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />crosstool-0.43</a></em>  — интересный хотя и устаревший проект (последняя версия 2006 года) по  сборке Linux кроссокружения под нужное оборудование. Был отложен после  нескольких неудачных попыток собрать новое окружение для работы с  &quot;Software FP&quot; и &quot;VFP&quot;. Как в последствии оказалось для объектных файлов  исходного окружения некорректно показывается информация о якобы наличии  там &quot;Software FP&quot; и &quot;VFP&quot;, хотя на самом деле операции с вещественными  числами там осуществляются посредством &quot;FPA&quot;. Следовательно, можно в  последствии вернуться к этому варианту. </li><li> <em><a href="http://pxa-linux.sourceforge.net/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />PXA-Linux Project</a></em> — проект по созданию независимого набора инструментов Linux для сборки под процессор PXA. Имеет бинарную сборку <a href="ftp://ftp.arm.linux.org.uk/pub/armlinux/people/xscale/mainstone/02-25-2005/bin/arm-linux-toolchain-bin-12-15-04-driscoll.tar.gz" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/file.gif" />02-25-2005/bin/arm-linux-toolchain-bin-12-15-04-driscoll.tar.gz</a>.  Оказалось, что эта сборка собрана с &quot;Software FP&quot; и &quot;VFP&quot;, а также  имеет проблемы в виде отключения ряда расширение компилятора gcc,  например: __attribute__((packed)). </li><li> <em><a href="http://voipac.com/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />Voipac</a></em> — бинарная сборка инструментов кросскомпиляции (<a href="http://voipac.com/downloads/pxa/toolchain/bin/arm-linux-gcc-3.4.1.tar.gz" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/file.gif" />arm-linux-gcc-3.4.1.tar.gz</a>)  от фирмы &quot;Voipac&quot; для собственного оборудования на процессоре PXA-270.  Данный набор подошёл идеально по всем параметрам и последующая сборка  проводилась с помощью него.</li></ul><p id="p51258-13" class="indent10 auto align-justify"> Результирующее окружение контроллера с OpenSCADA было сформировано путём  замены базовых библиотек исходного окружения на библиотеки из набора  инструментов от &quot;Voipac&quot;, сборки OpenSCADA и помещения файлов OpenSCADA в  дерево исходного окружения.</p>
<p id="p51258-14" class="align-justify auto indent10"> OpenSCADA была собрана с отключением ряда библиотек и модулей. Так, были собраны и проверены модули и функции OpenSCADA:</p><ul><li> <em>Ядро OpenSCADA</em>  — собрано с библиотекой LibGD2 (работа проверена). В процессе проверки и  адаптации расширены функции хранения конфигурации OpenSCADA в  конфигурационном файле. </li><li> <em>DB.SQLite</em> — БД SQLite (работа проверена). Собрана  библиотека и модуль OpenSCADA для работы с БД SQLite. В процессе  проверки обнаружена и выполнен обход ошибки в GLibC 2.3.2, связанной с  отсутствием проверки на взаимо-блокирование &quot;rw&quot;-ресурсов. </li><li> <em>DB.DBF</em> — БД DBF (работа проверена). Модуль работы с DBF-файлами версии 3. </li><li> <em>Transport.Sockets</em> — Модуль транспорта Сокетов TCP,  UDP и Unix (работа проверена). В процессе использования TCP-сокетов  обнаружена и устранена неинициализация структуры проверки состояния  сокета. </li><li> <em>Transport.SSL</em> — Модуль транспорта безопасных сокетов: SSL, TLS (работа проверена). </li><li> <em>Transport.Serial</em> — Модуль транспорта последовательных  интерфейсов (работа проверена). Выяснилось, что COM3 почему-то  расположен на устройстве /dev/ttySA3. </li><li> <em>Protocol.SelfSystem</em> — Модуль собственного протокола OpenSCADA (работа проверена). </li><li> <em>Protocol.HTTP</em> — Модуль реализации протокола HTTP (работа проверена). </li><li> <em>Protocol.ModBus</em> — Модуль реализации протокола ModBus (работа проверена). Конфигурация станции как сервера данных посредством протокола ModBus. </li><li> <em>Protocol.OPC_UA</em> — Модуль реализации протокола OPC UA  (работа проверена). Конфигурация станции как сервера данных посредством  протокола OPC UA. Обнаружена проблема различия представления  вещественного на x86 и ARM FPA! </li><li> <em>Protocol.UserProtocol</em> — Модуль свободной реализации простых протоколов пользователем посредством языка программирования OpenSCADA (работа проверена). </li><li> <em>DAQ.System</em> — Модуль данных операционной системы (работа проверена). Собран без использования библиотеки LibSensors. </li><li> <em>DAQ.JavaLikeCalc</em> — Модуль реализации Java-подобного пользовательского языка и вычислений на его основе (работа проверена). </li><li> <em>DAQ.BlockCalc</em> — Модуль реализации блочных вычислений (работа проверена). </li><li> <em>DAQ.LogicLev</em> — Модуль реализации источников данных логического уровня (работа проверена). </li><li> <em>DAQ.ModBus</em> — Модуль работы с источниками данных посредством протокола ModBus (работа проверена). </li><li> <em>DAQ.DCON</em> — Модуль работы с источниками данных  посредством протокола DCON (работа проверена). Например, с устройствами  ICP_DAS серии I-7000. Обнаружено и исправлено падение при получении  отрицательного размера ответа. Результат ответа возвращается теперь  всегда &gt;= 0. </li><li> <em>DAQ.ICP_DAS</em> — Модуль источников данных ICP_DAS (<span class="cl-blue">нет оборудования для проверки</span>).  Последовательные серии: I-87000 и I-7000; параллельные (быстрые): серии  I-8000. Модуль собран с библиотекой libi8k.a для ARM-архитектуры.<br /> </li><li> <em>DAQ.DAQGate</em> — Модуль реализации шлюзования источников данных других станций OpenSCADA (работа проверена). </li><li> <em>DAQ.OPC_UA</em> — Модуль работы с источниками данных  посредством протокола OPC_UA (работа проверена). Обнаружена проблема  различия представления вещественного на x86 и ARM FPA - добавлено  преобразование при передаче! </li><li> <em>DAQ.Siemens</em> — Модуль работы с контроллерами Siemens, посредством Industrial Ethernet (ISO_TCP) (работа проверена). </li><li> <em>DAQ.SNMP</em> — Модуль сбора данных сетевого оборудования по протоколу SNMP (работа проверена). </li><li> <em>Archive.DBArch</em> — Модуль архивирования на БД (работа проверена). </li><li> <em>Archive.FSArch</em> — Модуль архивирования на файловую  систему (работа проверена). Обнаружена проблема при проверке архива,  выдача сообщения при запуске: &quot;Error archive file structure:  &lt;ARCHIVES/VAL/1s/CPULoad_load 2011-09-12 17:47:17.val&gt;. Margin =  -8 byte. Will try fix it!&quot;. В результате выяснено, что алгоритм быстрого  подсчёта битов не выравнен на 4 байта при чтении буфера памяти -  исправлено. </li><li> <em>UI.WebCfg</em> — Модуль Web конфигуратора OpenSCADA (работа проверена). </li><li> <em>UI.WebCfgD</em> — Модуль Web динамического конфигуратора OpenSCADA (работа проверена). </li><li> <em>UI.VCAEngine</em> — Модуль движка визуализации (работа проверена). </li><li> <em>UI.WebVision</em> — Модуль визуализатора пользовательских интерфейсов в <em>UI.VCAEngine</em> посредством Web-интерфейса (работа проверена). </li><li> <em>UI.WebUser</em> — Модуль свободной пользовательской визуализации посредством Web-интерфейса (работа проверена). </li><li> <em>Special.FLibComplex1</em> — Библиотека функций совместимости с Complex1(ООО НИП &quot;ДІЯ&quot;) (работа проверена). Используются для блочного программирования. </li><li> <em>Special.FLibMath</em> — Библиотека стандартных математических функций (работа проверена). </li><li> <em>Special.FLibSYS</em> — Библиотека системных функций расширения OpenSCADA (работа проверена).</li></ul><p id="p51258-15" class="indent10 auto align-justify"> С целью удобного распространения и применения полученной сборки  OpenSCADA для ARM-контроллеров фирмы &quot;ICP  DAS&quot; был выполнен разбор  формата прошивок для этих контроллеров и формирование новой, включающей  OpenSCADA. Прошивка ARM-контроллеров &quot;ICP DAS&quot; представляет из себя  бинарный файл с именем вроде &quot;lp5x4x_1.1.bin&quot;. Структурно этот файл  содержит ядро и корневую файловую систему типа JFFS2. Узнать точное их  расположение можно с помощью команды в исходном окружении контроллера,  например, для LP-5141:<br /> </p><div class="code indent"><p class="bodytext"><span style="color: #000000"> $&nbsp;cat&nbsp;/proc/mtd<br />dev:&nbsp;&nbsp;&nbsp;&nbsp;size&nbsp;&nbsp;&nbsp;erasesize&nbsp;&nbsp;name<br />mtd0:&nbsp;00040000&nbsp;00020000&nbsp;&quot;Bootloader&quot;<br />mtd1:&nbsp;00040000&nbsp;00020000&nbsp;&quot;Bootloader&nbsp;Param&quot;<br />mtd2:&nbsp;00280000&nbsp;00080000&nbsp;&quot;Kernel&quot;<br />mtd3:&nbsp;03c80000&nbsp;00080000&nbsp;&quot;JFFS2&nbsp;Filesystem&quot;</span> </p></div><p id="p51258-16" class="indent10 auto align-justify"> Из полученного результата команды можно сделать вывод, что точка  соединения образа ядра и файловой системы находится по смещению файла  прошивки 0x280000, а размер блока стирания флеши составляет 0x80000  (512кБ). Имея эту информацию мы можем разобрать прошивку и внести  изменения в образ её файловой системы:<br /> </p><div class="code indent"><p class="bodytext"><span style="color: #000000"> #&nbsp;Извлечение&nbsp;исходных&nbsp;образов&nbsp;ядра&nbsp;и&nbsp;корневой&nbsp;файловой&nbsp;системы<br />$&nbsp;dd&nbsp;if=lp5x4x_1.1.bin&nbsp;of=kernel_orig&nbsp;bs=1K&nbsp;count=2560<br />$&nbsp;dd&nbsp;if=lp5x4x_1.1.bin&nbsp;of=jffs2_orig&nbsp;bs=1K&nbsp;skip=2560<br /><br />#&nbsp;Подключение&nbsp;исходного&nbsp;образ&nbsp;файловой&nbsp;системы<br />$&nbsp;modprobe&nbsp;mtdram&nbsp;total_size=65536&nbsp;erase_size=512<br />$&nbsp;modprobe&nbsp;mtdblock<br />$&nbsp;dd&nbsp;if=root_orig.img&nbsp;of=/dev/mtdblock0<br />$&nbsp;mount&nbsp;-t&nbsp;jffs2&nbsp;/dev/mtdblock0&nbsp;/mnt/tmp<br />#&nbsp;Копируем&nbsp;изменения&nbsp;и&nbsp;файлы&nbsp;OpenSCADA&nbsp;в&nbsp;корневую&nbsp;файловую&nbsp;систему&nbsp;контроллера<br />#&nbsp;Создаём&nbsp;новую&nbsp;файловую&nbsp;систему&nbsp;с&nbsp;изменениями.<br />$&nbsp;mkfs.jffs2&nbsp;--root=/mnt/tmp&nbsp;--pad=$((61952*1024))&nbsp;--eraseblock=512&nbsp;--output=root.img<br />#&nbsp;Собираем&nbsp;новый&nbsp;образ&nbsp;прошивки<br />#&nbsp;cat&nbsp;kernel_orig.img&nbsp;root.img&nbsp;&gt;&nbsp;lp5x4x_oscada_1.0.bin</span></p></div><p id="p51258-17" class="indent10 auto align-justify"> Таким образом мы получаем новую прошивку с OpenSCADA в файле  lp5x4x_oscada_1.0.bin, которую можно загрузить в контроллер стандартным  образом, описанным в документации &quot;ICP DAS&quot;.</p>
<h2>3. Замечания</h2>
<p id="p16283-18" class="align-justify auto indent10"> Поскольку выяснилось, что операции с вещественными числами выполняются  посредством команд сопроцессора FPA (Float Point Acceleration), которого  в данном процессоре просто нет, а вызовы самих команд осуществляются  через исключение имитацией в ядре Linux, то производительность  математических вычислений оказывается крайне низкой, даже в сравнении с  прямым &quot;Software FP&quot;, &quot;VFP&quot;. Например, вычисление одной операции <strong>sin(pi)</strong>  осуществляется ~200 мкс, в сравнении с ~20 мкс на N800 с VFP и ~2 мкс  на x86, детальнее в таблице ниже. Таким образом, рассматривать данный  контроллер как платформу для хоть сколь-нибудь серьёзных вычислений  нельзя! Мало того, вещественные числа при работе с FPA хранятся  по-другому, а именно - особый <em>big-endian</em>, что требует преобразования в случае с бинарным внешним обменом в типовое <em>little-endian</em> представление, например, для DAQ.OPC_UA.</p><table rules="all" style="border-style: solid; border-width: 1px; border-color: rgb(0, 0, 0); border-collapse: collapse;" class="contenttable"> <thead><tr class="userrow"><th scope="col" class="usercell"><p class="bodytext"> <strong>Оборудование</strong> </p></th><th scope="col" class="usercell"><p class="bodytext"> <strong>Операция sin(Пи) (в JavaLikeCalc), мкс</strong> </p></th><th scope="col" class="usercell"><p class="bodytext"> <strong>Операция pow(Пи,2) (в JavaLikeCalc), мкс</strong> </p></th></tr></thead><tbody> <tr class="userrow"><td class="usercell"><p class="bodytext"> ICP DAS LP-5141 </p></td><td class="usercell"><p class="bodytext"> 100 (200) </p></td><td class="usercell"><p class="bodytext"> 51 (152) </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Nokia N800 </p></td><td class="usercell"><p class="bodytext"> 6 (15) </p></td><td class="usercell"><p class="bodytext"> 6 (17) </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Nokia N950 </p></td><td class="usercell"><p class="bodytext"> 3 (6) </p></td><td class="usercell"><p class="bodytext"> 2 (6) </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> AMD Athlon X2 3600+ </p></td><td class="usercell"><p class="bodytext"> 3 (3) </p></td><td class="usercell"><p class="bodytext"> 3 (3) </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> AMD Turion L625 1.6 </p></td><td class="usercell"><p class="bodytext"> 3 (4) </p></td><td class="usercell"><p class="bodytext"> 3 (4) </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Intel Core2 Duo 1.6 </p></td><td class="usercell"><p class="bodytext"> 2 (2) </p></td><td class="usercell"><p class="bodytext"> 2 (3) </p></td></tr> </tbody></table><p id="p16283-19" class="auto">&nbsp;</p>
<p id="p16283-19" class="align-justify auto indent10"> Значительная разница во времени вычисления на ARM при прямом вызове  математической операции из виртуальной машины JavaLikeCalc возможно  связана с невыравненным чтением из области памяти при чтении команд  виртуальной машины, с чем имеет смысл позже разобраться и возможно  как-то скомпенсировать.</p>
<p id="p16283-20" class="align-justify auto indent10"> В исходной конфигурации порт COM1 (/dev/ttySA0) используется в роли  консоли, которая инициализируется командой ядра &quot;console=/dev/ttySA0&quot;.  Однако, после настройки это не нужно, а часто и желательно освободить  ещё один COM-порт для других целей. Освободить COM1 от работы на консоль  можно переназначив другое устройство для этой роли, например, командой:  <strong>$ busybox setconsole /dev/tty1</strong>. Однако, этот способ не полностью освобождает COM-порт и запросы теряются, вычитываясь параллельным подключением.</p>
<h2>4. Заключение</h2>
<p id="p51258-20" class="indent10 auto align-justify"> В результате была получена сборка OpenSCADA для Linux контроллеров  ARM-архитектуры фирмы &quot;ICP DAS&quot;. Сборку можно загрузить прямо на любой  Linux-ARM контроллер, распаковав её в корне работающей исходной системы.  При этом, однако, останутся дубликаты старых базовых библиотек  (/lib/*), которые после удачной перегрузки можно удалить.</p>
<p id="p51258-21" class="indent10 auto align-justify"> Для контроллеров семейства LP-5x4x создана прошивка со сборкой  OpenSCADA, которую можно загрузить стандартным для данных контроллеров  образом, который описан в фирменной документации &quot;ICP DAS&quot;. Прошивка для  LP-5x4x возможно подойдёт и для LP-5x3x, однако это не проверялось!</p>]]></content:encoded>
			<category>Новость</category>
			<category>Решение</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Fri, 23 Sep 2011 09:53:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>16-18го сентября 2011г. на море, в городе Одесса (Украина), состоялась конференция и выставка открытых решений - FOSS Sea 2011</title>
			<link>http://www.oscada.org/ru/khranilishche-novostei/odinochnaja-stranica/article//on-september-16-18th-2011-in-odessa-the-conference-of-developers-and-users-of-the-free-software-and//0dfa528e9f926f40eb95c162b7600e00/</link>
			<description>Конференция разработчиков и пользователей свободного программного обеспечения организовывается...</description>
			<content:encoded><![CDATA[<p class="indent10 align-justify">На выставке были представлены следующие решения OpenSCADA:</p><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 6px; padding-left: 60px; overflow-x: auto; overflow-y: auto; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "><span class="right-column inline-block" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Динамические  модели технологических процессов и систем управления ими: Газо-лифтная  компрессорная станция на шесть компрессоров, Многотопливный паровой  котлоагрегат БКЗ-160.</span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "><span class="right-column inline-block" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Модель и контроллер (ICP_DAS) САУ шаровой барабанной мельницы помола угля для котлоагрегатов ТЭЦ.</span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "><span class="right-column inline-block" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">OpenSCADA на мобильном устройстве: Nokia N800, N950.</span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "><span class="right-column inline-block" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">OpenSCADA на промышленных контроллерах: ICP_DAS LP-8781, LP-5141.</span></li></ul>]]></content:encoded>
			<category>Новость</category>
			<category>Доклад</category>
			<category>Публикация</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Mon, 19 Sep 2011 11:00:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>Разработан интерфейс исполнения рецептов-программ пользователя</title>
			<link>http://wiki.oscada.org/Using/GraphicElementsLibraries/MainElements#h1036-63</link>
			<description>В рамках проекта &quot;АСУ Вакуумной Установки&quot; разработан интерфейс исполнения рецептов-программ...</description>
			<content:encoded><![CDATA[]]></content:encoded>
			<category>Новость</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Sat, 03 Sep 2011 18:12:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>Автоматизация жилого дома - &quot;Умный дом&quot; (HouseSpirit)</title>
			<link>http://www.oscada.org/ru/khranilishche-novostei/odinochnaja-stranica/article//apartment-house-automation-smart-house-housespirit//4b9cd8599641e853b3ad0b23e0342db8/</link>
			<description>Имя: &quot;Умный дом&quot; (HouseSpirit)
Начат: 28 03(марта) 2011г
Завершен: 12 06(июня)...</description>
			<content:encoded><![CDATA[<h2 style="margin-top: 20px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana; font-size: 20px; border-bottom-width: 3px; border-bottom-style: dotted; border-bottom-color: rgb(221, 221, 221); ">1. Объект автоматизации</h2>
<p id="p24241-7" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Площадь объекта автоматизации ≈ 300 м2. Температура воздуха в помещениях, предназначенных для установки сервера, датчиков и исполнительных механизмов: от 10 до 25 градусов Цельсия. Температура воздуха вне помещениях, где устанавливаются датчики и исполнительные механизмы: от - 30 до 30 °С.</p>
<p id="p24241-8" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Уровни загрязненности, влажности, освещенности, шума и ионизирующих излучений соответствуют санитарно-эпидемиологическим требованиям к жилым зданиям и помещениям (САНПИН 2.1.2.1002-00).</p>
<p id="p24241-8" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">На объекте присутствует электромагнитное излучение, индуцируемое бытовыми приборами, а также средствами электронно-вычислительной техники (Bluetooth, Wi-Fi, GSM).</p>
<p id="p24241-9" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Система “Умный дом. Сервер управления” представляет собой программно-аппаратный модуль, являющийся основным управляющим центром объекта автоматизации. Сервер принимает и обрабатывает сигналы от различных датчиков, формирует и передает сигналы управления исполнительным устройствами, осуществляет связь с пользователем через сеть GSM. Управление системой пользователями осуществляется через веб-интерфейс.</p>
<p id="p24241-10" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Система “Умный дом. Сервер управления” включает следующие подсистемы:</p><ol style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; " type="1"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Подсистема контроля доступа.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Подсистема управления освещением.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Подсистема управления микроклиматом.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Подсистема управления водопроводной сетью.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Подсистема управления бытовой и мультимедийной электротехникой.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Подсистема обработки информации, поступающей с датчиков.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Подсистема обеспечения интерактивного взаимодействия с пользователем через Web-интерфейс и через сеть GSM.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Подсистема авторизации.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Подсистема формирования отчетов.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Подсистема конфигурации обеспечивает механизмы добавления, извлечения и редактирования информации в используемой базе данных, для работы подсистем 1-8.</li></ol><p id="p24241-11" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">&nbsp;</p>
<p id="p24241-11" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Структурная схема системы домовой автоматики приведена на рис.1.</p><div style="float: center; text-align: center; "><p class="bodytext"><img src="http://wiki.oscada.org/Using/SmartHouse/files?get=struct.png" alt="Структура (202&amp;nbsp;Кб)" title="Структура (202&amp;nbsp;Кб)" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; vertical-align: middle; " height="698" width="837"><br />Рис. 1. Структурная схема системы домовой автоматики.</p></div><p id="p24241-12" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto">&nbsp;</p>
<p id="p24241-12" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Для управления различным оборудованием жилого дома был разработан концентратор и выстроена беспроводная сеть<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/Zigbee" target="_blank" class="outerlink" >ZigBee</a></span><span class="Apple-converted-space">&nbsp;</span>из устройств управления оборудованием. Общий контроль оборудованием, а также предоставление пользовательского Web-интерфейса и иные способы уведомления осуществляются выделенным сервером домовой автоматики. Концентратор сети ZigBee при этом подключается к серверу посредством интерфейса RS-232 и протокола ModBus/RTU. Нарушения в области контроля автоматики высылаются пользователю в виде SMS-уведомлений через подключенный GSM-модем.</p>
<p id="p24241-13" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Контроллер беспроводной связи имеет следующие технические характеристики:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Наличие приемо-передатчика ZigBee;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Скорость передачи данных по протоколу ZigBee не менее 200 Кб/с;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Наличие USB или COM – порта для соединения с сервером;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Питание от сети 220 В.</li></ul><p id="p24241-14" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">&nbsp;</p>
<p id="p24241-14" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">GSM-модуль обладает следующими техническими характеристиками (Siemens TC65):</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Поддержка стандарта GSM-900;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Наличие USB или COM – порта для соединения с сервером;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Поддержка AT команд стандарта GSM 07.05 и GSM 07.07;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Питание от сети 220 В.</li></ul><p id="p24241-15" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">&nbsp;</p>
<p id="p24241-15" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Аппаратная часть сервера:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">процессор архитектуры x86_32 или x86_64 (не ниже Intel Core2 Duo);</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">оперативная память класса DDR3, в объёме 2ГБ;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">наличие не менее трех USB - портов.</li></ul><p id="p24241-16" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">&nbsp;</p>
<p id="p24241-16" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">В качестве программного окружения, для выполнения функции автоматизации жилых помещений - &quot;Умный дом&quot; использовано открытую SCADA систему<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="../" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; vertical-align: middle; " alt="">OpenSCADA</a></span>, в окружении которой разработан пользовательский Web-интерфейс &quot;Умный дом&quot;, а также реализован опрос и контроль устройствами посредством ZigBee концентратора.</p>
<h2 style="margin-top: 20px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana; font-size: 20px; border-bottom-width: 3px; border-bottom-style: dotted; border-bottom-color: rgb(221, 221, 221); ">2. Система автоматизации</h2>
<p id="p24241-17" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Система OpenSCADA имеет несколько способов формирования пользовательских интерфейсов визуализации, начиная от интегрированных инструментов разработки типовых интерфейсов контроля различных областей автоматизации и заканчивая низкоуровневыми механизмами библиотек и интерфейсов графических концептов.</p>
<p id="p24241-18" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">В лице интегрированных интерфейсов OpenSCADA содержит:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Модуль «<span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".doc.vcaengine" href="http://wiki.oscada.org/Doc/VCAEngine?v=27f" title="Doc&amp;nbsp;/&amp;nbsp;VCA&amp;nbsp;Engine">UI.VCAEngine</a></span>» — движок визуализации для построения унифицированных интерфейсов и представлением (конечной визуализации) с помощью различных типов графических интерфейсов, а также возможностью работы как сервер интерфейсов визуализации.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Модуль «<span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".doc.vision" href="http://wiki.oscada.org/Doc/Vision?v=197p" title="Doc&amp;nbsp;/&amp;nbsp;Vision">UI.Vision</a></span>» — визуализатор «UI.VCAEngine» и графический интерфейс разработки пользовательских интерфейсов на основе библиотеки построения реактивных графических интерфейсов<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/Qt" target="_blank" class="outerlink" >QT4</a></span>.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Модуль «<span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".doc.webvision" href="http://wiki.oscada.org/Doc/WebVision?v=xfr" title="Doc&amp;nbsp;/&amp;nbsp;Web&amp;nbsp;Vision">UI.WebVision</a></span>» — визуализатор «UI.VCAEngine» на основе Web-интерфейсов:<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/XHTML" target="_blank" class="outerlink" >XHTML</a></span>,<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/XML" target="_blank" class="outerlink" >XML</a></span>,<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/%CA%E0%F1%EA%E0%E4%ED%FB%E5_%F2%E0%E1%EB%E8%F6%FB_%F1%F2%E8%EB%E5%E9" target="_blank" class="outerlink" >CSS</a></span>,<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/JavaScript" target="_blank" class="outerlink" >JavaScript</a></span>,<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/DOM" target="_blank" class="outerlink" >DOM</a></span><span class="Apple-converted-space">&nbsp;</span>и<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/AJAX" target="_blank" class="outerlink" >AJAX</a></span>.</li></ul><p id="p24241-19" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto">&nbsp;</p>
<p id="p24241-19" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">К низкоуровневым механизмам построения пользовательских интерфейсов можно отнести любые другие графические библиотеки, в которых есть инструменты быстрой разработки пользовательских интерфейсов. При этом кооперация с OpenSCADA производится как с источником данных и интерфейсом унифицированного управления оборудованием по различным протоколам.</p>
<p id="p24241-20" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Для предоставления возможности свободного формирования пользовательских Web&nbsp;-&nbsp;интерфейсов, непосредственно в окружении OpenSCADA, предусмотрен модуль «<span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".doc.webuser" href="http://wiki.oscada.org/Doc/WebUser?v=1476" title="Doc&amp;nbsp;/&amp;nbsp;Web&amp;nbsp;User">UI.WebUser</a></span>». В целом OpenSCADA содержит все основные функции типового Web-сервера, а именно:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Приём клиентских подключений по стандартным транспортным протоколам:<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/TCP" target="_blank" class="outerlink" >TCP</a></span>,<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/UDP" target="_blank" class="outerlink" >UDP</a></span>,<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/Unix_domain_socket" target="_blank" class="outerlink" >Unix</a></span>, а так-же защищённым соединениям<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/SSL" target="_blank" class="outerlink" >SSL</a></span><span class="Apple-converted-space">&nbsp;</span>и<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/TLS" target="_blank" class="outerlink" >TLS</a></span>.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Поддержка основных функций протокола<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://ru.wikipedia.org/wiki/HTTP" target="_blank" class="outerlink" >HTTP</a></span>, в объёме запросов GET и POST.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Динамическое формирование пользовательского контента посредством внутреннего JavaScript (<span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".doc.javalikecalc" href="http://wiki.oscada.org/Doc/JavaLikeCalc?v=2np" title="Doc&amp;nbsp;/&amp;nbsp;Java&amp;nbsp;Like&amp;nbsp;Calc">JavaLikeCalc</a></span>) языка в виде потоков с содержимым: языков HTML, XHTML, XML, CSS, JavaScript, изображений различных форматов и т.&nbsp;д.</li></ul><p id="p24241-21" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto">&nbsp;</p>
<p id="p24241-21" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Следовательно, для построения произвольного пользовательского интерфейса контроля достаточно иметь инсталлированную систему<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="../" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; vertical-align: middle; " alt="">OpenSCADA</a></span><span class="Apple-converted-space">&nbsp;</span>с модулями:<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".doc.soskets" href="http://wiki.oscada.org/Doc/Soskets?v=107s" title="Doc&amp;nbsp;/&amp;nbsp;Soskets">Transport.Sockets</a></span>,<span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".doc.ssl" href="http://wiki.oscada.org/Doc/SSL?v=88" title="Doc&amp;nbsp;/&amp;nbsp;SSL">Transport.SSL</a></span>,<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".doc.http" href="http://wiki.oscada.org/Doc/HTTP?v=1bmh" title="Doc&amp;nbsp;/&amp;nbsp;HTTP">Protocol.HTTP</a></span><span class="Apple-converted-space">&nbsp;</span>и<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://wiki.oscada.org/Doc/WebUser?v=1476" title="Doc&nbsp;/&nbsp;Web&nbsp;User" target="_blank" >UI.WebUser</a></span>.</p>
<h3 style="margin-top: 15px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana; font-size: 17px; border-bottom-width: 2px; border-bottom-style: dotted; border-bottom-color: rgb(221, 221, 221); ">2.1. Структура и размещение файлов</h3>
<p id="p24241-22" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">С целью уменьшения нагрузки на полностью динамическое формирование пользовательского интерфейса, а также для упрощения последующего расширения и модификации стиля Web-интерфейс был поделён на статическую и динамическую части.</p>
<p id="p24241-23" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Статическая часть представляет из себя набор шаблонных HTML-файлов, с метками размещения динамики, и ресурсные файлы: CSS, JavaScript и изображения. В целом, статическая часть представлена файлами, которые описаны в таблице ниже:</p><table class="usertable" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; border-collapse: collapse; " border="1"><tbody><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext"><strong>Файл</strong></p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext"><strong>Описание</strong></p></td></tr><tr class="userrow"><td class="usercell" colspan="2" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext"><em>HTML-шаблоны (HouseSpirit/Web/*)</em></p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">main.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Главный шаблон пользовательского интерфейса. Содержит общий интерфейс пользователя с меткой расположения содержимого страниц «#####CONTEXT#####».</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">auth.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон интерфейса авторизации с меткой расположения содержимого «#####CONTEXT#####». Создан для использования модулем протокола HTTP (/sub_Protocol/mod_HTTP).</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">access.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон контроля доступа.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">temperature.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон управления микроклиматом.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">light.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон управления освещением.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">water.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон управления водопроводной подсистемой.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">tech.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон управления электронной и бытовой техникой.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">friend.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон управления пользовательскими устройствами.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">user.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон диспетчера пользователей.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">devices.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон диспетчера устройств.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">loginError.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Страница сообщения ошибки аутентификации или её отсутствия.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">mess.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон сообщений активных аварийных ситуаций.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">report.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Шаблон формирования отчётов об нарушениях, действиях и системных сообщениях.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">welcome.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Страница приветствия, отображаемая по умолчанию в поле контента.</p></td></tr><tr class="userrow"><td class="usercell" colspan="2" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext"><em>Ресурсы (HouseSpirit/Web/res/*)</em></p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">stylesheet.css</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Каскадные таблицы стилей всего пользовательского интерфейса.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">main.js</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">JavaScript код главного шаблона, для счётчика времени и сеанса.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">devMon.js</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">JavaScript код реализации динамического AJAX интерфейса мониторинга устройств подсистем.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">access.png, accesson.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения подсистемы контроля доступа.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">temperature.png, temperatureon.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения подсистемы управления микроклиматом.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">light.png, lighton.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения подсистемы управления освещением.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">water.png, wateron.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения управления водопроводной подсистемой.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">tech.png, techon.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения подсистемы управления электронной и бытовой техникой.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">friend.png, friendon.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения подсистемы управления пользовательскими устройствами.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">user.png, useron.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения диспетчера пользователей.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">devices.png, deviceson.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения диспетчера устройств.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">report.png, reporton.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображение формирования отчётов о нарушениях, действиях и системных сообщениях.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">help.png, helpon.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения страницы помощи.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">HouseSpirit.ico</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Иконка Web-интерфейса.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">hd_l.png, hd_r.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Левая и правая части заголовка.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">select_l.png, select_r.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения фона выбранного элемента меню слева и справа.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">space_l.png, space_r.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения свободного пункта меню слева и справа.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">status_l.png, status_r.png status_edge.png</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Изображения строки статуса.</p></td></tr><tr class="userrow"><td class="usercell" colspan="2" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext"><em>Файлы отчётов (HouseSpirit/Web/reports/*)</em></p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">rep_{user}.html</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Последний отчёт пользователя user.</p></td></tr></tbody></table><p id="p24241-24" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto">&nbsp;</p>
<p id="p24241-24" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Динамическая часть реализована скриптами OpenSCADA на внутреннем языке JavaLikeCalc, которые описаны в таблице ниже:</p><table class="usertable" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; border-collapse: collapse; " border="1"><tbody><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext"><strong>Адрес скрипта</strong></p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext"><strong>Описание</strong></p></td></tr><tr class="userrow"><td class="usercell" colspan="2" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext"><em>Скрипт Web-сайта (/sub_UI/mod_WebUser/)</em></p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">up_hs</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="p24241-25"></a></span><p id="p24241-25" class="auto" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Главный скрипт Web-сайта, который выполняет непосредственный приём, первичную обработку и формирование окончательного ответа, а именно:</p></p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Обслуживание запросов к страницам-шаблонам:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">чтение файла выбранной страницы-шаблона, если выбор имел место;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">чтение и парсинг файла главного шаблона интерфейса (main.html);</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">помещение текущего времени сервера в атрибут value элемента дерева главного шаблона с идентификатором &quot;time_vl&quot;;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">помещение начального значения счётчика активного сеанса в атрибут &quot;value&quot;, элемента дерева главного шаблона с идентификатором &quot;ses_vl&quot;;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">проверка общего доступа аутентифицированного пользователя к тем или иным частям интерфейса и скрытие элементов к которым нет доступа на просмотр;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">обработка выбранного пункта меню страницы:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">подсветка элемента меню активной страницы;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">поиск и вызов скрипта динамики (/sub_DAQ/mod_JavaLikeCalc/lib_web/*) одноимённо, или из аргумента &quot;script URL&quot;, выбранной страницы.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">чтение файла страницы приветствия (welcome.html), в случае отсутствия выбора страницы из меню;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">установка значений текущей страницы и пользователя в строке статуса;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">помещение контекста страницы в главный шаблон интерфейса.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Обслуживание запросов к файлам ресурсов и отчётов:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Обработка расширения файлов ресурса и формирование атрибута типа (Content-Type), передаваемого контента.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">Генерация ответов с ошибкой в случае отсутствия страниц-шаблонов или файлов ресурсов.</li></ul></td></tr><tr class="userrow"><td class="usercell" colspan="2" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext"><em>Библиотека скриптов шаблонов-страниц и системных процессов (/sub_DAQ/mod_JavaLikeCalc/lib_web/*)</em></p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">user</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Скрипт страницы-шаблона «Диспетчер пользователей» реализует функцию формирования формы управления пользователями в зависимости от прав вошедшего пользователя.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">devices</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Скрипт страницы-шаблона «Диспетчер устройств» реализует функцию формирования формы управления устройствами и генерацией нарушений по ним для двух типов устройств: десятичный и динамичный.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">devMon</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Скрипт формирования интерфейса мониторинга и формы управления устройствами, сконфигурированными в «Диспетчер устройств». Данный скрипт используется всеми подсистемами мониторинга устройств.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">alarms</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Скрипт задачи периодической проверки значений переменных устройств на предмет сконфигурированных аварийных ситуаций. Кроме непосредственного формирования нарушений данный скрипт осуществляет рассылку SMS-сообщений с уведомлениями по телефонам пользователей, установленных для уведомления посредством SMS.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">mess</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Скрипт страницы-шаблона «Нарушения» реализует функцию формирования перечня активных нарушений.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">report</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Скрипт страницы-шаблона «Отчёты» реализует функцию формирования таблицы-отчёта с событиями по системе и различным подсистемам за указанный период времени. Отчёт одновременно генерируется на экране и в файле, который можно, по ссылке, загрузить отдельно.</p></td></tr></tbody></table><p id="p24241-26" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto">&nbsp;</p>
<p id="p24241-26" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">В целом алгоритм обработки запросов к страницам следующий (на примере<span class="Apple-converted-space">&nbsp;</span><strong><a href="http://localhost:10002/WebUser/temperature?script=devMon" target="_blank" >localhost/WebUser/temperature</a></strong>):</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">запрос поступает в скрипт<span class="Apple-converted-space">&nbsp;</span><strong>/sub_UI/mod_WebUser/hs</strong><span class="Apple-converted-space">&nbsp;</span>из транспорта<span class="Apple-converted-space">&nbsp;</span><strong>/sub_Transport/mod_Sockets/in_WEB_1</strong>, посредством модуля протокола<span class="Apple-converted-space">&nbsp;</span><em>Protocol.HTTP</em>;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">грузится файл шаблона<span class="Apple-converted-space">&nbsp;</span><em>temperature.html</em>;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">осуществляется поиск скрипта страницы &quot;devMon&quot; (<strong>/sub_DAQ/mod_JavaLikeCalc/lib_web/devMon</strong>). Если аргумент<span class="Apple-converted-space">&nbsp;</span><em>script</em><span class="Apple-converted-space">&nbsp;</span>отсутствует то осуществляется поиск скрипта по имени страницы (<strong>/sub_DAQ/mod_JavaLikeCalc/lib_web/temperature</strong>);</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">осуществляется передача шаблона страницы в найденный скрипт для формирования динамики;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">результат выполнения скрипта страницы помещается в главный шаблон;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">если скрипт страницы не обнаруживается, то шаблон страницы помещает её содержимое прямо в главный шаблон. </li></ul><h3 style="margin-top: 15px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana; font-size: 17px; border-bottom-width: 2px; border-bottom-style: dotted; border-bottom-color: rgb(221, 221, 221); ">2.2. Менеджер устройств</h3>
<p id="p24241-27" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Менеджер устройств доступен только суперпользователю и формирует форму редактирования, добавления и удаления устройств двух типов: бинарный и десятичный.</p>
<p id="p24241-28" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Создаваемые устройства непосредственно помещаются в список атрибутов параметра конкретно взятой подсистемы контроллера «ZigBee» модуля источника данных &quot;ModBus&quot; (/sub_DAQ/mod_ModBus/cntr_ZegBee/</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">«<strong>R:0:r:cond:Кондиционер:bin:10:Включен:0:Выключен:(120|100)</strong>» — для бинарного датчика:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>R</em><span class="Apple-converted-space">&nbsp;</span>— регистр ModBus;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>0</em><span class="Apple-converted-space">&nbsp;</span>— адрес регистра ModBus;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>r</em><span class="Apple-converted-space">&nbsp;</span>— только чтение;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>cond</em><span class="Apple-converted-space">&nbsp;</span>— идентификатор атрибута-датчика;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Кондиционер</em><span class="Apple-converted-space">&nbsp;</span>— наименование датчика;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>bin</em><span class="Apple-converted-space">&nbsp;</span>— тип датчика - «Бинарный»;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>10</em><span class="Apple-converted-space">&nbsp;</span>— первое значение;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Включен</em><span class="Apple-converted-space">&nbsp;</span>— имя первого значения;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>0</em><span class="Apple-converted-space">&nbsp;</span>— второе значение;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Выключен</em><span class="Apple-converted-space">&nbsp;</span>— имя второго значения;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>(120|100)</em><span class="Apple-converted-space">&nbsp;</span>— координаты размещения<span class="Apple-converted-space">&nbsp;</span><strong>({x}|{y})</strong><span class="Apple-converted-space">&nbsp;</span>датчика на схеме жилого помещения.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">«<strong>R:3:rw:tGhost1:Температура в гостинной 1:dec:град. С:y=2*x;:(120|100)</strong>» — для десятичного датчика:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>rw</em><span class="Apple-converted-space">&nbsp;</span>— только чтение;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>dec</em><span class="Apple-converted-space">&nbsp;</span>— тип датчика - «Десятичный»;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>град. С</em><span class="Apple-converted-space">&nbsp;</span>— единица измерения переменной;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>y=2*x;</em><span class="Apple-converted-space">&nbsp;</span>— формула пересчёта считанной переменной для отображения;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>(120|100)</em><span class="Apple-converted-space">&nbsp;</span>— координаты размещения<span class="Apple-converted-space">&nbsp;</span><strong>({x}|{y})</strong><span class="Apple-converted-space">&nbsp;</span>датчика на схеме жилого помещения.</li></ul></li></ul><p id="p24241-29" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto">&nbsp;</p>
<p id="p24241-29" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Кроме непосредственно датчиков осуществляется конфигурация и формирование нарушений в виде текста процедуры. Программа формирования помещается в атрибут «var» параметра контроллера нарушений<span class="Apple-converted-space">&nbsp;</span><strong>/sub_DAQ/mod_JavaLikeCalc/cntr_alarms/prm_rules</strong>. Атрибут «var» содержит XML дерево вида:<span class="Apple-converted-space">&nbsp;</span></p><div class="code" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(136, 136, 136); border-right-color: rgb(136, 136, 136); border-bottom-color: rgb(136, 136, 136); border-left-color: rgb(136, 136, 136); border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; font-family: 'Courier New'; color: black; font-size: 10pt; width: 1052px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; background-position: initial initial; background-repeat: initial initial; "><p class="bodytext">&lt;code&gt;<span style="color: rgb(0, 0, 0); ">&lt;ALARMS&gt;<br />&nbsp;&nbsp;&lt;it&nbsp;id&nbsp;=&nbsp;&quot;temperature.cond1&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(x&amp;lt;10)&nbsp;err&nbsp;=&nbsp;&amp;quot;Низкая&nbsp;температура:&nbsp;&amp;quot;+x+&amp;quot;&nbsp;&amp;lt;&nbsp;10&amp;quot;;<br />&nbsp;&nbsp;&lt;/it&gt;<br />&lt;/ALARMS&gt;</span>&lt;/code&gt;</p></div><p id="p24241-30" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto">&nbsp;</p>
<p id="p24241-30" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="indent10 auto align-justify">В соответствии с этим XML-деревом осуществляется формирование нарушений и отправка SMS-уведомлений подписанным пользователям в задаче контроллера<strong>/sub_DAQ/mod_JavaLikeCalc/cntr_alarms</strong>, которая исполняется с периодом 1 минута.</p>
<p id="p24241-31" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto">SMS-уведомления отсылаются через последовательный транспорт<span class="Apple-converted-space">&nbsp;</span><strong>/sub_Transport/mod_Serial/out_GSM</strong><span class="Apple-converted-space">&nbsp;</span>и посредством пользовательского SMS-протокола (<strong>/sub_Protocol/mod_UserProtocol/up_SMS</strong>).</p>
<p id="p24241-32" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Предусмотрена также функция отложенной выдачи управляющего воздействия. Для этого пользователь устанавливает нужное время, в виде:<span class="Apple-converted-space">&nbsp;</span><strong>{Min}:{Sec}</strong>. Обработка отложенного управления осуществляется в контроллере<span class="Apple-converted-space">&nbsp;</span><strong>/sub_DAQ/mod_JavaLikeCalc/cntr_timers</strong><span class="Apple-converted-space">&nbsp;</span>посредством установки атрибута «var» параметра «rules» запросами в виде XML дерева:</p><div class="code" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(136, 136, 136); border-right-color: rgb(136, 136, 136); border-bottom-color: rgb(136, 136, 136); border-left-color: rgb(136, 136, 136); border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; font-family: 'Courier New'; color: black; font-size: 10pt; width: 1052px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; background-position: initial initial; background-repeat: initial initial; "><p class="bodytext">&lt;code&gt;<span style="color: rgb(0, 0, 0); ">&lt;TIMERS&gt;<br />&nbsp;&nbsp;&lt;timer&nbsp;id=&quot;temperature.tGhost1&quot;&nbsp;tm=&quot;60&quot;&nbsp;user=&quot;root&quot;&gt;20&lt;/timer&gt;<br />&nbsp;&nbsp;&lt;timer&nbsp;id=&quot;temperature.cond1&quot;&nbsp;tm=&quot;10&quot;&nbsp;user=&quot;root&quot;&gt;0&lt;/timer&gt;<br />&lt;/TIMERS&gt;</span>&lt;/code&gt;</p></div><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1064-7"></a></span></p>
<h3 style="margin-top: 15px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana; font-size: 17px; border-bottom-width: 2px; border-bottom-style: dotted; border-bottom-color: rgb(221, 221, 221); ">2.3. Подсистемы</h3>
<p id="p24241-33" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Все подсистемы визуализации обслуживаются скриптом<span class="Apple-converted-space">&nbsp;</span><strong>/sub_DAQ/mod_JavaLikeCalc/lib_web/devMon</strong>. В этом скрипте осуществляется обработка запросов от скрипта динамической визуализации Web-браузера и передача ему данных об устройствах подсистемы, необходимых для визуализации. Данные об устройствах передаются в соответствии с правами доступа вошедшего пользователя.</p>
<p id="p24241-34" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Конфигурация датчиков читается из параметра, соответствующего подсистеме, контроллера «ZigBee» (<strong>/sub_DAQ/mod_ModBus/cntr_ZegBee</strong>). Значения читаются и записываются в атрибуты датчиков этих параметров или через контроллер отложенного управления.</p>
<p id="p24241-35" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Задача контроллера «ZigBee» исполняется с периодом 1 секунда, в процессе чего осуществляется запрос текущих значений всех сконфигурированных датчиков. Запись значений осуществляется по факту модификации независимо от задачи периодического опроса или через контроллер отложенного управления, в случае установки ненулевого времени таймера.</p>
<p id="p24241-36" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Связь контроллера «ZigBee» осуществляется через последовательный исходящий транспорт<span class="Apple-converted-space">&nbsp;</span><strong>/sub_Transport/mod_Serial/out_ZegBee</strong>.</p>
<h3 style="margin-top: 15px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana; font-size: 17px; border-bottom-width: 2px; border-bottom-style: dotted; border-bottom-color: rgb(221, 221, 221); ">2.4. Менеджер пользователей</h3>
<p id="p24241-37" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Менеджер пользователей предназначен для создания, удаления и редактирования учётных записей обычных пользователей.</p>
<p id="p24241-38" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Пользователи условно делятся на администраторов и простых пользователей. Идентификация пользователя как администратора, в системе OpenSCADA, осуществляется включением его в группу «WebRoot» (<strong>/sub_Security/grp_WebRoot</strong>). Обычный пользователь включается в группу «Web» (<strong>/sub_Security/grp_Web</strong>).</p>
<p id="p24241-39" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto indent10"><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); ">В системе OpenSCADA у каждого пользователя (<strong>/sub_Security/usr_test1/</strong>) есть текстовое поле описания, которое, в данном случае, служит для хранения его специализированных параметров в виде:</span></p><div class="code" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(136, 136, 136); border-right-color: rgb(136, 136, 136); border-bottom-color: rgb(136, 136, 136); border-left-color: rgb(136, 136, 136); border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; font-family: 'Courier New'; color: black; font-size: 10pt; width: 1052px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; background-position: initial initial; background-repeat: initial initial; "><p class="bodytext">&lt;code&gt;<span style="color: rgb(0, 0, 0); ">TEL:&nbsp;+380679859815<br />SMS:&nbsp;true<br />Report:&nbsp;false<br />sub_access:&nbsp;--<br />sub_friend:&nbsp;--<br />sub_light:&nbsp;--<br />sub_tech:&nbsp;--<br />sub_temperature:&nbsp;rw<br />sub_water:&nbsp;--</span>&lt;/code&gt;</p></div><p id="p24241-40" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto">&nbsp;</p>
<p id="p24241-40" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">В случае с администратором записи прав доступа к подсистемам отсутствуют, но присутствуют общесистемные параметры вроде времени жизни сеанса (<strong>/sub_Protocol/mod_HTTP</strong>).</p>
<h3 style="margin-top: 15px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana; font-size: 17px; border-bottom-width: 2px; border-bottom-style: dotted; border-bottom-color: rgb(221, 221, 221); ">2.5. Сообщения</h3>
<p id="p24241-41" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">Список сообщений формируется, исходя из перечня активных нарушений по их категории «ALARM:House:*» в виде таблицы с временем, категорией, уровнем и сообщением нарушения.</p>
<p id="p24241-41" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px; " class="auto">&nbsp;</p>
<h3 style="margin-top: 15px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana; font-size: 17px; border-bottom-width: 2px; border-bottom-style: dotted; border-bottom-color: rgb(221, 221, 221); ">2.6. Отчёты</h3>
<p id="p24241-42" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="indent10 auto align-justify">В формировании отчёта указывается временной диапазон и выбираются типы сообщений. Предусмотрена генерация сообщений для типов:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">«Системные события» — включает сообщения об авторизации и выходе пользователей на ресурсе, посредством категории сообщений «/\/sub_Protocol\/mod_HTTP\//».</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; ">«События подсистем мониторинга и управления» — включает нарушения и запись новых значений по датчикам, посредством категории сообщений «/(ALARM|SET)\:House\/:».</li></ul><p id="p24241-43" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " class="auto">&nbsp;</p>
<p id="p24241-43" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">Протокол формируется в виде таблицы с временем, категорией, уровнем и сообщением нарушения, которая также записывается в отдельный файл отчёта, в последствии доступный по ссылке для отдельного открытия.</p>]]></content:encoded>
			<category>Новость</category>
			<category>Решение</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Sun, 12 Jun 2011 00:00:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>Релиз OpenSCADA 0.7.1</title>
			<link>http://www.oscada.org/ru/khranilishche-novostei/odinochnaja-stranica/article//release-of-openscada-071//700185b888905f32d54ed0bde10930d6/</link>
			<description>Основной целью данного релиза является реализация коммерческого сервиса на основе OpenSCADA и...</description>
			<content:encoded><![CDATA[<p class="indent10">&nbsp;</p><div style="text-align: center;"><h1 style="margin: 0px; padding: 2px 0px 7px; font-family: Verdana; font-size: 23px; line-height: 25px; color: rgb(51, 51, 51);">OpenSCADA 0.7.1</h1></div><p class="bodytext"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; line-height: 16px;"></span></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221);">Введение</h2>
<p id="p51499-3" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">Данный релиз является плановым выпуском рабочей версии системы OpenSCADA, которые обычно осуществляются с периодичностью 3-4 месяца. Основной целью данного релиза является реализация коммерческого сервиса на основе OpenSCADA и адаптации к аппаратной платформе ARM. Кроме основных задач в рамках данного релиза проделана большая работа по стабилизации, чистке исходного кода, а также всестороннему расширению возможностей.</p>
<p id="p51499-4" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">Данный документ является обработкой(компиляцией) документа &lt;ChangeLog&gt; системы OpenSCADA версии 0.7.1, который призван вкратце и наглядно осветить новые возможности системы OpenSCADA. Детально ознакомиться с изменениями в системе OpenSCADA можно в файле ChangeLog из дистрибутива системы или здесь:<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none;"><a href="http://wiki.oscada.org/Works/ChangeLog" target="_blank" class="outerlink" >http://wiki.oscada.org/Works/ChangeLog</a></span>.</p>
<p id="p51499-5" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="auto indent10">Ключевыми особенностями данной версии являются:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Реализация плановых задач.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Оптимизация, повышение стабильности, устойчивости и производительности системы.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Усовершенствование и стабилизация графической подсистемы.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Формирование и стабилизация API пользовательского программирования.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Общесистемные расширения.</li></ul><p id="p51499-6" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="auto indent10">Новые и обновленные модули:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Archive.FSArch (1.4.5)</em><span class="Apple-converted-space">&nbsp;</span>- Значительная стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DB.MySQL (1.7.0)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Добавлена возможность указания таймаутов подключения.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DB.SQLite (1.6.3)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DB.FireBird (0.9.6)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DB.PostgreSQL (0.9.1)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.DiamondBoards (1.2.2)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.System (1.7.3)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Зависимость от библиотеки &quot;Libsensors&quot; сделана опциональной.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.BlockCalc (1.4.1)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Добавлена подсветка синтаксиса.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.JavaLikeCalc (1.9.0)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Добавлена подсветка синтаксиса. Выполнена адаптация к аппаратной архитектуре ARM. Добавлена реализация регулярных выражений и ряда расширений API пользователя. Добавлена возможность записи символов строки с помощью восьмеричного &quot;\041&quot; и шестнадцатеричного &quot;\x21&quot; числа.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.LogicLev (1.1.3)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Некоторое расширение.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.SNMP (0.6.0)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Реализация полной поддержки клиентской части протокола. Добавлена поддержка всех типов значений. Добавлена поддержка записи значений. Улучшена обработка ошибок. Добавлены дополнительные параметры конфигурации подключения.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.Siemens (1.2.4)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.ModBus (1.1.2)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Добавлена подсветка синтаксиса списка атрибутов. Некоторые улучшения.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.DCON (0.5.0)</em><span class="Apple-converted-space">&nbsp;</span>- Модуль полностью переписан на предмет поддержки смешанных модулей, посредством выбора команд запроса.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.ICP_DAS (0.7.3)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.DAQGate (0.9.2)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Добавлен кеш параметров для их инициализации при автономной работе.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.SoundCard (0.6.2)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.OPC_UA (0.6.1)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Добавлена подсветка синтаксиса списка атрибутов.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.BFN (0.5.0)</em><span class="Apple-converted-space">&nbsp;</span>- Новый модуль.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Transport.Sockets (1.4.6)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Transport.SSL (0.9.6)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Transport.Serial (0.7.2)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. При инициализации порта использованы предыдущие настройки и реализована возможность опускать указание некоторых настроек.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Protocol.ModBus (0.6.2)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Некоторые улучшения.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Protocol.OPC_UA (0.6.1)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Protocol.HTTP (1.5.1)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Добавлена поддержка переменной HTTP &quot;Transfer-Encoding=chunked&quot; в исходящем транспорте.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Protocol.SelfSystem (0.9.4)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Protocol.UserProtocol (0.6.1)</em><span class="Apple-converted-space">&nbsp;</span>- Добавлена подсветка синтаксиса.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Special.SystemTests (1.5.1)</em><span class="Apple-converted-space">&nbsp;</span>- Небольшие улучшения.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.QTStarter (1.6.1)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Адаптация для ARM.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.QTCfg (2.0.0)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Использован групповой запрос к интерфейсу управления с целью оптимизации удалённого доступа к OpenSCADA станциям. Адаптация для ARM. Добавлена функция ручного изменения высоты для элементов текста и таблиц (схватил за нижний край и потащил). Добавлена многоуровневая подсветка синтаксиса.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.WebCfg (1.5.5)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.WebCfgD (0.6.6)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.VCAEngine (1.1.0)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Добавлена контекстная подсказка к атрибутам примитивов виджетов. Добавлена подсветка синтаксиса к текстовым атрибутам примитивов виджета.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.Vision (1.1.0)</em><span class="Apple-converted-space">&nbsp;</span>- Значительная стабилизация. Заметные улучшения. Адаптация для ARM. Добавлено отображение и восстановление потери связи при удалённом исполнении сеанса. Добавлен отдельный полнотекстовый редактор для текстовых атрибутов. Добавлена контекстная подсказка к атрибутам примитивов виджетов. Добавлена подсветка синтаксиса к текстовым атрибутам примитивов виджетов. Добавлен диалог установки свойств отдельно выбранных фигур.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.WebVision (0.9.1)</em><span class="Apple-converted-space">&nbsp;</span>- Значительная стабилизация. Небольшие улучшения.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.WebUser (0.6.1)</em><span class="Apple-converted-space">&nbsp;</span>- Стабилизация. Добавлена подсветка синтаксиса процедур.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none;"><a name="h1051-3"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221);">1 Реализация плановых задач</h2>
<p id="p51499-7" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="auto indent10">В соответствии с<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none;"><a name=".works.roadmap" href="http://wiki.oscada.org/Works/RoadMap?v=nrh" title="Works&amp;nbsp;/&amp;nbsp;Road&amp;nbsp;Map">планом</a></span><span class="Apple-converted-space">&nbsp;</span>релиза были выполнены следующие задачи:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Формирование предоставления коммерческих услуг на основе OpenSCADA.</em><span class="Apple-converted-space">&nbsp;</span>- Выстроена концепция и созданы механизмы предоставления коммерческих услуг разработчиками на основе OpenSCADA (<span style="color: rgb(0, 51, 153); text-decoration: none;"><a href="../ru/uslugi" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" style="border-width: 0px; vertical-align: middle;" />http://oscada.org/ru/uslugi</a></span><span class="Apple-converted-space">&nbsp;</span>).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Адаптация системы OpenSCADA для работы на аппаратной платформе ARM.</em><span class="Apple-converted-space">&nbsp;</span>- Осуществлена сборка, адаптация и полномасштабное тестирование OpenSCADA к архитектуре ARM; на интернет планшете фирмы<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none;"><a href="http://en.wikipedia.org/wiki/Nokia" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" style="border-width: 0px; vertical-align: middle;" />Nokia</a></span><span class="Apple-converted-space">&nbsp;</span>-<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none;"><a href="http://en.wikipedia.org/wiki/Nokia_N800" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" style="border-width: 0px; vertical-align: middle;" />N800</a></span>(<span style="color: rgb(0, 51, 153); text-decoration: none;"><a href="http://wiki.oscada.org/Works/Tests/ARM" target="_blank" class="outerlink" >http://wiki.oscada.org/Works/Tests/ARM</a></span><span class="Apple-converted-space">&nbsp;</span>). А также частные мероприятия по адаптации:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>SYS</em>: Прототипы функций TMess::put(), TMess::get(), TCntrNode::grpSize(), TCntrNode::grpId(), TCntrNode::grpAt() изменены для исправления использования беззнакового типа &quot;char&quot; на ARM как знакового.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>SYS.TVariant, DAQ.AMRDevs, DAQ.OPC_UA</em>: Исправлен невыравненный доступ к данным.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>SYS.TCntrNode</em>: Исправлено использование беззнакового &quot;char&quot; в ARM как знакового.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Archive</em>: Прототипы функций TArchiveS::messPut() и TArchiveS::messGet() изменены для исправления переменной уровня сообщения как знакового числа.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.JavaLikeCalc</em>: Виртуальная машина переписана для прямого использования структур команд, с целью исключения проблемы выравнивания, а также для некоторого повышения производительности.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.Siemens</em>: Исправлена проблема библиотеки NoDave на предмет глобального вызова команды упаковки структур &quot;#pragma pack(1)&quot;.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.QTCfg</em>: Добавлено кратковременное засыпание после закрытия всех окон в функции отключения. С целью предоставить время окончательно разрушиться объектам всех окон и предотвратить падение.</li></ul></li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none;"><a name="h1051-4"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221);">2 Оптимизация, повышение стабильности, устойчивости и производительности системы</h2>
<p id="p51499-8" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">В процессе работ над данной версией, а также её практической адаптации, было обнаружено и исправлено в общей сложности около 90 ошибок. В целом была проделана работа по чистке кода от предупреждающих сообщений компилятора, с флагом &quot;-Wall&quot;:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">удаление неиспользованных переменных;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">добавление возврата во всех функциях;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">инициализация переменных с возможностью их использования неопределёнными;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">исключение неполной обработки перечислимых типов в операции выбора;</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">сравнение знакового с беззнаковым целым.</li></ul><p id="p51499-9" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">Перечислим наиболее существенные ошибки, исправление которых значительно отразилось на повышении стабильности:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Общесистемные:</em><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Команда сборочной системы &quot;$ make dist&quot; исправлена и адаптирована для корректного создания дистрибутивов OpenSCADA.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Функция TSYS::cron(), для вызова по расписанию, неоднократно исправлена.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Тип переменной для хранения результата функции find(), строки, везде изменён на корректный &quot;size_t&quot;.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Function</em>: Исключена возможность утечки памяти в случае попытки установить объект в необъектный параметр функции.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Базы данных:</em><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DB.PostgreSQL</em>: Исправлена обработка адреса БД на предмет определения пустых полей.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Транспорты и протоколы:</em><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Transport</em>: Исправлена загрузка всех транспортов из БД, в случае наличия записей про транспорт, модуль которого отсутствует.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Transport.Serial</em>: Установлен флаг O_NONBLOCK для функции open() последовательного устройства с целью предотвращения блокирования открытия порта на некоторых USB-&gt;RS485 преобразователях.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Transport.Sockets, Transport.SSL</em>: Добавлена очистка входного буфера для предотвращения повторного использования на высоколатентных каналах, после таймаута.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Transport.Sockets</em>: Исправлено закрытие клиентского соединения по таймауту времени жизни, для подключений при отсутствии данных.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Transport.Sockets</em>: Unix-сокет установлен в неблокирующий режим посредством флага O_NONBLOCK. Исправлено формирование сообщений об ошибках для исходящих транспортов.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Protocol.HTTP, UI.WebCfg, UI.WebCfgD, UI.WebVision, UI.WebUser</em>: Исправлен разбор элементов POST-запроса на предмет разбора всех атрибутов каждого элемента.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Сбор данных и архивы:</em><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Archive</em>: Исправлено использование буфера мягкой сетки с низким и высоким разрешением времени в архивах значений.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Archive.FSArch</em>: Исправлено создание файлов архива сообщений при помещении множества старых сообщений. Добавлен параметр предотвращения дубликатов.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Archive.FSArch</em>: Результат функции fgetc() записан в целочисленную переменную, вместо символьной, что исправило обнаружение &quot;EOF&quot;.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.System</em>: Исправлено падение при выходе для источника &quot;Hddtemp&quot;.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.ModBus</em>: Режим установки значений атрибутов параметров изменён на активный и улучшена обработка ошибок.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.JavaLikeCalc</em>: Добавлена проверка индекса при доступе к символу строки по индексу, с целью предотвращения выхода за диапазон.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Интерфейсы визуализации:</em><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.VCAEngine</em>: Исправлено блокирование сеанса для динамически активных проектов при динамическом доступе к собственным атрибутам виджета.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.Vision</em>: Исправлено падение сеанса для проектов с периодом исполнения более 500 мс.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.Vision</em>: Реализована доводка координат фигур примитива &quot;Элементарная фигура&quot; к остатку положения виджета.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.Vision</em>: Масштабирование текста примитива &quot;Текст&quot; изменено на изменение размера шрифта вместо масштабирования конечного изображения, что повысило общее качество отображения шрифта.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.Vision, UI.WebVision</em>: Повышено разрешение координат всех виджетов до трёх знаков после запятой, с целью обеспечения нормального позиционирования на больших масштабах.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.WebVision, UI.Vision</em>: Исправлено обновление изображения примитива &quot;Элементарная фигура&quot; при изменении масштаба.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.WebVision</em>: Удалена проверка попадания точек фигур в область отображения примитива &quot;Элементарная фигура&quot;. Данная функция переложена на библиотеку GD.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.WebVision</em>: Исключена возможность падения для примитивов &quot;Diagram&quot; или &quot;ElFigure&quot;, в случае передачи некорректных значений атрибутов изображения &quot;xSc&quot; или &quot;ySc&quot; из Web-браузера.</li></ul></li></ul><p id="p51499-10" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="auto indent10">Оптимизация и повышение производительности:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.WebCfgD</em>: Добавлено изменение размера иконок на стороне сервера с целью снижения трафика.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.QTCfg</em>: Использован групповой запрос к интерфейсу управления для повышения производительности на медленных и высоколатентных соединениях.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.QTCfg</em>: Исключён многократный запрос элементов выборных колонок таблиц.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none;"><a name="h1051-5"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221);">3 Усовершенствование и стабилизация графической подсистемы</h2>
<p id="p51499-11" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">Заметная работа была выполнена в рамках графической подсистемы, а именно в модулях движка СВУ UI.VCAEngine, визуализаторов UI.Vision и UI.WebVision, а также конфигураторах. Внесённые изменения были направленны на стабилизацию, оптимизацию потребления памяти и улучшение пользовательских свойств.</p>
<p id="p51499-12" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="auto indent10">Улучшения графической подсистемы:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>SYS, DAQ.JavaLikeCalc, UI.QTCfg, UI.VCAEngine, UI.Vision</em>: Добавлено API подсветки синтаксиса. На основе данного API подсветка синтаксиса добавлена:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.BlockCalc</em>: подсветка синтаксиса в описании атрибутов параметров.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.JavaLikeCalc</em>: подсветка синтаксиса к компилятору языка JavaLikeCalc.JavaScript, а также ко всем текстовым полям, использующим этот язык внутри модуля.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.ModBus, DAQ.OPC_UA</em>: подсветка синтаксиса списка атрибутов.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Protocol.UserProtocol</em>: подсветка синтаксиса к текстам процедур протокола.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.QTCfg</em>: отображение многоуровневой подсветки синтаксиса, передаваемой из модели данных в виде правил регулярных выражений.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.VCAEngine</em>: подсветка синтаксиса к текстовым атрибутам примитивов виджета, для которых это нужно.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.Vision</em>: подсветка синтаксиса к текстовым атрибутам примитивов виджета, а также текстам программ виджетов.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.WebUser</em>: подсветка синтаксиса процедур формирования Web-интерфейса.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.QTCfg</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Добавлена возможность ручного изменения высоты текстовых и табличных полей. Изменение осуществляется схватыванием и перетаскиванием нижнего края поля.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Групповой запрос &quot;CntrReqs&quot; использован для запроса контекста страницы.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.VCAEngine</em>: Добавлены специфические свойства к атрибутам примитивов, вроде помощи и подсветки синтаксиса.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI.Vision</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Добавлено отображение помощи по атрибутам виджета.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Добавлена индикация сообщения о потери соединения с сервером визуализации, а также восстановление при удалённой визуализации.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Для примитива &quot;Элементарная фигура&quot; добавлен диалог установки свойств отдельно выбранных фигур.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Добавлен отдельный полнотекстовый редактор для текстовых атрибутов.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>UI:WebVision</em>: Добавлена поддержка gif и jpg изображений в элементах примитива &quot;Элементарная фигура&quot;.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none;"><a name="h1051-6"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221);">4 Формирование и стабилизация API пользовательского программирования</h2>
<p id="p51499-13" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">Было продолжено формирование объектного API пользовательского программирования, которое предусматривает интеграцию пользовательских функций в дерево объектов системы OpenSCADA. Кроме этого, был внесен ряд изменений в существующие библиотеки функций пользовательского API.</p>
<p id="p51499-14" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="auto indent10">В частности были осуществлены следующие изменения:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>SYS</em>: Пользовательское API для объекта TArrayObj расширено на предмет возможности использования объектных свойств, если свойства не числа.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>SYS</em>: В дерево объектов OpenSCADA пользовательского API добавлена функция SYS.Security.access() для контроля доступа пользователя OpenSCADA к ресурсам с нужными правами.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>SYS, DAQ.JavaLikeCalc</em>: Добавлена реализация поддержки пользовательского API регулярных выражений, основанной на PCRE, посредством объекта TRegExp. Реализован интерфейс функций RegExp.exec() и RegExp.test() в стандарте для языка JavaScript. Для DAQ.JavaLikeCalc реализована &quot;new RegExp()&quot; инициализация для объекта TRegExp. Для DAQ.JavaLikeCalc реализованы дополнительные функции с использованием RegExp: int search(); Array match(); Array split(RegExp pat, int limit); string replace(string substr, string str); string replace(RegExp pat, string str).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>TFunction, DAQ.JavaLikeCalc</em>: Добавлен объект пользовательского API &quot;TFuncArgObj&quot; для получения аргументов функции.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DB</em>: Добавлены функции пользовательского API fieldStruct(), fieldSeek(), fieldGet(), fieldSet() и fieldDel() для объекта таблицы, с целью предоставить пользовательский доступ к БД посредством интерфейса БД OpenSCADA.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>DAQ.JavaLikeCalc</em>: Добавлена встроенная функция typeof() для проверки типа значения.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none;"><a name="h1051-7"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221);">5 Общесистемные расширения</h2>
<p id="p51499-15" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">В общесистемное API системы OpenSCADA были внесены значительные изменения и расширения с целью общей стабилизации и ввиду общих мероприятий по чистке кода, а также реорганизации дерева исходных текстов:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>SYS</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Реализована новая структура дерева исходных текстов.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Все ресурсы проекта перемещены в отдельный архив.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Для создания архивов исходных текстов и ресурсов можно использовать команды &quot;$ make dist-lzma&quot; и &quot;$ make dist-reslzma&quot;.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Документация выполнена статичной для модулей и поделена по языкам. Для каждого языка документации формируется отдельный пакет. В документации каждого языка создан индексный файл по всему перечню локальной и сетевой документации. Общий перечень локальной документации значительно расширен новыми документами, а также вспомогательной сетевой документацией.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Добавлены пакеты библиотечных БД *-LibDB.Main и *-LibDB.VCA, помещены в data/LibsDB.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Вместо DemoDB пакета добавлены пакеты моделей &quot;AGLKS&quot; и &quot;Boiler&quot;, помещены в data/ModelsDB.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Конфигурационные файлы для построения RPM и DEB пакетов обновлены.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Зависимость на библиотеку PCRECPP глобально заменена на PCRE.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Добавлена новая функция TSYS::time2str() для преобразования интервалов времени в строку вроде &quot;1час 23мин 10сек&quot;. Эта функция использована везде.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;">Добавлена реализация собственного XML-парсера, вместо Expat. Собственный XML-парсер решает проблему поддержки различных кодировок, отличных от UTF, а также безопасной обработки ситуации наличия недопустимых для текущей кодировки символов.</li></ul></li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>SYS.TMess</em>: Общие сообщения интерфейса управления перемещены в одну функцию TMess::lab*.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em;"><em>Transport, Transport.*</em>: Добавлена функция TTransportS::traf2str() для преобразования значения счётчика трафика в строку вроде &quot;12.5КиБ&quot;</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none;"><a name="h1051-8"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221);">Заключение</h2>
<p id="p51499-16" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">Система OpenSCADA получила толчок для осуществления реальной аппаратной многоплатформенности, посредством чего код проекта был в значительной степени вычищен и сделан многоплатформенным. Эти наработки позволят продолжить движение проекта в сторону аппаратной многоплатформенности, а также реализации программной, что запланировано после следующего LTS релиза 0.8.0.</p>
<p id="p51499-17" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; margin: 0px; padding: 0px;" class="indent10 auto align-justify">Также продолжена работа по улучшению общей функциональности, простоты и удобству использования с общим повышением качества предоставления услуг на основе системы OpenSCADA.</p>]]></content:encoded>
			<category>Новость</category>
			<category>Релиз</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Wed, 13 Apr 2011 20:00:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>OpenSCADA принята в программу &quot;Посол QT&quot;</title>
			<link>http://qt.nokia.com/qt-in-use/ambassadors/project?id=a0F20000006Jwf4EAC</link>
			<description>Проект OpenSCADA принят участником в программе&quot;Посол QT&quot;.</description>
			<content:encoded><![CDATA[]]></content:encoded>
			<category>Новость</category>
			<category>Публикация</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Thu, 17 Feb 2011 17:00:00 +0200</pubDate>
			
		</item>
		
	</channel>
</rss>
