Zobacz wszystkie

Kategorie

Programowanie PLC od podstaw – kurs dla automatyków i elektryków odc.4 – Jak korzystać ze styków, cewek i bloków operacji arytmetycznych w programie sterującym?

Startujemy z pisaniem programu w języku LAD! Sprawdź, jak utworzyć prostą logikę, wgrać program i monitorować wartości wykorzystanych zmiennych.

Przyszedł moment na jeden z najciekawszych momentów kursu, szczególnie jeśli nie miałeś/aś okazji programować w języku LAD. Stworzysz teraz pierwszy rozbudowany program logiczny wykorzystujący podstawowe elementy języka drabinkowego.

Na przykładzie sterowania zaworami zbiorników nauczysz się tworzyć logikę programu oraz symulację procesów używając styków, cewek oraz bloków operacji arytmetycznych. Zapraszamy więc do zgłębienia tej wiedzy i zdobycia kolejnych umiejętności!

  Krok 1: Jakie są podstawowe elementy języka drabinkowego?

  • Styki – służą do sprawdzania stanu logicznego bitów im przypisanych
  • Styk normalnie otwarty – przesyła sygnał, jeżeli związana z nim zmienna ma wartość 1 (ON).
  • Styk normalnie zamknięty – przesyła sygnał, jeżeli związana z nim zmienna ma wartość 0 (OFF).
  • Przekaźniki (cewki) – służą do ustawiania stanów bitów im przypisany
  • Przekaźnik chwilowy o stykach otwartych – ustawia wartość przypisanej mu zmiennej na 1 w momencie doprowadzenia do niego sygnału.
  • Przekaźnik chwilowy o stykach zamkniętych – ustawia wartość przypisanej mu zmiennej na 0 w momencie doprowadzenia do niego sygnału.

 

  • Przekaźnik uaktywniany zboczem narastającym sygnału – zmiana stanu sygnału z 0 na 1 powoduje ustawienie zmiennej powiązanej z przekaźnikiem na 1 na okres jednego cyklu wykonywania programu sterującego. (Zbocze narastające – zmiana stanu sygnału z 0 na 1. )

 

  • Przekaźnik uaktywniany zboczem opadającym sygnału – zmiana stanu sygnału z 1 na 0 powoduje ustawienie zmiennej powiązanej z przekaźnikiem na 1 na okres jednego cyklu wykonywania programu sterującego. (Zbocze opadające– zmiana stanu sygnału z 1 na 0.)

 

  • Przekaźnik – zatrzask SET – doprowadzenie sygnału do tego przekaźnika powoduje ustawienie wartości związanej z nim zmiennej na 1. Zmienna zachowuje tę wartość do momentu jej zmiany za pomocą przekaźnika Reset.

 

  • Przekaźnik – zatrzask RESET – doprowadzenie sygnału do tego przekaźnika powoduje ustawienie wartości związanej z nim zmiennej na 0. Zmienna zachowuje tę wartość do momentu jej zmiany za pomocą przekaźnika Set.

 

Bloki operacji arytmetycznych – realizują funkcje matematyczne parametrów

  • Blok funkcyjny dodawania Add – dodaje parametr IN1 i IN2, a wynik zapisuje jako parametr Q:

Q = IN1 + IN2

 

  • Blok funkcyjny odejmowania Sub – odejmuje parametr IN2 od parametru IN1 i wynik zapisuje do parametru Q:

Q = IN1 – IN2

 

  • Blok funkcyjny mnożenia Mul – mnoży parametry IN1 i IN2, a wynik zapisuje do parametru Q:

Q = IN1 * IN2

 

  • Blok funkcyjny dzielenia Div – dzieli parametr IN1 przez IN2, a wynik zapisuje do parametru Q:

Q = IN1 / IN2

W przypadku wartości INT i DINT, część ułamkowa wyniku jest odrzucana.

 

  • Blok funkcyjny modulo (MOD) – dzieli parametr IN1 przez IN2, a resztę z dzielenia zapisuje do parametru Q:

Q = część ułamkowa (IN1/IN2)

 

  • Blok funkcyjny pierwiastek kwadratowy – oblicza pierwiastek kwadratowy z parametru IN1, a wynik zapisuje do parametru Q.

Q = pierwiastek kwadratowy (IN1)

Argumentami tego bloku powinny być zwykle wartości typu REAL, tak by wynik mógł być liczbą zmiennoprzecinkową. Jako argument możesz podać wartość typu INT lub DINT, ale w przypadku, gdy w wyniku działania otrzymasz wartość niecałkowitą, część ułamkowa będzie odrzucona, gdyż wartość Q jest wtedy również liczbą całkowitą.

 

  • Blok funkcyjny wartość bezwzględna (ABS) – odrzuca znak parametru IN1 i wynik zapisuje do parametru Q. Wynik działania jest więc zawsze liczbą dodatnią.

Q = wartość bezwzględna (IN1)

 

Krok 2: Jakie zadanie będzie realizowała tworzona aplikacja?

Aplikacja będzie składała się z 3 zbiorników oraz z 5 zaworów – 2 napełniających oraz 3 opróżniających. Funkcje arytmetyczne wykorzystasz do symulacji napełniania i opróżniania zbiorników. Dodawanie i odejmowanie wartości do/od rejestrów przypisanych odpowiednim zbiornikom będzie realizowane w określonych interwałach czasowych.

Stan zaworów będzie kontrolowany przez odpowiednie styki. Otwarcie zaworu będzie następowało po wykryciu przez styk wartości zmiennej równiej 1. Zawór będzie natomiast zamknięty, jeśli wartość zmiennej badanej przez styk będzie równa 0.

Przepływ cieczy do zbiornika (dodawanie i odejmowanie wartości rejestru zbiornika) będzie sterowane przez zawory (styki).

Aby zwiększyć czytelność programu, logikę dotyczącą poszczególnych zbiorników będziesz umieszczać w osobnych podprogramach.

 

Krok 3: Jak utworzyć nowy podprogram w środowisku Cscape?

Aby utworzyć nowy podprogram, kliknij prawym klawiszem myszy na Main Loop Modules i z menu kontekstowego wybierz New Enhanced Ladder Logic Block, a następnie skonfiguruj jego nazwę jako Zbiornik_1.

 

Krok 4: Stworzenie programu sterującego napełnianiem i opróżnianiem zbiorników

Napiszemy teraz kod sterujący napełnianiem i opróżnianiem tego zbiornika. W tym celu wstaw kolejno dwa styki normalnie otwarte i blok dodawania.

Do pierwszego styku przypisz zmienną Impuls_100ms a do drugiego Zawor_napelniajacy_ZB1.

Klikając dwukrotnie na bloczek dodawania, uzupełnij parametry operacji dodawania. Pierwszym krokiem jest zmiana typu na REAL, gdyż zmienne, na których blok będzie operował, mają właśnie taki typ.

Kolejno, do parametru IN1 przypisz Zbiornik_1, do parametru IN2 przypisz wartość 0.1 oraz do parametru wyjściowego również przypisz zmienną Zbiornik_1.

W ten sposób po otwarciu zaworu napełniającego zawartość zbiornika będzie zwiększana co 100 ms o wartość 0.1.

Kolejnym krokiem jest napisanie logiki związanej z opróżnianiem zbiornika.

Ponownie wstaw dwa styki normalnie otwarte oraz blok odejmowania.

Do pierwszego styku przypisz zmienną Impuls_100ms a do drugiego Zawor_oprozniajacy_ZB1.

Klikając dwukrotnie na blok odejmowania, uzupełnij parametry. Najważniejsza jest zmiana typu na REAL, a następnie przypisanie zmiennych: do parametru IN1 przypisz Zbiornik_1, do parametru IN2 przypisz wartość 0.1 oraz do parametru wyjściowego również zmienną Zbiornik_1.

W ten sposób po otwarciu zaworu opróżniającego zawartość zbiornika będzie zmniejszana co 100 ms o wartość 0.1.

  Krok 5: Stworzenie kodu dla kolejnych zbiorników. Jak kopiować i przenosić poszczególne fragmenty drabinki?

Przejdźmy do stworzenia analogicznej logiki dla kolejnych zbiorników.

Stwórz nowy podprogram o nazwie Zbiornik_2.

Z uwagi na fakt, że podprogram dla tego zbiornika różni się tylko zmiennymi i rejestrami, na których pracuje, można kod napisany dla zbiornika 1 skopiować i wkleić, a następnie zmienić odpowiednie parametry. W tym celu przejdź do podprogramu Zbiornik_1, zaznacz stworzony kod i skopiuj go skrótem klawiszowym Ctrl+C lub wybierając z menu kontekstowego opcję Copy.

 

Chcesz nauczyć się programować sterowniki PLC?

Wszystkie odcinki kursu, bezpłatne oprogramowanie oraz dodatkowe materiały  znajdziesz na stronie: https://www.astor.com.pl/poradnikautomatyka/kurs-programowania-plc-od-podstaw-dla-elektrykow-i-automatykow/

 

Sprawdź pozostałe bezpłatne kursy i poradniki na: https://www.astor.com.pl/poradnikautomatyka/

 

Zapytania ofertowe
Programowanie PLC od podstaw – kurs dla automatyków i elektryków odc.4 – Jak korzystać ze styków, cewek i bloków operacji arytmetycznych w programie sterującym?
Zapytaj o produkt