Pierwszy krok to dodanie do projektu nowych ekranów, na których zostanie zbudowana wizualizacja o aktualnym czasie i dacie oraz temperaturze otoczenia w mieszkaniu. Te informacje zostaną umieszczone na ekranie o nazwie Info. Kolejny ekran, który będzie nam potrzebny, to Light. Posłuży on do wyświetlenia informacji o aktualnym stanie sygnałów wejściowych w sterowniku oraz umieszczenia przycisków do włączenia/wyłączenia oświetlenia w każdym z pomieszczeń.
Zaczniemy od utworzenia szablonu (tz. template), który będzie dostępny na każdym z ekranów. Zostaną tam umieszczone obiekty, które będą potrzebne do przechodzenia pomiędzy ekranami. Jednym słowem zrobimy menu. Z drzewa projektu wybieramy Screen management i następnie Templates. Wybieramy Add new template. Następnie zmieniamy nazwę na MyTemplate. Z prawej strony z karty Toolbox dodajemy z zakładki Elements obiekt Button. Umieszczamy go w lewym dolnym narożniku. Przechodzimy do właściwości tego obiektu poprzez jego zaznaczenie. Przedstawia to rysunek 2.
Przechodzimy do zakładki Properties w zakładce Properties. Następnie w General z pola Mode wybieramy Graphic i następnie w polu Graphic wybieramy z listy rozwijanej ikonę Home. Spowoduje to, że zamiast teksu na przycisku zostanie umieszczona grafika.
Kolejna czynność, którą należy zrobić dla tego przycisku, to utworzenie zdarzenia. Będzie ono polegało na tym, że po naciśnięciu tego przycisku nastąpi zmiana ekranu na ekran startowy (Root screen). Aby utworzyć tę funkcjonalnoś?, trzeba wybra? zak?adk? ć, trzeba wybrać zakładkę Event, co przedstawia rysunek 3. Po lewej stronie są dostępne zdarzenia, które są powiązane z przyciskiem. Skorzystamy z Release, czyli dopiero w momencie zwolnienia przycisku nastąpi wykonanie akcji, czyli zmiana ekranu. Akcje wybieramy z listy <Add function> lub można też wpisać ręcznie, jeżeli znamy jej nazwę. Nas interesuje aktywizowanie określonego ekranu, dlatego wykorzystamy ActivateScreen. Pozostało w polu Screen name wybrać także z rozwijanej listy nazwę ekranu. Wybieramy Root screen. Analogicznie dodajemy do szablonu dwa przyciski, którym należy przypisać odpowiednie nazwy Info oraz Light. Pozostało jeszcze dla każdego z nich utworzyć zdarzenia, aby po naciśnięciu nastąpiło przejście do ekranu, który wskazuje nazwa przycisku.
![]() |
![]() |
![]() |
W prawym dolnym rogu umieścimy obiekt Data/time field z zakładki Elements. Konfiguracja tego obiektu została przedstawiona na rysunku4. Ten obiekt wykorzystamy do wyświetlania aktualnego czasu systemowego. Dlatego w polu Field zostało tylko zaznaczone Show time. Aby czas systemowy był poprawnie synchronizowany, w drzewie projektu należy skonfigurować zakładkę Connection. Należy tylko zmienić w kolumnie HMI time synchronization mode na Slave.
Ekrany
We wstępie napisałem o ekranach, z którymi będziemy pracować w tej części kursu. Przed przystąpieniem do realizacji tego zadania należy jeszcze przygotować kilka rzeczy.
Hmi tags Przed przystąpieniem do tworzenia ekranów na początku należy przygotować dane. W części dla PLC jest warstwa wizualizacji (01Visualization) zawierająca bloki danych ze zmiennymi, które zostaną wyświetlone w celu prezentacji wartości lub ich zmiany. Bloki danych, które zostaną użyte w tej części kursu, zostały przedstawione na rysunku 5.
Text list Informacje na wizualizacji można przedstawiać w postaci liczb. Kolejny sposób to prezentacja informacji w postaci tekstowej (wyrazy, zdania). Istnieje też możliwość powiązania wartości liczbowych z tekstem. W zależności od aktualnej wartości ukaże się odpowiedni ciąg znaków. Do tego celu służą tz. Text list. Takie powiązanie wykorzystamy na ekranie Info, aby przedstawiać w postaci słowa aktualny dzień tygodnia oraz na ekranie Light w celu przedstawienia aktualnego stanu każdego z wejść i wyjść cyfrowych PLC. Tworzenie list tekstowych odbywa się w Text and graphic lists, co przedstawia rysunek 7 oraz rysunek 8.
Rysunek 7 pokazuje powiązanie poziomów logicznych z ich opisem, natomiast rysunek 8 zawiera dni tygodnia.
W polu Text należy zmienić nazwę na Info oraz w polu Fit to size odznaczyć Fit object to contents. Przechodzimy do kolejnej zakładki, czyli Appearance. Ta zakładka została pokazana na rysunku 11. W polu Background należy zmienić kolor na niebieski, natomiast w polu Text zmieniamy kolor na biały. Pozostało nam tylko przejść do zakładki Layout, co przedstawia rysunek 12. Ta zakładka służy do ustawienia pozycji i wielkości pola tekstowego. My jednak ustawimy to ręcznie za pomocą myszki. Należy tylko w polu Fit to size odznaczyć Fit object to contents. Pozostało nam tylko ręczne ustawienie obiektu pola tekstowego, aby przypominało nagłówek.
Pozostałe obiekty pól tekstowych należy zmienić odpowiednio nazwy (zakładka General i następnie pole Text). Zmiany wielkości czcionki lub jej typu dokonuje się w zakładce Text format, co przedstawia rysunek 13. Zmieniamy tylko rozmiar czcionki i dodajemy pogrubienie, więc należy zmienić pole Font. Analogiczne zmiany robimy dla pozostałych pól tekstowych. Wówczas pozostanie mam tylko odpowiednio porozmieszczać te obiekty.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Podobnie jak w przypadku innych obiektów, tak samo obiekt Switch wymaga powiązania z tagiem. W tym wypadku będzie to V_Light_Anteroom. Dla każdego z dostępnych stanów (stan niski, stan wysoki) można w polu Label ustawić etykietę. Dla obiektu Button zmieniamy nazwę na Switch. Następnie we właściwościach tego obiektu trzeba przejść do zakładki Events. W zakładce Release należy wybrać zdarzenie InvertBit i wybrać także tag V_Light_Anteroom. Dzięki temu naciśnięcie przycisku będzie powodowało zmianę wartości tagu, a tym samym zmianę stanu oświetlenia. Analogicznie należy skonfigurować obiekty i powiązać z tagami dla Bathrom i Children room.
Do zgrupowania obiektów użyjemy obiektu o nazwie Rectangle. Należy dodać dwa takie obiekty. Każdy z nich powinien znajdować się na warstwie 0 – Layer_0. W zakładce Appearance należy ustawić odpowiednie kolory (pole Color). Do każdego obiektu Rectangle trzeba przygotować nagłówek z opisem, co znajduje się na danej „zakładce”. Nagłówek przygotowujemy analogicznie, jak do nagłówków do ekranu. Nagłówek również powinien znajdować się na warstwie 1-Layer_1.
Pozostało tylko skompilować cały projekt i wgrać na panel HMI (lub uruchomić symulator). Przetestuj informacje wyświetlane na każdym z ekranów. Sprawdź, czy stany sygnałów odpowiadają tym, które są prezentowane na HMI. Czas prawdopodobnie nie będzie się zgadzał. Tym zajmiemy się w kolejnych artykułach.
Ćwiczenie
Na ekranie Light w części Status switch in flat dodać pola IO field i wyświetlać wartości wejść w postaci liczbowej (0 lub 1).
Tomasz Gilewski
www.mistrzplc.pl
tomasz.gilewski@mistrzplc.pl