// Shows how to find all registrations in the GDS. using System; using OpcLabs.EasyOpc.UA; using OpcLabs.EasyOpc.UA.Discovery; using OpcLabs.EasyOpc.UA.Extensions; using OpcLabs.EasyOpc.UA.Gds; using OpcLabs.EasyOpc.UA.OperationModel; namespace UADocExamples.Gds._EasyUAGlobalDiscoveryClient { class FindApplications { public static void Main1() { // Define which GDS we will work with. UAEndpointDescriptor gdsEndpointDescriptor = ((UAEndpointDescriptor)"opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer") .WithUserNameIdentity("appuser", "demo"); // Instantiate the global discovery client object var globalDiscoveryClient = new EasyUAGlobalDiscoveryClient(); // Find all (client or server) applications registered in the GDS. UAApplicationDescription[] applicationDescriptionArray; try { globalDiscoveryClient.QueryApplications( gdsEndpointDescriptor: gdsEndpointDescriptor, startingRecordId: 0, maximumRecordsToReturn: 0, applicationName: "", applicationUriString: "", applicationTypes: UAApplicationTypes.All, productUriString: "", serverCapabilities: new string[0], lastCounterResetTime: out _, nextRecordId: out _, applications: out applicationDescriptionArray); } catch (UAException uaException) { Console.WriteLine("*** Failure: {0}", uaException.GetBaseException().Message); return; } // For each application returned by the query, find its registrations in the GDS. foreach (UAApplicationDescription applicationDescription in applicationDescriptionArray) { Console.WriteLine(); Console.WriteLine("Application URI string: {0}", applicationDescription.ApplicationUriString); UAApplicationRecordDataType[] applicationRecordArray; try { applicationRecordArray = globalDiscoveryClient.FindApplications( gdsEndpointDescriptor, applicationDescription.ApplicationUriString); } catch (UAException uaException) { Console.WriteLine(" *** Failure: {0}", uaException.GetBaseException().Message); continue; } // Display results foreach (UAApplicationRecordDataType applicationRecord in applicationRecordArray) Console.WriteLine(" Application ID: {0}", applicationRecord.ApplicationId); } // Example output: // //Application URI string: urn:sampleserver // Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=09ecaa08-6ec6-462c-a214-1e66a3099107 // //Application URI string: urn:alarmconditionserver // Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=783e1e9a-8036-43b6-928f-97488c460266 // //Application URI string: urn:PC:MultiTargetUADocExamples:5.54.1026.1:neutral:null // Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=9e700ea5-55a6-4c3c-ba9f-b91c890dc519 // //Application URI string: urn:PC:UADocExamples:5.56.0.16:neutral:null // Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=e182e28c-086b-4fc7-82c7-70ca7cda3033 // //Application URI string: urn:PC:cscript:5.812.10240.16384 // Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=aec94459-f513-4979-8619-8383555fca61 } } }
# Shows how to find all registrations in the GDS. # 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.Discovery import * from OpcLabs.EasyOpc.UA.Extensions import * from OpcLabs.EasyOpc.UA.Gds import * from OpcLabs.EasyOpc.UA.OperationModel import * # Define which GDS we will work with. gdsEndpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer') gdsEndpointDescriptor = UAEndpointDescriptorExtension.WithUserNameIdentity(gdsEndpointDescriptor, 'appadmin', 'demo') # Instantiate the global discovery client object. globalDiscoveryClient = EasyUAGlobalDiscoveryClient() # Find all (client or server) applications registered in the GDS. try: _, _, _, applicationDescriptionArray = globalDiscoveryClient.QueryApplications( gdsEndpointDescriptor, 0, # startingRecordId 0, # maximumRecordsToReturn '', # applicationName '', # applicationUriString UAApplicationTypes.All, # applicationTypes '', # productUriString Array.Empty[String](), # serverCapabilities DateTime(), # out lastCounterResetTime 0, # out nextRecordId Array.Empty[UAApplicationDescription]()) # out applications except UAException as uaException: print('*** Failure: ' + uaException.GetBaseException().Message) exit() # For each application returned by the query, find its registrations in the GDS. for applicationDescription in applicationDescriptionArray: print() print('Application URI string: ', applicationDescription.ApplicationUriString, sep='') try: applicationRecordArray = globalDiscoveryClient.FindApplications( gdsEndpointDescriptor, applicationDescription.ApplicationUriString) except UAException as uaException: print(' *** Failure: ' + uaException.GetBaseException().Message) continue # Display results. for applicationRecord in applicationRecordArray: print(' Application ID: ', applicationRecord.ApplicationId, sep='') print() print('Finished.')
' Shows how to find all registrations in the GDS. Imports OpcLabs.EasyOpc.UA Imports OpcLabs.EasyOpc.UA.Discovery Imports OpcLabs.EasyOpc.UA.Extensions Imports OpcLabs.EasyOpc.UA.Gds Imports OpcLabs.EasyOpc.UA.OperationModel Namespace Gds._EasyUAGlobalDiscoveryClient Friend Class FindApplications Public Shared Sub Main1() ' Define which GDS we will work with. Dim gdsEndpointDescriptor As UAEndpointDescriptor = New UAEndpointDescriptor("opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer") _ .WithUserNameIdentity("appuser", "demo") ' Instantiate the global discovery client object Dim globalDiscoveryClient = New EasyUAGlobalDiscoveryClient() ' Find all (client or server) applications registered in the GDS. Dim applicationDescriptionArray() As UAApplicationDescription = Nothing Try Dim lastCounterResetTime As DateTime Dim nextRecordId As Long globalDiscoveryClient.QueryApplications( gdsEndpointDescriptor:=gdsEndpointDescriptor, startingRecordId:=0, maximumRecordsToReturn:=0, applicationName:="", applicationUriString:="", applicationTypes:=UAApplicationTypes.All, productUriString:="", serverCapabilities:=New String() {}, lastCounterResetTime:=lastCounterResetTime, nextRecordId:=nextRecordId, applications:=applicationDescriptionArray) Catch uaException As UAException Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message) Exit Sub End Try ' For each application returned by the query, find its registrations in the GDS. For Each applicationDescription As UAApplicationDescription In applicationDescriptionArray Console.WriteLine() Console.WriteLine("Application URI string: {0}", applicationDescription.ApplicationUriString) Dim applicationRecordArray() As UAApplicationRecordDataType Try applicationRecordArray = globalDiscoveryClient.FindApplications( gdsEndpointDescriptor, applicationDescription.ApplicationUriString) Catch uaException As UAException Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message) Continue For End Try ' Display results For Each applicationRecord As UAApplicationRecordDataType In applicationRecordArray Console.WriteLine(" Application ID: {0}", applicationRecord.ApplicationId) Next applicationRecord Next applicationDescription End Sub End Class End Namespace
// Shows how to find all registrations in the GDS. class procedure FindApplications.Main; var ApplicationDescription: _UAApplicationDescription; ApplicationDescriptionArray: OleVariant; ApplicationName: WideString; ApplicationRecord: _UAApplicationRecordDataType; ApplicationRecordArray: OleVariant; ApplicationUriString: WideString; GlobalDiscoveryClient: OpcLabs_EasyOpcUA_TLB._EasyUAGlobalDiscoveryClient; GdsEndpointDescriptor: _UAEndpointDescriptor; I, J: integer; LastCounterResetTime: TDateTime; MaximumRecordsToReturn: Integer; NextRecordId: Integer; ProductUriString: WideString; ServerCapabilities: array of string; StartingRecordId: Integer; begin // Define which GDS we will work with. GdsEndpointDescriptor := CoUAEndpointDescriptor.Create; GdsEndpointDescriptor.UrlString := 'opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer'; GdsEndpointDescriptor.UserIdentity.UserNameTokenInfo.UserName := 'appadmin'; GdsEndpointDescriptor.UserIdentity.UserNameTokenInfo.Password := 'demo'; // Instantiate the global discovery client object GlobalDiscoveryClient := CoEasyUAGlobalDiscoveryClient.Create; // Find all (client or server) applications registered in the GDS. StartingRecordId := 0; MaximumRecordsToReturn := 0; ApplicationName := ''; ApplicationUriString := ''; ProductUriString := ''; try GlobalDiscoveryClient.QueryApplications( GdsEndpointDescriptor, StartingRecordId, MaximumRecordsToReturn, ApplicationName, ApplicationUriString, UAApplicationTypes_All, ProductUriString, ServerCapabilities, LastCounterResetTime, NextRecordId, ApplicationDescriptionArray); except on E: EOleException do begin WriteLn(Format('*** Failure: %s', [E.GetBaseException.Message])); end; end; // For each application returned by the query, find its registrations in the GDS. for I := VarArrayLowBound(ApplicationDescriptionArray,1) to VarArrayHighBound(ApplicationDescriptionArray,1) do begin ApplicationDescription := IUnknown(ApplicationDescriptionArray[I]) as _UAApplicationDescription; WriteLn; WriteLn('Application URI string: ', ApplicationDescription.ApplicationUriString); try TVarData(ApplicationRecordArray).VType := varArray or varVariant; TVarData(ApplicationRecordArray).VArray := PVarArray( GlobalDiscoveryClient.FindApplications( GdsEndpointDescriptor, ApplicationDescription.ApplicationUriString)); except on E: EOleException do begin WriteLn(Format('*** Failure: %s', [E.GetBaseException.Message])); Continue; end; end; for J := VarArrayLowBound(ApplicationRecordArray, 1) to VarArrayHighBound(ApplicationRecordArray, 1) do begin // Display results ApplicationRecord := IUnknown(ApplicationRecordArray[J]) as _UAApplicationRecordDataType; WriteLn(' Application ID: ', ApplicationRecord.ApplicationId.ToString); end; end; // Example output: // //Application URI string: urn:sampleserver // Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=09ecaa08-6ec6-462c-a214-1e66a3099107 // //Application URI string: urn:alarmconditionserver // Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=783e1e9a-8036-43b6-928f-97488c460266 // //Application URI string: urn:PC:MultiTargetUADocExamples:5.54.1026.1:neutral:null // Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=9e700ea5-55a6-4c3c-ba9f-b91c890dc519 // //Application URI string: urn:PC:UADocExamples:5.56.0.16:neutral:null // Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=e182e28c-086b-4fc7-82c7-70ca7cda3033 // //Application URI string: urn:PC:cscript:5.812.10240.16384 // Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=aec94459-f513-4979-8619-8383555fca61 end;
Rem Shows how to find all registrations in the GDS. Option Explicit Const UAApplicationTypes_All = 7 ' Define which GDS we will work with. Dim GdsEndpointDescriptor: Set GdsEndpointDescriptor = CreateObject("OpcLabs.EasyOpc.UA.UAEndpointDescriptor") GdsEndpointDescriptor.UrlString = "opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer" GdsEndpointDescriptor.UserIdentity.UserNameTokenInfo.UserName = "appadmin" GdsEndpointDescriptor.UserIdentity.UserNameTokenInfo.Password = "demo" ' Instantiate the global discovery client object Dim GlobalDiscoveryClient: Set GlobalDiscoveryClient = CreateObject("OpcLabs.EasyOpc.UA.Gds.EasyUAGlobalDiscoveryClient") ' Find all (client or server) applications registered in the GDS. Dim startingRecordId: startingRecordId = 0 Dim maximumRecordsToReturn: maximumRecordsToReturn = 0 Dim applicationName: applicationName = "" Dim applicationUriString: applicationUriString = "" Dim productUriString: productUriString = "" Dim serverCapabilities: serverCapabilities = Array() Dim lastCounterResetTime Dim nextRecordId Dim applicationDescriptionArray On Error Resume Next GlobalDiscoveryClient.QueryApplications _ GdsEndpointDescriptor, _ startingRecordId, _ maximumRecordsToReturn, _ applicationName, _ applicationUriString, _ UAApplicationTypes_All, _ productUriString, _ serverCapabilities, _ lastCounterResetTime, _ nextRecordId, _ applicationDescriptionArray If Err.Number <> 0 Then WScript.Echo "*** Failure: " & Err.Source & ": " & Err.Description WScript.Quit End If On Error Goto 0 ' For each application returned by the query, find its registrations in the GDS. Dim ApplicationDescription For Each ApplicationDescription In applicationDescriptionArray WScript.Echo WScript.Echo "Application URI string: " & ApplicationDescription.ApplicationUriString On Error Resume Next Dim applicationRecordArray: applicationRecordArray = GlobalDiscoveryClient.FindApplications( _ gdsEndpointDescriptor, _ ApplicationDescription.ApplicationUriString) If Err.Number <> 0 Then WScript.Echo " *** Failure: " & Err.Source & ": " & Err.Description Else Dim ApplicationRecord For Each ApplicationRecord In applicationRecordArray ' Display results WScript.Echo " Application ID: " & ApplicationRecord.ApplicationId Next End If On Error Goto 0 Next ' Example output: ' 'Application URI string: urn:sampleserver ' Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=09ecaa08-6ec6-462c-a214-1e66a3099107 ' 'Application URI string: urn:alarmconditionserver ' Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=783e1e9a-8036-43b6-928f-97488c460266 ' 'Application URI string: urn:PC:MultiTargetUADocExamples:5.54.1026.1:neutral:null ' Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=9e700ea5-55a6-4c3c-ba9f-b91c890dc519 ' 'Application URI string: urn:PC:UADocExamples:5.56.0.16:neutral:null ' Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=e182e28c-086b-4fc7-82c7-70ca7cda3033 ' 'Application URI string: urn:PC:cscript:5.812.10240.16384 ' Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=aec94459-f513-4979-8619-8383555fca61
Copyright © 2004-2023 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base. Technical support: Online Forums, FAQ.