Modbus 通讯协议
Modbus 协议
Modbus 协议最初由 Modicon 公司开发出来,在 1979 年末该公司成为施耐德自动化(Sc
hneider Automation)部门的一部分,现在 Modbus 已经是工业领域全球最流行的协议。此协
议支持传统的 RS-232、RS-422、RS-485 和以太网设备。许多工业设备,包括 PLC,DCS,
智能仪表等都在使用 Modbus 协议作为他们之间的通讯标准。有了它,不同厂商生产的控制
设备可以连成工业网络,进行集中监控。
当在网络上通信时,Modbus 协议决定了每个控制器须要知道它们的设备地址,识别按地
址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用 Modbus 协议
发送给询问方。
Modbus 协议包括 ASCII、RTU、TCP 等,并没有规定物理层。此协议定义了控制器能够
认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的 Modicon 控制器使用
RS232C 实现串行的 Modbus。Modbus 的 ASCII、RTU 协议规定了消息、数据的结构、命令
和就答的方式,数据通讯采用 Maser/Slave 方式,Master 端发出数据请求消息,Slave 端接
收到正确消息后就可以发送数据到 Master 端以响应请求;Master 端也可以直接发消息修改 Sl
ave 端的数据,实现双向读写。
Modbus 协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII 模式采用 LRC 校
验,RTU 模式采用 16 位 CRC 校验,但 TCP 模式没有额外规定校验,因为 TCP 协议是一个面
向连接的可靠协议。另外,Modbus 采用主从方式定时收发数据,在实际使用中如果某 Slave
站点断开后(如故障或关机),Master 端可以诊断出来,而当故障修复后,网络又可自动接通。
因此,Modbus 协议的可靠性较好。
下面我来简单的给大家介绍一下,对于 Modbus 的 ASCII、RTU 和 TCP 协议来说,其中
TCP 和 RTU 协议非常类似,我们只要把 RTU 协议的两个字节的校验码去掉,然后在 RTU 协议
的开始加上 5 个 0 和一个 6 并通过 TCP/IP 网络协议发送出去即可。所以在这里我仅介绍一下
Modbus 的 ASCII 和 RTU 协议。
下表是 ASCII 协议和 RTU 协议进行的比较: