// This example shows how to call a single method, and pass arguments to and from it.
using System;
using OpcLabs.EasyOpc.UA;
using OpcLabs.EasyOpc.UA.OperationModel;
namespace UADocExamples._EasyUAClient
{
class CallMethod
{
public static void Main1()
{
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/"
object[] inputs =
{
false,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
};
TypeCode[] typeCodes =
{
TypeCode.Boolean,
TypeCode.SByte,
TypeCode.Byte,
TypeCode.Int16,
TypeCode.UInt16,
TypeCode.Int32,
TypeCode.UInt32,
TypeCode.Int64,
TypeCode.UInt64,
TypeCode.Single,
TypeCode.Double
};
// Instantiate the client object
var client = new EasyUAClient();
// Perform the operation.
object[] outputs;
try
{
outputs = client.CallMethod(
endpointDescriptor,
"nsu=http://test.org/UA/Data/ ;i=10755",
"nsu=http://test.org/UA/Data/ ;i=10756",
inputs,
typeCodes);
}
catch (UAException uaException)
{
Console.WriteLine($"*** Failure: {uaException.GetBaseException().Message}");
return;
}
// Display results
for (int i = 0; i < outputs.Length; i++)
Console.WriteLine($"outputs[{i}]: {outputs[i]}");
// Example output:
//outputs[0]: False
//outputs[1]: 1
//outputs[2]: 2
//outputs[3]: 3
//outputs[4]: 4
//outputs[5]: 5
//outputs[6]: 6
//outputs[7]: 7
//outputs[8]: 8
//outputs[9]: 9
//outputs[10]: 10
}
}
}
# This example shows how to call a single method, and pass arguments to and from it.
#requires -Version 5.1
using namespace System
using namespace OpcLabs.EasyOpc.UA
using namespace OpcLabs.EasyOpc.UA.OperationModel
# The path below assumes that the current directory is [ProductDir]/Examples-NET/PowerShell/Windows .
Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcUA.dll"
Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcUAComponents.dll"
[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/"
$inputs = @(
$false,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10)
$typeCodes = @(
[TypeCode]::Boolean,
[TypeCode]::SByte,
[TypeCode]::Byte,
[TypeCode]::Int16,
[TypeCode]::UInt16,
[TypeCode]::Int32,
[TypeCode]::UInt32,
[TypeCode]::Int64,
[TypeCode]::UInt64,
[TypeCode]::Single,
[TypeCode]::Double)
# Instantiate the client object.
$client = New-Object EasyUAClient
# Perform the operation.
try {
$outputs = $client.CallMethod(
$endpointDescriptor,
"nsu=http://test.org/UA/Data/ ;i=10755",
"nsu=http://test.org/UA/Data/ ;i=10756",
$inputs,
$typeCodes)
}
catch [UAException] {
Write-Host "*** Failure: $($PSItem.Exception.GetBaseException().Message)"
return
}
# Display results
for ($i = 0; $i -lt $outputs.Length; $i++) {
Write-Host "outputs[$($i)]: $($outputs[$i])"
}
# Example output:
#
#outputs[0]: False
#outputs[1]: 1
#outputs[2]: 2
#outputs[3]: 3
#outputs[4]: 4
#outputs[5]: 5
#outputs[6]: 6
#outputs[7]: 7
#outputs[8]: 8
#outputs[9]: 9
#outputs[10]: 10
# This example shows how to call a single method, and pass arguments to and from it.
# 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/'
#
inputs = [False, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
typeCodes = [
TypeCode.Boolean,
TypeCode.SByte,
TypeCode.Byte,
TypeCode.Int16,
TypeCode.UInt16,
TypeCode.Int32,
TypeCode.UInt32,
TypeCode.Int64,
TypeCode.UInt64,
TypeCode.Single,
TypeCode.Double,
]
# Instantiate the client object.
client = EasyUAClient()
# Perform the operation.
try:
outputs = IEasyUAClientExtension.CallMethod(client,
endpointDescriptor,
UANodeDescriptor('nsu=http://test.org/UA/Data/ ;i=10755'),
UANodeDescriptor('nsu=http://test.org/UA/Data/ ;i=10756'),
inputs,
typeCodes)
except UAException as uaException:
print('*** Failure: ' + uaException.GetBaseException().Message)
exit()
# Display results.
for i, value in enumerate(outputs):
print('outputs[', i, ']: ', value, sep='')
# Example output:
#outputs[0]: False
#outputs[1]: 1
#outputs[2]: 2
#outputs[3]: 3
#outputs[4]: 4
#outputs[5]: 5
#outputs[6]: 6
#outputs[7]: 7
#outputs[8]: 8
#outputs[9]: 9.0
#outputs[10]: 10.0
' This example shows how to call a single method, and pass arguments to and from it.
Imports OpcLabs.EasyOpc.UA
Imports OpcLabs.EasyOpc.UA.OperationModel
Namespace _EasyUAClient
Friend Class CallMethod
Public Shared Sub Main1()
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/"
Dim inputs() As Object =
{ _
False,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
}
Dim typeCodes() As TypeCode =
{ _
TypeCode.Boolean,
TypeCode.SByte,
TypeCode.Byte,
TypeCode.Int16,
TypeCode.UInt16,
TypeCode.Int32,
TypeCode.UInt32,
TypeCode.Int64,
TypeCode.UInt64,
TypeCode.Single,
TypeCode.Double
}
' Instantiate the client object
Dim client = New EasyUAClient()
' Perform the operation
Dim outputs() As Object
Try
outputs = client.CallMethod( _
endpointDescriptor, _
"nsu=http://test.org/UA/Data/ ;i=10755", _
"nsu=http://test.org/UA/Data/ ;i=10756", _
inputs, _
typeCodes)
Catch uaException As UAException
Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message)
Exit Sub
End Try
' Display results
For i As Integer = 0 To outputs.Length - 1
Console.WriteLine("outputs[{0}]: {1}", i, outputs(i))
Next i
' Example output:
'outputs[0]: False
'outputs[1]: 1
'outputs[2]: 2
'outputs[3]: 3
'outputs[4]: 4
'outputs[5]: 5
'outputs[6]: 6
'outputs[7]: 7
'outputs[8]: 8
'outputs[9]: 9
'outputs[10]: 10
End Sub
End Class
End Namespace