Modbus 레지스터

무료무료 기술 자료

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

Modbus 寄存器

코일和레지스터​

前面介绍 Modbus 的콘텐츠中多次提到코일(coil)和레지스터(register)的概念,尤其是 Modbus 기능 코드 中,操作的对象基本上都是코일和레지스터。

在 Modbus 프로토콜中之所以仍然称为코일和레지스터,完全是历史原因。在 PLC 적용领域,一个코일就代表一个 PLC 출력点,也称为출력릴레이。通过控制코일导通与否来改变릴레이출력 상태,实现弱电控制强电。

Modbus 寄存器插图

但实际上,在如今的 Modbus 设备中,它们都只是对应一块内存区域而已。其中,코일代表位操作(bit),表示一个布尔변수;레지스터代表字操作(word),表示一个整型변수(当然也可以通过多个字的组合,表示浮点数以及其他复合데이터结构)。在 Modbus 프로토콜中,字(word)的길이是 16 位,即 2 个바이트。

레지스터种类설명​

在 Modbus 프로토콜中,所有데이터均存放于레지스터中。根据存放的데이터유형以及各自读写特性,可以将레지스터分为四个部分,这四个部分可以连续也可以不连续,完全由개발者决定。

下表展示了四类레지스터的含义以及与 PLC 的类比。

레지스터种类含义PLC예제
코일 상태
(Coil Status)
출력포트(可读可写)DO(数字量출력)电磁阀출력、LED 显示
이산 입력状态
(Input Status)
입력포트(只读)DI(数字量입력)DIP 스위치、微动开关
유지 레지스터
(Holding 회원가입)
출력매개변수(可读可写)AO(模拟量출력)PID 运行매개변수、阈值上下限
입력 레지스터
(Input 회원가입)
입력매개변수(只读)AI(模拟量입력)센서데이터입력

레지스터주소分配​

Modbus 레지스터주소分配如下表所示,同样参照了 PLC 레지스터주소的分配方法。

레지스터种类레지스터PLC주소레지스터Modbus프로토콜주소简称
코일 상태00001~099990000H~FFFFH0x
이산 입력状态10001~199990000H~FFFFH1x
유지 레지스터40001~499990000H~FFFFH4x
입력 레지스터30001~399990000H~FFFFH3x

该表中的 PLC 주소可以理解为 Modbus 프로토콜주소的变种,在触摸屏和 PLC 编程中적용较为广泛。

  • 레지스터 PLC 주소指存放于제어기中的주소,这些제어기可以是 PLC,也可以是触摸屏,或者文本显示器。PLC 주소一般采用10진수설명,共有 5 位,其中第一位数字代表레지스터유형。
  • 레지스터 Modbus 프로토콜주소指的是통신时使用的레지스터寻址주소,例如 PLC 주소 40001 对应寻址주소 0x0000,40002 对应寻址주소 0x0001。레지스터寻址주소一般使用16진수설명。

细心的你会发现,PLC 레지스터주소 40003 对应的프로토콜주소是 0x0002,PLC 레지스터주소 30003 对应的프로토콜주소也是 0x0002,虽然통신时使用两个相同的 Modbus 프로토콜주소,但是因为不同레지스터的기능 코드是不相同的,因此并不存在访问冲突。

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

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

엔지니어 회원

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

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

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

답글 작성

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