各位好!
初次接触modbus,看过网上的一些资料,大多是基于自编modbus协议的,由于西门子的通讯模块及博图自带了modbus的功能,用户可以直接关注于应用层的开发,非常方便。在查看西门子博图自带的modbus文档时,有以下迷惑的地方:
文档中有关于MB_MASTER参数的解释,其中关于“DATA_ADDR 和 MODE 参数”解释如下:

对应modbus的协议格式为 从站ID+功能+地址+数据+....
而在博图中,不需要也不可以单独设定功能域,而是通过MODE(主要是管理读写)和DATA_ADDR由软件自动产生功能域。但是上面表格中表述得不清楚的是,“MODEBUS地址列”,实际上是给软件设定的功能“地址”,而不是实际从站的寄存器地址,如希望用常用的03功能读保持寄存器地址为105的数据时,应当105加上偏置地址40001,即应该为40106。不知道这样理解是否正确。