Chuyển đến nội dung
AIOTAIOT
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
  • icon
    097 186 8316    |    0839 799 889
Đào tạo, Khóa đào tạo cơ bản, Phần cứng máy tính & Truyền thông công nghiệp

Bài học 3.3: Giao thức Modbus (RTU và TCP)

Đã đăng trên 26/11/202508/11/2025 bởi ThaoNguyen
26
Th11

Mục tiêu bài học

Nắm vững vai trò và cơ chế giao tiếp Master/Slave của Modbus. Phân biệt được cấu trúc và môi trường truyền tải của hai phiên bản chính: Modbus RTU (qua RS232/RS485) và Modbus TCP (qua Ethernet/IP).

Mở đầu

Chào các bạn! Trong Bài 3.2, chúng ta đã phân tích các chuẩn vật lý RS232/RS485. Hôm nay, chúng ta sẽ tiến lên một bước để tìm hiểu về Giao thức Modbus – một “ngôn ngữ” lớp ứng dụng chạy trên nền tảng của các chuẩn vật lý đó và là một trong những giao thức phổ biến nhất trong hệ thống điều khiển công nghiệp.

Modbus được thiết kế vào năm 1979. Thành công của nó là nhờ vào tính đơn giản, là một tiêu chuẩn mở, và được hỗ trợ rộng rãi. Modbus thường được triển khai giao tiếp giữa PLC (Bộ điều khiển Logic Lập trình) và HMI (Giao diện Người-Máy).

Hiện nay, Modbus có hai phiên bản phổ biến: Modbus RTU (sử dụng đường truyền nối tiếp như RS485) và Modbus TCP (sử dụng nền tảng Ethernet). Với nhu cầu mở rộng của mạng công nghiệp, Modbus TCP đang được sử dụng rộng rãi trong các hệ thống SCADA.

Nội dung chính

1. Modbus trong Mô hình OSI và Cơ chế Giao tiếp

1.1. Vị trí trong Mô hình OSI

Theo mô hình OSI (Mô hình tham chiếu kết nối các hệ thống mở), Modbus là một chuẩn giao thức và dịch vụ thuộc Lớp Ứng dụng (Application Layer). Điều này có nghĩa là Modbus định nghĩa cấu trúc của thông điệp dữ liệu, trong khi nó có thể được vận chuyển qua nhiều lớp vật lý khác nhau (như RS485 hoặc TCP/IP qua Ethernet).

1.2. Cơ chế Master/Slave (Chủ/Tớ)

Giao thức Modbus giao tiếp theo cơ chế yêu cầu/đáp ứng (Master/Slave):

  • Master (Thiết bị chủ): Chỉ có một thiết bị Master có thể khởi tạo yêu cầu (gửi lệnh đọc/ghi).
  • Slave (Thiết bị tớ): Các thiết bị Slave (ví dụ: cảm biến, đồng hồ đo) lắng nghe. Nếu yêu cầu có đúng địa chỉ của mình, nó sẽ xử lý và gửi dữ liệu trả lời lại cho Master.
  • Địa chỉ: Địa chỉ của các trạm (Slave) trong mạng Modbus là từ 1-247 (địa chỉ 0 dùng để gửi quảng bá – broadcast). Một bus Modbus có thể hỗ trợ tối đa 247 thiết bị.


Modbus Master Slave architecture diagram

2. Modbus RTU (Remote Terminal Unit) – Giao tiếp Nối tiếp

Modbus RTU là chế độ truyền thông Modbus truyền thống, thường được sử dụng trên các chuẩn nối tiếp như RS485 (phổ biến nhất) hoặc RS232.

  • Chế độ Truyền: Trong chế độ RTU, mỗi byte trong thông điệp được truyền đi là 8 bit nhị phân.
  • Cấu trúc Thông điệp: Thông điệp RTU được định dạng đơn giản, bao gồm:
    1. Địa chỉ Slave (1 byte)
    2. Mã hàm (1 byte – quy định lệnh đọc hay ghi)
    3. Dữ liệu (Nhiều byte – chứa thông tin cần đọc/ghi)
    4. Mã CRC (2 byte) – (Cyclic Redundancy Check) để kiểm tra lỗi truyền.

3. Modbus TCP/IP – Giao tiếp qua Ethernet

Modbus TCP/IP là phiên bản của giao thức Modbus RTU được sử dụng trên nền Ethernet thông qua họ giao thức TCP/IP.

3.1. Nhúng thông điệp Modbus chuẩn

  • Cơ chế: Modbus TCP nhúng một thông điệp (khung dữ liệu) Modbus chuẩn vào phần dữ liệu của gói TCP.
  • Kiểm lỗi: Trong Modbus TCP, phần kiểm lỗi (Mã CRC) của Modbus RTU không được sử dụng. Thay vào đó, nó sử dụng cơ chế kiểm lỗi của TCP/IP ở tầng vận chuyển để bảo toàn dữ liệu.
  • Cổng (Port): Dữ liệu của Modbus TCP được gửi và nhận qua cổng mặc định là 502.

3.2. Cấu trúc Khung Modbus TCP (MBAP Header)

Modbus TCP bổ sung thêm 7 byte ở phía trước thông điệp Modbus chuẩn, gọi là MBAP (Modbus Application Protocol) Header. MBAP Header bao gồm:

  • Transaction Identifier (2 Bytes): Mã nhận dạng giao dịch, dùng để phân biệt các thông điệp khi có nhiều yêu cầu/đáp ứng đồng thời trên cùng một kết nối TCP.
  • Protocol Identifier (2 Bytes): Mã định danh giao thức (luôn đặt bằng 0 cho Modbus).
  • Length (2 Bytes): Cho biết độ dài của các trường còn lại.
  • Unit ID (1 Byte): Có ý nghĩa tương tự như trường “Địa chỉ Slave” trong Modbus RTU, dùng để nhận dạng thiết bị trong mạng.


Modbus RTU vs Modbus TCP frame structure

4. Lỗ hổng An ninh của Modbus TCP

Các hệ thống SCADA truyền thống thường ít quan tâm đến an ninh. Điều này khiến Modbus TCP có những lỗ hổng nghiêm trọng:

  • Thiếu Xác thực (Lack of Authentication): Modbus không có cơ chế xác minh danh tính. Bất kỳ ai trong mạng cũng có thể gửi lệnh đến Slave nếu biết địa chỉ, tạo điều kiện cho các cuộc tấn công giả mạo.
  • Thông điệp không được Mã hóa (Unencrypted): Tất cả dữ liệu (địa chỉ, mã hàm, dữ liệu) được truyền ở dạng bản rõ (clear text). Kẻ tấn công có thể dễ dàng bắt gói tin, đọc, sửa đổi, hoặc gửi lặp lại thông điệp.
  • Giải pháp: Các hệ thống hiện đại cần bổ sung cơ chế bảo mật, ví dụ như sử dụng mã hóa khóa đối xứng AES-128 để bảo mật Modbus TCP, nhằm tăng cường tính bí mật, xác thực và toàn vẹn gói tin.

Tổng kết kiến thức

Dưới đây là bảng tóm tắt nhanh các kiến thức cốt lõi của bài học:

Tiêu chí Modbus RTU Modbus TCP
Lớp OSI Lớp Ứng dụng (Application Layer)
Cơ chế Master/Slave (Yêu cầu/Đáp ứng)
Môi trường truyền Nối tiếp (Serial) – (RS232, RS485) Ethernet (TCP/IP)
Kiểm tra lỗi Mã CRC (16-bit) Sử dụng cơ chế của TCP/IP (Không có CRC)
Cổng (Port) Không áp dụng (truyền nối tiếp) Cổng 502
Bảo mật (Mặc định) Rất kém (Không xác thực, không mã hóa)

Liên hệ bài học sau

Bài học tiếp theo (Bài 3.4) sẽ giới thiệu về HMI và SCADA. Chúng ta sẽ thấy cách Modbus TCP được sử dụng để kết nối các thiết bị cấp trường (Slave) với các hệ thống điều khiển và giám sát trung tâm (Master), và tại sao màn hình HMI là giao diện quan trọng để người vận hành tương tác với hệ thống Modbus.

Từ khóa SEO

giao thức Modbus
Modbus RTU là gì
Modbus TCP là gì
so sánh Modbus RTU và TCP
Master-Slave Modbus
cổng 502
bảo mật Modbus TCP

Kiểm tra nhanh kiến thức

Hãy xem các câu hỏi dưới đây và tự trả lời. Sau đó, nhấp vào “Bấm để xem đáp án” để kiểm tra.

Câu hỏi 1: Theo mô hình OSI, Modbus là một chuẩn giao thức thuộc lớp nào?

  • (A) Tầng Vật lý (Physical layer)
  • (B) Tầng Vận chuyển (Transport layer)
  • (C) Tầng Ứng dụng (Application layer)
  • (D) Tầng Liên kết dữ liệu (Data-link layer)
Bấm để xem đáp án và giải thích

Đáp án đúng là (C).

Giải thích: Modbus là giao thức thuộc lớp Ứng dụng (Application layer), nó định nghĩa “ngôn ngữ” giao tiếp, không phải cách truyền tín hiệu vật lý.

Câu hỏi 2: Cơ chế giao tiếp cốt lõi của giao thức Modbus là gì?

  • (A) Peer-to-peer (Ngang hàng)
  • (B) Broadcast (Quảng bá)
  • (C) Yêu cầu/Đáp ứng (Master/Slave)
  • (D) Token Ring
Bấm để xem đáp án và giải thích

Đáp án đúng là (C).

Giải thích: Modbus giao tiếp theo cơ chế Master/Slave, trong đó Master (Chủ) gửi yêu cầu và Slave (Tớ) đáp ứng.

Câu hỏi 3: Điểm khác biệt chính giữa Modbus RTU và Modbus TCP/IP về môi trường truyền tải là gì?

  • (A) Modbus RTU sử dụng cáp quang, Modbus TCP/IP sử dụng cáp xoắn đôi.
  • (B) Modbus RTU sử dụng giao diện nối tiếp (RS232/RS485), Modbus TCP/IP sử dụng Ethernet.
  • (C) Modbus RTU sử dụng cổng 502, Modbus TCP/IP sử dụng cổng 80.
  • (D) Modbus RTU hỗ trợ đa điểm, Modbus TCP/IP chỉ hỗ trợ điểm-điểm.
Bấm để xem đáp án và giải thích

Đáp án đúng là (B).

Giải thích: Đây là sự khác biệt cơ bản về lớp vật lý và vận chuyển. RTU chạy trên đường truyền nối tiếp, trong khi TCP chạy trên mạng Ethernet (TCP/IP).

Câu hỏi 4: Trong cấu trúc thông điệp Modbus TCP, trường nào có ý nghĩa tương tự như trường “Địa chỉ Slave” trong Modbus RTU, dùng để nhận dạng thiết bị?

  • (A) Transaction Identifier
  • (B) Protocol Identifier
  • (C) Length Field
  • (D) Unit ID
Bấm để xem đáp án và giải thích

Đáp án đúng là (D).

Giải thích: Trường Unit ID (1 byte) trong MBAP Header được dùng để nhận dạng thiết bị Slave, tương đương với trường Địa chỉ (Address) trong Modbus RTU.

Câu hỏi 5: Lỗ hổng bảo mật đáng lo ngại nhất của giao thức Modbus TCP truyền thống là gì?

  • (A) Tốc độ truyền dữ liệu quá chậm.
  • (B) Các thông điệp được truyền ở dạng bản rõ (không mã hóa) và thiếu xác thực.
  • (C) Bị giới hạn ở khoảng cách 1200m.
  • (D) Chỉ có thể kết nối tối đa 247 thiết bị.
Bấm để xem đáp án và giải thích

Đáp án đúng là (B).

Giải thích: Việc truyền dữ liệu ở dạng bản rõ (clear text) và không yêu cầu xác thực khiến Modbus TCP dễ bị tấn công giả mạo và nghe lén.

Mục nhập này đã được đăng trong Đào tạo, Khóa đào tạo cơ bản, Phần cứng máy tính & Truyền thông công nghiệp và được gắn thẻ Truyền thông công nghiệp.
ThaoNguyen

Linh hoạt với COM Express và SMARC: Giải pháp Mô-đun cho Thiết kế Hệ thống Nhúng Tùy chỉnh
Khả năng Xử Lý AI Tại Biên: Giới Thiệu Bộ KIT AIoT-i.MX93 với NPU Arm® Ethos™-U65

1 những suy nghĩ trên “Bài học 3.3: Giao thức Modbus (RTU và TCP)”

  1. Pingback: Bài học 3.4: HMI và SCADA (Giao diện Người-Máy) - AIOT

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết mới
  • [Embedded Series – Bài 9] Nhập Môn Cấu Trúc Dữ Liệu Và Giải Thuật: Sức Mạnh Của Danh Sách Liên Kết
  • [Embedded Series – Bài 8] Thao Tác Với Tệp Tin (File I/O) Trong Lập Trình C
  • [Embedded Series – Bài 7] Kiểu Dữ Liệu Cấu Trúc (Struct) Và Quản Lý Dữ Liệu Phức Hợp
  • [Embedded Series – Bài 6] Con Trỏ Nâng Cao: Quản Lý Bộ Nhớ Động Và Chuẩn Hóa Mã Nguồn
  • [Embedded Series – Bài 5] Làm Chủ Con Trỏ (Pointer) Và Quy Ước Lập Trình C
Danh mục
  • Đào tạo
  • FPGA cơ bản
  • Giải pháp
  • Hệ thống nhúng
  • IoT trong giáo dục
  • IoT trong y tế
  • Khóa đào tạo cơ bản
  • Khóa đào tạo nâng cao
  • LabVIEW FPGA
  • LabVIEW FPGA High Performance
  • Phần cứng máy tính & Truyền thông công nghiệp
  • Sản xuất công nghiệp
  • Thiết bị dịch vụ thông minh
  • Thiết bị đọc căn cước
  • Tin tức

CÔNG TY CỔ PHẦN HỆ THỐNG AIOT

VPGD: Số A21-TT9 Đường Foresa 1 KĐT Xuân Phương, Phường Xuân Phương, Hà Nội.

Địa chỉ kinh doanh: Đường Phú Diễn, Tổ dân phố 18, phường Phú Diễn, Thành phố Hà Nội, Việt Nam

Hotline/Zalo: 097 186 8316 | 0839 799 889

Email: aiot@aiots.vn

VỀ CHÚNG TÔI

Giới thiệu

Sản phẩm

Giải pháp

Đào tạo

Tin tức

QUY ĐỊNH & CHÍNH SÁCH

Chính sách thanh toán

Chính sách vận chuyển

Chính sách bảo hành

Chính sách đổi trả

Chính sách bảo mật

ĐỊA CHỈ VĂN PHÒNG GIAO DỊCH

Copyright 2024 © Bản quyền thuộc về AIOT. Thiết kế bởi Jamina JSC
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
Zalo
Phone

Đăng nhập

Quên mật khẩu?