0

Kinh nghiệm xử lý mất dữ liệu trạm quan trắc & Quy chuẩn phần cứng Datalogger theo Điều 39 Thông tư 10/2021/TT-BTNMT

Tóm tắt nhanh cho anh em kỹ sư M&E / SI Môi trường:

  • Nguyên nhân số 1 khiến trạm quan trắc bị Sở TN&MT nhắc nhở mất số liệu: Dùng máy tính công nghiệp (Mini PC Windows) chạy phần mềm FTP hay bị treo ổ cứng SSD khi sụt áp, hoặc dùng bộ Datalogger giá rẻ không có cơ chế Store & Forward (lưu đệm Flash vòng & tự động truyền bù file .txt khi có mạng lại).
  • Bắt buộc theo Điều 39 Thông tư 10/2021/TT-BTNMT: Chu kỳ truyền tối đa 5 phút/lần, định dạng tệp .txt mã hóa UTF-8 qua FTP/FTPS, lưu đệm tối thiểu 60 ngày, gán đúng mã trạng thái (00 - Bình thường, 01 - Hiệu chuẩn, 02 - Báo lỗi) và kích hoạt tủ lấy mẫu tự động (Auto Sampler) khi vượt ngưỡng QCVN.

Chào anh em, mình là Thảo – kỹ sư R&D phần cứng nhúng tại DeviceLab. Trong quá trình hỗ trợ kỹ thuật cho các nhà thầu SI lắp đặt trạm quan trắc nước thải, khí thải và trạm quan trắc khai thác nước ngầm (theo Thông tư 10/2021/TT-BTNMT và Nghị định 53/2024/NĐ-CP), mình nhận thấy 80% sự cố "đứt quãng dữ liệu truyền về Sở" không nằm ở đầu đo pH, COD, TSS hay lưu lượng kế, mà nằm ở khối thu thập và truyền dẫn dữ liệu (Datalogger).

Thiết bị Datalogger quan trắc môi trường chuẩn Thông tư 10 DL-ENV10 Hình 1: Kiểm thử thiết bị Datalogger quan trắc môi trường chuẩn Thông tư 10/2021/TT-BTNMT trên bàn Lab

Bài viết này mình tổng hợp lại 3 lỗi phần cứng kinh điển ngoài hiện trường và chia sẻ luôn cấu trúc bản tin .txt, bảng thanh ghi cùng kiến trúc bộ nhớ đệm để anh em làm dự án có thể đối chiếu nghiệm thu nhanh nhất.


1. Vì sao trạm quan trắc chạy ở xưởng thì mượt nhưng lắp ra hiện trường lại hay "mất tích" lúc nửa đêm?

Khi đi xử lý sự cố tại các KCN ở Bắc Ninh, Hải Phòng, Ninh Bình hay Bình Dương, team mình thường gặp 3 kịch bản lặp đi lặp lại:

Kịch bản 1: Dùng Mini PC (IPC Windows) làm Datalogger

Nhiều đơn vị tận dụng Mini PC cài Windows chạy phần mềm viết bằng C# hoặc Python để đọc cổng COM RS485 rồi đẩy FTP về Sở. Nhược điểm chí mạng của kiến trúc này ở trạm quan trắc không người trực là:

  • Mất điện lưới đột ngột khi UPS đã chai pin → Windows tắt ngang làm lỗi hệ thống tệp NTFS (Corrupt Disk), có điện lại máy dừng ở màn hình Recovery xanh lè.
  • Windows tự động chạy Windows Update hoặc treo dịch vụ COM port sau 15–20 ngày chạy liên tục, không có Hardware Watchdog để tự khởi động lại ở cấp độ nguồn.

Kịch bản 2: Rớt sóng 4G/cáp quang làm mất luôn dữ liệu trong khoảng thời gian mất mạng

Nhiều bộ PLC/Gateway thông thường chỉ gửi file .txt theo kiểu "bắn thời gian thực" (Real-time Push). Khi nhà mạng bảo trì hoặc đứt cáp quang từ 2h sáng đến 5h sáng, toàn bộ 36 bản ghi (mỗi bản ghi cách nhau 5 phút) trong 3 tiếng đó bị mất trắng trên máy chủ FTP của Sở TN&MT, dù đầu đo tại trạm vẫn hoạt động bình thường.

Kịch bản 3: Sét lan truyền đường dây RS485 và sụt áp nguồn 24VDC

Đường cáp RS485 nối từ tủ Datalogger ra đồng hồ lưu lượng kênh hở hoặc giếng quan trắc nước ngầm thường dài 50m–200m. Nếu cổng RS485 và kênh Analog 4–20mA trên bo mạch không có cách ly quang học (Galvanic Isolation ≥ 2.5kV) và tầng dập xung sét GDT + TVS Diode, chỉ sau một cơn giông đầu mùa là chết IC giao tiếp hoặc lệch chuẩn ADC.

Trạm quan trắc khai thác nước ngầm và nước mặt tự động theo Nghị định 53/2024 Hình 2: Trạm quan trắc khai thác nước ngầm ngoài hiện trường với đồng hồ lưu lượng điện từ, cảm biến mức nước và tủ Datalogger chạy năng lượng mặt trời


2. Checklist 5 yêu cầu phần cứng bắt buộc theo Điều 39 Thông tư 10/2021/TT-BTNMT

Để nghiệm thu trơn tru 72 giờ liên tục với Sở TN&MT mà không phải cử kỹ sư trực chiến tại trạm, một giải pháp datalogger quan trắc môi trường thông tư 10 chuẩn công nghiệp cần đáp ứng 5 tiêu chí kỹ thuật cốt lõi sau:

Hạng mục kỹ thuật Yêu cầu tại Điều 39 TT10/2021/TT-BTNMT Thiết kế chuẩn trên phần cứng chuyên dụng (DL-ENV10)
1. Ngõ vào tín hiệu đo Đọc đồng thời Analog & Digital/Modbus từ các máy phân tích 4x AI (4–20mA / 0–10V, ADC 16-bit cách ly), 4x DI cách ly, 1x RS485 Modbus RTU cách ly 2.5kV (mở rộng tối đa 3 module I/O)
2. Định dạng & Chu kỳ gửi Tệp .txt mã hóa UTF-8, truyền tối đa 5 phút/lần qua FTP/FTPS Tự động đóng gói [Tinh]_[CongTy]_[Tram]_[YYYYMMDDHHMMSS].txt chuẩn UTF-8, đẩy qua FTPS / SFTP đúng chu kỳ 5 phút
3. Mã trạng thái thiết bị Phân biệt rõ số liệu đo bình thường, đang hiệu chuẩn và lỗi đầu đo Gán tự động trên từng dòng chỉ tiêu: 00 (Bình thường), 01 (Hiệu chuẩn - Calibration), 02 (Lỗi cảm biến - Error)
4. Lưu đệm & Truyền bù Lưu trữ dữ liệu tối thiểu 60 ngày, tự động truyền bù khi có mạng Bộ nhớ Flash lưu > 100.000 bản ghi + thẻ nhớ lưu > 180 ngày; thuật toán Store & Forward tự động đẩy bù file .txt bị thiếu
5. Điều khiển lấy mẫu & Niêm phong Kích hoạt máy lấy mẫu khi vượt ngưỡng; không cho phép sửa số liệu gốc 2x DO Relay kích hoạt trực tiếp tủ Auto Sampler khi COD, TSS, pH, NH4+ vượt ngưỡng; khóa mật khẩu & kẹp chì phần cứng

3. Cấu trúc tệp .txt chuẩn Thông tư 10 và cơ chế chuyển mã trạng thái 00 / 01 / 02 tự động

Rất nhiều anh em lần đầu cấu hình đẩy file lên FTP Sở TN&MT bị báo lỗi parser do dùng dấu cách (Space) thay vì ký tự Tab (\t) hoặc lưu file ở bảng mã UTF-8 with BOM. Chuẩn chính xác phải là UTF-8 without BOM, phân tách bằng phím Tab (\t), kết thúc dòng bằng CRLF (\r\n).

Dưới đây là nội dung thực tế của một tệp KCN_TAMDIEP_NT_20261015103000.txt xuất ra từ bộ Datalogger công nghiệp DL-ENV10:

pH	7.42	pH	20261015103000	00
COD	48.50	mg/L	20261015103000	00
TSS	28.10	mg/L	20261015103000	00
NH4	3.82	mg/L	20261015103000	00
Temp	29.60	oC	20261015103000	00
Flow_In	148.20	m3/h	20261015103000	00
Flow_Out	142.80	m3/h	20261015103000	00

Sơ đồ bố trí cầu đấu phần cứng Datalogger quan trắc môi trường DeviceLab DL-ENV10 Hình 3: Sơ đồ cầu đấu 22 chân trên Datalogger DeviceLab DL-ENV10 với 4 kênh Analog 16-bit cách ly, 4 kênh DI nhận báo trạng thái Calibration, cổng RS485 TT10 và 2 Relay kích hoạt tủ lấy mẫu tự động

Mẹo xử lý tự động mã trạng thái 01 (Đang hiệu chuẩn) để không bị phạt cảnh báo giả:

Khi nhân viên vận hành tháo đầu đo pH hoặc COD ra nhúng vào dung dịch chuẩn để Calibration, giá trị đo sẽ nhảy vọt vượt ngưỡng QCVN. Nếu Datalogger vẫn gửi mã 00, hệ thống của Sở sẽ lập tức ghi nhận nhà máy xả thải vượt chuẩn!

  • Cách xử lý trên phần cứng: Đấu tiếp điểm Relay báo trạng thái Calib_Active từ tủ phân tích (như Hach SC200/SC1000, Endress+Hauser CM44x) vào chân Digital Input (DI1–DI4) của Datalogger, hoặc bật chế độ Calibration Mode trên màn hình tại tủ.
  • Ngay khi chân DI kích hoạt, firmware Datalogger tự động đổi cột trạng thái từ 00 sang 01 và tạm khóa ngõ ra Relay kích hoạt máy lấy mẫu tự động, tránh việc máy lấy mẫu hút nhầm nước lúc đang hiệu chuẩn.

4. Kiến trúc Lưu đệm Flash vòng (Circular Ring Buffer) & Truyền bù Store-and-Forward

Để giải quyết triệt để bài toán rớt mạng 4G/Internet mà không mất bất kỳ bản ghi 5 phút nào, thay vì dùng hệ điều hành nặng nề, bên mình thiết kế firmware trên nền FreeRTOS kết hợp cấu trúc hàng đợi bất biến trên chip NOR Flash công nghiệp và thẻ nhớ SD công nghiệp:

[Đầu đo 4-20mA / RS485]
        │ (Đọc mỗi 1 giây, trung bình hóa 5 phút)
        ▼
[Bộ nhớ đệm Flash Vòng (Ring Buffer > 100.000 bản ghi)]
        │
        ├──► Có mạng 4G/LAN: Đóng gói .txt ──► Đẩy FTPS Sở TN&MT (ACK thành công -> Đánh dấu Cờ 'SENT')
        │
        └──► Mất mạng 4G/LAN: Đánh dấu Cờ 'PENDING' (Lưu giữ theo thứ tự thời gian thực RTC)
                    │
                    └──► Khi có mạng lại: Task Backfill tự động vét toàn bộ file 'PENDING' đẩy bù lên FTPS
                         song song với file hiện tại cho đến khi hết hàng đợi.

Ngoài luồng FTPS truyền về Sở TN&MT, anh em tích hợp hệ thống (SI) có thể lấy dữ liệu đồng thời qua MQTT JSON về Cloud riêng của nhà máy hoặc đọc qua Modbus TCP Server (Port 502) về SCADA tại phòng điều khiển trung tâm. Toàn bộ file mẫu .txt, cấu trúc JSON MQTT và bảng thanh ghi Modbus TCP bên mình đã mở công khai trên GitHub để anh em tiện tham khảo khi viết phần mềm: 👉 GitHub Repo: https://github.com/devicelabvn/dl-env10-tt10-integration-examples

Hy vọng những chia sẻ thực tế trên giúp anh em kỹ sư tự động hóa và nhà thầu môi trường tiết kiệm thời gian cấu hình, xử lý dứt điểm lỗi rớt số liệu và nghiệm thu trạm nhanh gọn! Anh em nào đang vướng kết nối Modbus với dòng tủ phân tích hoặc đồng hồ lưu lượng nào cứ bình luận bên dưới, mình sẽ gửi bảng Map thanh ghi chi tiết.


✍️ Tác giả: Đinh Mạnh Thảo – Kỹ sư trưởng R&D tại DeviceLab (CÔNG TY TNHH ĐẦU TƯ CÔNG NGHỆ ALPHA TECH – MST: 0111171963 | Địa chỉ Lab: Số 32/4, Hà Trì 4, Phường Hà Đông, TP. Hà Nội | Website: https://devicelab.vn/ | Hotline/Zalo kỹ thuật: 0982 503 355).


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí