使用 node-opcua
库,你可以创建一个 OPC UA 客户端并获取给定 UAObject
节点 ID 的所有变量。以下是一个示例,展示了如何实现这一点。
node-opcua
首先,确保你已经安装了 node-opcua
库:
npm install node-opcua
以下是一个完整的示例,展示了如何创建一个 OPC UA 客户端并获取给定 UAObject
节点 ID 的所有变量:
const opcua = require("node-opcua");
const endpointUrl = "opc.tcp://localhost:4840"; // 替换为你的 OPC UA 服务器的 URL
const nodeId = "ns=1;i=1001"; // 替换为你的 UAObject 节点 ID
async function main() {
// 创建 OPC UA 客户端
const client = opcua.OPCUAClient.create({
endpoint_must_exist: false
});
try {
// 连接到 OPC UA 服务器
await client.connect(endpointUrl);
console.log("Connected to OPC UA server");
// 创建会话
const session = await client.createSession();
console.log("Session created");
// 获取给定 UAObject 节点 ID 的所有变量
const browseResult = await session.browse(nodeId);
for (const reference of browseResult.references) {
if (reference.nodeClass === opcua.NodeClass.Variable) {
console.log(`Variable: ${reference.browseName.toString()} (${reference.nodeId.toString()})`);
// 读取变量的值
const dataValue = await session.read({
nodeId: reference.nodeId,
attributeId: opcua.AttributeIds.Value
});
console.log(`Value: ${dataValue.value.value}`);
}
}
// 关闭会话
await session.close();
console.log("Session closed");
// 断开连接
await client.disconnect();
console.log("Disconnected from OPC UA server");
} catch (err) {
console.error("An error occurred:", err);
}
}
main();
opcua.OPCUAClient.create
创建一个 OPC UA 客户端实例。client.connect
方法连接到 OPC UA 服务器。client.createSession
方法创建一个会话。session.browse
方法浏览给定 UAObject
节点 ID 的子节点。NodeClass.Variable
)。session.read
方法读取每个变量的值。领取专属 10元无门槛券
手把手带您无忧上云