找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
所谓通讯协议就是将不同位置的数据通过相同的方式进行交流,modbus的40001这种地址形式就是标准,相当于翻译器,而2个不同的设备,可以各自将不同寄存器地址的数据放在40001进行交流。
40001 等地址名称对应的是modbus的协议的地址,是个抽象的地址;而你所谓的0,200等是实际的寄存器地址,就像西门子的DB区,M区。其他厂家有其他的寄存器地址定义方式。
你看下帮助文件里MODBUS的地址对应关系看附图,这里就规定的是西门子地址和modbus地址的对应关系,modbus地址40001~49999,对应寄存器地址是0~9998,0就是对应40001这是西门子规定死的,200,就是对应40201,这里的寄存器地址的0指的是你所指定的寄存器的起始字是从0位开始的,0可以对应MW0,也可以是MW11,看你modbus master指令中DATA_PTR关联的实际寄存器的起始指针。
其他厂家的设备,也要看他们寄存器地址和modbus地址的对应关系,看他的寄存器地址是从0开始还是1开始,甚至是300开始,若从300开始,则300对应40001,400就对应40101,大概就是这个意思。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!