Modbus 协议详解

1 什么是modbus 包含的内容?

 Modbus是一种通信协议,相当于机器之间经过一定规范的一种语言,它属于一种串行通信协议。

包含三种协议 modbus-RTU; modbus-ASCII;modbus-TCP
大部分硬件都支持modbus-RTU协议,对数据在传输过程和接收过程格式的规定

2 modbus是用来干什么

就是用来通信的 ,如果没有协议,发送一些数据例如01 06,接收方不知道这些数据是干啥用的,所以
协议就是制定数据的准则的

3 modbus-RTU:

协议是一种开放的串行协议,广泛应用于当今的工业监控设备中。
该协议使用 RS-232 或 RS-485 串行接口进行通信,并得到市场上几乎所有商业 SCADA、HMI、OPC 
服务器和数据采集软件程序的支持。因此,很容易将 Modbus 兼容设备集成到新的或现有的监控应用程序中
并具有即时的软件支持。

4 modbus 的主从技术(主从设备)?

Modbus RTU 协议使用主/从技术在设备之间进行通信。这意味着,任何使用 Modbus RTU 协议的应用程序都将有一个 Modbus 
主站和至少一个 Modbus 从站。Modbus Master(主) 通常是一台运行软件的主机监控计算机,它将与一个或多个 Modbus Slave(从) 设备进行通信。
Modbus 从设备是执行系统参数测量和控制系统中的开/关设备的设备。为了执行这些任务,主站向 Modbus 从站发送消息,请求执行特定任务。

 5 帧结构

帧就是系统 Master和Slave 设备之间发送的信息,master发送的叫做命令帧,Slave返回的叫做应答帧

帧的结构 = 地址位 + 功能码 + 数据 + CRC校验

 **地址**: 占用一个字节,范围0-255,其中有效范围是1-247,其他有特殊用途

* **功能码**:占用一个字节,功能码的意义就是,知道这个指令是干啥的,比如你可以查询从机的数据,也可以修改数据,
所以不同功能码对应不同功能。

* **数据**:根据功能码不同,有不同结构,在下面的实例中有说明。

* **校验**:为了保证数据不错误,增加这个,然后再把前面的数据进行计算看数据是否一致,如果一致,就说明这帧数据是正确的,我再回复;
//如果不一样,说明你这个数据在传输的时候出了问题,数据不对的,所以就抛弃了。

 Modbus-RTU协议一般我们用的最多功能码就是`03`​和`06`​,大部分都是用modbus来查询传感器上的信息用`03`​查询功能码(读寄存器),
如果需要修改传感器寄存器的值就用`06`​修改功能码(写寄存器),其他的不需要过多关注

6 modbus通信的过程? 

上位机需要选择合适的 Modbus 协议栈、配置 Modbus 通信参数、建立 Modbus 通信连接、发送 Modbus 命令帧、
接收 Modbus 响应帧和关闭 Modbus 通信连接等步骤。

以上部分信息来源于网络,如有侵权请联系删除 !!!

你可能感兴趣的:(网络)