如何与 Openmodelica 嵌入式 opc-ua 服务器交互

How to interact with Openmodelica embedded opc-ua server

我已经使用 BouncingBall 模型构建并启动了 OPC UA 嵌入式 Openmodelica 服务器:

$ omc +s path/to/model
$ ./BouncingBall -embeddedServer=opc-ua -rt=1

现在我正在尝试使用 OPCUA 客户端与它交互。但是,我不明白我应该如何正确地与服务器交互。据我所知,这是没有记录的。

  1. 最有希望的方法似乎是将 enableStopTime 设置为 false,将 run 设置为 true。然后模拟似乎无限期 运行 并且值似乎有意义。然而,我似乎只能实时提取这些值。 运行ning 时,当我将 run 设置为 false 时,服务器似乎进入了错误状态并且拒绝返回任何值。

  2. 如果我重新启动可执行文件并将 step 设置为 true 似乎没有任何变化,并且在尝试将 step 设置为 true 之后第二次服务器变得无响应。 -rt=1 选项似乎无关紧要。好像进入了和上面(1)一样的状态。

  3. (重启后)如果我将enableStopTime设置为true并将run设置为true模拟运行s停止,然后服务器退出并显示消息 The simulation finished successfully。也许这是故意的。有点奇怪。能够重新启动模拟或使用新选项触发它是有意义的。

我希望能够做的事情:开始和停止模拟以及倒带到某个点以检查该点的值。在我看来,API“提供”了这个功能,它可能通过黑客包装可执行文件和 API 来提供。以上错误是故意的吗?在这些情况下,与 OPC UA 服务器交互的预期方式是什么?

OpenModelica编译器版本为1.16.0~1-g84b4a71

请尝试latest nightly build 它包括以下 commit.

这可能会解决问题。我相信以前没有订阅也能正常工作,因为没有他们我永远无法重现。

(顺便说一句,人们是否继续我们的 git 提交提要并尝试重现过去 24 小时内修复的错误;我们经常收到最近才修复的问题)