Programowanie w języku ST
Kurs programowania PACSystems RSTi-EP CPE200 (odc. 10)
Kontakt w sprawie artykułu: Mateusz Leszczyński - 2023-03-10
Z tego artykułu dowiesz się:
- jakie są podstawowe zasady pisania programów w języku ST,
- jak napisać proste programy.
Osobom programującym w językach wysokiego poziomu, takich jak C++ czy Python, opanowanie języka ST nie powinno nastręczać żadnych problemów. Jest on podobny, odróżniają go szczegóły składni poszczególnych funkcji. W tym odcinku poznasz podstawowe zasady pisania programów w języku ST, napiszesz podstawowe programy, a także program do obsługi naszego zestawu szkoleniowego. Powinien on działać identycznie, jak w przypadku języka LD, dzięki czemu łatwo będzie porównać oba programy.
Jeżeli jest to twoje pierwsze spotkanie z tego typu językiem, krótkie podsumowanie podstaw znajdziesz w dodatkowym odcinku 10.1.
W tym odcinku zostaną użyte fizyczne wejścia oraz wyjścia z zestawu szkoleniowego, zarówno w programach przykładowych jak i w programie finalnym.
Kurs programowania PACSystems RSTi-EP CPE200
1. Budowa i przeznaczenie kontrolerów PACSystems RSTi-EP.2. Instalacja PAC Machine Edition 10. Przygotowanie karty sieciowej PC do pracy ze sterownikiem PLC.
3. Wygląd, funkcjonalność i dostosowywanie środowiska PAC Machine Edition.
4. Założenie projektu i podsystemu. Backup oraz restore projektu.
5. Konfiguracja sprzętowa kontrolera PACSystems RSTi-EP. Konfiguracja komunikacji w kontrolerze.
6. Wyszukiwanie oraz zmiana IP urządzeń poprzez sieć PROFINET. Konfiguracja węzła oddalonego RSTi-EP.
7. Programowanie kontrolera w języku LD. Przykładowy program ze standardowymi blokami funkcyjnymi.
8. Programowanie kontrolera w języku LD. Przygotowanie bloku UDFB. Obsługa Toolchest Drawer.
9. Programowanie online z wykorzystaniem funkcji Test Mode.
10. Programowanie w języku ST.
11. Najczęściej spotykane błędy podczas programowania w środowisku PAC Machine Edition.
Odcinki dodatkowe:
7.1 Podstawowe funkcje i symboli w języku LD.10.1 Podstawy programowania w języku ST.
Dodatkowe materiały i lekcje dla kursantów:
Komunikacja sterownika CPE100 z HMI QuickPanel+. Stworzenie pierwszej wizualizacji.Zmienne w języku ST
Tworzenie zmiennych odbywa się identycznie, jak w przypadku języka LD z odcinka 7. Do stworzonych już zmiennych dodamy zmienną typu INT do zliczania, zmienną Bool, oraz zmienną typu DINT do liczenia czasu. Nasza tabela zmiennych prezentuje się następująco:
Tworzenie bloku w języku ST
Aby tworzyć w języku ST, musisz utworzyć blok w tym języku. Możesz go stworzyć poprzez naciśnięcie prawym klawiszem myszy na Program Blocks, a następnie wybranie z menu kontekstowego kolejno „New” i „ST block”:
Po utworzeniu bloku ST możesz zacząć w nim tworzyć program. Wgrywanie programu w ST do sterownika odbywa się identycznie, jak pokazano w odcinku 7 na przykładzie języku LD. Musisz jednak pamiętać, że należy wywołać blok w głównym _MAIN. W celu wywołania go przeciągnij blok do _MAIN, a następnie go podłącz:
Edytor w języku ST
W celu ułatwienia czytelności programu edytor języka ST stosuje kolorowanie składni:
- Niebieski – polecenia, słowa kluczowe
- Brązowy – zmienne już zdefiniowane
- Czarny, pogrubiony, kursywa – zmienne jeszcze niezidentyfikowane
- Zielony – łańcuchy tekstowe
- Różowy – wartości stałe
Przykładowy fragment kodu może wyglądać tak:
Przykładowe podstawowe programy w języku ST
Zapalanie diody
Kiedy na Przycisk_lewy pojawi się logiczna jedynka, to na Dioda_zielona zostanie wystawiona jedynka. Jeżeli nie użyjesz „else”, dioda_zielona nigdy nie zgaśnie.
Zapalanie i gaszenie diody dwoma przyciskami
Kiedy na Przycisk_prawy pojawi się logiczna jedynka, to Dioda_zielona się zaświeci. Kiedy na Przycisk_lewy pojawi się logiczna jedynka, to Dioda_zielona zgaśnie.
Przykładowy program z Timerem TON
Z odcinka 7.1 wiesz już, jak działają poszczególne timery i jak wyglądają ich przebiegi. Zasada ich działania w języku ST jest taka sama. Musisz jednak uważać na resetowanie timera, kiedy umieszczasz go w pętli, ponieważ pętla może się nigdy nie wykonać i zegar nie zostanie zresetowany.
Aby dodać Timer, kliknij prawym klawiszem myszy na obszarze Variables, a następnie wybierz „New Variables” i opcję „Function Block”. Następnie znajdź na liście potrzebny Timer i go wybierz. Po wybraniu możesz go nazwać – tą nazwą będziesz go wywoływać w programie. Pamiętaj, że możesz również stworzyć zmienną poprzez wpisanie jej w okno robocze, a następnie odnaleźć ją w Variables i wprowadzić adresy lub wybrać funkcję.
Teraz należy go wywołać w ekranie roboczym i przypisać mu zmienne następująco:
IN – zmienna aktywująca zegar
PT – czas, w tym wypadku czas opóźnienia załączenia wyjścia Q
Q – Wyjście z zegara które zegar będzie ustawiał
Jest to jedna linijka kodu, a równocześnie działający kod programu, który się wykona, kiedy na Przycisk_prawy przez 3000 ms pojawi się nieprzerwana logiczna jedynka. wtedy na wyjściu Dioda_zielona również pojawi się jedynka i będzie utrzymywana, dopóki na Przycisk_prawy jest jedynka.
Przykładowy program z zliczaniem zbocza narastającego
W języku ST nie ma wbudowanego gotowego licznika, jednak można go bardzo prosto stworzyć. Na początku musisz wykorzystać funkcję R_Trig, służącą do wykrywania zbocza narastającego. Znajduje się w tym samym miejscu, gdzie znaleźliśmy Timer. Po jego dodaniu możesz go również nazwać (w naszym przypadku będzie to „liczymy”) i wywołać w ten sam sposób:
Funkcja wykrywa zbocza narastające pojawiające się w Czujnik_optyczny, Za każdym razem, kiedy pojawi się takie zbocze, na zmiennej „liczba” jest wystawiana logiczna jedynka. Każde takie wystąpienie jest zliczane w zmiennej „ile”:
Zmienna „ile” będzie powiększana przy każdym wykryciu zbocza. Możemy ją zresetować, przypisując jej zero:
Teraz licznik zacznie ponownie zliczać od zera do chwili zresetowania
Program przy użyciu zestawu szkoleniowego
Opis stanowiska:
- 2 przyciski N/O
- 2 czujniki:
- Indukcyjny
- Optyczny
- 2 diody
- Silnik (Motoreduktor)
Opis działania:
Podczas działania programu na taśmie będą poruszały się przedmioty, które będą zliczane przez czujnik optyczny, oraz sprawdzane przez czujnik indukcyjny (czy zawierają w sobie metal). Po zliczeniu 4 przedmiotów taśma będzie się zatrzymywać, podobnie po wykryciu metalowego obiektu.
Opis programu:
Po naciśnięciu przycisku prawego uruchamia się silnik, a przycisk lewy odpowiada za jego wyłączenie. Kiedy silnik jest włączony i taśma porusza się, świeci się zielona dioda. Kiedy silnik nie działa, zaświeci się czerwona dioda.
Program dzięki czujnikowi optycznemu zlicza liczbę paczek przejeżdżających po taśmie i za każdym razem, gdy paczka zostanie wykryta, silnik wyłącza się na 5 s, aby po tym czasie załączyć się z powrotem. Drugi czujnik odpowiada za wykrywanie metalowych przedmiotów, które nie powinny były się znaleźć na taśmie. W momencie wykrycia taśma zatrzymuje się, a użytkownik musi usunąć element i ponownie nacisnąć przycisk uruchamiający silnik. Po zliczeniu 4 paczek taśma zatrzymuje się. W celu uruchomienia należy przycisnąć oba przyciski na raz.
Program ST:
Podsumowanie
Już wiesz, jak wyglądają programy w języku ST. Teraz możesz przejść do bardziej skomplikowanych funkcji. Możesz rozszerzać swój program o bloki funkcyjne, które omówiliśmy we wcześniejszych odcinkach.
W kolejnym odcinku: Najczęściej spotykane błędy podczas programowania w środowisku PAC Machine Edition
- jakie są najczęściej pojawiające się błędy podczas programowania w środowisku PAC Machine Edition,
- jakie są sposoby ich uniknięcia lub usunięcia.