Konfiguracja i obsługa alarmów w sterownikach PLC
Kurs programowania sterowników Horner APG w środowisku Cscape 10, odc. 14
Kontakt w sprawie artykułu: Mateusz Pytel - 2025-09-20

W tym odcinku do programu sterującego oraz aplikacji wizualizacyjnej dodamy obsługę alarmów.
Kurs programowania sterowników Horner APG w środowisku Cscape 10
Wprowadzenie i podstawy
1. Jak skonfigurować, podłączyć oraz uruchomić sterownik PLC?2. Jak tworzyć i edytować projekty w oprogramowaniu Cscape 10?
Programowanie w języku drabinkowym
3. Jak tworzyć oraz konfigurować bazę zmiennych w środowisku Cscape?4. Jak korzystać ze styków, cewek i bloków operacji arytmetycznych w programie sterującym?
5. Jak odmierzać czas w programie sterującym i jak konfigurować timery?
6. Jak porównywać wartości i wykorzystać wyniki operacji logicznych?
7. Jak zliczać impulsy i konfigurować liczniki?
8. Jak konwertować typy zmiennych i przemieszczać zmienne w programie?
9. Jak sterować wykonywaniem programu logicznego? Instrukcja skoku warunkowego?
Programowanie zintegrowanego panelu HMI
10. Jak budować ekrany operatorskie z obiektami do wizualizacji i zadawania wartości zmiennych?11. Jak umożliwić nawigację między ekranami operatorskimi oraz jak korzystać z gotowych obiektów graficznych w środowisku Cscape?
12. Jak wizualizować zmienne analogowe oraz jak modyfikować ich wartości przy pomocy obiektów graficznych?
13. Jak korzystać z obiektu menu?
14. Konfiguracja i obsługa alarmów w sterownikach PLC.
15. Trend Graph.
W przykładowym ćwiczeniu skonfigurujesz 6 punktów alarmowych, informujących o przekroczeniu stanów minimalnych i maksymalnych w zbiornikach oraz dodasz symbole graficzne przy zbiornikach, które poinformują operatora o wystąpieniu alarmu.
Alarmami będzie można zarządzać z jednego ekranu, na którym oprócz alarmów bieżących pojawią się także alarmy historyczne. Dodatkowo skonfigurujesz składowanie alarmów na karcie pamięci MicroSD zainstalowanej w sterowniku.
Krok 1: Rozbudowa programu sterującego.
Konfigurację alarmów rozpocznij od rozbudowy aplikacji o nowy podprogram, który będzie odpowiedzialny za monitorowanie poziomów cieczy w zbiorniku oraz za aktywację alarmów. Każdy zbiornik będzie posiadał dwa punkty alarmowe: osiągnięcie poziomu minimum oraz osiągnięcie poziomu maksimum. W chwili, gdy poziom zbiornika osiągnie stan alarmowy, odpowiedni punkt alarmowy przejdzie w stan wysoki.
Utwórz nowy podprogram wybierając z menu kontekstowego New Enhanced Ladder Logic Subroutine. Nazwij go Alarmy.

Utwórz szczebel odpowiedzialny za monitorowanie stanu maksimum. Pierwszym elementem szczebla będzie styk z podłączoną do niego zmienną ALW_ON. Drugi element to blok porównywania wartości typu „większy lub równy” (Greater Than or Equal). Na wejście IN 1 podłącz zmienną Zbiornik_1, a do wejścia IN 2 stałą 45.
Na końcu szczebla utwórz cewkę i podłącz do niej zmienną ZB1_ALM_HI o adresie %R30.1, którą uprzednio dodaj w Program Variables. Zgodnie z logiką działania bloku zmienna przypisana do cewki zostanie ustawiona w stan wysoki, jeśli wartość zmiennej Zbiornik 1 będzie większa lub równa 45.

Analogicznie utwórz szczebel odpowiedzialny za monitorowanie stanu minimum. Do tego celu wykorzystaj blok „mniejszy lub równy”. W oknie Program Variables dodaj zmienną ZB1_ALM_LO o adresie %R30.2 i przypisz ją do cewki.

Zmienne ZB1_ALM_HI i ZB1_ALM_LO wykorzystasz dodatkowo do odpowiedniego ustawienia słowa kontrolnego, które będzie potrzebne do wyświetlania obiektów graficznych informujących o wystąpieniu stanu alarmowego. W tym celu utwórz kolejny szczebel z rozgałęzieniem. Pod styki podłącz zmienne ZB1_ALM_HI i ZB1_ALM_LO, a do kolejnych cewek zmienne o adresach %R42.1 i %R42.2.

W analogiczny sposób utwórz szczeble odpowiedzialne za monitorowanie stanów maksimum i minimum dla zbiornika 2 i 3. W tym celu zaznacz i skopiuj fragment kodu przygotowany dla zbiornika 1 i wklej go dwa razy poniżej.
Dla zbiornika 2 zmień zmienne na Zbiornik_2 oraz dla punktów alarmowych dodaj zmienne ZB2_ALM_HI o adresie %R30.3 oraz ZB2_ALM_LO o adresie %R30.4. W szczeblu odpowiedzialnym za modyfikację słowa sterującego podłącz zmienne %R43.1 i %R43.2.

Dla zbiornika 3 zmień zmienne na Zbiornik_3 oraz dla punktów alarmowych dodaj zmienne ZB3_ALM_HI o adresie %R30.5 oraz ZB3_ALM_LO o adresie %R30.6. W szczeblu odpowiedzialnym za modyfikację słowa sterującego podłącz zmienne %R44.1 i %R44.2.

Modyfikację programu logicznego zakończ na umieszczeniu w programie Main szczebla wywołującego podprogram Alarmy. Do styku podłącz zmienną o nazwie Alarmy, a w instrukcji Call z rozwijalnej listy wybierz podprogram Alarmy.

Ważne!
Aby podprogram Alarmy został wywołany i wyświetlane były komunikaty alarmowe, należy przesterować jego styk, możesz to zrobić w oknie Data Watch po wgraniu programu do sterownika i przełączeniu go w tryb pracy RUN. Zmienną Alarmy dodaj przy użyciu przycisku Add, a następnie przełącz Value na ON.

Krok 2: Rozbudowa ekranów operatorskich.
Czas na konfigurację alarmów. Aby uruchomić menedżera alarmów, z zakładki User Interface -> Systems wybierz Alarm.

Konfigurację rozpocznij od pola Number of Alarms – wprowadź liczbę 6. Tyle alarmów będzie obsługiwał menedżer. W polu Address podaj rejestr alarmowy %R30, w którym na poszczególnych bitach będą przechowywane informacje na temat zaistniałych alarmów.
Sekcja Alarm Point Configuration pozwala skonfigurować treści oraz grupy, do których będą należały alarmy. Wartość w kolumnie Alarm Bit wskazuje bit rejestru alarmowego. Przejście bitu w stan wysoki spowoduje wyświetlenie odpowiedniego komunikatu w oknie alarmu. Treść alarmu skonfigurujesz w oknie Alarm Info, a grupę, do której będzie należał alarm, w oknie Group.
Sekcja Remote Acknowledgement and Clear pozwala podać zmienne, za pomocą których można w sposób zdalny potwierdzać i kasować alarmy – tę sekcję pozostaw bez konfiguracji.
Grupowanie alarmów ma na celu poprawienie czytelności aplikacji. W oknach alarmowych możesz skonfigurować, które grupy alarmowe będę w nich wyświetlane. W tej aplikacji przyjmij, że alarmy stanu wysokiego będą należały do grupy 1, natomiast alarmy stanu niskiego do grupy 2.
Skonfiguruj alarmy zgodnie z poniższą listą:
Group | Alarm Bit | Alarm Message | Alarm Info |
1 | R30.1 | Zbiornik 1 | wysoki poziom zbiornika |
2 | R30.2 | Zbiornik 1 | niski poziom zbiornika |
1 | R30. 3 | Zbiornik 2 | wysoki poziom zbiornika |
2 | R30.4 | Zbiornik 2 | niski poziom zbiornika |
1 | R30.5 | Zbiornik 3 | wysoki poziom zbiornika |
2 | R30.6 | Zbiornik 3 | niski poziom zbiornika |

Dodatkowo skonfiguruj składowanie alarmów na karcie MicroSD zainstalowanej w sterowniku.
W tym celu w oknie Alarm Logging to Removable Media skonfiguruj częstotliwość składowania danych jako dzienną – wybierz DAILY. W polu Alarm Log Path podaj nazwę katalogu, w którym będą przechowywane pliki z alarmami – wpisz Alarmy. Ustaw także format daty (MM/DD/YYYY) oraz format czasu (HH:mm).

Po zakończeniu konfiguracji w menadżerze alarmów utwórz nowy ekran operatorski. Na górze dodaj nazwę okna oraz wstaw dwa obiekty Alarm.
Pierwszy obiekt skonfiguruj jako alarmy bieżące (Summary List) i ustaw następujące parametry:
- zaznacz opcję Allow Operator to Clear – pozwoli to na usuwanie alarmów przez operatora,
- w sekcji Alarm Groups to Display wybierz grupę 1 i 2 – pozwoli to na wyświetlanie tylko alarmów pochodzących z tych grup.
Sposób wyświetlania alarmów w obiekcie konfigurujemy według własnego uznania podając:
- czcionkę,
- format daty,
- format czasu,
- stan.

Analogicznie konfigurujemy drugi obiekt, zmieniając typ alarmów na historyczne (History List).

Dodaj na ekran obiekt Screen jump i skonfiguruj jego tryb pracy jako Simulate ESC.

Ekran z alarmami będzie wywoływany z ekranu 2 – dodaj zatem obiekt Screen jump na ekranie 2, wskaż ekran docelowy i włącz opcję Allow ESC to return.

Ekrany, na których znajdują się zbiorniki, uzupełnij o obiekty graficzne pokazujące wystąpienie stanu alarmowego. Jeśli wystąpił alarm sygnalizujący wysoki lub niski poziom w zbiorniku, wokół zbiornika pojawi się czerwona ramka.
W tym celu na ekran dodaj obiekt prostokąta z okna Project Toolbox -> Rectangle.

Dwukrotnie klikając w narysowaną ramkę przejdź do jej konfiguracji. Ustaw odpowiednią grubość linii oraz kolor (na czerwony), a wypełnienie kształtu pozostaw puste.

W oknie Attributes wskaż rejestr kontrolny dla zbiornika 1 (%R42) i zaznacz Bit 1, odpowiedzialny za widoczność ramki, oraz Bit 2, odpowiedzialny ze jej pulsowanie.

W analogiczny sposób przygotuj ramki alarmowe dla zbiornika 2 i zbiornika 3, pamiętając o podpięciu odpowiednich rejestrów kontrolnych: %R43 dla zbiornika 2 i %R44 dla zbiornika 3. Odpowiednie ramki umieść na właściwych ekranach.

Przygotowany program wgraj do sterownika i wprowadź sterownik w tryb RUN. Przetestuj działanie obiektu alarmów, napełniając i opróżniając zbiorniki. Sprawdź, jak działa funkcja potwierdzania i kasowania alarmów oraz jakie informacje składowane są w oknie alarmów historycznych.
Wizualizacja alarmów na sterowniku Horner Canvas 7D:

Sterownik Horner daje również możliwość wejścia zarówno w Alarmy bieżące jak i historyczne:

W kolejnym artykule dowiesz się, w jaki sposób skonfigurować obiekt trendów.
Następny odcinek: Trend Graph.
Autor artykułu:
Jacek Dynak
Praktykant ASTOR
Student IV roku kierunku „automatyka i robotyka” na Politechnice Krakowskiej