通讯编程006——NodeJS OPC UA Client开发简单教程

news2024/10/5 18:29:46

本文介绍如何在NodeJS环境下开发OPC UA Client,通过本文可以对OPC UA的基本概念有所了解,掌握OPC UA的本质。相关软件请登录网信智汇(wangxinzhihui.com)。

开发步骤如下:

1)首先需要安装nodejs,要求版本至少是12。

2)创建项目目录,在cmd下进入项目目录下,执行如下指令:

1)npm init

2)npm i

3)npm install node-opcua --save

3)创建client.js,输入以下代码:

/*引入相关模块*/
const { OPCUAServer, DataType, AttributeIds} = require("node-opcua");

async function main() {
//a)创建OPC UA Client并连接到OPC UA Server
    try {
       var option = {};
       option.securityPolicy = opcua.SecurityPolicy.None;
       option.securityMode = opcua.MessageSecurityMode.None;
       option.keepSessionAlive = true;

       var url = "opc.tcp://SKY-20201126GIK:4380/UADEMO";
       var client = opcua.OPCUAClient.create(option);
       await client.connect(url);
    } catch (err) {
       console.log(err);
       return;
    }

    if (!client) {
       console.log("连接失败!");
       return;
    }

    //b)创建会话
    try {
       var userIdentity = {};
		  userIdentity.type = opcua.UserTokenType.Anonymous;

       //采用用户密码
       //userIdentity.type = opcua.UserTokenType.UserName;
		 //userIdentity.userName = "XXXX";
		 //userIdentity.password = "XXXX";

       session = await client.createSession(userIdentity);
       if (!session) {
           console.log("创建会话失败!");
           return;
       }
       console.log("创建会话成功!");
    } catch (err) {
       console.log(err);
       return;
    }

    //c)读取数据
    var nodeIdS = 'ns=1;s="pressure"'; //待写入的节点Id
     try {
           const dataValue = await session.read({
              nodeId: nodeIdS,
              attributeId: AttributeIds.Value,
           });

           if (dataValue.statusCode !== opcua.StatusCodes.Good) {
              console.log("不能读取 ", nodeIdS);
           } else {
           console.log("value = ", dataValue.toString());
       }
    } catch (err) {
       console.log(err);
       return;
    }

     //d)写数据
    try {
        var nodesToWrite = [
            {
                nodeId: nodeIdS,
                attributeId: opcua.AttributeIds.Value,
                value: {
                    value: {
                        dataType: opcua.DataType.Double,
                        value: 23.5
                    }
                }
            }];

        session.write(nodesToWrite, function (err, statusCodes) {
            if (err) {
                console.log(' 写错误: ' + err);
            }
        });
    } catch (err) {
        console.log(err);
        return;
    }
    console.log(' 写数据成功!');
}

main(); 作者:zhouwl72 https://www.bilibili.com/read/cv26311976/ 出处:bilibili

4)在cmd下进入项目目录,执行:node client。

运行UaExpert,查看var2写入成功。

以上为NodeJS环境下开发OPC UA Client简单教程,通过扩展可开发更多功能。更多通讯资源请登录网信智汇(wangxinzhihui.com)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/973378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实战系列(二)| MybatisPlus详细介绍,包含代码详解

目录 1. MybatisPlus 的基本功能2. 基本用法3. MybatisPlus 的配置4. MybatisPlus 的实体类、Mapper 接口、Service 类和 Controller 类 MybatisPlus 是一个功能强大的 MyBatis 增强工具,它提供了丰富的特性来简化操作数据库的代码。它主要用于简化 JDBC 操作&#…

《Generative Agents: Interactive Simulacra of Human Behavior》全文翻译

《Generative Agents: Interactive Simulacra of Human Behavior》- 生成式代理:人类行为的交互式拟真 论文信息摘要1. 引言2. 相关工作2.1 人机交互2.2 可信的人类行为代理2.3 大型语言模型与人类行为 3. 生成式代理行为和交互3.1 代理形象和交流3.1.1 代理间交流 3.2 环境交互…

PDU是什么?

PDU,即功率分配单元(Power Distribution Unit),它是一种能够对电源进行管理、监控来保障电力质量与供电可靠性的电源扩展设备。它广泛应用于数据中心、IT机房、机房领域等,可以实现对电源进行远程监控、电源管理和电源分配,为IT设…

阿里 通义千问LLM Qwen-7B-Chat与Qwen-VL-Chat 使用

参考: https://github.com/QwenLM/Qwen-7B https://github.com/QwenLM/Qwen-VL 下载模型: https://huggingface.co/Qwen 1、Qwen-7B-Chat 下载好代码与模型后运行: python ./Qwen-7B-main/web_demo.py -c ./qwen-6b-4bit/ --server-name…

01|PS(容器的三种使用)

系列文章目录 00|PS 01|PS(容器的三种使用) 文章目录 系列文章目录前言一、容器二、使用步骤0.反向选中删除1.位图(图像)2.文字3.矢量图(图形) 前言 一、容器 主要实现于图像之间的组合、覆盖。效果很不错…

分布式系统一致性模式揭秘

分布式系统将数据复制到多个服务器上,以获得更好的容错性、可扩展性和可靠性。一致性模式(一致性模型)是一组用于在分布式系统中进行数据存储和数据管理的技术。一致性模式决定了数据在分布式系统中的传播。因此,一致性模式将影响…

SpringMvc框架入门使用(详细教程)

目录 ​编辑 1.SpringMVC框架是什么? 2.SpringMVC工作流程 3.SpringMVC的入门 3.1 pom.xml 3.2spring-mvc.xml 3.3web.xml 3.4 建立一个web的方法 4.5 建立一个首页 4.6效果展示 4.图片处理 1.SpringMVC框架是什么? Spring MVC是一个基…

POI基于Excel模板导出数据

1、基于模板导出列表数据 1.1、需求 注意:使用附件的形式下载,前端访问必须通过window.open(),否则附件可能无法下载。 按照以下样式导出excel 1.2、思路 首先准备一个excel模板,这个模板把复杂的样式和固定的内容先准备好并且放入到项…

2023年了,java后端还有未来吗?

前言 Java当下确实是比较的内卷,但关键在于个人,可以看看不同地方(这里主要举例北上广深一线城市)对于Java开发工程师这个职位的具体要求: 在以下北上广深这些一线大城市的面试招聘当中不难看出,凡是工资…

搭建HTTPS服务器

HTTPS代理服务器的作用与价值 HTTPS代理服务器可以帮助我们实现网络流量的转发和加密,提高网络安全性和隐私保护。本文将指导您从零开始搭建自己的HTTPS代理服务器,让您更自由、安全地访问互联网。 1. 准备工作:选择服务器与操作系统 a. 选…

SpringMVC框架@RequestMapping用法,处理器方法参数接收,处理器方法返回值详解

1. RequestMapping 定义请求规则 1.1 指定模块名称 通过RequestMapping 注解可以定义处理器对于请求的映射规则。该注解可以注解在方 法上,也可以注解在类上,但意义是不同的。value 属性值常以“/”开始。RequestMapping 的 value 属性用于定义所匹配请…

麒麟信安参展第二十五届中国国际软件博览会,荣膺2022-2023年度优秀创新软件产品奖

8月31日至9月2日,第二十五届中国国际软件博览会(以下简称:软博会)在天津梅江会展中心举办。软博会是我国软件和信息技术服务领域规模最大、持续时间最长、最具影响力的专业盛会,由中国电子信息行业联合会、天津市工业和…

Medium: Where to Define Qualified users in A/B testing?

1. Common AB Testing Setup Issue (Framework) 局限性: unqualified users will also be considered and mess up experimentation results.

国产光刻机或已量产,ASML立即抛弃美国,中国芯片迈上新台阶

国产5G手机的推出,预示着国产的先进光刻机已投产,恰在此时ASML突然转变态度,表示已获得荷兰的许可,将对中国出售更先进的2000i光刻机,反过来印证着中国先进光刻机已成功量产。 这几年ASML的态度可谓多变,早…

数据库管理系统(DBMS)的事务四大特性(ACID)以及事务的四种隔离级别

一、什么是ACID? ACID是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability) 的缩写,是在可靠数据库管理系统(DBMS&…

苹果微信聊天记录删除了怎么恢复?果粉原来是这样恢复的

粗心大意删除了微信聊天记录?有时候,一些小伙伴可能只是想要删除一部分聊天记录,但是在进行批量删除时,不小心勾选到了很重要的对话,从而导致记录丢失。 如果这时想找回聊天记录该怎么办?微信聊天记录删除…

185页智慧校园顶层架构及建设方案 WORD

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除,更多浏览公众号:智慧方案文库。目录 一、 项目概述 1.1 建设背景 1.2 建设现状 1.3 总体目标 二、 总体规划设计 2.1 智慧校园网系统 2.1.…

Python程序设计基础:异常

文章目录 一、异常的类型二、异常的处理过程 一、异常的类型 在使用Python进行程序编写时,很容易就遇到程序出错的情况,可能是引用了未定义的变量,也可能是访问了字典中不存在的键,还可能是读文件时,只读模式下读取了…

【Sentinel】降级源码:插槽DegradeSlot与断路器的实现

文章目录 1、实现原理2、DegradeSlot类3、CircuitBreaker4、触发断路器 1、实现原理 Sentinel的降级是基于状态机来实现的: 2、DegradeSlot类 熔断降级的逻辑在DegradeSlot类中实现,核心API: Override public void entry(Context context,…

数字化企业可能会用到哪些系统?

数字企业依靠各种软件系统来驱动其运营、增强客户体验并实现其业务目标。这些系统可能会根据企业、行业的性质和具体目标的不同而有很大差异。以下是数字化企业使用的一些常见的软件系统类型: 1.企业资源规划 (ERP) 系统: ERP 系统集成了财务、人力资源…