Пятнадцатое обновление OpenSCADA 0.8 LTS

14.01.2016 21:46

Представлено пятнадцатое обновление системы диспетчерского управления и сбора данных OpenSCADA 0.8, предназначенной для сбора, архивирования, визуализации информации, выдачи управляющих воздействий, а также выполнения других операций, характерных для полнофункциональной SCADA-системы.

Система может использоваться на промышленных объектах, во встраиваемых системах, в качестве среды исполнения (в том числе и PLC), для построения различных моделей (технологических, химических, физических, электрических процессов), на персональных компьютерах, серверах и кластерах для сбора, обработки, представления и архивации информации о системе и её окружении.

 Пятнадцатое обновление OpenSCADA 0.8 LTS

Основные изменения:

  • API:
    • SYS.TModule: Информационные атрибуты m{Name} переименованы в mMod{Name}. Добавлена функция modInfoMainSet(), которая использована во всех модулях для установки основных информационных атрибутов модуля.
    • TProtocolIn, Protocol.UserProtocol, Transport.*, DAQ.{ModBus,OPC_UA}: Установлено сохранение подключенного входного транспорта в протоколе как замкнутого заголовка вместо пути. C целью быстрого доступа, изменены функции API: open(), srcTr(), setSrcTr().
    • SYS: Добавлен объект ResMtx для объединения всех платформо-специфических реализаций мютекса. Добавлена функция TSYS::taskUtilizTm() для получения использованного времени указанного задания. TElem: Ресурс элементов mResEl изменен с Res на pthread_mutex_t, и разрешен для публичного доступа. Добавлены реализации Функций конвертации специфического для аппаратной платформы порядка байтов, а именно: i16_LE(), i32_LE(), i64_LE(), i16_BE(), i32_BE(), i64_BE(), floatBE(), floatBErev(), doubleBE(), doubleBErev().
    • DAQ.{LogicLev,ModBus}: Добавлены функции API пользователя: attrAdd() и attrDel() для свободного управления атрибутами.
    • Transports: Добавлена функция пользовательского API {TrOut}.start() для быстрого контроля состояния выходного транспорта.
    • Protocol.{*,UserProtocol},Transport.{Sockets,SSL}: Добавлена функция Protocol::waitReqTm() для контроля режима пула входного протокола.
  • SYS:
    • Версия библиотеки ядра поднята до 2:3:0. Версия типа подсистем DB, DAQ, Archive, Protocol, Special, Transports, UI поднята до 7.
    • Archive.FSArch,DB.DBF,DAQ.{Comedi,SMH2Gi}: Использование readdir_r() переписано для прямого выделения памяти структуры "dirent" и предупреждения проблем на других ОС, таких как QNX.
  • Сбор данных:
    • FIX:OPC_UA:
    • FIX:libOPC_UA: Все ошибочные пустые строки (-1) заменены на пустой массив (0). FIX: Исправлено зацикливание на пустом перечне сервиса "Read". FIX: Исправлено обработка аутентификации для клиента на предмет сохранения текущего описания конечной точки, с целью дальнейшего получения "policyId" и использования в сервисе аутентификации. К части сервера добавлены новые типовые пространства имен: 2-"http://opcfoundation.org/UA/DI/, 3-"http://PLCopen.org/OpcUa/IEC61131-3/". Добавлен независимый контроль версии libOPC_UA. Добавлены специфичные типы значений OpcUa_IntAuto и OpcUa_UIntAuto для адаптивного выбора типа целого, значительным образом для предоставления целого не исключительно фиксированным int32 (int64). К части клиента, для контроля подключения, добавлена виртуальная функция connect(), которая использована в сервисе "CloseSecureChannel" для закрытия соединения.
    • Сервер: Пространство имён OpenSCADA DAQ установлено в индекс 4.
    • Siemens: Добавлена и проверена собственная реализация ISO-TCP, значительным образом благодаря запросу Proviron Holding NV. Добавлен таймаут восстановления. Выполнен значительный пересмотр исходного кода на предмет захвата ресурсов, сообщений про ошибки и другого.
  • Транспорт:
    • FIX:{Sockets,Serial,SSL}: Исправлен захват ресурса исходящего транспорта в messIO(), реально захват не удерживался. Реализован режим пулинга входного протокола. Добавлена поддержка режима не запроса и все модули адаптированы для этого, путём установки аргумента time в значение меньше нуля у функции {TrOut}.messIO().
    • Serial: Отключение (остановка транспорта) добавлено для выходного порта в случае результата чтения <= 0, что указывает обычно на потерю устройства.
  • Протокол.UserProtocol: Входные запросы расширены попыткой включения, значительным образом для обеспечения использования статических функций в процедурах протокола.
  • Интерфейс Пользователя:
    • FIX:UI.{Vision,WebVision}: Исправлено падение во время загрузки данных тренда в случае отсутствия значений (time = 0).
    • QTCfg: Индикатор занятости адаптирован на предмет первичной установки диапазона и его обновления на предмет максимума к текущему.
    • Vision: Адаптирован для сборки с libphonon4qt5 и Qt5. Разрешено использование устаревших функций Phonon и Qt5.