0968309279 | hotro@tiemdien.com | Giao hàng toàn quốc

Modbus RTU là gì? Giao thức RS485 trong tự động hóa

5 phút đọc 19/06/2026
Tóm tắt nhanh

Modbus RTU (Remote Terminal Unit) là giao thức truyền thông nối tiếp không đồng bộ chạy trên chuẩn vật lý RS485. Mỗi khung dữ liệu gồm: địa chỉ slave (1-247), function code, dữ liệu, và CRC kiểm tra lỗi. Một master có thể giao tiếp với tối đa 247 slave trên cùng bus RS485. Đây là giao thức công nghiệp phổ biến nhất để kết nối PLC với biến tần, đồng hồ điện, cảm biến.

RS485 và RS232 — Nền tảng vật lý

RS232 (chuẩn cũ, điểm-điểm)

RS232 là chuẩn truyền thông nối tiếp dùng điện áp đơn cực: +3V đến +15V = logic 0, -3V đến -15V = logic 1. Khoảng cách tối đa 15m ở 9600 baud. Chỉ kết nối 1 thiết bị (không có địa chỉ). Phổ biến trong cổng COM máy tính cũ, cấu hình thiết bị một-một.

RS485 (chuẩn công nghiệp, đa điểm)

RS485 dùng tín hiệu vi sai (differential): hai dây A và B, điện áp giữa A-B > +0.2V = logic 1, A-B < -0.2V = logic 0. Đặc điểm vượt trội:

  • Khoảng cách: Lên đến 1200m ở 9600 baud (giảm theo tốc độ baud).
  • Thiết bị: Tối đa 32 thiết bị (unit load) trên một bus — có thể mở rộng đến 256 với repeater.
  • Chống nhiễu: Tín hiệu vi sai khử nhiễu common-mode rất hiệu quả, phù hợp môi trường công nghiệp nhiều nhiễu EMI.
  • Tốc độ: Lên đến 10 Mbps ở khoảng cách ngắn.
  • Half-duplex: Tại một thời điểm chỉ một thiết bị truyền, các thiết bị còn lại nhận.

Cấu trúc frame Modbus RTU

Mỗi message Modbus RTU (request từ master hoặc response từ slave) có cấu trúc:

Trường Kích thước Mô tả
Slave Address 1 byte Địa chỉ thiết bị slave (1-247). Địa chỉ 0 = broadcast (tất cả slave, không có response).
Function Code 1 byte Lệnh đọc/ghi (xem bảng function code bên dưới).
Data N byte Địa chỉ thanh ghi, số lượng thanh ghi, dữ liệu ghi.
CRC 2 byte CRC-16 kiểm tra lỗi. Slave kiểm tra CRC — sai thì bỏ qua frame.

Frame được phân tách bằng khoảng dừng (silent interval) tối thiểu 3.5 ký tự — không có start/stop byte. Master gửi request, chờ slave response trong timeout (thường 100-500ms).

Function Code phổ biến

Function Code Tên Mô tả
01 (0x01) Read Coils Đọc trạng thái coil (bit output, 1 bit mỗi coil)
02 (0x02) Read Discrete Inputs Đọc đầu vào số (bit, chỉ đọc)
03 (0x03) Read Holding Registers Đọc thanh ghi giữ (16-bit, đọc/ghi) — phổ biến nhất
04 (0x04) Read Input Registers Đọc thanh ghi đầu vào (16-bit, chỉ đọc)
05 (0x05) Write Single Coil Ghi một coil (0x0000 = OFF, 0xFF00 = ON)
06 (0x06) Write Single Register Ghi một thanh ghi Holding
16 (0x10) Write Multiple Registers Ghi nhiều thanh ghi liên tiếp

Địa chỉ slave và thanh ghi

Mỗi slave có địa chỉ duy nhất (1-247) — cài đặt bằng DIP switch, jumper, hoặc phần mềm cấu hình. Không được có 2 slave cùng địa chỉ trên một bus.

Thanh ghi Modbus có địa chỉ từ 0x0000 đến 0xFFFF. Thực tế, mỗi thiết bị có bảng địa chỉ riêng (Modbus Map) trong tài liệu kỹ thuật. Ví dụ biến tần: thanh ghi 0x0001 = tần số đặt, 0x0002 = tần số thực, 0x1000 = lệnh RUN/STOP.

Modbus RTU vs Modbus TCP

Tiêu chí Modbus RTU Modbus TCP
Nền tảng vật lý RS485 (dây đôi) Ethernet (RJ45)
Tốc độ điển hình 9600-115200 baud 10/100 Mbps Ethernet
Khoảng cách Đến 1200m 100m mỗi đoạn Ethernet (switch mở rộng)
Địa chỉ slave 1-247 IP address + Unit ID
CRC kiểm tra lỗi CRC-16 TCP/IP tự kiểm tra lỗi (không cần CRC)
Phổ biến trong Hệ thống cũ, biến tần, đồng hồ điện SCADA, HMI, hệ thống mới
Port TCP Không có 502

Đấu dây RS485 thực tế

  • Bus RS485 dùng cáp xoắn đôi có chống nhiễu (shielded twisted pair) — cáp ALTEK hoặc BELDEN phổ biến tại VN.
  • Kết nối theo chuỗi (daisy chain): Master → Slave 1 → Slave 2 → … → Slave N. Không đấu hình sao.
  • Cuối bus (termination): Điện trở 120Ω nối giữa A và B ở hai đầu chuỗi để hấp thụ sóng phản xạ.
  • Pull-up/pull-down: Điện trở kéo lên dây A và kéo xuống dây B đảm bảo mức tín hiệu khi bus rảnh (không thiết bị nào truyền).
  • Shield (màn chắn) nối đất ở một đầu (thường ở master) để tránh ground loop.

Xem thêm

Câu hỏi thường gặp

01
Baud rate Modbus RTU nên cài bao nhiêu?

9600 baud là mặc định và phổ biến nhất, phù hợp cho khoảng cách đến 500m và không cần phản ứng nhanh. 19200 và 38400 baud dùng khi cần tốc độ cao hơn, khoảng cách ngắn hơn. Quan trọng: tất cả thiết bị trên cùng bus phải cùng baud rate, parity, và stop bits (thường là 8N1 hoặc 8E1). Sai cấu hình → không giao tiếp được, không tự chẩn đoán được.

02
Modbus RTU tối đa bao nhiêu thiết bị?
03
Cách đọc thông số biến tần qua Modbus RTU?
04
Modbus RTU có thể dùng qua cáp USB không?
05
Lỗi timeout Modbus RTU là do nguyên nhân gì?
Chat Zalo Zalo Gọi ngay