Trong hệ thống SCADA công nghiệp, các máy chủ SCADA khi thu thập dữ liệu sẽ thực hiện theo 2 cách:
- Theo yêu cầu (Solicited) : Các thiết bị chỉ trả lời thông tin dữ liệu khi được hỏi
- Không theo yêu cầu (Unsolicited) : Các thiết bị tự cập nhật dữ liệu mà không cần máy chủ hỏi đến
Một số chuẩn truyền thông công nghiệp chỉ hỗ trợ dạng Solicited như Modbus (lại là chuẩn Modbus 😝), một số chuẩn hỗ trợ cả hai dạng như DNP3.
Trong hệ thống BMS, chuẩn BACnet được thiết kế để có thể chạy theo cả hai cách trên 👏👏👏, cụ thể:
- Theo yêu cầu: Các thiết bị BACnet sẽ sử dụng dịch vụ ReadProperty / ReadPropertyMultiple, để hỏi theo chu kỳ thời gian.
- Không theo yêu cầu: Các thiết bị BACnet sẽ sử dụng dịch vụ UnconfirmedCOV / ConfirmedCOV, gọi chung là COV (viết tắt của Change Of Value)
Vậy COV chạy như thế nào?
Bước 1: BACnet Client (ví dụ máy chủ BMS) sẽ gửi lệnh Subscribe COV đến cho các BACnet Server (ví dụ DDC), bước này để thông báo cho thiết bị rằng cần giám sát dạng COV các đối tượng nào.
Bước 2: Khi có sự thay đổi (theo cấu hình đã đặt sẵn) của đối tượng, thiết bị BACnet Server sẽ gửi thông báo COVNotification về cho BACnet Client, thông báo sẽ bao gồm giá trị của đối tượng. Ví dụ: Khi trạng thái bơm thay đổi (Bật -> Tắt / Tắt -> Bật), hoặc khi nhiệt độ ống gió thay đổi 0.5oC.
Bước 3: Tùy thuộc vào loại thông báo (Confirmed/Unconfirmed), BACnet Server sẽ gửi xác nhận đã nhận được thông báo về cho BACnet Client.
COV lợi hại như thế nào?
Các bạn thử hình dung, nếu không có dịch vụ COV, máy chủ BMS sẽ phải hỏi dữ liệu của DDC theo chu kỳ thời gian. Khi đó, với các hệ thống lớn, ta không thể thiết lập chu kỳ quá nhanh (1s) vì như vậy máy chủ BMS cũng sẽ không xử lý kịp, cũng không thể thiết lập chu kỳ quá chậm (5s) sẽ làm giảm chất lượng hệ thống! 😭 Và chuẩn BACnet có thể sẽ không thể phát triển như đến bây giờ, vì trong trường hợp này, Modbus TCP sẽ được ưu tiên hơn bởi cấu trúc bức điện đơn giản hơn rất nhiều.
Nếu áp dụng COV, với tín hiệu số (BI/BO/BV) sẽ thay đổi rất ít lần trong một ngày (ví dụ, bơm chỉ bật tắt vài lần trong ngày), lượng dữ liệu truyền tải gần như giảm xuống ~ 0%. Với các tín hiệu tương tự (AI/AO/AV) thay đổi nhiều hơn, gần như liên tục, ta phải thiết lập được thông số COV Increment phù hợp để giảm số lượng bản tin cập nhật 💪 Ví dụ với nhiệt độ, ta thiết lập COV Increment = 0.5 oC, khi đó, chỉ lúc nào nhiệt độ thay đổi quá 0.5 oC so với giá trị trước đó, DDC mới cập nhật dữ liệu lên, và theo kinh nghiệm, tần suất gửi dữ liệu chỉ rơi vào khoảng 1 phút - 2 phút.
Xét tổng thể, khi sử dụng COV, ta có thể đáp ứng được tốc độ cập nhật dữ liệu ~ 1s mà giảm được lượng dữ liệu truyền nhận tới hơn 60 lần 👏👏👏. Do vậy, hãy sử dụng COV cho bất kỳ thiết bị nào trong hệ thống BMS nếu bạn có thể. Tất nhiên, việc này chỉ áp dụng được với các DDC có hỗ trợ COV 😂
Tham khảo tài liệu
Solicited vs. Unsolicited Data Acquisition: Which Camp are You?
BACNET - WHAT IS THE BACNET CHANGE OF VALUE (COV)
------------------------------------------------------------
Liên hệ với tác giả:
Nguyễn Tuấn Minh
Điện thoại: 0983504018
Email: minhnt152@gmail.com
Không có nhận xét nào:
Đăng nhận xét