Страница 1 из 1

Формирование строки адреса OPC UA в макросе

СообщениеДобавлено: 15 июл 2022, 13:36
Oleg_K
Добрый день. Пытаюсь сформировать строку и подоткнуть её на вход GetData для чтения переменной из OPC UA. Не получается, синтаксическая ошибка.
Подскажите как можно это сделать?

Код: Выделить всё
char strSrc[255]="enable(Application.PROTECT.protect_burner[0].enable)[0] (ns:2;s:Application.PROTECT.protect_burner[0].enable)"
bool read_opc_bool = false

GetData(read_opc_bool, "OPC UA Client", strSrc, 1)


Re: Формирование строки адреса OPC UA в макросе

СообщениеДобавлено: 15 июл 2022, 13:43
8bit
адрес в виде значение текстовой переменной не поддерживается..... :(

Re: Формирование строки адреса OPC UA в макросе

СообщениеДобавлено: 18 июл 2022, 17:21
Oleg_K
Частично решается индексами, но работает только с массивами и еще присвоить индекс можно только крайнему массиву.

Вот так использовать можно:
Код: Выделить всё
Application.PROTECT.protect_burner[0] + IDX


А вот так уже нет
Код: Выделить всё
Application.PROTECT.protect_burner[0].signal + IDX

Re: Формирование строки адреса OPC UA в макросе

СообщениеДобавлено: 19 июл 2022, 10:30
8bit
Сделали запрос реализации такой фичи, получили ответ Weintek: We do not have plans for this function at present.

Re: Формирование строки адреса OPC UA в макросе

СообщениеДобавлено: 22 дек 2022, 12:28
Dimon775
Получилось прочитать вот так:
Код: Выделить всё
bool a=0
GetData(a, "OPC UA Client", "eH (ns:2;s:Application.GVL_AI.ST_601B.eH)", 1)

Изображение

Re: Формирование строки адреса OPC UA в макросе

СообщениеДобавлено: 22 дек 2022, 12:39
8bit
Dimon775 писал(а):Получилось прочитать вот так:
Код: Выделить всё
bool a=0
GetData(a, "OPC UA Client", "eH (ns:2;s:Application.GVL_AI.ST_601B.eH)", 1)

Изображение


Так это штатный путь через Мастер вставки функций (с выбором тегов), каждый тег "прибит гвоздями", вы то хотели формировать имена тегов как строки и уже эти строки подсовывать в GetData() ...