通讯编程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。

通讯编程006——NodeJS OPC UA Client开发简单教程_第1张图片

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

通讯编程006——NodeJS OPC UA Client开发简单教程_第2张图片

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

你可能感兴趣的:(通讯编程,信息与通信,网络协议)