From OpenSCADAWiki
Jump to: navigation, search
(Updating to match new version of source page)
 
Line 71: Line 71:
 
* SelfSystem: Добавлено принудительное обновление аутентификации по атрибуту "rqAuthForce". Добавлено перенаправление запросов хостов по атрибуту "reforwardHost", во входной части.
 
* SelfSystem: Добавлено принудительное обновление аутентификации по атрибуту "rqAuthForce". Добавлено перенаправление запросов хостов по атрибуту "reforwardHost", во входной части.
  
{{CntHdr|UI}}
+
{{CntHdr|Интерфейс Пользователя}}
* VCAEngine,Vision: Logical groups separator of Widget's attributes is changed from ":" to ": " everywhere, mostly for allow the user attribute value's items separation and description it with the symbol ":". To view "Table" of the primitive FormEl into root tag "tbl" added attribute "sortEn" to direct sorting by columns and header's item option "sort" for point to initiate sorting column.
+
* VCAEngine,Vision: Разделитель логических групп атрибутов виджетов везде изменено с ":" на ": ", в основном для возможности описания формата значения пользовательских атрибутов с типовым символом разделителя ":". В виде "Таблица" примитива FormEl к корневому тегу "tbl" добавлено атрибут "sortEn" с целью прямой сортировки по колонкам и параметр элемента заголовка "sort" для указания на колонку для сортировки при инициализации.
* FIX:Vision,WebVision: Mode "XY" of the primitive "Diagram" fixed for build by sorting by 'X' disable, only the hierarchical order. For primitive "Diagram" to data block "<nowiki>data:<dt/></nowiki>" option "Approximation (aprox)" is added.
+
* FIX:Vision,WebVision: Режим "XY" примитива "Диаграмма" исправлено на предмет выключения построения по сортированным данным по 'X', только согласно иерархической последовательности. Для примитива "Диаграмма" к блоку данных "<nowiki>data:<dt/></nowiki>" добавлено параметр "Aproximation (aprox)".
* FIX:UI.QTCfg: External host's status processing mostly improved and fixed. FIX: Timeouts of external host are set configurable by the option "TmConChk". FIX: The options StartUser and StartPath are moved under a resource allocation by the type MtxString.
+
* FIX:UI.QTCfg: Обработку статусов внешних хостов значительно улучшено и исправлено. FIX: Таймауты внешних хостов сделаны конфигурабильными, посредством параметра "TmConChk". FIX: Параметры StartUser и StartPath перенесено под захват ресурса типа MtxString.
* FIX:VCAEngine: The function's resources locking is added for SesPage::setEnable().
+
* FIX:VCAEngine: Добавлено захват функционального ресурса в SesPage::setEnable().
** FIX: setNoTransl() at the attributes loading disabled by some problematic and no a sene.
+
** FIX: setNoTransl() выключено в загрузке атрибутов, в связи с некоторой проблемностью и отсутствия смысла.
** Force inheritance of links types is added, independent from the attribute local modification.
+
** Добавлено принудительное наследование типов связей, независимо от локального изменения этих атрибутов.
** To project objects were added a property "EnableByNeed" to control the projects ready after start and prevent long connection by the deferred enabling.
+
** К объекту проекта добавлено свойство "EnableByNeed", для контроля за готовностью этого проекта после старта и предотвращения продолжительного подключения через отложенное включение.
** Try to enable for disabled pages, at an alarm set action, is prevented by some strange crash here observed, only into LTS.
+
** Предотвращено попытку включения отключенной страницы во время установки нарушения, ввиду наблюдения странных падений тут, только в LTS.
** The runtime note messages are added: "User is changed to ...", "User is connected ...", "User is disconnected ...".
+
** Добавлено сообщения уведомления времени исполнения: "Пользователь изменён на ...", "Пользователь подключен ...", "Пользователь отключен ...".
 
* FIX:Vision:
 
* FIX:Vision:
** FIX: Too important fixes made in way of adapting to stable work with remote VCA servers:
+
** FIX: Осуществлены очень важные исправления на предмет адаптации к стабильной работе с серверами СВК:
*** The module's attributes VCAStation, UserStart, UserPass and UserStBar::{user,pass,VCAStation} were moved under resources locking by the MtxString.
+
*** Атрибуты модуля VCAStation, UserStart, UserPass и UserStBar::{user,pass,VCAStation} перенесено под захват ресурса типа MtxString.
*** To both runtime and development parts were added an initial connection with the restore connection timeout, for allow to load the VCA-server resources.
+
*** К обоим частям, исполнения и разработке, добавлено инициирующее подключение с временем таймаута восстановления подключения, с целью обеспечить загрузку ресурсов сервера СВК.
*** Processing of the information dialog about a connection lost was moved to a single request (and thread) from updatePage().
+
*** Обработку информационного диалога про потерю подключения было перенесено к одному запросу (и потоку) из updatePage().
** FIX: View "Table" of the primitive "FormEl" significant expanded by: global table's attributes: "hHdrVis", "vHdrVis"; row attributes "colorText", "font"; column attributes "color", "colorText", "font".
+
** FIX: Вид "Таблица" примитива "FormEl" значительным образом расширен: глобальными атрибутами таблицы: "hHdrVis", "vHdrVis"; атрибутами строки "colorText", "font"; атрибутами колонки "color", "colorText", "font".
** FIX:Included to container's pages align processing rewrote to trace on the widget's geometry update and to the misaligned scroll-bars appearing sometime prevent.
+
** FIX: Выравнивание страниц, вложенных в контейнер, переписано на предмет отслеживания обновления геометрии виджета и предотвращения появления полос прокрутки в случае несоответствующего выравнивания.
** FIX: The palette restoring to visibleCheck function is added for prevent FormEl's artifacts at last.
+
** FIX: Добавлено восстановление палитры к функции visibleCheck для предотвращения артефактов в примитиве FormEl, в конце концов.
** FIX: Mouse events at all enabled for "FormEl" primitive and some artifications like ticks lost into Slider fixed.
+
** FIX: Сообщения мыши в целом включены для примитива "FormEl" и исправлено некоторые артефакты вроде потери рисок в слайдере.
** FIX: Context menu problem for views List, Tree and Table of the primitive FormEl is fixed.
+
** FIX: Исправлены проблемы контекстного меню для видов "Список", "Дерево" и "Таблица" примитива "FormEl".
** Requests to an external host moved to using cntrIfCmd().
+
** Запросы к внешним хостам перенесены на использование cntrIfCmd().
** Remote authentication moved to allow use the host authentication by default and the same connection for check it.
+
** Удалённую аутентификацию расширено на использование аутентификации хоста, по умолчанию, и самого подключения для её проверки.
** Timeout of tries of restoring connection to a remote station set to progressive up to the pointed one and the error message display after the timeout value in 3 seconds.
+
** Таймаут попыток восстановления подключения к удалённой станции сделано прогрессивным, до указанного значения, и отображение сообщения ошибок осуществляется после значения таймаута в три секунды.
  
 
{{CntHdr|Специальный}}
 
{{CntHdr|Специальный}}
 
* SystemTests: Тесты БД расширены тестом сканирования.
 
* SystemTests: Тесты БД расширены тестом сканирования.

Latest revision as of 10:43, 25 April 2020

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

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

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

  • SYS,Transport,DAQ.DAQGate,UI.{QTCfg,Vision,WebCfgD}: Имплементация поднятия внешних хостов расширением функции extHostList(), перенаправлением запросов функцией cntrIfCmd() и входной частью собственного протокола системы. *: pthread_mutex, MtxAlloc и MtxString перенесено на объект обёртки мютексов ResMtx.
  • DAQ: API функций tplE(), tplIOE(), errE() переименовано в elTmpl(), elTmplIO(), elErr().
  • Archive: m_start, run_st, m_db переименовано в mStart, runSt, mDB.

Дополнение:

  • SYS: Объект блокирования RW ресурсов расширено функциями (синонимами) lock(), tryLock() и unlock().
    • Добавлено дополнительный макрос контроля времени FTM2.
    • TFunction: Добавлено виртуальные функции prog() и setProg() для контроля через абстрактный объект.
    • Расширено функцию API пользователя SYS.sleep() для принятия первого аргумента времени в секундах как вещественного и возможности установки его значения вплоть до наносекунд.
  • DB: К БД добавлено захват ресурса таблиц TBD::resTbls.
  • DAQ.BlockCalc: К блокам добавлено функции API пользователя cntr(), cfg(), cfgSet().
  • Archive: messPut(), messGet() и такие-же функции API пользователя расширены аргументами "arch" для возможности прямого определения опрашиваемых архиваторов.
    • Функцию API пользователя messGet() расширено аргументом "upTo", для прямого контроля этого таймаута.
    • К функции запроса сообщений добавлено результат, как время остановки обработки. Значительным образом для возможности продолжения от позиции после прерванного по таймауту продолжительного запроса.
    • Добавлено глобальный параметр архивации значений для принуждения времени полученных значений к текущему, вместо времени источника.
    • К объекту архива значений добавлено параметр заполнения проходных значений предыдущим.
  • Transport: К выходному транспорту добавлено время запуска-подключения.
  • UI.VCAEngine: К виджету времени исполнения добавлено функции API пользователя mess{Debug,Info,Note,Warning,Err,Crit,Alert,Emerg}() к которым включено время этого виджета как категорию.
  • Special.FLibSYS: Функции времени дополнены функцией tmSleep() для предоставления быстрого доступа к короткому сну.

SYS

  • Версия библиотеки ядра поднята до 2.4. DB,DAQ,Archive,Transport: Версия типа подсистем поднята до 8.
  • TCntrNode: Предотвращено освобождение заблокированных узлов и подключение к отключенным путём соответствующего блокирования ресурса "mUse".
  • {DAQ,Transport}.*: Диапазон приоритетов задач расширен до 199 где 100-199 использовано для политики планирования задач SCHED_FIFO.
  • Системные конфигурационные поля "workdir", "moddir", "icodir" установлены в только для чтения, в интерфейсе конфигурации, значительным образом для предотвращения ошибочных изменений и возможности их изменения только путём редактирования конфигурационного файла.
  • Security: Адаптировано для предотвращения сохранения паролей в открытом виде вместо чего хранится их хеш, для: OpenSCADA хоста (Transports), Protocol.SelfSystem, UI.Vision. Использование crypt_r() включено только для "__USE_GNU" иначе пароли будут сохраняться в открытом виде.
  • data/debian: Сервисный скрипт openscada.init перенесен в отдельный пакет openscada-server.

БД

  • Все модули БД переписаны для открытия таблиц без исключений в конструкторе.
  • FIX:MySQL,SQLite,PostgreSQL: Предотвращено нарушение последовательности запросов "BEGIN;" и "COMMIT;" под большой конкурентной активностью доступа.
  • FIX:DB.PostgreSQL: Исправлено на предмет кодирования символов "'" '"' путём замены методом дублирования. FIX: Исправлено зацикливание после неудачной коррекции структуры таблицы.

Сбор данных

  • Функцию пользовательского API funcCall() значительным образом расширено на предмет фиксации её результирующей функции для повторного использования и, как следствие, значительного повышения производительности.
  • *,LogicLev,ModBus: Добавлено DAQ резервирование динамических атрибутов.
  • ModBus,Siemens,DCON: Пропуск реальных запросов на первой и последней итерациях, только исполнение процедур.
  • FIX:OPC_UA: Модуль для клиента переименовано в "Клиент OPC-UA" и для сервера в "Сервер OPC-UA".
    • Protocol: Разрешена работа в режиме опроса входного транспорта и включена по умолчанию. Сервис "Publish" теперь доступный в LTS!
    • FIX:libOPC_UA: Исправлено контроль номера последовательности пакетов, для серверной части, путём отделения от этого значения входных пакетов.
      • FIX: Управление номером последовательности клиентской части также унифицировано и исправлено на предмет предотвращения повтора этого значения.
      • Добавлено раннюю обработку подтверждений (Acknowledgements) в запросе "Publish".
      • Выключено метку времени (TimeStamps) в клиентском запросе "Write", поскольку некоторые клиенты отвечают 0x80730000 (OpcUa_BadWriteNotSupported).
      • Удачная адаптация к работе с UAExpert 1.4.
  • JavaLikeCalc: Добавлена поддержка определения и вызова вложенных функций. Операции "||" и "&&" формально установлены в одинаковый приоритет. Проверку на предмет ВВ перенесено перед константами для возможности их переопределения. Добавлено постоянную "EVAL", как синоним к EVAL_REAL.
  • FIX:Siemens: Исправлено проблему падения во время большого и частого взаимодействия, замену фрагмента (с помощью "assign") везде заменено на "replace". FIX:LibnoDave: gethostbyname() заменено на её потоко-независимый вариант.
  • BlockCalc: Добавлено в обработку блоком специальный атрибут "this".

Архив

  • messPut() расширен для независимой записи в таблицу нарушений.
  • DBArch,FSArch: Разрешен запрос сообщений для одинакового времени начала и конца.
  • FIX:FSArch: Добавлена проверка и предотвращение дубликатам с равным временем, категорией, уровнем (в случае параметра "prevDblTmCatLev").
    • Расширено на предмет ранней проверки лимитов и этой проверки при ошибках распаковывания, для предотвращения таким образом переполнения хранилищ с плотным ограничением и малым размером.
    • В целом исправлено проверку дубликатов. Время в кеше сменено с time_t на int64_t (в микросекундах).
    • Получение из XML сделано несколько оптимальнее. Получение из "plain" разрешено для сообщений с временем которое равняется концу.
  • FIX:DBArch: Алгоритм получения сообщений переписан для запроса минутами.
    • Структуру таблицы значений и сообщений установлено адаптивной и перенесено в объекты TMArchivator и ModVArchEl.
    • Добавлено новую опцию архиватора сообщений: "Сохранять время как чистое целое".
    • "Размер архива (дней)" для значений и сообщений адаптировано для установки в ноль (<0.1) и выключения таким образом этого ограничения в целом.
    • Исключено закрытие использованной таблицы после любого запроса размещения.

Транспорт

  • FIX:SSL,Sockets: gethostbyname() и getservbyname() заменены на их многопоточные варианты.
  • FIX:Serial,Sockets: На время чтения результата, выходного транспорта, добавлено ожидание данных в случае нуля и/или ошибки EAGAIN. FIX: Исправлено ошибки записи выходного транспорта. Возможные ошибки чтения после ошибочного прерывания select(), с признаком что некоторые данные присутствуют (иногда происходит), унифицировано и лучше настроено под разные режимы запроса и режимы не запроса выходного транспорта.

Протокол

  • SelfSystem: Добавлено принудительное обновление аутентификации по атрибуту "rqAuthForce". Добавлено перенаправление запросов хостов по атрибуту "reforwardHost", во входной части.

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

  • VCAEngine,Vision: Разделитель логических групп атрибутов виджетов везде изменено с ":" на ": ", в основном для возможности описания формата значения пользовательских атрибутов с типовым символом разделителя ":". В виде "Таблица" примитива FormEl к корневому тегу "tbl" добавлено атрибут "sortEn" с целью прямой сортировки по колонкам и параметр элемента заголовка "sort" для указания на колонку для сортировки при инициализации.
  • FIX:Vision,WebVision: Режим "XY" примитива "Диаграмма" исправлено на предмет выключения построения по сортированным данным по 'X', только согласно иерархической последовательности. Для примитива "Диаграмма" к блоку данных "data:<dt/>" добавлено параметр "Aproximation (aprox)".
  • FIX:UI.QTCfg: Обработку статусов внешних хостов значительно улучшено и исправлено. FIX: Таймауты внешних хостов сделаны конфигурабильными, посредством параметра "TmConChk". FIX: Параметры StartUser и StartPath перенесено под захват ресурса типа MtxString.
  • FIX:VCAEngine: Добавлено захват функционального ресурса в SesPage::setEnable().
    • FIX: setNoTransl() выключено в загрузке атрибутов, в связи с некоторой проблемностью и отсутствия смысла.
    • Добавлено принудительное наследование типов связей, независимо от локального изменения этих атрибутов.
    • К объекту проекта добавлено свойство "EnableByNeed", для контроля за готовностью этого проекта после старта и предотвращения продолжительного подключения через отложенное включение.
    • Предотвращено попытку включения отключенной страницы во время установки нарушения, ввиду наблюдения странных падений тут, только в LTS.
    • Добавлено сообщения уведомления времени исполнения: "Пользователь изменён на ...", "Пользователь подключен ...", "Пользователь отключен ...".
  • FIX:Vision:
    • FIX: Осуществлены очень важные исправления на предмет адаптации к стабильной работе с серверами СВК:
      • Атрибуты модуля VCAStation, UserStart, UserPass и UserStBar::{user,pass,VCAStation} перенесено под захват ресурса типа MtxString.
      • К обоим частям, исполнения и разработке, добавлено инициирующее подключение с временем таймаута восстановления подключения, с целью обеспечить загрузку ресурсов сервера СВК.
      • Обработку информационного диалога про потерю подключения было перенесено к одному запросу (и потоку) из updatePage().
    • FIX: Вид "Таблица" примитива "FormEl" значительным образом расширен: глобальными атрибутами таблицы: "hHdrVis", "vHdrVis"; атрибутами строки "colorText", "font"; атрибутами колонки "color", "colorText", "font".
    • FIX: Выравнивание страниц, вложенных в контейнер, переписано на предмет отслеживания обновления геометрии виджета и предотвращения появления полос прокрутки в случае несоответствующего выравнивания.
    • FIX: Добавлено восстановление палитры к функции visibleCheck для предотвращения артефактов в примитиве FormEl, в конце концов.
    • FIX: Сообщения мыши в целом включены для примитива "FormEl" и исправлено некоторые артефакты вроде потери рисок в слайдере.
    • FIX: Исправлены проблемы контекстного меню для видов "Список", "Дерево" и "Таблица" примитива "FormEl".
    • Запросы к внешним хостам перенесены на использование cntrIfCmd().
    • Удалённую аутентификацию расширено на использование аутентификации хоста, по умолчанию, и самого подключения для её проверки.
    • Таймаут попыток восстановления подключения к удалённой станции сделано прогрессивным, до указанного значения, и отображение сообщения ошибок осуществляется после значения таймаута в три секунды.

Специальный

  • SystemTests: Тесты БД расширены тестом сканирования.