Trang chủ › Thư viện kỹ thuật › Modbus RTU
Truyền thông
Modbus RTU không đọc được — RS-485, baud, slave ID
Modbus RTU (trên RS-485) là giao thức phổ biến nhất để nối đồng hồ điện, biến tần, đầu cân, transmitter… với PLC/SCADA. Khi master báo timeout hoặc CRC error, đa số là đấu dây RS-485, baud/parity, hoặc slave ID — hiếm khi do hỏng thiết bị.
Nhớ nhanh: toàn bus phải cùng baud + parity + stop bit, mỗi slave một ID duy nhất, dây A/B (D+/D−) đúng chiều, và có terminator 120Ω ở hai đầu đoạn dài.
Nguyên nhân thường gặp
- A/B đảo chiều — đấu ngược D+/D− (lỗi rất hay gặp khi đổi thiết bị).
- Baud/parity/stop lệch — master và slave khác thông số khung.
- Slave ID sai/trùng — đọc nhầm địa chỉ, hai slave cùng ID.
- Offset thanh ghi — nhầm 0-based vs 1-based, sai function code (3 vs 4).
- Terminator / phân cực / nối đất — thiếu trở cuối, thiếu bias, nối đất kém gây nhiễu.
Master cứ timeout với slave?
Gửi: thiết bị slave (đồng hồ/biến tần…), baud & ID đang đặt, function code đang đọc. Nhận hướng dò.
Cách dò từng bước
- Thử đảo A/B Nếu im lặng hoàn toàn, đảo D+/D− rồi thử lại — cách nhanh nhất loại trừ đấu ngược.
- Khớp thông số khung Đặt cùng baud, parity (N/E/O), stop bit trên master và slave.
- Xác nhận slave ID Đọc đúng ID; thử quét từng ID bằng tool (Modbus Poll/QModMaster).
- Soát thanh ghi Kiểm tra offset (40001 = register 0), đúng function code (03 Holding / 04 Input).
- Terminator & bias Gắn 120Ω hai đầu, bật bias/phân cực; kiểm tra nối đất shield.
- Bắt gói Dùng tool/sniffer xem request–response để biết slave có trả lời, hay CRC sai.
⚠️ Khi đấu lại RS-485 trên thiết bị đang chạy (biến tần, đồng hồ), đảm bảo an toàn điện và không gây dừng cơ cấu ngoài ý muốn.
Khi nào nên gọi chuyên gia
Modbus tưởng đơn giản nhưng lỗi nhiễu/đấu dây/offset thanh ghi vẫn làm mất nhiều giờ. DeepDebug bắt gói và khoanh vùng nhanh, hỗ trợ từ xa — kể cả map thanh ghi cho thiết bị lạ.
Gửi lỗi — nhận chẩn đoán
Mạnh về truyền thông serial. Ca khó không fix được → không tính phí.