Modbus 프로토콜버전

무료무료 기술 자료

이 글은 바로 읽을 수 있으며 기초 학습과 검색 유입에 적합합니다.

Modbus 协议版本

Modbus 是工业界常用的一种简单、可靠、开放的통신 프로토콜,可以在多种통신媒介上实施,包括常见的 RS232、RS485 和以太网。随着 Modbus-TCP 的广泛적용,国际互联网组织规定并保留了 TCP/IP 프로토콜栈上的系统 502 포트,专门用于访问 Modbus 设备。

下图大致展示了 Modbus 프로토콜栈模型。

Modbus 协议版本插图

Modbus 통신 프로토콜目前存在用于串行链路、TCP/IP 以太网以及其他支持互联网프로토콜的네트워크버전。在实际적용中,通过 RS485 和 TCP/IP 연결的방식最为常见。下面介绍 Modbus 프로토콜的多种变体。

Modbus RTU​

Modbus RTU 是 Modbus 最常见的实现방식,它基于串行통신总线(例如 RS232、RS485),并采用紧凑的2진수데이터形式进行프로토콜통신。RTU 형식在命令/데이터之后带有循环冗余체크섬的체크섬作为错误체크섬机制,以确保데이터的可靠性。Modbus RTU 消息必须连续传输,没有문자间犹豫。Modbus 消息由空闲(静默)时段构成(分隔)。

Modbus 协议版本插图1

RTU 모드每个바이트(11位)的형식为:

帧형식설명
编码系统8位2진수
데이터 비트1位 시작位
8位 데이터 비트,首先보내기最低有效位
1位 奇짝수 패리티(注:默认짝수 패리티是必须的,홀수 패리티或패리티 없음也可以使用)
1位 정지 비트(注:使用패리티 없음时要求2个정지 비트)
帧보내기방식每个문자或바이트均由从左到右顺序보내기
检验CRC(循环冗余체크섬),低位바이트先发
시작/종료프레임帧由时长至少为 3.5 个바이트时间的空闲间隔区分 1 帧데이터

Modbus ASCII​

Modbus ASCII 和 Modbus RTU 一样都是使用串行链路통신방식,不同的是,Modbus ASCII 采用一种人类可读的、冗长的表示방식,并使用LRC 체크섬的체크섬保证데이터传输的完整性。Modbus ASCII 消息由前导콜론 (":") 和尾随换行符 (CR/LF) 构成。

Modbus 协议版本插图2

ASCII 모드每个바이트(10位)的형식为:

帧형식설명
编码系统16진수,ASCII 문자 0-9,A-F
데이터 비트1位 시작位
7位 데이터 비트,首先보내기最低有效位
1位 奇짝수 패리티(注:默认짝수 패리티是必须的,홀수 패리티或패리티 없음也可以使用)
1位 정지 비트(注:使用패리티 없음时要求2个정지 비트)
帧보내기방식每个문자或바이트均由从左到右顺序보내기
检验LRC(LRC 체크섬),低位바이트先发
시작一个‘콜론’(:)시작,对应 ASCII 16진수为 3A
종료以‘回车-换行’(CR,LF)对(ASCII 16진수 0D 和 0A)종료

需要注意的是,由于帧형식不同,被설정为 RTU 모드的节点是不能与설정为 ASCII 모드的节点正常통신,反之亦然。

Modbus TCP​

Modbus TCP(或称为 Modbus TCP/IP)是一种 Modbus 变体,用于通过 TCP/IP 네트워크进行통신,通过포트 502 进行연결。和前面两种不一样,Modbus TCP 不需要체크섬계산,因为较低层的 TCP/IP 프로토콜栈已经提供체크섬保护。

如果将체크섬包含在有效载荷中,形成与 Modbus RTU 类似的帧,则称为 Modbus RTU/IP。

Modbus 协议版本插图3

其他버전​

除了上述三种常用的 Modbus 프로토콜,还有如下一些不太常见的 Modbus 扩展버전。

Modbus over UDP​

既然有 Modbus over TCP,那么自然也会有人尝试将 Modbus 运行在 UDP 之上,即 Modbus over UDP。 这么做的好处是消除了 TCP 所需的开销。

Modbus Plus​

Modbus Plus(Modbus+、MB+ 或 MBP)프로토콜是 Schneider Electric 的专利,与其他变体不同,它支持多个마스터之间的点对点통신。不过,它需要一个专用的协处理器来处理类似 HDLC 的高速令牌轮换。它使用 1 Mbit/s 的双绞线,并在每个节点都有变压器隔离,这使其成为转换/边沿触发而不是电压/电平触发。연결 Modbus Plus 到계산机需要特殊的硬件,通常是支持 ISA、PCI 或 PCMCIA 总线的板卡。

Pemex Modbus​

Pemex Modbus 是표준 Modbus 的扩展,支持历史和流量데이터。它是为 Pemex 石油和天然气公司设计的,用于过程控制,但从未得到广泛采用。

Enron Modbus​

Enron Modbus 是 Enron 公司개발的표준 Modbus 的另一个扩展,支持 32 位整数和浮点변수以及历史和流量데이터。데이터유형使用표준주소映射。历史데이터用于满足美国石油协会 (API) 行业표준,即如何存储데이터。

注意事项​

前四种 Modbus 프로토콜(Modbus RTU、Modbus ASCII、Modbus TCP 和 Modbus UDP)在데이터模型和功能调用上都是相同的,只是传输프레임的封装방식不同。但是,由于帧형식不同,因此这些프로토콜变体并不是可互操作的。

실제 프로젝트에 이 자료를 활용하시겠습니까?

도구 센터에서 프레임 분석, CRC 검증, 장비 디버깅을 진행하거나 요청을 제출하여 선정 및 연동 제안을 받아보세요.

엔지니어 회원

이 글을 실행 가능한 디버깅 자료로 활용하세요

가입하면 고급 프레임 분석, 자료 패키지 다운로드, 코드 예제, 엔지니어링 사례, 우선 기술 지원을 이용할 수 있어 실제 프로젝트 납품에 적합합니다.

고급 도구 무제한 이용
자료 패키지와 코드 패키지
완전한 엔지니어링 사례 라이브러리
우선 기술 지원 채널

답글 작성

이메일 주소는 공개되지 않습니다. 必填项已用 * 标注