Strona główna ASTOR
Automatyka w praktyce

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.

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.

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.

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 *