// This example shows how to write data (a value, timestamps and status code) into 3 nodes at once, test for success of each
// write and display the exception message in case of failure.
using System;
using OpcLabs.BaseLib.OperationModel;
using OpcLabs.EasyOpc.UA;
using OpcLabs.EasyOpc.UA.OperationModel;
namespace UADocExamples._EasyUAClient
{
class WriteMultiple
{
public static void TestSuccess()
{
UAEndpointDescriptor endpointDescriptor =
"opc.tcp://opcua.demo-this.com:51210/UA/SampleServer";
// or "http://opcua.demo-this.com:51211/UA/SampleServer" (currently not supported)
// or "https://opcua.demo-this.com:51212/UA/SampleServer/"
// Instantiate the client object
var client = new EasyUAClient();
// Modify data of nodes' attributes
OperationResult[] operationResultArray = client.WriteMultiple(new[]
{
new UAWriteArguments(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10221",
new UAAttributeData(23456, UASeverity.GoodOrSuccess, DateTime.UtcNow)),
new UAWriteArguments(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10226",
new UAAttributeData(2.34567890, UASeverity.GoodOrSuccess, DateTime.UtcNow)),
new UAWriteArguments(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10227",
new UAAttributeData("ABC", UASeverity.GoodOrSuccess, DateTime.UtcNow))
});
// The target server may not support this, and in such case failures will occur.
for (int i = 0; i < operationResultArray.Length; i++)
if (operationResultArray[i].Succeeded)
Console.WriteLine("Result {0}: success", i);
else
Console.WriteLine("Result {0}: {1}", i, operationResultArray[i].Exception.GetBaseException().Message);
}
}
}
# This example shows how to write data (a value, timestamps and status code) into 3 nodes at once, test for success of
# each write and display the exception message in case of failure.
# The QuickOPC package is needed. Install it using "pip install opclabs_quickopc".
import opclabs_quickopc
# Import .NET namespaces.
from System import *
from OpcLabs.EasyOpc.UA import *
from OpcLabs.EasyOpc.UA.OperationModel import *
endpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:51210/UA/SampleServer')
# or 'http://opcua.demo-this.com:51211/UA/SampleServer' (currently not supported)
# or 'https://opcua.demo-this.com:51212/UA/SampleServer/'
# Instantiate the client object
client = EasyUAClient()
print("Modifying data of nodes' attributes...")
writeResultArray = client.WriteMultiple([
UAWriteArguments(endpointDescriptor, UANodeDescriptor('nsu=http://test.org/UA/Data/ ;i=10221'),
UAAttributeData(23456, UAStatusCode(UASeverity.GoodOrSuccess), DateTime.UtcNow)),
UAWriteArguments(endpointDescriptor, UANodeDescriptor('nsu=http://test.org/UA/Data/ ;i=10226'),
UAAttributeData(2.34567890, UAStatusCode(UASeverity.GoodOrSuccess), DateTime.UtcNow)),
UAWriteArguments(endpointDescriptor, UANodeDescriptor('nsu=http://test.org/UA/Data/ ;i=10227'),
UAAttributeData('ABC', UAStatusCode(UASeverity.GoodOrSuccess), DateTime.UtcNow)),
])
# The target server may not support this, and in such case failures will occur.
for i, writeResult in enumerate(writeResultArray):
if writeResult.Succeeded:
print('writeResultArray[', i, ']: success', sep='')
else:
print('writeResultArray[', i, '] *** Failure: ', writeResult.Exception.GetBaseException().Message, sep='')
print()
print('Finished.')
' This example shows how to write data (a value, timestamps and status code) into 3 nodes at once, test for success of each
' write and display the exception message in case of failure.
Imports System
Imports OpcLabs.BaseLib.OperationModel
Imports OpcLabs.EasyOpc.UA
Imports OpcLabs.EasyOpc.UA.OperationModel
Namespace _EasyUAClient
Friend Class WriteMultiple
Public Shared Sub TestSuccess()
' Define which server we will work with.
Dim endpointDescriptor As UAEndpointDescriptor =
"opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"
' or "http://opcua.demo-this.com:51211/UA/SampleServer" (currently not supported)
' or "https://opcua.demo-this.com:51212/UA/SampleServer/"
' Instantiate the client object
Dim client = New EasyUAClient()
' Modify data of nodes' attributes
Dim operationResultArray() As OperationResult = client.WriteMultiple(New UAWriteArguments() _
{
New UAWriteArguments(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10221",
New UAAttributeData(23456, UASeverity.GoodOrSuccess, Date.UtcNow)),
New UAWriteArguments(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10226",
New UAAttributeData(2.3456789, UASeverity.GoodOrSuccess, Date.UtcNow)),
New UAWriteArguments(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10227",
New UAAttributeData("ABC", UASeverity.GoodOrSuccess, Date.UtcNow))
}
)
' The target server may not support this, and in such case failures will occur.
For i As Integer = 0 To operationResultArray.Length - 1
If operationResultArray(i).Succeeded Then
Console.WriteLine("Result {0}: success", i)
Else
Console.WriteLine("Result {0}: {1}", i, operationResultArray(i).Exception.GetBaseException().Message)
End If
Next i
End Sub
End Class
End Namespace