首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

node opcua -需要有关客户端如何获取给定UAObject节点ID的所有变量的示例

使用 node-opcua 库,你可以创建一个 OPC UA 客户端并获取给定 UAObject 节点 ID 的所有变量。以下是一个示例,展示了如何实现这一点。

安装 node-opcua

首先,确保你已经安装了 node-opcua 库:

代码语言:javascript
复制
npm install node-opcua

创建 OPC UA 客户端并获取变量

以下是一个完整的示例,展示了如何创建一个 OPC UA 客户端并获取给定 UAObject 节点 ID 的所有变量:

代码语言:javascript
复制
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();

解释

  1. 创建 OPC UA 客户端:使用 opcua.OPCUAClient.create 创建一个 OPC UA 客户端实例。
  2. 连接到 OPC UA 服务器:使用 client.connect 方法连接到 OPC UA 服务器。
  3. 创建会话:使用 client.createSession 方法创建一个会话。
  4. 浏览节点:使用 session.browse 方法浏览给定 UAObject 节点 ID 的子节点。
  5. 检查节点类型:遍历浏览结果,检查每个子节点是否为变量(NodeClass.Variable)。
  6. 读取变量值:使用 session.read 方法读取每个变量的值。
  7. 关闭会话和断开连接:在完成操作后,关闭会话并断开与 OPC UA 服务器的连接。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券