iis7发布php网站,湘汝企业大黄页,济南优化网站技术,多个网站 备案Modbus知识详解 ## 1.什么是Modbus?**顾名思义**#xff0c;它是一个Bus#xff08;总线#xff09;#xff0c;即总线协议。比如串口协议、IIC协议、SPI都是通信协议。你接触到这种协议#xff0c;相信你所处的行业是工业电子方面或者你的产品用于工业。好了#xff0c…Modbus知识详解
## 1.什么是Modbus?**顾名思义**它是一个Bus总线即总线协议。比如串口协议、IIC协议、SPI都是通信协议。你接触到这种协议相信你所处的行业是工业电子方面或者你的产品用于工业。好了现在知道了大概知道了这是一个总线协议是一个Mod什么的公司发表的一个通信协议。## 2.Modbus用来干什么?用两个字概括**通信**是的所有协议都是用来通信的协议的制定就是让两个人根据这个协议看懂传来的一组数据。比如我给你一个**6666**你要是没有协议就只知道这是**6666**而有了协议你就知道了这是在问我是不是大佬?当然也可以表示其他意思具体什么意思就看你协议怎么制定## 3.Modbus的内容是什么?大致分为以下几种:- Modbus-RTU
- Modbus-ASCII
- Modbus-TCP
- 以上三种协议一个设备只会有一种协议如果你的设备使用的是Modbus-RTU只需查看以下对应部分一般来说大部分的设备都是Modbus-RTU协议的。## 4.通讯过程Modbus是**主从方式通信**也就是说不能同步进行通信总线上每次只有一个数据进行传输即主机发送从机应答主机不发送总线上就没有数据通信。(所以说这也算是一个缺点了)**举例2**: 就像打电话你得知道对方的电话(这就是唯一地址)然后你打电话过去相当于主机查找从机然后对方接通电话给你回复(返回数据)正常是这样的。
Sorry ! The subscriber you dialled is busy now, please redial later.
如果这时候对方正在打电话你应该听到的是sorry,you…这一串英文说明对方忙但是Modbus总线不能判断对方是否忙也没有对应的仲裁机制好了你又知道了一个缺点了但是你可以用软件的办法进行适当的处理数据## 5 .Modbus-RTU协议**设备必须要有RTU协议这是Modbus协议上规定的且默认模式必须是RTUASCII作为选项**。也就是说一般的设备只有RTU这个协议ASCII一般很少所以说一般学习Modbus协议只需要了解RTU的协议ASCII作为学习的了解就足够了。### 1、帧结构**帧结构 地址 功能码 数据 校验**- **地址**: 占用一个字节范围0-255其中有效范围是1-247其他有特殊用途比如255是广播地址(广播地址就是应答所有地址正常的需要两个设备的地址一样才能进行查询和回复)。
- **功能码**占用一个字节功能码的意义就是知道这个指令是干啥的比如你可以查询从机的数据也可以修改数据所以不同功能码对应不同功能。
- **数据**根据功能码不同有不同结构在下面的实例中有说明。
- **校验**为了保证数据不错误增加这个然后再把前面的数据进行计算看数据是否一致如果一致就说明这帧数据是正确的我再回复如果不一样说明你这个数据在传输的时候出了问题数据不对的所以就抛弃了。### 2、实战只谈理论大家可能不太明白下面举一个例子。Modbus-RTU协议一般我们用的最多功能码就是03和06大部分都是用modbus来查询传感器上的信息用03查询功能码如果需要修改传感器寄存器的值就用06修改功能码其他的不需要过多关注学多了你也记不住哈哈哈#### 2.1 查询功能码0x03功能描述现在我是主机我要查询从机地址为01的数据。我现在用电脑的modbus调试助手来代替主机stm32来代替从机。