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: Тести БД розширено тестом сканування.