opc-ua-client:使用OPC统一体系结构与Visual Studio实现数据交互
欢迎使用opc-ua-client资源库!这是一个基于OPC统一体系结构(OPC UA)和Visual Studio的客户端库,帮助您的应用程序实现与OPC UA服务器之间的实时数据通信。
库功能简介
opc-ua-client库支持多种应用程序平台,包括.NET Core、通用Windows平台(UWP)、Windows Presentation Framework(WPF)和Xamarin。通过使用此库,您的应用程序可以轻松实现以下功能:
- 浏览OPC UA服务器上的数据
- 读取由OPC UA服务器发布的实时数据
- 向OPC UA服务器写入数据
- 订阅OPC UA服务器上的数据变化,实现实时通知
快速入门
要开始使用opc-ua-client库,请首先安装Workstation.UaClient软件包,以获取适用于您的hmi项目的最新版本。以下是使用该库从公共OPC UA服务器读取变量ServerStatus的示例:
using System;
using System.Threading.Tasks;
using Workstation.ServiceModel.Ua;
using Workstation.ServiceModel.Ua.Channels;
// ...
// 创建OPC UA客户端实例
var endpointURL = "opc.tcp://localhost:4840";
var endpointDescription = CoreClientUtils.SelectEndpoint(endpointURL, false);
var config = new ApplicationConfiguration()
{
ApplicationName = "OPC UA Client",
ApplicationUri = Utils.Format(@"urn:{0}:OPC UA Client", System.Net.Dns.GetHostName()),
ApplicationType = ApplicationType.Client,
SecurityConfiguration = new SecurityConfiguration
{
ApplicationCertificate = new CertificateIdentifier
{
StoreType = @"Directory",
StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\MachineDefault",
SubjectName = "OPC UA Client"
},
TrustedPeerCertificates = new CertificateTrustList
{
StoreType = @"Directory",
StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\UA Applications",
},
TrustedIssuerCertificates = new CertificateTrustList
{
StoreType = @"Directory",
StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\UA Certificate Authorities",
},
RejectedCertificateStore = new CertificateTrustList
{
StoreType = @"Directory",
StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\RejectedCertificates",
},
AutoAcceptUntrustedCertificates = true,
},
TransportConfigurations = new TransportConfigurationCollection(),
TransportQuotas = new TransportQuotas { OperationTimeout = 15000 },
ClientConfiguration = new ClientConfiguration { DefaultSessionTimeout = 60000 }
};
config.Validate(ApplicationType.Client).GetAwaiter().GetResult();
// 创建OPC UA客户端会话
var session = await Session.Create(config, endpointDescription, false, "", 60000, null, null);
// 读取变量ServerStatus
var nodeId = new NodeId("ns=2;s=Demo.Static.Scalar.Double");
var dataValue = await session.ReadValue(nodeId);
// 输出变量值
Console.WriteLine($"ServerStatus: {dataValue.Value}");
// 关闭OPC UA客户端会话
session.Close();
注意事项
在使用opc-ua-client库时,请注意以下事项:
- 确保已安装Workstation.UaClient软件包
- 根据实际需求配置OPC UA服务器的地址和端口
- 根据实际需求配置OPC UA服务器的证书和认证方式
希望opc-ua-client库能够为您的项目带来便利,祝您使用愉快!