恭喜,你发布的帖子
发布于 2025-04-17 20:24:57
10楼
Modbus是应用层协议。是嵌入进Uart协议。Uart就是数据位、起始位、校验位、结束位那些。而UART是用485物理信号的高低电平实现的。
根本上是要去理解OSI模型。实践中学会解读ModbusRTU的示波器报文就理解了。
9600速率下传输一个Uart字符,大约需要1ms时间。所以最常见的ModbusRTU的03码的master报文,在9600下,需要8ms多一点。
你的设备手册的A3里面,已经给出协议规格了。帧格式,包括应答,校验。具体的命令内容要熟悉设备和手册,要做功课。并不很难,就是需要熟练费工夫修改迭代。同时也是对架构和对象封装水平的一个锻炼。
通过自由口来编写基于串口的协议,参考下面这篇的源码
https://www.ad.siemens.com.cn/club/bbs/post_1725735_50_0_0.html#anch
至于程序架构,和Modbus的一样。相当于编写了另一种master指令。
在串口电路上自己动手实现一个协议,是个基础锻炼。熟练后就可以在以太网上基于UDP设计属于自己的可靠传输协议了。本质上都是OSI的理解和实现。是编程的核心能力,花时间是值得的。
现在越来越喜欢看里面的插图
请填写推广理由:
分享
只看
楼主