Blokowanie wejścia do menu systemowego w sterownikach Horner
Kontakt w sprawie artykułu: Mateusz Leszczyński - 2024-04-16

Z tego artykułu dowiesz się:
- jak uniemożliwić nieuprawniony dostęp do menu systemowego w sterownikach Horner,
- jak zabezpieczyć hasłem możliwość przechodzenia do innych ekranów operatorskich.
W artykule „Sterowniki PLC – bezpieczeństwo w sieci” pisaliśmy, jak ważne w systemie automatyki jest zapewnienie odpowiedniego poziomu bezpieczeństwa. W przypadku sterowników PLC+HMI Horner bardzo istotne jest zabezpieczenie przed niepowołanym dostępem do urządzenia poprzez ekrany operatorskie i menu systemowe.
W tym artykule pokażemy, w jaki sposób zablokować możliwość wejścia do menu systemowego, a także jak zabezpieczyć hasłem możliwość przechodzenia do wybranych ekranów operatorskich.
Programowe zabezpieczenie hasłem
W pierwszym kroku tworzymy dwa ekrany operatorskie:


Wykorzystane zostały następujące obiekty:
- Static Text Object
- Password Object
- Jump Object
W kolejnym kroku konfigurujemy obiekt Password na Ekranie 1 – jak na poniższym rysunku:

Wprowadzane hasło będzie zapisane w rejestrze %R10.
Następny krok to konfiguracja obiektu Jump. Na ekranie 1 robimy to w następujący sposób:

Musimy teraz zdefiniować parametry widoczności oraz możliwości załączenia obiektu Jump. Dokonujemy tego naciskając przycisk Attributes >>> w sekcji Display Properties. Wyświetlone zostanie okno Display Attributes. Konfigurujemy obiekt tak, aby był widoczny i aktywny w zależności od załączenia bitów 1 i 4 rejestru %R20:

Ostatni etap to uzupełnienie logiki programu. Porównujemy wprowadzone w obiekcie Password hasło z oczekiwanym (w tym przykładzie: 12345). Jeżeli hasło jest prawidłowe, ustawiane są bity zezwalające na przejście do ekranu 2:

Blokowanie wejścia do menu systemowego
Numer strony systemowej (Menu System) jest przechowywany w rejestrze systemowym %SR3. Rejestr ten jest zarówno do odczytu, jak i zapisu (Read/Write). Jeżeli menu systemowe nie jest włączone, rejestr %SR3 zwraca wartość 0.
Uzupełnimy teraz naszą aplikację tak, aby programowo zablokować przycisk systemowy. Wykorzystujemy ten sam obiekt Password, co poprzednio. Poniższa linia kodu wymusza wpisanie wartości 0 do rejestru %SR3, jeżeli hasło nie zostało wprowadzone. Powoduje to brak możliwości wejścia do menu systemowego.

Alternatywnie można uzyskać taki sam efekt za pomocą poniższej linii kodu:

Oczywiście każdy użytkownik może zaprogramować ten mechanizm wg własnych potrzeb, wykorzystując opisane powyżej zasady blokowania i spełnionych warunków. Ważne, żeby pamiętać o możliwości wykorzystania rejestru systemowego %SR3.
Jeżeli dodatkowo chcielibyśmy rozszerzyć i uzależnić kod od tego, jaki ekran jest aktualnie otwarty, to rejestr systemowy %SR1 zwraca nam numer aktualnie otwartego ekranu.
Przeczytaj więcej o sterownikach PLC zintegrowanych z panelem HMI