Program Logic Controler czyli Programowalne Sterowniki Logiczne PLC
- hderbis99
- 21 cze 2021
- 4 minut(y) czytania
Czym są Programowalne sterowniki logiczne PLC
Sterowniki PLC są przedstawicielami szeroko rozumianej rodziny komputerów. Sterowniki programowalne wykorzystywane są głownie w zastosowaniach przemysłowych. W tym artykule skupimy się głównie na sterowniku firmy SIEMENS S7 - 1200 DC/DC/DC.

2. PLC - Specyfikacja pracy
Sterowniki logiczne za pomocą modułów wejściowych zbierają pomiary z cyfrowych i analogowych czujników oraz z różnej rodzaju urządzeń pomiarowych. Na podstawie zebranych danych pomiarowych mogą realizować program zadany przez użytkownika, a następnie zgodnie z wynikami obliczeń danych programów mogą podejmować decyzję i generować sygnały sterujące. Mogą również wykonywać funkcje diagnostyczne oraz za pomocą modułów oraz łączy komunikacyjnych realizują funkcję transmisji danych.
3. Gdzie stosujemy PLC ?

- Technika instalacyjna
- Proste maszyny i urządzenia przemysłowe
- Pozycjonowanie osi
- regulatory PID
- Bezprzewodowe sieci sensorowe
- i wiele wiele innych ;)
4. Języki programowania
Z racji tego, że w przemyśle ważnym czynnikiem jest uniwersalność stąd w roku 1993 została opracowana i wydana przez międzynarodową komisję elektroniki norma IEC 1131 "Programmable Controllers". Składa się ona z pięciu części, ale najważniejsze jest to, że ujednolica strategie programowania sterowników logicznych co znacznie ułatwia wdrożenie się w dany sterownik.
Sterownik PLC możemy programować używając:
- Języka listy instrukcji IL (Instruction List)

- Języka strukturalnego ST (Structured List)

- Języka schematów drabinkowych LD (Ladder diagram)

- Języka schematów blokowych FBD (Function block diagram)

W powyższym artykule skupimy się na pokazaniu języka drabinkowego LD.
Jest to najpopularniejszy, a zarazem najprostszy do zrozumienia i opanowania język programowania sterowników PLC. Należy on do grupy języków graficznych i umożliwia realizację zadania sterowania za pomocą standaryzowanych symboli graficznych.
Jak to wygląda w praktyce ?
Załóżmy, że naszym zadaniem jest wysterowania naszego wyjścia po załączeniu wejścia:
- Po pierwsze musimy zdefiniować nasze zmienne w tzw. Tag_table, wygląda to następująco

Rys.I. Tag table w programie Tia Portal
Gdy już zdefiniujemy nasze zmienne czas przejść do naszego programu.

Rys.II. Szkielet programu w środowisku Tia Portal
Widzimy, że w naszym 'networku' pojawiły się dwie cewki, wej oraz wyj. Zadaniem naszego programu jest wysterowanie wyjścia %Q0.0 na on gdy wejście %I0.0 będzie załączone.

Rys.III. Zrzut symulacyjny pokazujący działanie programu
Jak widzimy na (Rys.III) gdy na wejściu %I0.0 jest wartość True to również na wyjściu %Q0.0 jest wartość True.
Zajmijmy się teraz trochę bardziej skomplikowanymi zagadnieniami. Załóżmy że pracujemy jako automatyk w jakiejś renomowanej firmie. Dostaliśmy zadanie przygotowania programu który będzie sterować prasą. Aby uchronić operatora prasy przed utratą rąk potrzebujemy zastosować układ wyzwalający. Uruchomienie prasy może nastąpić tylko w przypadku wciśnięcia obu przycisków (S1 oraz S2) jednocześnie. Następnie gdy oba przyciski są włączone to po upływie 5 sec załączana jest prasa. Sterowana jest ona silnikiem Y, który jest załączany stycznikiem K.
Aby zrealizować to zadanie musimy:
- Zdefiniować co jest wyjściem a co wejściem w naszym programie.

Rys.IV. Zmienne wyjściowe oraz wejściowe
Jak możemy wywnioskować z zadania dwa przyciski muszą być jednocześnie wciśnięte jest to inaczej zastosowanie w praktyce bramki logicznej AND więc na wejścia %I0.0 oraz %I0.1 ustawiamy nasze przyciski, a gdy przyciski są wciśnięte po 5 sec załączy nam się prasa, wiec stycznik K będzie naszym wyjściem które załączy silnik prasy.

Rys.V. Praktyczna realizacja programu w środowisku Tia Portal
W praktycznej realizacji programu widzimy iż został użyty timer TON ponieważ dzięki niemu po 5 sec zostaje wysterowane wyjście %Q0.1 i prasa się załącza.

Rys.VI. Symulacja działania programu.
Jak widzimy na przeprowadzonej symulacji kolorem niebieskim są zaznaczone dla nas interesujące wartości. Widzimy, że Timer TON odliczył nam 5 sec przez co nasze wyjście K zostało wysterowane na True i prasa się załączyła.
Pokazałem już działanie Timera, podniosłem delikatnie trudność naszego zadania więc czas podstawić poprzeczkę jeszcze wyżej.
W ostatnim zadaniu skupimy się na wykorzystaniu operatorów logicznych, zmiennych pomocniczych oraz licznika inaczej Counter'a.
W tej części zajmiemy się stworzeniem linijki diodowej. Po zadaniu jedynki na wejście %I0.0 nasze diody będą odpalać się cyklicznie co jedną sekundę i tak w kółko, dopóki %I0.0 ma wartość True.
Schemat działania pozostaje ten sam zatem zdefiniujmy nasze zmienne:

Rys.VII. Definicja zmiennych w Tag table
Na (Rys.VII) widzimy, że włącznik czyli zmienna Start/stop jest przypisana do adresu %I0.0 ponieważ to ona załącza nam działanie linijki. Poniżej widzimy zmienna pomocniczą w której będziemy zapisywać daną wartość, a na wyjściach zdefiniowaliśmy nasze diody.

Rys.VIII. Schemat programu cz.I
Jak widzimy na (Rys.VIII) przy załączeniu zmiennej Start/stop w pierwszym kroku jest załączana i wyłączana zmienna pom1 co 1 sec, dalej te impulsy z Timer'a są przekazywany na licznik zliczający w górę Counter Up, gdy licznik doliczy do 3 jego wartość jest resetowana dzięki czemu cała operacja działa w pętli (wiem, że na ten moment brzmi to trochę chaotycznie, ale wszystko rozwiąże się z kolejnym zdjęciem).

Rys.IX. Schemat programu cz.II
W części drugiej widzimy, że jeżeli wartość Counter'a jest większa lub równa zero włącza się dioda1, jeżeli wartość Counter'a jest większa lub równa 1 to włącza się dioda2 i tak samo z diodą trzecią w ten sposób załączana jest cała linijka diodowa.

Rys.X. Załączenie pierwszej diody

Rys.XI. Załączenie drugiej diody

Rys.XII. Załączenie trzeciej diody
Jak możemy zauważyć na rysunkach (Rys.X-XII) wszystkie 3 diody są cyklicznie zapalane co jedną sekundę więc linijka działa poprawnie.
Tym sposobem przeszliśmy ostatnie zadanie opisane w tym artykule jak możemy zauważyć Programowalne Sterowniki Logiczne - PLC w prosty sposób dla użytkownika realizują zaprogramowane zadania. Zachęcam również do szerszego zgłębienia się w temat za co odpowiadają pozostałe Timer'y lub Counter'y lub co to są 'resety' 'sety' i wiele wiele innych instrukcji, których nie zaprezentowałem w tym artykule, a mogą być przydatne w późniejszej pracy automatyka.


Komentarze