问题标签 [milo]

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 回答
361 浏览

opc-ua - 如何使用 Eclipse Milo OPC Server 发送数据

我想使用 OPC UA 服务器将我的应用程序生成的数据发送到 OPC UA 客户端。我已经完成了 Eclipse Milo Project,这是一个很好的资源。但我不知道如何将它集成到我们的应用程序中。应用程序以 JSON 格式生成输出。使用 JSON 格式存储、处理和发送多个节点的数据,如下所示。

其中 36860 是 nodeId/deviceId,timestamp 是从节点捕获数据的时间 rest 是参数 Id 和它们在键值对中的节点的实际读取值。如何使用 ExampleServer 发送此数据以及客户端如何接收它?如果可能的话,任何人都可以提供一个例子吗?

0 投票
1 回答
97 浏览

opc - 无法将大量数据写入kepware

当我通过milo向kepware服务器写入数据时,有时有些数据无法写入成功。但是服务器返回了

StatusCode{name=Good, value=0x00000000, quality=good}

服务器没有显示我写的数据。
提前感谢您的帮助

  1. 单线程不起作用。
  2. 开始写入数据时创建新客户端。
  3. 只有一个客户响应写作。

所有这些都失败了。

0 投票
1 回答
190 浏览

java - 写入 Apache Camel OPC UA 服务器失败,但返回良好的 StatusCode

我正在开发一个 Apache Camel 路由,它应该创建一个具有三个变量的 OPC UA 服务器。路由还应该初始化这三个值。

我尝试按照官方 Apache Camel 文档中描述的方式执行此操作。我可以使用任何 OPC UA 客户端连接到服务器并查看值。

这是我的路线的代码:

我的 bean 将标头和正文中的信息处理为与服务器的连接以及节点 ID 及其所需值的列表。然后使用此列表最终将所需的值写入服务器。写入过程完成后,bean 将生成的 StatusCodes 写入骆驼日志中。

我期望的结果是成功写入服务器,并带有如下状态代码消息:

但实际上,服务器上的值继续为 null,数据类型为 null,从而产生以下 StatusCode:

我知道这表明我已经在客户端正确地完成了所有操作,所以我想知道我是否在服务器端做错了什么。我遵循了骆驼 opc 服务器组件的示例,在这个问题上找不到任何对我有用的选项或参数。

0 投票
1 回答
57 浏览

milo - Milo - 运行配置设置

我有兴趣为模拟软件创建一个客户端界面。所以我下载了 Milo 并浏览了示例。我执行时能够成功构建mvn clean package。我想知道如何设置运行配置以执行 Client Example.java

0 投票
0 回答
23 浏览

milo - 有人检查在 kubernetes 环境中工作的 milo 服务器上的订阅行为吗?

我正在尝试运行 Milo 服务器,与服务器示例中的相同,但在安装在 Raspberry Pi 上的 Kubernetes 集群中。大多数情况下它工作正常。我可以读/写变量节点。但我无法让订阅工作。当我在本地机器上运行服务器时一切正常,但相同的代码在 pod 上不起作用。我可以创建订阅,在服务器日志中我看到 Milo 尝试发布数据,但客户端没有收到任何通知/事件。我检查了几个客户,没有成功。可能有人已经面临这个问题?任何想法/建议表示赞赏。

我让蚊子以同样的方式工作,pano 客户端库很好地接收了所有订阅。可能是我错了,但看起来 tcp 堆栈在这种情况下运行良好。

0 投票
0 回答
377 浏览

opc-ua - milo: Bad_SessionIdInvalid "会话 ID 无效。"

我收到“会话 ID 无效”。读取节点值时出现异常,但有时,我知道会话没有超时,那为什么呢?

例外:</p>

原因:UaServiceFaultException:状态=Bad_SessionIdInvalid,消息=会话 ID 无效。在 org.eclipse.milo.opcua.stack.client.UaTcpStackClient.lambda$receiveResponse$16(UaTcpStackClient.java:367) 在 org.eclipse.milo.opcua.stack.core.util.ExecutionQueue$PollAndExecute.run(ExecutionQueue.java :107) 在 java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) 的 java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ) 在 java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ... com.ggnykj.smartems.cloud 的线程“pool-2-thread-2”java.lang.NullPointerException 中还有 3 个异常.server.autocontrol.controller.OpcClientServerController.readNode(OpcClientServerController.java:116) 在 com.ggnykj.smartems.cloud.server.autocontrol.server。

我的代码:</p>

MyX509IdentityProvider x509IdentityProvider = new MyX509IdentityProvider(clientOption.opcServer.getCertFilePath(), clientOption.opcServer.getPrivateKeyPath()); X509Certificate 证书 = x509IdentityProvider.getCertificate(); KeyPair keyPair = new KeyPair(cert.getPublicKey(), x509IdentityProvider.getPrivateKey());


}

0 投票
1 回答
554 浏览

opc-ua - milo:Bad_SessionIdInvalid,会话 ID 无效

我收到“会话 ID 无效”。读取节点值时出现异常,但有时,我知道会话没有超时,那为什么呢?

例外:</p>

com.ggnykj.smartems.cloud.server.autocontrol.controller.OpcClientServerController.readNode(OpcClientServerController.java:116) 在 com.ggnykj.smartems.cloud 的线程“pool-2-thread-2”java.lang.NullPointerException 中的异常.server.autocontrol.server.SaveExOpcData.run(SaveExOpcData.java:59) 在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:628) 在 java.base/java.lang.Thread.run(Thread.java:834)

有我的代码:

有连接和读取代码:

当我读取节点时,出现了问题:

但我不知道为什么

0 投票
1 回答
59 浏览

java - 为什么在 OPC UA 中打开安全通道时从客户端到服务器的问候消息超过 1 条?

HEL_MSG_3_Times我在 OPC UA 服务器和客户端通信进行时捕获了wire-shark 数据包。在数据包中有超过 1 条从客户端到服务器的 hello 消息,用于建立安全通道。

有谁知道为什么有超过 1 条问候消息。我附上了图片以供参考。

0 投票
3 回答
1444 浏览

java - 如何可靠地写入 OPC UA 服务器?

我正在尝试将一些值写入 OPC UA 服务器。为了可靠地做到这一点,我可能需要知道我正在尝试写入的节点的数据类型,否则我似乎很容易出现数据类型不匹配的情况。

假设我的服务器有一个数据类型为 Int16 的节点 TestNodeOne

我的 API 被告知将值 3 写入该节点。现在我需要做出决定:我将 3 作为 Integer 还是作为 UShort 处理?为此,我似乎需要节点的数据类型。

我试过的

我的方法是浏览服务器并使用相应的数据类型创建所有节点的缓存。看起来是这样的:

我不知道如何获取节点的数据类型。我想我在这里走错了路。如何找出节点的数据类型?

0 投票
1 回答
1239 浏览

opc-ua - 在 Milo 中写入 OPC-UA 节点时如何设置正确的数据类型?

我是一个 OPC-UA 新手,使用 Milo 堆栈将非 OPC-UA 系统集成到 OPC-UA 服务器。其中一部分包括将值写入 OPC-UA 服务器中的节点。我的问题之一是来自其他系统的值以 Java 字符串的形式出现,因此需要转换为节点的正确数据类型。我的第一个蛮力概念验证使用下面的代码来创建一个我可以用来写入节点的变体(如在 WriteExample.java 中)。变量是包含要写入的数据的 Java 字符串,例如“123”表示 Integer 或“32.3”表示 Double。该解决方案现在包括对 Identifiers 类(org.eclipse.milo.opcua.stack.core,参见 switch 语句)中的“类型”进行硬编码,这并不漂亮,我相信有更好的方法来做到这一点?另外,如果我想将“123”转换并写入一个节点,例如,UInt64,我该如何进行?

我查看了 Kevin 对此线程的回复:如何可靠地写入 OPC UA 服务器?但我还是有点迷茫......一些小代码示例真的很有帮助。