MODBUS là gì? Tìm hiểu giao thức MODBUS RTU, TCP, ASCII

Ngày Đăng  

25/11/2023

    Thời Gian  

9:10 sáng

    Người Đăng  

Ms. Huyen

Modbus, một giao thức truyền thông công nghiệp phổ biến, cung cấp giải pháp linh hoạt và hiệu quả cho tự động hóa. Dùng rộng rãi từ điều khiển thiết bị đến thu thập dữ liệu, Modbus đa dạng với các phiên bản RTU, TCP và ASCII, phù hợp với nhiều nhu cầu và cấu hình hệ thống khác nhau. Cùng FIBARO Việt Nam tìm hiểu qua bài viết dưới đây.

Mục lục hiện

1. Giao thức Modbus là gì?

Modbus hoặc MODBUS là giao thức truyền dữ liệu máy khách/máy chủ trong lớp ứng dụng của mô hình OSI. Ban đầu nó được Modicon (nay là Schneider Electric) xuất bản vào năm 1979 để sử dụng với bộ điều khiển logic lập trình (PLC). Modbus đã trở thành một giao thức truyền thông tiêu chuẩn trên thực tế để liên lạc giữa các thiết bị điện tử công nghiệp trong nhiều loại xe buýt và mạng.

Giao thức Modbus hỗ trợ cả truyền thông nối tiếp và truyền thông qua mạng, làm cho nó thích hợp với nhiều loại hệ thống khác nhau. Tính đến ngày nay, Modbus vẫn được sử dụng rộng rãi do khả năng tương thích với nhiều loại thiết bị và hệ thống khác nhau, từ các ứng dụng quản lý năng lượng, giám sát và điều khiển quá trình, đến tích hợp trong các giải pháp IoT công nghiệp.

modbus-la-gi
Giao thức Modbus là gì?

Với khả năng hoạt động ổn định và hiệu quả trong môi trường công nghiệp, “Modbus” và các biến thể của nó như “Modbus RTU” và “Modbus TCP/IP” tiếp tục được các nhà phát triển hệ thống và kỹ sư lựa chọn để tạo ra các giải pháp tự động hóa hiện đại và thông minh.

>> Nguồn: Modbus (Wiki)

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

Modbus là một giao thức truyền thông dựa trên kiến trúc master-slave, hoặc client-server trong trường hợp của Modbus TCP/IP. Cơ bản, giao thức này quy định cách các thiết bị trong một hệ thống mạng trao đổi thông tin. Dưới đây là nguyên tắc hoạt động chính của Modbus:

  1. Giao tiếp Master-Slave: Trong Modbus RTU và ASCII, một thiết bị master duy nhất trong mạng có thể gửi yêu cầu dữ liệu hoặc gửi lệnh đến nhiều thiết bị slave. Các thiết bị slave sau đó phản hồi lại master. Điều này đảm bảo rằng không có xung đột trong giao tiếp giữa các thiết bị.
  2. Giao tiếp Client-Server trong Modbus TCP/IP: Khác với RTU và ASCII, Modbus TCP/IP sử dụng mô hình client-server. Ở đây, một hoặc nhiều clients có thể gửi yêu cầu đến server. Giao thức này hoạt động trên nền tảng TCP/IP, cho phép truyền thông qua mạng LAN hoặc Internet.
  3. Cấu trúc Tin nhắn Modbus: Mỗi tin nhắn Modbus bao gồm địa chỉ của thiết bị slave, mã chức năng (định nghĩa loại yêu cầu hoặc lệnh), dữ liệu và một trường kiểm tra lỗi. Điều này đảm bảo rằng thông tin được truyền đi chính xác và không bị lỗi.
  4. Hỗ trợ Nhiều Loại Dữ liệu: Modbus hỗ trợ nhiều loại dữ liệu, bao gồm cả số nguyên và số thực, giúp nó thích hợp cho nhiều loại ứng dụng khác nhau trong tự động hóa công nghiệp.
  5. Đơn giản và Hiệu quả: Một trong những lợi ích lớn của Modbus là sự đơn giản trong thiết kế, làm cho nó dễ dàng tích hợp và triển khai, đồng thời đảm bảo hiệu quả cao trong truyền thông.
modbus-la-gi
Nguyên tắc hoạt động của Modbus

3. Phân loại chuẩn Modbus

Modbus, với sự linh hoạt và đa dạng trong các phương thức truyền thông, được phân loại thành ba chuẩn chính: Modbus RTU, Modbus TCP/IP, và Modbus ASCII. Mỗi chuẩn có đặc điểm kỹ thuật và ứng dụng riêng biệt, phù hợp với nhu cầu cụ thể trong các hệ thống tự động hóa công nghiệp.

1. Modbus RTU (Remote Terminal Unit)

  • Định nghĩa: Modbus RTU là chuẩn truyền thông nối tiếp, sử dụng dữ liệu nhị phân. Đây là hình thức phổ biến nhất của Modbus, được sử dụng trong các ứng dụng cần truyền thông nhanh và hiệu quả.
  • Cấu trúc Dữ liệu: Truyền tải dữ liệu ở dạng nhị phân, cho phép truyền thông tốc độ cao và ít lỗi.
  • Ứng dụng: Đặc biệt hữu ích trong các hệ thống tự động hóa công nghiệp nơi cần truyền dữ liệu nhanh chóng và tin cậy giữa các thiết bị nối tiếp.
  • Tính năng: “Modbus RTU” được biết đến với khả năng truyền thông hiệu quả, giảm thiểu thời gian đáp ứng và tăng cường độ tin cậy.
modbus-la-gi
Modbus RTU (Remote Terminal Unit)

2. Modbus TCP/IP

  • Định nghĩa: Modbus TCP/IP kết hợp giao thức Modbus với giao thức truyền thông Internet TCP/IP, cho phép truyền thông qua mạng LAN hoặc Internet.
  • Cấu trúc Dữ liệu: Sử dụng cấu trúc gói tin của TCP/IP, giúp truyền dữ liệu qua mạng một cách hiệu quả và an toàn.
  • Ứng dụng: Thích hợp cho các ứng dụng cần tích hợp hệ thống tự động hóa với mạng IT, cung cấp khả năng kết nối từ xa và giám sát trung tâm.
  • Tính năng: “Modbus TCP/IP” đặc biệt hữu ích trong môi trường tự động hóa công nghiệp hiện đại, nơi cần tích hợp với các công nghệ thông tin và truyền thông.
modbus-la-gi
Modbus TCP/IP

3. Modbus ASCII

  • Định nghĩa: Modbus ASCII sử dụng ký tự ASCII để truyền thông, phù hợp với các đường truyền chậm hoặc cần kiểm tra và xác nhận thông tin chính xác.
  • Cấu trúc Dữ liệu: Mỗi ký tự được truyền dưới dạng một byte ASCII, giúp việc kiểm tra và xác định lỗi trở nên dễ dàng hơn.
  • Ứng dụng: Phù hợp cho các ứng dụng cần độ tin cậy cao trong truyền thông, nhưng không yêu cầu tốc độ truyền dữ liệu cao.
  • Tính năng: “Modbus ASCII” thường được sử dụng trong các ứng dụng cần kiểm soát chặt chẽ lỗi và độ chính xác trong truyền thông.
modbus-la-gi
Modbus ASCII

Sự kết hợp giữa các chuẩn “Modbus RTU”, “Modbus TCP/IP”, và “Modbus ASCII” tạo nên một hệ thống truyền thông đa dạng và linh hoạt, phù hợp với nhiều loại hệ thống tự động hóa khác nhau, từ các ứng dụng công nghiệp đơn giản đến những hệ thống tự động hóa phức tạp và tích hợp nhiều công nghệ.

4. Bảng So Sánh Sự Khác Biệt Giữa Modbus RTU, TCP và ASCII

Dưới đây là bảng so sánh trực quan giúp hiểu rõ hơn về sự khác biệt giữa Modbus RTU, TCP và ASCII:

Tiêu Chí Modbus RTU Modbus TCP Modbus ASCII
Truyền Thông Qua cổng nối tiếp (Serial) Qua mạng Ethernet Qua cổng nối tiếp (Serial)
Định Dạng Dữ Liệu Dữ liệu nhị phân Dữ liệu nhị phân với MBAP Header Mỗi byte dưới dạng 2 ký tự ASCII
Đặc Điểm Chính Tốc độ truyền thông nhanh Hỗ trợ kết nối mạng Dễ dàng kiểm tra và gỡ lỗi
Kết Cấu Thông Điệp Địa chỉ Slave, mã chức năng, dữ liệu, CRC MBAP Header, thông tin yêu cầu/phản hồi Dấu hai chấm, thông tin yêu cầu/phản hồi, LRC, ký tự xuống dòng
Phù Hợp Cho Môi trường đáp ứng nhanh Hệ thống tự động hóa tích hợp mạng Môi trường truyền thông chậm hơn, độ tin cậy cao
modbus-la-gi
Sự khác biệt giữa các loại Modbus

Bảng này cung cấp cái nhìn tổng quan về sự khác biệt giữa ba phiên bản của Modbus, giúp lựa chọn phù hợp với nhu cầu cụ thể của từng hệ thống tự động hóa công nghiệp. Modbus RTU thường được ưa chuộng cho tốc độ truyền thông nhanh, trong khi TCP phù hợp với các hệ thống cần kết nối mạng và ASCII hữu ích cho việc kiểm tra và gỡ lỗi dễ dàng.

5. Cơ Bản về Dữ Liệu và Định Dạng Trong Modbus

5.1. Mã HEXA (HEXADECIMAL)

Trong quá trình khắc phục sự cố và phân tích dữ liệu thô trong giao thức Modbus, việc đọc và hiểu các chuỗi dài gồm số 1 và số 0 có thể trở nên phức tạp và khó khăn. Để giải quyết vấn đề này, dữ liệu thường được kết hợp và hiển thị dưới dạng thập lục phân (HEXADECIMAL), giúp quá trình phân tích trở nên dễ dàng hơn.

Chuyển Đổi từ Binary sang Hexadecimal:

  • Trong hệ thập lục phân, mỗi khối 4 bit (đơn vị nhỏ nhất của dữ liệu nhị phân) được biểu diễn bằng một trong mười sáu ký tự từ 0 đến F. Việc này giúp rút ngắn và đơn giản hóa việc đọc dữ liệu.

Dưới đây là bảng chuyển đổi từ binary sang hexadecimal:

| Binary | Hex | | Binary | Hex | | Binary | Hex | | Binary | Hex |

| —— | — | | —— | — | | —— | — | | —— | — |

| 0000 | 0 | | 0100 | 4 | | 1000 | 8 | | 1100 | C |

| 0001 | 1 | | 0101 | 5 | | 1001 | 9 | | 1101 | D |

| 0010 | 2 | | 0110 | 6 | | 1010 | A | | 1110 | E |

| 0011 | 3 | | 0111 | 7 | | 1011 | B | | 1111 | F |

  • Mỗi khối 8 bit, còn được gọi là byte, lại được biểu diễn bằng một cặp ký tự thập lục phân, từ 00 đến FF. Điều này tạo nên 256 cặp ký tự thập lục phân khác nhau, đủ để biểu diễn mọi giá trị có thể của một byte.
modbus-la-gi
Dữ liệu hiển thị dưới dạng thập lục phân (HEXADECIMAL), giúp quá trình phân tích trở nên dễ dàng hơn

Ứng Dụng trong Modbus:

Trong Modbus, việc sử dụng mã HEXADECIMAL có vai trò quan trọng trong việc phân tích và khắc phục sự cố. Khi xem xét các gói tin truyền thông, định dạng thập lục phân giúp kỹ sư và nhà phát triển dễ dàng xác định và phân tích dữ liệu, từ đó nhanh chóng tìm ra nguyên nhân và giải pháp cho các vấn đề gặp phải.

5.2. ASCII là gì?

ASCII, viết tắt của “American Standard Code for Information Interchange”, là một bảng mã ký tự được sử dụng để biểu diễn văn bản trong máy tính và các thiết bị điện tử khác. Trong ASCII, mỗi ký tự được mã hóa thành một giá trị số cụ thể. Ví dụ: mỗi 8 bit (một byte) có thể biểu diễn một trong 256 ký tự ASCII khác nhau, bao gồm các ký tự thông thường trên bàn phím.

Biểu Đồ Mã ASCII:

Dưới đây là bảng biểu diễn một số giá trị ASCII, cùng với dạng binary và hexadecimal tương ứng:

Decimal (base10) Binary (base2) Hex (base16) ASCII (base256)
0 0000 0000 00 null
1 0000 0001 01
34 0010 0010 22 #
35 0010 0011 23 $
36 0010 0100 24 %
47 0010 1111 2F /
48 0011 0000 30 0
49 0011 0001 31 1
56 0011 1000 38 8
57 0011 1001 39 9
58 0011 1010 3A :
64 0100 0000 40 @
65 0100 0001 41 A
66 0100 0010 42 B
89 0101 1001 59 Y
90 0101 1010 5A Z
91 0101 1011 5B [
95 0101 1111 5F _
96 0110 0000 60 `
97 0110 0001 61 a
122 0111 1010 7A z
123 0111 1011 7B {
174 1010 1110 AE ®
255 1111 1111 FF

Bảng mã ASCII được sử dụng rộng rãi trong lập trình máy tính và truyền thông dữ liệu, bởi nó cung cấp một phương tiện tiêu chuẩn để mã hóa các ký tự văn bản. Trong giao thức Modbus, phiên bản Modbus ASCII sử dụng hệ thống mã này để biểu diễn dữ liệu, giúp dễ dàng truyền và nhận thông tin qua các thiết bị truyền thông.

modbus-la-gi
Bảng mã ASCII được sử dụng rộng rãi trong lập trình máy tính và truyền thông dữ liệu

5.3. Kiểu Dữ Liệu trong Modbus

Trong Modbus, các register có thể chứa dữ liệu ở nhiều dạng khác nhau, tùy thuộc vào kiểu dữ liệu bạn muốn biểu diễn. Điều này cho phép sự linh hoạt trong việc lưu trữ và truyền tải dữ liệu. Ví dụ, xét register 40108 chứa giá trị AE41, có thể được hiểu là nhiều dạng dữ liệu khác nhau.

Kiểu Dữ Liệu 16 bit:

Biểu Diễn Giá Trị Đọc Được Chú Thích
Số nguyên không dấu 16 bit AE41 = 44,609 Chuyển từ hệ lục phân sang hệ thập phân
Số nguyên có dấu 16 bit AE41 = -20,927 Chuyển từ hệ lục phân sang hệ thập phân, áp dụng chuyển đổi dấu
Chuỗi ASCII 2 ký tự AE41 = ® A Biểu diễn dưới dạng ký tự
Giá trị on/off rời rạc 0000 hoặc 0001 Giá trị chỉ 0 hoặc 1

Kiểu Dữ Liệu 32 bit (Kết hợp 2 Register):

Biểu Diễn Giá Trị Đọc Được Chú Thích
Số nguyên không dấu 32 bit 40108.40109 = AE41 5652 = 2.923.517.522 Chuyển từ hệ lục phân sang hệ thập phân
Số nguyên có dấu 32 bit AE41 5652 = -1,371,449,774 Chuyển từ hệ lục phân sang hệ thập phân, áp dụng chuyển đổi dấu
Số dấu phẩy động IEEE 32 bit AE41 5652 = -4.395978 E-11 Dạng số thực với độ chính xác cao
Chuỗi ASCII 4 ký tự AE41 5652 = ® A V R Biểu diễn dưới dạng ký tự

 

modbus-la-gi
Trong Modbus, các register có thể chứa dữ liệu ở nhiều dạng khác nhau

Register 40108 và các register khác trong Modbus có thể được sử dụng để lưu trữ và biểu diễn một loạt dữ liệu khác nhau, cho phép sự linh hoạt và đa dạng trong việc quản lý dữ liệu trong các hệ thống tự động hóa.

5.4. Byte và Word trong Chuẩn Modbus

Chuẩn Modbus không đặt ra quy định cứng nhắc về cách dữ liệu được lưu trữ trong các thanh ghi, điều này dẫn đến sự đa dạng trong cách triển khai của các nhà sản xuất khác nhau.

Cách Sắp Xếp Byte:

Có hai phương thức chính trong việc lưu trữ và truyền dữ liệu:

  1. Byte Order: Big-Endian – Byte cao (high byte) trước, sau đó là byte thấp (low byte). Ví dụ: AE trước 41.
  2. Byte Order: Little-Endian – Byte thấp trước, sau đó là byte cao. Ví dụ: 41 trước AE.

Kết Hợp Thanh Ghi cho Dữ Liệu 32 bit:

Khi kết hợp thanh ghi để sử dụng các kiểu dữ liệu 32 bit, cũng có hai phương thức:

  1. Word Order: High Word First – Word cao (high word) trong thanh ghi đầu tiên, sau đó là word thấp (low word) trong thanh ghi tiếp theo. Ví dụ: AE41 trước 5652.
  2. Word Order: Low Word First – Ngược lại, word thấp trước, sau đó là word cao. Ví dụ: 5652 trước AE41.

Quan Trọng là Sự Nhất Quán:

Điều quan trọng không phải là thứ tự byte hoặc word được sắp xếp như thế nào, mà là sự nhất quán và đồng bộ giữa thiết bị gửi và nhận, đảm bảo rằng cả hai đều “hiểu” được dữ liệu theo cùng một cách.

Ví Dụ với Số 2.923.517.522:

Nếu số 2.923.517.522 được gửi dưới dạng số nguyên không dấu 32 bit, nó có thể được sắp xếp theo bốn cách khác nhau:

  1. AE41 5652 (Big-Endian, High Word First)
  2. 5652 AE41 (Little-Endian, Low Word First)
  3. 41AE 5256 (Big-Endian, Low Word First)
  4. 5256 41AE (Little-Endian, High Word First)

Sự linh hoạt này cho phép Modbus phù hợp với nhiều kiến trúc hệ thống khác nhau, nhưng đồng thời cũng yêu cầu sự chú ý khi thiết lập giao tiếp giữa các thiết bị khác nhau.

6. Truyền Thông và Địa Chỉ Trong Modbus

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

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

Chi Tiết Địa Chỉ và Khoảng Giá Trị:

  • Mỗi Khoảng: Có tới 9999 biến giá trị.
  • Coil và Contact: 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.
  • Register: Mỗi register là 1 word (16 bit = 2 bytes) và cũng được gán một địa chỉ dữ liệu từ 0000 đến 270E.

Bảng Phân Loại:

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

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

modbus-la-gi
Trong Modbus thông tin dữ liệu được lưu trữ trong thiết bị Slave

Ví dụ về Địa Chỉ và Độ Lệch:

  • Holding Register với số 40001 sẽ có “Data Address” là 0000. Điều này cho thấy có sự khác biệt giữa Coil/Register Numbers và Data Addresses, được gọi là độ lệch. Mỗi bảng có một độ lệch khác nhau: 1, 10001, 30001 và 40001.

Thông qua cách tổ chức này, Modbus cung cấp một cách hiệu quả và rõ ràng để quản lý và truy cập dữ liệu trong các thiết bị Slave, hỗ trợ nhu cầu đa dạng của các ứng dụng tự động hóa công nghiệp.

6.2. Function Code trong Giao thức Modbus

Trong giao thức Modbus, byte thứ hai được gửi bởi “Master” là “Function Code”. Đây là một con số quan trọng, thông báo cho “Slave” biết cần truy cập địa chỉ nào để đọc hoặc ghi giá trị. Function Code xác định loại hoạt động mà Master muốn thực hiện trên Slave.

Tổng quan về Function Codes:

Function Code Action Table Name
01 (01 hex) Read Discrete Output Coils
05 (05 hex) Write single Discrete Output Coil
15 (0F hex) Write multiple Discrete Output Coils
02 (02 hex) Read Discrete Input Contacts
04 (04 hex) Read Analog Input Registers
03 (03 hex) Read Analog Output Holding Registers
06 (06 hex) Write single Analog Output Holding Register
16 (10 hex) Write multiple Analog Output Holding Registers

Mỗi Function Code tương ứng với một loại hành động cụ thể:

  • Đọc (Read): Lấy dữ liệu từ các coils hoặc registers trên thiết bị Slave.
  • Ghi (Write): Cập nhật giá trị cho một hoặc nhiều coils hoặc registers trên thiết bị Slave.
modbus-la-gi
Function Code xác định loại hoạt động mà Master muốn thực hiện trên Slave

Ứng dụng của Function Codes:

Function Codes giúp tối ưu hóa quá trình giao tiếp giữa Master và Slave trong Modbus. Tùy thuộc vào yêu cầu cụ thể, Master sẽ sử dụng Function Code phù hợp để thực hiện các hoạt động như đọc hoặc ghi dữ liệu. Điều này đảm bảo rằng truyền thông giữa các thiết bị diễn ra một cách chính xác và hiệu quả, là yếu tố quan trọng trong các hệ thống tự động hóa công nghiệp sử dụng Modbus.

6.3. Lệnh và Phản Hồi trong Chuẩn Modbus

Trong Modbus, việc gửi lệnh và nhận phản hồi là một phần quan trọng của quá trình giao tiếp giữa Master và Slave. Các lệnh được xác định dựa trên loại dữ liệu cần truy cập và hoạt động mong muốn (đọc hoặc ghi). Dưới đây là bảng tổng hợp các lệnh và phản hồi liên quan đến bốn loại dữ liệu chính trong Modbus.

Bảng Lệnh và Phản Hồi:

Data Addresses Read (FC) Write Single (FC) Write Multiple (FC)
Discrete Output Coils (0xxxx) 01 05 15
Discrete Input Contacts (1xxxx) 02 NA NA
Analog Input Registers (3xxxx) 04 NA NA
Analog Output Holding Registers (4xxxx) 03 06 16

Giải Thích Chi Tiết:

  • Discrete Output Coils (0xxxx):
    • Đọc (Read) với Function Code 01 (FC01).
    • Ghi đơn (Write Single) với Function Code 05 (FC05).
    • Ghi nhiều (Write Multiple) với Function Code 15 (FC15).
  • Discrete Input Contacts (1xxxx):
    • Chỉ hỗ trợ đọc (Read) với Function Code 02 (FC02).
    • Không hỗ trợ ghi (Write).
  • Analog Input Registers (3xxxx):
    • Chỉ hỗ trợ đọc (Read) với Function Code 04 (FC04).
    • Không hỗ trợ ghi (Write).
  • Analog Output Holding Registers (4xxxx):
    • Đọc (Read) với Function Code 03 (FC03).
    • Ghi đơn (Write Single) với Function Code 06 (FC06).
    • Ghi nhiều (Write Multiple) với Function Code 16 (FC16).

Ứng Dụng:

Các lệnh và phản hồi này cho phép Master điều khiển và giám sát thiết bị Slave một cách hiệu quả trong hệ thống tự động hóa sử dụng giao thức Modbus. Ví dụ, Master có thể gửi yêu cầu để đọc trạng thái của các coils hoặc giá trị của các registers, và sau đó nhận phản hồi từ Slave với thông tin cần thiết.

6.4. Mở Rộng Thanh Ghi (Register) trong Chuẩn Modbus

Trong Modbus, thanh ghi đầu ra tương tự (Analog Output Holding Registers) có phạm vi từ 40001 đến 49999, tương ứng với 9999 thanh ghi. Mặc dù đủ cho hầu hết các ứng dụng, nhưng trong một số trường hợp, nhu cầu sử dụng nhiều thanh ghi hơn là cần thiết.

Phạm Vi và Mở Rộng Thanh Ghi:

Phạm Vi Thanh Ghi Ban Đầu Địa Chỉ Dữ Liệu Tương Ứng Phạm Vi Địa Chỉ Dữ Liệu Mở Rộng Phạm Vi Thanh Ghi Mở Rộng
40001 – 49999 0000 – 270E 270F – FFFF 40001 – 105536
  • Sử dụng địa chỉ dữ liệu từ 270F đến FFFF mở rộng số lượng thanh ghi lên đến 65536.
  • Điều này tạo ra phạm vi địa chỉ thanh ghi mới từ 40001 đến 105536.
modbus-la-gi
Thanh ghi đầu ra tương tự (Analog Output Holding Registers) có phạm vi từ 40001 đến 49999

Lưu Ý Khi Sử Dụng Mở Rộng Thanh Ghi:

  • Trình Điều Khiển Phần Mềm Modbus (PC Master): Nhiều trình điều khiển phần mềm Modbus được viết với giới hạn địa chỉ từ 40001 đến 49999. Do đó, chúng có thể không hỗ trợ truy cập vào các địa chỉ thanh ghi mở rộng.
  • Thiết Bị Slave: Một số thiết bị Slave không hỗ trợ sử dụng các địa chỉ thanh ghi mở rộng. Tuy nhiên, có những thiết bị Slave khác lại hỗ trợ chức năng này.
  • Tính Tùy Chỉnh của Phần Mềm Master: Phần mềm Master dựa trên nền tảng có thể tùy chỉnh thường có khả năng truy cập các địa chỉ thanh ghi mở rộng, đáp ứng nhu cầu đa dạng của các ứng dụng tự động hóa.

Mở rộng thanh ghi trong Modbus cho phép tăng cường sự linh hoạt và mở rộng khả năng của các hệ thống tự động hóa, nhưng cũng đòi hỏi sự lưu ý trong việc lựa chọn phần mềm và thiết bị phù hợp để đảm bảo tính tương thích và hiệu quả hoạt động.

6.5. Địa Chỉ “Slave” 2-byte trong Chuẩn Modbus

Trong Modbus, mỗi thiết bị “Slave” cần một địa chỉ duy nhất trên mạng để nhận diện. Địa chỉ này thường được xác định bởi một byte đơn, hạn chế số lượng “Slave” tối đa có thể có trên một mạng.

Giới Hạn Địa Chỉ Slave và Mở Rộng 2-byte:

Loại Địa Chỉ Số Byte Sử Dụng Số Lượng Slave Tối Đa Ghi Chú
Địa Chỉ Mặc Định 1 byte 247 Giới hạn thông thường trong Modbus
Mở Rộng Địa Chỉ 2 byte 65535 Cho phép mở rộng số lượng Slave
  • Địa Chỉ Mặc Định: Sử dụng 1 byte, có giới hạn số lượng Slave là 247.
  • Mở Rộng Địa Chỉ: Bằng cách sử dụng 2 byte cho địa chỉ, có thể mở rộng giới hạn này lên đến 65535 Slave.

Yêu Cầu Để Sử Dụng Địa Chỉ 2-byte:

  • Cả “Master” và “Slave” phải hỗ trợ sửa đổi này.
  • Khi áp dụng, cả mạng lưới phải được cấu hình để sử dụng địa chỉ 2-byte.

Hỗ Trợ Phần Mềm:

  • Hầu hết phần mềm hỗ trợ Modbus mặc định sử dụng địa chỉ 1 byte.
  • Khi một địa chỉ lớn hơn 255 được nhập, phần mềm sẽ tự chuyển sang chế độ địa chỉ 2-byte và tiếp tục ở chế độ này cho đến khi người dùng thủ công tắt nó.

Việc mở rộng giới hạn địa chỉ “Slave” trong Modbus từ 1 byte sang 2 byte cung cấp khả năng mở rộng đáng kể cho các hệ thống tự động hóa, cho phép quản lý số lượng lớn các thiết bị “Slave” trên cùng một mạng. Tuy nhiên, việc này yêu cầu sự tương thích và cấu hình phù hợp từ cả hai phía “Master” và “Slave”.

7. Ứng Dụng Chuẩn Modbus

Modbus, một giao thức mở, đóng vai trò trung tâm trong lĩnh vực tự động hóa công nghiệp. Tính mở của nó cho phép các nhà sản xuất tích hợp giao thức này vào thiết bị của họ mà không cần trả phí bản quyền, làm cho Modbus trở thành một tiêu chuẩn giao thức truyền thông công nghiệp rộng rãi.

Tính Phổ Biến và Tính Ứng Dụng:

Tính Chất Mô Tả
Tiêu Chuẩn Mở Khả năng tích hợp miễn phí, không cần trả phí bản quyền
Phổ Biến Sử dụng rộng rãi trong nhiều ngành công nghiệp
Kết Nối Kết nối các thiết bị điện tử công nghiệp
Truyền Tín Hiệu Từ thiết bị đo đạc và điều khiển đến bộ điều khiển chính hoặc hệ thống thu thập dữ liệu

Các Ứng Dụng Cụ Thể:

  1. Đo Đạc và Điều Khiển: Dùng để truyền tín hiệu từ các thiết bị đo đạc như cảm biến nhiệt độ, độ ẩm, về máy tính hoặc hệ thống kiểm soát trung tâm.
  2. Hệ Thống SCADA: Thường kết nối máy tính giám sát với các 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).

Phiên Bản của Giao Thức Modbus:

Phiên Bản Ứng Dụng
Modbus RTU Đường nối tiếp, được sử dụng cho truyền thông nối tiếp
Modbus ASCII Đường nối tiếp, một biến thể khác cho truyền thông nối tiếp
Modbus TCP Sử dụng trong mạng Ethernet, kết nối mạng lưới

Sự linh hoạt và độ mở của Modbus đã giúp nó trở thành lựa chọn hàng đầu trong nhiều hệ thống tự động hóa công nghiệp, từ quản lý năng lượng, điều khiển quy trình sản xuất, đến tích hợp trong các giải pháp IoT công nghiệp. Modbus không chỉ cung cấp một giải pháp hiệu quả về chi phí mà còn đảm bảo tính tương thích và dễ dàng tích hợp trong nhiều loại hệ thống khác nhau.

modbus-la-gi
Sự linh hoạt và độ mở của Modbus đã giúp nó trở thành lựa chọn hàng đầu trong nhiều hệ thống tự động hóa công nghiệp

Kết luận

Modbus, với sự đa dạng của các phiên bản như RTU, TCP và ASCII, đã chứng minh mình là giao thức không thể thiếu trong ngành công nghiệp tự động hóa. Nó không chỉ đáp ứng nhu cầu về truyền thông đáng tin cậy mà còn cung cấp sự linh hoạt cao, tối ưu hóa quá trình tích hợp và quản lý hệ thống.

—————————————————————-

Liên hệ với FIBARO Việt Nam để được tư vấn miễn phí:

📍 Facebook: https://www.facebook.com/FIBAROVN

📍 Showroom: Số 16, đường 35, An Khánh, Quận 2, Thành phố Hồ Chí Minh

☎️ Hotline: 0913 699 545

📧 Email: xuantuat.vu@kimsontien.com

Last Updated on 16/03/2024 3:34 sáng by Ms. Huyen

0/5 (0 Reviews)

Trả lời

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 *