一、Node-OPCUA 入门(1)-创建一个简单的OPC UA服务器
1.0 Node-OPCUA简介
node-opcua是一个完全用Typescript为NodeJS编写的OPC UA栈的实现。不依赖于外部第三方库。它依赖于一些仅在服务器端可用的javascript模块,如fs (FileSystem)或net(Socket)。
2.0 创建一个简单的node-opcua 服务器
在这个示例中,我们创建一个OPC UA服务器,它公开3个读/写变量,服务器将在名为“我的设备”的新对象下公开这些变量。
+ 跟文件夹
+ 项目
+ 我的设备
+ 变量1
+ 变量2
2.1 首先创建一个项目:
$ mkdir myserver
$ cd myserver
$ npm init # 初始化项目创建一个package.json文件
$ npm install node-opcua --save # 添加依赖node-opcua模块
2.2 编辑项目
在项目目录项创建并编辑一个sample_server.js文件
2.2.1 通过’require’语句导入node-opcua模块:
const {
OPCUAServer, Variant, DataType, StatusCodes} = require("node-opcua");
2.2.2 服务器实例化
创建一个OPCUAServer实例。可以将选项传递给OPCUAServer来定制行为。对于简单的服务器,您只需要指定一个TCP端口。
// 创建一个OPCUAServer
const server = new OPCUAServer({
port: 4334, // 服务器套接字的监听端口
resourcePath: "/UA/MyLittleServer", //此路径将添加到端点资源名称中
buildInfo: {
productName: "我的示例服务器1",
buildNumber: "7658",
buildDate: new Date(2014, 5, 2)
}
});
资源路径将用于构造服务器的端点统一资源标识符(url)。在我们的例子中,服务器的端点urn将是:
opc.tcp://<hostname>:4334/UA/MyLittleServer
hostname替换为您的计算机名称或完全合格的域名。 客户端必须使用这个URN连接到服务器。
设置服务器信息,可以在这个阶段设置其他信息,例如:
buildInfo: {
productName: "我的示例服务器1",
buildNumber: "7658",
buildDate: new Date(2022, 9, 8)
}
2.2.3 服务器初始化
一旦创建,服务器将被初始化。在初始化期间,服务器将加载其默认节点集,并准备所有标准OPC UA变量的绑定。initialize方法是一个异步操作,需要一个“回调”函数,该函数将在初始化过程完成时执行。
await server.initialize();
console.log("已初始化");
2.2.4 初始化后
让我们创建一个函数,它将使用一些我们想要公开的变量来扩展服务器默认地址空间。这个函数将在初始化回调函数中调用。
addressSpace用于定制我们的服务器将向外部世界公开的对象模型。
const addressSpace = server.engine.addressSpace;
const namespace = addressSpace.getOwnNamespace();
2.2.5 在objects文件夹中添加一个新对象









