摘自 :https://www.modbus.cn/6714.html
简介
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气)于1979年为使用可编程逻辑控制器(PLC)通信而发表的,现在的Modbus动议已经成为工业领域通信协议的业界标准,并且是工业电子设备之间常用的连接方式
特点
Modbus协议能够成为工业领域应用最广泛的协议,它必须具备以下几个特点:
1、免费:这个是最大的前提,任何产品都是一样,只有通过免费才能获取到前期最大的使用量。
2、简单:Modbus协议帧格式简单紧凑,用户容易理解,厂商容易集成。
3、接口:Modbus协议只是一种规约,属于应用层的协议,因此不仅可以应用在串口(485/232/422),也可以在以太网、光纤、蓝牙、无线上传输。
4、Modbus支持一主多从,从机最多247个
5、请求/应答的交互过程,由主机发起请求,从机响应请求,从机不会主动发送数据到主机,从机之间不进行通信
Modbus网络模型


Modbus详解
- ModbusRTU
- ModbusAscii
- ModbusTcp
一般来说,ModbusRtu和ModbusAsci是运行在串口上的协议,ModbusTcp是运行是以太网上的协议,但是这并非绝对的,我们也可以将ModbusRtu、ModbusAsci运行在以太网或光纤上使用,同样的,在串口网络里,我们也可以使用ModbusTcp的协议,因为协议只是一种规范,并 不限制通信介质。
无论使用哪种方式,一条Modbus总线上的所有设备的通信模式必须相同
帧格式

无论是3种通信模式中的哪一种,Modbus的帧格式都是一样的,仅有略微差别。
功能码


最常用的功能码
- 0x03:读保持寄存器(单个或多个,指定数量)
- 0x04:读输入寄存器
- 0x06:写单个保持寄存器(只能写单个)
- 0x10:写多个保持寄存器
三种通信模式
ModbusRTU
从站地址(1B)+功能码(1B)+数据(NB)+校验(2B)

ModbusRTU帧长度最大256B
从站地址范围:0-247
数据段容量:0-252B
CRC校验:采用CRC-16_Modbus算法,CRC结果值低8位在前,校验范围:前面全部数据
ModbusRTU帧间隔

两个Modbus-RTU之间的帧间隔必须大于3.5个字节时间
每个报文帧内字节间隔小于1.5个字节时间,否则会认为接收不完整

ModbusAscii
开始字符( : )+从站地址(2B)+功能码(2B)+数据(NB)+校验(2B)+结束字符(CR LF)

开始字符:( : )
数据容量:0-252字符(0-504B)
LRC(纵向冗余校验):校验范围:从地址段-数据段
结束字符:CR, LF
由于ModbusAscii模式下,一个字节需要2个字符进行编码,为了保证与RTU模式在应用级兼容,ASCII模式最大数据长度为252*2,报文帧内的字符间隔时间可达1秒
ModbusTcp
事务处理标识符(2B)+协议标识符(2B)+长度(2B)+单元标识符(1B)+功能码(1B)+数据(NB)

两种请求模式
单播
主机以特定地址访问某个从机,地址范围1-247,从机一般会做出响应
广播
主机使用0地址向总线上所有从机发出请求,所有从机都会处理该请求,但通常从机不会做出响应
不同的设备,其广播地址不一定是0,也可能是其他地址值,需要参照其具体手册
Modbus地址
节点地址规则

存储区地址规则
Modbus标准地址模型

短地址模型

Modbus扩展版本
Modbus 是使用异步传输的方式,速度较慢,应用上有其限制,尤其当两台 PLC要互相交换资料,其传输资料量大,异步方式已经无法满足整体系统反应时间的要求。所以就有 Modbus pPlus 出现,使用同步传输的技术,资料格式与 Modbus 一样,此协议是Modicon专有的,和Modbus不同,它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。它使用1Mbit/s的双纹线,并且每个节点都有转换隔离设备,是一种采用边沿触发而不是电平触发的设备。连接Modbus Plus到计算机需要特别的接口,通常是支持ISA(SA85),PCI或者PCMCIA总线的板卡。
调试软件
ModbusPoll、ModbusSlave、VSPD
ModbusPoll
仿真Modbus主站或Modbus客户端
ModbusSlave
仿真Modbus从站或Modbus服务器
VSPD
全称:Configure Virtual Serial Port Driver
用来给电脑创建虚拟串口
Modbus详解
Modscan32
ModbusRTU测试软件
ModBus RTU通讯协议常见问题汇总
https://www.modbus.cn/6709.html