楼主还能再回首吗?
modbus有两套地址。一套用于实际通讯的,一套是用于文书交流的。
举个例子,地址40001,这是一个保持寄存器地址,怎么知道的?看4xxxx格式就知道了,不必注明是保持寄存器,用于文书交流就很方便。文书交流用的地址最小值是1,所以40001就是保持寄存器的最小地址。
当在实际的通讯中,比如03功能,它只用来读保持寄存器,它不需要用4xxxx来指明地址的类别,地址写地址,而且最小地址是0000,所以“40001”的地址被翻译为“0000”。
那么,乱象就来了。
“40001”就是“保持寄存器0000”。
“保持寄存器40001”,多余的信息,问题不大。如果说地址0000,不知道是什么地址,缺少信息。输入、输出、模拟量,都有0000这个地址。