Пятнадцатое обновление OpenSCADA 0.8 LTS
Представлено пятнадцатое обновление системы диспетчерского управления и сбора данных OpenSCADA 0.8, предназначенной для сбора, архивирования, визуализации информации, выдачи управляющих воздействий, а также выполнения других операций, характерных для полнофункциональной SCADA-системы.
Система может использоваться на промышленных объектах, во встраиваемых системах, в качестве среды исполнения (в том числе и PLC), для построения различных моделей (технологических, химических, физических, электрических процессов), на персональных компьютерах, серверах и кластерах для сбора, обработки, представления и архивации информации о системе и её окружении.
Основные изменения:
- 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.
© OpenNet