MODBUS通讯协议这些内容是否都是这样的?

如图:这个CODE表示是不是一个寄存器地址?我们用C++开发好了界面后,直接去调用这个CODE地址就可以读取里面的数据了?如果要改写一个值,是否也只要去修改这个CODE对应的地址号就行?

最佳答案

Code代表功能代码,如功能代码有:
 01:读单个线圈(0***地址)数据
 02:读输入信号(1***地址)数据
 03:读连续多个寄存器地址(4***)
 04:读连续多个输入模拟量地址(3***)
 05:写单个线圈(0***地址)数据
 06:写单个寄存器数据(4***)
 07:读以外状态信息
 08:诊断:
 15:写多个连续线圈(0***地址)数据
 16:写多个连续寄存器(4***)数据
 17:返回从站ID:
 20:读参考信息(文件记录)
 21:写参考信息(文件记录)
 23:读写寄存器
 24:读写FIFO队列
最常用的是03和16。由于读和写不同的地址区时功能代码都不同,因此,从C++开发界面时必须根据需要的功能代码编写相应的请求。
如果写一个值或写多个值,楼主的功能代码选择16即可。
关于Modbus请求的格式楼主可以参考我以前的帖子
http://www.ad.siemens.com.cn/club/bbs/post_elite.aspx?b_id=3&a_id=849645

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc163352.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月9日
下一篇 2017年6月9日

相关推荐