问题标签 [node-opcua]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - OPC-UA从客户端启动后如何动态添加新变量
我有一个 OPC-UA 服务器启动并运行一些预配置的标签,现在我想在我的某些标签更改时从我的 NodeJS OPC-UA 客户端添加一个新变量。例如
do something
在我试过的部分上面:
但是由于nodeId
不存在所以它会抛出它不存在的错误。我找到了一个从服务器端添加变量的片段示例,但是是否可以从客户端执行它,因为我们想根据我从客户端监控的其他变量添加一些变量。
node.js - IIOT OPCUA 警报和事件节点-红色
我正在研究 OPC DA 和 AE。为此,我使用 Node-red 中的 IIOT OPCUA 节点。使用 Node-red 中的 IIOT OPCUA 节点,我能够连接和访问数据,但访问警报和事件却没有得到做什么。我已经使用 OPC 专家工具测试了我的 OPCAE 服务器,它工作正常,但我想使用 Node-red 执行警报和事件。请帮我解决这个问题。谢谢你。
node.js - OPC-UA 服务器能否覆盖连接客户端的超时和其他参数?
我基于 Node-OPCUA 和 node.js 创建了一个 OPC-UA 服务器,几个客户端在连接时参数错误或为空。这会导致客户端出现故障。
服务器是否可以覆盖或更正客户端配置参数,以便即使客户端定义错误也能正常工作?
我对覆盖会话和连接超时特别感兴趣。
客户端可能会中断断开连接,因此服务器不会关闭该连接。我如何摆脱那些僵尸连接?会话通常由于超时而关闭,但不是连接。
node.js - node-opcua OPCUAClient.connect 错误:无效位置
使用端点 (opc.tcp://{serverIP:port}/OPCUASserver) 连接到 OPCUA 服务器时,我收到一个我不知道如何解释的错误。
我创建一个 OPCUAClient 使用:
let client = OPCUAClient.create(clientOptions);
然后调用connect
这是打印到控制台的日志消息:
我不确定这个错误是什么意思。
谢谢!
node.js - Node-opcua 互操作性问题。怎么解决?
我遇到了 node-opcua 库的问题。我们使用该库来设置在 Kepware Server (v6) 上匿名连接的客户端。
应用程序在各种服务器上的调试和生产中运行良好,但似乎无法在我们尝试安装它的特定服务器上创建会话。
让我认为这是一个互操作性问题的原因是,当我们第一次在服务器上安装应用程序时,它使另一个应用程序(Cimplicity)导致 Kepware 服务器崩溃。
该应用程序是使用 node-opcua 最新的电子应用程序。“有问题的服务器”是带有 Microsoft Server 2019 的 VM。
这是我的 opcua 服务代码:
似乎问题出在会话创建级别。这是来自工作服务器的日志摘录:
一个来自有问题的服务器
有没有人知道如何解决这类问题?
提前致谢!
javascript - 订阅一个项目并阅读多个其他项目
我尝试使用“node-opcua”-npm 包(NodeJs)创建一个 opc-ua-client 来执行以下操作:我不想订阅一个项目,每次这个值改变时我想做一个简单的阅读大约 200 个其他变量以将其保存在文件或数据库中。
背景是我的 Subscription-Item 是一个计数器,当有新数据集可用时计数 + 1。然后我不想保存其他几个传感器值来做一些分析。
最好的方法是什么?我真的不会自己运行它。
请支持
node.js - 如何将字符串数组写入 OPCUA 服务器?
这就是我目前尝试将字符串数组写入 opcua 服务器上的 opcua 变量的方式(附图 2 给出了属性)。下面的方法接受一个字符串 [] 并尝试将此字符串写入变量。我可以使用类似的方法轻松读取变量。
当我尝试写入服务器上的变量时,我得到类型不匹配。该数组的类型为 string[]。我尝试了各种建议,但我没有找到将数组写入服务器上的数组的明确示例?这甚至可能吗?
node-opcua - 在 node-opcua 服务器中导入 nodeset 打开文件 ascii 编码
我通过使用 nodeset.xml 文件来创建 node-opcua 地址空间。我用要加载的文件名填充 server_options.nodeset_filename 数组。
这工作正常。
现在我想从配套规范中加载节点集“Opc.Ua.Ijt.Tightening.NodeSet2.xml”以进行收紧(https://github.com/OPCFoundation/UA-Nodeset/blob/v1.04/IJT/Tightening/ Opc.Ua.Ijt.Tightening.NodeSet2.xml)并认识到如果连接到服务器并使用 opcua 客户端读取,则某些描述会被删除。
例如,UAVariable NodeId="ns=1;i=6094" 包含字段“错误”,描述为“0 – OK ...”。
'0 - OK' 中的 '-' 是节点集 xml 中的 utf-8 编码字符。
经过一番调查,我fs.readFile(xmlFile, "ascii", (err, xmlData: string)
发现 export function readNodeSet2XmlFile
https://github.com/node-opcua/node-opcua/blob/master/packages/node-opcua-address-space/source_nodejs/generate_address_space.ts#:~:text=fs.readFile(xmlFile%2C%20 %22ascii%22%2C%20(err%2C%20xmlData%3A%20string)
OPC UA 规范告诉“所有字符串值都被编码为 UTF-8 字符序列”。
问题:
- node-opcua 真的读取 nodeset xml 'ascii' 编码还是我的错误解释?
- 有没有办法在读取节点集时强制 node-opcua 使用“utf-8”编码?