Darmowy zarys kursu CODESYS
- Lekcja #1: Czym jest? Dlaczego powinieneś go znać?! – PART 1
- Lekcja #2: Jak zainstalować Codesys? – PART 2
- Lekcja #3: Napisz swój pierwszy program w Codesys: Structured Text – Part #3
- Lekcja #4: Jak stworzyć wizualizację Codesys w aplikacji? – Part #4
- Lekcja #5: Wprowadzenie do zmiennych w CODESYS – Part #5
- Lekcja #6: Struktury danych w CODESYS: Praktyczne zastosowanie tablic i struktur – Part #6
- Lekcja #7: Zaawansowane typy danych. Wyliczenia i zmienne lokalne vs. globalne – Part #7
- Lekcja #8: Operatory – Wprowadzenie i praktyczne zastosowania – Part #8
- Lekcja #9: Kontrola przepływu programu: IF, CASE i pętle – Part #9
Efektywne zarządzanie przepływem wykonania jest najważniejsze w programowaniu PLC. W CODESYS instrukcje warunkowe i pętle pozwalają systemom automatyzacji podejmować decyzje i dynamicznie wykonywać zadania. Ta sekcja omawia instrukcje IF, IF…ELSE, CASE…OF oraz pętlę FOR, przedstawiając przykłady ich zastosowania.
Wprowadzenie do kontroli przepływu programu
Instrukcje kontrolujące przepływ umożliwiają programistom wykonywanie określonych części programu w zależności od warunków. Jest to najważniejsze w obsłudze procesów podejmowania decyzji i optymalizacji powtarzalnych zadań w systemach automatyzacji.
Dlaczego używać kontroli przepływu?
- Podejmuj decyzje w czasie rzeczywistym na podstawie warunków wejściowych.
- Optymalizuj wydajność systemu, wykonując tylko niezbędną logikę.
- Zredukuj zbędny kod dzięki pętli i instrukcji warunkowych.
Instrukcja IF w CODESYS
Instrukcja IF jest najprostszą instrukcją warunkową. Wykonuje blok kodu tylko wtedy, gdy określony warunek jest TRUE.
Składnia:
Przykład: Prosta instrukcja IF
Wyjaśnienie: jeżeli zarówno xButton1, jak i xSensor są TRUE, licznik jest inkrementowany.
Testowanie warunku IF w symulatorze PLC
- Zaloguj się do symulatora PLC.
- Ustaw xButton1 na TRUE.
- Ustaw xSensor na TRUE.
- Obserwuj inkrementację iCounter.
Zrozumienie cyklu skanowania PLC
Cykl PLC określa, jak często logika jest wykonywana w systemie automatyzacji:
- Skanowanie wejść – Odczytuje statusy czujników i przełączników.
- Wykonanie programu – Wykonuje logikę na podstawie wejść.
- Aktualizacja wyjść – Wysyła sygnały do aktuatorów.
- Zadania porządkowe – Utrzymuje komunikację i funkcje wewnętrzne.
Ten cykl działa ciągle, zapewniając sterowanie automatyzacją w czasie rzeczywistym.
Zrozumienie cyklu wykonania PLC
Cykl wykonania PLC określa, jak często logika jest wykonywana w systemie automatyzacji. Każdy cykl składa się z następujących kroków:
- Skanowanie wejść – Odczytuje status czujników i przełączników.
- Wykonanie programu – Wykonuje logikę na podstawie warunków wejściowych.
- Aktualizacja wyjść – Wysyła sygnały sterujące do aktuatorów.
- Zadania porządkowe – Zarządza funkcjami wewnętrznymi systemu i komunikacją.
PLC wykonuje ten cykl ciągle w określonych odstępach czasowych, zapewniając sterowanie w czasie rzeczywistym nad procesami automatyzacji. W CODESYS programy są wykonywane cyklicznie, a odstęp czasu wykonania można dostosować w milisekundach.
Konfigurowanie cyklu wykonania w CODESYS
Aby kontrolować prędkość wykonania:
- Otwórz Konfigurację zadań.
- Kliknij na Główne zadanie.
- Zmień odstęp czasu wykonania (domyślnie: 20ms).
- Dostosuj go do 2000ms (2 sekundy), aby spowolnić wykonanie.
- Obserwuj efekt na prędkości wykonania programu.
Przy odstępie czasu 2000ms logika jest aktualizowana co 2 sekundy, co powoduje wolniejszą inkrementację liczników.
Implementacja IF…ELSE w CODESYS
Instrukcja IF…ELSE pozwala na strukturalne podejmowanie decyzji przez wykonanie różnych bloków kodu w zależności od warunków.
Składnia instrukcji IF…ELSE
Przykład: Użycie IF…ELSE z licznikami
Wyjaśnienie:
- Jeśli xButton1 jest naciśnięty, licznik jest inkrementowany.
- Jeśli xButton2 jest naciśnięty, licznik jest dekrementowany.
- Jeśli żaden przycisk nie jest naciśnięty, licznik resetuje się do 0.
Testowanie IF…ELSE w symulatorze PLC
- Zaloguj się do symulatora CODESYS.
- Naciśnij xButton1 → Obserwuj inkrementację iCounter.
- Naciśnij xButton2 → Obserwuj dekrementację iCounter.
- Zwolnij oba przyciski → Obserwuj, jak iCounter resetuje się do 0.
Debugowanie z punktami przerwania
CODESYS udostępnia narzędzie do debugowania, które pomaga w analizowaniu wykonania programu poprzez zatrzymywanie go w punktach przerwania.
Ustawianie punktu przerwania w CODESYS
- Kliknij prawym przyciskiem myszy na wybraną linię kodu.
- Wybierz Toggle Breakpoint.
- Uruchom program.
- PLC zatrzyma wykonanie, gdy osiągnie punkt przerwania.
Na tym etapie możesz użyć opcji Step Over, aby wykonać następny wiersz i analizować wykonanie logiki krok po kroku.
Analizowanie przepływu wykonania
- Jeśli pierwszy warunek jest spełniony, program wykonuje swój blok i pomija część ELSIF oraz ELSE.
- Jeśli pierwszy warunek jest FALSE, ocenia warunek ELSIF.
- Jeśli żaden z warunków nie jest spełniony, domyślnie wykonuje blok ELSE.
Używając punktów przerwania i debugowania krok po kroku, programiści mogą zidentyfikować błędy logiczne i zoptymalizować wykonanie programu.
Używanie instrukcji CASE do kontroli przepływu
Instrukcja CASE w CODESYS jest uporządkowaną alternatywą dla wielu instrukcji IF…ELSE. Pozwala programowi na wykonanie różnych bloków kodu w zależności od wartości jednej zmiennej, co czyni ją szczególnie przydatną w aplikacjach automatyzacji, gdzie należy ocenić wiele warunków.
Składnia instrukcji CASE
Wyjaśnienie:
- Jeśli iVar wynosi 0, Lamp 1 włącza się, a Lamp 2 wyłącza.
- Jeśli iVar wynosi 1, Lamp 2 włącza się, a Lamp 3 wyłącza.
- Jeśli iVar mieści się w zakresie od 10 do 20, Lamp 1 włącza się, a Lamp 2 wyłącza.
- Jeśli iVar nie pasuje do żadnego przypadku, wykonywana jest instrukcja ELSE, wyłączająca wszystkie lampy.
Testowanie instrukcji CASE w CODESYS
- Zaloguj się do symulatora PLC.
- Ustaw iVar := 0 → Lamp 1 powinno się włączyć.
- Ustaw iVar := 1 → Lamp 2 powinno się włączyć.
- Ustaw iVar := 15 → Lamp 1 powinno się włączyć.
- Ustaw iVar := 25 → Wszystkie lampy powinny się wyłączyć (uruchomiony przypadek ELSE).
Zalety używania instrukcji CASE
- Czystszy i bardziej czytelny kod w porównaniu do wielu warunków IF.
- Poprawiona wydajność wykonania, ponieważ oceniana jest tylko jedna zmienna.
- Łatwiejsze debugowanie dzięki strukturalnemu rozgałęzieniu.
Implementacja pętli FOR w CODESYS
Pętla FOR w CODESYS jest używana do powtarzania bloku kodu przez określoną liczbę iteracji. Jest to przydatne do obsługi tablic, obliczeń powtarzalnych i sekwencji automatyzacji.
Składnia pętli FOR
Wyjaśnienie:
- Pętla zaczyna się od 0 i kończy na 9.
- BY 1 inkrementuje licznik pętli o 1 w każdej iteracji.
- Każdemu elementowi tablicy aArray[iCounter] przypisywana jest wartość iVar + 10.
Deklarowanie tablicy
Aby używać tablic w pętli FOR, zadeklaruj je w następujący sposób:
Testowanie pętli FOR w CODESYS
- Zaloguj się do symulatora CODESYS.
- Zainicjuj iVar na wartość 5.
- Uruchom pętlę → Każdy element tablicy powinien przechować wartość iVar + 10 = 15.
- Zmień wartość iVar i ponownie uruchom pętlę → Obserwuj zmiany.
Zalety używania pętli FOR
- Automatyzuje zadania powtarzalne, zmniejszając wysiłek związany z ręcznym kodowaniem.
- Efektywnie przetwarza tablice bez konieczności wielokrotnego przypisywania.
- Zapewnia uporządkowane i zoptymalizowane wykonanie.
Debugowanie i praktyczne zastosowanie pętli FOR w CODESYS
Zrozumienie pętli FOR z debugowaniem
Pętla FOR w CODESYS jest używana do iteracji przez sekwencję i jest powszechnie stosowana w programowaniu automatyzacji do przetwarzania tablic, liczników i obliczeń strukturalnych. Używając debuggera w CODESYS, możemy analizować, jak pętla wykonuje się krok po kroku.
- Ustawienie punktu przerwania: Kliknij prawym przyciskiem myszy pierwszą linię pętli i wybierz Toggle Breakpoint.
Uruchomienie symulacji PLC: Zaloguj się do symulatora i uruchom program.
Użycie Step Over (F10): Umożliwia śledzenie, jak każda iteracja modyfikuje zmienne.
- Licznik pętli iCounter zaczyna się od 0 i inkrementuje się z każdą iteracją.
Pętla trwa, dopóki iCounter nie osiągnie wartości 9.
Na każdym kroku wykonywana jest operacja na elemencie tablicy.
Oryginalna implementacja
Każdy element tablicy aArray[iCounter] przechowuje wartość iVar + 10.
Modyfikowanie pętli dla dynamicznych obliczeń: Możemy zmodyfikować pętlę, aby dodać wartość licznika:
Teraz każda komórka w tablicy jest inkrementowana przez indeks pętli, co powoduje uzyskanie innego wyniku dla wszystkich elementu.
Wykonaj zmodyfikowaną pętlę FOR. Obserwuj zmiany w tablicy w czasie rzeczywistym, gdy wartości są dynamicznie aktualizowane.
Zresetuj wszystkie zmienne dzięki opcji Reset Warm, aby testować program od początku.
Praktyczne zastosowania pętli FOR w automatyzacji
Przetwarzanie danych czujników przechowywanych w tablicach:
Pętle FOR są używane do iteracji przez dane z czujników przechowywane w tablicach, umożliwiając ich przetwarzanie, analizę i podejmowanie decyzji na podstawie zebranych informacji.
Podsumowanie
Artykuł omawia najważniejsze instrukcje sterujące przepływem programu w CODESYS, takie jak IF, IF…ELSE, CASE…OF oraz pętlę FOR. Instrukcja IF pozwala na wykonanie określonego bloku kodu, gdy spełniony jest dany warunek, co jest przydatne do podejmowania decyzji w czasie rzeczywistym. Rozszerzenie IF…ELSE umożliwia wykonanie alternatywnego bloku kodu, gdy początkowy warunek nie jest spełniony, co pozwala na tworzenie bardziej złożonych scenariuszy decyzyjnych. Instrukcja CASE…OF jest używana do wyboru jednego z wielu bloków kodu na podstawie wartości zmiennej, upraszczając zarządzanie wieloma warunkami. Pętla FOR pozwala na wykonanie bloku kodu wielokrotnie przez określoną liczbę iteracji, co czyni ją wydajną przy pracy z tablicami lub zadaniami powtarzalnymi. Artykuł podkreśla również znaczenie cyklu skanowania PLC, który obejmuje odczyt wejść, wykonanie programu, aktualizację wyjść oraz wykonywanie zadań systemowych w celu zapewnienia ciągłej kontroli procesu. Dodatkowo przedstawiono techniki debugowania w CODESYS, takie jak ustawianie punktów przerwania, które pomagają w identyfikacji i rozwiązywaniu problemów w kodzie.
Darmowy zarys kursu CODESYS
- Lekcja #1: Czym jest? Dlaczego powinieneś go znać?! – PART 1
- Lekcja #2: Jak zainstalować Codesys? – PART 2
- Lekcja #3: Napisz swój pierwszy program w Codesys: Structured Text – Part #3
- Lekcja #4: Jak stworzyć wizualizację Codesys w aplikacji? – Part #4
- Lekcja #5: Wprowadzenie do zmiennych w CODESYS – Part #5
- Lekcja #6: Struktury danych w CODESYS: Praktyczne zastosowanie tablic i struktur – Part #6
- Lekcja #7: Zaawansowane typy danych. Wyliczenia i zmienne lokalne vs. globalne – Part #7
- Lekcja #8: Operatory – Wprowadzenie i praktyczne zastosowania – Part #8
- Lekcja #9: Kontrola przepływu programu: IF, CASE i pętle – Part #9