OPC UA服务器支持三种认证方式,分别是匿名认证、用户认证和证书认证。其中匿名认证安全等级最低,访问不做任何校验。用户认证访问时,OPC UA客户端需要提供用户名及密码认证,只有用户名和密码正确才允许访问。

而证书认证,首先需要将客户端公钥证书提供给OPC UA服务器。然后客户端使用其公钥和私钥证书认证,认证成功后才能访问。

C#访问OPC UA服务器步骤如下:

1. 下载安装OPC UA服务器

OPC UA服务器下载及说明:EasyOPC

2. 连接OPC UA服务器

首先通过NuGet引入最新版OpcUaHelper。

匿名认证:

    ```

                    OpcUaClient opcUaClient = new OpcUaHelper.OpcUaClient();

                    opcUaClient.ConnectServer("opc.tcp://127.0.0.1:4840").Wait();

    ```

用户认证:

```
OpcUaClient opcUaClient = new OpcUaHelper.OpcUaClient(); //用户及密码验证
opcUaClient.UserIdentity = new UserIdentity("test", "123456"); opcUaClient.ConnectServer("opc.tcp://127.0.0.1:4840").Wait(); ``` 证书认证: 读取私钥证书
![读取私钥.PNG][1] ![证书认证.PNG][2]

3. 读取OPC UA节点

```
//读节点值
Double Temp = opcUaClient.ReadNode<Double>("ns=2;s=factory_1/line1/Temp");
```

4. 写OPC UA节点

```
//写节点值
opcUaClient.WriteNode<Double>("ns=2;s=factory_1/line1/Temp", 10.20);
```

5. 订阅OPC UA节点

订阅节点值发生改变,就会执行订阅事件

```
//订阅节点,ns=2;s=factory_1/line1/Temp 节点值发生改变执行事件 opcUaClient.AddSubscription("temp_subscription", "ns=2;s=factory_1/line1/Temp",
(string key, MonitoredItem item, MonitoredItemNotificationEventArgs eventArgs) =>
{
var itemNotification = (MonitoredItemNotification)eventArgs.NotificationValue; Console.WriteLine((double)itemNotification.Value.Value); }); ```

下载源代码

C#实现访问OPC UA服务器的更多相关文章

  1. 分享一款免费OPC UA服务器

    OPC UA基于OPC基金会提供的新一代技术,提供安全,可靠和独立于厂商的,实现原始数据和预处理的信息从制造层级到生产计划或ERP层级的传输.通过OPC UA,所有需要的信息在任何时间,任何地点对每个 ...

  2. SharpNodeSettings项目,可配置的数据采集,统一的工业数据网关,OPC UA服务器开发,PLC数据发布到自身内存,redis,opc ua,以及数据可视化开发

    本项目隶属于 HslCommunication 项目的SDK套件,如果不清楚HslCommunication组件的话,可以先了解那个项目,源代码地址:https://github.com/dathli ...

  3. C# 读写opc ua服务器,浏览所有节点,读写节点,读历史数据,调用方法,订阅,批量订阅操作

    OPC UA简介 OPC是应用于工业通信的,在windows环境的下一种通讯技术,原有的通信技术难以满足日益复杂的环境,在可扩展性,安全性,跨平台性方面的不足日益明显,所以OPC基金会在几年前提出了面 ...

  4. C# 实现opc ua服务器的远程连接(转)

    原文转自:https://www.cnblogs.com/dathlin/p/7724834.html OPC UA简介 OPC是应用于工业通信的,在windows环境的下一种通讯技术,原有的通信技术 ...

  5. 基于open62541的opc ua 服务器开发实现(1)

    关于opcua的介绍这里就不多说了,相信大家大都有了一些了解,open62541是一个开源C(C99)的opc-ua实现,开源代码可在官网或github上下载. 话不多说,首先搭建一个opcua服务器 ...

  6. C# OPC UA服务器 OPC UA网关 三菱 西门子 欧姆龙 Modbus转OPC UA 服务器 可配置的OPC UA服务器网关 HslSharp软件文档

    前言 本文将使用一个基于开源项目HslCommunication创建的OPC UA网关,方便通过配置创建一个OPC UA的网关中心.具体的操作及支持的设备信息项目参照下面: 开源项目HslCommun ...

  7. OPC协议解析-OPC UA OPC统一架构

    1    什么是OPC UA 为了应对标准化和跨平台的趋势,为了更好的推广OPC,OPC基金会近些年在之前OPC成功应用的基础上推出了一个新的OPC标准-OPC UA.OPC UA接口协议包含了之前的 ...

  8. OPC UA (统一架构)的优势

    OPC UA OPC统一架构(OPC Unified Architecture)是OPC基金会(OPC Foundation)创建的新技术,更加安全.可靠.中性(与供应商无关),为制造现场到生产计划或 ...

  9. 转:OPC协议解析-OPC UA OPC统一架构

    1    什么是OPC UA 为了应对标准化和跨平台的趋势,为了更好的推广OPC,OPC基金会近些年在之前OPC成功应用的基础上推出了一个新的OPC标准-OPC UA.OPC UA接口协议包含了之前的 ...

随机推荐

  1. 腾讯产品快速尝鲜,蓝鲸智云社区版V6.1灰度测试开启

    这周小鲸悄悄推送了社区版V6.1(二进制部署版本,包含基础套餐.监控日志套餐),没过一天就有用户来问6.1的使用问题了.小鲸大吃一鲸,原来你还是爱我的. ![请添加图片描述](https://img- ...

  2. 国内GPU 厂商产品分布

    抽空理了理国内目前已知显卡厂商的各类产品(来源与各个公司产品网站),可能不全,后续会实时更新. 目前来看,显卡市场还是国外两巨头+intel 占据了绝大数的市场,intel 在igpu上深耕了很多年, ...

  3. 从零开始实现lmax-Disruptor队列(二)多消费者、消费者组间消费依赖原理解析

    MyDisruptor V2版本介绍 在v1版本的MyDisruptor实现单生产者.单消费者功能后.按照计划,v2版本的MyDisruptor需要支持多消费者和允许设置消费者组间的依赖关系. 由于该 ...

  4. Linux服务器安装图形化界面

    Linux服务器安装图形化界面 1.检查有无安装gnome桌面 [root@localhost ~]# rpm -qa |grep gnome 2.查看可安装组件列表 [root@localhost ...

  5. 开发工具-在线计算MD5

    更新记录: 2022年6月8日 更新标题. 2022年6月1日 开始. 都记在这以后就不用到处找了. 在线计算MD5 https://www.sojson.com/md5/ http://www.ip ...

  6. CVE-2021-3156漏洞复现

    CVE-2021-3156linux sudo 权限提升 版本ubantu18.04 使用这个命令可以是普通用户直接提升至管理员权限. 手动测试终端输入 sudoedit -s / 不知道什么原因ub ...

  7. 使用MySqlBulkLoader批量插入数据

    最近在项目中遇到插入几万.几十万.几百万的数据到MYSQL数据库,使用EF插入会发现插入速度非常慢的场景, 数据量非常大时EF插入需要几十分钟,甚至几个小时,这样子的速度肯定不是我们所期望的. 后面经 ...

  8. 令你瞠目结舌的 Python 代码技巧

    0. for-else 在 Python 中,else 不仅可以与 if 搭配使用,还可以与 for 结合. python答疑 咨询 学习交流群2:660193417### for x in rang ...

  9. 基于mysql实现group by取各分组最新一条数据

    准备数据 SQL语句 SELECT * FROM admin WHERE id IN ( SELECT MAX( id ) FROM admin GROUP BY order_id ); 查询结果:

  10. Docker 配置 Seata 集成 Nacos

    1.拉取镜像 docker pull seataio/seata-server:1.4.2 docker run --name seata -p 8091:8091 -d seataio/seata- ...