// 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. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . 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. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # 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. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . 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
// 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. // // Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . $GoodOrSuccess = 0; // Instantiate the client object $Client = new COM("OpcLabs.EasyOpc.UA.EasyUAClient"); $StatusCode = new COM("OpcLabs.EasyOpc.UA.UAStatusCode"); $StatusCode->Severity = $GoodOrSuccess; $WriteArguments1 = new COM("OpcLabs.EasyOpc.UA.OperationModel.UAWriteArguments"); $WriteArguments1->EndpointDescriptor->UrlString = //"http://opcua.demo-this.com:51211/UA/SampleServer"; //"https://opcua.demo-this.com:51212/UA/SampleServer/"; "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; $WriteArguments1->NodeDescriptor->NodeId->ExpandedText = "nsu=http://test.org/UA/Data/ ;i=10221"; $AttributeData1 = new COM("OpcLabs.EasyOpc.UA.UAAttributeData"); $AttributeData1->Value = 23456; $AttributeData1->StatusCode = $StatusCode; $AttributeData1->SourceTimestamp = (time() - 25569)/86400.0; // works in PHP v5.6, does not work in PHP 7.3.10 $WriteArguments1->AttributeData = $AttributeData1; $WriteArguments2 = new COM("OpcLabs.EasyOpc.UA.OperationModel.UAWriteArguments"); $WriteArguments2->EndpointDescriptor->UrlString = //"http://opcua.demo-this.com:51211/UA/SampleServer"; //"https://opcua.demo-this.com:51212/UA/SampleServer/"; "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; $WriteArguments2->NodeDescriptor->NodeId->ExpandedText = "nsu=http://test.org/UA/Data/ ;i=10226"; $AttributeData2 = new COM("OpcLabs.EasyOpc.UA.UAAttributeData"); $AttributeData2->Value = 2.3456789; $AttributeData2->StatusCode = $StatusCode; $AttributeData2->SourceTimestamp = (time() - 25569)/86400.0; // works in PHP v5.6, does not work in PHP 7.3.10 $WriteArguments2->AttributeData = $AttributeData2; $WriteArguments3 = new COM("OpcLabs.EasyOpc.UA.OperationModel.UAWriteArguments"); $WriteArguments3->EndpointDescriptor->UrlString = //"http://opcua.demo-this.com:51211/UA/SampleServer"; //"https://opcua.demo-this.com:51212/UA/SampleServer/"; "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; $WriteArguments3->NodeDescriptor->NodeId->ExpandedText = "nsu=http://test.org/UA/Data/ ;i=10227"; $AttributeData3 = new COM("OpcLabs.EasyOpc.UA.UAAttributeData"); $AttributeData3->Value = "ABC"; $AttributeData3->StatusCode = $StatusCode; $AttributeData3->SourceTimestamp = (time() - 25569)/86400.0; // works in PHP v5.6, does not work in PHP 7.3.10 $WriteArguments3->AttributeData = $AttributeData3; $arguments[0] = $WriteArguments1; $arguments[1] = $WriteArguments2; $arguments[2] = $WriteArguments3; // Modify data of nodes' attributes $results = $Client->WriteMultiple($arguments); // Display results for ($i = 0; $i < count($results); $i++) { $WriteResult = $results[$i]; // The target server may not support this, and in such case failures will occur. if ($WriteResult->Succeeded) printf("Result %d success\n", $i); else printf("Result d: s \n", $i, $WriteResult->Exception->GetBaseException()->Message); }
Rem This example shows how to write data (a value, timestamps and status code) into 3 nodes at once, test for success of each Rem write and display the exception message in case of failure. Rem Rem Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Option Explicit Const GoodOrSuccess = 0 ' Instantiate the client object Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.UA.EasyUAClient") Dim StatusCode: Set StatusCode = CreateObject("OpcLabs.EasyOpc.UA.UAStatusCode") StatusCode.Severity = GoodOrSuccess Dim WriteArguments1: Set WriteArguments1 = CreateObject("OpcLabs.EasyOpc.UA.OperationModel.UAWriteArguments") WriteArguments1.EndpointDescriptor.UrlString = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" WriteArguments1.NodeDescriptor.NodeId.ExpandedText = "nsu=http://test.org/UA/Data/ ;i=10221" Dim AttributeData1: Set AttributeData1 = CreateObject("OpcLabs.EasyOpc.UA.UAAttributeData") AttributeData1.Value = 23456 AttributeData1.StatusCode = StatusCode AttributeData1.SourceTimestamp = Now WriteArguments1.AttributeData = AttributeData1 Dim WriteArguments2: Set WriteArguments2 = CreateObject("OpcLabs.EasyOpc.UA.OperationModel.UAWriteArguments") WriteArguments2.EndpointDescriptor.UrlString = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" WriteArguments2.NodeDescriptor.NodeId.ExpandedText = "nsu=http://test.org/UA/Data/ ;i=10226" Dim AttributeData2: Set AttributeData2 = CreateObject("OpcLabs.EasyOpc.UA.UAAttributeData") AttributeData2.Value = 2.3456789 AttributeData2.StatusCode = StatusCode AttributeData2.SourceTimestamp = Now WriteArguments2.AttributeData = AttributeData2 Dim WriteArguments3: Set WriteArguments3 = CreateObject("OpcLabs.EasyOpc.UA.OperationModel.UAWriteArguments") WriteArguments3.EndpointDescriptor.UrlString = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" WriteArguments3.NodeDescriptor.NodeId.ExpandedText = "nsu=http://test.org/UA/Data/ ;i=10227" Dim AttributeData3: Set AttributeData3 = CreateObject("OpcLabs.EasyOpc.UA.UAAttributeData") AttributeData3.Value = "ABC" AttributeData3.StatusCode = StatusCode AttributeData3.SourceTimestamp = Now WriteArguments3.AttributeData = AttributeData3 Dim arguments(2) Set arguments(0) = WriteArguments1 Set arguments(1) = WriteArguments2 Set arguments(2) = WriteArguments3 ' Modify data of nodes' attributes Dim results: results = Client.WriteMultiple(arguments) ' Display results Dim i: For i = LBound(results) To UBound(results) Dim WriteResult: Set WriteResult = results(i) ' The target server may not support this, and in such case failures will occur. If WriteResult.Succeeded Then WScript.Echo "Result " & i & " success" Else WScript.Echo "Result " & i & ": " & WriteResult.Exception.GetBaseException().Message End If Next
Copyright © 2004-2024 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base, Product Downloads. Technical support: Online Forums, FAQ.Missing some example? Ask us for it on our Online Forums! You do not have to own a commercial license in order to use Online Forums, and we reply to every post.