Site icon TAPIT

Khái niệm về giao thức Modbus RTU và kết nối phần cứng

Khái niệm về giao thức Modbus RTU và kết nối phần cứng

Modbus là một chuẩn giao thức truyền thông công nghiệp được phát triển bởi Modicon (nay thuộc về Schneider Electric) vào năm 1979, được dùng để giao tiếp các thiết bị với nhau trong hệ SCADA (Supervisory Control And Data Acquistion). Modbus trở thành một chuẩn giao thức truyền thông công nghiệp tiêu chuẩn vì nó có độ ổn định cao, miễn phí, đơn giản và dễ sử dụng.

Giao thức Modbus được chia thành nhiều loại như Modbus RTU, Modbus ASCII, Modbus TCP/IP. Mỗi loại sẽ thích hợp cho từng ứng dụng riêng. Điểm chung của các giao thức này đều dựa trên nguyên tắc Master – Slave, khi thiết bị Master gửi yêu cầu tới thiết bị Slave thì thiết bị đó mới phản hồi. Tất cả các thiết bị sẽ được kết nối chung với nhau trên một đường truyền.

Bài viết này nằm trong chuỗi bài viết hướng dẫn sử dụng giao thức Modbus RTU. Và trong bài này mình sẽ giới thiệu tổng quan về giao thức Modbus RTU và một số chuẩn vật lý mà giao thức này sử dụng. 

1.Giao thức Modbus RTU

Giao thức Modbus RTU kà một giao thức truyền thông nối tiếp (định nghĩa truyền thông nối tiếp các bạn có thể xem tại đây)

Trong một mạng giao tiếp các thiết bị sử dụng giao thức Modbus RTU, các cảm biến hoặc các cơ cấu chấp hành thường đảm nhiệm vai trò là Slave; Các thiết bị như máy tính, PLC, vi điều khiển,  thiết bị HMI,… có thể là các thiết bị Master, nhưng đôi khi chúng cũng có thể đóng vai trò là các Slave.

Khung truyền của giao thức Modbus RTU xây dựng trên giao thức truyền thông nối tiếp UART. Giao thức UART cũng là một giao thức truyền thông nối tiếp, được sử dụng trong vi điều khiển, nó định nghĩa cấu tạo của một gói tin để gửi một byte sẽ gửi các bit như thế nào (xem thêm tại đây). Và nội dung của các tin nhắn Modbus được xây dựng bằng nhiều gói tin ghép lại (chúng ta sẽ tìm hiểu cấu tạo khung truyền tin nhắn Modbus trong bài tiếp theo).

Cấu tạo một packet của giao thức UART

Trong mô hình OSI, Modbus RTU là một giao thức ở lớp ứng dụng (Application Layer) nên nó cần lớp vật lý (Physical Layer) phía dưới đề kết nối với các thiết bị khác. Đường truyền vật lý chuẩn RS232 và RS485 được sử dụng ở cho giao thức này.

Trong khi đó, tín hiệu của giao thức UART sử dụng trong vi điều khiển dùng chuẩn TTL hoặc chuẩn CMOS (cách phân biệt 2 chuẩn này tại đây). Vì vậy, khi ta muốn sử dụng vi điều khiển để giao tiếp với các thiết bị sử dụng giao thức Modbus RTU thì chúng ta cần có các mạch chuyển đổi TTL/CMOS-RS232 hoặc TTL/CMOS-RS485. Chúng ta sẽ tìm hiểu một chút về đường truyền vật lý RS232 và RS485 ở phần tiếp theo.

Kết nối phần cứng để giao tiếp vi điều khiển sử dụng chuẩn TTL với các thiết bị Modbus RTU

2. Đường truyền vật lý RS232

RS232 còn được gọi là cổng COM, thường được thấy trong các máy tính bàn, máy in, máy fax,… Hiện nay thông dụng nhất vẫn là chuẩn RS232C với các đầu cắm 9 chân.

Một số đặc điểm của chuẩn RS232 như sau:

Có một số module chuyển đổi giữa chuẩn TTL và chuẩn RS232 giúp cho vi điều khiển có thể giao tiếp với các thiết bị sử dụng chuẩn RS232, ví dụ như module dưới sử dụng IC MAX3232 của hãng Texas Instruments.

3. Đường truyền vật lý RS485

RS485 là một đường truyền tương tự như RS232. Tuy nhiên, do có một số đặc tính nổi trội hơn RS232 nên giao thức Modbus RTU chủ yếu sử dụng đường truyền RS485. Nó có một số đặc điểm sau:

Trên thị trường có một số module hỗ trợ để vi điều khiển có thể kết nối được các thiết bị sử dụng chuẩn RS485 sử dụng IC thông dụng như MAX485, SN65HVD485E…

 

=================================================

Như vậy, mình đã giới thiệu giao thức Modbus RTU và một số đặc điểm về đường truyền vật lý RS232 và RS485 khi sử dụng Modbus RTU. Trong phần tiếp theo, mình sẽ trình bày và giải thích cấu tạo của khung truyền tin nhắn Modbus RTU. Cùng theo dõi và đón xem nhé!

Chúc các bạn thành công!

Theo dõi thêm:
– Tổng hợp các bài hướng dẫn Lập trình vi điều khiển STM32
– Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32

Nhóm TAPIT ARM R&D