From OpenSCADAWiki
< Documents | Release 0.9
Это обновление релиза 0.9 LTS исправляет около 60 ошибок и добавляет некоторые улучшения, которые целиком вы можете почитать в протоколе изменений обновления.
Linux Дистрибутив Автоматизации проекта OpenSCADA
- Завершено усовершенствование KMix в работе с PulseAudio, путём его динамизации патчем "kmix-UpdMixersForChangeAndChMaster.patch".
- KRfb (VNC-сервер) был исправлен на предмет аварийного завершения и завершена реализация набора дополнительных клавиш к основной клавиатурной раскладке, в основном Кириллицы, но также и дополнительных UTF символов.
- Завершено обновление перевода проекта Окружения Рабочего Стола Trinity на Украинский для частей: tdelibs, tdebase, tdenetwork, tdemultimedia, tdepim (в основном), krusader, yakuake.
OpenSCADA библиотеки и проекты
- LibsDB.OscadaLibs: Библиотеку Устройств дополнено реализацией протокола IEC-62056 (DevLib.IEC62056). Внесетевая документация дополнена документом "СОГЛАШЕНИЕ О ТЕХНИЧЕСКОЙ ПОДДЕРЖКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ "OpenSCADA" версии 2 и нового модуля DB.DBGate.
- FIX:LibsDB.vcaBase.Main.alarmsSt: Несколько исправлено на предмет оригинальных сообщений и "quietation" целиком заменено на "confirmation". Восстановлено предотвращение дублированных записей новых нарушений в той самой категории.
API
!!!!:Изменения:
- SYS: Унифицированы статусы станции в функциях isRunning(), isFinalKill() и stopSignal(). TCfg::setReqKey() дополнен новым аргументом "treatDep".
- DB: dataSeek(),dataGet(),dataSet(): Расширены аргументом локального конфигурационного контекста "localCfgCtx";
- *,DB: TBDS::dataSeek() и TTable::fieldSeek() переключены на реализацию кеша сканирования в соответствующих модулях.
Дополнения:
- TMess,DB,DB.{SQLite,MySQL,PostgreSQL,FireBird}: TMess дополнено функцией обнаружения перевода конфигурации translCfg(), которую использовано во всех модулях БД и в dataSet().
- SYS: Дополнено функциями доступа к глобальному конфигурационному контексту cfgCtx() и setCfgCtx().
- Загрузка и сохранение конфигурации дополнена собственным блокированием TSYS->cfgLoadSaveM().
- Дополнено функцией pathLevEnd() обработки путей с конца.
- TRegExp: Дополнено функцией getPattern().
- TFld: Дополнено комбинированным строковым вариантом поля длины - lenS().
SYS
- FIX: Building:
- FIX:configure.ac: Core library version risen to 3:8:0 and the program version risen to 0.9.2.
- Modules version of the subsystem "BD" risen to 14, of the subsystem "Transport" risen to 16.
- data/ModelsDB/{AGLKS/oscada_AGLKS.xml,Boiler/oscada_Boiler.xml}: The input Sockets' transports unified in the names "WEB" and "CNTR".
- data/ModelsDB/AGLKS/St.sql: The input SSL transports unified in the names "WEB" and "CNTR" and updated for the KeepAlive timeout setting in 60 and for the SSL-certificate.
- data/{oscada_start,oscada_server,oscada_plc}.xml:
- The input WWW-transports are unified, where "WEB_1" renamed to "WEB" and "WEB_2" removed.
- Appended for the disabled DB-entries of the standard OpenSCADA libraries.
- /oscada_start.xml: Appended for the disabled input transports "WEB" and "CNTR". Appended for the value archivers FSArch.{SYS,alarms,actions} and message archivers FSArch.{1s,1m,1h}.
- FIX:data/openscada-proj.in,UI.QTStarter: Implementation the builtin backuping.
- FIX:data/openscada-proj.in: Appended for the commands "backup", "backupRestore", "backupList" to implement the project backups.
- UI.QTStarter: Appended for the backup commands call from the project manager - list of the projects.
- .,DB,DAQ.{LogicLev,ModBus,Siemens},UI.{QTCfg,WebCfgD}: Implementation the interstation copying mechanism of the control interface nodes.
- .,UI.QTStarter: OpenSCADA starting with a module as the GUI in the main thread significantly refactored for:
- early registration the GUI module in the main thread directly by that module itself and in postEnable() function;
- adaption the function perSYSCall() to use for update the GUI module in the main thread, its splash mostly, during the program starting and stopping (from the service task) and at the configuration loading (for switch to the starting splash);
- enabling the messages dynamic display for the main thread execution mode;
- unification of the splash display for the both modes.
- .,Protocol.SelfSystem,DAQ.AMRDevs: Client accessing of the OpenSCADA control interface expanded by the multiple authentication, what prevents of using direct requests of the OpenSCADA control interface with the authentication in each the request, often for UI.Vision.
- FIX:TRegExp: The patterns processing fixed appending the end symbol treating, so preventing TController::alarmSet() collisions in the objects strict detection.
- FIX:LibsDB.OscadaLibs.doc.diagram,UI.{Vision,WebVision}: Prevented from the value scale double adjustment for the percent scale and appended for the value range expanding.
- FIX: The function TCntrNode::isModify() processing for the children allowed only for nodes in the state "Enabled".
БД
- Создан новый модуль "DBGate".
- FIX: TBDS::dataSet() расширено установкой только ключей и видимых элементов, как у других БД. Дополнено сменой-сохранением определённых элементов в конфигурационном файле вместо полного сохранения всех их в типовой БД.
- FIX: Исправлен первый ошибочный запуск объектов БД на предмет последующих попыток запуска.
- FIX: Загрузка БД предотвращена от двойной загрузки из конфигурационного файла и БД, относительно одинаковых записей.
- Объект TBD дополнен поддержкой сервисных контрольных запросов "call": "/serv/SQL", "/serv/fieldStruct", "/serv/fieldSeek", "/serv/fieldGet", "/serv/fieldSet", "/serv/fieldDel".
- FIX:SQLite: Обнаружена и исправлена потеря данных при конкурентном доступе, когда генерируется непринципиальная ошибка неактивированности транзакции "cannot commit - no transaction is active (1)", которая, однако, прерывает запись данных.
Сбор Данных
- FIX: JavaLikeCalc: Исполнение внутренних функций дополнено сохранением контекста общих-собственных регистров, в двух вариантах, первично для поддержки рекурсии.
Транспорты
- Выходные транспорты унифицированы созданием параметров подключения, с помощью conPrm(), вместо прямых prm1() и prm2().
- Удалён конфигурационный параметр "START" выходных транспортов, как лишний и для предотвращения продолжительного запуска.
- FIX:Sockets,SSL: Для предотвращения многоразового исполнения запросов высокой нагрузки и продолжительного контроля, выходные транспорты переключены на:
- типовую конфигурацию для Попыток=1, Таймауты="30:2";
- для потери подключений количество попыток установлено в 2;
- для ошибок "Исчерпано время" подключение также пере-подключается, кроме типа SOCK_FORCE.
Транспортные Протоколы
- FIX:ModBus: Выходные запросы TCP-варианта дополнены проверкой Идентификатора Транзакции пакетов ответа.
- FIX:SelfSystem: Выходная часть расширена проверкой соответствия ответов запросам, по названию тега запроса. Дополнено кодированием специальных символов пользователя и пароля, и пустой пароль кодируется как "<EMPTY>".
Интерфейс Пользователя
- Vision,WebVision: Свойство специфическое для визуализатора "userSetVis" дополнено реализацией пароля после прямо указанного пользователя и для применения со всеми пользователями.
- FIX:QTStarter: Стандартная-системная заставка запуска/останова обновлена и дополнена информацией про программу (также пользовательские заставки) и проект OpenSCADA, включая иконку проекта. Контекстное меню списка проектов дополнено пунктом удаления не исполняемых проектов.
- FIX:QTCfg: Дополнен слежением за сменой страницы с индикацией в дереве навигации и с прокруткой к текущему элементу.
- FIX:VCAEngine: Предотвращено аварийное завершение на больших конфигурациях с продолжительным закрытием сеансов исполнения во время доступа к наследникам виджета (mHerit), добавлением ResRW блокирования "mHeritRes". Свойство "Перевод" процедур виджетов целиком перенесено под прямой доступ и видимость установлена только при наличии процедуры, также как видимость области текста процедуры и периодичности вычисления от выбора языка.
- FIX:Vision: Существенно унифицирована процедура аутентификации и смены пользователя в UserStBar::userSel() и объект диалога "DlgUser".
- FIX:WebVision: Унифицирована имплементация примитива "Кнопка": переносом специфических кнопок под <button></button> и добавлением соответствующих CSS-стилей для типового и нажатого состояния с отличной границей и полупрозрачным изображением. Исправлена, в конце концов, проблема закрытия всех страниц контейнера основных страниц с заморозкой последней потерянной страницы при быстром переключении. Дополнено пользовательскими CSS правилами интерфейса.