dOPC Client Toolkit
Close
ua.client.TdOPCUAClient.WriteNodeAttributes

Writes an array of nodes and with new values.

function WriteNodeAttributes(NodeIds: TArray<string>; Attributes: TArray<integer>; Values: TArray<uaDataValue>): uaStatuscodeArray;
__fastcall uaStatuscodeArray WriteNodeAttributes(TArray<string> NodeIds, TArray<integer> Attributes, TArray<uaDataValue> Values);

This method can be used to write an array of nodes. It returns an array of uaStatuscodes.

Parameter
Description
NodeId
Array of nodes you want to write.
Attribute
Defines which attributes you want to write. For further information look also at: TuaAttributes
Value
Defines the value you want to write, see also example below.
Result
returns a uaStatuscode (look also at: uaStatusCodeToString)
program UAOnlyWrite; {$APPTYPE CONSOLE} {$R *.res} uses SysUtils, ua.client, ua.buildintypes; var OPCClient: TdOPCUAClient; Nodes: TArray<String>; WriteValues: TArray<uaDatavalue>; Rets: TArray<uaStatuscode>; V: uaDatavalue; i: integer; begin OPCClient := TdOPCUAClient.Create(nil); OPCClient.Url := 'opc.tcp://opcuaserver.com:48010'; Setlength(Nodes, 2); Setlength(WriteValues, 2); Nodes[0] := 'ns=2;s=Demo.Static.Scalar.Int16'; WriteValues[0] := uaDatavalue.Create(uaVariant.Create(uaInt16(16))); Nodes[1] := 'ns=2;s=Demo.Static.Scalar.Int32'; WriteValues[1] := uaDatavalue.Create(uaVariant.Create(uaInt32(32))); OPCClient.Active := true; Rets := OPCClient.WriteNodeAttributes(Nodes,[TuaAttributes.Value], WriteValues); for i := 0 to Length(Rets) - 1 do begin if not Rets[i].IsGood then writeln('Node: ' + Nodes[i] + ': Error write node:', uaStatusCodeToString(Rets[i])) else writeln('Node: ' + Nodes[i] + ': successfully written :-)'); end; for V in WriteValues do V.Free; writeln('Press Enter to exit'); Readln; OPCClient.Free; end.
dOPC version 5.33. Copyright © 2025 by Kassl GmbH.