УкраїнськаEnglishmRussian
Вход/Новый

Релиз OpenSCADA 0.7.2

05.12.2011 16:00 Давность: 13 yrs
Категория: НовостьРелиз

Автор: Роман Савоченко


Исполнение OpenSCADA на N950

Исполнение OpenSCADA на N900

Запись, отмена и повтор изменений

Исполнение рецепта/программы пользователя

Основной целью данного релиза является стабилизация и отработка ключевых функций перед выпуском следующей версии OpenSCADA продолжительной поддержки (LTS) 0.8.0. Кроме основных задач в рамках данного релиза проделана большая работа по стабилизации, чистке исходного кода, всестороннему расширению возможностей, а также опробование на встраиваемых и мобильных устройствах архитектуры ARM.

 

OpenSCADA 0.7.2

Введение

Данный релиз является плановым выпуском рабочей версии системы OpenSCADA, которые обычно осуществляются с периодичностью 3-4 месяца. Основной целью данного релиза является стабилизация и отработка ключевых функций перед выпуском следующей версии OpenSCADA продолжительной поддержки (LTS) 0.8.0. Кроме основных задач в рамках данного релиза проделана большая работа по стабилизации, чистке исходного кода, всестороннему расширению возможностей, а также опробование на встраиваемых и мобильных устройствах архитектуры ARM.

Данный документ является обработкой(компиляцией) документа "ChangeLog" системы OpenSCADA версии 0.7.2, который призван вкратце и наглядно осветить новые возможности. Детальнее ознакомиться с изменениями в системе OpenSCADA можно в файле "ChangeLog" из дистрибутива системы или здесь: wiki.oscada.org/Works/ChangeLog.

Ключевыми особенностями данной версии являются:

  • Реализация плановых задач.
  • Оптимизация, повышение стабильности, устойчивости и производительности системы.
  • Усовершенствование и стабилизация графической подсистемы.
  • Расширение API пользовательского программирования.
  • Общесистемные расширения.
  • Публикация решений OpenSCADA.

Новые и обновленные модули:

  • Archive.DBArch (0.9.5) — Добавлены лимиты запроса данных по времени запроса и ещё некоторые расширения.
  • Archive.FSArch (1.5.0) — Повышение производительности чтения индексов файлов архивов значений. Адаптация хранения и чтения вещественного к ARM FPA. Добавлены лимиты запроса данных по времени запроса. Некоторые расширения. Значительная стабилизация.
  • DB.FireBird (0.9.7) — Стабилизация.
  • DB.MySQL (1.7.1) — Стабилизация.
  • DB.PostgreSQL (0.9.2) — Стабилизация.
  • DB.SQLite (1.6.4) — Стабилизация.
  • DAQ.BFN (0.5.1) — Очистка кода.
  • DAQ.BlockCalc (1.5.0) — Добавлено планирование вызовов по CRON. Добавлен запускающий и останавливающий вызов блоков. Стабилизация.
  • DAQ.DAQGate (0.9.5) — Добавлено планирование вызовов по CRON. Стабилизация.
  • DAQ.DCON (0.5.1) — Стабилизация.
  • DAQ.DiamondBoards (1.2.5) — Добавлена возможность смены типа параметра. Стабилизация.
  • DAQ.ICP_DAS (0.8.0) — Добавлена библиотека API "ICP DAS" libi8k.a для архитектуры ARM и включена возможность сборки модуля для ARM. Стабилизация.
  • DAQ.JavaLikeCalc (1.9.5) — Добавлен прямой, динамический вызов библиотечных функций. Добавлено прямое объединение строковых констант. Добавлен условный вызов аргументов выражения (второго аргумента) с логическими операциями ||(OR) и &&(AND). Значительная стабилизация. Некоторые расширения.
  • DAQ.LogicLev (1.2.0) — Стабилизация. Добавлена возможность смены типа параметра. Добавлено планирование вызовов по CRON. Некоторое расширение.
  • DAQ.ModBus (1.2.0) — Добавлена поддержка типа параметра "Логический" для работы по шаблону параметра, а также функции пользовательского API для отправки произвольных-нестандартных ModBus-запросов из шаблонов. Добавлена и использована функция формирования сообщений о нарушениях в контроллере. Добавлена поддержка функций групповой записи (0x0F, 0x10). Значительная стабилизация.
  • DAQ.OPC_UA (0.6.2) — Стабилизация. Адаптация хранения и чтения вещественного к ARM FPA.
  • DAQ.SNMP (0.6.1) — Стабилизация. Некоторые улучшения.
  • DAQ.Siemens (1.3.0) — Значительная стабилизация. Версия библиотеки LibnoDave обновлена до 0.8.4.6. Добавлено планирование вызовов по CRON. Добавлена функция переподключения для "Industrial Ethernet" соединений. Некоторые расширения.
  • DAQ.System (1.7.5) — Стабилизация. Добавлено планирование вызовов по CRON.
  • Transport.SSL (1.0.0) — Стабилизация. Некоторые улучшения.
  • Transport.Serial (0.7.3) — Стабилизация.
  • Transport.Sockets (1.5.0) — Значительная стабилизация.
  • Protocol.HTTP (1.6.0) — Добавлена поддержка пользовательских шаблонов для внутреннего содержимого модуля. Добавлена генерация сообщений аутентификации пользователей. Добавлена поддержка всех основных вариантов завершения строки при разборе HTTP-запроса.
  • Protocol.ModBus (0.6.3) — Стабилизация. Некоторые улучшения.
  • Protocol.OPC_UA (0.6.2) — Стабилизация.
  • Protocol.SelfSystem (0.9.5) — Стабилизация.
  • Protocol.UserProtocol (0.6.2) — Стабилизация.
  • Special.FLibComplex1 (1.1.0) — Добавлен прямой, динамический вызов библиотечных функций.
  • Special.FLibMath (0.6.0) — Добавлен прямой, динамический вызов библиотечных функций.
  • Special.FLibSYS (1.0.0) — Добавлен прямой, динамический вызов библиотечных функций.
  • UI.QTCfg (2.1.0) — Стабилизация. Значительные расширения и улучшения. Реализация ряд функций для повышения удобства.
  • UI.QTStarter (1.6.2) — Стабилизация. Шрифт сообщение в "сплеше" зафиксирован в размере 10 пикселов, для обеспечения единообразного отображения.
  • UI.VCAEngine (1.2.0) — Стабилизация. Значительные расширения и улучшения.
  • UI.Vision (1.2.0) — Значительная стабилизация. Значительные расширения и улучшения.
  • UI.WebCfg (1.5.6) — Стабилизация.
  • UI.WebCfgD (0.8.0) — Стабилизация. Значительные расширения и улучшения.
  • UI.WebUser (0.6.2) — Стабилизация.
  • UI.WebVision (1.0.0) — Значительная стабилизация. Значительные расширения и улучшения.

1 Реализация плановых задач

В соответствии с планом релиза были выполнены следующие задачи:

  • Реализация механизма откатов изменений редактирования в Vision. — В рамках окна визуального редактирования виджетов реализован многоуровневый механизм отката изменений для всех основных операций: визуальное изменение геометрии, изменение значения атрибута виджета, добавление/удаление виджета, копирование виджета и редактирование виджетов на основе примитива "ElFigure".
  • Адаптация системы OpenSCADA для работы на аппаратной платформе ARM. — В дополнении к первичной адаптации, в прошлом релизе, для планшета N800 (wiki.oscada.org/Works/Tests/ARM ) была выполнена сборка и адаптация OpenSCADA для сложного (очень старого) програмного окружения контроллера LP-5451, а так-же сборка для контроллера SMH2Gi и смартфонов фирма Nokia: N900, N950, N9. В рамках сборки и адаптации на различные мобильные устройства были выполнены следующие задачи:
    • DAQ.ICP_DAS: Добавлена библиотека API "ICP DAS" libi8k.a для архитектуры ARM и включена возможность сборки модуля для ARM.
    • SYS, DAQ.OPC_UA: Добавлены системные функции floatLE(), floatLErev(), doubleLE(), doubleLErev() для преобразования формата хранения вещественного числа на различных архитектурах.
    • SYS: Выполнена адаптация для сборки с GLibC версии меньше 2.5 (2.3.2).
    • Archive.FSArch:
      • Исправлено хранение вещественного числа формата LE в архиве, на архитектуре ARM.
      • В алгоритме быстрого подсчёта количества битов использовано функцию невыравненного чтения TSYS::getUnalign32().
      • Размер поля кодировки в плоском архиве сообщения расширен с 9 до 99 символов.

2 Оптимизация, повышение стабильности, устойчивости и производительности системы

В процессе работ над данной версией, а также её практической адаптации, было обнаружено и исправлено в общей сложности около 170 ошибок. Так-же была продолжена работа по чистке кода от предупреждающих сообщений компилятора, с флагом "-Wall".

Перечислим наиболее существенные ошибки, исправление которых значительно отразилось на повышении стабильности:

  • SYS:
    • Исправлены внеплановые вызовы по расписанию, связанные с рассинхронизацией значений функций time() и clock_gettime(CLOCK_REALTIME,&sp_tm).
    • Исправлена проверка и ожидание потоков на доступность при перекрытии с остановкой предыдущего, одноимённого потока.
    • Отключено ожидание инициализации для отсоединяемых задач с целью предотвращения зависания на ожидании быстро закрываемых задач.
    • Исправлена работа функций невыравненного чтения getUnalign*() на ARM. Проблема обнаружена на PXA270.
  • Archive.FSArch:
    • Исправлено чтение данных из буфера архива в соответствии с размером буфера в алгоритме быстрого вычисления количества битов.
    • Исправлено помещение смещения в кеш из алгоритма быстрого вычисления количества битов.
    • Исправлена некорректная обработка конца невыравненных блоков быстрого алгоритма подсчёта количества битов.
    • Добавлен монопольный ресурс к вызову функции calcVlOff() с целью предотвращения некорректной работы с кешем.
  • Transport, DAQ.AMRDevs, DAQ.DCON, DAQ.ICP_DAS, DAQ.ModBus, DAQ.OPC_UA, Protocol.HTTP: Исправлено использование функции TTransportOut::messIO() при запросе хвоста и получении нулевого ответа.
  • DAQ.ModBus, Transport.Serial, UI.WebCfg, UI.WebCfgD, UI.WebUser, UI.WebVision: Исправлено ошибочное использование символа завершения строки '\n' для множества программных платформ UNIX, MAC, DOS/Windows, путём замены на"\x0A" .
  • Transport.*: Исправлено использование беззнакового типа в возврате функций read() и write(). Добавлены ресурсы к счётчикам входных/выходных запросов.
  • Transport.Sockets: Исправлен пропуск инициализации размера возвратного значения для функции getsockopt().
  • DAQ.JavaLikeCalc: Исправлено падение функции replace(), объекта "RegExp".
  • DAQ.Siemens: Исправлено получение и запись значений вещественных типов. Исправлено переподключение в случае ошибки. Исправлено использование свойства размера целого, вещественного и строкового типов. Добавлена очистка связей параметра при его выключении.
  • UI.Vision, UI.WebVision: Исправлен доступ за границу вектора при отрисовке графиков примитива "FormEls".
  • UI.VCAEngine: Предотвращена возможность потери изменений в сервере визуализации при отображении в визуализаторах путём предварительного сохранения значения тактового счётчика в сервисном запросе "openList".
  • UI.WebVision:
    • Исправлено открытие и замена корневой страницы.
    • Исправлена обработка масштаба вложенных страниц, с учётом масштаба корневой.

Оптимизация и повышение производительности:

  • SYS: Механизм ресурса объекта "ResString" заменён с RW-блокировок на мютекс, с целью повысить производительность и сократить потребление памяти.
  • Archive.FSArch: Обработка индексной таблицы архива значений значительно ускорена посредством использования быстрого алгоритма вычисления количества битов в 32-разрядном целом.
  • UI.WebCfgD: Использован групповой запрос содержимого страниц для значительного повышения производительности на медленных и высоколатентных каналах.
  • UI.Vision: Повышена производительность отрисовки заполнений примитива "ElFigure".
  • UI.VCAEngine:
    • Выполнены мероприятия по повышению скорости запуска сеанса проекта в числе: пропущена инициализация базовых атрибутов ввиду их последующего наследования.
    • Удален перевод некоторых сообщений времени исполнения сеанса.
    • Реализовано включение только нужных страниц при запуске сеанса. Остальные страницы исполняющегося сеанса включаются по мере обращения к ним. Это позволило значительно повысить скорость запуска сеанса, а также уменьшить зависимость скорости запуска от сложности проекта визуализации.
    • Реализация архивного режима примитива "Документ" изменена на прямую работу с БД, что позволило расширить глубину архива до 1000000 документов и без ущерба для оперативной памяти.

3 Усовершенствование и стабилизация графической подсистемы

Заметная работа была выполнена в рамках графической подсистемы, а именно в модулях движка СВУ UI.VCAEngine, визуализаторов UI.Vision и UI.WebVision, а также конфигураторах. Внесённые изменения были направленны на стабилизацию, оптимизацию потребления памяти и улучшение пользовательских свойств.

Улучшения графической подсистемы:

  • UI.VCAEngine, UI.Vision, UI.WebVision:
    • Исправлено обращение за границы массива (вектора) при построении трендов, примитива "Диаграмма".
    • Добавлено и реализовано свойство ширины графика, примитива "Диаграмма".
    • Добавлена периодическая проверка дерева виджетов страницы с целью обнаружения факта удаления виджетов, путём запроса полного перечня виджетов.
    • Реализовано отображение графиков, группы графиков примитива "Диаграмма" в шкале значения в случае отличия шкал всех графиков не более чем на 20%.
    • Добавлена и реализована возможность выбора режима подтверждения для элементов редактирования строки и текста примитива "Элементы формы".
    • Исправлена возможность потери некоторых изменений в модели, при отображении их в визуализаторах.
    • Добавлено и реализовано свойство количества значений на пиксел в графиках примитива "Диаграмма", с целью управления детализацией экспорта в CSV и т.д.
    • Реализована логарифмическая шкала значений для графиков примитива "Диаграмма".
    • Добавлено и реализовано свойство сохранения соотношения сторон главной страницы при разворачивании главного окна исполнения сеанса проекта.
  • UI.VCAEngine:
    • Реализовано включение страниц сеанса проекта по надобности, с целью повышения скорости запуска и оптимизации использования оперативной памяти.
    • Примитив "Документ" переделан для ведения архивов, архивного режима, полностью в БД, а также добавлена функция пользовательского API для доступа к элементам архива.
    • Добавлена периодическая (30 минут) проверка и закрытие уже неиспользованных (потерянных) сеансов проектов.
    • Удалён предыдущий (противоречивый) механизм отката удаления вложенных виджетов и заменён полноценным механизмом откатов в визуализаторе UI.Vision.
    • Выполнена оптимизация использования памяти элементами сеанса до 20%.
    • Удалена поддержка первой, устаревшей, версии структуры БД среды визуализации.
    • Добавлено ограничение на время генерации документов в примитиве "Документ" в 5 секунд.
    • Добавлена поддержка типа атрибутов "Объект" и "Текст".
    • Отключена принудительная инициализация новых пользовательских атрибутов в EVAL.
    • Примитив "Документ" переключен в режим полного разбора XML с целью полноценного сохранения разметки XHTML.
    • Добавлена индикация состояния корректности ссылок в виде "(+)" в конце.
  • UI.Vision:
    • Добавлена реализация полноценных откатов и повторов изменений при визуальном редактировании виджетов.
    • Улучшения в отзывчивости и обновлении изменений в сеансе исполнения проекта: оптимизирована производительность отрисовки примитива "ElFigure", обработка изменения уровня виджета "geomZ".
    • Добавлен экспорт в CSV формат из примитивов "Диаграмма" и "Документ".
    • Введено ограничение на размер диалогов ввода и включено адаптивное определение их размеров по содержимому.
    • Полностью переписан механизм исполнения правил подсветки синтаксиса.
    • Добавлено создание нового сеанса после восстановления удалённого подключения и отсутствии предыдущего сеанса.
    • Фон окна редактируемого виджета установлен в шаблон QT::Dense7Pattern с целью устранения возможного перекрытия по цвету.
    • Добавлена обработка событий выбора виджета при нажатии в области скролинга, но за пределами виджета.
    • Примитив "Элементарная фигура":
      • Выполнена реорганизация операций из диалога свойств и контекстного меню с динамическими и статическими свойствами.
      • В процессе добавления фигуры реализована её отрисовка при перемещении курсора мыши.
  • UI.WebVision:
    • Исправлена обработка масштаба вложенных кадров, а также пересмотрен механизм формирования-включения скрола.
    • Добавлена функция преобразования изображений на стороне сервера. Функцию преобразования использовано для изменения размера и обесцвечивания изображений неактивных кнопок.
    • Реализовано открытие малых окон вложенных страниц в виде DIV-блоков, что решает проблему блокировки и продолжительного открытия внешних окон многими браузерами.
    • Главная страница интерфейса отцентрована в окне браузера.
  • UI.QTCfg:
    • Добавлено ограничение на высоту строк таблиц в половину высоты таблицы.
    • Введено ограничение на размер диалога ввода и включено адаптивное определение его размера по содержимому.
    • У элементов доступных для изменения высоты пользователем, для обеспечения работы везде, установлен фиксированный стиль "StyledPanel".
    • Добавлена функция полнотекстового редактирования текста ячеек таблиц.
    • Движок воспроизведения правил подсветки синтаксиса полностью переписан для упрощения и предотвращения скрытых ошибок.
  • UI.WebCfgD:
    • Уменьшена яркость обесцвеченных-пассивных кнопок.
    • Все окна диалогов реализованы в виде DIV-блоков с целью исключить проблемы и задержки в открытии внешних окон различными браузерами.
    • Использован групповой запрос содержимого страниц для значительного повышения производительности на медленных и высоколатентных каналах.
    • Добавлена информация в строке статуса о текущем пользователе и возможность его смены.
    • Выполнена адаптация для работы в полную ширину экрана.

4 Расширение API пользовательского программирования

Было продолжено формирование объектного API пользовательского программирования, которое предусматривает интеграцию пользовательских функций в дерево объектов системы OpenSCADA. Кроме этого был внесен ряд изменений в существующие библиотеки функций пользовательского API.

В частности были осуществлены следующие изменения:

  • SYS:
    • Добавлены функции работы с файлами: SYS.fileRead() и SYS.fileWrite().
    • К API объекта XMLNodeObj добавлена функция getElementBy() для поиска вложенных узлов по значению атрибута.
    • Добавлена функция осуществления кодирования текста между различными символьными кодировками.
    • Добавлена функция NodeObj.nodePath().
  • TConfig, TBD, TTransportIn, TTransportOut, TUser, TGroup, TPrmTmplLib, TPrmTempl, TParamContr, TController, TVArchive, TVArchivator, TMArchivator: Добавлены функции пользовательского API cfg() и cfgSet() для доступа к конфигурации объектов (хранящейся в БД).
  • DAQ:
    • Добавлена функция TController::alarmSet() для генерации типовых нарушений в объекте контроллера модулей подсистемы "Сбор данных".
    • Добавлена функция SYS.DAQ["Modul"]["Controller"]["Parameter"]["Attribute"].arch() для прямого обращения к объекту архива, связанного с атрибутом параметра.
    • Добавлены функции пользовательского API enable() и start() для прямого контроля за состоянием объекта контроллера.
  • DAQ.JavaLikeCalc, Special.FLibComplex1, Special.FLibMath, Special.FLibSYS: Добавлена функция динамического вызова библиотечных функций SYS.DAQ.JavaLikeCalc["lib_{Lib}"].funcId(prms, ...).
  • Archive: Добавлены функции пользовательского API status(), end() и begin() для доступа к состоянию и свойствам объекта архиватора сообщений.
  • DAQ.JavaLikeCalc:
    • Для типа данных "null" добавлена функция isEVal(), которая всегда возвращает "true".
    • К объектам библиотечных функций добавлена функция пользовательского API call().
  • DAQ.ModBus: Добавлена функция пользовательского API messIO() в объект контроллера "ModBus" с целью предоставления возможности отправки нестандартных ModBus-запросов прямо из шаблона параметра.

5 Общесистемные расширения

В общесистемное API системы OpenSCADA были внесены значительные изменения и расширения с целью общей стабилизации и расширения:

  • SYS:
    • Объект хранения строки с ресурсом "ResString" значительно расширен на предмет прозрачного преобразования из/в тип std::string.
    • Добавлена возможность сохранения в конфигурационный файл:
      • Добавлен префикс БД "<cfg>" для представления конфигурационного файла в роли источника загрузки/сохранения конфигурации.
      • Функции TDBS::dataSeek() и TDBS::dataDel() обновлены для строгой обработки конфигурационного файла.
      • Функция chkSelDB() адаптирована для поддержки записи в конфигурационный файл.
      • Добавлено сохранение больших и многострочных значений полей конфигурации в текстовом поле отдельного тега конфигурационного файла.
    • Тип "long long", обычно 64-рязрядное целое заменён везде на более определённый "int64_t" на всех архитектурах.
    • Объекты потоков OpenSCADA жёстко слинкованы со своим потоком. Добавлена статистика загрузки и вызовов периодичных потоков.
    • Реализована возможность проверки загружаемых объектов на их отсутствие в БД и удаление. Функция проверки активируется только в случае прямой загрузки из БД.
    • Добавлена системная периодическая функция perSYSCall() вызова объектов подсистем и их модулей. Используется для сервисных целей ненагруженных и редких задач модулей и подсистем.
    • Функция тестирования выражения по шаблону перемещена в объект TRegExp.
    • SYS.XMLNode:
      • Полностью удалён код использования XML-парсера "Expat".
      • Добавлена возможность загрузки текстовых частей тега в отдельные-специальные теги, в полном режиме. Предназначено для полного сохранения конфигурации тега.
      • Добавлена возможность загрузки и сохранения блоков комментариев в отдельные-специальные теги, в полном режиме.
  • DOC:
    • Выполнена проверка и исправление Английских текстов в ядре OpenSCADA. Обновлены переводы ядра OpenSCADA на Немецкий, Русский и Украинский языки.
    • Выполнена проверка и исправление Английских текстов модулей OpenSCADA. Обновлены переводы модулей OpenSCADA на Немецкий, Русский и Украинский языки.
    • Обновлены все основные документы на доступных языках: openscada.pdf, build.pdf, properties.pdf, "OpenSCADA API", "Про OpenSCADA", "Библиотека TechApp", "Quick Start", "WLib Основные", "WLib Элементы мнемосхем".
  • Базы данных библиотек:
    • Библиотека основных визуальных элементов дополнена кадрами реализации редактирования и исполнения "Рецептов"-"Пользовательских программ".
    • К комплекту пакета библиотек добавлено библиотеку элементов Электрических схем.
    • Кадр главной страницы дополнен механизмом "проигрывания" моделей технологических процессов (ТП).
    • Модель промышленного котлоагрегата переведено на Английский и Украинский языки.
  • DB: Добавлено временное ограничение в 5 секунд и поле указания начального смещения для запроса содержимого больших таблиц.
  • DAQ: Добавлена возможность выбора типа атрибута шаблона "Объект". Предназначено в первую очередь для хранения внутренних данных в объекте и не может быть использовано как тип атрибута параметра объекта контроллера источника данных.
  • TArchives: Добавлена возможность использования регулярных выражений при поиске по категории посредством "/match/"
  • Transport: Типы форматов исходящих запросов расширены вариантами текста с разным завершением строки: LF, CR, CR/LF.
  • DAQ, DAQ.DiamondBoards, DAQ.ModBus, DAQ.LogicLev: Добавлена возможность смены типа параметра для отключенных параметров многотиповых модулей подсистемы "Сбор данных".
  • DAQ.LogicLev, DAQ.Siemens, DAQ.ModBus: В случае выполнения по расписанию в атрибут "f_frq" записывается время после последнего вычисления в отрицательном значении. Добавлены инициализирующие и останавливающие вызовы при включении/выключении параметра.
  • TArchives, Archive.DBArch, Archive.FSArch: Добавлена временная граница при запросе сообщений из архива.
  • SYS.TConfig, Archives, DAQ, Security, Transports, Archive.*, DAQ.*, Protocol.UserProtocol, Transport.*, UI.VCAEngine, UI.WebUser: Хранение строковых конфигурационных полей переведено в объект ресурсной строки "ResString".

6 Публикация решений OpenSCADA

В процессе осуществления работ над данным релизом на разных конференциях и выставках были представлены решения на основе проекта OpenSCADA:

Заключение

Данным релизом системы OpenSCADA фактически завершена работа по адаптации на аппаратную архитектуру ARM, что выразится в предоставлении и публикации официальных сборок релиза 0.7.2 для мобильных устройств.

Хотя выпуск данного релиза несколько запоздал и затянулся он всё же был тщательно подготовлен и станет хорошей основой для доводки кодовой базы проекта к предстоящему ответственному релизу 0.8.0 LTS. Кроме этого данный релиз можно использовать и для повсеместного внедрения и применения в ответственных задачах с последующим плавным переходом на 0.8.0 LTS после его выхода.

Последующие усилия разработчиков будут направлены на завершения плановых заданий и подготовке к выпуску релиза OpenSCADA продолжительной поддержки (LTS) версии 0.8.0.


9335