Dzisiaj zajmiemy się kolejnym etapem w cyklu życia oprogramowania jakim jest faza projektowania. Jest to ostatni krok przed rozpoczęciem implementacji czyli kodowania. Etap, którym teraz się zajmiemy ma na celu uszczegółowienia opisu implementacji. Wykorzystamy do tego notacje graficzne lub inaczej mówiąc algorytm.
Etap projektowania
Pewnie wiesz, że każdy program działa według jakiegoś algorytmu. Można go porównać np. do przepisu kucharskiego. Krok po kroku podzielone całe zadanie na fragmenty, które trzeba po kolei wykonać. Dobrze zaprojektowany algorytm może znacznie skrócić czas wykonywanego zadania. Za chwilę przedstawię Ci propozycję takiego algorytmu.
Algorytm funkcyjny
W poprzednim wpisie przedstawiłem Ci główne bloki funkcjonalne, które wchodzą w skład projektu. Poniżej możesz zobaczyć główne zależności pomiędzy tymi blokami
Tak wygląda przepływ danych patrząc na ogólny podział programu. Jednak trudno dostrzec najważniejsze warunki, które decydują o działaniu naszej linii.
Algorytm – ciąg instrukcji
Drugim sposobem jest przedstawienie algorytmu w formie ciągu instrukcji.
– zatrzymaj linie po włączeniu zasilania dla sterownika
– wybierz tryb pracy linii poprzez naciśniecie przycisku Auto lub Manual
– włącz podświetlenie odpowiedniego przycisku od wyboru trybu pracy
– naciśnij przycisk Start
– włącz sygnał dźwiękowy
– włącz lampę na kolumnie sygnalizacyjnej oraz diodę White
– tryb Auto: sprawdź, czy wciśnięto przycisk Finish
– tryb Auto: jeżeli nie wciśnięto przycisku Finish, to uruchom podajnik palet
– tryb Auto: jeżeli wciśnięto przycisku Finish, to zatrzymaj podajnik palet
– tryb Auto: uruchom transporter na odpowiedni czas w zależności od stanu czujnika, od którego ten transporter jest włączany
– tryb Auto: uruchom odbiornik w zależności od stanu czujnika
-tryb Manual – włącz transportery w odpowiednim kierunku w zależności od położenia potencjometru
-tryb Manual – włącz odbiorniki
– sprawdź, czy wciśnięto przycisk Stop
– jeżeli nie wciśnięto przycisku Stop, to następuje dalsze wykonywanie programu
– jeżeli wciśnięto przycisku Stop, to następuje zatrzymanie wszystkich elementów wykonawczych, czyli linia przestaje działać
Zapis wykonywanych operacji w takiej formie pozwala lepiej się zorientować, co będzie trzeba zaimplementować w sterowniku.
Algorytm graficzny
Jesteśmy przyzwyczajeni, że algorytmy są przedstawiane w formie graficznej. Ogólny wygląd możesz zobaczyć na poniższym rysunku.
Wybór trybu pracy decyduje o tym, w jaki sposób linia będzie transportować palety. Ważnym warunkiem dla trybu automatycznego jest moment naciśnięcia przycisku Finish. Powoduje to zatrzymanie podawania palet. Program powinien też oczekiwać na wciśnięcie przycisku Stop. Linia wtedy zatrzymuje się, czyli są wyłączane wszystkie elementy wykonawcze.
Każdy z prostokątów będzie już podczas implementacji zbiorem instrukcji, których wykonanie wykona pewien fragment całego zadania. Niektóre z nich się powtarzają. Podczas implementacji taka sytuacja nie jest dobrą praktyką programistyczną. Są techniki, aby uniknąć takich rzeczy.
Jak widzisz, algorytm nie zawiera żadnego bloku związanego z błędami lub statystyką. Te zadania będą realizowane równolegle (z boku działającego algorytmu). W algorytmie będzie warunek sprawdzający, czy nie wystąpił błąd. Jak zapewne pamiętasz, pojawienie się błędu zatrzymuje linię, czyli reakcja jest podobna do naciśnięcia przycisku Stop.
Jak widzisz, algorytm jest prosty, więc nie ma potrzeby jego optymalizacji. Należy pamiętać, że taka redukcja może zmniejszyć zrozumiałość i spowodować komplikację projektu.
Praca domowa
W poprzednim wpisie przedstawiłem Ci najważniejsze dane, jakie będą nam potrzebne do zrealizowania programu sterującego tą linią. Znasz też sygnały cyfrowe, które służą do sterowania linią. Wykorzystując te informacje rozpisz sobie dokładnie następujące bloki (z uwzględnieniem trybu pracy linii czyli Auto i Manual);
– wybór trybu pracy
– podświetlenie przycisków
– włączenie lamp na kolumnie sygnalizacyjnej
– włączenie sygnał dźwiękowego
– uruchom/zatrzymaj podajnik
– uruchom transportery od stanu czujników
– uruchom odbiorniki
Każdy z tych punktów narysuj na kartce jako prostokąt. Następnie przyporządkuj do niego sygnały cyfrowe oraz dane które pojawiły się w poprzednim wpisie.
Kurs wideo
Więcej na temat programowania w języku SCL znajdziesz w kursie Sterownik PLC w praktyce:
Pamiętam jak na studiach pisaliśmy wiele algorytmów na kartkach. Fajne były zadania z rozpracowywaniem różnych problemów w jakimi mógł napotkać się program. Bardzo interesujący wpis i mam nadzieję że kolejne będą równie ciekawe. Pozdrawiam