Parameters
- dataSetWriterId
- The dataset writer Id.
Valid values of this parameter are in the range from
0
to65535
.
Return Value
This method can return null
(Nothing
in Visual Basic).
OpcLabs.EasyOpcUA Assembly > OpcLabs.EasyOpc.UA.PubSub Namespace > UADataSetWriterDescriptor Class > Implicit Type Conversion Operator : Implicit Type Conversion(UADataSetWriterDescriptor,Int32) Operator |
Valid values of this parameter are in the range from 0
to 65535
.
[CanBeNull()] public UADataSetWriterDescriptor operator implicit( int dataSetWriterId )
[CanBeNull()] public: operator UADataSetWriterDescriptor^ ( int dataSetWriterId )
'Declaration
<CanBeNullAttribute()> Overloads Public Operator Widening CType( _ ByVal dataSetWriterId As Integer _ ) As UADataSetWriterDescriptor
'Usage
Valid values of this parameter are in the range from 0
to 65535
.
This method can return null
(Nothing
in Visual Basic).
This operator is equivalent to FromInt32.
// This example shows how to subscribe to dataset messages and specify a filter, on an OPC-UA PubSub connection with // UDP UADP mapping. // // In order to produce network messages for this example, run the UADemoPublisher tool. For documentation, see // https://kb.opclabs.com/UADemoPublisher_Basics . In some cases, you may have to specify the interface name to be used. // // 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.OperationModel; namespace UASubscriberDocExamples.PubSub._EasyUASubscriber { partial class SubscribeDataSet { public static void Filter() { // Define the PubSub connection we will work with. Uses implicit conversion from a string. UAPubSubConnectionDescriptor pubSubConnectionDescriptor = "opc.udp://239.0.0.1"; // In some cases you may have to set the interface (network adapter) name that needs to be used, similarly to // the statement below. Your actual interface name may differ, of course. //pubSubConnectionDescriptor.ResourceAddress.InterfaceName = "Ethernet"; // Define the filter. Publisher Id (unsigned 64-bits) is 31, and the dataset writer Id is 1. var filter = new UASubscribeDataSetFilter( UAPublisherId.CreateUInt64(31), UAWriterGroupDescriptor.Null, dataSetWriterDescriptor: 1); // Instantiate the subscriber object and hook events. var subscriber = new EasyUASubscriber(); subscriber.DataSetMessage += subscriber_DataSetMessage_Filter; Console.WriteLine("Subscribing..."); subscriber.SubscribeDataSet(pubSubConnectionDescriptor, filter); 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_Filter(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.ErrorMessageBrief}"); } } // Example output: // //Subscribing... //Processing dataset message events for 20 seconds... // //Dataset data: Good; Data; publisher=(UInt64)31, writer=1, fields: 4 //[#0, True {System.Boolean}; Good] //[#1, 7134 {System.Int32}; Good] //[#2, 7364 {System.Int32}; Good] //[#3, 10/1/2019 10:42:16 AM {System.DateTime}; Good] // //Dataset data: Good; Data; publisher=(UInt64)31, writer=1, fields: 4 //[#1, 7135 {System.Int32}; Good] //[#2, 7429 {System.Int32}; Good] //[#3, 10/1/2019 10:42:17 AM {System.DateTime}; Good] //[#0, True {System.Boolean}; Good] // //Dataset data: Good; Data; publisher=(UInt64)31, writer=1, fields: 4 //[#2, 7495 {System.Int32}; Good] //[#3, 10/1/2019 10:42:17 AM {System.DateTime}; Good] //[#0, True {System.Boolean}; Good] //[#1, 7135 {System.Int32}; Good] // //Dataset data: Good; Data; publisher=(UInt64)31, writer=1, fields: 4 //[#1, 7136 {System.Int32}; Good] //[#2, 7560 {System.Int32}; Good] //[#3, 10/1/2019 10:42:18 AM {System.DateTime}; Good] //[#0, True {System.Boolean}; Good] // //Dataset data: Good; Data; publisher=(UInt64)31, writer=1, fields: 4 //[#2, 7626 {System.Int32}; Good] //[#3, 10/1/2019 10:42:18 AM {System.DateTime}; Good] //[#0, True {System.Boolean}; Good] //[#1, 7136 {System.Int32}; Good] // //... } }
' This example shows how to subscribe to dataset messages and specify a filter, on an OPC-UA PubSub connection with ' UDP UADP mapping. ' ' In order to produce network messages for this example, run the UADemoPublisher tool. For documentation, see ' https://kb.opclabs.com/UADemoPublisher_Basics . In some cases, you may have to specify the interface name to be used. ' ' 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.OperationModel Namespace PubSub._EasyUASubscriber Partial Friend Class SubscribeDataSet Public Shared Sub Filter() ' Define the PubSub connection we will work with. Uses implicit conversion from a string. Dim pubSubConnectionDescriptor As UAPubSubConnectionDescriptor = "opc.udp://239.0.0.1" ' In some cases you may have to set the interface (network adapter) name that needs to be used, similarly to ' the statement below. Your actual interface name may differ, of course. ' pubSubConnectionDescriptor.ResourceAddress.InterfaceName = "Ethernet" ' Define the filter. Publisher Id (unsigned 64-bits) is 31, and the dataset writer Id is 1. Dim filter = New UASubscribeDataSetFilter(UAPublisherId.CreateUInt64(31), UAWriterGroupDescriptor.Null, 1) ' Instantiate the subscriber object and hook events. Dim subscriber = New EasyUASubscriber() AddHandler subscriber.DataSetMessage, AddressOf subscriber_DataSetMessage_Filter Console.WriteLine("Subscribing...") subscriber.SubscribeDataSet(pubSubConnectionDescriptor, filter) 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_Filter(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.ErrorMessageBrief}") End If End Sub End Class ' Example output ' 'Subscribing... 'Processing dataset message events for 20 seconds... ' 'Dataset data: Good; Data; publisher=(UInt64)31, writer=1, fields: 4 '[#0, True {System.Boolean}; Good] '[#1, 7134 {System.Int32}; Good] '[#2, 7364 {System.Int32}; Good] '[#3, 10/1/2019 10:42:16 AM {System.DateTime}; Good] ' 'Dataset data: Good; Data; publisher=(UInt64)31, writer=1, fields: 4 '[#1, 7135 {System.Int32}; Good] '[#2, 7429 {System.Int32}; Good] '[#3, 10/1/2019 10:42:17 AM {System.DateTime}; Good] '[#0, True {System.Boolean}; Good] ' 'Dataset data: Good; Data; publisher=(UInt64)31, writer=1, fields: 4 '[#2, 7495 {System.Int32}; Good] '[#3, 10/1/2019 10:42:17 AM {System.DateTime}; Good] '[#0, True {System.Boolean}; Good] '[#1, 7135 {System.Int32}; Good] ' 'Dataset data: Good; Data; publisher=(UInt64)31, writer=1, fields: 4 '[#1, 7136 {System.Int32}; Good] '[#2, 7560 {System.Int32}; Good] '[#3, 10/1/2019 10:42:18 AM {System.DateTime}; Good] '[#0, True {System.Boolean}; Good] ' 'Dataset data: Good; Data; publisher=(UInt64)31, writer=1, fields: 4 '[#2, 7626 {System.Int32}; Good] '[#3, 10/1/2019 10:42:18 AM {System.DateTime}; Good] '[#0, True {System.Boolean}; Good] '[#1, 7136 {System.Int32}; Good] ' '... End Namespace
# This example shows how to subscribe to dataset messages and specify a filter, on an OPC-UA PubSub connection with # UDP UADP mapping. # # In order to produce network messages for this example, run the UADemoPublisher tool. For documentation, see # https://kb.opclabs.com/UADemoPublisher_Basics . In some cases, you may have to specify the interface name to be used. # # 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 System import * from OpcLabs.EasyOpc.UA.PubSub import * from OpcLabs.EasyOpc.UA.PubSub.Configuration 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. pubSubConnectionDescriptor = UAPubSubConnectionDescriptor.op_Implicit('opc.udp://239.0.0.1') # In some cases you may have to set the interface (network adapter) name that needs to be used, similarly to # the statement below. Your actual interface name may differ, of course. #pubSubConnectionDescriptor.ResourceAddress.InterfaceName = 'Ethernet' # Define the filter. Publisher Id (unsigned 64-bits) is 31, and the dataset writer Id is 1. filter = UASubscribeDataSetFilter(UAPublisherId.CreateUInt64(Decimal(31)), UAWriterGroupDescriptor.Null, UADataSetWriterDescriptor(1)) # dataSetWriterDescriptor # Instantiate the subscriber object and hook events. subscriber = EasyUASubscriber() subscriber.DataSetMessage += dataSetMessage print('Subscribing...') IEasyUASubscriberExtension.SubscribeDataSet(subscriber, pubSubConnectionDescriptor, filter) 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-2024 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.