Jak zapewne wiesz, pisanie kodu programu nie opiera się tylko na wyjściach cyfrowych w sterowniku PLC. Należy także pobrać pewne informacje z obiektu (np. z czujników lub przycisków). Jak to zrobić w języku LAD?
Powiązanie sygnałów – styki
Zaczniemy od wykorzystania szablonu projektu, który jest dostępny tutaj.
Gdy otworzysz ten projekt, to zobaczysz sterownik S7-1200 dodany do projektu. Po otwarciu bloku OB1 zauważysz, że język jest inny niż omówiono w poprzednim wpisie. Ten język to FBD (ang. Functional Block Diagram), który jak widzisz też jest językiem graficznym. Zawsze istnieje możliwość zmiany pomiędzy językami. Wystarczy zaznaczyć blok OB1 i nacisnąć prawy klawisz myszki, co spowoduje pojawienie się menu kontekstowego przedstawionego na poniższym rysunku
Wybieramy Switch programming language i następnie LAD.
Przejdźmy do omówienia kolejnych elementów graficznych, które są zawsze wykorzystywane przy pisaniu kodu programu. W poprzednim wpisie została omówiona cewka. Jednak to nie są wszystkie dostępne.
Styki
W pasku ulubione znajdują się dwa elementy, które teraz przedstawię. Wygląd tych styków został przedstawiony na poniższym rysunku
Ogólnie można powiedzieć, że użycie styku w networku pozwala sprawdzić aktualny stan binarnego adresu, który jest powiązany z tym stykiem (np. stanu wejścia cyfrowego). Wykorzystując odpowiednie ułożenie styków w networku tworzy się logikę sterowania. W tym przypadku można również powiedzieć, że taki networki w języku LAD odwzorowuje schemat elektryczny.
Są dwa rodzaje styków:
– Normal Open (NO) – jest to pierwszy element (ramka niebieska) w pasku Ulubione. Taki styk „przewodzi prąd” tylko w momencie, gdy sygnał powiązany z tym stykiem jest w stanie wysokim,
– Normal Close (NC) – jest to drugi element (ramka pomarańczowa) w pasku Ulubione. użycie takiego styku spowoduje „przewodzenie prądu” wówczas, gdy sygnał powiązany z tym stykiem będzie w stanie niskim.
Styki NO oraz NC możesz wykorzystać także do sprawdzania również stanu innych zmiennych typu Bool.
Sterownik jest wykorzystywany do zbierania informacji z obiektu (sprawdzanie stanu sygnałów wejściowych) i na podstawie logiki napisanej przez programistę generowanie stanów dla sygnałów wyjściowych. Poznałeś przed właśnie styki, które służą do obsługi właśnie sygnałów wejściowych.
Projekt – Przenośnik
Teraz zrealizujemy projekt, który można czasami spotkać w fabryce. Jak to ma działać? Zobacz na tym wideo
Założenia projektowe są w tym wypadku bardzo proste. Gdy czujnik nie wykrywa żadnego obiektu, wówczas transporter powinien być uruchomiony. W momencie dojazdu pudełka do czujnika (następuje przecięcie wiązki pomiędzy czujnikiem a lusterkiem), wówczas transport (ruch rolek) powinien być zatrzymany.
Uruchomiamy narzędzie FactoryIO i należy otworzyć projekt From A to B. Przechodzimy do File -> Drivers i z listy DRIVER wybieramy Siemens S7-PLCSIM. Dzięki temu zobaczymy, jakie są sygnały na obiekcie. Dostępne sygnały przedstawia poniższy rysunek
W ten sposób wiemy, jakie tagi należy umieścić w projekcie TIA Portal (tablice PLCtags). Dodajemy dwie tablice (w drzewie projektu rozwijamy folder PLCtags) o nazwach Input oraz Output, co przedstawia poniższy rysunek
W tablicy Input zostały umieszczone sygnały wejściowe:
Sensor – sygnał z czujnika znajdującego się na końcu transportera (należy pamiętać, ze gdy czujnik nic nie wykrywa to wystawia stan wysoki)
FactoryIO_Running – uruchomienie symulacji (naciśnięcie przycisku PLAY) powoduje, że ten sygnał jest w stanie wysokim
Do tablicy Output został dodany sygnał
Conveyor – jest to sygnał, który uruchamia ruch rolek na transporterze. Aby uruchomić transporter to ten sygnał musi być w stanie wysokim
Mamy wszystkie potrzebne dane, aby napisać kod programu. Wystarczy napisać jeden network co przedstawia poniższy rysunek
W networku numer 2 następuje sprawdzenie, czy transporter jest pusty (czyli czy czujnik nie widzi żadnej przeszkody w swoim polu widzenia). Jeżeli taka sytuacja występuje, to z tego czujnika na wejściu sterownika PLC będzie stan wysoki (logiczne 1). Aby to rozpoznać, został wykorzystany styk NO. Gdy nastąpi taka chwila, to wyjście uruchamiające transporter będzie w stanie wysokim. Wynika to z faktu, że nastąpi przypisanie do cewki powiązanej (za pomocą nazwy symbolicznej Conveyor) z wyjściem sterującym rolkami transportera.
Gdy czujnik coś wykryje, wówczas na wejściu cyfrowym w PLC będzie stan niski (logiczne 0). To spowoduje, że warunek na styku NO nie będzie spełniony. I dzięki temu na wyjściu cyfrowym będzie stan niski, czyli nie ma ruchu transportera.
Uruchom symulator sterownika PLCSIM oraz symulację w FactoryIO i przetestuj, czy wszystko działa poprawnie. Aby podczas testów rozpocząć kolejny cykl (kolejny przejazd pudełka przez linię) naciśnij przycisk Reset (obok PLAY) w górnym pasku FactoryIO.
Projekt możesz pobrać pod tym adresem.
Poniższe wideo przedstawia uruchomienie tej aplikacji (chociaż film przedstawia też kilka dodatkowych zagadnień, które są potrzebne podczas rozruchu takiej aplikacji)
https://www.youtube.com/watch?v=30sCOqSgOLk
Praca domowa
- Przygotuj projekt do kolejnej aplikacji (po prostu skopiuj ten, na którym pracowałeś teraz)
- Skorzystamy z kolejnego projektu w FactoryIO czyli 2- From A to B (Set and Reset). Czy już teraz jesteś wstanie napisać kod programu do takiej aplikacji. Działania przedstawia poniższe nagranie
Kurs wideo
Więcej na temat programowania PLC S7-1200 w języku LAD znajdziesz w kursie Chcę zostać programistą PLC: