exponenta event banner

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 указывает скалярный или одномерный массив, -2 указывает массив любого размера, -1 указывает скаляр, 0 указывает массив с 1 или более размерами, а положительное значение указывает количество размеров.

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

    Например, если узел поддерживает двухмерные массивы с максимальным размером 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