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)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:

"BKAII - Thiết bị truyền thông TỐT nhất với giá CẠNH TRANH nhất!"


 
 

Số lượng người đang truy cập...

Không thể hiển thị dữ liệu người dùng trực tuyến vào lúc này.