介绍
node-opcua-service-subscription 是一个用于在 Node.js 中构建基于 OPC UA 协议的应用程序的 npm 包。它提供了 OPC UA 协议中的订阅服务的实现,可以订阅监视变量的值、状态和属性等。
这篇文章将会介绍 node-opcua-service-subscription 的使用教程,包括安装、初始化、订阅和取消订阅监视变量等操作。并且通过示例代码演示其具体的用法。
安装
node-opcua-service-subscription 可以通过 npm 包管理器安装,打开终端并输入以下命令:
--- ------- -------------------------------
初始化
首先,在代码中引入这个包:
----- - ------------ ------------- ------------------- - - ----------------------
然后使用 OPC UA 客户端连接到 OPC UA 服务器:
----- ------ - -------------------- ------------------ ----- --- ----- --------------------------------------------
请注意,此处的 URL 可能因您的开发环境而异。确保你正确的连接到了你要的服务器地址。
同样,您需要认证以访问您的服务器,以下示例使用 UsernameToken 进行身份验证:
----- ------- - ----- ---------------------- -- ------- ---------- --- ---------- ---- ---- --- -- ------ ----------- --------- ----------- --------- ---------- ---
接下来,为订阅创建一个 Subscription
对象:
----- ------------ - --- -------------- --------------------------- ----- ------------------ ----- ---------------------------- ---- ---
请注意,maxNotificationsPerPublish
和 requestedPublishingInterval
是订阅的关键参数。
然后,将订阅添加到会话中:
----- -----------------------------------------
现在,你已经成功地将订阅添加到了 OPC UA 会话中。
订阅变量
订阅的监视变量可以通过 ClientMonitoredItem
对象指定。在以下示例中,我们将为 ns=1;s=X
(在 OPC UA 中,ns
表示名称空间,s
表示标识符)监视一个变量。您应根据您的 OPC UA 服务器中的变量在这里进行更改。
----- ------------- - - ------- ----------- ------------ ------------------ -- ----- -------------------- - - ----------------- ---- -- ----------- -------------- ----- -- ------- ---------- -- -- ---- -- ----- ------------- - --------------------------- ------------- -------------- --------------------- ----------------------- -- --------------------------- ----------- -- - ------------------ -------- -- -------------------------- ---- ---
在这里,我们使用 ClientMonitoredItem
对象创建了一个监视项,并使用 AttributeIds.Value
指定要监视的变量属性。在 monitoringParameters
中,我们指定了获取变量值的间隔、是否丢弃旧数据和队列的大小。最后,我们在 changed
事件回调中获取变量值,并将其打印在控制台上。
现在,您已经成功地设置了一个监视项并开始获取变量值。
取消订阅
取消订阅的方法与添加订阅的方法相似。请将以下代码添加到您的代码中,以便在不需要订阅时释放资源:
----- ------------------------- ----- ---------------- ----- --------------------
这会关闭会话、断开连接并终止订阅。
示例代码
以下是完整的示例代码,您只需要修改 UserName
和 Password
,以及 nodeId
,并在终端输入 node demo.js
启动即可。
----- - ------------ ------------- -------------------- ------------- ------------------ - - ---------------------- ----- -------- ------ - ----- ------ - -------------------- ------------------ ----- --- ----- -------------------------------------------- ----- ------- - ----- ---------------------- --------- ----------- --------- ---------- --- ----- ------------ - --- -------------- --------------------------- ----- ------------------ ----- ---------------------------- ---- --- ----- ----------------------------------------- ----- ------------- - - ------- ---------------- -- ------- -- ------------ ------------------ -- ----- -------------------- - - ----------------- ---- -------------- ----- ---------- -- -- ----- ------------- - --------------------------- ------------- -------------- --------------------- ----------------------- -- --------------------------- ----------- -- - ------------------ -------- -- -------------------------- ---- --- ----- --- --------------- -- ------------------- ------- ----- ------------------------- ----- ---------------- ----- -------------------- - ------------------ -- - ------------------- ---
总结
本文介绍了如何使用 node-opcua-service-subscription npm 包来订阅 OPC UA 服务器中的变量。您需要使用 Subscription
对象将订阅添加到会话中,并使用 ClientMonitoredItem
对象创建监视变量。最后,您可以通过将指示结束订阅的代码添加到您的应用程序中来关闭订阅。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65092