目录
一、Modbus协议简介
1、Modbus交换特点
Modbus是一种主/从规约,它允许读或写一个或多个字(16位)操作,但任何情况下不支持字节的读或写。其信息交换特点是以主站采取主动实现的,即由主站启动交换,除广播命令外,所有的一个完整交换由下行和上行两个报文组成。
下行报文:主站发出的一个请求
上行报文:从站发回的一个回答


主站发出的请求,一般情况下,只可发送到某一个指定的从站(由请求帧第一个字节中规定的从站号码来辨认),如图1所示。在广播方式下(从站号码为0),此请求则发送到全部从站,但是,规约规定广播命令必须是写命令,而且从站也不发送回答,如图2所示。
2、Modbus报文格式
所有交换的RTU类型报文(帧),无论上下行,具有相同的结构:
从站号 | 功能码 | 数据区 | CRC16校验和 |
1字节 | 1字节 | n字节 | 2字节 |
从站号:1字节,取值范围0~FFH,例外的,该值为0,则作为主站的广播信文标识,因此,物理上使用的从站号在01H~FFH之间,即1~255之间
功能吗:功能码为1字节,它用来选择一个命令(读、写或回答校验是否正确等),有效功能码范围在1~255之间,该文只涉及对服务端的读写操作,因此后文仅对读写命令进行介绍。
数据区:数据区为n字节,它包含与功能码相关的一串十六进制数据。
CRC16校验和:2字节,从报文的首字节(从站号)至数据区的最末节以CRC16方法计算出校验和。
3、寻址方式
如上图1、2所示,主站可以与n个从站联系,即1~255个之间,当n为0时当作主站的广播信文所用。主站对从站的访问实际上归结为对某个从站中的某个设备的若干地址的访问,即由三个要素才能决定所要访问的地址:从站号、设备号和设备中的地址。
4、Modbus功能码详解
功能码详解可以在网上搜索,相关资料有很多,这里给出一个Modbus详解的博客地址: