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

How to transfer Files from OPC UA Client to Server

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

我首先遵循了 open62541 网站上的教程。 我试图遵循并理解 OPC-UA 规范,尤其是第 5 部分附件 C。

提前致谢。

open62541 不支持开箱即用,这意味着没有预制插件可以实现各种平台所需的对象。

那就是说,您自己做起来并没有太多工作(特别是如果您不需要 generic/cross 平台)。 几个月前我做过这样的一次。这就像工作了 2 天。仅限于从服务器下载特定文件。

如果我没记错的话,您需要做的就是启用由 part5/annex c 指定的类型的生成(sourcetree 中有一个 .txt 或 .csv,其中包含应该被生成),之后你需要实例化这样一个对象(例如文件)并将它放在你的服务器地址space中的某个地方。剩下要做的就是实现各种方法(打开、读取...),并将您的对象与这些方法的回调挂钩。

此功能是最近添加的,但尚未包含在正式版本中。
看看:https://github.com/opcua-tsn-team-kalycito/open62541/tree/fileType_object_implementation
(确保使用提交 76eb14f6886911f954c40492cbe346c69b055ba5;最新提交无效)

一个示例实现是:

UA_StatusCode result = UA_Server_addFile(server, FileTypeNodeId,
    UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER),
    UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES),
    UA_QUALIFIEDNAME(1, "Sample File"),
    oAttr, filePath, NULL, NULL
);