OpenSCADA

Документы/Релиз 0.9

This page is a translated version of the page Documents/Release 0.9 and the translation is 100% complete.

English • ‎mRussian • ‎Українська

Contents

1 Введение

Релиз OpenSCADA, открытой SCADA(Supervisory control and data acquisition) системы, версии 0.9 является стабильным промышленным релизом продолжительной поддержки (LTS).

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

Релиз является следующей версией стабильной ветви для которого, в течении продолжительного времени, предоставляется техническая поддержка от разработчиков и обеспечивается выпуск исправлений в виде публичных сборок для основных и стабильных окружений Linux, а также оперативных сборок для владельцев пакетов технической поддержки. Жизненный цикл предыдущего релизу 0.8.0 LTS прекращается его последним обновлением, непосредственно перед первыми сборками пакетов 0.9 LTS.

Именно на этой версии осуществляется окончательный переход на схему разработки Work/LTS, т.е., разработка осуществляется в рамках рабочей версии и на её основе периодически выпускаются стабильные релизы, которые, в свою очередь и параллельно разработке, обновляются путём обратного портирования совместимых изменений из рабочей версии. Инициирующий переход произошёл в 2013 году, когда текущей стабильной версией определено 0.8.0 LTS, а рабочей 0.9 Work. На данный момент, стабильной версией становится анонсированная 0.9 LTS, а рабочей 1 Work.

В целом, новая стабильная версия является результатом шести лет работы с разработки, внедрения в различные решения, стабилизации и эксплуатации OpenSCADA в её рабочей ветви, которая на данный момент выпускается текущей стабильной. Всё это время обновления для 0.8.0 LTS продолжали выпускаться и что будет осуществляться для анонсированной 0.9 LTS.

Этот документ является обобщение протокола изменений (ChangeLog), начиная с нулевой ревизии предыдущей LTS версии, через её обновления и заканчивая текущей. Документ призван коротко и наглядно осветить новые возможности OpenSCADA. Детально ознакомиться с изменениями можно в файле "ChangeLog" дистрибутивных пакетов или из первоисточника: http://oscada.org/svn/tags/openscada_0.9/ChangeLog.

1.1 Общая информация

Проект OpenSCADA основан Савоченко Романом в 2003 году как свободную реализация Системы Диспетчерского Контроля и Сбора Данных (SCADA) или Человеко Машинный Интерфейс (HMI), на основе её фундаментального проектирования в течении 2002 года и опыта использования и разработки коммерческой SCADA-системы до этого.

SCADA или HMI системы в целом предназначены и используются для осуществления человеком оперативного контроля за работой сложного и ответственного технологического оборудования и процессов различных производственных предприятий.

На время анонса 0.9 LTS, OpenSCADA является развитой SCADA/HMI системой, которая довольно широко используется как по прямому назначению, так, благодаря своей гибкости, и во многих смежных областях, и которая с уверенностью может называться более обобщённо — динамическая система работы с данными реального времени.

Номер стабильной версии OpenSCADA меньше единицы только из-за того, что её целью была заявлена многоплатформенность, достичь которой в запланированном объёме планируется следующим стабильным релизом с номером 1. В целом, целями OpenSCADA являются:

1.2 Применение

К актуальным отраслям применения, где известно хотя-бы одно внедрение и с коротким перечнем которых от участников проекта можно ознакомиться по этой ссылке, относятся:

С некоторыми ограничениями и доработками, в основном во внутреннем окружении пользователя, OpenSCADA может использоваться и в таких отраслях:

2 Результаты предыдущего релизу 0.8.0 LTS

Релиз 0.8.0 LTS выпущен в апреле 2012 года и в течении этих шести лет он претерпел 20 обновлений, которыми, в целом, исправлено более 500 ошибок и добавлено множество усовершенствований, которые не нарушают совместимости библиотечных БД и конфигурации.

Конфигурация и библиотечные БД 0.8.0 LTS были в целом заморожены, ввиду больших несовместимых изменений в 0.9 Work, для методов запуска OpenSCADA, и несовершенство распространение библиотечных БД на момент выпуска 0.8.0 LTS. Поэтому, обновление и переход на версию 0.9 LTS будет нетривиальным, хотя в 0.9 LTS предусмотрено всё возможное для упрощения этой процедуры. Обновление-же 0.9 LTS до запланированной в будущем 1 LTS уже не будет таким сложным и фактически может превратиться исключительно в формальное изменение версии рабочей ветви, поскольку теперь планируется обновление всего, включая и библиотечные БД.

3 Плановые задачи релиза

Развитие OpenSCADA, после предыдущей LTS версии и в рамках рабочей ветви, в основном осуществлялось путём глубокой стабилизации и через практическую адаптацию с элементами расширения существующего функционала, нацеленные на предоставление стабильного и надёжного окружения автоматизации промышленных и смежных задач, а соответственно и не существовало чётко определённого плана. Но за три года до этого релиза такой план появился и составил следующие задачи, что видно из общего плана развития:

Эти задачи выполнены и некоторые детали около них приведены далее.

4 Общесистемные свойства

Новая стабильная версия OpenSCADA получила заметные общесистемные расширения, приобрела большей стабильности в работе и увеличение продуктивности, а также получила заметные усовершенствования графического интерфейса и окружения около неё, вроде: расширенной настройки, документации, доступной прямо из программы (offline и online), и которая значительным образом пересмотрена и актуализирована.

Основная часть документации проекта перенесена на новую Wiki, на основе MediaWiki, и значительный объём этой части был отревизирован и переведен на три языка — Английский, Украинский, mRussian. Для переноса была создана процедура конвертации статей из диалекта движка WackoWiki на MediaWiki, которая была полностью написана на внутреннем языке программирования OpenSCADA и которую многократно использовано для переноса большого объёма старой Wiki. Формат автономной (offline) документации был изменён со статичных PDF-файлов, которые не обновлялись после предыдущей LTS версии, на HTML-файлы, которые динамически генерируются из актуальной базы знаний проекта (Wiki), а также имеют актуальные крос-ссылки между страницами и ссылки на online-документацию, для исключительно внешних материалов. Генерация offline-документации также производится специально написанной процедурой на внутреннем языке OpenSCADA, что, вместе с процедурой конвертации Wiki-диалекта и комплексного тестирования релиза OpenSCADA, является ярким показателем мощности и текущего уровня развитости внутреннего языка OpenSCADA.

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

Первичный язык (Английский) был полностью отревизирован в оригинальных сообщениях программы и во многом для основных статей документации-Wiki OpenSCADA, что на данное время делает OpenSCADA адекватно воспринимаемой для аудитории, которая не понимает исходных языков — Украинского или mRussian. И, вместе с реализацией в полном объёме механизма динамического перевода, делает возможным построение на основе OpenSCADA динамично многоязыковых интерфейсов пользователя, что Вы можете кроме всего прочего посмотреть на публично доступном Web-интерфейсе динамических моделей ТП: АГЛКС, Котёл.

Рабочей версией, в основе этой стабильной, впервые было определено понятие проекту OpenSCADA и реализован сценарий командной строки для запуска и создания проектов OpenSCADA. Непосредственно перед выпуском этой версии, понятие проекта OpenSCADA было окончательно закреплено за директорий с данными отдельного проекта и конфигурационным файлом OpenSCADA, а реализация менеджера проекта была интегрировано непосредственно в OpenSCADA. Соответственно, эта LTS версия имеет развитое понятие менеджера проектов, что позволяет гибко с ними работать и исключить опасную возможность многократного запуска с общими данными одного проекту.

Рабочей версией, также, внедрено изменение версий модулей по изменению в коде модуля и непосредственно перед их выгрузкой в репозиторию исходных текстов, а соответственно, версии модулей OpenSCADA этого релиза наглядно отражают общий уровень их развитости и стабильности.

В процессе осуществления работ над рабочей ветвью, в основе этой стабильной, было внедрено формирование репозиториев пакетов дистрибутивов Linux со сборками OpenSCADA, которые до этого предоставлялись только как отдельные пакеты. Что заметно упростило развёртывание OpenSCADA и содержание её актуальной. Затем был создан автоматических сборщик этих пакетов, который на данный момент насчитывает до 100 целей, и что значительно упростило выпуск обновлений как для рабочей ветви так и для этой стабильной. Соответственно, к этой LTS версии предоставляются сборки пакетов для основных окружений Linux и вся историю публичных обновлений будет сохранена.

К пакетам сборок OpenSCADA предоставляются также и сборки живых дисков быстрого ознакомления и развёртывания OpenSCADA вместе с системным окружением. Которые до этого момента получили формальное основание в виде Linux дистрибутива автоматизации проекта OpenSCADA.

Сборки и пакеты OpenSCADA сопровождаются рядом открытого и свободного материала внутреннего окружения программы, а именно, это: наработки слоя сбора и обработки данных, элементы графического представления и целые-комплексные проекты моделей ТП. Эти материалы предоставляются в виде файлов БД SQLite и включают:

Хостинг проекта в целом и материалов 0.9 LTS в частности, был перенесен на собственный сервер проекта, где дополнительно были развёрнуты: демонстрационные Web-интерфейсы моделей OpenSCADA, проект мониторинга сервера и умного дома на основе OpenSCADA и сборщик пакетов репозиториев OpenSCADA.

4.1 Внутренние

Разрешающая способность внутренних данных целого типа окружения OpenSCADA увеличена до 64 разрядов. В целом-же, внутренние данные OpenSCADA, с резервированием значения ошибки (EVAL) для каждого, унифицированы общими типами: логическое, целое, реальное, строка и объект. Что в первую очередь касается источников данных.

В ядро OpenSCADA, собственный протокол и все узлы что работают с удалёнными станциями OpenSCADA; добавлена возможность "поднятия" узлов OpenSCADA, которые находятся за другими узлами и, как правило, в другой сети. Что в целом позволяет централизовано управлять сетью станций OpenSCADA на любом уровне иерархии.

4.2 Усовершенствования и адаптация для различных платформ

Эта версия OpenSCADA получила углублённую поддержку и способность к адаптации для различных платформ. Что в основном случилось благодаря адаптации для работы на программной платформе Android и восстановления сборки и работы с ucLibC, и что планируется использовать в дальнейшей адаптации для работы на программных платформах QNX и MS Windows.

Работа на одноплатных ПК была расширена платами Raspberry Pi и Orange Pi.

Поддержка Linux смартфорнов Nokia дополнена последним, основанным на MeeGo 1.2, это — Nokia N9. Или это было обновление поддержки Nokia N950.

Кроме непосредственной работы (нативно) на различных платформах, был значительно расширен Web-интерфейс, который сейчас реализует все общие возможности концепции среды визуализации и управления (СВУ).

4.3 Оптимизация, стабилизация и продуктивность

Значительной стабилизации ядра OpenSCADA, и программы в целом, достигнуто через унификацию контроля внутренних ресурсов и расширения возможностей отладки пользователем. В общем, пользовательская диагностика и отладка расширена:

Глубокой и всесторонней стабилизации претерпели почти все модули OpenSCADA и многие были оптимизированы, из которых особенно нужно отметить:

Надёжность резервируемой станции в масштабе комплексного решения, точнее сохранение данных истории, была усовершенствована расширением механизма резервирования, который потенциально предусматривает резервирование любой подсистемы и реализует сейчас резервирование подсистем "Сбор данных" и "Архивы-История".

И, для программы в целом, был выполнен ряд формальных всесторонних тестов, которые были предварительно расширены во внутренней процедуре комплексного тестирования релиза OpenSCADA. В результате этих тестов было выявлено несколько ошибок, которые исправлены.

4.4 Сбор данных

Учитывая ключевую роль сбора данных в программах такого роду, эта функция, в лице подсистемы "Сбор данных" и её модулей, получила значительные усовершенствования, из которых особенно нужно отметить: смещение акцента в расширении поддерживаемых источников данных из реализации отдельных модулей подсистемы "Сбор данных" на системном языке "C/C++", на их реализацию в окружении OpenSCADA и на её внутреннем языке — логический уровень OpenSCADA. Т.е., на логическом уровне OpenSCADA, может и реализуется все, что: для доступа к данным использует сеть, не требует использования специфических библиотек и функций и не является очень сложным. На данный момент, таким образом реализовано:

Учитывая рост роли логического уровня OpenSCADA, выросли и требования к гибкости модели данных источников данных и в целом, что было удовлетворено:

Внутренний язык программирования OpenSCADA приобрёл значительные усовершенствования и, сейчас, удовлетворяет всем требования отраслей применения OpenSCADA. Многие из этих усовершенствований попали в предыдущую версию 0.8.0 LTS, а ряд из них не мог туда попасть из-за нарушения обратной совместимости или недостаточной стабильности на то время. Из этих, существенных усовершенствований, нужно ещё раз отметить: увеличение разрешающей способности данных внутреннего окружения OpenSCADA целого типа до 64 разрядов и сохранение контекста исполнения внутренних процедур.

4.5 Графическое окружение

В целом, графическое окружение получило значительное развитие и главным из них стало расширение модуля запуска Qt-интерфейса, как основы для остальных локальных. В первую очередь, этот модуль и ядро OpenSCADA адаптированы для возможности запуска библиотеки графической среды Qt в основном потоке программы, что исключило много проблем, связанных с исполнением в неглавном потоке, а также обеспечена работа с версией 5 этой библиотеки. Во вторых, этот модуль взял на себя роль интерфейса выбора проектов OpenSCADA при её запуске и переключении, а также создание новых. И в третьих, ввиду его первичности к запуску Qt, он получил функцию управления видом программы независимо от графического окружения и возможность его запуска-закрытия в системный лоток. Что в целом сделало возможным настройку OpenSCADA под персональные требования пользователя и адаптировать её к очень специфическим окружениям вроде Android.

Заметных усовершенствований получили модули конфигурации Qt и Web, где особенно нужно отметить:

Заметных усовершенствований также получила среда визуализации и управления (СВУ), в составе всех её модулей:

Все Web-модули, в целом, получили возможность изменения вида посредством тем, через общесистемные интерфейсы модуля протокола HTTP и его механизмы обработки запросов и формирования ответов. Также, все они получили поддержку динамического перевода интерфейса, что особенно актуально для многопользовательских Web-интерфейсов и с чем Вы можете ознакомиться на демонстрационных Web-интерфейсах моделей OpenSCADA: АГЛКС, Котел. Добавлен также механизм разделения доступа по страницам, который, кроме всего прочего, позволяет разграничить доступ к Web-модулям вообще.

5 Новые и значительно обновленные модули

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

6 Выводы

По пути к новому релизу 0.9 LTS промышленного назначения осуществлена большая работу по стабилизации, расширению функциональных возможностей, а также расширению адаптационных возможностей к работе на альтернативных платформах. Всё это в целом ещё больше расширило границы полноценного применения OpenSCADA на всех уровнях систем промышленной автоматизации и смежных направлениях автоматизации и автоматики.

LTS версии OpenSCADA не являются пустым звуком, они реально поддерживаются всё время, до следующей LTS версии, и поддержка этой версии ещё будет расширена сервисными обновлениями. Также, будет осуществлёно смещение акцента и политики внедрения LTS версии, которая до этого рекомендовалась к обновлению конфигураций с замороженными библиотечными БД, на приоритет в использовании на широком спектре новых решений.

В появлении новой промышленной версии OpenSCADA 0.9 LTS приняли участие:

Последующие усилия разработки будут направлены на:

7 Обновления

7.1 [01.01.7532/01.03.2024] СЕДЬМОЕ обновление

Это обновление релиза 0.9 LTS исправляет около 60 ошибок и добавляет ОЧЕНЬ МНОГО улучшений с несколькими значительными-концептуальными, с которыми целиком можно ознакомиться в протоколе изменений обновления.

At.png User significant actions on the update

=> manually relink all the automatically created sources which changed, when you use the Automatic creation mode
=> manually replace all static using the "focus" attribute like to if(alarms_focus) alUnSel = 10; in LibsDB.vcaBase.wlb_Main.alarmsSt to the code if(this.alarms.attr("focus")) alUnSel = 10;

Automation Linux distributive of the project OpenSCADA

Main WWW-resources, documentation of the project and subprojects

New and significantly updated parts

(Unification the building with adaption ..., Refactoring and unifying the Transports subsystem ..., Control for big memory consumption), Messages Translation — fixes of the conceptual changes of the previous updates)
(Refactoring and unifying the Transports subsystem ...)
(Unification of conception the parameter types)
(Complete refactoring and expanding for ...)
(Expanding by support of the initiative connections, adaption to OpenSSL 1.1 and more)
(Significant reviewing and fixing in the external connections implementation and more)
(Unification the building with adaption to Qt6, QtWebEngine, QtMultimediaEngine, ...)
(Unification the building with adaption to Qt6, QtWebEngine, QtMultimediaEngine, ...)
(Unification the building with adaption to Qt6, QtWebEngine, QtMultimediaEngine, ...)
(Appending by many templates with documenting)

CONCEPTUAL > Unification the building with adaption to Debian 12, Qt6, QtWebEngine, QtMultimediaEngine, OpenSSL3, MIPS

CONCEPTUAL > Refactoring and unifying the Transports subsystem in the additional parameters management and expanding in using the connection time parameters for registering configuration parameters of external sources

CONCEPTUAL > Control for big memory consumption

CONCEPTUAL > Messages Translation (fixes of the conceptual changes of the previous updates)

OpenSCADA libraries and projects

API
!!!!:Changes:

Appends:

SYS

DAQ

Archives-History

Transports

Transport Protocols

User Interface

7.2 [01.01.7531/01.03.2023] ШЕСТОЕ обновление

Это обновление релиза 0.9 LTS исправляет около 70 ошибок и добавляет МНОЖЕСТВО улучшений с несколькими значительными-концептуальными, с которыми целиком можно ознакомиться в протоколе изменений обновления.

Automation Linux distributive of the project OpenSCADA

Main WWW-resources, documentation of the project and subprojects

New and significantly updated parts

(Productivity optimisation of the VCA interface, Unification the associated output transports to the input one AND the generic output transport connection, Messages Translation — fixes of the conceptual changes of the previous update)
(Unification the associated output transports to the input one AND the generic output transport connection)
(Unification the associated output transports to the input one AND the generic output transport connection)
(Productivity optimisation of the VCA interface)

CONCEPTUAL > Productivity optimisation of the VCA interface

CONCEPTUAL > Unification the associated output transports to the input one AND the generic output transport connection

CONCEPTUAL > Messages Translation (fixes of the conceptual changes of the previous update)

OpenSCADA libraries and projects

API
!!!!:Changes:

Appends:

SYS

DB

DAQ

Archives-History

Transports

Transport Protocols

User Interface

7.2.1 Service updates

7.3 [22.12.7529/22.02.2022] ПЯТОЕ обновление

Это обновление релиза 0.9 LTS исправляет около 50 ошибок и добавляет МНОЖЕСТВО улучшений с несколькими значительными-концептуальными, с которыми целиком можно ознакомиться в протоколе изменений обновления.

At.png Significant actions of the developer of the OpenSCADA modules on the update

=> obligatory revise of using the label functions since the compiler mayn't to say an error in functions like to printf(), TSYS::strMess() but that module will be crashed.

Automation Linux distributive of the project OpenSCADA

Main WWW-resources of the project — Site

New and significantly updated parts

(Common Conception of the Data Storage, Messages Translation, Message Sublevels {Main}[0...9] and Unification for the User Messages Transferring)
(Significant Unification the Common SQL-code in the OpenSCADA Core)
(redundancy and the messages transferring, asynchronous writing mode implementation)
(pointing the certificates and the key directly from an external file with the input transports restarting at it change)
(finishing of implementing the changes obtaining in the runtime mode by the clocking cycles through)
(early opening the restored and specified pages in the init procedure)

CONCEPTUAL > Common Conception of the Data Storage

CONFIGURATION FILE

REFACTORING THE TCntrNode FLAGS

CONCEPTUAL > Significant Unification the Common SQL-code in the OpenSCADA Core

CONCEPTUAL > Messages Translation
TFunction::IO object appended the flag IO::TransltText of marking the translate String IO directly:

Expanding by the language for the execution environment of the user functions of the OpenSCADA object, for functions like to strftime():

TUIS,UI.{QTCfg,Vision}: docGet() expanded by the language in the second line.
FIX: The "Translations" tab expansion and fixing for:

FIX: Expansion the Data Messages Translation in the tree modes: SINGLELANGUAGE, MULTILANGUAGE and MULTILANGUAGE-DYNAMIC:

PRIMARY PROJECT OBJECTS
INDIVIDUAL MESSAGES - "Trs"
SYSTEM MESSAGES

CONCEPTUAL > Message Sublevels {Main}[0...9] and Unification for the User Messages Transferring

OpenSCADA libraries and projects

API
!!!!:Changes:

Appends:

SYS

DB

DAQ

Transports

Transport Protocols

User Interface

7.3.1 Service updates

7.4 [14.04.7529/14.06.2021] ЧЕТВЁРТОЕ обновление

Это обновление релиза 0.9 LTS исправляет около 45 ошибок и добавляет некоторые улучшения, которые целиком вы можете почитать в протоколе изменений обновления.

Переведено в счёт пакета ТП Лаборатории Вакуумных Технологий

At.png Важные действия пользователя по обновлению

=> удалите вручную общее конфигурационное поле "WorkDir" если оно появилось там ошибочно и вы имеете проблемы использования каталогов чужих проектов этим проектом.

Новые и значительно обновленные части

(ревизия механизма переводов)
(дополнено реализацией сервиса Publish, поддержкой кусков (CHUNKS) на клиентской части Сбора Данных и общим пересмотром кода в этом процессе)
(общий пересмотр и переделка таблиц)
(общий пересмотр и переделка таблиц в Qt в целом и вида Таблица примитива FormEl СВУ)
(общий пересмотр и переделка таблиц вида Таблица примитива FormEl СВУ)

OpenSCADA библиотеки и проекты

API
!!!!:Изменения:

Дополнения:

Система

  • ограничения времени формирования таблицы в prmInterf_TM (7 секунд);
  • конфигурационного поля пропуска количества верхних сообщений;
  • установки перевода только для фильтрованных источников;
  • проверки содержимого на совпадение только для фильтрованных источников;
  • пропуск ошибок отсутствия источников.
  • Функция перевода TMess::translSet() предотвращена от распространения групповых сообщений, изменённых не из менеджера перевода.

Сбор Данных

КЛИЕНТ:
  • добавление атрибутов (элементов мониторинга) перенесено из attrPrc() непосредственно в enable() и которая запускается при запуске объекта контроллера
  • ... и обработка элементов улучшена обновлением описания, флагов и связывания;
  • сбор данных унифицирован обработкой в функции параметра upVal()
  • ... и запроса значений функцией объекта контроллера getValMIt() с поддержкой Массивов
  • ... чем вплотную подготовлено для встраивание логического типа параметров;
  • объекты параметров Сбора Данных автивированы для включения других параметров;
  • установка и удаление EVAL ко всем атрибутам проверено во всех режимах;
  • структурные переменные, в просмотрщике выбора DAQ-параметра, разрешены для выбора их элементов отдельно;
  • разбор перечня переменных DAQ-параметров установлен в полный разбор с пропуском пустых строк;
  • объект DAQ-контроллера дополнен закрытием сеанса и безопасного канала при его останове;
  • общий статус объекта контроллера дополнен детализированной информацией на предмет использованного канала безопасности, сеанса, подписки и обрабатываемыми элементами мониторинга;
  • блокирование запроса переименовано в resOPC.
СЕРВЕР:
  • объект OPC-UA Сервера дополнен вкладкой общего статуса сервера с информацией на предмет активности каналов безопасности;
  • объект Узла EndPoint дополнен общим статусом с информацией на предмет активности сеансов и подписок, а также периодичностью и временем исполнения задачи подписок.
БИБЛИОТЕКА:
  • унифицировано и определено типовое значение времени жизни канала безопасности, которое установлено в 300000 мс;
  • типовой LifeTimeCounter подписок установлен в 2400;
  • объект NodeId дополнен функцией прямого сравнения operator==();
  • функция XML_N::childClear() дополнена результатом возврата того самого объекта XML_N для объединения;
  • функция curTime() дополнена аргументом определения источника часов с использованием функции clock_gettime();
  • короткие функции дополнены str2int() и str2uint();
  • некоторые поля переименованы: publInterv в publInterval, cntrLifeTime в lifetimeCnt, cntrKeepAlive в maxKeepAliveCnt, maxNotPerPubl в maxNtfPerPubl, en в publEn;
  • исправление слова "POOL" на "POLL".
БИБЛИОТЕКА_КЛИЕНТ:
  • Client::reqService() дополнен мета-командой "CloseALL" закрытия текущего сеанса и каналу безопасности;
  • функция обработки клиентских сервисов protIO() адаптирована к работе в асинхронном режиме (не запрос);
  • функция Client::messIO() расширена аргументом таймаута с определением также режима запроса;
  • запись в канал и чтение из него отделено в обработке MSG пакетов;
  • адаптация сообщений безопасности к работе со смешанным входным буфером;
  • перенос основного сервисного запроса "OPN" под обработку сообщений из-за отправки обновлений в середине Publish активности.
  • реализован сервис Publish на стороне клиента:
  • объект "Client" дополнен реализацией подобъекта "Subscr" (но сохраняется в Client::SClntSess) с функциями: activate(), monitoredItemAdd() и monitoredItemDel();
  • объект "Client" дополнен функцией poll() с:
  • унификацией чтения значений в обоих режимах Read и Publish;
  • проверкой потери всех Publish запросов в течении OpcUa_ClntPublishResentCntr(2) попыток-времени сохранения живым;
  • восстановления пула Publish.
  • объект Client::Subscr::MonitItem добавлен как представитель элементов мониторинга с доступом из под общего блокирования клиентских ресурсов;
  • сервисные запросы дополнены реализацией, включая обработку ответов: CreateSubscription, DeleteSubscriptions, CreateMonitoredItems, Publish, Poll;
  • реализовано и проверено в поддержке безопасных политик по Publish;
  • целевой пул Publish запросов на подписку установлено в виртуальной функции publishReqsPool() с типовым значением 2.
  • дополнено реализацией кусков (CHUNKS) как в запросах, так и ответах;
  • целиком отревизировано и очищено общую функцию запроса reqService() от дубликатов аргументов и параметров:
  • дополнено восстановлением сеансов при переподключении канала безопасности;
  • унифицировано очистку текущего сеанса и канала безопасности.
  • объект клиента дополнен общим блокированием ресурсов mtxData;
  • свойство сообщения "timeoutHint" установлено в 0 для всех сообщений;
  • запрос Read возвращён к "плоскому" запросу с ограничением только в CHUNKS;
  • ошибка OpcUa_BadSecureChannelIdInvalid добавлена к очистке канала безопасности;
  • Client::SClntSess::{sessOpen,lstMessReq} переименован в {secChnlOpenTm,secLstMessReqTm}
  • ... и предотвращён от очистки и восстановления сеанса и канала безопасности;
  • дополнено отладочными сообщениями ошибок запросов.
БИБЛИОТЕКА_СЕРВЕР:
  • серверная часть адаптирована к работе с UAExpert 1.5 на предмет: установки атрибута AId_Descr DAQ-значения в тип OpcUa_LocalizedText, добавления декларации целочисленного типа OpcUa_IntAuto и OpcUa_UIntAuto;
  • обработка подписок возвращена к их обработке в отдельной задаче и функции subScrCycle() на предмет:
  • правильного расчёта всех таймаутов для выключения;
  • обработки периодичности подписки и публикации;
  • проверки состояния связанных сеансов и каналов безопасности на предмет закрытия подписок.
  • но публикация оставлена на обработку в активности входного канала и функции Server::EP::publishCall() с предотвращением обработки Publish для ошибочных и чужих Подписок, через проверку inPrtId, sesTokId и isSecCnlAct;
  • унификация Сеанса на предмет: связывания сеансов с каналами безопасности переключено на один вместо массива, проверку сеанса всех сообщений дополнено предотвращением использования чужих подключений;
  • не последние куски пакета переключены на отправку прямо, чтобы не добавлять к одному TCP-пакету;
  • EP::mtxData блокирование переключено в PTHREAD_MUTEX_RECURSIVE;
  • каналы безопасности ограничены колчеством OpcUa_SecCnlLimit(10) и очередь публикаций количеством OpcUa_ServerMaxPublishQueue(10);
  • EP::secSize() переименовано в EP::secN() и добавлено EP::sessN(), EP::subscrN() и chnlList();
  • Server.SecCnl.{TokenId,TokenIdPrev} переименовано в Server.SecCnl.{tokenId,tokenIdPrev}.

Архивы-История

Транспорты

Интерфейс Пользователя

  • QTStarter,QTCfg,Vision: Общий библиотечный класс TableDelegate значительным образом улучшено в работе на QTCfg и Vision:
  • дополнено собственными пользовательскими ролями SelectRole, TextLimRole и OneLineString;
  • отображение ячеек дополнено фоновым цветом через чтение-применение общих ролей;
  • числовые типы (целое и реальное) дополнены принудительным центрированием;
  • строковые типы дополнены опциями выравнивания и заворачивания слов с ролями Qt::TextAlignmentRole;
  • дополнено поддержкой визуального ограничения длинных текстов собственной ролью TextLimRole и типовое значение установлено в 300 символов через дополнительное переопределение sizeHint().
  • FIX: Вид "Таблица" примитива "FormEl":
  • VCAEngine,QTStarter,Vision,WebVision: Дополнено новым типом ячейки 't'-текст, в основном для возможности подтверждения редактирования типа 's'-строка нажатием Enter.
  • VCAEngine,Vision,WebVision: Дополнено опцией "prec" пространства колонки, строки и ячейки для контроля точности реальных значений; и реализацией атрибута "align" колонки и ячейки.
  • WebVision,Vision: Дополнено переключением таблиц в предотвращение двойному хранению исходного содержимого при его размере более чем 10000.
  • FIX:Vision: Использование общего делегата таблицы с возможностью многострочного редактирования.
  • Усовершенствовано отображение колонок, строк и ячеек при обновлении и в целом:
  • ограничением визуального размера содержимого ячейки 300 символами и высоты строк в 70% от общего размера таблицы;
  • более точным выравниванием ширины колонок;
  • подстройкой в режиме разработки, а также при видимости вертикального заголовка;
  • плотным заполнением таблицы через учёт размера видимой полосы вертикальной прокрутки;
  • подстройкой только после полного изменения размера таблицы, чем также допуская ручное изменение колонок и для предоставления такой-правильной подстройки всегда.
  • Реализовано "лёгкую" обработку изменения ширины и обновления:
  • "лёгкое" редактирование без переподстройки колонок при каждом обновлении, только при: появлении первой строки, изменения количества колонок и изменения заголовка колонки, изменении шрифта и изменении размера;
  • применение фиксированной ширины колонки и учёт высоты строк с ограничениями независимо от значения общего атрибута "colsWdthFit";
  • установка значения, раннее изменение размера и подстройка таблицы, перенесены в пространство наличия содержимого таблицы и после сортирования.
  • Функцию экспорта во время исполнения дополнено экспортом вида Таблица примитива "FormEl" в CSV.
  • WebVision:
  • Усовершенствовано отображение колонок, строк и ячеек при обновлении и в целом:
  • реализацией режима не подстройки (отсутствие атрибута "colsWdthFit"), с использованием режима автоматического размещения таблицы для вычисления фиксированной ширины и последующего переключения в фиксированный режим размещения таблицы;
  • многострочным редактированием текста ячеек в полную ширину и высоту ячейки, с применением редактирования по Ctrl+Enter;
  • вид строчных ячеек ограничен 300 символами;
  • отображение логических ячеек изображением состояния TRUE;
  • ячейки таблицы, в режиме редактирования, разрешены к вызову контекстного меню системы-браузера.
  • Реализовано "лёгкую" обработку изменения ширины и обновления:
  • обнаружение изменения таблицы и обновление переключено в режим не сохранения исходного содержимого дважды;
  • предотвращено от полного обновления при модификации атрибута "value".
  • Дополнено поддержкой сортировки по колонкам. Установка в сортировку по первой видимой колонке при включении сортировки.
  • WebCfgD: Расширение таблицы на предмет:
  • большое видимое содержимое текста ограничено 300 символами;
  • строковый тип разрешён для многострочного редактирования используя TEXTAREA;
  • тип данных "bool" отображено изображением, не "On" или "Off";
  • центрирование содержимого логического, чисел, времени и выбора;
  • упрощение редактирования содержимого таблицы для типов время, число и строка, путём удаления кнопок применения и прокручивания.
  • Дополнено, и включено как опция сборки, на предмет механизма маркирования изменения атрибутов без дубликатов, путём запроса предыдущих-завершенных циклов, чем также предотвращая необходимости выявления дубликатов в визуализаторах и сохранению большого исходного содержимого.
  • Исполнение проектов улучшено при смене родителя обрабатываемых страниц на лету.
  • Исполнение задач сеансов дополнено ранним исполнением, при наличии событий.
  • FIX: СВУ-стили исправлены при доступе к пустым полям, которые не загружаются.
  • Страницу "Диагностика" СВУ-проектов адаптировано к отображению сообщений уровня отладки при включении отладки.
  • Информацию исполнения сеанса проекта дополнено реальной периодичностью, полученной из задачи, которую также использовано при формировании значения атрибута "f_frq" процедуры.
  • Клавиатурный фокус и события значительным образом усовершенствованы на предмет гарантии работы этого в целом через:
  • установку атрибута "tabindex" для всех активных виджетов и специфично для FormEl — непосредственно в элементы формы;
  • дополнения вычислением числа "tabindex" как уникальный для целого интерфейса, чем предотвращая скачки фокуса;
  • обработки события onfocus на предмет установки собственного фокуса в setFocus();
  • вид Кнопка примитива FormEl дополнен обработкой клавиатурных событий нажатия и отпускания по клавишам Space и Enter;
  • примитив Диаграмма упрощён путём удаления лишнего элемента тега A;
  • FIX: Исправлено переключение фокуса при клацанье на кнопках с изображениями.
  • FIX: Исправлено проверку удаленных виджетов для всех и главной страницы.
  • FIX: Исправлено наконец размножение лишних DIV элементов при смене страницы в контейнере страниц.
  • FIX: Предотвращение зацикливанию при наличии Web-сеанса, но отсутствии соответствующего СВУ-сеанса.
  • переноса всех действий внутренних инструментов на реализацию кнопками и размер панели инструментов установлен с 25 в 30 пикселей;
  • удаления фильтрации-изменения размера изображений кнопок инструментов на стороне сервера;
  • установки расстояния между иконкой страницы и заголовком в 10 пикселей;
  • полного обновления контролированной страницы после смены размера окна;
  • расширения поля общего редактирования текста TEXTAREA применением и отменой из клавиатуры;
  • привязки функции обновления хостов к двойному клацанью мышей на общем пространстве области дерева;
  • FIX: исправления функции обновления хостов на предмет выявления элементов дублированных хостов;
  • FIX: принудительного обозначения актуальных-выбранных элементов в дереве контроля после его разворачивания;
  • удаления nodeText() и setNodeText() путём непосредственного использования "innerText" и "textContent".

7.4.1 Сервисные обновления

7.5 [20.10.7528/20.12.2020] ТРЕТЬЕ обновление

Это обновление релиза 0.9 LTS исправляет около 40 ошибок и добавляет некоторые улучшения, которые целиком вы можете почитать в протоколе изменений обновления.

Linux Дистрибутив Автоматизации проекта OpenSCADA

OpenSCADA библиотеки и проекты

API
!!!!:Изменения:

Дополнение:

Система

Сбор Данных

Архивы-История

Транспорты

Транспортные Протоколы

Интерфейс Пользователя

7.5.1 Сервисные обновления

7.6 [17.06.7528/17.08.2020] ВТОРОЕ обновление

Это обновление релиза 0.9 LTS исправляет около 60 ошибок и добавляет некоторые улучшения, которые целиком вы можете почитать в протоколе изменений обновления.

Linux Дистрибутив Автоматизации проекта OpenSCADA

OpenSCADA библиотеки и проекты

API
!!!!:Изменения:

Дополнения:

SYS

БД

Сбор Данных

Транспорты

Транспортные Протоколы

Интерфейс Пользователя

7.6.1 Сервисные обновления

7.7 [08.02.7528/08.04.2020] ПЕРВОЕ обновление

Обновление осуществлено после 1.5 года от релиза 0.9 LTS, соответственно оно стоит 10 обновлений, поскольку им исправлено более 250 ошибок и добавлено множество усовершенствований, которые целиком вы можете почитать в протоколе изменений обновления.

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

7.7.1 OpenSCADA библиотеки и проекты

7.7.2 API

!!!!:Изменения:

Дополнения:

7.7.3 Система

7.7.4 БД

7.7.5 Сбор Данных

7.7.6 Архивы-История

7.7.7 Транспорты

7.7.8 Транспортные Протоколы

7.7.9 Интерфейс Пользователя

7.7.10 Специальные

7.7.11 Сервисные обновления

8 Ссылки

Documents/Release_0.9/ru - GFDLMarch 2024OpenSCADA 0.9.7