Học Automation cùng MINATA #76: MQTT trong IIoT: thiết kế topic, payload và store-and-forward trước khi gửi dữ liệu
MQTT nhẹ và linh hoạt, phù hợp gửi dữ liệu từ máy lên hệ IIoT. Nhưng chính vì linh hoạt, nó cần quy ước dữ liệu rõ ràng trước khi gắn gateway vào máy; thiếu quy ước, dữ liệu lên cloud khó dùng và khó bảo trì.

Các bước hoạt động ①–⑤
① Xác định đầu vào và điều kiện an toàn. ② Theo dõi logic hoặc đường năng lượng chính. ③ Kiểm tra phản hồi từ thiết bị hoặc quá trình. ④ Đối chiếu trạng thái hiển thị với trạng thái thực tế. ⑤ Ghi lại kết quả, điều kiện quan sát và điểm cần xử lý tiếp.

Bạn sẽ học được gì?
- Nhận diện đúng vai trò của MQTT trong IIoT: thiết kế topic, payload và store-and-forward trước khi gửi dữ liệu trong chuỗi điều khiển.
- Đọc sơ đồ theo đường đi của năng lượng, tín hiệu và phản hồi.
- Biết điểm nào cần kiểm tra trước khi kết luận máy đã sẵn sàng.
Thiết kế topic có cấu trúc
Topic nên thể hiện phạm vi và owner theo phân cấp, ví dụ site/line/machine/data-type, nhưng không nhét mọi chi tiết biến động vào tên topic. Cấu trúc ổn định giúp subscribe theo nhóm và phân quyền; tên topic đổi liên tục làm phía nhận khó theo dõi.
Payload phải versioned và có ngữ cảnh
Payload (thường JSON) nên có version, timestamp, quality, unit và sequence/event ID khi cần. Một payload đẹp nhưng thiếu timestamp gần như vô dụng khi mạng chập chờn: phía nhận không biết dữ liệu là mới hay cũ. Đặt version từ đầu để sau này đổi cấu trúc mà không phá phía nhận.

Event, sample hay aggregate
Quyết định mỗi loại dữ liệu gửi theo cách nào:
| Kiểu | Dùng cho | Cách gửi |
|---|
| Event | Đổi trạng thái máy, alarm | Phát khi có sự kiện |
| Sample | Giá trị đo theo dõi | Theo chu kỳ, có rate limit |
| Aggregate | Năng lượng, sản lượng | Tổng hợp theo khoảng |
Đừng publish toàn bộ tag PLC ở tần suất cao nếu không có người dùng, chi phí và kế hoạch lưu trữ (retention) rõ ràng.
Store-and-forward khi mất mạng
Gateway nên có store-and-forward: khi mất kết nối, đệm dữ liệu rồi gửi lại khi mạng phục hồi, kèm timestamp gốc để phía nhận sắp đúng thứ tự. Dùng QoS phù hợp cho dữ liệu quan trọng, tránh mất event trạng thái.
Tình huống kỹ thuật tham khảo
Một gateway publish event khi máy đổi trạng thái, gửi năng lượng dạng aggregate mỗi khoảng, và giới hạn tần suất cho giá trị nhanh. Payload có version và timestamp; khi Internet gián đoạn, dữ liệu được đệm và gửi lại đúng thứ tự khi phục hồi. Nhờ vậy dashboard trên cloud không mất event và không hiểu nhầm dữ liệu cũ là mới.
Cấu trúc topic, payload và chính sách gửi cuối cùng phải theo nhu cầu phía nhận, chi phí và retention plan.

Sai lầm thường gặp
- Đặt topic nhét mọi chi tiết biến động, khó subscribe.
- Payload thiếu version và timestamp, vô dụng khi mất mạng.
- Publish mọi tag ở tần suất cao không người dùng.
- Không có store-and-forward, mất dữ liệu khi rớt mạng.
- Dùng QoS không phù hợp, mất event trạng thái quan trọng.
Checklist MQTT trong IIoT
- [ ] Topic có cấu trúc ổn định thể hiện phạm vi và owner.
- [ ] Payload có version, timestamp, quality, unit.
- [ ] Phân loại event/sample/aggregate cho từng dữ liệu.
- [ ] Có store-and-forward và QoS phù hợp khi mất mạng.
- [ ] Chỉ gửi dữ liệu có người dùng và retention rõ.
Quy ước dữ liệu tốt làm IIoT bền và rẻ vận hành. Bài #77 chuyển sang phân vùng mạng OT, tách mạng để giảm phạm vi sự cố.
Đọc thêm kiến thức tự động hóa tại MINATA: https://minatavn.com/vi/blog/tu-dong-hoa
Bài liền trước — #75: OPC UA cho tích hợp dữ liệu: https://minatavn.com/vi/blog/hoc-automation-cung-minata-75-opc-ua-cho-tich-hop-du-lieu
Bài tiếp theo — #77: Phân vùng mạng OT: https://minatavn.com/vi/blog/hoc-automation-cung-minata-77-phan-vung-mang-cong-nghiep
Xem tất cả bài viết kỹ thuật MINATA