任何人都可以帮助我解决以下 OPC UA 用例吗?:从 OPC UA 服务器读取触发测量值,其中包含在触发条件发生之前的时间段内发生的附加测量值。这个预触发周期是可配置的,比方说半秒。这允许查看在感兴趣的触发发生之前发生的事情。
我该怎么做?:一旦触发发生,就可以将结果提供给 OPC UA 客户端,然后客户端应该对同一个触发进行操作,以检索触发发生之前时期的先前历史测量值。我希望有一个更聪明的方法,让客户端可以保持无状态。并且不要求数据稍后到达,以便在将触发后值发送到客户端之前先发送前触发值。
鉴于无论如何都必须缓冲数据才能使这成为可能,这可以工作吗?:
- 我的 OPC UA 服务器中的后端测量数据提供程序可以从半秒前的值(配置的预触发周期)开始将数据值返回给客户端。即不返回当前测量值,而是从预触发值开始。
我在 Milo 服务器示例中看到,在 ExampleNameSpace 中,AttributeValueDelegate 构造用于动态节点。这似乎允许一次返回一个数据值,包括时间戳。如果我开始返回相对旧的值,我没有适当的测试工具来查看它是否有效。
另一件事是这与监控项目和采样间隔的关系。例如,如果客户端请求每秒 10 个样本的采样率,它会检查返回的监控项是否实际上在该范围内?即较晚到达的旧值会被丢弃还是被客户端拉入?