writeValue

Запись значений в узлы на сервере OPC UA

Описание

пример

writeValue(UaClient,NodeList,Values) записывает содержимое Values, к узлам, идентифицированным NodeList. Вы можете просматривать объекты узла используя browseNamespace. Можно также создать узлы, используя opcuanode.

Если NodeList является одним узлом, тогда Values - значение, записанное в узел. Если NodeList - массив узлов, Values должен быть массивом ячеек того же размера, что и NodeList, и каждый элемент массива ячеек записывается в соответствующий элемент NodeList.

Тип данных записываемого значения не должен совпадать с узлом ServerDataType свойство. Все значения автоматически преобразуются перед записью на сервер. Однако предупреждение или ошибка генерируются в случае сбоя преобразования типа данных. Для DateTime типы данных, можно передать MATLAB datetime или число; любое числовое значение может быть интерпретировано как MATLAB datetime.

Чтобы подтвердить, какие массивы размеров можно записать в узел, проверьте ServerValueRank и ServerArrayDimensions свойства узла:

  • A ServerValueRank значение -3 указывает скалярный или 1-мерный массив, -2 указывает массив любого размера, -1 указывает скаляр, 0 указывает массив с 1 или более размерностями, а положительное значение указывает на количество измерений.

  • Если количество размерностей фиксировано, ServerArrayDimensions - массив, задающий максимально возможную длину каждой размерности. Значение 0 для длины размерности нет предела.

    Для примера, если узел поддерживает 2-мерные массивы максимального размера 64 на 32, ServerValueRank имеет значение 2 и ServerArrayDimensions [64, 32].

writeValue(NodeList,Values) записывает содержимое Values, к узлам, идентифицированным NodeList. Все узлы должны иметь один и тот же подключенный клиент.

Примеры

свернуть все

Запись нового значения в узел Static Double на локальном сервере.

uaClient = opcua('localhost', 53530); 
connect(uaClient); 
staticNode = findNodeByName(uaClient.Namespace, 'StaticData', '-once');
scalarNode = findNodeByName(staticNode, 'StaticVariables', '-once');
dblNode = findNodeByName(staticNode, 'Double'); 
writeValue(uaClient, dblNode, 3.14159)
[newVal,newTS] = readValue(uaClient, dblNode)

Запись нескольких значений в один узел.

arrayNode = opcuanode(6, 'DoubleArray', uaClient);
writeValue(arrayNode, [3.14, 1.212]);

Запись скалярных значений в несколько узлов.

multiNodes = opcuanode(6, {'Double','Float'}, uaClient);
writeValue(multiNodes, {34,12});

Входные параметры

свернуть все

Клиент OPC UA задается как объект клиента OPC UA. Клиент должен быть подключен.

Список узлов, заданных как массив объектов узлов или один узел. Для получения информации о функциях и свойствах объекта узла введите:

help opc.ua.Node

Значения, заданные как значения скаляра, массива или массива ячеек. При записи в один узел используйте скаляр или массив значений. Если запись в массив узлов, используйте массив ячеек с значениями; каждый элемент массива вызовов записывается в соответствующий узел.

См. также

Функции

Введенный в R2015b