
Khắc phục cảnh báo trùng lặp trong WinCC EventList
Hiện tượng
Một cảnh báo thực tế chỉ xảy ra một lần, nhưng trên màn hình WinCC Alarm Control / Event List lại hiện ra nhiều dòng giống hệt nhau (trường hợp thường gặp trong các dự án trạm biến áp dùng SICAM SAS kết hợp M7-CPU là lặp đúng 6 lần mỗi sự kiện). Số lần lặp gần như cố định theo từng dự án, không phụ thuộc vào tần suất kích hoạt. Kiểm tra ở Alarm Logging Editor (offline) thì mỗi message vẫn chỉ có 1 dòng, với message number riêng — tức là cấu hình message không sai, vấn đề nằm ở phần binding tag.
Nguyên nhân
Alarm Logging của WinCC cần 3 loại tag khác nhau cho mỗi message:
Message tag — báo cảnh báo xuất hiện/kết thúc.
Status tag — trạng thái hiện tại của tín hiệu.
Ack tag — xác nhận thao tác của operator gửi ngược về PLC.
Nếu cả ba vai trò này bị gán chung vào một tag duy nhất (ví dụ cùng dùng MSG_Q_1 cho cả ba), WinCC sẽ hiểu mỗi lần thay đổi trạng thái/handshake của tag đó là một sự kiện cảnh báo mới, dẫn đến nhân bản số dòng hiển thị.
Ngoài ra, còn một nguyên nhân phổ biến khác không liên quan đến binding tag: Alarm Control đang subscribe vào nhiều server cùng lúc (ví dụ cấu hình Server Selection không giới hạn ở 1 server ưu tiên trong hệ thống redundant) — mỗi server gửi về một bản, khiến 1 sự kiện thực tế hiển thị thành nhiều dòng.
Cách kiểm tra nhanh
Xuất Alarm Logging ra CSV (WinCC Explorer → Alarm Logging → Editor → File → Export → CSV), sắp xếp theo cột Message Tag, kiểm tra xem 3 cột Message/Status/Ack Tag có đang trỏ về cùng một tag không.
Hiện cột Message Number trên Alarm Control ở runtime — nếu các dòng trùng lặp có cùng một Message Number, đúng là lỗi binding tag (WinCC bắn 1 message nhiều lần). Nếu số khác nhau, có thể nguồn tín hiệu từ PLC/M7 thực sự phát nhiều lần (do rung tiếp điểm — cần debounce ở phía PLC).
Kiểm tra tab General của Alarm Control, xem mục Server Selection đang trỏ đến bao nhiêu server — nếu trỏ tới tất cả server trong cụm redundant thay vì 1 server ưu tiên, đây cũng là nguyên nhân gây nhân bản.
Cách khắc phục
Nếu do binding tag sai (phổ biến nhất): vào Alarm Logging, mở từng message bị lặp, sang tab Parameter, gán lại đúng phần tử cấu trúc riêng cho từng vai trò thay vì dùng chung một tag gốc — ví dụ dùng phần tử giá trị (.value) cho Message tag, phần tử trạng thái (.state) cho Status tag, và phần tử xác nhận riêng cho Ack tag. Lưu và biên dịch lại project, khởi động lại runtime.
Nếu do Server Selection: giới hạn Alarm Control chỉ subscribe vào 1 server ưu tiên (Preferred Server) thay vì toàn bộ các server trong cụm.
Nếu do tín hiệu nguồn không ổn định (rung tiếp điểm ở PLC): xử lý debounce ngay tại nguồn (ở chương trình PLC/M7) thay vì lọc ở phía HMI — cách này loại bỏ trigger giả tại gốc và giảm tải mạng, thay vì chỉ che dấu hiện tượng trên màn hình.
Kiểm tra lại sau khi sửa
Giả lập một sự kiện và xác nhận runtime chỉ hiện đúng 1 dòng với đúng Message Number. Sau đó bắn liên tiếp 10 sự kiện thử tải, xác nhận có đúng 10 dòng riêng biệt theo thứ tự thời gian, và thao tác Acknowledge phản hồi đúng về phía PLC.
Nguồn tham khảo
Siemens Industry Online Support: WinCC V7.5 SP2 — Alarm Logging
Siemens Industry Online Support: SIMATIC WinCC — Working with WinCC
Siemens Industry Online Support: SIMATIC WinCC — Communication Manual (S7 Protocol Suite)
Siemens PTD: SICAM WinCC — Operator System



