The example below uses the ListAllPublishedDataSetNames Method to retrieve all published dataset from the PubSub configuration. The published datasets are actually organized in the PubSub configuration using a hierarchical structure of dataset folders. The word "all" in the method name denotes that the method will truly return all published datasets in the configuration, not just those at the "root" of the dataset folder structure, or in any specified dataset folder. The method will act recursively in the dataset folder structure, if needed. There are also methods that allow you to work with contents of individual dataset folders. Note that the published dataset names are unique across the PubSub configuration as a whole (regardless of their location in the dataset folder structure), and therefore a published dataset name is sufficient to identify the published dataset, and the dataset folder path is not strictly necessary.
// This example obtains and prints out information about all published datasets in the OPC UA PubSub configuration. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . using System; using OpcLabs.BaseLib.Collections.Specialized; using OpcLabs.EasyOpc.UA.OperationModel; using OpcLabs.EasyOpc.UA.PubSub.Configuration; using OpcLabs.EasyOpc.UA.PubSub.Configuration.Extensions; using OpcLabs.EasyOpc.UA.PubSub.InformationModel; using OpcLabs.EasyOpc.UA.PubSub.InformationModel.Extensions; namespace UADocExamples.PubSub._IUAReadOnlyPubSubConfiguration { partial class GetMethods { public static void PublishedDataSets() { // 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 all published datasets in the PubSub configuration. StringCollection publishedDataSetNames = pubSubConfiguration.ListAllPublishedDataSetNames(); foreach (string publishedDataSetName in publishedDataSetNames) { Console.WriteLine($"Published dataset: {publishedDataSetName}"); // You can use the statement below to obtain parameters of the published dataset. //UAPublishedDataSetElement publishedDataSetElement = // pubSubConfiguration.GetPublishedDataSetElement(publishedDataSetName); } } catch (UAException uaException) { Console.WriteLine($"*** Failure: {uaException.InnerException.Message}"); } Console.WriteLine("Finished."); } // Example output: // //Loading the configuration... //Published dataset: Simple //Published dataset: AllTypes //Published dataset: MassTest //Published dataset: AllTypes-Dynamic //Finished. } }
# This example obtains and prints out information about all published datasets 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 . # 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.OperationModel import * from OpcLabs.EasyOpc.UA.PubSub.Configuration.Extensions 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 all published datasets in the PubSub configuration. publishedDataSetNames = IUAReadOnlyPubSubConfigurationExtension.ListAllPublishedDataSetNames(pubSubConfiguration) for publishedDataSetName in publishedDataSetNames: print('Published dataset: ', publishedDataSetName, sep='') # You can use the statement below to obtain parameters of the published dataset. #publishedDataSetElement = IUAReadOnlyPubSubConfigurationExtension.GetPublishedDataSetElement( # pubSubConfiguration, # publishedDataSetName) except UAException as uaException: print('*** Failure: ' + uaException.GetBaseException().Message) exit() print('Finished.')
' This example obtains and prints out information about all published datasets in the OPC UA PubSub configuration. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . 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 PublishedDataSets() ' 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 all published datasets in the PubSub configuration. Dim publishedDataSetNames = pubSubConfiguration.ListAllPublishedDataSetNames() For Each publishedDataSetName As String In publishedDataSetNames Console.WriteLine($"Published dataset: {publishedDataSetName}") ' You can use the statement below to obtain parameters of the published dataset. 'Dim publishedDataSetElement As UAPublishedDataSetElement = ' pubSubConfiguration.GetPublishedDataSetElement(publishedDataSetName) Next publishedDataSetName Catch uaException As UAException Console.WriteLine($"*** Failure: {uaException.InnerException.Message}") End Try Console.WriteLine("Finished...") End Sub End Class ' Example output ' 'Loading the configuration... 'Published dataset Simple 'Published dataset: AllTypes 'Published dataset: MassTest 'Published dataset: AllTypes-Dynamic 'Finished. End Namespace
// This example obtains and prints out information about all published datasets in the OPC UA PubSub configuration. // // Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . class procedure GetMethods.PublishedDataSets; var //EndpointDescriptor: _UAEndpointDescriptor; I: Integer; PublishedDataSetName: string; PublishedDataSetNames: _StringCollection; //PublishedDataSetElement: _UAPublishedDataSetElement; PublishSubscribeClient: _EasyUAPublishSubscribeClient; PubSubConfiguration: _UAReadOnlyPubSubConfiguration; 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, regardless of the folder they reside in. PublishedDataSetNames := PubSubConfiguration.ListAllPublishedDataSetNames; for I := 0 to PublishedDataSetNames.Count-1 do begin PublishedDataSetName := PublishedDataSetNames[I]; WriteLn('Published dataset: ', PublishedDataSetName); // You can use the statement below to obtain parameters of the published dataset. //PublishedDataSetElement := PubSubConfiguration.GetPublishedDataSetElement(Unassigned, PublishedDataSetName); end; except on E: EOleException do begin WriteLn(Format('*** Failure: %s', [E.GetBaseException.Message])); end; end; WriteLn('Finished.'); end; // Example output: // //Loading the configuration... //Published dataset: Simple //Published dataset: AllTypes //Published dataset: MassTest //Published dataset: AllTypes-Dynamic //Finished.
Rem This example obtains and prints out information about all published datasets in the OPC UA PubSub configuration. Rem Rem Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Option Explicit ' Instantiate the publish-subscribe client object. Dim PublishSubscribeClient: Set PublishSubscribeClient = CreateObject("OpcLabs.EasyOpc.UA.PubSub.InformationModel.EasyUAPublishSubscribeClient") On Error Resume Next DumpPublishedDataSets If Err.Number <> 0 Then WScript.Echo "*** Failure: " & Err.Source & ": " & Err.Description WScript.Quit End If On Error Goto 0 WScript.Echo "Finished." Sub DumpPublishedDataSets() 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, regardless of the folder they reside in. Dim PublishedDataSetNames: Set PublishedDataSetNames = PubSubConfiguration.ListAllPublishedDataSetNames Dim publishedDataSetName: For Each publishedDataSetName In PublishedDataSetNames WScript.Echo "Published dataset: " & publishedDataSetName ' You can use the statement below to obtain parameters of the published dataset. 'Dim PublishedDataSetElement: Set PublishedDataSetElement = PubSubConfiguration.GetPublishedDataSetElement(Nothing, publishedDataSetName) Next End Sub ' Example output: ' 'Loading the configuration... 'Published dataset: Simple 'Published dataset: AllTypes 'Published dataset: MassTest 'Published dataset: AllTypes-Dynamic 'Finished.
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.