Strona główna ASTOR
Automatyka w praktyce

Jak porównywać wartości i wykorzystać wyniki operacji logicznych?
Kurs programowania sterowników Horner APG  w środowisku Cscape 10, odc. 6

Kontakt w sprawie artykułu: Mateusz Pytel - 2025-09-09

W tym odcinku dowiesz się, jak wykonać porównywanie wartości i jak wykorzystać bloki porównywania w logice programu sterującego.

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.

Jak działają bloki służące do porównywania wartości?

Bloki porównywania danych należą do najczęściej wykorzystywanych funkcji w programach sterujących. Za ich pomocą możesz sterować sygnałami w zależności od relacji występującej pomiędzy porównywanymi wartościami argumentów.

Wprowadza to pewien dynamizm i zwiększa możliwości tworzonych aplikacji. W tej części kursu nauczysz się sprawnie pracować z tymi blokami i korzystać z ich operacji.

Krok 1: Jakie bloki porównywania wartości dostępne są w środowisku Cscape?

Bloki porównywania pracują z wartościami typu INT, DINT, REAL, UINT, DUINT, LREAL. Argumenty mogą być liczbami stałymi lub rejestrami. Operacja porównania zwraca wartości prawda/fałsz w zależności od wyniku. W przypadku prawdy na wyjściu bloku wystawiany jest sygnał.

Do programu sterującego operacje porównania można wstawiać z okna Project Toolbox. Bloki te znajdują się w zakładce Compare Operations.

Krok 2: Uzupełniamy logikę aplikacji

Wykorzystując bloki porównywania wartości, uzupełnij aplikację o logikę sprawdzającą stan poziomu wody w zbiorniku oraz odpowiednie sterowanie zaworami napełniającymi i opróżniającymi tak, by nie doprowadzić do przepełnienia lub zapowietrzenia zbiorników.

W tym celu dla każdego zbiornika określ poziom maksymalny – 50 litrów oraz poziom minimalny – 0 litrów, przy których nastąpi zamknięcie odpowiednich zaworów.

Wykorzystanie porównania wartości da ci informacje, czy poziom wody w zbiorniku nie osiągnął którejś ze skrajnych wartości.

Krok 3: Dodaj blok porównania poziomu wody do maksimum

Przejdź do stworzonego podprogramu Zbiornik1 i w nowym szczeblu dodaj styk normalnie otwarty. W konfiguracji przypisz do niej zmienną systemową ALWAYS_ON o adresie %S007, która zawsze daje stan wysoki i zapewnia wykonywanie dalszej części kodu szczebla w każdym cyklu.

Następnie z górnego paska narzędziowego wstaw blok porównania GE (większy lub równy) i klikając w niego dwukrotnie, przejdź do konfiguracji.

Krok 4: Jak skonfigurować blok porównania?

Najpierw zmień obsługiwany typ na REAL, by móc dobrać odpowiednie zmienne.

Kolejno jako pierwszy argument IN1 przypisz zmienną Zbiornik1 (możesz wybrać z rozwijanej listy), natomiast do argumentu IN2 przypisz wartość 50.

Blok ten, zgodnie z logiką działania, wystawi na wyjście sygnał, jeśli wartość zmiennej Zbiornik1, będzie większa lub równa 50.

Ostatnim elementem szczebla będzie cewka resetująca, która zamknie zawór napełniający w momencie, gdy poziom wody będzie równy 50 litrów lub większy. W oknie konfiguracji cewki przypisz do niej zmienną Zawor_napelniajacy_ZB1.

Krok 5: Dodanie bloku porównania poziomu wody do minimum

Logikę sterowania w celu zamknięcia zaworu opróżniającego w momencie osiągnięcia minimalnego poziomu wody w zbiorniku określisz w ten sam sposób.

W tym celu ponownie wstaw styk normalnie otwarty i przypisz mu zmienną ALWAYS_ON, a następnie dodaj blok porównania LE (mniejszy bądź równy) i przejdź do jego konfiguracji.

W pierwszym kroku zmień typ na REAL, następnie do argumentu IN1 przypisz zmienną Zbiornik_1, a do argumentu IN2 – wartość 0.

Kolejno – za blokiem porównania – wstaw cewkę resetującą, która zamknie zawór opróżniający zbiornik numer 1, w momencie gdy poziom wody w tym zbiorniku osiągnie wartość 0.

Do cewki resetującej przypisz zmienną Zawor_oprozniajacy_ZB1.

Krok 6: Jak wykorzystać wyniki operacji porównania?

Logikę sterowania kontrolującą poziom wody w zbiorniku numer 2 określisz tak samo, jak dla zbiornika numer 1. W tym celu skopiuj stworzone w tej części kursu szczeble i wklej w podprogramie Zbiornik_2 (zobacz poniżej) napisane wcześniej linijki.

W celu skopiowania linijek kodu możesz też użyć skrótu klawiszowego CTRL+C i następnie wkleić skopiowany uprzednio kod kombinacją klawiszy CTRL +V.

W kolejnym kroku zmienisz przypisane zmienne.

Dla bloku GE skonfiguruj argument IN1 jako Zbiornik_2. Podobnie dla bloku LE – argument IN1 również powinien przyjmować wartość zmiennej Zbiornik_2.

Dla cewki resetującej występującej po bloku GE ustaw zmienną Zawor_napelniajacy_ZB2, natomiast dla poniższej cewki przypisz zmienną Zawor_oprozniajacy_ZB2.

Finalnie podprogram powinien wyglądać tak:

Od teraz, wtedy, gdy poziom wody w zbiorniku numer 2 osiągnie wartość równą 50 litrów lub więcej, jego zawór napełniający zostanie zamknięty. Natomiast w momencie, gdy poziom wody w tym zbiorniku będzie równy 0, jego zawór opróżniający zostanie przesterowany.

Krok 7: Określ logikę sterowania wykorzystująca bloki porównania dla zbiornika numer 3

Poziom wody w zbiorniku numer 3 jest zwiększany, gdy otwierasz zawór opróżniający zbiornik numer 1 lub zawór opróżniający zbiornik numer 2.  W związku z tym program sterujący związany z kontrolowaniem wartości poziomu wody i sterowaniem zaworami będzie analogiczny do poprzednich zbiorników, ale dodatkowo rozbudowany.

W tym celu skopiuj stworzone w dzisiejszej lekcji linijki z podprogramu Zbiornik2 i wklej je w podprogramie Zbiornik3, poniżej napisanego już kodu.

Następnie w blokach porównywania zmień argument IN1 na Zbiornik_3. Pozostałe parametry nie wymagają zmiany.

W kolejnym kroku wstawisz dodatkową cewkę resetującą w pierwszej wklejonej linii. Wiąże się to z faktem, iż zbiornik numer 3 napełniany jest w momencie opróżniania zbiornika numer 1 i zbiornika numer 2.

Kiedy blok porównania wykryje, że poziom wody w zbiorniku numer 3 osiągnął wartość równą 50 lub więcej, wystawi sygnał, który powinien zamknąć zawory opróżniające pozostałe zbiorniki, poprzez cewki resetujące.

W związku z tym do pierwszej cewki resetującej przyporządkuj zmienną Zawor_Oprozniajacy_ZB1, natomiast do drugiej, nowo dodanej, przypisz zmienną Zawor_Oprozniajacy_ZB2.

Do cewki resetującej znajdującej się w poniższym szczeblu, po bloku porównującym LE, przypisz zmienną Zawor_Oprozniajacy_ZB3. Dzięki temu po osiągnięciu minimalnego poziomu wody w zbiorniku numer 3, zamknięty zostanie jego zawór opróżniający.,

Krok 9: Wgraj program do sterownika i przetestuj jego działanie

Tak przygotowany program sterujący możesz wgrać do sterownika przy pomocy ikony Download. Upewnij się, że sterownik jest w trybie RUN.

Dopilnuj, aby na pasku podglądu kodu nie znajdowały się więcej niż 4 otwarte podprogramy – zamknij niepotrzebne z nich. Następnie przejdź do zakładki Debug i uruchom tryb Debug Mode oraz okno Data Watch.

W celu przetestowania działania programu, w oknie Data Watch dodaj następujące zmienne:

Następny odcinek: Jak zliczać impulsy i konfigurować liczniki?

Autor artykułu:


Jacek Dynak

Praktykant ASTOR

Student IV roku kierunku „automatyka i robotyka” na Politechnice Krakowskiej

Newsletter Poradnika Automatyka

Czytaj trendy i inspiracje, podstawy automatyki, automatykę w praktyce

Please wait...

Dziękujemy za zapis do newslettera!

Czy ten artykuł był dla Ciebie przydatny?

Średnia ocena artykułu: 0 / 5. Ilość ocen: 0

Ten artykuł nie był jeszcze oceniony.

Zadaj pytanie

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *