我正在研制一台火花插头B型SCADA主机,并希望了解火花插头B型SCADA主机如何与它感兴趣的B型火花插头EoN节点和设备保持最新的联系。我在这里关注的是EoN节点和设备的元数据,正如它们的NBIRTH和DBIRTH主题所描述的那样。
设想如下:
上的度量标准。
我还没有看到任何提示SCADA主机如何让EoN节点再次发送其NBIRTH主题的火花插头B规范。有一个再生度量,它将要求重新发布出生主题,但我不确定这是否是所有的火花插头B的实现都支持的东西。
有人向我建议,当SCADA主机联机时,它将发布一个状态主题,以表明已经发生了这种情况,并且EoN节点将看到这一点,节点将再次发布其NBIRTH主题。但是,我看不到火花插头B规范中提到的这种行为。
发布于 2022-04-29 18:27:30
这是一个很长的话题。
首先,有一个NBIRTH记录。它有两个计数器,bdseq和seq计数器。bdseq是在每个MQTT连接之前选择的“随机”数字。它也包含在“最后的遗嘱和遗嘱”记录中,所以当MQTT断开时,将生成一个NDEATH记录,并且bdseq可以相关,并且只有当它们匹配时才能听到。
接下来,NBIRTH记录启动第二个“seq”,这是一个无符号字节,并将其设置为0。
在接收NDATA记录时,您需要首先检查bdseq是否与您最近的NBIRTH值匹配,然后检查序列是否大于最后收到的消息。如果没有,则消息不符合顺序,是时候发出节点控制恢复命令了。
您确实需要深入研究规范,以获得完整的细节。
发布于 2022-02-27 15:12:56
主应用程序(您称为SCADA主机)发送一条NCMD消息,通知EON重新发布其NBIRTH和DBIRTH(s),详见https://www.eclipse.org/tahu/spec/Sparkplug%20Topic%20Namespace%20and%20State%20ManagementV2.2-with%20appendix%20B%20format%20-%20Eclipse.pdf第66页第17.5节。更多的细节可能隐藏在该规范的其他地方。你可以和客户一起测试这一切。我们的免费火花塞实验室https://mqttlab.iotsim.io/sparkplug
发布于 2022-10-28 14:36:36
RobinMHolt的回答并不是真正正确的,因为根据火花插头规范,NDATA消息只包含"seq“值,而不是"bdseq”,而bdseq仅用于将NDEATH消息与NBIRTH匹配。似乎唯一的选择是每次都发送NCMD/Rebirth。
https://stackoverflow.com/questions/71268539
复制相似问题