- Стан: тестування та після-складання ...
Загальний процес випуску користувачам для оцінки ваших очікувань та розробникам для нагадування завдань:
1. Тиждень приготування та складання:
- Складання останньої Робочої (Work) SVN-ревізії для всіх оточень нерегулярного складання щоб забезпечити ранне та широке тестування прийдешнього LTS релізу.
- Анонс початку процесу випуску:
- створення нової сторінки релізу або сторінки оновлення на Wiki;
- створення нової новини-сторінки на сайті OpenSCADA.
- Злиття змін Робочої (Work) версії або копіювання цілком дерева Робочої гілки до LTS гілки-дерева.
- Внесення деяких змін, специфічних до LTS, стосовно підняття версії:
- оновлення configure.ac щодо версії випуску-оновлення та бібліотеки ядра;
- оновлення data/*.spec та data/{debian,debian_mod}/changelog стосовно нового номеру версії та доповнення протоколу змін файлів новими записами випуску-оновлення.
- Формування-доповнення ПротоколуЗмін LTS змінами з ПротоколуЗмін Work, групуючи зміни за розташуванням та сортуючи їх за станом виправлення та рівнем, із комбінування нових можливостей у одному елементі та без видалення будь-яких відмінних змін.
- Копіювання значних змін із сформованого ПротоколуЗмін LTS до відповідної сторінки релізу-оновлення, беручи зміни за рівнем більш або рівні "!!".
- Переклад сторінки(ок) релізу-оновлення, оновлення "Завдання (ToDo)" та "Дорожньої карти (RoadMap)".
- Генерація актуальної позамережевої документації, використовуючи сервісну процедуру "EXT: Off-line documentation".
- Застосування-вивантаження змін LTS дерева до репозиторію та складання цього.
2. Тиждень(і) тестування та після-складання:
- Оновлення сторінки Завантаження.
- Анонсування релізу-оновлення, також на FaceBook і LinkedIn.
- Гаряче тестування збірок релізу.
- Завершення та виправлення перекладу ПротоколуЗмін та документації.
- Генерація актуальної позамережевої документації використовуючи сервісну процедуру "EXT: Off-line documentation".
- Застосування-вивантаження виправлень релізу до репозиторію та складання цього щодо другої збірки, і для кожного тижня виправлення критичних помилок — перший тиждень без критичних виправлень означатиме завершення випуску LTS, тож, КОРИСТУВАЧІ — тестуйте ретельно LTS реліз щоб потім не скаржитись на його кінцеву збірку!
- Оновлення бінарних копій стандартних бібліотек OpenSCADA: OscadaLibs.db, VcaBase.db, VcaElectroEls.db.
Це оновлення релізу 0.9 LTS виправляє біля 70 помилок і додає деякі удосконалення, які цілком ви можете почитати у протоколі змін оновлення.
Linux Дистрибутив Автоматизації проєкту OpenSCADA
- адаптація до роботи серверу хостингу під постійною DDoS у ~3 мільйони унікальних IP і за короткого часу від енергомережі шляхом економії батарей, і під контролем OpenSCADA;
- додання Debian 13 у якості бази дистрибутиву;
- переведення назад до серверу OpenSCADA складання бази Debian 9;
- переведення складання бази Debian 12,11,10 у оточення Debian 13 із увімкненням назад підтримки тут SHA-1;
- перемикання концепції складання на використання sshfs у віддаленій роботі із репозиторіями;
- оновлення TDE до 14.1.4 і потім до 14.1.5;
- TDE > tdebase-trinity: KDesktop > Lock: Відновлення коду блокування до відповідного у версії 14.1.4 із розширенням на сам діалог блокування.
- TDE > tdepim-trinity > holiday_ua > HoliDays: Заміна актуальними святковими днями і днями пам'яті України.
- TDE > kaffeine-trinity > xine-part: Додання перекладу повідомлення "Неможливо отримати зображення!" українською.
- TDE > tde-i18n-trinity > uk: Додання перекладу повідомлень до латаних пакетів в українській частині.
- TDE > tdebase-trinity: Запобігання-придушення дублювання іконок у системному лотку для програм із однаковим ІД на кшталт blueman із опцією вимкнення цієї функції, з виправленням використання readBoolEntry().
- TDE > tqt3-trinity > Plugins > XIM: Виклики XCloseIM() для запобігання течі пам'яті.
- TDE > tdelibs-trinity > TDEIO > KFileView: Опрацювання розширень файлів за шаблонами при збережені і без скидання розміру діалогу.
- TDE > kaffeine-trinity > xine-part: Дозвіл копії екрану у будь якому підтримуваному форматі файлу-зображення.
- TDE > tdesvn-trinity: Виправлення вирішення конфліктів у KDiff3, запобігання аварійним завершенням при вирішенні конфліктів, оновлення предку зміненого елементу із усіма розширеннями.
- TDE > tdebase-trinity > TDEIO > media: Відновлення використання fuser.
- TDE > tdebase-trinity > ksysguard: Видалення обмеження навантаження процесу у 100%.
- TDE > tdelibs-trinity > TDEIO > CopyJob: Не перейменовувати теки і перезапис файлів старих, менших і відмінного розміру.
- TDE > tdebase-trinity > TDEIO > SMB: Запобігання дублюванню генерації сигналу result() через помилки.
- TDE > tdepim-trinity > knote: Додання пошуку лише локально за обраною нотаткою.
- TDE > tdelibs-trinity: Повне вимкнення опрацювання некласифікованих пристроїв через високе навантаження ЦП, особливо на повільному обладнані.
Нові та значно оновлені частини
- Ядро OpenSCADA:: 3:15:0 => 3:16:0
- (Реалізація ініціативних підключень — виправлення і розширення концептуальних змін попередніх оновлень, Переклад Повідомлень — виправлення концептуальних змін попередніх оновлень)
- Підсистеми "Збір Даних" OpenSCADA: 15 => 16
- DAQ.Siemens: 4.5 => 4.8
- (Загальна стабілізація ISO_TCP підключення, Пряме отримання і встановлення значення за специфічною до джерела адресою, Збереження значень користувацьких динамічних атрибутів)
- DAQ.System: 3.3 => 3.5
- DAQ.LogicLev: 2.9 => 2.11
- (Покращення режиму віддзеркалення параметру, Збереження значень користувацьких динамічних атрибутів)
- DAQ.OPC_UA: 2.8 => 2.10
- (Пряме отримання і встановлення значення за специфічною до джерела адресою, Збереження значень користувацьких динамічних атрибутів)
- DAQ.ModBus: 3.9 => 3.11
- (Пряме отримання і встановлення значення за специфічною до джерела адресою, Збереження значень користувацьких динамічних атрибутів)
- DAQ.DAQGate: 2.14 => 2.15
- Protocol.HTTP: 3.9 => 3.11
- UI.WebCfgD: 2.8 => 3.0
- UI.VCAEngine: 7.17 => 7.19
- UI.WebVision: 6.13 => 6.15
- UI.QTStarter: 6.0 => 6.1
- LibsDB.OscadaLibs:
- base.UPS: 1.3 => 2.2
- base.DiskSMART: 1.0 => 1.1
- mbBase: 1.3 => 1.5
- LowDevLib.IEC62056: 1.1 => 2.0
- LibsDB.vcaBase.Main:
- dynFrame: (скоро буде)
- storeHouse: 2.1 => 2.3
- TextLab: 1.2 => 1.3
- ImgLab: 1.2 => 1.3
- cntrPaspExt: 1.2 => 1.3
КОНЦЕПТУАЛЬНЕ > Концентрація різних OpenSCADA хостів на загальному сервері, як для ІнтернетРечей (IoT) на OpenSCADA, так і іншого (виправлення концептуальних змін попередніх оновлень)
- LibsDB.vcaBase.wlb_Main.dynFrame: Просування реалізації цього кадру до можливості реального розташування елементів, зв'язування, загального контролю, збереження і відновлення.
- LibsDB.OscadaLibs:
- FIX:tmplib_base.initRemCntr: Виправлення збереження таблиці віддалених вузлів OpenSCADA після видалення старих.
- Додання прямого звільнення даних запитів.
- Ключ змінено на примусові два символи у HEX.
- Дозволено оновлення об'єктів віддалених логічних джерел щодо нових джерел.
- Захисний час виконання збільшено до 60 секунд.
- Security_user,Transport_in.{Sockets,SSL}::RemCntr: Додання детального опису цілі об'єктів і використання.
- FIX:tmplib_base.initRemCntr: Виправлення збереження таблиці віддалених вузлів OpenSCADA після видалення старих.
- data/{oscada_plc.xml,oscada_server.xml}: Спрощення назв станцій для коротких віддалених ідентифікаторів.
КОНЦЕПТУАЛЬНЕ > Переклад Повідомлень (виправлення концептуальних змін попередніх оновлень)
- LibsDB.vcaBase:
- FIX:wlb_Main.ElViewGraph: Атрибут "Одиниця виміру (ed)" встановлено у тип "Рядок (переклад)" для відновлення транзитивного перекладу повідомлень Джерел Даних за посиланнями у режимі ДИНАМІЧНИЙ-БАГАТОМОВНИЙ.
- FIX:DAQ.TDAQS,Archive.TArchives: Виправлення динамічного перекладу назв резервованих об'єктів.
- FIX:SYS,DAQ.{.,JavaLikeCalc}: TFunction::IO: Виправлення-завершення перекладу типових значень у конструкторі і для DAQ-Шаблонів із їх реалізаціями.
- FIX:SYS.TMess: Додання опрацювання передзбережених I18N повідомлень у довгому варіанті TMess::translGet(), який викликається із objFuncCall(), замість втрати перекладу тут.
- FIX:DB: Запобігання попередженню "Деякі повідомлення цілком очищено для бази ..." для елементів без полів перекладу.
- FIX:UI.VCAEngine: Конфігураційне значення виправлено щодо перекладу у вкладці "Зв'язки" і опрацювання поля перекладу для значень із префіксом "val:" та переключення на нього.
OpenSCADA бібліотеки і проєкти
- LibsDB.OscadaLibs:
- FIX:{tmplib_base,tmplib_DevLib}.UPS: Виправлення запису до атрибутів, доступних до запису.
- tmplib_base:
- digAlarm,anUnif,anUnifSt,codeState: Вхідну процедуру опрацювання доповнено параметром "args", як посилання на аргументи основної процедури.
- UPS: Розширення прямою реалізацією пристроїв у цьому шаблоні починаючи із Must EP2X. Додання передачі атрибутів у параметри на основі цього шаблону із їх визначенням у новому атрибуті "Визначення елементів (defs)". Додання функції alarm() для правильного контролю границь із гістерезисом.
- FIX:manInUnif: Запобігання встановленню збереженого значення при запуску, перезаписуючи актуальне, також для сигналів поза шкали.
- FIX:DiskSMART: Додання вхідної процедури обробки для опрацювання специфічних полів і додання нових похідних полів. Поле "Визначення елементів" доповнено типовим переліком специфічної інтерпретації SMART полів. Вдосконалення деяких оригінальних повідомлень.
- anUnif: Аварійне повідомлення перевищення границі сигналом доповнено цим помилковим значенням.
- tmplib_DevLib:
- mbBase,ergomera625: Вдосконалення правил підсвітлення синтаксису щодо типів на кшталт "u4".
- IEC62056: Розширення підтримкою частини 21 (прямий локальний обмін даних) і вдосконалення:
- додання вхідної процедури для обробки прочитаних OBISів;
- перелік OBISів доповнено описом і підсвітленням синтаксису;
- додання опції контролю LE порядку байтів цілого;
- ІД атрибуту представлення OBIS доповнено "ClassId" і "a";
- "ClassId" OBISів розширено до двох байтів;
- обрізання видимих рядків до першого нульового байту;
- додано передвстановлені пристрої із відомими головними OBISами;
- поле адреси розширено підтримкою однієї цифри на кшталт SN;
- атрибути "tr" і "ctx" винесено із ВВ.
- mbBase: Розширено вхідною процедурою для кастомізації без зміни шаблону. Розширено підтримкою типів "Int8 (i8)" і "Double (d)", як і повторне створення атрибутів зі зміною типу і видалення атрибутів, які відсутні у переліку елементів. Можливість визначення адрес регістрів у HEX і OCTAL.
- LibsDB.vcaBase:
- wlb_Main:
- Бібліотеку доповнено додатковою іконкою 'weath13n' для віджету "Погода (weather)".
- FIX:TextLab,ImgLab: Розширення щодо опрацювання конфліктних станів "false && false" і "true && true" беручі параметри із елементу [2] і [3].
- Додання генерації порушень із атрибуту "Помилка (err)".
- FIX: Перейменування назв станів "Увімкнути" у "Увімкнено" і "Вимкнути" у "Вимкнено".
- FIX: Уніфікація блимання аварії просто зміною робочого кольору у аварію у другому циклі.
- alarmsAct,alarmsSt: Адаптація до читабельних людиною повідомлень.
- FIX:storeHouse: Перенесення формування Панелі Контролю і її оновлення до коду оновлення таблиці.
- FIX: Відокремлення частини приготування даних від формування візуальних даних для ранього приготування переліків і з обмеженням часу опрацювання елементів.
- Додання опрацювання події ws_TableEdit перевіркою валідності рядка і ствпця.
- Цикли повторення і оновлення переписано для визначення часу у "toCalcCycles" в секундах і оновлення після вичерпання.
- FIX: Запобігання відображенню другого поля фільтру у формі елементу після зміни користувача.
- FIX: Виправлення перегляду зображень при виборі у комбобоксі файлів.
- Визначення режиму транзакції у всіх викликах SQLReq().
- Панель контролю доповнено полями обрання.
- Переписано приготування переліку стовпців для фільтрів із використанням перевизначених назв стандартних полів "NAME", "DSCR", і з правильним сортуванням.
- У розмірах файлів використано нову функцію SYS.cpct2str().
- FIX:ImgLab: Взяття кольору фону навіть порожнім із переліку зображень за його наявності.
- FIX: Встановлення ширини границі у 2 коли вона нульова при блиманні обранням, тобто для активних елементів.
- Формат атрибуту "Зображення (imgs)" переведено до допомоги, тобто до другого рядка.
- FIX:objProps: Додання стеження за зміною користувача, додання підтримки реальних властивостей.
- ElCadr: Додання атрибуту "Параметр: Примусове вимкнення ПІД (prmNotPID)" для вимкнення відображення ПІД за наявності SP.
- cntrPaspExt: Приховання атрибутів у EVAL. Генерація повідомлень дій користувача при зміні редагованих властивостей.
- TextLab: Адаптовано до використання типового фону за його відсутності у "st_text".
- wlb_doc:
- FIX:docRepYear: Виправлення опрацювання останнього значення у році для даних з архівів.
- docUsersSet: Розширення можливістю визначення-конфігурування використаних архівів.
- wlb_Main:
- Model.AGLKS.Model.DAQ_BlockCalc.gen_cnt: Доповнення опису полем "MessName: {Name}".
API
!!!!:Зміни:
- SYS.ResString: getVal() встановлено постійною.
- DAQ.TFunction: Переключення методу "mStor" у ResString.
Доповнення:
- SYS.CntrNode,Protocol.HTTP: Додання сервісних запитів "select:/db/list" опцією "nostor" для порожніх елементів.
- SYS,UI.VCAEngine: Доповнення визначенням "starts_with" як посилання на STL::String функцію "compare(0,strlen(str),str) == 0" для заміни compare() і find() у цій ролі.
- Archives,DAQ.DAQGate: Об'єкт TMArchivator доповнено перевизначенням TMess::SRec із контейнером зберігання дубльованих повідомлень на одну секунду.
- SYS: Файлові функції Користувацького API доповнено fileRotate() для ротації файлів переважно журнального типу.
- TCntrNode: Нова функція nodeMessSnthHgl().
- XMLNode: Функцію load() доповнено розбором чистого HTML із опцією LD_HTML. Функцію save() доповнено опцією HoldEmptyAttr утримання порожніх атрибутів.
- XMLNodeObj: Додано функцією Користувацького API і API childDel( AutoHD<XMLNodeObj> nd ). Функція Користувацького API setAttr() доповнена синонімом attrSet().
- DAQ:
- TController,TParamContr: Додання функції justCreated() для виявлення щойно створення.
- TParamContr: Додано віртуальною функцією loadVal() для перевантаження усіх або одного збереженого значення.
- TPrmTempl.Impl.archAttrs(): Доповнено аргументом мітки часу для використання загальної мітки часу у архівуванні.
- ModBus,OPC_UA,Siemens: Об'єкт Контролеру доповнено функцією Користувацького API value() прямого отримання і встановлення значення за специфічною до джерела адресою і через реєстрацію адреси для отримання-встановлення у загальному циклі опитування джерела.
- JavaLikeCalc: Функції Користувацького API до рядка доповнено sep2path().
Система
- Складання:
- configure.ac: Підняття версії бібліотеки ядра до 3:16:0 і версії програми до 0.9.9. Підняття версії модулів підсистеми "DAQ" до 16.
- .,DAQ.Siemens: Загальна адаптація до складання на Debian 13, адаптація до підтримки PCRE2 через відсутність старої PCRE бібліотеки на Debian 13 із перенесенням змінної "vSz" до визначення TRegExp_vSz для старих бібліотек.
- XMLNode: Функцію load() доповнено розбором чистого HTML із: тегами без закриття, атрибутами без значення, значення атрибутів без лапок, переставлення тегів закриття.
Збір Даних
- FIX:{ModBus,OPC_UA,Siemens}.LogicLev: Запобігання помилковому запису до ПЛК за RO посиланнями, коли значення змінюється у процедурі.
- LogicLev,ModBus,OPC_UA,Siemens: Функції Користувацького API attrAdd() і attrDel() з керування користувацькими атрибутами перенесено із LogicLev, ModBus, OPC_UA, Siemens до об'єкту параметру ядра і для усіх динамічних параметрів за dynElCntr(). Додання збереження значень динамічних атрибутів користувача.
- FIX:Siemens: Переведення режиму SELF_ISO_TCP на загальну функцію outAt(). Зневадження помилок підключення для режимів SELF_ISO_TCP і ISO_TCP на актуальному підключені S7-1500.
- Система: Додання збору даних повільних джерел за певним циклом через конфігураційне поля "Цикл виклику повільних джерел".
- DA_SMART: Додання підтримки читання Журналу NVMe із переведенням на розбір регулярним виразом і читання полів рядком, на кшталт температур.
- DA_PROC: Доповнено отриманням поля "Користувацьке навантаження (%)" і "Системне навантаження (%)" із файлу "/proc/{PID}/stat" також із поєднанням значень для групового обрання.
- FIX:JavaLikeCalc: Виправлення прав доступу до вузла Function після переведення під ACL.
- FIX:LogicLev: Вдосконалення режиму віддзеркалення параметру можливістю пізнього підключення до відсутніх при запуску джерел, так само, як відв'язування-розблокування вимкнених джерел.
- FIX:DAQGate: Виправлення messSet() щодо отриманням повного ІД параметру із першого рядку аргументу "prm" із його нормалізацією видаленням префіксу "prm_". Встановлення запису до віддалених станцій без перевірки рівності значення, оскільки попереднє значення може бути не актуальним за ситуативного читання.
- ModBus: Уніфіковано щодо реєстрації значень за специфічною до ModBus адресою у іншому варіанті функції regVal().
Архіви-Історія
- FIX:Значення: Запобігання аварійного завершення за нульового періоду у TVArchEl::getVals().
Транспорти
- FIX: Функція запиту загального Інтерфейсу Керування cntrIfCmd() попереджена від будь якої локальної-прямої-користувацької автентифікації за переспрямування до проміжних вузлів OpenSCADA, що особливо актуально для віддалених підключень UI.Vision від різних користувачів.
- Журналювання трафіку у файл доповнено ротацією файлів.
Інтерфейс Користувача
- FIX:Vision,WebVision: Виправлення компенсації часток реальних чисел у позиції і розмірі для правильного вирівнювання внутрішнього вмісту віджетів з різним розміром, коли масштаб більше 1. Запобігання аварійного завершення функції VCADiagram::TrendObj::loadTrendsData() за нуля у "wantPer".
- QTCfg,Vision: Розмір табуляції текстової області встановлено динамічним і обрахованим із метрики шрифту для стандартних восьми символів "00000000".
- WebCfgD: Реалізовано підсвітлювання синтаксису у текстових полях.
- FIX:WebVision: Відновлення функції зміни користувача після запобігання заповненню повідомленнями підключення до того-ж сеансу від іншого вузла і іншого агента. Додання користувача останнього запиту для запобігання відкриття нових сеансів після зміни користувача від оригінального.
- FIX:VCAEngine: Перенесення встановлення прапорця Attr::VizerSpec для атрибутів із префіксом "vs_" до спадкування атрибутів і лише для віджетів сеансу. Уніфікація власних прапорців Атрибуту поділом на збережені і оперативні.
- FIX:QTStarter.lib_qtgen: Алгоритм підсвітлення синтаксису у SnthHgl::rule() очищено від зайвих контейнерів і уніфіковано.
- FIX:Vision: Запобігання аварійному завершенню у обробнику події ShapeFormEl за незавершеної ініціалізації, тобто відсутня змінна "addrWdg". Запобігання зміні користувача для переспрямованих підключень.