W każdej aplikacji należy sygnał wyjściowy ustawić na odpowiedni stan w momencie, gdy określony warunek zostanie spełniony. Jest to tak zwane setowanie i resetowanie. W tym wpisie dowiesz się jak to zrobić w języku LAD.
Język LAD – Cewki
Zaczniemy od wykorzystania szablonu projektu, który jest dostępny tutaj
Ustawianie stanu sygnału wyjściowego
Poznałeś tak zwane cewki w jednym z poprzednich wpisów. Teraz przedstawię dwie odmiany tego elementu graficznego. Domyślnie znajdują się z prawej strony TIA Portal (zakładka Basic instruction i następnie folder Bit logic operations), co przedstawia poniższy rysunek
Zauważysz w folderze Bit logic operations kolejną cewkę (brązowa ramka), gdzie pomiędzy nawiasami znajduje się litera R. Bardzo często podczas kodowania trzeba ustawić niski stan logiczny dla jakiegoś wyjścia lub też zmiennej typu Bool. Wówczas należy właśnie skorzystać z tej instrukcji warunkowej. Jest to cewka (RESET). Po umieszczeniu w networku cewki w networku zazwyczaj dodaje się przed jakieś styki, aby sprawdzić warunki.
Następna cewka (ramka żółta) zawiera pomiędzy nawiasami literę S. Należy ją wykorzystać, gdy chcemy ustawić wysoki stan logiczny dla wyjścia cyfrowego lub zmiennej po spełnieniu jakiegoś warunku. Ten warunek realizują styki, które znajdują się w networku i poprzedzają cewkę. Jest to cewka (SET). Też jest zazwyczaj poprzedzona stykami w celu sprawdzenia warunku lub kilku warunków.
Projekt – Transport opakowań
Teraz zrealizujemy kolejny projekt, który spotkasz w niektórych fabrykach. Jak będzie działała ta aplikacja? Zobacz na tym wideo
Budowa obiektu
W tej aplikacji można wyróżnić dwa transportery rolkowe. Pierwszy z nich, na którym znajduję się pudełko po włączeniu symulacji przyciskiem PLAY w FactoryIO nie jest sterowany z PLC. Następnie znajduje się drugi transporter rolkowy już sterowany z PLC. Na tym transporterze znajdują się również dwa czujniki optyczne z lusterkiem.
Założenia projektowe
W tym przypadku sterowanie obiektem jest również proste. Po włączeniu symulacji w FactoryIO następuje włączenie pierwszego przenośnika i transport pudełka do drugiego przenośnika. W pewnym momencie pudełko wjedzie częściowo na drugi przenośnik i zasłoni pierwszy czujnik. To powinno spowodować, że nastąpi włączenie obracania się rolek na drugim transporterze. Ruch ten powinien trwać do chwili, gdy pudełko dojedzie do drugiego czujnika znajdującego się na samym końcu. Wówczas nastąpi przecięcie wiązki, które powinno spowodować zatrzymanie ruchu transportera.
Rozpoczęcie kolejnego cyklu procesu transportu pudełka można wykonać po naciśnięciu przycisku RESET znajdującego się w górnym pasku narzędzi aplikacji FactoryIO.
Uruchomiamy narzędzie FactoryIO i należy otworzyć projekt From A to B (Set and Reset). Przechodzimy do File -> Drivers i z listy DRIVER wybieramy Siemens S7-PLCSIM. W ten sposób zobaczymy sygnały występujące na obiekcie. Dostępne sygnały przedstawia poniższy rysunek
Teraz już 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:
SensorA – sygnał z czujnika znajdującego się na początku transportera (należy pamiętać, ze gdy czujnik nic nie wykrywa to wystawia stan wysoki)
SensorB – 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 drugim transporterze. Aby uruchomić transporter to ten sygnał musi być w stanie wysokim
Mamy wszystkie informacje, które są nam potrzebne do napisania kod programu. Wystarczy napisać dwa networki co przedstawia poniższy rysunek
Kod programu steruje tylko drugim transporterem w zależności od stanu czujników. W networku numer 2 następuje sprawdzenie, czy pierwszy czujnik wykrywa pudełko w swoim polu widzenia. Jeżeli ten warunek jest spełniony, wówczas następuje wysterowanie wyjścia Q0.0 w stan wysoki za pomocą cewki setującej. Dzięki temu rolki transportera obracają się i pudełko się przemieszcza.
Ruch przenośnika powinien trwać do momentu, aż czujnik znajdujący się na samym końcu wykryje pudełko w swoim polu widzenia. Ten warunek jest sprawdzany w networku 3. Jeżeli zostanie on spełniony, to następuje tym razem wyłączenia wyjścia cyfrowego Q0.0 poprzez cewkę resetującą
Uruchom symulator sterownika czyli PLCSIM oraz symulację w FactoryIO (naciśnij przycisk PLAY) i przetestuj, czy wszystko działa poprawnie. Aby podczas testów rozpocząć kolejny cykl (kolejny przejazd pudełka przez linię transportową) naciśnij przycisk RESET (obok przycisku PAUSE) w górnym pasku narzędzi w FactoryIO.
Projekt do tego zadania można pobrać z tego adresu.
Praca domowa
- Co się stanie, gdy trakcie przejazdu pudełka (np. gdy będzie się znajdowało pomiędzy czujnikami) nastąpi naciśnięcie przycisku RESET w FactoryIO. Czy trzeba wystąpienie takiego zdarzenia jakoś zabezpieczyć w kodzie programy ?
- Wykorzystaj kolejny projekt obiektu w FactoryIO czyli Filling Tank (Timers). Twoje zadanie to przygotowanie projektu w TIA Portal oraz napisanie kodu programu, aby obiekt działał w taki sposób jak przedstawia to nagranie:
Przed przystąpieniem do pracy przypomnij sobie:
Napisz w komentarzu, jak Ci poszło
Kurs wideo
Więcej na temat programowania PLC S7-1200 w języku LAD znajdziesz w kursie Chcę zostać programistą PLC: