Node-OPCUA 是一个专为 Node.js 和浏览器环境设计的 OPC UA 协议栈,使用 TypeScript 编写,提供了实现 OPC UA 协议的所有必要功能。以下是 Node-OPCUA 的一些主要特点和使用方法:
Node-OPCUA 特点
完整的 OPC UA 协议栈:Node-OPCUA 提供了一个完整的 OPC UA 客户端和服务器端的实现。
异步特性:充分利用了 Node.js 的异步特性,创建了高度响应的应用程序。
代码质量:通过 GitHub Actions 进行持续集成,拥有超过 3500 个单元测试和 93% 的代码覆盖率,确保了高质量的代码。
安装 Node-OPCUA
在 Node.js 项目中,可以通过 npm 来安装 Node-OPCUA:
npm install node-opcua --unsafe-perms
这个命令会安装 Node-OPCUA 包及其依赖项
。
创建 OPC UA 服务器
在项目目录中创建一个 app.js 文件,并添加以下代码来创建一个 OPC UA 服务器:
const { OPCUAServer } = require("node-opcua");
const server = new OPCUAServer({});async function start() {await server.initialize();await server.start();console.log("Server is now listening...");
}
start().catch(err => {console.error("Error starting server", err);
});
运行服务器:
node app.js
这将启动一个 OPC UA 服务器,监听来自客户端的连接。
创建 OPC UA 客户端
Node-OPCUA 也可以用来创建 OPC UA 客户端,连接到 OPC UA 服务器并进行数据交换。以下是创建客户端并连接到服务器的基本步骤:
const opcua = require('node-opcua');async function connect_opcua_client() {try {const client = opcua.OPCUAClient.create({securityPolicy: opcua.SecurityPolicy.None,securityMode: opcua.MessageSecurityMode.None,keepSessionAlive: true});await client.connect("opc.tcp://192.168.3.1:4840");// 其他操作,如创建会话、读取和写入数据等} catch (err) {console.log(err);}
}
connect_opcua_client();
在这个示例中,我们创建了一个 OPC UA 客户端,并连接到指定的 OPC UA 服务器。
读取和写入数据
使用 Node-OPCUA,你可以从 OPC UA 服务器读取数据,或者向服务器写入数据。以下是读取和写入数据的示例代码:
javascript
// 读取数据
var nodeIdS = "ns=1;s=XXXX";
const dataValue = await session.read({nodeId: nodeIdS,attributeId: opcua.AttributeIds.Value
});
console.log(" read value success = ", dataValue.toString());// 写入数据
var nodesToWrite = [{nodeId: nodeIdS,attributeId: opcua.AttributeIds.Value,value: {dataType: opcua.DataType.Double,value: 2.2}
}];
await session.write(nodesToWrite);
console.log(' setValue success!');
在这个示例中,我们从节点读取数据,并写入新的数据值。
Node-OPCUA 提供了一个强大的工具集,用于在 Node.js 环境中实现 OPC UA 通信。通过上述步骤,你可以快速开始使用 Node-OPCUA 来构建你的工业自动化解决方案。
以上就是文章全部内容了,如果喜欢这篇文章的话,还希望三连支持一下,感谢!