我有一个像树莓派一样运行Linux的小树莓派。我正在使用uModbus使其充当Modbus服务器,以便它可以为更大的PLC系统提供数据和控制点。
我的设备是通往一系列子节点的网关。例如,让我们假设它们是微型天气数据传感器。对于每个设备,设备都会收集压力,湿度,温度和风速。子节点数是可变的,但最多可以是100。在某些时候,传感器的读取值可能会增加一个或两个值。
要将这些值展平到modbus寄存器中,我可以选择先按子节点排序,然后按子节点排序。
子节点优先方案可能类似于
baseAddress = 01000 + (subnodeIndex * 10)
然后每个子节点的单个值都与此相对。
第二个子节点方案将为每种值类型分配一个baseAddress(例如,温度从00100开始,湿度从00300开始,等等)。
是否有充分的理由选择一种方案而不是另一种方案?还是我缺少一个计划?似乎银行价值组合在一起具有一定的价值,可以利用单块读取的优势,但与此同时,为将来的扩展留出空间会鼓励在价值之间进行某种形式的填充。