Strona główna ASTOR
Automatyka w praktyce

Programowanie kontrolera w języku LD. Przykładowy program ze standardowymi blokami funkcyjnymi
Kurs programowania PACSystems RSTi-EP CPE200 (odc. 7)

Kontakt w sprawie artykułu: Mateusz Leszczyński - 2023-02-04

Z tego artykułu dowiesz się:

  • jak programować sterownik w języku LD,
  • wprowadzać i nazywać zmienne,
  • jak wgrać program do sterownika.

W tym odcinku nauczysz się, jak programować sterownik w języku LD, wprowadzać i nazywać zmienne oraz jak wgrać program do sterownika. Nim przejdziesz do praktycznych informacji, kilka słów na temat języka LD.

LD, czyli Ladder Diagram, jest to język graficzny drabinkowy, który jest jednym z pierwszych języków szeroko stosowanych w sterownikach PLC. Ma on postać zbliżoną do schematów elektrycznych, w których obwody zamykają się pomiędzy dwiema liniami zasilania, tworząc szczeble, od których wziął swoją nazwę.

Posługując się tym językiem jesteś w stanie napisać wiele programów. W tym szkoleniu zobaczysz program obsługujący zestaw szkoleniowy, prezentujący przenośnik taśmowy, oraz kilka mniejszych programów w celu lepszego zobrazowania języka LD.

W materiale dodatkowym zawarte są podstawowe informacje dotyczące języka LD, jeżeli je znasz przejdź bezpośrednio do programowania, jeśli chcesz się nauczyć lub przypomnieć sobie podstawy, zostały one omówione w dodatkowym odcinku 7.1.

Programowanie

Aby zacząć programować, otwórz _Main i jego okno robocze.

Pamiętaj! W celu pokazania przykładowych programów zostaną one stworzone w _Main, jednak podczas tworzenia większych i skomplikowanych programów _Main służy głownie do wywoływania innych bloków. Musisz pamiętać, że _Main jest blokiem głównym, który niezależnie od zawartości innych bloków zawsze się wykona.

Teraz masz możliwość przeciągania i dodawania różnych funkcji, cewek i styków.

Tworzenie zmiennych

Nim zaczniesz tworzyć program, warto na początku stworzyć odpowiednie zmienne. Możesz zrobić to przed programowaniem lub podczas niego, jednak kiedy znasz fizyczne wyjścia i wejścia, wygodniej to zrobić przed programowaniem.

Warto wiedzieć, że możesz stworzyć również zmienne symboliczne, bez wpisywania ich konkretnych adresów. Zmienne te będą przechowywać informacje wewnątrz programu.

Podczas wszystkich odcinków zostaną użyte te same nazwy i zmienne, a będą to:

Dodano cztery zmienne pomocnicze, będą one potrzebne podczas pisania programu na zestaw szkoleniowy. Są to zmienne które nie mają fizycznych wejść/wyjść, a służą najczęściej do przekazywania informacji wewnątrz programu. Możesz stworzyć zmienne na dwa sposoby.

Sposób 1

Możesz stworzyć zmienne w zakładce Variables. Kliknij prawym klawiszem myszy na obszarze w zakładce i wybierz New Variable, a następnie wybierz jej typ. Po pojawieniu się zmiennej nadaj jej nazwę.

Następnie w oknie Inspector wprowadź adres fizyczny, jeżeli takowy ma posiadać. Pamiętaj, aby wprowadzić ją ze znakiem %. Nie musisz wpisywać wszystkich zer wystarczy że wprowadzisz odpowiednią liczbę.

Pierwsza litera odpowiada rodzajowi zmiennej

Q – zmienna wyjściowa

I – zmienna wejściowa

M – zmienna pomocnicza

Sposób 2

Możesz tworzyć zmienne na bieżąco podczas tworzenia programu. Najpierw nadaj nazwę, a następnie wprowadź adres.

Dodawanie cewek i styków

Aby umieścić cewki oraz styki w programie, możemy je znaleźć w dwóch miejscach. Z odcinka 3 już wiesz, że w zakładce „Ladder Edition” znajdziesz podstawowe symbole. Ich wywołanie jest proste: należy wybrać symbol, a następnie kliknąć na ekranie roboczym w miejscu, gdzie element ma się pojawić. Następnie nazwij stworzoną zmienną.

Teraz wystarczy dodać cewkę i je ze sobą połączyć. Środowisko wykonuję łączenie automatycznie jednak czasem należy to zrobić ręcznie. Ważne jest żeby wszystkie dodane symbole były połączone z pionowymi liniami po dwóch stronach.

Symbole możesz również dodawać z ToolChest. Aby to zrobić, należy wybrać zakładkę LD Instructions, a następnie wybrać odpowiedni folder. Środowisko posiada dużą bazę bloków, w tym funkcje matematyczne, porównania, move, scale itd. Do programów w tym odcinku wystarczy na razie znać 4 foldery:

  • Coils – cewki
  • Contacts – styki
  • Timers – zegary
  • Countes – liczniki

Wybierz jeden z folderów, a następnie przeciągnij symbol na ekran roboczy i go nazwij:

Wgrywanie programu do sterownika

Kiedy napiszesz już program, musisz go wgrać na swój sterownik. Jak połączyć się ze sterownikiem, wiesz już z odcinka 4. Teraz połącz się ze sterownikiem, wejdź w Programmer Mode, a następnie kliknij opcję „Download”, wybierz, co ma być wgrane – w tym wypadku Logic i Hardware configuration – i kliknij „OK”. Program zostanie wgrany.

Jeżeli nie pojawiły się żadne błędy, wgrywanie przebiegło pomyślnie.  Ustaw tryb sterownika na Start. W celu sprawdzenia, czy logika została poprawnie wgrana, możesz spojrzeć na log kompilacji i pobierania, czyli na pomarańczowy pasek na dole ekranu:

Jeśli widnieje tam napis Logic EQ, oznacza to, że logika została wgrana poprawnie. Jeżeli widzisz tam NE, oznacza to, że w sterowniku nie ma Twojej logiki lub została błędnie wgrana.

Teraz możesz zacząć tworzyć pierwsze programy. Przed przystąpieniem do dalszych działań dodaj pozostałe zmienne z tabeli. Będą one potrzebne w kolejnych programach.

Przykładowe programy z użyciem wyłącznie cewek i styków:

Poniżej zobaczysz przykładowe proste programy, które pomogą zrozumieć działanie i sposób budowy logiki drabinkowej.

Program 1

Kiedy na styku Przycisk_prawy pojawi się logiczna „1”, to wtedy na cewce Dioda_zielona zostanie wystawiona logiczna „1”.

Program 2

Kiedy na Przycisk_prawy pojawi się logiczna „1” to wtedy Dioda_zielona zostanie ustawiona (Set) na „1”. Kiedy na Przycisk_lewy pojawi się logiczna „1”, to wtedy Dioda_zielona zostanie zresetowana, czyli ustawiona na „0”.

Przykładowy program z użyciem zegara

Aby wstawić Timer, możesz znaleźć go w Toolchest, w zakładce LD Instructions lub w zakładce głównej Ladder Edition. Wybierz odpowiedni timer, a następnie przeciągnij go na obszar roboczy.

Teraz możesz go zadeklarować, co umożliwi Ci później korzystanie z niego, wprowadzić czas oraz podłączyć do niego potrzebne styki i cewki. Pamiętaj, że zegar zlicza czas w milisekundach.

Po wykonaniu tych kroków powinieneś otrzymać taki program:

Kiedy na styku Przycisk_prawy pojawi się logiczna „1” przez 5000 ms, to następnie na cewce Dioda_zielona zostanie wystawiona „1” logiczna i będzie utrzymywana do momentu, kiedy na styku Dioda_zielona jest nieprzerwanie logiczna „1”.

Przykładowy program z użyciem licznika

Pamiętaj, że przy użyciu liczników warto się zastanowić, jaki styk ustawić na wejście. Zwykły styk może powodować ciągłe naliczanie, niekoniecznie zgodne z tym, czego oczekujesz. Bardziej odpowiednie w tym wypadku są styki wykrywające zbocza narastające – dokładnie określają, kiedy dana wartość ma być policzona i nie doprowadzą do liczenia nadprogramowego, nawet przy dłuższym przytrzymaniu przycisku.

Licznik zlicza pojawiające się sygnały na styku Przycisk_prawy – jeżeli pojawi się takie zbocze trzy razy, to wtedy licznik przepuści sygnał dalej i zaświeci się cewka Dioda_zielona. W celu zresetowania licznika należy uruchomić styk Przycisk_lewy.

Przykładowy program przy użyciu styków, cewek, zegarów i liczników

Opis programu:

Po przytrzymaniu przycisku Przycisk_prawy przez 5000 ms ustawiana (Set) jest cewka „Dioda_zielona”, po upływie 1000 ms cewka dioda_zielona jest resetowana, a cewka Dioda_czerwona ustawiana. W celu zresetowania cewki Dioda_czerwona przycisk_prawy musi zostać przyciśnięty dwa razy. Przycisk_lewy resetuje licznik.

Pamiętaj! Oba zegary nie mogą być nazwane tak samo. Jeżeli tak będzie, w trakcie działania programu Timery te będą załączać się w tych samych momentach, niezależnie od warunków wejściowych.

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ą jechały przedmioty, które będą zliczane przez czujnik optyczny, oraz sprawdzane przez czujnik indukcyjny (czy zawierają w sobie metal). Po zliczeniu 4 przedmiotów, jak również po wykryciu metalowego obiektu, taśma będzie się zatrzymywać.

Opis programu:

Po załączeniu przycisku prawego uruchamia się silnik, a przycisk lewy odpowiada za wyłączenie. Kiedy silnik jest włączony i taśma porusza się, świeci się zielona dioda, kiedy nie działa, ś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 sekund, żeby 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ąć takowy 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.

Budowa programu:

W programie wykorzystano bloki funkcyjne opisane powyżej oraz zmienne zdeklarowane na początku. Sama budowa i dodawanie bloków odbywają się jak przy opisanych przykładach. Możesz prześledzić poniższy program i stworzyć go u siebie, jednak zachęcam Cię na początku do samodzielnej próby budowy. ????

Program LD:

Podsumowanie

Teraz już wiesz, jak wygląda język LD, możesz śmiało budować o wiele bardziej skomplikowane programy. W następnych odcinku dowiesz się, jak stworzyć swój własny blok funkcyjny, który pozwoli Ci ponownie wykorzystywać raz napisany fragment programu w innych aplikacjach.

W kolejnym odcinku: Programowanie kontrolera w języku LD. Przygotowanie bloku UDFB. Obsługa Toolchest Drawer.

  • czym jest blok UDFB,
  • jak stworzyć własny blok UDFB,
  • jakie możliwości daje ToolChest.

Newsletter Poradnika Automatyka

Czytaj trendy i inspiracje, podstawy automatyki, automatykę w praktyce

Please wait...

Thank you for sign up!

Czy ten artykuł był dla Ciebie przydatny?

Średnia ocena artykułu: 5 / 5. Ilość ocen: 1

Ten artykuł nie był jeszcze oceniony.

Zadaj pytanie

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *