// This example obtains and prints out information about PubSub connections, writer groups, and dataset writers in the
// OPC UA PubSub configuration.
//
// Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
// OPC client and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-CSharp .
// Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
// a commercial license in order to use Online Forums, and we reply to every post.
using System;
using OpcLabs.BaseLib.Collections.Specialized;
using OpcLabs.EasyOpc.UA.OperationModel;
using OpcLabs.EasyOpc.UA.PubSub.Configuration;
using OpcLabs.EasyOpc.UA.PubSub.InformationModel;
using OpcLabs.EasyOpc.UA.PubSub.InformationModel.Extensions;
namespace UASubscriberDocExamples.PubSub._IUAReadOnlyPubSubConfiguration
{
partial class GetMethods
{
public static void PubSubComponents()
{
// Instantiate the publish-subscribe client object.
var publishSubscribeClient = new EasyUAPublishSubscribeClient();
try
{
Console.WriteLine("Loading the configuration...");
// Load the PubSub configuration from a file. The file itself is at the root of the project, and we have
// specified that it has to be copied to the project's output directory.
IUAReadOnlyPubSubConfiguration pubSubConfiguration =
publishSubscribeClient.LoadReadOnlyConfiguration("UADemoPublisher-Default.uabinary");
// Alternatively, using the statement below, you can access a live configuration residing in an OPC UA Server
// with appropriate information model.
//IUAReadOnlyPubSubConfiguration pubSubConfiguration =
// publishSubscribeClient.AccessReadOnlyConfiguration("opc.tcp://localhost:48010");
// Get the names of PubSub connections in the configuration, regardless of the folder they reside in.
StringCollection pubSubConnectionNames = pubSubConfiguration.ListConnectionNames();
foreach (string pubSubConnectionName in pubSubConnectionNames)
{
Console.WriteLine($"PubSub connection: {pubSubConnectionName}");
// You can use the statement below to obtain parameters of the PubSub connection.
//UAPubSubConnectionElement connectionElement =
// pubSubConfiguration.GetConnectionElement(pubSubConnectionName);
// Get names of the writer groups on this PubSub connection.
StringCollection writerGroupNames = pubSubConfiguration.ListWriterGroupNames(pubSubConnectionName);
foreach (string writerGroupName in writerGroupNames)
{
Console.WriteLine($" Writer group: {writerGroupName}");
// You can use the statement below to obtain parameters of the writer group.
//UAWriterGroupElement writerGroupElement =
// pubSubConfiguration.GetWriterGroupElement(pubSubConnectionName, writerGroupName);
// Get names of the dataset writers on this writer group.
StringCollection dataSetWriterNames =
pubSubConfiguration.ListDataSetWriterNames(pubSubConnectionName, writerGroupName);
foreach (string dataSetWriterName in dataSetWriterNames)
{
Console.WriteLine($" Dataset writer: {dataSetWriterName}");
// You can use the statement below to obtain parameters of the dataset writer.
//UADataSetWriterElement dataSetWriterElement = pubSubConfiguration.GetDataSetWriterElement(
// pubSubConnectionName, writerGroupName, dataSetWriterName);
}
}
}
}
catch (UAException uaException)
{
Console.WriteLine($"*** Failure: {uaException.InnerException.Message}");
}
Console.WriteLine("Finished.");
}
// Example output:
//
//Loading the configuration...
//PubSub connection: FixedLayoutConnection
// Writer group: FixedLayoutGroup
// Dataset writer: SimpleWriter
// Dataset writer: AllTypesWriter
// Dataset writer: MassTestWriter
//PubSub connection: DynamicLayoutConnection
// Writer group: DynamicLayoutGroup
// Dataset writer: SimpleWriter
// Dataset writer: MassTestWriter
// Dataset writer: AllTypes-DynamicWriter
// Dataset writer: EventSimpleWriter
//PubSub connection: FlexibleLayoutConnection
// Writer group: FlexibleLayoutGroup
// Dataset writer: SimpleWriter
// Dataset writer: MassTestWriter
// Dataset writer: AllTypes-DynamicWriter
//Finished.
}
}
' This example obtains and prints out information about PubSub connections, writer groups, and dataset writers in the
' OPC UA PubSub configuration.
'
' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
' OPC client and subscriber examples in VB.NET on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBNET .
' Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
' a commercial license in order to use Online Forums, and we reply to every post.
Imports OpcLabs.EasyOpc.UA.OperationModel
Imports OpcLabs.EasyOpc.UA.PubSub.Configuration
'Imports OpcLabs.EasyOpc.UA.PubSub.Configuration.Extensions
Imports OpcLabs.EasyOpc.UA.PubSub.InformationModel
Imports OpcLabs.EasyOpc.UA.PubSub.InformationModel.Extensions
Namespace PubSub._IUAReadOnlyPubSubConfiguration
Partial Friend Class GetMethods
Public Shared Sub PubSubComponents()
' Instantiate the publish-subscribe client object.
Dim publishSubscribeClient = New EasyUAPublishSubscribeClient()
Try
Console.WriteLine("Loading the configuration...")
' Load the PubSub configuration from a file. The file itself is at the root of the project, and we have
' specified that it has to be copied to the project's output directory.
Dim pubSubConfiguration As IUAReadOnlyPubSubConfiguration =
publishSubscribeClient.LoadReadOnlyConfiguration("UADemoPublisher-Default.uabinary")
' Alternatively, using the statement below, you can access a live configuration residing in an OPC UA
' Server with appropriate information model.
'Dim pubSubConfiguration As IUAReadOnlyPubSubConfiguration =
' publishSubscribeClient.AccessReadOnlyConfiguration("opc.tcp://localhost:48010")
' Get the names of PubSub connections in the configuration, regardless of the folder they reside in.
Dim pubSubConnectionNames = pubSubConfiguration.ListConnectionNames()
For Each pubSubConnectionName As String In pubSubConnectionNames
Console.WriteLine($"PubSub connection: {pubSubConnectionName}")
' You can use the statement below to obtain parameters of the PubSub connection.
'Dim connectionElement As UAPubSubConnectionElement =
' pubSubConfiguration.GetConnectionElement(pubSubConnectionName)
' Get names of the writer groups on this PubSub connection.
Dim writerGroupNames = pubSubConfiguration.ListWriterGroupNames(pubSubConnectionName)
For Each writerGroupName As String In writerGroupNames
Console.WriteLine($" Writer group: {writerGroupName}")
' You can use the statement below to obtain parameters of the writer group.
'Dim writerGroupElement As UAWriterGroupElement =
' pubSubConfiguration.GetWriterGroupElement(pubSubConnectionName, writerGroupName)
' Get names of the dataset writers on this writer group.
Dim dataSetWriterNames =
pubSubConfiguration.ListDataSetWriterNames(pubSubConnectionName, writerGroupName)
For Each dataSetWriterName As String In dataSetWriterNames
Console.WriteLine($" Dataset writer: {dataSetWriterName}")
' You can use the statement below to obtain parameters of the dataset writer.
'Dim dataSetWriterElement As UADataSetWriterElement = pubSubConfiguration.GetDataSetWriterElement(
' pubSubConnectionName, writerGroupName, dataSetWriterName)
Next dataSetWriterName
Next writerGroupName
Next pubSubConnectionName
Catch uaException As UAException
Console.WriteLine($"*** Failure: {uaException.InnerException.Message}")
End Try
Console.WriteLine("Finished...")
End Sub
End Class
' Example output
'
'Loading the configuration...
'PubSub connection FixedLayoutConnection
' Writer group: FixedLayoutGroup
' Dataset writer: SimpleWriter
' Dataset writer: AllTypesWriter
' Dataset writer: MassTestWriter
'PubSub connection: DynamicLayoutConnection
' Writer group: DynamicLayoutGroup
' Dataset writer: SimpleWriter
' Dataset writer: MassTestWriter
' Dataset writer: AllTypes-DynamicWriter
' Dataset writer: EventSimpleWriter
'PubSub connection: FlexibleLayoutConnection
' Writer group: FlexibleLayoutGroup
' Dataset writer: SimpleWriter
' Dataset writer: MassTestWriter
' Dataset writer: AllTypes-DynamicWriter
'Finished.
End Namespace
// This example obtains and prints out information about PubSub connections, writer groups, and dataset writers in the
// OPC UA PubSub configuration.
//
// Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
// OPC client and subscriber examples in Object Pascal (Delphi) on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-OP .
// Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
// a commercial license in order to use Online Forums, and we reply to every post.
class procedure GetMethods.PubSubComponents;
var
//DataSetWriterElement: _UADataSetWriterElement;
DataSetWriterName: string;
DataSetWriterNames: _StringCollection;
//EndpointDescriptor: _UAEndpointDescriptor;
I, J, K: Integer;
//PubSubConnectionElement: _UAPubSubConnectionElement;
PubSubConnectionName: string;
ConnectionNames: _StringCollection;
PublishSubscribeClient: _EasyUAPublishSubscribeClient;
PubSubConfiguration: _UAReadOnlyPubSubConfiguration;
//WriterGroupElement: _UAWriterGroupElement;
WriterGroupName: string;
WriterGroupNames: _StringCollection;
begin
// Instantiate the publish-subscribe client object.
PublishSubscribeClient := CoEasyUAPublishSubscribeClient.Create;
try
WriteLn('Loading the configuration...');
// Load the PubSub configuration from a file. The file itself is included alongside the script.
PubSubConfiguration := PublishSubscribeClient.LoadReadOnlyConfiguration('UADemoPublisher-Default.uabinary');
// Alternatively, using the statements below, you can access a live configuration residing in an OPC UA Server
// with appropriate information model.
//EndpointDescriptor := CoUAEndpointDescriptor.Create;
//EndpointDescriptor.UrlString := 'opc.tcp://localhost:48010';
//PubSubConfiguration := PublishSubscribeClient.AccessReadOnlyConfiguration(EndpointDescriptor);
// Get the names of PubSub connections in the configuration.
ConnectionNames := PubSubConfiguration.ListConnectionNames;
for I := 0 to ConnectionNames.Count-1 do
begin
PubSubConnectionName := ConnectionNames[I];
WriteLn('PubSub connection: ', PubSubConnectionName);
// You can use the statement below to obtain parameters of the PubSub connection.
//PubSubConnectionElement := PubSubConfiguration.GetConnectionElement(PubSubConnectionName);
// Get names of the writer groups on this PubSub connection.
WriterGroupNames := PubSubConfiguration.ListWriterGroupNames(PubSubConnectionName);
for J := 0 to WriterGroupNames.Count-1 do
begin
WriterGroupName := WriterGroupNames[J];
WriteLn(' Writer group: ', WriterGroupName);
// You can use the statement below to obtain parameters of the writer group.
//WriterGroupElement := PubSubConfiguration.GetWriterGroupElement(PubSubConnectionName, WriterGroupName);
// Get names of the dataset writers on this writer group.
DataSetWriterNames := PubSubConfiguration.ListDataSetWriterNames(PubSubConnectionName, WriterGroupName);
for K := 0 to DataSetWriterNames.Count-1 do
begin
DataSetWriterName := DataSetWriterNames[K];
WriteLn(' Dataset writer: ', DataSetWriterName);
// You can use the statement below to obtain parameters of the dataset writer.
//DataSetWriterElement := PubSubConfiguration.GetDataSetWriterElement(PubSubConnectionName, WriterGroupName, DataSetWriterName);
end;
end;
end;
except
on E: EOleException do
begin
WriteLn(Format('*** Failure: %s', [E.GetBaseException.Message]));
end;
end;
WriteLn('Finished.');
end;
// Example output:
//
//Loading the configuration...
//PubSub connection: FixedLayoutConnection
// Writer group: FixedLayoutGroup
// Dataset writer: SimpleWriter
// Dataset writer: AllTypesWriter
// Dataset writer: MassTestWriter
//PubSub connection: DynamicLayoutConnection
// Writer group: DynamicLayoutGroup
// Dataset writer: SimpleWriter
// Dataset writer: MassTestWriter
// Dataset writer: AllTypes-DynamicWriter
// Dataset writer: EventSimpleWriter
//PubSub connection: FlexibleLayoutConnection
// Writer group: FlexibleLayoutGroup
// Dataset writer: SimpleWriter
// Dataset writer: MassTestWriter
// Dataset writer: AllTypes-DynamicWriter
//Finished.
Rem This example obtains and prints out information about PubSub connections, writer groups, and dataset writers in the
Rem OPC UA PubSub configuration.
Rem
Rem Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
Rem OPC client and subscriber examples in VBScript on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBScript .
Rem Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
Rem a commercial license in order to use Online Forums, and we reply to every post.
Option Explicit
' Instantiate the publish-subscribe client object.
Dim PublishSubscribeClient: Set PublishSubscribeClient = CreateObject("OpcLabs.EasyOpc.UA.PubSub.InformationModel.EasyUAPublishSubscribeClient")
On Error Resume Next
DumpPubSubComponents
If Err.Number <> 0 Then
WScript.Echo "*** Failure: " & Err.Source & ": " & Err.Description
WScript.Quit
End If
On Error Goto 0
WScript.Echo "Finished."
Sub DumpPubSubComponents()
WScript.Echo "Loading the configuration..."
' Load the PubSub configuration from a file. The file itself is included alongside the script.
Dim PubSubConfiguration: Set PubSubConfiguration = PublishSubscribeClient.LoadReadOnlyConfiguration("UADemoPublisher-Default.uabinary")
' Alternatively, using the statements below, you can access a live configuration residing in an OPC UA Server
' with appropriate information model.
'Dim EndpointDescriptor: Set EndpointDescriptor = CreateObject("OpcLabs.EasyOpc.UA.UAEndpointDescriptor")
'EndpointDescriptor.UrlString = "opc.tcp://localhost:48010"
'Dim PubSubConfiguration: Set PubSubConfiguration = PublishSubscribeClient.AccessReadOnlyConfiguration(EndpointDescriptor)
' Get the names of PubSub connections in the configuration.
Dim ConnectionNames: Set ConnectionNames = PubSubConfiguration.ListConnectionNames
Dim pubSubConnectionName: For Each pubSubConnectionName In ConnectionNames
WScript.Echo "PubSub connection: " & pubSubConnectionName
' You can use the statement below to obtain parameters of the PubSub connection.
'Dim PubSubConnectionElement: Set PubSubConnectionElement = PubSubConfiguration.GetConnectionElement(pubSubConnectionName)
' Get names of the writer groups on this PubSub connection.
Dim WriterGroupNames: Set WriterGroupNames = PubSubConfiguration.ListWriterGroupNames(pubSubConnectionName)
Dim writerGroupName: For Each writerGroupName In WriterGroupNames
WScript.Echo " Writer group: " & writerGroupName
' You can use the statement below to obtain parameters of the writer group.
'Dim WriterGroupElement: Set WriterGroupElement = PubSubConfiguration.GetWriterGroupElement(pubSubConnectionName, writerGroupName)
' Get names of the dataset writers on this writer group.
Dim DataSetWriterNames: Set DataSetWriterNames = PubSubConfiguration.ListDataSetWriterNames(pubSubConnectionName, writerGroupName)
Dim dataSetWriterName: For Each dataSetWriterName In DataSetWriterNames
WScript.Echo " Dataset writer: " & dataSetWriterName
' You can use the statement below to obtain parameters of the dataset writer.
'Dim DataSetWriterElement: Set DataSetWriterElement = _
' PubSubConfiguration.GetDataSetWriterElement(pubSubConnectionName, writerGroupName, dataSetWriterName)
Next
Next
Next
End Sub
' Example output:
'
'Loading the configuration...
'PubSub connection: FixedLayoutConnection
' Writer group: FixedLayoutGroup
' Dataset writer: SimpleWriter
' Dataset writer: AllTypesWriter
' Dataset writer: MassTestWriter
'PubSub connection: DynamicLayoutConnection
' Writer group: DynamicLayoutGroup
' Dataset writer: SimpleWriter
' Dataset writer: MassTestWriter
' Dataset writer: AllTypes-DynamicWriter
' Dataset writer: EventSimpleWriter
'PubSub connection: FlexibleLayoutConnection
' Writer group: FlexibleLayoutGroup
' Dataset writer: SimpleWriter
' Dataset writer: MassTestWriter
' Dataset writer: AllTypes-DynamicWriter
'Finished.
# This example obtains and prints out information about PubSub connections, writer groups, and dataset writers in the
# OPC UA PubSub configuration.
#
# 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 .
# Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
# a commercial license in order to use Online Forums, and we reply to every post.
# The QuickOPC package is needed. Install it using "pip install opclabs_quickopc".
import opclabs_quickopc
# Import .NET namespaces.
from OpcLabs.BaseLib import *
#from OpcLabs.EasyOpc.UA import *
#from OpcLabs.EasyOpc.UA.PubSub.Configuration.Extensions import *
from OpcLabs.EasyOpc.UA.OperationModel import *
from OpcLabs.EasyOpc.UA.PubSub.InformationModel import *
from OpcLabs.EasyOpc.UA.PubSub.InformationModel.Extensions import *
from OpcLabs.EasyOpc.UA.PubSub.OperationModel import *
# Instantiate the publish-subscribe client object.
publishSubscribeClient = EasyUAPublishSubscribeClient()
try:
print('Loading the configuration...')
# Load the PubSub configuration from a file. The file itself is in this script's directory.
pubSubConfiguration = IEasyUAPublishSubscribeClientExtension.LoadReadOnlyConfiguration(publishSubscribeClient,
'UADemoPublisher-Default.uabinary')
# Alternatively, using the statement below, you can access a live configuration residing in an OPC UA
# Server with appropriate information model.
#pubSubConfiguration = publishSubscribeClient.AccessReadOnlyConfiguration(
# UAEndpointDescriptor('opc.tcp://localhost:48010'))
# Get the names of PubSub connections in the configuration, regardless of the folder they reside in.
pubSubConnectionNames = pubSubConfiguration.ListConnectionNames()
for pubSubConnectionName in pubSubConnectionNames:
print('PubSub connection: ', pubSubConnectionName, sep='')
# You can use the statement below to obtain parameters of the PubSub connection.
#connectionElement = IUAReadOnlyPubSubConfigurationExtension.GetConnectionElement(pubSubConfiguration,
# pubSubConnectionName)
# Get names of the writer groups on this PubSub connection.
writerGroupNames = pubSubConfiguration.ListWriterGroupNames(pubSubConnectionName)
for writerGroupName in writerGroupNames:
print(' Writer group: ', writerGroupName, sep='')
# You can use the statement below to obtain parameters of the writer group.
#writerGroupElement = IUAReadOnlyPubSubConfigurationExtension.GetWriterGroupElement(pubSubConfiguration,
# pubSubConnectionName, writerGroupName)
# Get names of the dataset writers on this writer group.
dataSetWriterNames = pubSubConfiguration.ListDataSetWriterNames(pubSubConnectionName, writerGroupName)
for dataSetWriterName in dataSetWriterNames:
print(' Dataset writer: ', dataSetWriterName, sep='')
# You can use the statement below to obtain parameters of the dataset writer.
#dataSetWriterElement = IUAReadOnlyPubSubConfigurationExtension.GetDataSetWriterElement(pubSubConfiguration,
# pubSubConnectionName, writerGroupName, dataSetWriterName)
except UAException as uaException:
print('*** Failure: ' + uaException.GetBaseException().Message)
exit()
print('Finished.')