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 来构建你的工业自动化解决方案。
以上就是文章全部内容了,如果喜欢这篇文章的话,还希望三连支持一下,感谢!