Modbus 工作모드

무료무료 기술 자료

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

Modbus 工作模式

工作모드​

Modbus 基于主从모드工作。在一个네트워크中,Modbus 프로토콜通过主设备(클라이언트)和从设备(服务器)之间的请求-应答机制来交换信息。

下图展示了典型的 Modbus 네트워크,其中一个 master 设备(client)控制一个或多个 slave 设备(server)。

Modbus 工作模式插图

在표준的 Modbus 네트워크中,有 1 个主设备和最多 31 个从设备。

通讯特点​

主设备-从设备工作원리有如下特点:

  • 在同一时间只能有一个主设备연결到네트워크;
  • 只有主设备能够发起通讯并向从设备보내기请求;
  • 主设备可以使用专门的주소分别访问每个从设备,也可以使用주소 0 同时访问所有从设备;
  • 从设备只能向主设备보내기应答;
  • 从设备不能向主设备或其它从设备发起通讯。

通讯모드​

Modbus 프로토콜支持两种通讯모드交换信息:

  • 单播모드 —— 主设备通过专门的주소访问从设备,从设备处理请求,然后向主设备보내기应答。
  • 广播모드 —— 主设备通过주소 0 访问所有从设备,在这种모드下,从设备不对广播消息作出应答。(因此,广播모드的请求指令必须是 Modbus 표준功能中的写指令)

应答时间​

应答时间是指从设备对主设备发出的请求做出应答所需的时间。其中 Modbus 프로토콜的数值:

  • 典型值 < 10 ms (90% 的信息交换)
  • 最大值大约是 700 ms,因此建议在보내기完一个 Modbus 请求后暂停 1 秒钟再继续。

데이터交换​

Modbus 프로토콜支持两种데이터유형:

  • 单个位
  • 레지스터(16 位)

具体的位和레지스터定义由从设备决定。

주소​

使用 Modbus 프로토콜交换的消息包含要处理的데이터的주소。每个레지스터都有一个레지스터번호,每类데이터(位或레지스터)都有一个 16 位的주소。

在 Modbus 프로토콜规定的 PDU 中,规定所有코일或레지스터주소从 0 开始계산。因此,第 n 号레지스터的주소是 n-1。例如,第 12000 号레지스터的주소是 0x2EDF(11999)。

帧​

使用 Modbus 프로토콜交换的所有帧(ADU)最大为 256 바이트(ASCII 형식翻倍),其中包括 4 个域:

域定义大小(RTU 형식)설명
1从设备号(주소)1 个바이트请求的目的주소
- 0 :广播(涉及所有从设备)
- 1-247 :单播,从设备的唯一주소
2功能代码1 个바이트参阅 Modbus 기능 코드
3데이터0 到 252 个바이트请求데이터(或应答데이터)
4체크섬2 个바이트CRC 검증和(ASCII 为 LRC)

下图展示了主设备-从设备工作模型中的帧交换过程。

Modbus 工作模式插图1

네트워크拓扑​

Modbus RTU​

Modbus RTU 通常基于 RS-485 串行통신链路,RS-485 总线布线사양规定其必须是总线式拓扑结构。在实际布线中,通常采用手牵手菊花链布线방식。例如,Slave 1/2/3 三台 RS-485 设备,Slave1 的 485+ 接入 Slave2 的 485+ 포트,Slave2 的 485+ 再연결到 Slave3 的 485+ 포트,以此类推,485- 的배선방식和 485+ 一样。

Modbus 工作模式插图2

Modbus TCP​

相对于使用串行链路的 Modbus RTU,Modbus TCP 基于以太网통신,因此其네트워크拓扑结构更为灵活。从串行链路上一主多从的构造,演变为多클라이언트/多服务器端的构造模型。

使用 Modbus TCP,마스터设备(클라이언트)可以通过 IP 주소找到 Modbus 从设备(服务器),并通过 Modbus 게이트웨이연결到另一个 Modbus RTU 네트워크。

Modbus 工作模式插图3
相关标签
실제 프로젝트에 이 자료를 활용하시겠습니까?

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

엔지니어 회원

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

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

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

답글 작성

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