![86b141d5b0956245b6a8700e8d60fbc0.png](https://i-blog.csdnimg.cn/blog_migrate/f5271a6f42b1f60b38233f785e9f1e0f.jpeg)
Modbus通讯编程实例(一)
最近单独在写Modbus和现场总线的介绍,都是一些思路性质的介绍,不涉及具体的实例,可能很多童鞋还是觉得不够具体,因为我现在不做具体的编程调试了,所以直接些实例很费劲。参考了一些网上的和施耐德电气内部的资料,写成以下的案例,用了一些其他人的劳动成果,如果原作者在意版权问题,请联系我,我尊重您的所有权。
我的帖子里提过Modbus的功能码,常用的没几个,这里列出更多的(也不是全部):
功能码(十进制)十六进制说明
0101读线圈
0202读离散量输入
0303读保持寄存器
0404读输入寄存器
0505写单个线圈
0606写单个寄存器
0707读异常状态
0808诊断
110B获得事件计数器
120C获得事件记录
150F写多个线圈
1610写多个寄存器
1711报告从站ID
2216屏蔽写寄存器
2317读/写多个寄存器
2418读FIFO队列
DATA_EXCH功能块是用于Premium和M340传输数据到另外一台设备,这个功能块支持Modbus所有的功能码。DATA_EXCH用梯形图表示:
![bada6d3800ac078f9fa985e2ddc897ff.png](https://i-blog.csdnimg.cn/blog_migrate/70d17882814c824a7fc68da3b1e3e7b7.jpeg)
各个引脚定义:
ADR为地址引脚,对于PREMIUM系列需要使用ADDR功能块连接。
对于M340系列需要使用ADDM功能块连接。
TYPE为类型引脚,1为接受/发送,2为只接受,3为只发送。
EMIS为要发送表
RECP为接受表
GEST为交换管理表
实例一:读取N位(功能码01)