OPC-UA客户端技术文档

OPC-UA客户端技术文档

opc-ua-client Visualize and control your enterprise using OPC Unified Architecture (OPC UA) and Visual Studio. opc-ua-client 项目地址: https://gitcode.com/gh_mirrors/op/opc-ua-client


安装指南

要开始使用opc-ua-client库,您需要确保您的开发环境已经准备了.NET Core或兼容的.NET环境。通过NuGet包管理器,您可以轻松地将所需的依赖项添加到项目中。

步骤1: 安装NuGet包

在Visual Studio或通过命令行,执行以下命令来安装最新的Workstation.UaClient包:

dotnet add package Workstation.UaClient

或者,在Package Manager Console中:

Install-Package Workstation.UaClient

这会将必要的库引入您的项目,使您能够进行OPC UA通信。


项目使用说明

这个库使得通过OPC Unified Architecture在Visual Studio环境下构建的应用程序可以浏览、读取、写入以及订阅网络上OPC UA服务器发布的实时数据。支持多种平台,包括.NET Core、UWP、WPF和Xamarin应用。

基本示例 - 读取变量

下面的代码片段演示了如何连接到一个OPC UA服务器并读取名为ServerStatus的变量:

using System.Threading.Tasks;
using Workstation.ServiceModel.Ua;

public class OpcUaExample
{
    public static async Task ReadServerStatus()
    {
        var clientDesc = new ApplicationDescription
        {
            ApplicationName = "YourAppName",
            ApplicationUri = $"urn:{System.Net.Dns.GetHostName()}:YourAppName",
            ApplicationType = ApplicationType.Client
        };

        var channel = new ClientSessionChannel(clientDesc, null, new AnonymousIdentity(),
                                                "opc.tcp://opcua.umati.app:4840", SecurityPolicyUris.None);
        
        try
        {
            await channel.OpenAsync();
            
            var readValueId = new ReadValueId(NodeId.Parse(VariableIds.Server_ServerStatus), AttributeIds.Value);
            var readRequest = new ReadRequest { NodesToRead = new[] { readValueId } };
            var readResult = await channel.ReadAsync(readRequest);
            
            var serverStatus = readResult.Results[0].GetValueOrDefault<ServerStatusDataType>();
            Console.WriteLine($"Server Status:\n{serverStatus}");
            
            await channel.CloseAsync();
        }
        catch (Exception ex)
        {
            await channel.AbortAsync();
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}

API使用文档

连接与会话管理

  • 建立连接: 使用ClientSessionChannel类,传入应用程序描述和其他连接参数,如服务器地址。
  • 读取操作: 构建ReadRequest对象,指定要读取的节点ID和属性ID,然后调用ClientSessionChannel.ReadAsync()
  • 写入操作: 使用WriteRequest与对应的节点值更新方法。
  • 订阅数据: 创建继承自SubscriptionBase的类,标注[Subscription]特性,并定义监视的节点。

MVVM集成

对于基于Model-View-ViewModel(MVVM)架构的应用,可以利用绑定机制直接将UI元素与OPC UA数据源关联。例如,通过标记特定的ViewModel属性为受监控的项([MonitoredItem]), 实现数据的自动刷新。


项目配置

  • 动态配置EndpointUrl: 可以通过外部配置文件(如appSettings.json),结合代码中的映射逻辑,实现根据不同环境(开发/生产)动态改变连接的OPC-UA服务器地址。

此文档概述了使用opc-ua-client库的基础知识,从安装、基本的读取操作到高级的MVVM集成和动态配置应用。开发者应根据具体应用场景深入学习库提供的丰富API和高级功能。

opc-ua-client Visualize and control your enterprise using OPC Unified Architecture (OPC UA) and Visual Studio. opc-ua-client 项目地址: https://gitcode.com/gh_mirrors/op/opc-ua-client

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢栩开Island

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值