Automatyka – nie taki diabeł straszny, jak go malują
19.04.2017 | aktual.: 19.04.2017 20:37
Wszelkie opisywane w rozdziale „Software” operacje opisywane w oparciu o oprogramowanie Allen Bradley RSLogix, jednakże symbole w przypadku programowania PLC są zunifikowane i powinny być takie same bądź podobne dla sterowników Siemens, GeFanuc, etc.
Słowem wstępu
Fabryki, maszyny, linie produkcyjne, roboty, automatyzacja. Pojęcia przez ludzi postrzegane jako coś w swojej złożoności porównywalnego do procesu konstrukcji statku kosmicznego. Zapewne spora część czytających była choć raz w fabryce bądź oglądała programy typu „Jak to jest zrobione?” na Discovery. Współczesne fabryki, szczególnie w branży przemysłu ciężkiego oraz automotive, potrafią zajmować ogromną powierzchnię, której każdy milimetr zostaje zagospodarowany. Z moich prywatnych obserwacji wynika, że pracownik, który pracuje „na linii”, raczej nie przejmuje się tym, co znajduje się w szafkach elektrycznych, tym jak to działa, że zamiast szlifować/spawać/kuć/wstaw_dowolne wciska przycisk i czeka na zakończenie obróbki. Przeważnie towarzyszy temu przeświadczenie, iż budowa tak skomplikowanej aparatury to coś niezwykle trudnego do pojęcia. Przeświadczenie to jest oczywiście nie do końca prawdziwe – w tym lekko przydługim wpisie postaram się to choć częściowo udowodnić. Zawód automatyka jest swego rodzaju mieszanką kilku dziedzin, niezbędnych do projektowania i nadzorowania pracy maszyn – elektryki, pneumatyki, często hydrauliki, informatyki, czasami mechaniki. Nakłada się on lekko z mechatroniką, jednakże w niej nieco większy nacisk stawiany jest na robotykę, której jako automatyk bez dodatkowych kursów, raczej nie uświadczymy (w teorii; zależy to również od charakterystyki naszej posady). W tym wpisie chciałbym przekazać informacje na temat tego, jak zacząć przygodę z automatyką, czy to trudne (spoiler: nie) i o co w tym właściwie chodzi.
Projektowanie, utrzymanie ruchu, programowanie PLC czy może serwis?
Automatyk jest mniej więcej tak samo ogólnym określeniem zakresu obowiązków jak informatyk. Nie mówi absolutnie nic o tym, co dokładnie będziemy w pracy robić. Dlatego też przed rozpoczęciem przeszukiwania ofert pracy na portalach internetowych (których na chwilę obecną nie brakuje), należy zadać sobie pytanie: „Co ja właściwie chciałbym robić?”. Do wyboru mamy:
- Projektant układów automatyki – siedzimy sobie przed komputerkiem i projektujemy elektrykę, układ sterowania (zwykle PLC, bardzo rzadko układy przekaźnikowe, częściej hybrydowe), jeśli zastosowanie tego wymaga – pneumatykę bądź/i hydraulikę. Następnie całość testujemy w połączeniu z danymi od mechanika, czy aby przypadkiem zamontowanie lampki kontrolnej na głównym dwuteowniku nośnym nie będzie skutkowało wytworzeniem się czarnej dziury w otoczeniu maszyny. Nasze główne narzędzia pracy to program do projektowania elektryki (Eplan/AutoCAD Electrical/SEE Electric, itp.) oraz środowisko programistyczne do PLC (RSLogix, Step7, TIA Portal, itp.),
- Inżynier automatyk ds. utrzymania ruchu – siedzimy sobie grzecznie w biurze i wypełniamy tabelki w Excelu. Do czasu. Do czasu, aż coś się zepsuje – wtedy mamy zwykle około 15 minut (są od tego oczywiście wyjątki, ponadto czas zależy od zakładu), na przywrócenie poprawnej pracy maszyny – linia produkcyjna nie może sobie przecież pozwolić na przerwę, spowodowałoby to ogromne straty dla firmy). Lecimy więc biegiem na miejsce katastrofy, zazwyczaj z towarzyszami broni (innymi inżynierami), badamy sytuację, wciskamy rozmaite testy na HMI, sprawdzamy błędy sterownika i ewentualne uszkodzenia mechaniczne (pośród towarzyszy broni zwykle znajdzie się choć jeden mechanik). Jeżeli przez 15 minut nie uda nam się ustalić źródła problemu (co przy obecnym poziomie systemów logowania i zabezpieczeń w sterownikach jest mało prawdopodobne), to mamy dwie opcje: jeśli mamy „zapasową” maszynę, to przekierowujemy linię na nią, a do starej wzywamy serwisanta z firmy zewnętrznej. Jeśli zapasowej maszyny nie posiadamy, bo zakładu, dajmy na to, nie stać (koszt przeciętnej maszyny to koszt około jednego samochodu. Jeżeli to Maybach. W przeciwnym razie jednego domu/sporego mieszkania), musimy kontaktować się „z górą”. Zazwyczaj otrzymujemy wtedy kilkanaście minut dodatkowego czasu. Angażuje się wtedy cały sztab automatyków, którzy akurat są w pracy. Jeżeli się nie uda… w zasadzie to nie brałem udziału przy takim incydencie, ale z tego co wiem, to skutkuje to wstrzymaniem produkcji – i momentalnie zaczynają się generować straty. Ściąga się ludzi z zewnątrz, ogólnie to cuda się dzieją. Ten wpis miał być o początkach w tej branży, więc przejdźmy dalej. Jeżeli chodzi o oprogramowanie to to, co w punkcie wyżej oraz ukochany Office – praca w korporacji tego wymaga.
- Programista PLC – chyba najmniej angażująca praca ze wszystkich tu wymienionych, osobiście uważam, że trochę nużąca – ale to tylko moje własne odczucie, z tego samego powodu odrzuciłem opcję zostania programistą na rzecz tego, o czym teraz piszę. Chodzi tutaj o to, że siedzimy przy biurku i robimy to, na co sama nazwa wskazuje – programujemy PLC. Używamy środowisk wymienionych przy panu projektancie.
- Serwisant układów automatyki – ciekawa opcja dla osób lubiących podróże – wiele firm ma proste układy sterowania, nie posiadając własnego automatyka – bo i po co, skoro „maszyną” jest układ złożony z guzika, najprostszego sterownika, siłownika i paru lampek? Gdy taka enigma postanowić wziąć sobie L4, wsiadamy w nasze firmowe Lamborghini Berlingo i gnamy do pacjenta. Bardzo często są to pierdółki, ale czasem zdarzy się, że kilka nocy spędzimy na miejscu. Od siebie polecę kanał Sebastiana Baryczy na YouTube, który takim właśnie serwisantem jest.
Są oczywiście inne specjalizacje, jednakże jest to mniejszość.
Studia
„No ok, ale do tego to pewnie trza doktorat, nie?”
Nie. Znaczy można, to głównie do super-ambitnych posad i w celu wykładania na uczelni. W zasadzie to ze studiami sprawa jest mocno zależna od pracodawcy (chyba zresztą tak, jak w prawie każdym zawodzie). Na 99% do pracy na stanowisku inżynier xxxxxxx potrzebujecie ów inżyniera – tyczy się to m.in. inżyniera utrzymania ruchu. Jest to 7 semestrów, kierunek często połączony z robotyką (ale nie o tym dzisiaj). Są również technika szkolące w kierunku „technik automatyk”. Najłatwiej będzie, jeśli ty sam sprawdzisz popularne serwisy pracowe i sprawdzisz, jakie wykształcenie jest wymagane, do twojej wymarzonej posady.
Zarobki
Wystarczająco, aby żyć w pełni komfortowo. Dwie przeciętne pensje pracownicze spokojnie można dostać, jednakże z zarobkami na poziomie wyspecjalizowanego informatyka z doświadczeniem będzie trudno, o lekarskich można zapomnieć. Zarobki za granicą takie same jak w Polsce, tylko że zmienia się znaczek waluty. Więcej nie mówię, gdyż jest to sprawa mocno indywidualna. Zarobki możecie sprawdzić bardzo łatwo w Internecie.
Ale to przecież drogie jak jasna chimera - Hardware
Koszt sterownika PLC to od około ~500-700zł za bardzo podstawowy model mikroPLC(PLC mają swoje rozmiary, ale tutaj to nie ma większego znaczenia), do kilkudziesięciu, a sporadycznie kilkuset tysięcy za wielkie, modułowe potwory z możliwością podłączenia tysięcy wejść i wyjść. Peryferia też są względnie drogie – kabel do programowania sterownika potrafi kosztować dwa tysiące a nawet i więcej. Oczywiście można kupić najtańszy sterownik i się z nim bawić(Siemens LOGO dla przykładu), jednakże jego możliwości będą bardzo okrojone i wykonamy na nich tylko podstawowe operacje. Można jednak zacząć przygodę zupełnie za darmo, gdyż zarówno Siemens jak i Allen Bradley (właściwie to Rockwell) udostępniają darmowe wersje środowisk programistycznych do swoich sterowników – możemy więc się pobawić w domu, nic nie płacąc, a przy okazji nabędziemy umiejętności programowania sterowników. Jeśli chcecie się zaznajomić z rynkiem, możecie pogooglować takie zagadnienia jak PLC, HMI (w dużym skrócie ekran do komunikacji ze sterownikiem), SCADA (w dużym skrócie komputer przemysłowy). Jest to drogie, jednakże w pracy przecież za to nie płacicie. Wszystkie powyższe programuje się podobnie, konfiguracja HMI przypomina trochę design aplikacji okienkowych .NET w Visual Studio – przeciągamy elementy interfejsu i ustawiamy eventy).
Archaizm, czyli software
Pierwsze, co musicie zrobić, jeżeli chcecie zostać automatykiem – postawić wirtualną maszynę z Windowsem XP 32‑bit (koniecznie 32‑bit) bądź posiadać komputer z ów systemem, gdyż oprogramowanie, szczególnie Allen Bradley, jest wyjątkowo archaiczne – czasem nawet 10‑letnie (Siemens pod tym względem wygląda nieco lepiej ze swoim TIA Portal i LOGO, niemniej Step7 na Win7 i nowszych nie odpalicie). Jak to zrobić – w internecie jest pełno poradników, ja używam VirtualBoxa i spisuje się świetnie. Dobra, teraz przydałoby się jakieś środowisko. Za darmo mamy do wyboru Step7 Lite Siemensa bądź RSLogix Micro Starter Lite Allena-Bradley. Polecam to drugie, ze względu na możliwość symulacji – mega pomocne.
Jako iż strona AB jest trochę mało przyjazna, oto instrukcja pobrania:
[numlist] [item]Wchodzimy na www.ab.com. [/item][item]Klikamy tu:
[image=ds1] [/item] [item]Wpisujemy RSLogix Micro Starter Lite w/o RSLinx EN:
[image=ds2] [/item][item]Klikamy Download:
[image=ds3] [/item][item]Klikamy na ikonkę zapisu przy wersji 10.0:
[image=ds4] [/item][item]Zakładamy konto Rockwell, jest bezpłatne. Wymaga sporo informacji, jednakże nie są one sprawdzane – fakenamegenerator służy pomocą bardziej przezornym.[/item][item]Wybieramy to, co pokazane na zrzucie ekranu, następnie klikamy na Downloads w prawym górnym rogu:
[image=ds5] [/item][item]Klikamy na Download Now w prawym dolnym rogu.[/item][item]Wybieramy pobieranie bezpośrednie, po czym pobieramy 3 pliczki.[/item][item]Instalujemy wszystko, kolejność jest względnie nieważna (oczywiście instalujemy na naszej maszynie z Windows XP).[/item][/numlist]
Po instalacji robimy reboot i uruchamiamy RSLinx Classic (znajdziemy je w menu Start). RSLinx to w dużym skrócie program pośredniczący pomiędzy sterownikiem, a naszym kodem. My użyjemy go do dodania „wirtualnego” sterownika.
[numlist] [item]Klikamy Configure drivers:
[image=linx1] [/item][item]Z listy wybieramy SLC 500 (DH485) Emulator driver. Klikamy Add New…. Nazwę pozostawiamy domyślną, klikamy OK. Numer stacji pozostawiamy 00, nazwa stacji niech pozostanie pusta – klikamy OK. W tabelce poniżej powinniśmy zobaczyć nasz sterownik ze statusem Running:
[image=linx2] [/item][item]Zamykamy okienko sterowników, wchodzimy w RSWho. Upewniamy się, że nasza stacja znajduje się na liście z lewej. Jeśli tak – minimalizujemy RSLinxa.
[/item][/numlist]
Możemy w końcu uruchomić właściwe środowisko – RSLogix Micro English (również poprzez menu Start). Zacznijmy od utworzenia nowego projektu.
Konfiguracja sterownika to dość ważny proces, wybieramy takie ustawienia jak na zrzucie ekranu – celem zachowania kompatybilności z naszym wirtualnym sterownikiem.
Naszym oczom ukazuje się coś w rodzaju IDE w postaci dwóch okienek wewnątrz jednego większego. Ale po kolei, co jest co:
To drzewko to podgląd zawartości naszego projektu.
Na początek, interesuje nas:
- Program Files – pliki programu, co tu więcej tłumaczyć. Właściwy program ma przedrostek LAD.
- Data Files – wszystkie nasze symbole, czyli zmienne i obiekty (tak po informatycznemu).
- Database › Adress / Symbol – baza adresów i odpowiadających im symboli, o tym zaraz.
- Database › Rung Comments / Page Title. Lista komentarzy i nazw naszych „gałęzi”.
Wypadałoby wytłumaczyć, jak działają adresy i symbole. Otóż adres to nic innego, jak „dziura” sterownika, w którą „wpinamy kabel”. W sterownikach Allen-Bradley ma budowę rodzaj:moduł/numer. Numeracja zaczyna się od zera. Więc przykładowo czwarta „dziura” wejścia sterownika to I:0/3 (wejścia w sterowniku liczone są jako moduł 0). Rodzaj to typ danych. W sterownikach AB dzielimy je na:
- Input – I - wejście – dostajemy z niego sygnał, np. przycisk, czujnik,
- Output – O – wyjście – wysyłamy na niego sygnał, np. przekaźnik, lampka, stycznik,
- Binary, Integer, Float – B, N, F – nasze własne „zmienne” typu kolejno boolean, integer, float, używamy w celu zapisania jakichś danych,
- Timer – T – każdy timer jest osobnym obiektem, a tutaj możemy je znaleźć,
- Counter – C – tak jak z timerami.
Pozostałe typy danych na razie nas nie interesują, są one czysto diagnostyczne i wykorzystywane przez sterownik.
Czym w takim razie jest symbol? Symbol to rodzaj wskaźnika – bardziej zrozumiały alias adresu. Przykładowo: wpinamy sobie w I:0/0 przycisk. Tworzymy więc dla adresu I:0/0 symbol BUTTON. Myślę, że to wystarczająco obrazowe wytłumaczenie.
Na środku ekranu widzimy nasz obszar pracy – schemat drabinkowy (LAD/Ladder). Działa on mniej więcej tak, że na pionowej nitce z lewej mamy +24V, a z prawej 0V (w dużym uproszczeniu, napięcie oczywiście nie jest takie samo w każdym sterowniku). Tutaj właśnie programujemy nasz sterownik. Jak? Za pomocą „znaczków”:
Podzielone są na kilkanaście zakładek, my na razie użyjemy pierwszej– ten wpis i tak jest stanowczo zbyt długi.
Symbole pokazane powyżej kolejno:
- Wstawiają nową linię poziomą (gałąź),
- Rozgałęziają(!) gałąź na dwie – tworzymy połączenie równoległe,
- Dodają odwołanie do wejścia,
- Dodają zanegowane odwołanie do wejścia (NC, Normally Closed. Taki Input z bramką NOT),
- Dodają odwołanie do wyjścia,
- Dodają odwołanie do wyjścia z samopodtrzymaniem (załączane impulsem, nie wyłączy się aż do podania sygnału na adekwatny znacznik Unlatch),
- Który jest właśnie tutaj.
- Ciągi ASCII dzisiaj pominiemy,
- Moduł, wartość bezwględna, przydaje się przy wejściach analogowych (nie dzisiaj).
Jak zacząć? Klikamy pierwszą gałąź:
I z ów wcześniej wspomnianego panelu „znaczków” wybieramy odwołanie do wejścia, klikając na nie. Bum, wstawiło się.
Widzimy tam taki pytajniczek – dodaliśmy wejście, ale nie sprecyzowaliśmy jakie. Otwórzmy okno symboli wejść, klikając 2x na I1 – Input w panelu po lewej. Zobaczymy macierz symboli wejść – może wygląda strasznie, ale jest bardzo proste – klikamy na komórkę odpowiadającą I:0/0 i w polu Symbol nazywamy ją, np. BUTTON.
Zatwierdzamy wszystko enterem i gotowe. Zamykamy okienko, klikamy 2x na nasz pytajniczek i wpisujemy BUTTON – znaczek powinien się ładnie pokolorować na zielono.
Powiązaliśmy teraz nasz symbol znaczek na gałęzi (symbol jest tu dwuznaczne, więc będę mówić „znaczek” w odniesieniu do gałęzi) z wejściem I:0/0 sterownika. Dodajmy teraz wyjście, aby nasz program cokolwiek robił – mając zaznaczony ostatni element gałęzi, czyli w naszym przypadku przycisk, wybieramy z belki „znaczków” Output Energize. Na prawym końcu gałęzi wstawi nam się wyjście – ogólnie przyjęta norma stanowi, że wejścia umieszcza się z lewej, a wyjścia z prawej, zgodnie z kierunkiem przepływu sygnału. Z wyjściem robimy podobnie jak z wejściem, tyle że zamiast I1- Input wybieramy z panelu O0 – Output i przypisujemy adresowi O:0/0 symbol np. LAMP – niech to będzie wirtualna lampka. Następnie przypisujemy naszemu znaczkowi wyjścia symbol LAMP poprzez dwuklik na pytajnik. Nasza gałąź powinna wyglądać tak:
Zapiszmy teraz nasz projekt. Przy zapisywaniu, RSLogix pozwala nam opisać co zmieniliśmy. To nasz pierwszy zapis, więc w Revision Note wpisujemy Initial Revision, bądź zostawiamy to pole puste.
Ja, w hołdzie bardzo znanemu artyście muzycznemu, nazwałem swój projekt UNTITLED.
Zminimalizujmy teraz RSLogix Micro Starter i otwórzmy RSLogix Emulate500 z menu Start. Na razie nic w nim nie ustawiajmy, wróćmy do naszego projektu. Sprawdźmy nasz projekt pod kątem błędów ów dwoma przyciskami (nie powinno być żadnych):
Czas na kompilację. Upewniając się, że mamy zminimalizowany RSLinx, rozwijamy listę opcji sterownika i wybieramy Download… (tak, Download to wysyłanie, bo sterownik pobiera program ;) ) w celu wysłania programu na wirtualny sterownik.
Środowisko poprosi nas o wprowadzenie notki o rewizji, jednakże my nic nie zmieniiśmy od ostaniej – zmieniamy więc Version na 0 i klikamy OK.
Następnie 2 razy klikamy Yes.
Teraz przechodzimy do RSLogix Emulate500 i upewniając się, że na rozwijanej liście widzimy nazwę naszego projektu, klikamy na Run w celu uruchomienia programu.
Numery gałęzi w naszym projekcie powinny zmienić kolor na zielony, ponadto w lewym górnym rogu panelu sterownika powinniśmy widzieć napis Remote Run na zielonym tle.
Jak sprawdzić czy nasz układ działa? Klikamy PPM na nasze wejście i wybieramy Toggle Bit celem symulacji wciśnięcia przycisku. Gałąź przy znaczku wejścia powinien zaświecić się na zielono (w zakresie zaznaczenia znaczku). Skąd wiemy że działa? To samo zielone światełko powinno zaświecić się przy wyjściu – czyli włączyliśmy naszą lampkę. Wyłączając przez Toggle Bit nasze wejście, wyjście powinno gasnąć.
Brawo, właśnie zrobiłeś włącznik do światła za jakieś kilka tysięcy złotych...
Bardzo chciałbym tutaj poruszyć kwestię timerów oraz liczników, jednakże wpis ten już teraz przybrał kolosalnych rozmiarów i pewnie połowa czytających do tego akapitu nawet nie dotarła. Niemniej jednak entuzjastów zachęcam do zapoznania z pomocą programu, która jest bardzo dobrze napisania oraz eksperymentowania – plusem wirtualnego sterownika jest brak możliwości zepsucia go czy też wysadzenia połowy zakładu przez zwarcie na 3 fazach ;) .
Ponadto, jeżeli coś źle wyjaśniłem, są jakieś błędy (LibreOffice crashuje mi przy spellchecku), coś jest niejasne bądź inaczej niż na zrzutach ekranu - proszę pytać w komentarzach, odpowiem na każdy ;) .
Tl;dr - automatyka jest fajna.