Вход

Просмотр полной версии : Ошибка "Строковый тип не поддерживается" при связи с OPC UA



martial1
30.01.2024, 13:36
Добрый день.

OwenCloud поддерживает протокол OPC UA в режиме сервера. OPC UA клиент (например,
интегрированный в SCADA-систему) может подключиться к OwenCloud и производить чтение данных.

В качестве клиента используется MasterScada4d.
Соединение происходит успешно, но при экспорте переменных из OwenCloud в OPC UA создаются структурные переменные типа SYSTEM_STRING_PARAM.
Ладно и это не беда, а беда начинается тогда, кода любой тег из OPC UA пытаешься связать c созданным параметром типа SYSTEM_STRING_PARAM или добавляешь в качестве параметра в программу "Объекта", например для конвертации сложных типов данных структуры вида SYSTEM_*_PARAM, возникает ошибка:
30.01.2024 13:14:33 Ошибка: Внутренняя ошибка : Строковый тип не поддерживается : [ID=73505 Index=0 PT_POUT Direct] Источник: 'Система.АРМ 1.Задачи.Основная задача' [Id=72100] Детали: Положение: Код:

а если пытаешься связать с типом STRING (из мануала по MasterScada4d :"Если связать в проекте два параметра, например, типа SYSTEM_LREAL_PARAM и LREAL, то конвертация сработает автоматически"), то возникает ошибка
30.01.2024 13:13:34 Ошибка: Недопустимый тип данных для связи с Система.АРМ 1.Протоколы.OPC UA.Owen Cloud.Devices.Все параметры.Измерения.Т воздуха.Вход

Как с этим бороться и как в таком случае использовать теги OPC UA в связке с OwenCloud?

pavel.migdalev
30.01.2024, 14:38
30.01.2024 13:14:33 Ошибка: Внутренняя ошибка : Строковый тип не поддерживается : [ID=73505 Index=0 PT_POUT Direct] Источник: 'Система.АРМ 1.Задачи.Основная задача' [Id=72100] Детали: Положение: Код:

У меня, такая ошибка возникла, когда, например, GlobalConfiguration.WorksNumber (тип STRING) привязали к свойству "Текст" визуального компонента "Текст".
Пример решения: изменили привязку на GlobalConfiguration.ForVisu.WorksNumber, т.е. добавили промежуточную структуру ForVisu и все компилируется без ошибок.

martial1
30.01.2024, 14:51
При связи тега OPC UA со свойством "Текст", ошибки не происходит, но и выводит тег в том виде как он прочитался с сервера, например 15 °C, где &#176 это код символа в единице измерения. Ошибка выводится при любой попытке привязать тег к любому параметру в теле задачи, чтобы обработать его у убрать все лишнее.

martial1
13.02.2024, 14:21
Решение найдено. Оказывается в MS4D имеется возможность выполнения авто конвертации типа значения. Т.е. с сервера считывается параметр типа SYSTEM_STRING_PARAM, а в свойствах входа изменяем на тот тип значения, который требуется для дальнейшего применения. В итоге на входе получаем те данные, которые требуются.

73549 73550

Krok27
19.02.2024, 20:56
Доброго. Техподдержка не рекомендует менять тип тега, используйте FB конвертации (накладные расходы). С другой стороны, в РЭ по облаку была рекомендация менять тип на тот, который указан в облаке, т.к. при импорте он будет всегда SYSTEM_STRING_PARAM.
Но есть другая проблема - обновление данных не стабильно, т.е. их может не быть и 5 и 10 минут при условии, что облако обновляет данные раз в 1 минуту.
В ОРС UA период выполнения задачи стоит 100 мс. При таких условиях трафик улетает 5Гб в сутки. Тегов всего 100 шт. Накладно. если мобильный инет. Уменьшение может дать изменение на Получение данных - чтение, период чтения данных - 15000 - 30000 мс.
Использую промежуточное звено - OwenOPC, он работает с облаком по API, все вышеозвученные проблемы ушли. При импорте тегов из OPC получите тип SYSTEM_DWORD_PARAM. OwenOPC - это если под Windows конечно.