问题标签 [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 投票
0 回答
32 浏览

asynchronous - Open62541 OPC UA 上的异步读写 API

我正在开发一个需要异步连接到服务器并更新其节点数据的 OPC UA 客户端。我正在使用UA_Client_connectAsync连接到服务器,但异步写入/读取 API UA_Client_writeValueAttribute_async,例如

示例/client_async.c

的示例代码从源代码中丢失并且无法编译。它们被弃用了吗?用于异步读/写服务器的新 API 是什么?

我问这个问题是因为我已经尝试过UA_Client_writeValueAttribute使用非阻塞 APIUA_Client_connectAsync并且服务器节点在其节点上没有收到任何数据。

0 投票
1 回答
71 浏览

c - 在 Windows 上使用 CMake 构建 open62541 失败

我正在尝试使用 CMake 在 Windows 上构建库。整个过程对我来说是新的,所以请原谅这个基本问题。我按照当前 open62541 手册(版本 1.2.0-rc2-45-gf4270ceb)的 2.1.2 下的说明进行操作。执行后cmake.exe,我收到以下错误:

结尾处的德语句子翻译为The system cannot find the specified file

我在我的计算机上找到了几个文件MSBuild.exe,并将它们全部添加到 PATH 环境中。这并没有解决问题。

我尝试使用预建的单个文件,但据我了解,这些是针对 Linux 系统的,不能与 Windows 一起使用,对吗?

非常感谢我如何继续获得工作构建的任何输入。谢谢!

[编辑:]我能够通过做两件事来继续构建过程:

  • Visual Studio 16 2019在命令 ( )中将 Visual Studio 版本更改为当前版本
  • 如此处所示,在 Visual Studio 中安装了 Windows 10 SDK 。

现在我被困在手册中所说的步骤“然后buildopen62541.sln在 Visual Studio 2015 中打开并照常构建”。任何提示我到底应该做什么?

0 投票
0 回答
57 浏览

cmake - open62541 库在 Windows 上构建,带有发布文件

我试图进入 open62541 项目以在我的解决方案中使用它。我的平台是windows。

首先,我下载了发布文件(open62541.h/c)并使用 GCC 编译器(MinGW64)编译了服务器示例。

这样可行。所以我接下来的步骤是从 GitHub 获取最新的 master,并使用 CMAKE 构建它。我使用了以下 CMAKE 配置:

CMAKE 配置

UA_NAMESPACE_ZERO Reduced 被使用,因为 FULL 会导致 CAMKE 无法生成项目:

CMakeLists.txt:1156 处的 CMake 错误(消息):找不到文件 C:/Users/lukasz/Desktop/open62541-visual/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml。您可能需要为 deps/ua-nodeset 初始化 git 子模块或设置 open62541_NODESET_DIR。

这将创建一个 .sln,而简单的构建全部创建 open62541.h/c。当我尝试使用生成的文件编译示例时,出现此错误:

是什么导致发布的文件出现这种差异?

0 投票
0 回答
25 浏览

opc-ua - 使用 DI 节点集而不是标准节点集 http://opcfoundation.org/UA/

我使用 Open62541-Lib。当我使用 UA_Server_addObjectNode() 或 UA_Server_addVariableNode() 创建对象时,它们总是获得命名空间 0 并属于http://opcfoundation.org/UA/。我可以在代码中定义另一个命名空间,所以每个创建的节点都引用 DI 节点集吗?我使用了 NodesetCompiler,它从 DI-Nodeset 创建了一个 .c 和 .h 数据作为 Schema,我只能将它们加载为空节点。

0 投票
1 回答
74 浏览

gcc - OPC UA open62541历史数据读取客户端未编译

在图书馆的网站上,文档提供了访问历史数据读取功能的选项。还有一个在存储库中使用历史数据读取的示例。我已经从存储库中简化了这个示例,但我仍然无法编译它。

编译结果:

编译时,它会输出类似这样的错误,这些错误指的是没有类型声明的文件“client.cpp”。

在此处输入图像描述

我什至不知道需要做什么。我正在尝试编译开发人员提供的示例,但即使它也无法编译。这是一个错误,一个缺陷,还是我做错了什么?实现一种通过 OPC UA 读取历史数据的方法是非常有必要的。我请求帮助解决这个问题。

我的工具:

  • 视窗 10
  • MSYS2 (MinGW)
  • Eclipse IDE
  • open62541 (v1.2.3)

更新

所以,我重建了分支库 1.2。构建成功:

安装库后,我尝试再次构建我的代码。这次弹出了一个完全不同的错误:

这是我要编译的代码本身: