问题标签 [open62541]

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.

0 投票
1 回答
426 浏览

c++ - open62541:同时获取订阅的所有变更监控项

据我从 OPC-UA 规范中可以看出,在每个发布时间间隔,OPC-UA 服务器都会发送一个 NotificationMessage,其中包含它在队列中采样的所有更改的所有通知(我正在监视变量值)。

但正如我在 open62541 文档中发现的那样,它的订阅方法UA_Client_MonitoredItems_createDataChangeUA_Client_MonitoredItems_createDataChanges工作基于“每个受监控项目的回调”。逐项。

有没有办法批量获取一个发布间隔的所有监控项变化?

1-st 发布间隔:更改项目 1、2、3 的值

第 2 次发布间隔:更改第 2、4、5 项的值

ETC...

0 投票
1 回答
1648 浏览

file-transfer - 如何将文件从 OPC UA 客户端传输到服务器

我想使用 UA-Expert 客户端向/从我在设备上设置的服务器下载和上传,例如 .txt 文件。有人可以为我提供一步一步的解决方案或如何实施的示例吗?

我首先按照 open62541 网站上的教程进行操作。我试图遵循和理解 OPC-UA 规范,尤其是第 5 部分附件 C。

先感谢您。

0 投票
1 回答
690 浏览

qt - 从节点属性读取数据类型

我正在尝试使用和将值写入某些OPC UA节点。为此,我必须知道节点的不同数据类型。每次我尝试读取节点的数据类型时,我都会得到 a而不是. 它是列表中的正确节点,我可以读取所有节点。有人可以帮帮我吗?Qtopen62541Boolean typeint32

我只能将布尔节点写为数据类型,因为每个节点都有一个布尔值作为数据类型。

0 投票
1 回答
1292 浏览

arrays - 如何在open62541中将UA_String数组添加到服务器

我正在尝试使用 open62541 设置 OPC 服务器。这些示例正在运行,我能够将自己的变量添加到服务器。

对于这个项目,我想添加一个服务器变量,它是一个 UA_String 数组。有一些基本类型的例子,比如双精度数,但没有字符串的例子。

如何将字符串数组添加到服务器变量?那么这些字符串的内存管理呢?

0 投票
1 回答
430 浏览

cmake - 如何使用或不使用 CMake 在 C++ Builder 6 中构建 open62541?

我正在尝试在 C++ Builder 6 中构建 open62541。我能够在 Visual Studio 中找到执行相同操作的步骤。但是,我想在 C++ Builder 6 中完成。

我已按照以下链接中解释的使用 Visual Studio 构建 open62541 的步骤进行操作:https ://open62541.org/doc/current/building.html 。我不想使用 Visual Studio,而是 C++ Builder 6。但我收到如下错误。

我已经安装了以下软件。

  1. CMake 3.10.0
  2. Python 2.7.1
  3. C++ 生成器 6
  4. 打开62541

    /li>

但是执行命令时出现错误“系统找不到指定的路径”:

C:\Program Files\CMake\bin\cmake.exe .. -G "C++ Builder 6"

图片

我已将 CMake 添加到 PATH 变量中。我还想知道是否可以使用 C++ Builder 6 构建 open62541

部分解决方案:

命令:

编译这些步骤没有任何问题,并且生成了构建目录和文件。即使在将 EN_AMALGAMATION 值设置为 YES 之后,我仍然无法弄清楚为什么没有创建 open62541.h 文件。得到解决方案后会更新

0 投票
1 回答
1053 浏览

encryption - 如何使用 create_self-signed.py 为 open62541 实现加密

我正在尝试为我与 UaExpert-Client 连接的“open62541”服务器实施加密。首先,我使用“create_self-signed.py”创建了自签名证书。在我使用输出路径的信息执行 .py 文件后,我得到了“server_cert.der”和“server_key.der”。我试图修改服务器配置,但我注意到我必须使用哪种方法。有人可以告诉我将这些“.der 文件”放在哪里以及我应该使用哪些方法来修改我的服务器配置?

0 投票
1 回答
1946 浏览

client - open62541 浏览节点和使用它的方法

我想浏览我的 OPC UA 服务器上的特定节点并使用它的方法。我使用 open62541 堆栈,我想使用自制客户端。我的客户端连接到服务器,然后我使用给定的示例浏览一些对象。它向我显示了根文件夹之后的第一层节点 - 我如何找到特定节点?或者我必须浏览到这一点?open62541 项目中是否有我看不到的示例文件会让我大开眼界?

我还找到了“Service_TranslateBrowsePathsToNodeIds”方法,但我不太确定如何以正确的方式使用它,以及哪一部分对我来说很有趣。

举个例子:我想浏览比根文件夹更深的节点“FileSystem”,并想使用它的方法createFile。

0 投票
1 回答
791 浏览

c++ - 使用 open62541 将值写入 PLC 标签

我正在尝试将布尔值写入PLC 标记(打开或关闭继电器),使用 OPC UA 作为客户端写入在Siemens S7-1512 PLC上运行的 OPC UA 服务器。客户端必须c/c++实现

我已经尝试了几个不同的 GUI 客户端,没有任何问题。

另外,我尝试过 Python SDK,包括freeopcua。我有一些小问题,但在写入请求中设置属性后能够写入值。但是对于 open62541 我找不到任何解决方案(状态代码很好但值没有改变我能够读取值):

Python工作请求:

node.set_attribute(ua.AttributeIds.Value, ua.DataValue(not node.get_value()))

C 不工作的请求代码如下:

我希望将 PLC 标记的值更改为相反的值,或者向我提供有关它为什么不起作用的信息。

0 投票
1 回答
633 浏览

file-transfer - 如何将文件从 OPC UA 客户端传输到 OPC UA 服务器

我正在使用 open62541 在我的嵌入式设备(stm32f429)上运行服务器,作为客户端,我使用UAExpert 连接到服务器并借用节点。

我的问题是我想将文件从客户端“UAExpert”上传到我的服务器。我在 Stackoverflow 上发现了一个类似的问题,但答案对我没有多大帮助。

我在第 5 部分中阅读了附件 C,但我不明白如何在服务器端实现这些方法。

谁能帮我?

提前谢谢

0 投票
1 回答
464 浏览

c - open62541 客户端断开连接时的 OPC UA 堆栈服务器端回调

我正在使用 open62541 OPC UA 堆栈版本 1.0 构建服务器。到目前为止,这很好用。

当客户端断开连接时,我需要在服务器端进行一些维护。当客户端与 OPC UA 服务器断开连接时,是否有可能执行回调?或者,“会话关闭”或“安全通道关闭”也可以提供帮助。

谢谢你的支持。

编辑:...所以,我再次检查了访问控制 API 的文档,但我不清楚如何将它应用于我的问题。如果我运行服务器

我只有服务器指针,也许还有配置。从这里当客户端连接/断开连接时如何通知服务器以及我如何捕获此事件或者我是否需要定期检查是否有使用定时回调的连接客户端?如果是怎么办?游戏中的访问控制 API 又从何而来?

再次感谢