Modbus 프로토콜是一个开放표준的통신 프로토콜,最初设计用于연결可编程逻辑제어기(PLC)和其他自动化设备。它的简单性和可靠性使得 Modbus 成为工业领域中最受欢迎的통신 프로토콜之一,被广泛用于监控、控制和데이터采集。
什么是 Modbus
Modbus 是工业界常用的一种통신 프로토콜,可以理解为是一种通讯的约定。
Modbus 프로토콜包括 RTU、ASCII、TCP,其中 Modbus-RTU 最常用,比较简单,在单片机上很容易实现。Modbus RTU 프로토콜定义了一个与下层통신层无关的简单프로토콜데이터单元(PDU),串行链路上的 Modbus RTU 帧형식如下图所示。

其中,주소필드只含有从机주소;기능 코드指示指令要执行何种操作;기능 코드的后续데이터是请求或响应데이터필드;差错检验필드是“프레임콘텐츠”데이터进行“循环冗余체크섬”계산所得结果,采用 CRC16 循环冗余체크섬算法。
Modbus 和 OPC UA、MQTT 等통신 프로토콜本质上是一样的,都是为了实现多个设备相互통신的적용层프로토콜。
Modbus 的起源与发展
Modbus 프로토콜于 1979 年由 Modicon 公司(现被 Schneider 公司收购)设计개발,一经面世因其简单开放的통신방식逐渐成为工业系统中流行的표준,是全球第一个真正用于工业现场的总线프로토콜。
后来,为了更好地普及和推动 Modbus 基于以太网(TCP/IP)的분산형적용,施耐德公司将 Modbus 프로토콜的所有权移交给 IDA(Interface for Distributed 자동화,분산형自动化인터페이스)组织,并成立了 Modbu-IDA 国际组织,负责推广 Modbus 표준以及对 Modbus 产品进行인증。
现在,我们可以从 Modbus 官网 www.modbus.org 找到相关프로토콜문서、Modbus 产品和厂商等信息。
Modbus 통신 프로토콜特点
Modbus 프로토콜定义了一个제어기能够认识使用的消息结构,而不管它们是经过何种네트워크进行통신的。因此,底层통신방식可以使用 RS232,RS485 等串行链路,也可以使用 TCP/IP 以太网链路。当在 Modbus 네트워크上통신时,제어기必须要知道该네트워크中其他从设备的주소,才能识别按주소发来的消息,并作出相应行为。
简单来说,Modbus 통신 프로토콜具有以下几个特点:
- Modbus 프로토콜표준开放、公개발布且无版税要求,用户可以무료获取并使用 Modbus 프로토콜,不需要缴纳许可证费;
- Modbus 最开始使用 RS232,RS485 等串行链路作为底层통신방식,串行总线的인터페이스芯片成本低,而且布线也简单方便;
- Modbus 프로토콜支持多种电气인터페이스,如 RS232、RS485、TCP/IP 等,还可以在各种介质上传输,如双绞线、光纤、적외선、无线等;
- Modbus 是简单地적용层프로토콜,其프로토콜消息帧형식简单、紧凑、通俗易懂,便于用户理解和使用、厂商개발和통합,方便形成工业控制네트워크。
为什么要학습 Modbus
虽然 Modbus 已经发展到了极为成熟的阶段,但由于其프로토콜的简单性以及便于在多种통신媒介上实施的적용特点,Modbus 仍然是当前工业电子设备之间常用的연결방식之一。在某种程度上来说,Modbus 통신 프로토콜就是工业领域통신 프로토콜的业界표준。在物联网蓬勃发展的当下,了解并掌握广泛적용的 Modbus 통신 프로토콜意义重大。
下图展示了 Modbus RTU 네트워크的设备연결。

专业术语
在 Modbus 개발中的常见专业术语如下:
- Master :主(站)设备
- Slave :从(站)设备
- Client :클라이언트,对应 Master 设备
- Server :服务器端,对应 Slave 设备
- ADU :적용데이터单元(Application 데이터 Unit)
- PDU :프로토콜데이터单元(Protocol 데이터 Unit)
- MSB :最高有效位(Most Significant Bit)
- LSB :最低有效位(Least Significant Bit)
- MBAP :Modbus 적용프로토콜(Modbus Application Protocol)
- PLC :可编程逻辑제어기(Programmable Logic 컨트롤러)
- RTU :远程终端单元(Remote Terminal Unit)
- SCADA :监督控制和데이터采集(Supervisory Control And 데이터 Acquisition)
답글 작성