通讯编程007——NodeJS OPC UA Server开发简单教程

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

1. 创建简单OPC UA Server

1)首先需要安装nodejs,要求版本至少是12。
2)创建项目目录,在cmd下进入项目目录下,执行如下指令:

1)npm init
2)npm i
3)npm install node-opcua --save 

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

/*引入相关模块*/
const { OPCUAServer, Variant, DataType, StatusCodes, makeNodeId} = require("node-opcua");
async function main() {
    //创建OPC UA Server
    const server = new OPCUAServer({
        port: 4334,        
resourcePath: "/UADEMO",
    });
    //初始化OPC UA Server
    await server.initialize();
    console.log("初始化OPC UA Server ");
//启动OPC UA Server
    server.start(function() {
        console.log("OPC UA Server在侦听中 ... ");
 });
}
main();

2. 运行&调试

1)在cmd下进入项目目录,执行:node index。

2)运行UaExpert

a)添加服务器,输入URL: opc.tcp://:4380/UADEMO,点击OK,展开这个URL,会看到如下的endpoint。

b)选择1个EndPoint,创建连接。

3.添加数据

1)获取地址空间

const addressSpace = server.engine.addressSpace;
const namespace = addressSpace.getOwnNamespace();

2)添加对象

//添加1个DemoObj对象
const device = namespace.addObject({
      organizedBy: addressSpace.rootFolder.objects,
      browseName: "DemoObj"
});

3)添加1个只读变量

let var1 = 100;
setInterval(() => { var1 = Math.random(); }, 1000);
namespace.addVariable({
        componentOf: obj,
        browseName: "var1",
        dataType: "Double",
        value: {
            get: () => new Variant({dataType: DataType.Double, value: var1})
        }
});
  • value只设置get方法,该变量为只读。
  • 未指定NodeId,服务器会自动分配1个Id。

4)添加1个可读写变量

let var2 = 30.0;
 namespace.addVariable({
     componentOf: obj,
     nodeId: 'ns=1;s="pressure"',
     browseName: "var2",
     dataType: "Float",
     value: {
            get: () => new Variant({dataType: DataType.Float, value: var2}),
            set: (variant) => {
                var2 = parseFloat(variant.value);
                return StatusCodes.Good;
            }
        }
});
  • value设置了get、set方法,该变量可读写。
  • nodeid命名规则如下:

NodeId 有一个字符串表示法,它定义为 OPC UA XML 模式的一部分,它表示完全限定的 NodeId。字符串的格式是:

ns=<命名空间索引>;<标识符类型>=<标识符>

命名空间索引:格式为以 10 为底的数字。如果索引为0,那么整个“ns=0;” 子句被省略。

标识符类型:指定标识符类型的标志。该标志具有以下值:

  • i: Numeric(Uinteger)
  • s: String
  • g: Guid
  • b: Opaque(ByteString)

4. 最终运行结果

运行结果如下。双击var2的数值可修改数值。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值