Instrukcja IF, THEN + Ćwiczenie
Plik projektu: M3L10 – Instrukcja IF, THEN + Ćwiczenie
Instrukcja warunkowa IF … ELSE
Możliwość rozgałęzienia nadaje elastyczność dla kodu programu. Instrukcja IF kontroluje przepływ programu w zależności czy będzie spełniony warunek. Przykład przedstawia poniższy kod
1
2
3
|
IF (warunek) THEN zadanie1; END_IF; |
Instrukcja IF różni się od znanej z języka C dodatkowym słówkiem THEN. Działanie jest takie samo. Warunek może być dowolnym wyrażeniem. Wynikiem po sprawdzeniu warunku jest prawda albo fałsz. Jeżeli warunek jest spełniony (TRUE), wówczas zadanie1 jest wykonywane. Gdy warunek jest fałszywy (FALSE), wówczas wykonywanie programu przechodzi do END_IF które kończy instrukcję warunkowo. Następnie jest wykonywana dalsza część programu. Rozgałęziona wersja instrukcji IF została przedstawiona na poniższym kodzie
1
2
3
4
5
|
IF (warunek) THEN zadanie1; ELSE zadanie2; END_IF; |
Sytuacja jest podobna do przypadku poprzedniego. Gdy warunek jest spełniony, wówczas jest wykonywane zadanie1, gdy warunek jest fałszywy, wówczas jest realizowane zadanie2. Oczywiście można po zadaniu1 dodać np. zadanieA. Przykład został przedstawiony poniżej
1
2
3
4
5
6
7
|
IF (#Przycisk = TRUE ) THEN // wciśnięto przycisk #SwiatloZielone := TRUE ; #SwiatloCzerwone := FALSE ; ELSE #SwiatloZielone := FALSE ; #SwiatloCzerwone := TRUE ; END_IF; |
Jeżeli naciśniemy przycisk (sygnał zmieni logiczny poziom z niskiego na wysoki) wówczas zostanie zapalone zielone światło sygnalizujące naciśnięcie oraz zgaszone światło czerwone. Gdy przycisk nie będzie wciśnięty, wówczas zostanie zapalone światło czerwone, natomiast światło zielone zostanie zgaszone. Warunek Przycisk = TRUE lepiej obrazuje, że interesuje nas właśnie ten stan.
Należy podkreślić, że instrukcje IF mogą być zagnieżdżone, co przedstawia poniższy kod programu
1
2
3
4
5
6
7
|
IF (#PoziomWody >= 50 ) THEN IF (#PrzyciskWlaczPompa = TRUE ) THEN #Pompa := TRUE END_IF; ELSE #Pompa := FALSE ; END_IF; |
W przypadku gdy woda przekroczy lub będzie równa 50% pojemności zbiornika, wówczas operator może włączyć pompę w celu zmniejszenia poziomu wody. Gdy poziom wody będzie mniejszy niż 50%, wówczas pompa się wyłączy.
Bonus:
Źródło : s7-scl.pl, Przewodnik programowania Siemens