npm 包 node-opcua-service-discovery 使用教程

阅读时长 5 分钟读完

前言

在前端开发过程中,我们经常需要使用不同的 npm 包来辅助开发。其中,node-opcua-service-discovery 是一个对于 OPC UA(开放式平台通讯联盟)服务的发现功能有很好支持的 npm 包,今天我们将详细介绍其使用教程。

前置知识

在开始使用 node-opcua-service-discovery 之前,我们需要先了解一些基本的概念:

  • OPC UA 服务:OPC UA 是一种通用的工业自动化协议。OPC UA 服务是在网络上提供某些服务的实体。其中,服务可以是读(读取节点的值)、写(修改节点的值)、订阅(在节点值超时时通知订阅者)等。
  • OPC UA 服务发现:OPC UA 服务发现是指客户端(应用程序)可以自动查找网络中可用的 OPC UA 服务。

安装与配置

首先,我们需要使用 npm 安装 node-opcua-service-discovery:

接着,在我们的代码中引入该 npm 包:

然后,我们需要实例化一个 opcua.OPCUAClient 对象,并连接到 OPC UA 服务器:

-- -------------------- ---- -------
----- ------ - --- --------------------
----- ----------- - ---------------------------
---------------------------
    -------- -- -
        --------------------------
    --
    ------------ -- -
        ------------------- -- -----
    ---

这里我们连接的 OPC UA 服务器为本机的 4840 端口。

发现 OPC UA 服务器

接下来,我们就可以使用 opcua.findServers 方法来发现在网络中可用的 OPC UA 服务器了:

这里的 client.getDiscoveryUrls() 会返回 OPC UA 客户端所支持的服务发现地址,opcua.findServers 则会使用该地址进行服务发现。

发现 OPC UA 节点

除了发现 OPC UA 服务器,我们还可以使用 opcua.findServersOnNetwork 方法来发现网络中的 OPC UA 节点:

示例代码

下面是一个完整的示例代码:

-- -------------------- ---- -------
----- ----- - ----------------------------------------

----- ------ - --- --------------------

----- ----------- - ---------------------------
---------------------------
    -------- -- -
        --------------------------
        ------ ------------------------------------------------
    --
    --------------- -- -
        -------------------- ------ -- ---------
        ------ -----------------------------
    --
    ------------- -- -
        ------------------ ------ -- -------
        -------------------
            -------- -- -
                -----------------------------
            ---
    --
    ------------ -- -
        ------------------- -- -----
    ---

该示例代码会连接到本机的 4840 端口,发现可用的 OPC UA 服务器以及网络中的 OPC UA 节点,并最终断开连接。

总结

以上就是 node-opcua-service-discovery 的使用教程。通过该 npm 包,我们可以轻松地发现网络中的 OPC UA 服务器和节点,为我们的前端开发提供了更多的可能性。希望本文能对读者的学习和指导有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65071

纠错
反馈