随笔 - 433  文章 - 0 评论 - 2 阅读 - 26万

MODBUS协议是一种message structure,用于建立智能设备间的master-slave通信。
MODBUS消息 = slave的地址 + command + data + check sum(LRC/CRC)

check sum,校验和
RTU协议中的指令由地址码(一个字节),功能码(一个字节),起始地址(两个字节),数据(N个字节),校验码(两个字节)五个部分组成。

由于MODBUS仅仅是一种消息结构,它独立于底层物理层,物理层传统上使用RS232、RS422或RS485实现。

线圈等寄存器的术语解释:
https://blog.csdn.net/lingshi75/article/details/105991450

Modbus通信协议具有多个变种,支持串口(主要是RS-485总线),以太网多个版本,其中最著名的是Modbus RTU,Modbus ASCII和Modbus TCP三种

串口通信的Modbus = Modbus RTU
在工业现场一般都是采用Modbus RTU协议,一般大家说的基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。

与Modbus RTU协议相比,Modbus TCP协议则是在RTU协议上加一个MBAP报文头,并且由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码的,所以就常用一句比较通俗的话来说:Modbus TCP协议就是Modbus RTU协议在前面加上五个0以及一个6,然后去掉两个CRC校验码字节就OK。虽然这句话说得不是特别准确,但是也基本上把RTU与TCP之间的区别说得比较清楚了。

ModBus使用默认TCP/IP的服务器端口是502

参考:
《GBT 19582.1-2008 基于Modbus协议的工业自动化网络规范》
https://www.modbustools.com/modbus.html
https://www.cnblogs.com/listxue/p/13375936.html
https://www.bilibili.com/video/av83618596/?vd_source=e66e14782161c833644b3ac32f1d7532

posted on   西伯尔  阅读(204)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
点击右上角即可分享
微信分享提示