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