MODBUS là gì? Khái niệm cơ bản về giao thức Modbus

Modbus là gì

Modbus là gì ? Giao thức Modbus hoạt động như thế nào và được ứng dụng ra sao trong các ngành công nghiệp? Cùng tìm hiểu qua bài viết sau.

1. MODBUS là gì?

MODBUS là một chuẩn giao thức truyền thông công nghiệp được phát hành và phát triển bởi MODICON vào năm 1979, và chính thức thuộc về Schneider Electrics vào năm 1996.

MODBUS đã nhanh chóng trở thành trở thành tiêu chuẩn truyền thông trong các ngành công nghiệp tự động hóa bởi tính ổn định, dễ dàng, thuận tiện và đặc biệt hơn nữa là MIỄN PHÍ và hiện được duy trì bởi tổ chức “modbus.org”.

modbus 1
MODBUS là gì

2. Nguyên tắc hoạt động của MODBUS

MODBUS hoạt động theo nguyên tắc “Master – Slave” hay còn gọi là “Chủ – Tớ”. Một Master có thể kết nối được với một hay nhiều “Slave”. “Master” thường là PLC, PC, DCS, RTU hay SCADA. “Slave” thường là các thiết bị cấp hiện trường. Nói một cách dễ hiểu, nó là một phương pháp đượ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 Slaves. Trong 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ỉ Slave duy nhất từ ​​1 đến 247. Master cũng có thể ghi thông tin vào các Slave.

modbus 2
Modbus Master và thiết bị cung cấp thông tin Modbus Slaves

Ban đầu, nó hoạt động trên RS232, nhưng sau đó nó sử dụng cho cả RS485 để đạt tốc độ cao hơn, khoảng cách dài hơn, và mạng đa điểm (multi-drop). MODBUS đã nhanh chóng trở thành tiêu chuẩn thông dụng trong ngành tự động hóa, và Modicon đã cho ra mắt công chúng như một protocol miễn phí.

Các thiết bị trên mạng MODBUS không thể tạo ra kết nối; chúng chỉ có thể phản ứng. Nói cách khác, chúng “lên tiếng” chỉ khi được “nói tới”. Một số nhà sản xuất đang phát triển các thiết bị lai ghép hoạt động như các tớ MODBUS, tuy nhiên chúng cũng có “khả năng viết”, do đó làm cho chúng trở thành các thiết bị chủ ảo.

3. Các tiêu chuẩn Modbus được sử dụng phổ biến

Hiện nay, có 03 chuẩn modbus đang được sử dụng phổ biến trong công nghiệp – tự động hóa là: Modbus RTU, Modbus ASCII, Modbus TCP

modbus 3
Các tiêu chuẩn Modbus

3.1 Modbus ASCII

Mọi thông điệp được mã hóa bằng hexadeci-mal, sử dụng đặc tính ASCII 4 bit. Đối với mỗi một byte thông tin, cần có 2 byte truyền thông, gấp đôi so với MODBUS RTU hay MODBUS/TCP. Tuy nhiên, MODBUS ASC II chậm nhất trong số 3 loại protocol, nhưng lại thích hợp khi modem điện thoại hay kết nối sử dụng sóng radio do ASC II sử dụng các tính năng phân định thông điệp.

Do tính năng phân định này, mọi rắc rối trong phương tiện truyền dẫn sẽ không làm thiết bị nhận dịch sai thông tin. Điều này quan trọng khi đề cập đến các modem chậm, điện thoại di động, kết nối ồn hay các phương tiện truyền thông khó tính khác.

3.2 Modbus RTU

Dữ liệu được mã hóa theo hệ nhị phân, và chỉ cần một byte truyền thông cho một byte dữ liệu. Đây là thiết bị lí tưởng đối với RS 232 hay mạng RS485 đa điểm, tốc độ từ 1200 đến 115 baud. Tốc độ phổ biến nhất là 9600 đến 19200 baud.

MODBUS RTU là protocol công nghiệp được sử dụng rộng rãi nhất, do đó hầu như trong bài viết này chỉ tập trung đề cập đến cơ sở và ứng dụng của nó. Thông tin chi tiết về giao thức Modbus RTU có thể xem thêm tại đây.

modbus 4
Modbus RTU

3.3 Modbus TCP

MODBUS TCP là MODBUS qua Ethernet (RJ45). Với MODBUS TCP, dữ liệu MODBUS được tóm lược đơn giản trong một gói TCP/IP. Nói một cách đơn giản, đây như là một thông điệp của Modbus RTU được truyền bằng trình bao bọc TCP/IP và được gửi qua mạng thay vì các đường nối tiếp. Máy chủ không có SlaveID vì nó sử dụng địa chỉ IP.

modbus 5
Modbus TCP

4. Địa chỉ dữ liệu và thanh ghi theo chuẩn MODBUS

Thông tin dữ liệu được lưu trữ trong thiết bị Slave được chia trong 4 khoảng giá trị khác nhau. Hai khoảng lưu trữ các giá trị rời rạc on/off (coils) và hai khoảng lưu trữ giá trị số (register – thanh ghi). Mỗi coils và register đều có khoảng biến chỉ đọc (read-only) và biến đọc và ghi (read-write).

  • Mỗi khoảng có 9999 biến giá trị
  • Mỗi coil hoặc contact là 1 bit và được gán một địa chỉ dữ liệu trong khoảng từ 0000 đến 270E
  • Mỗi register là 1 word = 16 bít = 2 bytes và cũng được gán một địa chỉ dữ liệu từ 0000 đến 270E
Coil/Register Numbers Data Addresses Type Table Name
1-9999 0000 to 270E Read-Write Discrete Output Coils
10001-19999 0000 to 270E Read-Only Discrete Input Contacts
30001-39999 0000 to 270E Read-Only Analog Input Registers
40001-49999 0000 to 270E Read-Write Analog Output Holding Registers

Coil/Register Numbers có thể được coi như tên vị trị vì chúng không xuất hiện trong các thông điệp thực tế. “Data Addressses” được sử dụng trong các thông điệp truyền tải (truy xuất dữ liệu).

Ví dụ: Holding Register có số là 40001, có “Data Address” là 0000. Sự khác biệt giữa hai giá trị này là độ lệch. Mỗi bảng có một độ lệch khác nhau. 1, 10001, 30001 và 40001.

5. Kiểu dữ liệu MODBUS

a. Register 40108 có thể được hiểu là bất kỳ kiểu dữ liệu 16 bit nào sau đây:

  • Một số nguyên không dấu 16 bit (một số nguyên không dấu nằm từ 0 đến 65535): Register 40108 chứa AE41 = 44,609 (chuyển từ hệ lục phân sang hệ thập phân)
  • Một số nguyên có dấu 16 bit (một số nguyên có dấu nằm từ -32768 đến 32767): AE41 = -20,927 (chuyển đổi từ hệ lục phân sang hệ thập phân không lặp lại, nếu nó quá 32767 thì trừ đi 65535)
  • Một chuỗi ASCII hai ký tự (2 chữ cái đã nhập): AE41 = ® A
  • Một giá trị on/off rời rạc (giá trị này hoạt động giống như số nguyên 16 bit có giá trị 0 hoặc 1. Dữ liệu hex sẽ là 0000 hoặc 0001)

b. Register 40108 cũng có thể được kết hợp với 40109 để tạo thành bất kỳ kiểu dữ liệu 32 bit nào sau đây:

  • Một số nguyên không dấu 32 bit (một số từ 0 đến 4,294,967,295): 40108.40109 = AE41 5652 = 2.923.517.522
  • Một số nguyên có dấu 32 bit (một số từ -2,147,483,648 đến 2,147,483,647) AE41 5652 = -1,371,449,774
  • Một số dấu phẩy động IEEE 32 bit. Đây là một công thức toán học cho phép bất kỳ số thực nào (một số có dấu thập phân) được biểu diễn bằng 32 bit với độ chính xác khoảng bảy chữ số. AE41 5652 = -4.395978 E-11
  • Một chuỗi ASCII bốn ký tự (4 chữ cái đã nhập) AE41 5652 = ® A V R. Nhiều Register hơn có thể được kết hợp để tạo thành chuỗi ASCII dài hơn. Mỗi Register được sử dụng để lưu trữ hai ký tự ASCII (2 byte)

6. Byte và Word trong chuẩn MODBUS

Chuẩn Modbus không xác định chính xác cách dữ liệu được lưu trữ trong các thanh ghi. Do đó, một số nhà sản xuất đã triển khai tích hợp chuẩn modbus trong thiết bị của họ để lưu trữ và truyền byte cao hơn đầu tiên sau đó là byte thấp hơn. (AE trước 41). Ngoài ra, cũng có những nhà sản xuất khác lưu trữ và truyền byte thấp hơn trước và sau đó là byte cao hơn (41 trước AE).

Tương tự, khi các thanh ghi được kết hợp để sử dụng các kiểu dữ liệu 32 bit. Một số thiết bị lưu trữ và truyền 16 bit cao hơn (word cao) trong thanh ghi đầu tiên và word thấp hơn trong thanh ghi thứ hai (AE41 trước 5652) trong khi những thiết bị khác làm ngược lại (5652 trước AE41)

modbus 6
Byte và Word trong chuẩn MODBUS

7. Mở rộng thanh ghi (Register) trong chuẩn MODBUS

Phạm vi của các thanh ghi giữ đầu ra tương tự là 40001 đến 49999, nó ngụ ý rằng không thể có nhiều hơn 9999 thanh ghi. Mặc dù điều này thường là đủ cho hầu hết các ứng dụng, nhưng có những trường hợp cần thêm nhiều địa chỉ thanh ghi nữa.

Các thanh ghi 40001 đến 49999 tương ứng với địa chỉ dữ liệu từ 0000 đến 270E. Nếu chúng ta sử dụng các địa chỉ dữ liệu còn lại từ 270F đến FFFF, thì số thanh ghi có sẵn sẽ gấp hơn sáu lần, tổng cộng là 65536. Điều này sẽ tương ứng với các địa chỉ thanh ghi từ 40001 đến 105536.

Chú ý: nhiều trình điều khiển phần mền sử dụng Modbus (PC Master) được viết với giới hạn địa chỉ từ 40001 đến 49999 và không thể truy cập các địa chỉ thanh ghi mở rộng trong các thiết “Slave”. Và nhiều thiết bị “Slave” không hỗ trợ sử dụng các địa chỉ thanh ghi mở rộng. Mặt khác, một số thiết bị “Slave” hỗ trợ các thanh ghi mở rộng này và một số phần mềm “Master” có thể truy cập được nó, đặc biệt nếu phần mềm được viết trên nền tảng có thể tùy chỉnh.

8. Ứng dụng chuẩn MODBUS

Modbus là một giao thức mở, điều này có nghĩa là các nhà sản xuất hoàn toàn có thể tích hợp chuẩn Modbus vào thiết bị của họ miễn phí mà không phải trả tiền bản quyền. Nó đã trở thành một tiêu chuẩn giao thức truyền thông trong công nghiệp và đang là phương tiện phổ biến nhất hiện có để kết nối các thiết bị điện tử công nghiệp. Nó được sử dụng rộng rãi bởi nhiều nhà sản xuất trong nhiều ngành công nghiệp.

modbus 7
Ứng dụng chuẩn MODBUS

Modbus thường được sử dụng để truyền tín hiệu từ 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, ví dụ như hệ thống đo nhiệt độ và độ ẩm và truyền kết quả tới máy tính. Modbus thường được sử dụng để kết nối máy tính giám sát với thiết bị đầu cuối từ xa (RTU) trong hệ thống điều khiển giám sát và thu thập dữ liệu SCADA. Các phiên bản của giao thức Modbus phổ biến cho các đường nối tiếp (Modbus RTU và Modbus ASCII) và cho Ethernet (Modbus TCP).

9. Lợi ích khi sử dụng Modbus là gì?

  • Phát triền với các ứng dụng IoT trong công nghiệp hiện đai.
  • Cho phép kết nối nhanh chóng, hiệu quả trong mạng hệ thống.
  • Dễ triển khai, bảo trì, quản lý tập trung
  • Kết nối được với các hệ thống giám sát, thu thập dữ liệu cho công tác quản trị, vận hành hệ thống nhà máy.