在现代的工业控制系统中,Open Platform Communications Unified Architecture (OPC UA) 协议被广泛应用。OPC UA 是一种基于 XML 的协议,它的目标是在使用不同厂商的设备、不同操作系统和语言的设备之间提供统一的通信规范。node-opcua-client-proxy 是一个能够通过 Node.js 运行 OPC UA 客户端的代理应用。在本文中,我们将会学习如何在前端应用中使用 npm 包 node-opcua-client-proxy。
安装 node-opcua-client-proxy
首先,在终端中运行以下命令来安装 node-opcua-client-proxy:
npm install node-opcua-client-proxy
创建 OPC UA 客户端
接下来,我们需要创建一个 OPC UA 客户端以便能够连接到 OPC UA 服务器。在使用 node-opcua-client-proxy 之前,我们需要先创建 OPC UA 客户端:
-- -------------------- ---- ------- ----- ----- - ---------------------- ----- ------ - --- -------------------- ----- ----------- - --------------------------- ----- -------- --------- - ----- ---------------------------- -------------------------- - ------------------- -- ------------------- -- ------
在以上代码中,我们首先导入 node-opcua 库并使用 OPCUAClient()
构造函数创建了一个 OPC UA 客户端。然后,我们指定 OPC UA 服务器的地址作为 endpointUrl
变量。最后,在 connect()
函数中,我们使用 connect()
方法连接到 OPC UA 服务器。如果连接成功,控制台将输出 "Connected!"。
运行 node-opcua-client-proxy
在创建 OPC UA 客户端之后,我们可以通过以下代码来启动 node-opcua-client-proxy:
-- -------------------- ---- ------- ----- - ----- - - ------------------------- ----- ------- - ------------- ----------------------------------------------- ----- -------------- ------------------------- ---- -- ------------------------------------ ------- ----------- ------------------------- ---- -- -------------------------------------- ------- ----------- ------------------ ------ ------- -- - ------------------------------------ ------- ------ ---- ---- ------- --- ------ ------------ ---
在以上代码中,我们导入了 spawn
方法并使用 program
对象来运行 command line 的 node 命令。使用 -e
选项指定连接的 OPC UA 服务器地址。最后,我们监听控制台输出日志并在 node-opcua-client-proxy 退出后立即执行一些可选操作。
导出数据
一旦 node-opcua-client-proxy 运行,我们可以轻松地在前端中使用 OPC UA 协议导出数据。以下是一个简单的示例:
-- -------------------- ---- ------- -- ------ --- -- ------ --- ------- ------ - ----------- - ---- ------------- -- ------ --- -- ------ ----- ------ - --- -------------- -- --- -- ------ -------- --- ----- ----------- - ---------------------------- ------ -------- ------ - ----- ---------------------------- -- ------ --- ------ --- ---------- --- ---- ---- ----- -------------------- - ----- --------------------------- ----------------------- -- ---------------------- -- ------ ------- ----- ------- - ----- ----------------------- -- ------- ---- --------- - --- --- -------- ------ ----- ----- -- - ---------------------------------------- ----- ------ - -- - --------- ----- ----- - ----- -------------- ------ --- ------------------- ------ ----------------------- -- ----- ------- --- --------- ---------- ----- ---------------- ----- -------------------- -------------- -- --------------------
在以上代码中,我们首先导入了 node-opcua
库并使用 OPCUAClient()
构造函数创建了一个 OPC UA 客户端。然后,我们指定 OPC UA 服务器的地址作为 endpointUrl
变量。
在 main()
函数中,我们连接到 OPC UA 服务器并使用 client.getNamespaceArray()
方法浏览了 OPC UA 服务器上的命名空间。在工作中,我们可以直接将 n1
替换为需要的命名空间,并将变量 nodeId
设置为需要读取状态值的节点 id。最后,我们使用 OPC UA 协议读取并输出了设备的状态值。
在读取后,我们需要关闭 OPC UA 会话并断开客户端与 OPC UA 服务器的连接。最后输出的日志即为我们想要获取的设备的状态值。
结论
node-opcua-client-proxy 是一个重要的 npm 包,它使我们可以轻松地在 Node.js 应用程序中使用 OPC UA 协议。在本文中,我们通过示例代码学习了如何创建 OPC UA 客户端并使用 node-opcua-client-proxy 代理。同时,我们还学习了如何导出 OPC UA 服务器上的数据。这些知识对于工业控制系统等实时应用程序非常重要。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65166