
Podstawy programowania w języku Structured Text (ST)
Jako jeden z języków programowania PLC według normy IEC-61131, Structured Text, czy po prostu ST, przypomina tradycyjne języki programowania takie jak Python czy Java. Zamiast bloków języków graficznych, jak LAD czy FBD, Structured Text to po prostu tekst!
Zalety i wady języka ST
Jak każdy język programowania, Structured Text ma swoje zalety i wady, a także powody, dla których programista może wybrać ST do swojego kolejnego projektu PLC, więc przejdźmy od razu do konkretów:
- Wysokopoziomowy język programowania
ST jest podobny do tradycyjnych wysokopoziomowych języków programowania, dzięki temu może być stosunkowo łatwy do nauczenia się i opracowania projektów PLC dla wielu osób, które mogą nie mieć doświadczenia w programowaniu PLC, ale mają doświadczenie w tradycyjnym kodowaniu. - Oparty na tekście
Znajdziesz tutaj znajome struktury rodem z języków wysokiego poziomu przeznaczone do kontroli przepływu programu typu: IF…ELSIF…ELSE czy CASE…OF. Dzięki temu w łatwy sposób uporządkujesz Twój program i będziesz pisał zaawansowane algorytmy. Taki program możesz łatwo modyfikować i debuggować, dzięki czemu przyśpieszysz swoją pracę. - Lekki język programowania
Ponieważ język ST jest z definicji oparty na tekście, oznacza to, że nie ma obciążającego interfejsu graficznego, co może pozwolić optymalizację programu pod względem zajętości pamięci. To sprawia, że ST jest idealnym kandydatem do większych programów PLC, gdzie pamięć jest na wagę złota.
Podstawowe zasady składni języka ST
Składnia Structured Text kieruje się kilkoma podstawowymi zasadami:
- Po pierwsze, wszystkie instrukcje w kończą się średnikiem.
- Spacje i tabulatory nie są wymagane, ale dobry programista nadal będzie ich używał dla czytelności.
- Ponadto, ST nie jest wrażliwy na wielkość liter, ale jeśli przypisujesz zmienną, znaną jako tag to używanie camelCase (ZaworKontrolny1) jest dobrą praktyką.
- Nazwy zmiennych zwykle deklarujemy w notacji węgierskiej tzn. dodajemy odpowiedni prefiks określający typ danej zmiennej np. xLampka – typ BOOL, iTemperatura – typ INT
Używanie komentarzy
Inną bardzo powszechną i użyteczną składnią ST jest użycie komentarza. Jako początkujący programista, używanie komentarzy jest niezbędne do tworzenia kodu, który może być z łatwością odczytany przez innych programistów. Pamiętaj jednak, że najważniejsze są dobre i czytelne nazwy zmiennych.
Oto przykład komentarza w programie:
(*PRZYKŁADOWY PROGRAM STEROWANIA POMPĄ*)
Jak widać, aby dodać komentarz, zaczynasz od lewego nawiasu, a następnie gwiazdki. Aby zamknąć komentarz, dodajesz kolejną gwiazdkę, a następnie prawy nawias.
Operatory w języku Structured Text
ST używa również operatorów do manipulowania danymi. Przykłady operatorów to operatory logiczne, takie jak AND, OR i NOT. Operator logiczny jest używany do porównywania danych logicznych i tworzenia z nich logiki.
Przykłady:
IF NOT xZaworKontrolny1_Zamkniety AND xZaworKontrolny1_Otwarty THEN
xPompaStart := TRUE;
END_IF
Jeżeli zawór nr 1 nie jest zamknięty i jest otwarty to pompa startuje.
IF xPrzyciskStart1 OR xPrzyciskStart2
AND (NOT xZaworKontrolny1_Zamkniety AND xZaworKontrolny1_Otwarty) THEN
xPompaStart := TRUE;
END_IF
Gdy wciśnięty jest przycisk start nr 1 lub przycisk start nr 2 i jeżeli zawór nr 1 nie jest zamknięty i jest otwarty to pompa startuje.
IF xPrzyciskStart1 OR xPrzyciskStart2
AND (NOT xZaworKontrolny1_Zamkniety AND xZaworKontrolny1_Otwarty) THEN
xPompaStart := TRUE;
ELSIF xPrzyciskStart1 OR xPrzyciskStart2 AND (xZaworKontrolny1_Zamkniety
AND NOT xZaworKontrolny1_Otwarty) THEN
xPompaStart := FALSE;
END_IF
Działa analogicznie do poprzedniego przykładu, lecz dodaliśmy tutaj operator „ELSIF”, więc jeśli warunek „IF” się nie jest spełniony to, sprawdzamy warunek dla „ELSIF” – jeśli spełniony to uruchamiamy pompę, a jeśli nie?
To wtedy musimy zastosować dodatkowo operator „ELSE” na wszystkie pozostałe możliwe przypadki:
IF xPrzyciskStart1 OR xPrzyciskStart2
AND (NOT xZaworKontrolny1_Zamkniety AND xZaworKontrolny1_Otwarty) THEN
xPompaStart := TRUE;
xLampaAlarmowa := FALSE;
ELSIF xPrzyciskStart1 OR xPrzyciskStart2
AND (xZaworKontrolny1_Zamkniety AND NOT xZaworKontrolny1_Otwarty) THEN
xPompaStart := FALSE;
xLampaAlarmowa := FALSE;
ELSE
xPompaStop := FALSE;
xLampaAlarmowa := TRUE;
END_IF
Gdy warunki „IF” oraz „ELSIF” się nie spełnią to wykonuje się kod pod operatorem „ELSE”.
POBIERZ INFORMATOR PDF Z PODSTAWOWYMI INSTRUKCJAMI JĘZYKA STRUCTURED TEXT
Sprawdź poniżej przykładowe instrukcje w Structured Text







Dowiedz się więcej na temat programowania sterowników PLC w języku tekstowym SCL przerabiając nasz kurs –> https://www.controlbyte.pl/st/