Sterownik PLC budowa, działanie, programowanie M. Horczyczak, 2017.05.23, opracowane na uŝytek przedmiotu POROB Wprowadzenie Sterownik PLC lub inaczej: sterownik typu PLC jest jednym z powszechnie wykorzystywanych sterowników w dziedzinie automatyki przemysłowej. Skrót PLC pochodzi od angielskiego określenia Programmable Logical Controller programowalny sterownik logiczny. Sterownik określa się jako logiczny, gdyŝ obsługiwane, przetwarzane i generowane przez niego sygnały mają charakter logiczny lub inaczej binarny (zero-jedynkowy) - przetwarzane sygnały mają tylko dwie wartości: prawda i fałsz, zero lub jeden czy teŝ inaczej włączone lub wyłączone. Operacje przetwarzania sygnałów w programie sterownika takŝe mają charakter logiczny. Są to negacja logiczna, koniunkcja (iloczyn logiczny) i alternatywa (suma logiczna). Określenia sterownik PLC uŝywa się potocznie czasem w odniesieniu do sterowników mikroprocesorowych. Nie jest to poprawne. Co prawda, oba typy sterowników (PLC i mikroprocesorowe) zbudowane są z wykorzystaniem techniki mikroprocesorowej, ale rodzaj sygnałów oraz sposób ich przetwarzania przez sterowniki mikroprocesorowe jest inny sterownik PLC przetwarza wyłącznie sygnały logiczne wykorzystując do tego funkcje logiczne. Nie naleŝy więc mylić tych dwóch określeń. W niniejszym dokumencie omawiane są sterowniki PLC, a nie sterowniki mikroprocesorowe. Wykorzystanie sterowników PLC sprowadza się do podłączenia do obiektu sterowania oraz do ich zaprogramowania. Wykonanie tych czynności wymaga zrozumienia budowy oraz działania sterownika PLC oraz zapoznania się z podstawami jago programowania. Budowa sterownika PLC Budowa sterownika PLC (na poziomie funkcjonalnym, bo abstrahuję tu od budowy na poziomie technicznym) moŝe być opisana poprzez zdefiniowanie bloków funkcjonalnych składających się na całośc sterownika. Bloki te oraz ich zadania są następujące Bufor sygnałów wejściowych słuŝy do pobrania I zapamiętania, a następnie udostepniania do przetwarzania (obliczeń logicznych) w programie sygnałów pochodzących ze sterowanego urządzenia. Bufor sygnałów wyjściowych - słuŝy do zapamiętania, a następnie wyprowadzenia sygnałów przeznaczonych dla sterowanego urządzenia. Pamięć sterownika: pamięć programu sterownika przeznaczona do przechowywania treści programu sterującego oraz pamięć zmiennych logicznych wykorzystywanych przez sterownik (pamięć markerów) przeznaczona do przechowywania wartości zmiennych (markerów) w czasie wykonanie programu Jednostka przetwarzająca (mikroprocesor) realizująca przetwarzanie i wewnętrzne sterowanie sterownikiem PLC. Sygnały przetwarzane przez sterownik moŝna podzielić na: Sygnały wejściowe wczytywane do sterownika z czujników sterowanego urządzenia Sygnały wyjściowe wyprowadzane ze sterownika do efektorów sterowanego urządzenia Sygnały wewnętrzne (określane jako markery) pełniace funkcję zmiennych w czasie wykonania programu Liczba dostępnych sygnałów zaleŝy od konkretnej implementacji (konstrukcji) sterownika. Zazwyczaj dostępnych jest kilka do kilkunastu (np. od 8 do 32) sygnałów kaŝdego typu (wejściowych, wyjściowych i markerów). Działanie sterownika PLC Działanie sterownika PLC moŝna opisać przedstawiając następujące fazy pracy (odpowiednio: w stanie wyczekiwania i w stanie pracy):
Inicjacja pracy sterownika, następująca po włączeniu zasilania oraz po wyzerowaniu (resecie) sterownika: bufory wejść i wyjśc są zerowane, podobnie pamięć programu i zmiennych (markerów); zaś sterownik ustawia się w trybie wyczekiwania Ładowanie programu sterującego do pamięci sterownika Po przestawieniu sterownika ze stanu wyczekiwania w stan pracy cyklicznie wykonywane są następujące czynności: Wczytanie sygnałów wejściowych do bufora sygnałów wejściowych i zapamiętanie ich stanów. Od tego momentu do końca bieŝącego cyklu pracy wartości znajdujące się w buforze nie będą zmieniane. Wyznaczenie wartości markerów oraz sygnałów wyjściowych na podstawie funkcji logicznych zapisanych w programie. Funkcje są wykonywane w kolejności zapisu linii je opisujących w programie. Wartości sygnałów wyjściowych są buforowane, ale nie wyprowadzane na zewnątrz do obiektu sterowania. Wyprowadzenie sygnałów z bufora sygnałów wyjściowych na zewnątrz Zakończenie bieŝącego i rozpoczęcie kolejnego cyklu pracy. Tak więc wszystkie sygnały wejściowe są obrabiane jednocześnie i całościowo w jednym cyklu pracy, a sygnały wyjściowe są wystawiane do odczytu z zewnątrz takŝe jednocześnie. Choć funkcje (linie) w programie są przetwarzane sekwencyjnie (po kolei), to cały sterownik pracuje tak, Ŝe wczyt sygnałów wejściowych jest jednym krokiem, podobnie jak wyprowadzenie sygnałów wyjściowych. Programowanie sterownika PLC Program sterownika PLC nie jest zatem sekwencyjną listą czynności do wykonania, ale jedną wielką funkcją logiczną określającą stany wyjść sterownika w funkcji stanów wejść i wartości markerów: [wy0, wy1, wy2,, wyn] = F (we0, we1,, wek, m0, m1,, mp) Dla ułatwienia w powiększenia czytelności zapisu tej funkcji a moŝe ona mieć bardzo złoŝoną postać stosuje się uproszczenie polegające na dekompozycji funkcji na prostsze funkcje składowe opisujące poszczególne sygnały wyjściowe: Wy0 = F0 (we0, we1,, wek, m0, m1,, mp) Wy1 = F1 (we0, we1,, wek, m0, m1,, mp), WyN = F0 (we0, we1,, wek, m0, m1,, mp) Przy czym, nie w kaŝdej funkcji muszą występować jako argumenty wszystkie sygnały wejściowe czy markery. Markerom wartości moŝna nadawać w analogiczny sposób jak sygnałom wyjściowym, zaś z ich wartości korzysta się tak jak z sygnałów wejściowych. Tak więc program dla sterownika PLC w swej najprostszej postaci to zbiór funkcji logicznych (jest ich tyle, ile sygnałów wyjściowych) wyznaczających sygnały wyjściowe w funkcji sygnałów wejściowych. Poszczególne sygnały wyjściowe uzyskują wartości 0 lub 1 (Tak lub Nie) w zaleŝności od określonych kombinacji sygnałów wejściowych. Sformułowanie (napisanie) programu, to określenie przy jakich kombinacja sygnałów wejściowych określone sygnały wyjściowe mają być ustawiane na 1 (włączane), a jakich na 0 (wyłączane). Często wygodnie jest wyraŝać stany wyjść sterownika nie jako włączenie (ustawienie wartości wyjścia na 1) w chwili, gdy zachodzi określona kombinacja wejść, ale jako zestawienie dwóch warunków: warunku włączenia (ustawienia na 1) i warunku wyłączenia (ustawienia na 0) przy zaistnieniu określonych kombinacji wejść, przy czym wyjście od momentu włączenia do momentu wyłączenia sygnał pozostaje w stanie 1. Działanie takie przypomina działanie przerzutnika logicznego. MoŜna je uzyskać stosując następującą konstrukcję programową: Won = [warunek włączenia] Woff = [warunek wyłączenia] m = Won + (!Woff) * m e = m gdzie m to marker, zaś e to efektor, którego włączanie i wyłączanie opisujemy. Działanie tej konstrukcji programowej pokazuje poniŝsza tabelka: Won Woff m
1 0 1 0 0 1 lub 0, podtrzymanie zaleŝnie od wcześniejszego stanu m 0 1 0 1 1 1 Przykład 1 stanowi ilustrację wykorzystania tej konstrukcji. Czasami bywa tak, Ŝe dla jednakowych kombinacji sygnałów wejściowych wymaga się dwóch (lub więcej) róŝnych zachowań układu, a więc róŝnych kombinacji sygnałów wyjściowych. Do rozróŝnienia takich stanów wykorzystuje się markery. Sztucznie stworzony (zdefiniowany) marker pozwala na odróŝnienie zestawów sygnałów wejściowych. Sposób programowania sterownika PLC w takiej sytuacji ilustruje przykład 2. Jak w wypadku kaŝdego języka programowania, programując sterownik PLC zwracać naleŝy uwagę na wymagania składniowe języka programowania uŝycie separatorów, priorytety stosowanych operatorów, uŝycie nawiasów, dopuszczalną liczbę sygnałow wejściowych i wyjściowych oraz markerów. Istotne jest takŝe, aby programując przewidzieć poprawne i bezpieczne zachowania układu w sytuacjach szczególnych, na przykład przy wznawianiu pracy po awaryjnym wyłączaniu zasilania. Przykłady Obiekt sterowania W przedstawionych poniŝej przykładach wykorzystywany jest jako obiekt sterowania ten sam prosty manipulator. Jego schemat przedstawiono na rysunku obok. KaŜde z dwóch ramion manipulatora poruszane jest siłownikiem jednostronnego działania; podanie sygnału włącz powoduje wysunięcie siłownika, sygnału wyłącz jego cofnięcie. Skrajne połoŝenia kaŝdego z siłowników, poziomego, poruszanego siłownikiem e3 oraz pionowego poruszanego siłownikiem e4, sygnalizowane są przez czujniki (łączniki drogowe) odpowiednio s5 i s6 na ramieniu poziomym oraz s7 i s8 na ramieniu pionowym. Skrajne uproszczenie układu do postaci niepraktycznej ma na celu przejrzyste zobrazowanie omówionych wcześniej sposobów programowania sterownika PLC. Układ wzorowano na manipulatorze kartezjańskim modelowanym w symulatorze RPlcSym. Przykłady Składnia programu W przykładach zastosowano składnię języka programowania sterownika PLC wykorzystywaną w symulatorze RPlcSym. Pozczególne symbole oznaczają: en efektor o numerze N sn sensor (czujnik) o numerze N mn marker o numerze N uŝywane operatory to: : (dwukropek) - operator przypisania + (plus) operator sumy logicznej * (gwiazdka) operator iloczynu logicznego! (wykrzyknik) operator negacji logicznej, priorytet tego operatora jest wyŝszy niŝ operatorów * i +. znak # oznacza komentarz (od znaku do końca wiersza)
NajwyŜszy priorytet ma operator negacji, operatory koniunkcji i alternatywy maja ten sam niŝszy priotytet. Nawiasy pozwalają na zmiane kolejności wykonywania operacji. Przykład 1 Podtrzymanie włączenia oraz wyłączenia. W tym przykładzie program realizuje trajektorię ruchu manipulatora pokazaną na rysunku obok. Poszczególne punkty węzłowe (zaznaczone kółkami) stanowią miejsca, gdzie włączane i wyłączane są siłowniki. Na przykład siłownik e3 ramienia poziomego włączany jest w lewym górnym punkcie, pozostaje włączony aŝ do osiągnięcia prawego dolnego punktu, zostaje wówczas wyłączony i pozostaje wyłączony aŝ do włączenia w lewym górnym punkcie. Podobnie działa siłownik ramienia pionowego e4. Pomiędzy punktami stan siłowników (włączony lub wyłączony) jest zachowywany. Tak więc napisanie programu sprowadza się do określenia warunków włączenia oraz wyłączenia poszczególnych siłowników i zastosowanie omawianej wcześniej formuły pozwalającej na podtrzymanie stanu siłownika. # przyklad 1 # e3: m1=wlaczenie e3 m2=wylaczenie e3 m3=stan e3 m1: s5*s7 m2: s6*s8 m3: m1+(!m2)*m3 e3: m3 # e4: analogicznie do e3 m4: s6*s7 m5: s5*s8 m6: m4+(!m5)*m6 e4: m6 To, co dzieje się w trakcie pracy układu moŝna przedstawić w nieco bardziej czytelny sposób jako przebiegi czasowe sygnałów wejściowych, wyjściowych i markerów. Schemat taki pozwala łatwo prześledzić zmiany wartości sygnałów, a takŝe w prosty sposób określić sygnały mające w tym samym czasie wartość włączone:, co moŝe być pomocne przy opracowywaniu programu. (symbol LG to Lewo/Gora, itp.) Przykład 2 Wykorzystanie markera do odróŝnienia stanów. Kolejny przykład prezentuje wykorzystanie markerów do rozróŝniania sytuacji, które cechuje taka sama kombinacja sygnałów wejściowych z czujników, a które są jednak funkcjonalnie róŝne i zachowanie układu powinno być inne zaleŝnie od sytuacji. RozwaŜmy następującą trajektorię ruchu przykładowego manipulatora przedstawioną na rysunku obok. W punkcie A kombinacja sygnałów wejściowych dla sterownika jest taka sama niezaleŝnie od tego, czy manipulator wykonuje właśnie ruch w prawo i w dół (ruch tam ), czy ruch do góry i w lewo (ruch z powrotem ). RozróŜnienie obu sytuacji uzyskuje się w tym przykładzie poprzez wprowadzenie markera (oznaczonego w przykładzie jako m13) mającego wartość 1 podczas ruchu tam i wartość 0 podczas ruchu z powrotem. Marker jest włączany w lewym górnym punkcie, a wyłączany w prawym dolnym. Oto treść programu: # przyklad 2 # marker tam i z powrotem m11: s5*s7 m12: s6*s8 m13: m11+(!m12)*m13 # e3 i e4 wlacz/wylacz m1: s5*s7*m13 m2: s6*s7*!m13 m3: m1+(!m2)*m3
e3: m3 m4: s6*s7*m13 m5: s6*s8*!m13 m6: m4+(!m5)*m6 e4: m6 Przedstawione w powyŝszych przykładach proste techniki programowania mogą byc z powodzeniem stosowane do oprogramowania zadań znacznie bardziej złoŝonych, wykorzystyujących wiele sygnałów wejściowych i wyjściowych. Sposób podejścia do problemu jest wtedy taki sam, analiza zadania oraz sformułowanie rozwiązania przebiegają analogicznie do tych zaprezentowanych w przykładach. Sposób zapisu funkcji logicznych składających się na program sterownika PLC w warunkach praktycznych będzie oczywiście inny niŝ uŝyty w tym dokumencie. Tu korzystano z zapisu prezentującego w moŝliwie najbardziej czytelnej formie same funkcje logiczne. W praktyce sterownik PLC będzie programowany (funkcje wystepujące w jego programie będą zapisane) w jednych ze standarów takich jak na przykład: instruction list (IL) lista instrukcji structured text (ST) tekst strukturalny ladder diagram (LD) - schemat zestykowy (drabinkowy) sequential function chart (SFC) - sekwencyjna lista funkcji jednakŝe opis tych (i innych) sposobów zapisu programu sterownika PLC wykracza poza zakres tego dokumentu.