MODBUS: Giao thức truyền thông công nghiệp hiệu quả

MODBUS là một chuẩn giao thức truyền thông công nghiệp được ra đời vào năm 1979 và phát triển bởi MODICON. Từ năm 1996, nó đã trở thành tài sản của Schneider Electrics. Với tính ổn định, dễ sử dụng và hoàn toàn miễn phí, MODBUS đã trở thành tiêu chuẩn giao tiếp trong ngành tự động hóa công nghiệp. Trang web “modbus.org” hiện đang duy trì và phát triển giao thức này.

Vận hành của MODBUS

MODBUS hoạt động thông qua nguyên tắc “Master – Slave” hay “Chủ – Tớ”. Một Master có thể kết nối với một hoặc nhiều Slave. Master thường là PLC, PC, DCS, RTU hoặc SCADA, trong khi Slave thường là các thiết bị cấp hiện trường. MODBUS được sử dụng để truyền thông tin qua đường dây nối tiếp giữa các thiết bị điện tử. Thiết bị yêu cầu thông tin được gọi là Modbus Master và thiết bị cung cấp thông tin là Modbus Slave. Mạng Modbus tiêu chuẩn có một Master và tối đa 247 Slave, mỗi Slave có một địa chỉ duy nhất từ 1 đến 247. Master cũng có thể ghi thông tin vào các Slave.

Mạng truyền thông công nghiệp MODBUS

Phân loại chuẩn MODBUS

Hiện nay, MODBUS được sử dụng phổ biến trong công nghiệp với ba chuẩn chính: MODBUS RTU, MODBUS TCP và MODBUS ASCII.

Modbus RTU

Đây là chuẩn giao thức truyền thông công nghiệp phổ biến nhất. Dữ liệu được mã hóa dưới dạng hệ nhị phân và chỉ cần một byte truyền thông cho một byte dữ liệu. MODBUS RTU thích hợp cho cổng RS232 hoặc RS485, với tốc độ truyền tải từ 1200 đến 115200 baud. Tốc độ phổ biến nhất là từ 9600 đến 19200 baud.

Modbus TCP

MODBUS TCP là MODBUS qua Ethernet (RJ45). Dữ liệu MODBUS được gói gọn trong một gói TCP/IP. Điều này cho phép dữ liệu MODBUS được truyền qua mạng thay vì qua cổng nối tiếp. Địa chỉ IP được sử dụng thay vì SlaveID để xác định thiết bị.

Modbus ASCII

MODBUS ASCII mã hóa thông điệp bằng hệ thập lục phân, sử dụng đặc tính ASCII 4 bit. Mỗi byte thông tin cần hai byte truyền thông, gấp đôi so với MODBUS RTU hoặc MODBUS TCP. MODBUS ASCII chậm hơn hai chuẩn khác, nhưng phù hợp với các thiết bị sử dụng modem điện thoại hoặc kết nối sóng radio, vì nó sử dụng tính năng phân định thông điệp. Điều này đảm bảo rằng thông tin không bị sai lệch khi truyền thông qua các phương tiện truyền dẫn.

Kiểu dữ liệu và địa chỉ trong MODBUS

Dữ liệu trong MODBUS được lưu trữ trong các coils và registers. Mỗi coils và register đều có các biến đọc và biến đọc/ghi. MODBUS hỗ trợ lưu trữ tối đa 9999 biến giá trị.

Các dải địa chỉ cho coils và registers như sau:

  • Coils (đầu ra rời rạc): 0000 – 270E
  • Discrete Input Contacts (đầu vào rời rạc): 10001 – 19999
  • Analog Input Registers (đầu vào số): 30001 – 39999
  • Analog Output Holding Registers (đầu ra số): 40001 – 49999

Function code và yêu cầu MODBUS

Mỗi yêu cầu MODBUS bao gồm một Function code, xác định hành động được yêu cầu. Sau đây là một số Function code phổ biến:

  • 01: Đọc Coils
  • 03: Đọc Analog Output Holding Registers
  • 04: Đọc Discrete Input Contacts
  • 06: Ghi vào một Analog Output Holding Register
  • 16: Ghi vào nhiều Analog Output Holding Registers

Ứng dụng của MODBUS

MODBUS là giao thức mở, cho phép các nhà sản xuất tích hợp nó vào thiết bị của họ miễn phí. Đây là tiêu chuẩn giao tiếp phổ biến nhất trong công nghiệp, được sử dụng để kết nối các thiết bị điện tử công nghiệp. MODBUS thường được sử dụng để truyền tín hiệu từ các thiết bị đo đạc và điều khiển trở lại bộ điều khiển chính hoặc hệ thống thu thập dữ liệu. Nó cũng thường được sử dụng trong hệ thống giám sát và thu thập dữ liệu từ các thiết bị đầu cuối từ xa (RTU) trong SCADA.

Sự khác biệt giữa RTU và TCP

Sự khác biệt chính giữa MODBUS RTU và MODBUS TCP là phần tiêu đề trong thư. MODBUS RTU sử dụng một tiêu đề 7 byte, trong khi MODBUS TCP sử dụng một tiêu đề MBAP (Modbus Application Header) 7 byte khác. MBAP Header chứa mã định danh, định dạng giao thức, độ dài và định dạng đơn vị.

Sự khác biệt giữa ASCII và RTU

Sự khác biệt giữa MODBUS ASCII và MODBUS RTU là cách thông điệp được mã hóa. MODBUS ASCII sử dụng các ký tự ASCII và được mã hóa dưới dạng khối hexa, trong khi MODBUS RTU sử dụng hệ thống nhị phân. MODBUS ASCII yêu cầu một số byte dữ liệu lớn hơn so với MODBUS RTU, do đó có tốc độ truyền chậm hơn.

MODBUS là một giao thức truyền thông quan trọng trong ngành công nghiệp. Với tính đơn giản và khả năng tích hợp miễn phí, nó đã trở thành công cụ không thể thiếu trong việc kết nối các thiết bị điện tử công nghiệp.

FEATURED TOPIC

hihi