Hôm nay, BKAII sẽ cùng các bạn tìm hiểu rõ hơn về chủ đề hay gây nhầm lẫn "Phân biệt Master và Slave trong Modbus RTU & Modbus TCP (Client vs Server)". Như chúng ta đã biết, Trong thế giới Modbus, có hai môi trường được sử dụng phổ biến nhất là Modbus RTU/ASCII (truyền qua cổng Serial như RS-232, RS-485) và Modbus TCP (truyền qua Ethernet). Dù khác nhau về hạ tầng truyền thông, nhưng cả hai đều tuân theo một nguyên tắc chung: luôn có một bên chủ động hỏi và một bên chỉ trả lời khi được hỏi.

- Với Modbus RTU/ASCII, người ta dùng thuật ngữ Master/Slave.
- Master giống như “người cầm micro” trong một buổi họp – chỉ có một người có quyền hỏi.
- Các Slave thì giống như những người tham dự – họ ngồi nghe và chỉ trả lời khi được Master chỉ định.
- Vì vậy trên một đường truyền RS-485 chỉ có duy nhất 1 Master, còn số lượng Slave có thể là vài cái, chục cái, thậm chí hàng trăm (tùy cấu hình).
- Với Modbus TCP, môi trường Ethernet linh hoạt hơn nên cách gọi cũng thay đổi sang Client/Server.
- Client là bên chủ động mở kết nối, gửi yêu cầu đọc/ghi dữ liệu (ví dụ: SCADA, HMI hoặc một phần mềm giám sát).
- Server là bên bị động, chờ Client kết nối tới, sau đó trả lời yêu cầu.
- Điểm khác biệt lớn so với RTU là: một Server có thể phục vụ cùng lúc nhiều Client. Tưởng tượng như một website: bạn chỉ có một server web, nhưng nhiều người dùng (client) có thể cùng lúc truy cập vào.
Tóm lại:
- Modbus RTU/ASCII = Mô hình Master/Slave → chỉ 1 Master duy nhất, Slave thì nhiều.
- Modbus TCP = Mô hình Client/Server → Client có thể nhiều, Server cũng có thể phục vụ nhiều Client cùng lúc.
1. Chi tiết — Modbus RTU/ASCII (Serial)
Định nghĩa: Master là thiết bị chủ động gửi lệnh đọc/ghi; Slave là thiết bị bị động chỉ trả lời. Cấu trúc này phù hợp với bus phân chia thời gian (time-division) như RS-485.
Đặc điểm kỹ thuật cần nhớ:
- Chỉ 1 Master trên cùng một bus.
- Nhiều Slave (địa chỉ từ 1–247 trong chuẩn Modbus).
- Slave không khởi tạo truyền tin; chúng chỉ phản hồi request.
Ví dụ thực tế: PLC làm Master đọc dữ liệu từ nhiều đồng hồ điện (Slave) qua RS-485.
2. Chi tiết — Modbus TCP/IP (Ethernet)
Định nghĩa: Modbus TCP hoạt động theo mô hình Client–Server của TCP/IP. Client (tương đương Master) khởi tạo request; Server (tương đương Slave) lắng nghe và trả lời.
Điểm khác biệt quan trọng:
- Một Server có thể chấp nhận nhiều kết nối Client đồng thời (đa kết nối).
- Không còn giới hạn “1 Master” như trên serial; nhiều Client có thể giao tiếp với cùng 1 Server.
- Thuật ngữ chính thức trên tài liệu hiện đại là Client/Server, nhưng cộng đồng vẫn thường nói Master/Slave để dễ hình dung.
Ví dụ thực tế: SCADA (Client) kết nối đọc dữ liệu từ PLC/thiết bị Modbus TCP (Server).
3. Bảng so sánh nhanh
|
Môi trường |
Thuật ngữ |
Ai khởi tạo request? |
Số lượng Master/Client |
|
Modbus RTU/ASCII |
Master / Slave |
Master |
Chỉ 1 Master |
|
Modbus TCP/IP |
Client / Server |
Client |
Có thể nhiều Client |
4. Cách đọc các thông tin trên datasheet (ví dụ thực tế)
Khi bạn đọc datasheet một bộ Gateway PROFINET Master / Modbus TCP Slave - Converter, giải mã như sau:
- PROFINET Master (hay PROFINET IO Controller): Thiết bị này đóng vai trò chủ ở phía PROFINET — nó sẽ khởi tạo frame IO để điều khiển/đọc IO Device.
- Modbus TCP Slave (tức Modbus TCP Server): Ở phía Modbus TCP, gateway này là bị động. SCADA/HMI (Client) sẽ kết nối tới gateway để đọc/ghi dữ liệu mà gateway đã ánh xạ từ hệ PROFINET.
Lưu ý: Một gateway có thể làm Master ở giao thức A và Slave ở giao thức B — điều này hoàn toàn bình thường và là cách tích hợp các hệ giao thức khác nhau.
5. Mô hình dữ liệu & luồng thông tin (sơ đồ)
Modbus RTU (RS-485)
PLC (Master) → RS-485 → Slave1, Slave2, ...
Modbus TCP (Ethernet)
SCADA (Client) ↔ TCP/IP ↔ Device (Server) — nhiều Client có thể kết nối.
Gateway (ví dụ)
PROFINET Controller (Master) ↔ Gateway ↔ Modbus TCP Server (cho SCADA đọc)
6. Các lỗi thường gặp & cách kiểm tra nhanh
Lỗi: Thiết bị không trả lời trên Modbus TCP
Kiểm tra:
- Đảm bảo SCADA đang kết nối tới đúng IP & port (mặc định Modbus TCP là 502).
- Kiểm tra xem thiết bị có đang ở chế độ Server/Slave hay không — nếu datasheet nói "Modbus TCP Slave", thiết bị chờ kết nối, không chủ động connect.
Lỗi: Không thể đọc thiết bị sau gateway
Kiểm tra:
- Đảm bảo gateway có quyền làm PROFINET Controller và đã map đúng register sang Modbus.
- Kiểm tra mapping address (offsets) — sai offset là lỗi phổ biến.
7. Lời khuyên thực tế khi làm việc (Checklist)
- Đọc kỹ datasheet: chú ý phần "Mode" (Master/Slave hay Client/Server).
- Kiểm tra port & IP (Modbus TCP mặc định 502). Nếu đổi port, cập nhật trong SCADA.
- Với gateway: xác định rõ phía nào nó là Master và phía nào là Slave để tránh hiểu nhầm.
- Test bằng công cụ: dùng modpoll hoặc phần mềm đọc Modbus TCP để kiểm tra kết nối.
- Kiểm tra mapping address—thường sai số offset là nguyên nhân đọc dữ liệu sai.
8. FAQ
Q1: Master và Client có giống hệt nhau không?
Ans: Về vai trò xử lý request thì giống nhau (cả hai đều chủ động gửi request). Khác biệt chỉ ở ngữ cảnh: "Master" dùng cho serial; "Client" dùng cho TCP/IP.
Q2: Một thiết bị có thể vừa là Master vừa là Slave không?
Ans: Có. Ví dụ gateway có thể là Master ở phía serial (truy vấn RTU devices) và là Slave (Server) ở phía Modbus TCP để SCADA đọc dữ liệu.
Q3: Modbus TCP có thể có nhiều Client kết nối tới một Server không?
Ans: Có. Đó là lợi thế của mô hình TCP so với bus serial.
👉 Bài tiếp theo trong series: Giải Phẫu Frame Modbus RTU: Address – Function – CRC | Hướng Dẫn Chi Tiết
Xem thêm:
- So sánh giao thức truyền thông công nghiệp: PROFIBUS-DP và Modbus RTU
- Hướng dẫn cấu hình HD67146-A1 – Kết nối 2 Modbus Master tới nhiều Slave dễ dàng
- Giải pháp kết nối hai Modbus Master với một Modbus Slave bằng HD67146-A1 | ADFweb
- Bộ chuyển đổi M-Bus sang Modbus cho đo lường năng lượng tòa nhà — ADFweb HD67044-B2-20 và HD67055
"BKAII - Thiết bị truyền thông TỐT nhất với giá CẠNH TRANH nhất!"