Giao thức Modbus RTU giống như một “ngôn ngữ chung” giữa các thiết bị công nghiệp, giúp “giao tiếp” thông suốt giữa các thiết bị như đồng hồ đo điện, cảm biến của các thương hiệu khác nhau.
Trình diễn ứng dụng giao thức truyền thông Modbus
Bài viết này sẽ hướng dẫn các bạn ứng dụng Modbus RTU trong các máy đo năng lượng một cách đơn giản và dễ hiểu nhất. Ngay cả khi bạn là người mới hoàn toàn không có nền tảng kỹ thuật, bạn vẫn có thể dễ dàng nắm bắt được những điểm cốt lõi của giao thức truyền thông công nghiệp quan trọng này.

Giao thức Modbus RTU là gì?
Modbus RTU là giao thức truyền thông nối tiếp được phát triển ban đầu bởi Modicon (hiện là một phần của Schneider Electric) vào năm 1979 cho các PLC (Bộ điều khiển logic lập trình) của họ.
Ngày nay, nó đã trở thành một trong những giao thức được sử dụng rộng rãi nhất trong tự động hóa công nghiệp, được hỗ trợ bởi hơn 400 nhà sản xuất trên toàn thế giới.
Tại sao nó được gọi là "RTU"? RTU là tên viết tắt của "Thiết bị đầu cuối từ xa", chỉ ra rằng giao thức này chủ yếu được sử dụng để liên lạc giữa các thiết bị từ xa. Nó giống như một “hệ thống nhắn tin” giữa các thiết bị điện, trao đổi dữ liệu thông qua cơ chế yêu cầu và phản hồi đơn giản.
Modbus RTU hoạt động như thế nào?
Modbus RTU sử dụng kiến trúc giao tiếp chính-nô lệ, giống như giáo viên và học sinh trong lớp học.
- Master: "Giáo viên", thường là máy tính, PLC hoặc bộ tập trung, chịu trách nhiệm đưa ra các câu hỏi và lệnh.
- Nô lệ: “Học sinh” như đồng hồ đo điện hoặc cảm biến chỉ có thể trả lời câu hỏi của giáo viên và không thể nói độc lập. (Trong ứng dụng đồng hồ đo điện...)

Định dạng tin nhắn Modbus RTU
"Mẫu SMS" giữa các thiết bị
Tin nhắn liên lạc Modbus RTU giống như tin nhắn văn bản được soạn thảo cẩn thận với các yêu cầu về định dạng cố định.
Một thông báo Modbus RTU hoàn chỉnh chứa các phần sau:
| Mã địa chỉ | Mã chức năng | Trường dữ liệu | Kiểm tra mã |
|---|---|---|---|
| 8 bit | 8 bit | N × 8-bit | 16-bit |
- Mã địa chỉ (1 byte): Tương đương với "số điện thoại của người nhận", xác định địa chỉ của đồng hồ đo năng lượng mục tiêu (1-247), với 0 cho địa chỉ quảng bá.
- Mã chức năng (1 byte): Tương đương với "loại tin nhắn văn bản", hướng dẫn đồng hồ đo năng lượng về hoạt động thực hiện (ví dụ: đọc dữ liệu, ghi dữ liệu, v.v.).
- Trường dữ liệu (N byte): Thông tin cụ thể được truyền đi, chẳng hạn như địa chỉ thanh ghi, giá trị dữ liệu, v.v.
- Tổng kiểm tra CRC (2 byte): Tương đương với "mã chống{1}}giả mạo", được sử dụng để kiểm tra lỗi trong quá trình truyền.
Thông báo điển hình để đọc tổng dữ liệu năng lượng hoạt động dương từ máy đo năng lượng UBS như sau:
[Địa chỉ 00] [Mã chức năng 03] [Địa chỉ bắt đầu 00 0C] [Độ dài đọc 00 02] Tổng kiểm tra CRC 05 D9]
Điều này tương đương với việc nói: "Tất cả các máy đo, vui lòng đọc dữ liệu từ thanh ghi 000C, bắt đầu từ thanh ghi 1."
Sau khi nhận được tin nhắn, đồng hồ số 1 sẽ trả lời:
[Địa chỉ 01] [Mã chức năng 03] [Độ dài dữ liệu 04] [Dữ liệu 00 00 00 00] Tổng kiểm tra CRC FA 33]
Điều này có nghĩa là: "Đồng hồ số 1 đã trả lời: Tổng giá trị dữ liệu năng lượng hoạt động dương đã đọc là 00 00 00 00 (thập lục phân)" (Lưu ý: Đồng hồ số 1 này là đồng hồ mới, chưa sử dụng). Hình ảnh dưới đây là một minh chứng thử nghiệm:

"Sổ dữ liệu" trong đồng hồ đo điện: Giải thích về đăng ký
Trong giao thức Modbus RTU, tất cả dữ liệu từ đồng hồ đo điện được lưu trữ trong sổ đăng ký "bảng tính"{0}}. Các thanh ghi chủ yếu được chia thành bốn loại:
| Loại đăng ký | Quyền đọc/ghi | Mã chức năng | Nội dung được lưu trữ điển hình |
|---|---|---|---|
| Đăng ký cuộn dây | Đọc/Ghi | 01, 05 | Trạng thái rơle, điều khiển công tắc |
| Đăng ký đầu vào rời rạc | chỉ đọc- | 02 | Đầu vào kỹ thuật số (ví dụ: tín hiệu báo động) |
| Đăng ký đầu vào | chỉ đọc- | 04 | Dữ liệu đo thời gian thực-(điện áp, dòng điện, v.v.) |
| Giữ sổ đăng ký | Đọc/Ghi | 03, 06 | Thông số thiết bị, năng lượng tích lũy, v.v. |
Trong các ứng dụng đồng hồ điện, các thanh ghi phổ biến nhất là:
Đăng ký đầu vào
(Mã chức năng 04H): Lưu trữ dữ liệu đo được theo thời gian thực-chẳng hạn như điện áp, dòng điện và nguồn điện.
Giữ sổ đăng ký
(Mã chức năng 03H): Lưu trữ mức tiêu thụ điện tích lũy, thông số thiết bị, v.v.
Bảng thông tin địa chỉ đăng ký đồng hồ đo năng lượng UBS Modbus
Địa chỉ quảng bá giao thức Modbus là 0x00. Để biết thông tin địa chỉ đăng ký giao thức Modbus chi tiết cho đồng hồ đo năng lượng UBS, vui lòng xem bảng bên dưới:
| Đăng ký (Hex) | Tên biến | Thuộc tính (Đơn vị / R/W) | Kiểu dữ liệu | Đếm | Bình luận |
|---|---|---|---|---|---|
| 0x0000 | Điện áp DC | Đơn vị: V, R/W: RO | S16 | 1 | Phạm vi: -9999~9999; Đọc=Giá trị hiệu dụng × 10^(Dấu thập phân) |
| 0x0001 | Điểm thập phân điện áp | Đơn vị: Không, R/W: RO | U16 | 1 | Giá trị cố định: 0 |
| 0x0002 | Giá trị hiện tại DC | Đơn vị: A, R/W: RO | S16 | 1 | Phạm vi: -9999~9999 |
| 0x0003 | Điểm thập phân hiện tại | Đơn vị: Không, R/W: RO | U16 | 1 | Giá trị cố định: 1 |
| 0x0008 | Giá trị năng lượng | Đơn vị: kW, R/W: RO | S16 | 1 | Phạm vi: -9999~9999 |
| 0x0009 | Điểm thập phân lũy thừa | Đơn vị: Không, R/W: RO | U16 | 1 | Giá trị cố định: 1 |
| 0x000C | Tổng năng lượng hoạt động chuyển tiếp | Đơn vị: 0,001kWh, R/W: RO | U32 | 2 | Byte cao đầu tiên, byte thấp cuối cùng; Ví dụ: Nếu dữ liệu đọc=5000, dấu thập phân=2 → Giá trị thực=5000 × 10^(2-3)=500.0 |
| 0x203C | Điện áp kênh 1 | Đơn vị: 0,0001V, RW: RO | I32 | 2 | Byte cao đầu tiên, byte thấp cuối cùng |
| 0x203E | Điện áp kênh 2 | Đơn vị: 0,0001V, RW: RO | I32 | 2 | Luôn luôn là 0 |
| 0x2040 | Kênh 1 hiện tại | Đơn vị: 0,0001A, RW: RO | I32 | 2 | Byte cao đầu tiên, byte thấp cuối cùng |
| 0x2042 | Kênh 2 hiện tại | Đơn vị: 0,0001A, RW: RO | I32 | 2 | Luôn luôn là 0 |
| 0x2044 | Nguồn kênh 1 | Đơn vị: 0,0001kW, R/W: RO | I32 | 2 | Byte cao đầu tiên, byte thấp cuối cùng |
| 0x2046 | Nguồn kênh 2 | Đơn vị: 0,0001kW, R/W: RO | I32 | 2 | Luôn luôn là 0 |
| 0x9A00 | Chuyển tiếp tổng năng lượng hoạt động | Đơn vị: kWh, R/W: RO | trôi nổi | 2 | |
| 0xA001/0x8900 | Địa chỉ thiết bị | Đơn vị: Không, R/W: RW | U16 | 1 | Phạm vi: 0~247 |
Trình diễn đọc tin nhắn trên đồng hồ đo năng lượng UBS
Sử dụng phần mềm máy tính chủ đồng hồ đo năng lượng UBS, đọc dữ liệu sau từ đồng hồ đo năng lượng thông minh DJZ1226 DC: tổng năng lượng hoạt động dương, điện áp, dòng điện, công suất và địa chỉ đồng hồ đo.

Như thể hiện trong sơ đồ trên, nội dung tin nhắn chi tiết được máy chủ gửi và nhận như sau:
13:25:30.229 Tổng năng lượng hoạt động dương(000C0002) ...
13:25:30.256 ▼Gửi:00 03 00 0C 00 02 05 D9
13:25:30.344 ▲Nhận:01 03 04 00 00 00 00 FA 33
13:25:30.359 Điện áp DC(00000002) ...
13:25:30.424 ▼Gửi:00 03 00 00 00 02 C5 DA
13:25:30.428 ▲Nhận:01 03 04 00 17 00 03 0A 36
13:25:30.494 Dòng điện một chiều (00020002) ...
13:25:30.522 ▼Gửi:00 03 00 02 00 02 64 1A
13:25:30.610 ▲Nhận:01 03 04 00 30 00 02 7B FD
13:25:30.621 Nguồn(00080002) ...
13:25:30.682 ▼Gửi:00 03 00 08 00 02 44 18
13:25:30.690 ▲Nhận:01 03 04 00 01 00 02 2A 32
13:25:30.702 Địa chỉ liên lạc 2(A0010001) ...
13:25:30.779 ▼Gửi:00 03 A0 01 00 01 F6 1B
13:25:30.783 ▲Nhận:01 03 02 00 01 79 84
13:25:30.795 Kết thúc việc đọc dữ liệu.
Các vấn đề thường gặp và kỹ thuật khắc phục sự cố
Mặc dù giao thức Modbus RTU tương đối đơn giản nhưng nhiều vấn đề khác nhau vẫn có thể phát sinh trong các ứng dụng thực tế. Sau đây là những lỗi thường gặp và cách khắc phục trong giao tiếp công tơ điện:
Không có phản hồi liên lạc
● Kiểm tra kết nối vật lý:
▪ Dây RS-485 có đúng không (các đường A/B bị đảo ngược)?
▪ Các điện trở đầu cuối có khớp nhau không (thông thường, kết nối các điện trở 120Ω ở mỗi đầu của bus)?
▪ Khoảng cách liên lạc có vượt quá giới hạn không (RS-485 về mặt lý thuyết có thể đạt tới 1200 mét, nhưng khoảng cách thực tế bị ảnh hưởng bởi các yếu tố môi trường).
● Xác minh cài đặt thông số:
▪ Tốc độ truyền, bit dữ liệu, bit dừng và cài đặt chẵn lẻ có phù hợp với đồng hồ đo điện không?
▪ Địa chỉ thiết bị có được đặt chính xác không (không có địa chỉ trùng lặp)?
Giao tiếp không liên tục
● Kiểm tra nhiễu đường truyền:
▪ Sử dụng cáp xoắn đôi có vỏ bọc chống nhiễu và đảm bảo rằng vỏ bọc được nối đất ở một đầu.
▪ Tránh chạy cáp song song với cáp-điện áp cao.
● Kiểm tra các thiết bị riêng lẻ:
▪ Đấu nối riêng từng công tơ điện để khắc phục sự cố các thiết bị bị lỗi.
▪ Sử dụng phần mềm máy tính chủ chuyên dụng của UBS Electronics (chẳng hạn như AMS) để liên lạc trực tiếp với đồng hồ điện và xác định vấn đề.
Lỗi dữ liệu
● Xác minh Kiểm tra CRC:
▪ Kiểm tra xem mã CRC được gửi và nhận có nhất quán hay không.
▪ Xác nhận thứ tự byte dữ liệu (Modbus RTU thường là endian nhỏ).
● Kiểm tra ánh xạ đăng ký:
▪ Xác nhận rằng địa chỉ đăng ký được sử dụng phù hợp với sổ tay hướng dẫn sử dụng công tơ điện.
▪ Lưu ý phần bù địa chỉ thanh ghi.
Nếu bạn cần sử dụng phần mềm máy tính chủ UBS (giao thức Modbus RTU) được đề cập trong bài viết này, vui lòng liên hệ với người phụ trách đơn đặt hàng đồng hồ điện UBS của bạn và nhận thêm-hỗ trợ kỹ thuật sau bán hàng.




