Property Value
The value of this property cannot be null
(Nothing
in Visual Basic).
The default value of this property is "" (String.Empty)
.
OpcLabs.EasyOpcUA Assembly > OpcLabs.EasyOpc.UA.PubSub.Configuration Namespace > UABrokerDataSetReaderTransportParameters Class : QueueName Property |
[JetBrains.Annotations.NotNull()] public string QueueName {get; set;}
[JetBrains.Annotations.NotNull()] public: property String^ QueueName { String^ get(); void set ( String^ value); }
'Declaration
<JetBrains.Annotations.NotNullAttribute()> Public Property QueueName As String
'Usage
Dim instance As UABrokerDataSetReaderTransportParameters Dim value As String instance.QueueName = value value = instance.QueueName
The value of this property cannot be null
(Nothing
in Visual Basic).
The default value of this property is "" (String.Empty)
.
This could be the name of a queue or topic defined in the broker. This parameter is only valid if the network messages from the writer group contain only one dataset message.
With topic tree, if the metadata queue name is not specified, the name of the metadata queue will be constructed according to the topic tree rules.
When all queue names (such as QueueName and MetaDataQueueName) are unspecified (empty strings, which are the default), and the EffectiveTransportProfileUriString in the ConnectionDescriptor is for transport that uses the topic tree (such as MQTT), the EffectiveAssumeTopicTree becomes true
, and you do not have to set AssumeTopicTree to true
explicitly in order for the topic tree to be assumed.
CAUTION: With the topic tree (AssumeTopicTree set to true
), do not set the queue names by setting values of QueueName or MetaDataQueueName, except in very special circumstances. Leave the queue names at their default values, i.e. empty strings. Setting queue names can interfere negatively with the built-in mechanism that determines the proper topic filters.
// This example shows how to subscribe to all dataset messages on an OPC-UA PubSub connection with MQTT JSON mapping using // TCP. // // The following package needs to be referenced in your project (or otherwise made available) for the MQTT transport to // work. // - OpcLabs.MqttNet // Refer to the documentation for more information. // // 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 System.Collections.Generic; using System.Threading; using OpcLabs.EasyOpc.UA.PubSub; using OpcLabs.EasyOpc.UA.PubSub.Engine; using OpcLabs.EasyOpc.UA.PubSub.OperationModel; namespace UASubscriberDocExamples.PubSub._EasyUASubscriber { partial class SubscribeDataSet { public static void MqttJsonTcp() { // Define the PubSub connection we will work with. Uses implicit conversion from a string. // Default port with MQTT is 1883. UAPubSubConnectionDescriptor pubSubConnectionDescriptor = "mqtt://opcua-pubsub.demo-this.com"; // Specify the transport protocol mapping. // The statement below isn't actually necessary, due to automatic message mapping recognition feature; see // https://kb.opclabs.com/OPC_UA_PubSub_Automatic_Message_Mapping_Recognition for more details. pubSubConnectionDescriptor.TransportProfileUriString = UAPubSubTransportProfileUriStrings.MqttJson; // Define the arguments for subscribing to the dataset, specifying the MQTT topic name. var subscribeDataSetArguments = new UASubscribeDataSetArguments(pubSubConnectionDescriptor) { DataSetSubscriptionDescriptor = {CommunicationParameters = {BrokerDataSetReaderTransportParameters = { QueueName = "opcuademo/json" }}} }; // Instantiate the subscriber object and hook events. var subscriber = new EasyUASubscriber(); subscriber.DataSetMessage += subscriber_DataSetMessage_MqttJsonTcp; Console.WriteLine("Subscribing..."); subscriber.SubscribeDataSet(subscribeDataSetArguments); Console.WriteLine("Processing dataset message events for 20 seconds..."); Thread.Sleep(20 * 1000); Console.WriteLine("Unsubscribing..."); subscriber.UnsubscribeAllDataSets(); Console.WriteLine("Waiting for 1 second..."); // Unsubscribe operation is asynchronous, messages may still come for a short while. Thread.Sleep(1 * 1000); Console.WriteLine("Finished."); } static void subscriber_DataSetMessage_MqttJsonTcp(object sender, EasyUADataSetMessageEventArgs e) { // Display the dataset. if (e.Succeeded) { // An event with null DataSetData just indicates a successful connection. if (!(e.DataSetData is null)) { Console.WriteLine(); Console.WriteLine($"Dataset data: {e.DataSetData}"); foreach (KeyValuePair<string, UADataSetFieldData> pair in e.DataSetData.FieldDataDictionary) Console.WriteLine(pair); } } else { Console.WriteLine(); Console.WriteLine($"*** Failure: {e.ErrorMessage}"); } } // Example output: // //Subscribing... //Processing dataset message events for 20 seconds... // //Dataset data: 2020-01-21T17:07:19.778,836,700,00; Good; Data; publisher=[String]31, class=eae79794-1af7-4f96-8401-4096cd1d8908, fields: 4 //[BoolToggle, True {System.Boolean} @2020-01-21T16:07:19.778,836,700,00; Good] //[Int32, 482 {System.Int64} @2020-01-21T16:07:19.778,836,700,00; Good] //[Int32Fast, 2287 {System.Int64} @2020-01-21T16:07:19.778,836,700,00; Good] //[DateTime, 1/21/2020 5:07:19 PM {System.DateTime} @2020-01-21T16:07:19.778,836,700,00; Good] // //Dataset data: Good; Data; publisher=[String]32, fields: 4 //[BoolToggle, True {System.Boolean}; Good] //[Int32, 482 {System.Int32}; Good] //[Int32Fast, 2287 {System.Int32}; Good] //[DateTime, 1/21/2020 5:07:19 PM {System.DateTime}; Good] // //Dataset data: Good; Data; publisher=[String]32, fields: 100 //[Mass_0, 82 {System.Int64}; Good] //[Mass_1, 182 {System.Int64}; Good] //[Mass_2, 282 {System.Int64}; Good] //[Mass_3, 382 {System.Int64}; Good] //[Mass_4, 482 {System.Int64}; Good] //[Mass_5, 582 {System.Int64}; Good] //[Mass_6, 682 {System.Int64}; Good] //[Mass_7, 782 {System.Int64}; Good] //[Mass_8, 882 {System.Int64}; Good] //[Mass_9, 982 {System.Int64}; Good] //[Mass_10, 1082 {System.Int64}; Good] ////... } }
' This example shows how to subscribe to all dataset messages on an OPC-UA PubSub connection with MQTT JSON mapping using ' TCP. ' ' The following package needs to be referenced in your project (or otherwise made available) for the MQTT transport to ' work. ' - OpcLabs.MqttNet ' Refer to the documentation for more information. ' ' 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.PubSub Imports OpcLabs.EasyOpc.UA.PubSub.Engine Imports OpcLabs.EasyOpc.UA.PubSub.OperationModel Namespace PubSub._EasyUASubscriber Partial Friend Class SubscribeDataSet Public Shared Sub MqttJsonTcp() ' Define the PubSub connection we will work with. Uses implicit conversion from a string. ' Default port with MQTT is 1883. Dim pubSubConnectionDescriptor As UAPubSubConnectionDescriptor = "mqtt://opcua-pubsub.demo-this.com" ' Specify the transport protocol mapping. ' The statement below isn't actually necessary, due to automatic message mapping recognition feature; see ' https://kb.opclabs.com/OPC_UA_PubSub_Automatic_Message_Mapping_Recognition for more details. pubSubConnectionDescriptor.TransportProfileUriString = UAPubSubTransportProfileUriStrings.MqttJson ' Define the arguments for subscribing to the dataset, specifying the MQTT topic name. Dim subscribeDataSetArguments = New UASubscribeDataSetArguments(pubSubConnectionDescriptor) subscribeDataSetArguments.DataSetSubscriptionDescriptor.CommunicationParameters.BrokerDataSetReaderTransportParameters.QueueName = "opcuademo/json" ' Instantiate the subscriber object and hook events. Dim subscriber = New EasyUASubscriber() AddHandler subscriber.DataSetMessage, AddressOf subscriber_DataSetMessage_MqttJsonTcp Console.WriteLine("Subscribing...") subscriber.SubscribeDataSet(subscribeDataSetArguments) Console.WriteLine("Processing dataset message events for 20 seconds...") Threading.Thread.Sleep(20 * 1000) Console.WriteLine("Unsubscribing...") subscriber.UnsubscribeAllDataSets() Console.WriteLine("Waiting for 1 second...") ' Unsubscribe operation is asynchronous, messages may still come for a short while. Threading.Thread.Sleep(1 * 1000) Console.WriteLine("Finished...") End Sub Private Shared Sub subscriber_DataSetMessage_MqttJsonTcp(ByVal sender As Object, ByVal e As EasyUADataSetMessageEventArgs) ' Display the dataset. If e.Succeeded Then ' An event with null DataSetData just indicates a successful connection. If e.DataSetData IsNot Nothing Then Console.WriteLine() Console.WriteLine($"Dataset data: {e.DataSetData}") For Each pair As KeyValuePair(Of String, UADataSetFieldData) In e.DataSetData.FieldDataDictionary Console.WriteLine(pair) Next End If Else Console.WriteLine() Console.WriteLine($"*** Failure: {e.ErrorMessage}") End If End Sub ' Example output: ' 'Subscribing... 'Processing dataset message events for 20 seconds... ' 'Dataset data: 2020-01-21T17:07:19.778,836,700,00; Good; Data; publisher=[String]31, class=eae79794-1af7-4f96-8401-4096cd1d8908, fields: 4 '[BoolToggle, True {System.Boolean} @2020-01-21T16:07:19.778,836,700,00; Good] '[Int32, 482 {System.Int64} @2020-01-21T16:07:19.778,836,700,00; Good] '[Int32Fast, 2287 {System.Int64} @2020-01-21T16:07:19.778,836,700,00; Good] '[DateTime, 1/21/2020 5:07:19 PM {System.DateTime} @2020-01-21T16:07:19.778,836,700,00; Good] ' 'Dataset data: Good; Data; publisher=[String]32, fields: 4 '[BoolToggle, True {System.Boolean}; Good] '[Int32, 482 {System.Int32}; Good] '[Int32Fast, 2287 {System.Int32}; Good] '[DateTime, 1/21/2020 5:07:19 PM {System.DateTime}; Good] ' 'Dataset data: Good; Data; publisher=[String]32, fields: 100 '[Mass_0, 82 {System.Int64}; Good] '[Mass_1, 182 {System.Int64}; Good] '[Mass_2, 282 {System.Int64}; Good] '[Mass_3, 382 {System.Int64}; Good] '[Mass_4, 482 {System.Int64}; Good] '[Mass_5, 582 {System.Int64}; Good] '[Mass_6, 682 {System.Int64}; Good] '[Mass_7, 782 {System.Int64}; Good] '[Mass_8, 882 {System.Int64}; Good] '[Mass_9, 982 {System.Int64}; Good] '[Mass_10, 1082 {System.Int64}; Good] '... End Class End Namespace
REM The following package needs to be referenced in your project (or otherwise made available) for the MQTT transport to REM work. REM - OpcLabs.MqttNet REM Refer to the documentation for more information. 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 Visual Basic on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VB . 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. ' The subscriber object, with events 'Public WithEvents Subscriber4 As EasyUASubscriber Private Sub EasyUASubscriber_SubscribeDataSet_MqttJsonTcp_Command_Click() OutputText = "" ' Define the PubSub connection we will work with. Uses implicit conversion from a string. ' Default port with MQTT is 1883. Dim subscribeDataSetArguments As New EasyUASubscribeDataSetArguments Dim pubSubConnectionDescriptor As UAPubSubConnectionDescriptor Set pubSubConnectionDescriptor = subscribeDataSetArguments.dataSetSubscriptionDescriptor.ConnectionDescriptor pubSubConnectionDescriptor.ResourceAddress.ResourceDescriptor.UrlString = "mqtt://opcua-pubsub.demo-this.com:1883" ' Specify the transport protocol mapping. ' The statement below isn't actually necessary, due to automatic message mapping recognition feature; see ' https://kb.opclabs.com/OPC_UA_PubSub_Automatic_Message_Mapping_Recognition for more details. pubSubConnectionDescriptor.TransportProfileUriString = "http://opcfoundation.org/UA-Profile/Transport/pubsub-mqtt-json" ' UAPubSubTransportProfileUriStrings.MqttJson ' Define the arguments for subscribing to the dataset, specifying the MQTT topic name. subscribeDataSetArguments.dataSetSubscriptionDescriptor.CommunicationParameters.BrokerDataSetReaderTransportParameters.QueueName = "opcuademo/json" ' Instantiate the subscriber object and hook events. Set Subscriber4 = New EasyUASubscriber OutputText = OutputText & "Subscribing..." & vbCrLf Call Subscriber4.SubscribeDataSet(subscribeDataSetArguments) OutputText = OutputText & "Processing dataset message for 20 seconds..." & vbCrLf Pause 20000 OutputText = OutputText & "Unsubscribing..." & vbCrLf Subscriber4.UnsubscribeAllDataSets OutputText = OutputText & "Waiting for 1 second..." & vbCrLf ' Unsubscribe operation is asynchronous, messages may still come for a short while. Pause 1000 Set Subscriber1 = Nothing OutputText = OutputText & "Finished." & vbCrLf End Sub Private Sub Subscriber4_DataSetMessage(ByVal sender As Variant, ByVal eventArgs As EasyUADataSetMessageEventArgs) ' Display the dataset If eventArgs.Succeeded Then ' An event with null DataSetData just indicates a successful connection. If Not eventArgs.DataSetData Is Nothing Then OutputText = OutputText & vbCrLf OutputText = OutputText & "Dataset data: " & eventArgs.DataSetData & vbCrLf Dim dictionaryEntry2 : For Each dictionaryEntry2 In eventArgs.DataSetData.FieldDataDictionary OutputText = OutputText & dictionaryEntry2 & vbCrLf Next End If Else OutputText = OutputText & vbCrLf OutputText = OutputText & eventArgs.ErrorMessageBrief & vbCrLf End If End Sub ' Example output: ' 'Subscribing... 'Processing dataset message events for 20 seconds... ' 'Dataset data: 2020-01-21T17:07:19.778,836,700,00; Good; Data; publisher=[String]31, class=eae79794-1af7-4f96-8401-4096cd1d8908, fields: 4 '[BoolToggle, True {System.Boolean} @2020-01-21T16:07:19.778,836,700,00; Good] '[Int32, 482 {System.Int64} @2020-01-21T16:07:19.778,836,700,00; Good] '[Int32Fast, 2287 {System.Int64} @2020-01-21T16:07:19.778,836,700,00; Good] '[DateTime, 1/21/2020 5:07:19 PM {System.DateTime} @2020-01-21T16:07:19.778,836,700,00; Good] ' 'Dataset data: Good; Data; publisher=[String]32, fields: 4 '[BoolToggle, True {System.Boolean}; Good] '[Int32, 482 {System.Int32}; Good] '[Int32Fast, 2287 {System.Int32}; Good] '[DateTime, 1/21/2020 5:07:19 PM {System.DateTime}; Good] ' 'Dataset data: Good; Data; publisher=[String]32, fields: 100 '[Mass_0, 82 {System.Int64}; Good] '[Mass_1, 182 {System.Int64}; Good] '[Mass_2, 282 {System.Int64}; Good] '[Mass_3, 382 {System.Int64}; Good] '[Mass_4, 482 {System.Int64}; Good] '[Mass_5, 582 {System.Int64}; Good] '[Mass_6, 682 {System.Int64}; Good] '[Mass_7, 782 {System.Int64}; Good] '[Mass_8, 882 {System.Int64}; Good] '[Mass_9, 982 {System.Int64}; Good] '[Mass_10, 1082 {System.Int64}; Good] '...
# This example shows how to subscribe to all dataset messages on an OPC-UA PubSub connection with MQTT JSON mapping using # TCP. # # The following package needs to be referenced in your project (or otherwise made available) for the MQTT transport to # work. # - OpcLabs.MqttNet # Refer to the documentation for more information. # # 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 opclabs_mqttnet import time # Import .NET namespaces. from OpcLabs.EasyOpc.UA.PubSub import * from OpcLabs.EasyOpc.UA.PubSub.Engine import * from OpcLabs.EasyOpc.UA.PubSub.OperationModel import * def dataSetMessage(sender, e): # Display the dataset. if e.Succeeded: # An event with null DataSetData just indicates a successful connection. if e.DataSetData is not None: print('') print('Dataset data: ', e.DataSetData, sep='') for pair in e.DataSetData.FieldDataDictionary: print(pair) else: print('') print('*** Failure: ', e.ErrorMessageBrief, sep='') print('*** Failure: ', e.Exception, sep='') # Define the PubSub connection we will work with. Uses implicit conversion from a string. # Default port with MQTT is 1883. pubSubConnectionDescriptor = UAPubSubConnectionDescriptor.op_Implicit('mqtt://opcua-pubsub.demo-this.com') # Specify the transport protocol mapping. # The statement below isn't actually necessary, due to automatic message mapping recognition feature; see # https://kb.opclabs.com/OPC_UA_PubSub_Automatic_Message_Mapping_Recognition for more details. pubSubConnectionDescriptor.TransportProfileUriString = UAPubSubTransportProfileUriStrings.MqttJson # Define the arguments for subscribing to the dataset, specifying the MQTT topic name. subscribeDataSetArguments = UASubscribeDataSetArguments(pubSubConnectionDescriptor) subscribeDataSetArguments.DataSetSubscriptionDescriptor.CommunicationParameters.BrokerDataSetReaderTransportParameters.\ QueueName = 'opcuademo/json' # Instantiate the subscriber object and hook events. subscriber = EasyUASubscriber() subscriber.DataSetMessage += dataSetMessage print('Subscribing...') IEasyUASubscriberExtension.SubscribeDataSet(subscriber, subscribeDataSetArguments) print('Processing dataset message events for 20 seconds...') time.sleep(20) print('Unsubscribing...') subscriber.UnsubscribeAllDataSets() print('Waiting for 1 second...') # Unsubscribe operation is asynchronous, messages may still come for a short while. time.sleep(1) subscriber.DataSetMessage -= dataSetMessage print('Finished.')
// This example shows how to subscribe to all dataset messages on an OPC-UA PubSub connection with MQTT UADP mapping using // TCP. // // The OpcLabs.MqttNet assembly needs to be referenced in your project (or otherwise made available, together with its // dependencies) for the MQTT transport to work. Refer to the documentation for more information. // // 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 System.Collections.Generic; using System.Threading; using OpcLabs.EasyOpc.UA.PubSub; using OpcLabs.EasyOpc.UA.PubSub.Engine; using OpcLabs.EasyOpc.UA.PubSub.OperationModel; namespace UASubscriberDocExamples.PubSub._EasyUASubscriber { partial class SubscribeDataSet { public static void MqttUadpTcp() { // Define the PubSub connection we will work with. Uses implicit conversion from a string. // Default port with MQTT is 1883. UAPubSubConnectionDescriptor pubSubConnectionDescriptor = "mqtt://opcua-pubsub.demo-this.com"; // Specify the transport protocol mapping. // The statement below isn't actually necessary, due to automatic message mapping recognition feature; see // https://kb.opclabs.com/OPC_UA_PubSub_Automatic_Message_Mapping_Recognition for more details. pubSubConnectionDescriptor.TransportProfileUriString = UAPubSubTransportProfileUriStrings.MqttUadp; // Define the arguments for subscribing to the dataset, specifying the MQTT topic name. var subscribeDataSetArguments = new UASubscribeDataSetArguments(pubSubConnectionDescriptor) { DataSetSubscriptionDescriptor = {CommunicationParameters = {BrokerDataSetReaderTransportParameters = { QueueName = "opcuademo/uadp/none" }}} }; // Instantiate the subscriber object and hook events. var subscriber = new EasyUASubscriber(); subscriber.DataSetMessage += subscriber_DataSetMessage_MqttUadpTcp; Console.WriteLine("Subscribing..."); subscriber.SubscribeDataSet(subscribeDataSetArguments); Console.WriteLine("Processing dataset message events for 20 seconds..."); Thread.Sleep(20 * 1000); Console.WriteLine("Unsubscribing..."); subscriber.UnsubscribeAllDataSets(); Console.WriteLine("Waiting for 1 second..."); // Unsubscribe operation is asynchronous, messages may still come for a short while. Thread.Sleep(1 * 1000); Console.WriteLine("Finished."); } static void subscriber_DataSetMessage_MqttUadpTcp(object sender, EasyUADataSetMessageEventArgs e) { // Display the dataset. if (e.Succeeded) { // An event with null DataSetData just indicates a successful connection. if (!(e.DataSetData is null)) { Console.WriteLine(); Console.WriteLine($"Dataset data: {e.DataSetData}"); foreach (KeyValuePair<string, UADataSetFieldData> pair in e.DataSetData.FieldDataDictionary) Console.WriteLine(pair); } } else { Console.WriteLine(); Console.WriteLine($"*** Failure: {e.ErrorMessage}"); } } // Example output: // //Subscribing... //Processing dataset message events for 20 seconds... // //Dataset data: Good; Data; publisher="32", writer=1, class=eae79794-1af7-4f96-8401-4096cd1d8908, fields: 4 //[#0, False {System.Boolean}; Good] //[#1, 6685 {System.Int32}; Good] //[#2, 1444 {System.Int32}; Good] //[#3, 1/4/2020 6:06:20 PM {System.DateTime}; Good] // //Dataset data: Good; Data; publisher="32", writer=3, class=96976b7b-0db7-46c3-a715-0979884b55ae, fields: 100 //[#0, 85 {System.Int64}; Good] //[#1, 185 {System.Int64}; Good] //[#2, 285 {System.Int64}; Good] //[#3, 385 {System.Int64}; Good] //[#4, 485 {System.Int64}; Good] //[#5, 585 {System.Int64}; Good] //[#6, 685 {System.Int64}; Good] //[#7, 785 {System.Int64}; Good] //[#8, 885 {System.Int64}; Good] //[#9, 985 {System.Int64}; Good] //[#10, 1085 {System.Int64}; Good] //... } }
' This example shows how to subscribe to all dataset messages on an OPC-UA PubSub connection with MQTT UADP mapping using ' TCP. ' ' The OpcLabs.MqttNet assembly needs to be referenced in your project (or otherwise made available, together with its ' dependencies) for the MQTT transport to work. Refer to the documentation for more information. ' ' 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.PubSub Imports OpcLabs.EasyOpc.UA.PubSub.Engine Imports OpcLabs.EasyOpc.UA.PubSub.OperationModel Namespace PubSub._EasyUASubscriber Partial Friend Class SubscribeDataSet Public Shared Sub MqttUadpTcp() ' Define the PubSub connection we will work with. Uses implicit conversion from a string. ' Default port with MQTT is 1883. Dim pubSubConnectionDescriptor As UAPubSubConnectionDescriptor = "mqtt://opcua-pubsub.demo-this.com" ' Specify the transport protocol mapping. ' The statement below isn't actually necessary, due to automatic message mapping recognition feature; see ' https://kb.opclabs.com/OPC_UA_PubSub_Automatic_Message_Mapping_Recognition for more details. pubSubConnectionDescriptor.TransportProfileUriString = UAPubSubTransportProfileUriStrings.MqttUadp ' Define the arguments for subscribing to the dataset, specifying the MQTT topic name. Dim subscribeDataSetArguments = New UASubscribeDataSetArguments(pubSubConnectionDescriptor) subscribeDataSetArguments.DataSetSubscriptionDescriptor.CommunicationParameters.BrokerDataSetReaderTransportParameters.QueueName = "opcuademo/uadp/none" ' Instantiate the subscriber object and hook events. Dim subscriber = New EasyUASubscriber() AddHandler subscriber.DataSetMessage, AddressOf subscriber_DataSetMessage_MqttUadpTcp Console.WriteLine("Subscribing...") subscriber.SubscribeDataSet(subscribeDataSetArguments) Console.WriteLine("Processing dataset message events for 20 seconds...") Threading.Thread.Sleep(20 * 1000) Console.WriteLine("Unsubscribing...") subscriber.UnsubscribeAllDataSets() Console.WriteLine("Waiting for 1 second...") ' Unsubscribe operation is asynchronous, messages may still come for a short while. Threading.Thread.Sleep(1 * 1000) Console.WriteLine("Finished...") End Sub Private Shared Sub subscriber_DataSetMessage_MqttUadpTcp(ByVal sender As Object, ByVal e As EasyUADataSetMessageEventArgs) ' Display the dataset. If e.Succeeded Then ' An event with null DataSetData just indicates a successful connection. If e.DataSetData IsNot Nothing Then Console.WriteLine() Console.WriteLine($"Dataset data: {e.DataSetData}") For Each pair As KeyValuePair(Of String, UADataSetFieldData) In e.DataSetData.FieldDataDictionary Console.WriteLine(pair) Next End If Else Console.WriteLine() Console.WriteLine($"*** Failure: {e.ErrorMessage}") End If End Sub ' Example output: ' 'Subscribing... 'Processing dataset message events for 20 seconds... ' 'Dataset data: Good; Data; publisher="32", writer=1, class=eae79794-1af7-4f96-8401-4096cd1d8908, fields: 4 '[#0, False {System.Boolean}; Good] '[#1, 6685 {System.Int32}; Good] '[#2, 1444 {System.Int32}; Good] '[#3, 1/4/2020 6:06:20 PM {System.DateTime}; Good] ' 'Dataset data: Good; Data; publisher="32", writer=3, class=96976b7b-0db7-46c3-a715-0979884b55ae, fields: 100 '[#0, 85 {System.Int64}; Good] '[#1, 185 {System.Int64}; Good] '[#2, 285 {System.Int64}; Good] '[#3, 385 {System.Int64}; Good] '[#4, 485 {System.Int64}; Good] '[#5, 585 {System.Int64}; Good] '[#6, 685 {System.Int64}; Good] '[#7, 785 {System.Int64}; Good] '[#8, 885 {System.Int64}; Good] '[#9, 985 {System.Int64}; Good] '[#10, 1085 {System.Int64}; Good] '... End Class End Namespace
# This example shows how to subscribe to all dataset messages on an OPC-UA PubSub connection with MQTT UADP mapping # using TCP. # # The following package needs to be referenced in your project (or otherwise made available) for the MQTT transport to # work. # - OpcLabs.MqttNet # Refer to the documentation for more information. # # 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 time # Import .NET namespaces. from OpcLabs.EasyOpc.UA.PubSub import * from OpcLabs.EasyOpc.UA.PubSub.Engine import * from OpcLabs.EasyOpc.UA.PubSub.OperationModel import * def dataSetMessage(sender, e): # Display the dataset. if e.Succeeded: # An event with null DataSetData just indicates a successful connection. if e.DataSetData is not None: print('') print('Dataset data: ', e.DataSetData, sep='') for pair in e.DataSetData.FieldDataDictionary: print(pair) else: print('') print('*** Failure: ', e.ErrorMessageBrief, sep='') # Define the PubSub connection we will work with. Uses implicit conversion from a string. # Default port with MQTT is 1883. pubSubConnectionDescriptor = UAPubSubConnectionDescriptor.op_Implicit('mqtt://opcua-pubsub.demo-this.com') # Specify the transport protocol mapping. # The statement below isn't actually necessary, due to automatic message mapping recognition feature; see # https://kb.opclabs.com/OPC_UA_PubSub_Automatic_Message_Mapping_Recognition for more details. pubSubConnectionDescriptor.TransportProfileUriString = UAPubSubTransportProfileUriStrings.MqttUadp # Define the arguments for subscribing to the dataset, specifying the MQTT topic name. subscribeDataSetArguments = UASubscribeDataSetArguments(pubSubConnectionDescriptor) subscribeDataSetArguments.DataSetSubscriptionDescriptor.CommunicationParameters.BrokerDataSetReaderTransportParameters.\ QueueName = 'opcuademo/uadp/none' # Instantiate the subscriber object and hook events. subscriber = EasyUASubscriber() subscriber.DataSetMessage += dataSetMessage print('Subscribing...') IEasyUASubscriberExtension.SubscribeDataSet(subscriber, subscribeDataSetArguments) print('Processing dataset message events for 20 seconds...') time.sleep(20) print('Unsubscribing...') subscriber.UnsubscribeAllDataSets() print('Waiting for 1 second...') # Unsubscribe operation is asynchronous, messages may still come for a short while. time.sleep(1) subscriber.DataSetMessage -= dataSetMessage print('Finished.')
Target Platforms: .NET Framework: Windows 10 (selected versions), Windows 11 (selected versions), Windows Server 2016, Windows Server 2022; .NET: Linux, macOS, Microsoft Windows
Copyright © 2004-2025 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Documentation Home, Send 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.