恭喜,你发布的帖子
发布于 2024-05-14 19:30:03
3楼
基本正确,补充几点如下:
1、起始位、数据位、校验位、停止位的概念和设定,是位于OSI第2层的协议,叫UART。是发送字符用的。
2、嵌入进UART的各个8个数据位中的具体字符内容的格式和语义约定,才会是位于OSI第3-7层的ModbusRTU协议。也就说,UART中的字符内容也可以不是Modbus,是其他自定义的自由口通信协议。
3、现实中,8个数据位的低位是先发送的,所以要首位倒置去解读。下图都是从示波器截取。在9600速率下,基本上发送一个字符需要1ms时间。
通信要理解OSI模型,理解协议的抽象与实现。协议才是工控核心,可以自己设计和实现协议。
------------------------------------------------------------------------------
除了在串口线路的应用,ModbusRTU协议,也可以嵌入进以太网协议中,比如在UDP的数据帧中。
Modbus内容:从5号从站的地址1开始读取19个字的数据。
收到5号从站的回复,总共43字节,其中包含38字节的数据。
------------------------------------------------------------------------------
如果Modbus是嵌入进TCP中,可以直接全嵌入,也可以改造为被称作ModbusTCP的协议,通常人们都用后者。
在ModbusTCP中,原RTU报文尾部的两个CRC字节被去掉,因为TCP本身是可靠的,无需再验证。但在头部会多出6给字节,被称为MBAP Head。
“宝东”你这讲通讯底层还是很给力,看你论坛上面基本都是将通讯这款的帖子。o( ̄▽ ̄)do( ̄▽ ̄)d点赞。
请填写推广理由: