From OpenSCADAWiki
< Documents | Release 0.8.0
Revision as of 10:40, 25 April 2020 by FuzzyBot (Talk | contribs) (Updating to match new version of source page)
Это обновление релиза 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", во входной части.
UI
- 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.
- 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 "data:<dt/>" option "Approximation (aprox)" is added.
- 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:VCAEngine: The function's resources locking is added for SesPage::setEnable().
- FIX: setNoTransl() at the attributes loading disabled by some problematic and no a sene.
- 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.
- Try to enable for disabled pages, at an alarm set action, is prevented by some strange crash here observed, only into LTS.
- The runtime note messages are added: "User is changed to ...", "User is connected ...", "User is disconnected ...".
- FIX:Vision:
- FIX: Too important fixes made in way of adapting to stable work with remote VCA servers:
- The module's attributes VCAStation, UserStart, UserPass and UserStBar::{user,pass,VCAStation} were moved under resources locking by the 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().
- 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: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: The palette restoring to visibleCheck function is added for prevent FormEl's artifacts at last.
- FIX: Mouse events at all enabled for "FormEl" primitive and some artifications like ticks lost into Slider fixed.
- FIX: Context menu problem for views List, Tree and Table of the primitive FormEl is fixed.
- Requests to an external host moved to using 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.
- FIX: Too important fixes made in way of adapting to stable work with remote VCA servers:
Специальный
- SystemTests: Тесты БД расширены тестом сканирования.