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

本文介绍如何在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)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js是一个基于Chrome V8 JavaScript引擎的开源、跨平台、轻量级的JavaScript运行环境。它可以用来开发各种类型的服务器端应用程序。 以下是Node.js后端开发教程的步骤: 1. 安装Node.js:首先,您需要从Node.js官方网站下载并安装Node.js。您可以从以下链接获取最新的Node.js版本:https://nodejs.org/en/download/ 2. 初始化项目:在开始编写代码之前,您需要创建一个新的Node.js项目。您可以使用npm(Node.js的包管理器)来初始化项目。打开命令行并导航到您要创建项目的目录,然后运行以下命令: ``` npm init ``` 该命令将引导您创建一个新的Node.js项目,并生成一个package.json文件,其中包含有关项目的信息。 3. 安装所需的模块:您可以使用npm安装所需的模块。例如,如果您需要使用Express框架来构建Web应用程序,则可以使用以下命令安装它: ``` npm install express --save ``` 该命令将安装Express框架并将其添加到您的项目的依赖项中。 4. 编写代码:现在,您可以开始编写Node.js代码。使用任何文本编辑器创建一个新文件,并将其保存为.js文件。在文件中,您可以编写Node.js代码。 例如,以下是一个简单Node.js服务器示例: ``` const express = require('express') const app = express() app.get('/', function (req, res) { res.send('Hello World!') }) app.listen(3000, function () { console.log('Example app listening on port 3000!') }) ``` 此代码将创建一个Express应用程序,并在3000端口上启动服务器。当用户访问服务器的根路径时,它将返回“Hello World!”消息。 5. 启动服务器:您可以使用以下命令启动Node.js服务器: ``` node app.js ``` 其中,“app.js”是您的Node.js应用程序的文件名。该命令将启动服务器并使其在指定的端口上运行。 6. 测试应用程序:现在,您可以在浏览器中访问您的Node.js应用程序,并测试它是否按预期工作。在浏览器的地址栏中输入服务器的IP地址和端口号(例如:http://localhost:3000/),然后按Enter键。如果一切正常,您将看到您的应用程序返回的消息。 这是一个简单Node.js后端开发教程。您可以使用以上步骤来创建任何类型的Node.js应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值