Bỏ qua tới nội dung

Kiến thức

Hướng Dẫn Đọc Dữ Liệu Đồng Hồ Điện Selec, Schneider, Eastron Qua RS485 Lên MQTT/SCADA (Kèm Bảng Thanh Ghi)

Hướng dẫn đọc đồng hồ điện Selec MFM384, Schneider PM2120, Eastron SDM630 qua Modbus RS485: bảng thanh ghi Float32, giải mã Byte-Swap và đẩy MQTT JSON cho SI.

Industrial Gateway & RS485 →
Hướng Dẫn Đọc Dữ Liệu Đồng Hồ Điện Selec, Schneider, Eastron Qua RS485 Lên MQTT/SCADA (Kèm Bảng Thanh Ghi)

Đọc dữ liệu đồng hồ điện Selec (MFM384, MFM384-C), Schneider Electric (PowerLogic PM2120, PM2220, PM5110, PM5350), Eastron (SDM630MCT) và Chint (DTSU666) qua giao thức RS485 Modbus RTU là kỹ thuật nền tảng để xây dựng hệ thống quản lý năng lượng nhà máy (EMS), hệ thống quản lý tòa nhà (BMS) và hạ tầng kiểm kê khí nhà kính tự động (Scope 2). Bằng cách kết nối chuỗi hạt (Daisy-chain) các đồng hồ đa năng về bộ Industrial IoT Gateway có cách ly quang học 3.0kV, kỹ sư tích hợp hệ thống (SI) có thể thu thập chính xác 100% thông số điện áp, dòng điện, công suất kW, hệ số cosφ, sóng hài THD và sản lượng điện kWh theo thời gian thực lên MQTT Broker hoặc SCADA mà không cần ghi chép thủ công.

Trọng điểm giải pháp B2B2B cho Nhà thầu M&E, SI & Đơn vị ESCO: Bài viết này thuộc cụm chuyên đề Gateway Modbus RS485 công nghiệp và Giải pháp đo đếm điện năng thông minh. Tham khảo ngay dòng Gateway RS485 sang MQTT/4G OEM cho Nhà tích hợp và Phần mềm EMS White-Label gắn thương hiệu riêng.

⚡ Tóm Tắt Kỹ Thuật Đọc Đồng Hồ Điện Qua Modbus RS485 (Quick Fact Sheet):

  • Chuẩn vật lý & Cáp truyền dẫn: RS485 2 dây vi sai (A+/B-) dùng cáp xoắn đôi bọc kim chống nhiễu AWG18–AWG22 Shielded Twisted Pair (trở kháng đặc tính 120Ω).
  • Mã hàm Modbus RTU (Function Code): 0x04 (Read Input Registers - 3xxxx) cho Selec MFM384 & Eastron SDM630; 0x03 (Read Holding Registers - 4xxxx) cho Schneider PM2xxx/PM5xxx & Chint DTSU666.
  • Định dạng số liệu thanh ghi: Số thực dấu phẩy động 32-bit IEEE 754 Float32 (chiếm 2 thanh ghi 16-bit liên tiếp); cần phân biệt thứ tự Big-Endian (ABCD) và Word-Swapped (CDAB).
  • Bảo vệ phần cứng bắt buộc trong tủ MSB/DB: Cách ly quang học 3.0kVrms Galvanic Isolation + Diode kẹp xung quá áp TVS 600W + Điện trở kết thúc 120Ω tại 2 đầu tuyến bus.
  • Thiết bị đọc & Đẩy dữ liệu chuẩn B2B2B: DeviceLab DL-GW200 / DL-GW400 tích hợp sẵn Template thanh ghi, lưu đệm Flash 100.000 bản tin và xuất thẳng MQTT TLS JSON.

📌 Điểm Cốt Lõi Kỹ Sư Tích Hợp Hệ Thống (SI) & Nhà Thầu M&E Cần Nắm Vững:

  • Không trộn lẫn Baudrate và Parity trên cùng một tuyến RS485: Schneider PM2xxx mặc định xuất xưởng là 19200 bps, Even Parity (8-E-1) trong khi Selec MFM384 và Eastron SDM630 mặc định là 9600 bps, No Parity (8-N-1). Phải đồng bộ cấu hình trên mặt đồng hồ trước khi đấu chung tuyến dây.
  • Xử lý triệt để độ lệch địa chỉ 0-based vs 1-based: Luôn trừ 1 vào địa chỉ thanh ghi trên tài liệu Schneider khi cấu hình khung truyền PDU thực tế và luôn đọc số lượng thanh ghi chẵn (Quantity = 2 × N).
  • Tuyệt đối không đấu dây RS485 kiểu hình sao (Star Topology): Mọi nhánh rẽ chữ T dài quá 1 mét ở tốc độ cao sẽ gây phản xạ sóng làm lỗi CRC liên tục khi đóng cắt ACB/MCCB.
  • Rút ngắn 70% thời gian nghiệm thu cùng DeviceLab: Sử dụng Gateway có sẵn thư viện giải mã thanh ghi đồng hồ điện và cơ chế lưu đệm ngoại tuyến (Store-and-Forward) để không mất dữ liệu kWh khi mạng nhà máy chập chờn.
Đồng hồ đo điện đa năng 3 pha Selec Schneider Eastron lắp đặt trong tủ điện phân phối kết nối truyền thông Modbus RS485
Hình 1: Cụm đồng hồ đo điện đa năng 3 pha lắp trên mặt tủ phân phối tổng (MSB), kết nối truyền thông nối tiếp RS485 về bộ IoT Gateway trung tâm.

Tại Sao Đọc Đồng Hồ Điện Đa Hãng Trong Tủ MSB/DB Luôn Là “Cơn Ác Mộng” Của Kỹ Sư Hiện Trường?

Trong thực tế triển khai các dự án cơ điện (M&E), kiểm toán năng lượng (ESCO) và số hóa nhà máy tại Việt Nam, hiếm có nhà máy nào sử dụng đồng bộ 100% một mã đồng hồ điện duy nhất. Tủ phân phối tổng (MSB) tại trạm biến áp thường được lắp các dòng đồng hồ cao cấp của Schneider Electric (PM5110, PM5350, PM2220) từ thời điểm xây dựng nhà máy; các tủ phân phối nhánh (DB) mở rộng sau này lại dùng Selec MFM384 / MFM384-C (Ấn Độ); trong khi các tủ điện mặt trời áp mái hoặc tủ đo đếm phụ tải nhỏ lại gắn đồng hồ Eastron SDM630MCT hoặc Chint DTSU666 gắn thanh ray DIN-rail.

Dù trên tờ rơi kỹ thuật (Datasheet), cả 4 hãng đều ghi “Hỗ trợ truyền thông RS485 Modbus RTU”, nhưng khi kỹ sư SI hoặc lập trình viên công ty phần mềm mang bộ chuyển đổi xuống đấu nối thực tế, dự án thường bị tắc nghẽn nhiều ngày vì 4 rào cản kỹ thuật đặc thù:

  • Bẫy xung đột thông số khung truyền UART (Parity & Baudrate Mismatch): Các hãng châu Âu như Schneider Electric tuân thủ nghiêm ngặt tiêu chuẩn Modbus.org (bắt buộc một khung ký tự RTU phải có 11 bits: 1 Start bit + 8 Data bits + 1 Even Parity bit + 1 Stop bit = 8-E-1, tốc độ mặc định 19200 bps). Trong khi đó, Selec và Chint lại mặc định xuất xưởng ở chế độ 9600 bps, 8-N-1 (chỉ có 10 bits). Nếu đấu chung trên một tuyến cáp mà không chỉnh lại cấu hình trên phím bấm mặt đồng hồ, các thiết bị sẽ làm nhiễu loạn đường bus của nhau.
  • Bẫy lệch địa chỉ thanh ghi (1-based Documentation vs 0-based Protocol Frame): Tài liệu của Schneider ghi thanh ghi dòng điện pha A là 3000 (thuộc vùng Holding Register 43000), nhưng khi truyền trên dây RS485 bạn phải gửi địa chỉ 2999 (0x0B77). Ngược lại, tài liệu của Chint DTSU666 lại ghi thẳng địa chỉ Hex 0-based (ví dụ 0x2000), nếu kỹ sư trừ đi 1 sẽ đọc sai sang thanh ghi khác.
  • Bẫy giải mã số thực dấu phẩy động 32-bit (IEEE 754 Float32 Byte/Word Order): Chuẩn Modbus cổ điển chỉ định nghĩa thanh ghi 16-bit (2 Bytes), không quy định cách ghép 2 thanh ghi 16-bit thành số thực 32-bit. Do đó, mỗi hãng tự chọn cách sắp xếp Byte cao/thấp khác nhau (ABCD so với CDAB), khiến phần mềm đọc lên các con số vô nghĩa.
  • Nhiễu xung đóng cắt công suất lớn và sóng hài biến tần (EMI / VFD Harmonics): Tủ điện động lực là nơi tập trung dòng điện hàng ngàn Ampe, cuộn hút khởi động từ (Contactor) đóng ngắt liên tục và dàn biến tần (Inverter) phát xung IGBT tần số cao. Các mạch chuyển đổi RS485 sang Ethernet giá rẻ không có cách ly quang học sẽ bị treo cứng cổng UART chỉ sau vài giờ vận hành.

Kiến Trúc Tổng Thể Hệ Thống Thu Thập Dữ Liệu Đồng Hồ Điện RS485 Lên MQTT / SCADA

Để đảm bảo hệ thống đo đếm vận hành liên tục 24/7 trong 5–10 năm mà không làm gián đoạn mạng IT của nhà máy và không mất dữ liệu khi rớt mạng, kiến trúc phần cứng cần được phân tách rõ ràng thành 3 tầng như sơ đồ dưới đây:

+————————————————————————————————–+
| KIẾN TRÚC PHẦN CỨNG THU THẬP ĐỒNG HỒ ĐIỆN ĐA HÃNG QUA MODBUS RS485 (B2B2B) |
+————————————————————————————————–+
|
| [TẦNG 1: ĐO LƯỜNG VẬT LÝ TẠI TỦ ĐIỆN MSB / DB (FIELD METERING LAYER)]
| +————————+ +————————+ +————————+
| | Schneider PM2220/PM5350| | Selec MFM384 / 384-C | | Eastron SDM630 / Chint |
| | (Slave ID: 1, FC=0x03) | | (Slave ID: 2, FC=0x04) | | (Slave ID: 3, FC=0x04) |
| +———–+————+ +———–+————+ +———–+————+
| | | |
| +==============[Bus RS485 Daisy-Chain (Cáp STP 120Ω)]=======+—[R_term = 120Ω]
| | (Tiếp địa vỏ bọc Shield tại duy nhất 1 điểm phía tủ Gateway)
| v
| [TẦNG 2: XỬ LÝ BIÊN & CÁCH LY CÔNG NGHIỆP (DEVICELAB DL-GW200 / DL-GW400 EDGE GATEWAY)]
| +————————————————————————————+
| | 1. Khối Bảo Vệ Vật Lý: Cách ly quang học Galvanic 3.0kVrms + Diode TVS 600W |
| | 2. Khối Giải Mã Biên: Tự động chuẩn hóa Float32 (ABCD / CDAB) & Scale hệ số đơn vị |
| | 3. Khối Lưu Đệm Flash (Store-and-Forward): SPI NOR Flash 32MB lưu >100.000 bản ghi |
| | 4. Khối Đa Giao Thức: Xuất đồng thời Modbus TCP (cho SCADA nội bộ) & MQTT TLS JSON |
| +—————————————–+——————————————+
| | (4G LTE Cat-1 Độc Lập / Ethernet LAN)
| v
| [TẦNG 3: NỀN TẢNG PHẦN MỀM CỦA ĐỐI TÁC SI / ESCO / CÔNG TY PHẦN MỀM MES]
| +————————————————————————————+
| | • Phương án A: Đẩy thẳng MQTT JSON / REST Webhook về Server riêng của Công ty MES |
| | • Phương án B: Sử dụng Nền tảng EMS White-Label của DeviceLab gắn Logo & Tên miền |
| | riêng của Nhà thầu M&E / Đơn vị Tư vấn Kiểm kê Khí nhà kính (ESCO) |
| +————————————————————————————+
+————————————————————————————————–+

Sơ Đồ Chân Đấu Nối (Pinout) & Thiết Lập Thông Số Truyền Thông Trên Từng Dòng Đồng Hồ

Trước khi kết nối dây cáp truyền thông vào đồng hồ, kỹ sư hiện trường cần kiểm tra chính xác vị trí chân cọc đấu dây RS485 và thiết lập đồng nhất 3 thông số Slave ID — Baudrate — Parity thông qua các phím bấm mặt trước của từng model:

3.1. Đồng hồ điện Selec MFM384 / MFM384-C (Ấn Độ)

  • Ký hiệu cọc đấu nối RS485 mặt sau: Cọc số 13 là RS485 (+) / A, cọc số 14 là RS485 (-) / B (trên một số lô phần cứng MFM384-C mới, kiểm tra sơ đồ in laser bên hông vỏ đồng hồ để xác nhận đúng cặp chân + / -).
  • Cách vào Menu cài đặt truyền thông: Nhấn giữ phím V / Esc hoặc tổ hợp phím Enter + Down trong 3 giây để vào trang cấu hình (mật khẩu mặc định là 1000 hoặc 0010):
    • Slave ID (Address): Đặt từ 1 đến 247 (không trùng với bất kỳ đồng hồ nào khác trên cùng nhánh dây).
    • Baudrate: Chọn 9600 (khuyến nghị khi cáp dài >100m) hoặc 19200 bps.
    • Parity & Stop Bit: Chọn None (8-N-1) hoặc Even (8-E-1) (bắt buộc phải giống hệt các đồng hồ khác trên cùng cổng RS485).
  • Lưu ý sống còn về tỷ số biến dòng (CT Ratio) trên Selec MFM384: Ở các phiên bản firmware cũ của MFM384, giá trị dòng điện và công suất đọc qua Modbus đã được nhân sẵn tỷ số CT Primary / CT Secondary cài đặt trên màn hình. Tuy nhiên, nếu người vận hành cài sai thông số CT Primary trên đồng hồ, toàn bộ số liệu kWh đọc về sẽ bị lệch theo tỷ lệ đó.

3.2. Đồng hồ điện Schneider Electric PowerLogic PM2120 / PM2220 / PM5110 / PM5350

  • Ký hiệu cọc đấu nối RS485 mặt sau:
    • Trên dòng PM2120 / PM2220: Cọc D1 (+) nối với dây RS485 A (+); cọc D0 (-) nối với dây RS485 B (-); cọc C / Common nối với dây tham chiếu 0V/Shield.
    • Trên dòng PM5110 / PM5350: Cọc D1 / + nối với dây A (+); cọc D0 / - nối với dây B (-); cọc S / Shield nối với giáp chống nhiễu.
  • Cách vào Menu cài đặt truyền thông trên PM2220 / PM5350: Vào Maint → Setup (Password mặc định: 0000) → Comm:
    • Addr (Address): Đặt từ 1 đến 247.
    • Baud (Baudrate): Mặc định là 19200 (có thể đổi về 9600 nếu đi chung tuyến với đồng hồ hãng khác).
    • Parity: Mặc định là Even (8-E-1). Nếu tuyến cáp có lắp chung với thiết bị chỉ hỗ trợ 8-N-1, hãy chuyển thông số này trên đồng hồ Schneider sang None (lưu ý chọn 8-N-2 hoặc 8-N-1 khớp với cấu hình cổng Master trên Gateway).

3.3. Đồng hồ điện gắn ray DIN-rail Eastron SDM630MCT & Chint DTSU666

  • Trên Eastron SDM630MCT / SDM630-Modbus V2: Cọc B (-), A (+) và G (GND) nằm ở hàng domino tín hiệu phía dưới. Nhấn giữ nút Set trong 3 giây (Password mặc định: 1000) để chỉnh Addr (001–247), bd (2.4 / 4.8 / 9.6 / 19.2 / 38.4 kbps) và Prty (None / Even / Odd).
  • Trên Chint DTSU666 (3 pha 4 dây): Cọc số 24 là RS485 A (+), cọc số 25 là RS485 B (-). Nhấn nút SET nhập mã 701 để vào menu thiết lập giao thức (Prot = n.1 tương ứng 8-N-1, Prot = E.1 tương ứng 8-E-1) và tốc độ truyền (bAud = 9600).
Kỹ sư đấu nối cáp tín hiệu RS485 xoắn đôi bọc kim chống nhiễu vào cầu đấu domino đồng hồ điện công nghiệp
Hình 2: Đấu nối cáp xoắn đôi bọc kim chống nhiễu (Shielded Twisted Pair) theo cấu trúc chuỗi hạt (Daisy-Chain) tại hàng cầu đấu tín hiệu tủ điện.

Bảng Tra Cứu Toàn Diện Thanh Ghi Modbus RTU (Register Map) Của 4 Hãng Đồng Hồ Điện

Dưới đây là bảng tổng hợp chi tiết các thanh ghi đo lường quan trọng nhất đã được đội ngũ kỹ sư R&D của DeviceLab kiểm chứng thực tế trên bàn test phòng Lab và tại hàng trăm tủ điện nhà máy. Lưu ý cột Địa chỉ truyền PDU (0-based) chính là giá trị số nguyên hoặc Hex thực tế cần nhập vào cấu hình Gateway/PLC:

Đại lượng đo lường (Đơn vị chuẩn) Selec MFM384 / 384-C
FC=0x04 · Float32 (CDAB)
Schneider PM2120 / PM2220
FC=0x03 · Float32 (ABCD)
Eastron SDM630MCT
FC=0x04 · Float32 (ABCD)
Chint DTSU666
FC=0x03 · Float32 (ABCD)
Điện áp pha L1–N (V) Doc: 30001
PDU: 0 (0x0000)
Doc: 3028
PDU: 3027 (0x0BD3)
Doc: 30001
PDU: 0 (0x0000)
PDU: 8198 (0x2006)
Scale: × 0.1 V
Điện áp pha L2–N (V) Doc: 30003
PDU: 2 (0x0002)
Doc: 3030
PDU: 3029 (0x0BD5)
Doc: 30003
PDU: 2 (0x0002)
PDU: 8200 (0x2008)
Scale: × 0.1 V
Điện áp pha L3–N (V) Doc: 30005
PDU: 4 (0x0004)
Doc: 3032
PDU: 3031 (0x0BD7)
Doc: 30005
PDU: 4 (0x0004)
PDU: 8202 (0x200A)
Scale: × 0.1 V
Điện áp dây trung bình V_LL (V) Doc: 30015
PDU: 14 (0x000E)
Doc: 3026
PDU: 3025 (0x0BD1)
Doc: 30207
PDU: 206 (0x00CE)
PDU: 8192 (0x2000)
V_AB (× 0.1 V)
Dòng điện pha I1 (A) Doc: 30017
PDU: 16 (0x0010)
Doc: 3000
PDU: 2999 (0x0BB7)
Doc: 30007
PDU: 6 (0x0006)
PDU: 8204 (0x200C)
Scale: × 0.001 A
Dòng điện pha I2 (A) Doc: 30019
PDU: 18 (0x0012)
Doc: 3002
PDU: 3001 (0x0BB9)
Doc: 30009
PDU: 8 (0x0008)
PDU: 8206 (0x200E)
Scale: × 0.001 A
Dòng điện pha I3 (A) Doc: 30021
PDU: 20 (0x0014)
Doc: 3004
PDU: 3003 (0x0BBB)
Doc: 30011
PDU: 10 (0x000A)
PDU: 8208 (0x2010)
Scale: × 0.001 A
Tổng công suất tác dụng P_Total (kW) Doc: 30043
PDU: 42 (0x002A)
Doc: 3060
PDU: 3059 (0x0BF3)
Doc: 30053
PDU: 52 (0x0034, W)
PDU: 8210 (0x2012)
Đơn vị: W (× 0.1)
Tổng công suất phản kháng Q_Total (kVAr) Doc: 30045
PDU: 44 (0x002C)
Doc: 3068
PDU: 3067 (0x0BFB)
Doc: 30061
PDU: 60 (0x003C, VAr)
PDU: 8218 (0x201A)
Đơn vị: VAr (× 0.1)
Hệ số công suất tổng PF / cosφ Doc: 30049
PDU: 48 (0x0030)
Doc: 3084
PDU: 3083 (0x0C0B)
Doc: 30063
PDU: 62 (0x003E)
PDU: 8234 (0x202A)
Scale: × 0.001
Tần số lưới điện F (Hz) Doc: 30057
PDU: 56 (0x0038)
Doc: 3110
PDU: 3109 (0x0C25)
Doc: 30071
PDU: 70 (0x0046)
PDU: 8260 (0x2044)
Scale: × 0.01 Hz
Điện năng tác dụng tích lũy (Active kWh) Doc: 30059
PDU: 58 (0x003A)
Doc: 3204 (Int64) hoặc 2700 (Float32) Doc: 30343
PDU: 342 (0x0156)
PDU: 16414 (0x401E)
Import Active kWh

Giải Phẫu Khung Truyền Hex Modbus RTU & Thuật Toán Giải Mã Float32 (ABCD vs CDAB)

Để giúp lập trình viên nhúng, kỹ sư PLC và đội ngũ Backend của các công ty phần mềm hiểu rõ bản chất bit/byte dưới đường truyền vật lý, hãy xét ví dụ thực tế đọc Tổng công suất tác dụng (P_Total) từ đồng hồ Schneider PM2220 (Slave ID = 1) tại địa chỉ tài liệu 3060 (tức địa chỉ PDU 0-based = 3059 = 0x0BF3, đọc 2 thanh ghi bằng Function Code 0x03):

// 1. Khung lệnh Master (Gateway DL-GW200) gửi xuống đồng hồ Schneider PM2220 (8 Bytes Hex):
// [SlaveID] [FuncCode] [StartAddr_Hi] [StartAddr_Lo] [Qty_Hi] [Qty_Lo] [CRC_Lo] [CRC_Hi]
   01        03         0B             F3             00       02       36       2E

// 2. Khung phản hồi từ đồng hồ Schneider PM2220 trả về (9 Bytes Hex):
// [SlaveID] [FuncCode] [ByteCount] [Reg1_Hi] [Reg1_Lo] [Reg2_Hi] [Reg2_Lo] [CRC_Lo] [CRC_Hi]
   01        03         04          42        F6        E6        66        B9       84

// 3. Giải mã 4 Bytes dữ liệu [42 F6 E6 66] theo chuẩn IEEE 754 Float32:
// - Với Schneider / Eastron (Big-Endian ABCD): Ghép trực tiếp 0x42F6E666 = 123.45 kW
// - Với Selec MFM384 (Word-Swapped CDAB): 2 thanh ghi trả về sẽ là [E6 66] trước, [42 F6] sau.
//   Cần đảo vị trí 2 Word 16-bit thành [42 F6 E6 66] trước khi ép kiểu sang Float32.

Dưới đây là đoạn hàm mẫu bằng ngôn ngữ C (cho kỹ sư lập trình Firmware/PLC) và Python (cho kỹ sư tích hợp SCADA/Backend) xử lý chuẩn xác cả 4 kiểu sắp xếp Byte/Word (ABCD, CDAB, BADC, DCBA):

import struct

def decode_modbus_float32(reg_hi_16: int, reg_lo_16: int, byte_order: str = "ABCD") -> float:
    """
    Giải mã 2 thanh ghi 16-bit Modbus thành số thực IEEE 754 Float32.
    - Schneider PM2xxx, Eastron SDM630, Chint DTSU666: byte_order = 'ABCD'
    - Selec MFM384 / MFM384-C: byte_order = 'CDAB'
    """
    a = (reg_hi_16 >> 8) & 0xFF
    b = reg_hi_16 & 0xFF
    c = (reg_lo_16 >> 8) & 0xFF
    d = reg_lo_16 & 0xFF

    order_map = {
        "ABCD": bytes([a, b, c, d]),  # Big-Endian (High Word first)
        "CDAB": bytes([c, d, a, b]),  # Word-Swapped (Low Word first - Selec)
        "BADC": bytes([b, a, d, c]),  # Byte-Swapped
        "DCBA": bytes([d, c, b, a]),  # Little-Endian
    }
    raw_bytes = order_map.get(byte_order.upper(), bytes([a, b, c, d]))
    return round(struct.unpack(">f", raw_bytes)[0], 3)

# Kiểm chứng với thanh ghi trả về 0x42F6 và 0xE666:
print(decode_modbus_float32(0x42F6, 0xE666, "ABCD"))  # Output: 123.45 (kW)

Bài Toán Kinh Điển Ngoài Hiện Trường: Tại Sao Đấu Chung 15–20 Đồng Hồ Điện Hay Bị Rớt Gói CRC Và Treo Bus?

Khi thử nghiệm đọc 1–2 đồng hồ điện trên bàn làm việc văn phòng, hầu như bộ chuyển đổi nào cũng đọc được. Nhưng khi thi công thực tế kéo cáp qua 3–4 tủ phân phối MSB/DB trong nhà xưởng với 15–25 đồng hồ mắc nối tiếp, kỹ sư thường gặp hiện tượng đồng hồ cuối nhánh lúc đọc được lúc báo Timeout, hoặc cả nhánh RS485 chết cứng mỗi khi máy nén khí / biến tần lớn khởi động. Nguyên nhân gốc rễ nằm ở 3 cơ chế vật lý sau:

6.1. Trôi điện áp đất chung (Common-Mode Voltage Shift) vượt ngưỡng -7V đến +12V

Tủ MSB đặt tại phòng trạm biến áp và tủ DB đặt tại phân xưởng cách nhau 150 mét luôn có sự chênh lệch điện thế đất (Ground Potential Difference) từ vài Volt đến hàng chục Volt khi có dòng rò hoặc xung đóng cắt tải cảm ứng. Chip thu phát RS485 tiêu chuẩn chỉ chịu được dải điện áp chế độ chung từ -7V đến +12V. Nếu sử dụng bộ chuyển đổi không có cách ly quang học (Non-isolated RS485), dòng điện cân bằng đất sẽ chảy trực tiếp qua dây tín hiệu A/B làm bão hòa tầng khuếch đại vi sai, gây lỗi CRC hàng loạt hoặc đánh thủng IC giao tiếp. Giải pháp bắt buộc là sử dụng Gateway có cách ly quang học Galvanic 3.0kVrms độc lập cho từng cổng RS485 kết hợp nối đất lớp giáp kim loại (Shield) tại duy nhất 1 đầu phía tủ Gateway.

6.2. Phản xạ sóng tín hiệu (Signal Reflection) do đấu dây hình sao và thiếu điện trở 120Ω

Nhiều đội thi công cơ điện quen đi dây điện chiếu sáng nên thường trích rẽ nhánh chữ T (Star / Tree topology) từ hộp nối cáp xuống từng đồng hồ điện. Ở tốc độ truyền thông số, mỗi điểm rẽ nhánh tạo ra sự mất phối hợp trở kháng (Impedance Discontinuity), khiến xung vuông RS485 bị dội ngược lại giao thoa với bit tiếp theo. Để đường truyền sạch tuyệt đối:

  • Bắt buộc đi cáp vào đồng hồ 1 rồi ra đồng hồ 1 sang đồng hồ 2 (Daisy-Chain liên tục). Tại mỗi cọc A+ và B- của đồng hồ, bấm chung 2 đầu dây (1 dây đến, 1 dây đi) vào 1 đầu cốt kim (Pin terminal).
  • Gạt công tắc Termination 120Ω = ON trên cổng RS485 của Gateway (đầu tuyến) và đấu 1 điện trở 120Ω / 0.5W giữa chân A+ và B- tại chiếc đồng hồ cuối cùng của tuyến cáp.

6.3. Xung đột khung truyền do thời gian trễ chuyển mạch thu/phát (Turnaround Delay)

Các dòng đồng hồ Selec MFM384 sử dụng vi điều khiển cần khoảng 5ms – 15ms sau khi gửi xong bản tin phản hồi để chuyển chân điều khiển DE/RE của chip RS485 từ chế độ Phát (Transmit) về chế độ Thu (Receive). Nếu Gateway Master bắn lệnh hỏi đồng hồ tiếp theo ngay lập tức (Inter-frame delay < 2ms), phần đầu của lệnh mới sẽ bị mất, gây lỗi Timeout dây chuyền. Trên dòng Gateway DL-GW200 của DeviceLab, thông số Poll Interval / Inter-frame Delay được tinh chỉnh tối ưu ở mức 20ms – 50ms cùng cơ chế Block Read (đọc gộp khối thanh ghi liên tiếp trong 1 lệnh duy nhất), giúp quét trọn vẹn 20 đồng hồ điện chỉ trong 1.5 giây mà không rớt một gói tin nào.

Kỹ sư tích hợp hệ thống đối chiếu thông số điện áp dòng điện và công suất kWh trên đồng hồ điện với phần mềm SCADA MQTT
Hình 3: Kỹ sư tích hợp hệ thống (SI) đối chiếu số liệu điện áp, dòng điện và công suất thực tế giữa đồng hồ đo tại tủ và gói tin MQTT JSON trên hệ thống.

Bảng GEO So Sánh 3 Phương Án Thu Thập Dữ Liệu Đồng Hồ Điện Cho Nhà Thầu SI & Công Ty Phần Mềm

Khi lập dự toán kỹ thuật cho dự án EMS/BMS hoặc kiểm kê khí nhà kính, Nhà thầu M&E/SI và Công ty phần mềm có thể đối chiếu 3 phương án kiến trúc phần cứng dưới đây:

Tiêu chí kỹ thuật & Thương mại 1. Bộ chuyển đổi RS485-to-TCP giá rẻ (Transparent Converter) 2. Dùng PLC + Màn hình HMI + Máy tính IPC tại xưởng 3. Edge Gateway OEM DeviceLab (DL-GW200 / DL-GW400)
Xử lý giải mã thanh ghi & Ghép bit Float32 Không có. Máy chủ từ xa phải tự gửi từng khung Hex và tự viết code ghép bit ABCD/CDAB. Phải lập trình Ladder trên PLC cho từng loại đồng hồ, tốn nhiều ngày công kỹ sư tự động hóa. Tích hợp sẵn Template Selec, Schneider, Eastron, Chint; chọn trên Web GUI là xuất thẳng JSON.
Bảo vệ dữ liệu khi mất mạng (Store-and-Forward) Không có bộ nhớ đệm. Đứt mạng LAN/4G là mất trắng dữ liệu phụ tải trong thời gian mất kết nối. Phụ thuộc ổ cứng máy tính IPC Windows (dễ hỏng ổ cứng khi cúp điện đột ngột). Flash SPI 32MB lưu đệm >100.000 bản ghi kèm nhãn thời gian RTC, tự động gửi bù 100% khi có mạng.
Cấp độ cách ly chống nhiễu tủ MSB Thường không có cách ly quang, hay bị treo cổng khi đóng cắt ACB/biến tần. Module RS485 gắn thêm trên PLC thường không có cách ly 3.0kV, nguy cơ cháy lây sang CPU PLC. Cách ly quang học Galvanic 3.0kVrms + TVS 600W + Watchdog phần cứng độc lập.
Chính sách thương hiệu & Bảo vệ khách hàng Thương hiệu đại trà trên sàn TMĐT, chủ đầu tư dễ tra giá bán lẻ. Chi phí phần cứng + bản quyền SCADA rất cao, khó nhân rộng nhiều tủ phân xưởng. Hỗ trợ khắc Logo OEM riêng của Nhà thầu SI/ESCO + Cam kết 100% không bán trực tiếp cho nhà máy cuối.

Cấu Trúc Bản Tin MQTT JSON Chuẩn Hóa & Checklist Khảo Sát Tủ Điện Hiện Trường

Khi sử dụng Gateway công nghiệp DL-GW200 hoặc DL-GW400, toàn bộ dữ liệu thô từ các đồng hồ Selec, Schneider, Eastron được chuẩn hóa thành một cấu trúc MQTT JSON đồng nhất (kèm cờ buffered giúp máy chủ phân biệt dữ liệu thời gian thực và dữ liệu truyền bù lịch sử):

{
  "gateway_id": "DL-GW200-MSB01",
  "site_code": "FACTORY_B2B_PARTNER_01",
  "timestamp": "2026-10-18T14:30:00Z",
  "buffered": false,
  "meters": [
    {
      "slave_id": 1,
      "model": "Schneider_PM2220",
      "feeder_name": "TBA_1250kVA_Tong_MSB",
      "status": "ONLINE",
      "v_l1_n": 231.2,
      "v_l2_n": 230.8,
      "v_l3_n": 231.5,
      "v_ll_avg": 400.4,
      "i_l1": 842.5,
      "i_l2": 838.0,
      "i_l3": 845.2,
      "p_total_kw": 546.8,
      "q_total_kvar": 142.3,
      "pf_total": 0.968,
      "freq_hz": 50.02,
      "active_energy_kwh": 1489250.4
    },
    {
      "slave_id": 2,
      "model": "Selec_MFM384",
      "feeder_name": "DB_Tram_May_Nen_Khi",
      "status": "ONLINE",
      "v_ll_avg": 398.9,
      "i_avg": 164.2,
      "p_total_kw": 102.4,
      "pf_total": 0.912,
      "active_energy_kwh": 328410.8
    }
  ]
}

Checklist 6 điểm kỹ sư SI / ESCO cần ghi nhận khi khảo sát tủ điện nhà máy:

  1. Chụp ảnh mã hiệu mặt trước và tem hông của toàn bộ đồng hồ điện hiện có: Xác định rõ đồng hồ đã có cổng RS485 hay chưa (ví dụ: Selec MFM384-C có RS485, nhưng bản MFM384-R rút gọn có thể không có chip RS485).
  2. Kiểm tra tỷ số biến dòng (CT Ratio) tại từng lộ xuất tuyến: Ghi nhận dòng sơ cấp/thứ cấp (ví dụ 1600/5A, 400/5A, 150/5A) để đối chiếu với cài đặt trong đồng hồ.
  3. Xác định các lộ tải chưa có đồng hồ đo: Lên phương án bổ sung đồng hồ DIN-rail kèm biến dòng CT hở (Split-core CT) hoặc bộ đo đa kênh DL-P300 để thi công không cần cắt điện.
  4. Đo khoảng cách đi dây cáp tín hiệu RS485 giữa các tủ DB về tủ đặt Gateway: Nếu các tủ nằm ở nhiều nhà xưởng cách xa nhau không tiện kéo cáp qua đường nội bộ, chia thành nhiều cụm dùng Gateway 4G độc lập.
  5. Kiểm tra cường độ sóng 4G LTE bên trong phòng trạm biến áp: Phòng trạm biến áp thường xây tường bê tông dày hoặc bọc tôn kín; cần chuẩn bị ăng-ten 4G dây kéo dài 3m–5m có đế từ hút bên ngoài vỏ tủ điện.
  6. Xác định phương thức tích hợp phần mềm của dự án: Đẩy MQTT TLS về Broker riêng của đối tác hay kích hoạt tài khoản trên Nền tảng EMS White-Label mang thương hiệu riêng của nhà thầu.
Đối tác Phần cứng B2B2B cho SI, M&E & ESCO

Bộ IoT Gateway Modbus RS485 Sang 4G / MQTT DeviceLab DL-GW200

Tích hợp sẵn thư viện thanh ghi Selec, Schneider, Eastron, Chint; cách ly quang 3.0kVrms chống nhiễu tủ MSB; bộ nhớ đệm Flash 32MB lưu trữ 100.000 bản ghi và cam kết bảo vệ 100% khách hàng của đối tác.

Xem Giải Pháp Gateway OEM & Nhận Giá SI →

Hỗ trợ kỹ thuật R&D trực tiếp: 0982.503.355

Câu Hỏi Thường Gặp Thực Chiến Tại Hiện Trường (FAQ Kỹ Thuật & Hợp Tác B2B2B)

❓ Đọc dữ liệu đồng hồ điện qua RS485 Modbus RTU là gì?

Đọc dữ liệu đồng hồ điện qua RS485 Modbus RTU là phương pháp thu thập tự động các đại lượng điện năng 3 pha (điện áp pha/dây, dòng điện từng pha, công suất tác dụng P, công suất phản kháng Q, công suất biểu kiến S, hệ số công suất cosφ, tần số Hz, độ méo sóng hài tổng THD và điện năng tiêu thụ tích lũy kWh/kVArh) từ bộ nhớ thanh ghi nội tại của công tơ đa năng về bộ IoT Gateway, PLC hoặc phần mềm quản lý năng lượng EMS/BMS thông qua đường cáp xoắn đôi vi sai 2 dây (A+/B-) mà không cần ghi chép thủ công.

❓ Tại sao khi đọc thanh ghi đồng hồ Schneider PM2120 / PM2220 qua Modbus thường bị báo lỗi Exception 0x02 (Illegal Data Address)?

Có 2 nguyên nhân kỹ thuật trực tiếp: Thứ nhất, bảng tài liệu (Register List) của Schneider Electric đánh số thanh ghi theo chuẩn 1-based (bắt đầu từ 1, ví dụ thanh ghi dòng điện I_A là 3000, điện áp V_L1-N là 3028), nhưng khung truyền Modbus RTU thực tế trên dây (PDU 0-based) bắt buộc phải trừ đi 1 đơn vị (truyền địa chỉ 2999 hoặc 3027). Thứ hai, mọi thông số Float32 của Schneider chiếm 2 thanh ghi 16-bit liên tiếp nên số lượng thanh ghi yêu cầu đọc (Quantity of Registers) bắt buộc phải là số chẵn (2, 4, 6…); nếu đọc lẻ 1 thanh ghi hoặc đọc lệch 1 địa chỉ giữa cặp Float32, đồng hồ sẽ lập tức trả về mã lỗi Exception 0x02.

❓ Đồng hồ điện Selec MFM384 và Eastron SDM630 dùng Function Code 0x03 hay 0x04?

Đối với các thông số đo lường thời gian thực (V, I, P, Q, S, PF, Hz, kWh), cả Selec MFM384/MFM384-C và Eastron SDM630MCT đều lưu trữ trong vùng Input Registers (3xxxx) và bắt buộc phải đọc bằng Function Code 0x04 (Read Input Registers). Ngược lại, vùng Holding Registers (4xxxx – đọc/ghi bằng Function Code 0x03/0x06/0x10) trên hai dòng đồng hồ này chỉ dùng để cấu hình tỷ số biến dòng CT Primary/Secondary, địa chỉ Slave ID, tốc độ Baudrate và Parity.

❓ Làm thế nào để xử lý hiện tượng giá trị điện áp hoặc công suất đọc về bị nhảy ra số âm cực lớn hoặc số mũ vô lý (1.42e-38)?

Hiện tượng này xảy ra 100% do sai thứ tự ghép Byte/Word (Endianness) khi giải mã số thực dấu phẩy động 32-bit (IEEE 754 Float32) từ hai thanh ghi 16-bit. Đồng hồ Schneider PM2xxx và Eastron SDM630 xuất dữ liệu theo thứ tự Big-Endian chuẩn (ABCD — High Word trước, Low Word sau), trong khi đồng hồ Selec MFM384 thường xuất theo thứ tự Word-Swapped (CDAB — Low Word trước, High Word sau). Trên Gateway DeviceLab DL-GW200, kỹ sư chỉ cần chọn đúng kiểu dữ liệu Float32_ABCD hoặc Float32_CDAB trên giao diện cấu hình Web là giá trị tự động hiển thị chuẩn xác.

❓ Một cổng RS485 trên Gateway có thể đấu nối tối đa bao nhiêu đồng hồ điện và kéo dài bao nhiêu mét?

Theo tiêu chuẩn vật lý EIA/TIA-485, một phân đoạn bus RS485 không dùng bộ lặp (Repeater) cho phép mắc nối tiếp (Daisy-chain) tối đa 32 thiết bị (1 Master + 31 đồng hồ Slave) với chiều dài cáp tối đa lên tới 1.200 mét ở tốc độ 9600 bps. Tuy nhiên, trong môi trường tủ điện nhà máy có nhiều nhiễu biến tần và để đảm bảo chu kỳ quét (Polling cycle) toàn bộ thông số dưới 5 giây, DeviceLab khuyến nghị mỗi cổng RS485 chỉ nên gom từ 12 đến 20 đồng hồ điện và bật điện trở đầu cuối 120Ω tại 2 đầu mút tuyến dây.

❓ DeviceLab hỗ trợ những gì cho Nhà thầu M&E, SI, đơn vị tư vấn ESCO và Công ty phần mềm EMS?

DeviceLab hoạt động thuần túy theo mô hình Đối tác Phần cứng B2B2B: chúng tôi cung cấp dòng Gateway công nghiệp DL-GW200 / DL-GW400 (cách ly quang 3.0kV, lưu đệm Flash 100.000 bản ghi, tích hợp sẵn thư viện thanh ghi Selec, Schneider, Eastron, Chint, Mikro) và nền tảng phần mềm EMS White-label gắn thương hiệu riêng của đối tác. Chúng tôi ký cam kết pháp lý bảo vệ 100% khách hàng cuối — tuyệt đối không bán vượt cấp hay cạnh tranh trực tiếp tại nhà máy của bạn.

Về tác giả & Kiểm chứng kỹ thuật (E-E-A-T)

Được viết bởi

✓ Kỹ sư chuyên môn xác thực

Đinh Mạnh Thảo

Kỹ sư Trưởng R&D — DeviceLab

🎓 Kỹ sư Công nghệ Thông tin (PTIT) · 15+ năm Thiết kế hệ thống, Kiến trúc Hệ thống Nhúng, Firmware & Thiết bị IoT Công nghiệp

Kiểm chứng kỹ thuật

DeviceLab Engineering Team

Hội đồng Kỹ sư DeviceLab thẩm định sơ đồ mạch nguyên lý, toàn vẹn tín hiệu bus và quy chuẩn hợp quy (QCVN / TT10 BTNMT).

Cập nhật lần cuối: 10/10/2026

Lĩnh vực: Hardware · PCB · Embedded · Prototype

Xem hồ sơ năng lực R&D & số liệu thực tế DeviceLab →

Bài Viết Kỹ Thuật & Cẩm Nang Chuyên Sâu Liên Quan

Nâng cao hiểu biết kỹ thuật với các bài viết chuyên sâu từ đội ngũ kỹ sư DeviceLab:

Thiết Bị Phần Cứng Công Nghiệp & Giải Pháp OEM Tiêu Biểu

Các dòng sản phẩm phần cứng tiêu chuẩn hóa do DeviceLab nghiên cứu và sản xuất hàng loạt:

DATASHEET · SƠ ĐỒ 22 CHÂN Thiết Bị Datalogger DL-ENV10 Thông số phần cứng I/O cách ly 3.0kV, lưu đệm Flash > 180 ngày, pin UPS 6–8h. CÁCH LY 3.0kV · DIN-RAIL Bộ Chuyển Đổi RS485 Sang Ethernet DL-RS485 Chuyển đổi Modbus RTU sang Modbus TCP, chống nhiễu biến tần 24/7. MQTT · CLOUD API · 4G DL-GW200: Industrial IoT Gateway Thu thập Modbus RS485 đẩy MQTT/API, bộ nhớ đệm Flash 100k bản ghi. 4 CỔNG RS485 · THÔNG TƯ 10 DL-GW400: Edge Gateway & Datalogger Bộ tập trung 4 cổng RS485 độc lập cho quan trắc môi trường và năng lượng.
Giải pháp chuyên sâu: Thiết Kế Mạch Điện Tử Theo Yêu Cầu • Gia Công PCB & Hàn Mạch SMT • Lập Trình Firmware Nhúng • Phát Triển Thiết Bị IoT Trọn Gói • datalogger quan trắc môi trường thông tư 10 • Module IoT Tủ Máy • Gateway OEM cho SI • Hệ Thống Giám Sát Điện Năng Nhà Máy • Nền Tảng White-Label • Sản Xuất & QC Hàng Loạt • Dành Cho Startup • Vì Sao Chọn DeviceLab

Bạn đang cần giám sát năng lượng / công tơ điện thông minh?

Gửi số điểm đo, đại lượng cần lấy, protocol và hệ nhận dữ liệu (nếu có). DeviceLab sẽ giúp xác định phạm vi PoC và kiến trúc phù hợp.

Gửi yêu cầu

Bắt đầu từ mục tiêu dữ liệu vận hành — chưa cần chọn model công tơ trước.