如何获取 .Net C# 上的 OPC UA 服务器列表?
Posted
技术标签:
【中文标题】如何获取 .Net C# 上的 OPC UA 服务器列表?【英文标题】:How can I get the list of OPC UA servers on .Net C#? 【发布时间】:2015-02-03 14:25:29 【问题描述】:我正在用 C# 编写一个 OPC 代理程序。我想获取localhost
或机器远程上所有 OPC-Server 的列表。我正在使用来自 OPC Foundation V1.26 的 OPC UA .NET
我的灵感来自 Softing 的“sampleDiscovery-Programm”,现在我的服务器列表为 ApplicationDescription
。
现在我想查看指定服务器的连接客户端。使用 Softing 的示例“servers_control-Programm”,我可以看到服务器的所有客户端。但是这个类的构造器需要StandardServer
和ApplicationConfiguration
这样的服务器
public ServerForm(StandardServer server, ApplicationConfiguration configuration)
InitializeComponent();
m_server = server;
m_configuration = configuration;
this.ServerDiagnosticsCTRL.Initialize(m_server, m_configuration);
TrayIcon.Text = this.Text = m_configuration.ApplicationName;
this.Icon = TrayIcon.Icon = ConfigUtils.GetAppIcon();
如何将主服务器用作ApplicationDescription
,将服务器用作标准服务器?
【问题讨论】:
到目前为止你有没有尝试过?请说明您的情况和面临的问题 为什么我可以从服务器获得一个具有 ApplicationDescription 类型的 currentInstance? 【参考方案1】:您可以使用OPC Labs Quick OPC Calssic
获取VB.NET
中的OPC UA servers
列表。
从http://opclabs.com/products/quickopc/downloads
下载并安装QuickOPC 5.23(.NET Framework 3.5 or 4.0)
或QuickOPC 5.31(.NET Framework 4.5)
VB.NET 代码:
' Instantiate the client object
Dim easyUAClient = New EasyUAClient()
' Obtain collection of server elements
Dim applicationElementCollection As UAApplicationElementCollection = easyUAClient.DiscoverServers()
' Display results
For Each applicationElement As UAApplicationElement In applicationElementCollection
Console.WriteLine("applicationElementCollection[""0""].ApplicationUriString: 1", _
applicationElement.DiscoveryUriString, applicationElement.ApplicationUriString)
Next applicationElement
【讨论】:
以上是关于如何获取 .Net C# 上的 OPC UA 服务器列表?的主要内容,如果未能解决你的问题,请参考以下文章