npm 包 node-opcua-client-dynamic-extension-object 使用教程

阅读时长 6 分钟读完

Node-opcua 是一个基于 Node.js 的 OPC UA(开放式平台通信架构)库,可以用来构建 OPC UA 服务器和客户端。npm 包 node-opcua-client-dynamic-extension-object 扩展了 Node-opcua 客户端,使其支持动态扩展对象。本文将介绍如何使用这个库,并提供相关示例代码。

安装 node-opcua-client-dynamic-extension-object

首先需要将 node-opcua 和 node-opcua-client-dynamic-extension-object 安装到本地项目中:

加载和使用库

加载库和创建 OPC UA 客户端的方式和 Node-opcua 客户端相同:

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

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

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

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

然后加载扩展对象:

现在 client 对象既支持 Node-opcua 客户端的所有功能,也能够使用扩展对象。

创建和添加扩展对象

扩展对象允许客户端动态创建和添加新的对象类型。要创建并添加一个新类型的扩展对象,需要先定义该对象的结构。

例如,要创建一个名为 myNewObjectType 的对象类型,可以将它定义为一个 JSON 对象:

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

这个对象具有两个字段:一个字符串字段和一个整数字段。

然后可以调用 client.addExtensionObject 方法将新类型的对象添加到客户端:

现在客户端可以使用 myNewObjectType 创建新的对象,如下所示:

读取扩展对象

要读取扩展对象的属性,需要使用 OPC UA 的读取服务。Node-opcua 客户端提供了 read 方法,可以用于读取属性。

这将输出包含读取到的属性值的 DataValue 对象。

示例代码

完整的示例代码如下:

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

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

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

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

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

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

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

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

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

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

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

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

-------

可以在 GitHub 上的 node-opcua-client-dynamic-extension-object-demo 仓库中找到这个示例代码的完整版。

结论

本文介绍了如何使用 npm 包 node-opcua-client-dynamic-extension-object 扩展 Node-opcua 客户端,使其支持动态扩展对象。我们学习了如何定义和添加新类型的对象,以及如何读取扩展对象的属性。延伸阅读,你可以在 Node-opcua 官方文档中深入了解 OPC UA 和 Node-opcua 的其他方面。

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

纠错
反馈