Skip to main content

Dla początkowych użytkowników systemów PLC zalecam najpierw zapoznanie z logiką kombinatoryczną. Logika kombinatoryczna pozwoli Ci zrozumieć jak połączyć dwa stany logiczne – TRUE oraz FALSE. Znając podstawy logiki kombinatorycznej możesz napisać swój pierwszy program PLC.

Program PLC wykorzystuje logikę, która matematyce nazywana jest algebrą Bool’a. W algebrze Bool’a wartości mogą przyjmować tylko dwie wartości: TRUE albo FALSE. W sterownikach PLC wartości TRUE i FALSE reprezentowane są przez 0 i 1. Jeżeli programujemy sterowniki musimy przestawić się na myślenie „zero-jedynkowe”.

W tym artykule wykorzystam proste schematy elektryczne, które przeanalizuję pod kątem logicznym.

Logika na prostych przykładach

Pierwszym najprostszym przykładem będzie żarówka i dwa przełączniku normalnie otwarte. Dwa najprostsze elementy mające jedną ważną rzecz wspólną: oba mogą działać w dwóch stanach: żarówka może świecić bądź nie, przełącznik może być zamknięty lub otwarty.

Możemy podłączyć żarówkę oraz przełączniki na kilka sposobów.
Pierwszą opcją podłączenia przełączników i żarówki jest sposób szeregowy.

Kiedy dwa przełączniki łączymy w szereg, żarówka załączy się dopiero w przypadku gdy oba przełączniki będą załączone. W logice Bool’a jest to funkcja logiczna AND. Kiedy przełącznik jest zamknięty można przyjąć, że jego stan wynosi TRUE, kiedy jest otwarty to jego stanu wynosi FALSE. To samo tyczy się żarówki, jeżeli świeci to jej stan jest ustawiony na wartość TRUE, nie świeci – FALSE.

Logika kombinatoryczna i sześć bramek logicznych

Wróćmy teraz do opisu funkcji logicznej AND o której wspomniałem powyżej. Funkcja AND jest sposobem na podjęcie decyzji jaki stan ma przyjąć wyjście.

Bramka logiczna AND

Wszystkie bramki w algebrze Bool’a mają wejścia oraz wyjścia. Stan wyjścia zależy od stanów wejść. Jeżeli chcesz ustawić wyjście w stan wysoki (TRUE) używając bramki AND to musisz ustawić wszystkie wejścia w stan wysoki (TRUE). W naszym przykładzie powyżej dwa przełączniki są wejściami, a żarówka jest wyjściem. W tym przypadku, gdy dwa przełączniki zostaną włączone to żarówka zapali się. Poniżej mamy symbol bramki logicznej:

Standardowe nazwy i symbole dla wejść bramki AND to A oraz B. Dla wyjścia standardowy symbol to Q. Opisywana bramka będzie miała zawsze dwa wejścia i jedno wyjście. Bramka może być rozszerzana o większość ilość wejść, ale zawsze posiada jedno wyjście.
Stany wejść i wyjść mogą być zilustrowane z wykorzystaniem tablicy prawdy, która wygląda w następujący sposób:

ABQ
FalseFalseFalse
TrueFalseFalse
FalseTrueFalse
TrueTrueTrue

Z powyższą tablicą prawdy można przeanalizować jak zachowuje się wyjście w zależności od stanów wejść.
Poniżej przedstawiam tabelę, która pomoże zrozumieć terminologię używaną w logice dla różnych przypadków.

PrzełącznikiAlgebra Bool’aLogika w programie PLC
WłączonyFalse0
WyłączonyTrue1

Bramka OR

Połączenie równoległe działa w inny sposób niż połączenie szeregowe przybliżone we wcześniejszym przykładzie. W tym wypadku każdy przełącznik ma bezpośrednie połączenie z żarówką, więc dowolny przełącznik może załączać żarówkę.
Poniżej znajduje się symbol bramki logicznej OR:

Tak jak w przypadku bramki AND o działaniu której nauczyliśmy się wcześniej, bramka OR posiada dwa wejścia oraz jedno wyjście. Symbole dla wejść to A oraz B, symbolem Q oznaczone jest wyjście.

Działanie bramki OR przybliża tablica prawdy:

ABQ
000
011
101
111

Wyjście bramki OR przechodzi w stan wysoki (TRUE) w momencie gdy chociaż jedno wejście jest w stanie wysokim (TRUE).
Do bramki można przypisać także odpowiednia formułę: A + B, A v B. Jest to alternatywa logiczna.

Bramka NOT – negacja logiczna

W logice Bool’a występuje 5 bramek logicznych, które powinieneś znać. Przybliżę teraz działanie bramki NOT (negacja logiczna).

Bramka działa w ten sposób, że odwraca stan wejścia na przeciwny i wystawia go na wyjściu. Przykładowo, kiedy wejście jest ustawione w stan wysoki to wyjście przyjmuje stan niski.
Tablica prawdy wygląda następująco:

AQ
01
10

Styk normalnie otwarty i normalnie zamknięty

Wracając do naszego przykładu z przełącznikami i żarówką możemy rozszerzyć funkcjonalność naszych przełączników.
Przełączniki mogą działać w na dwa różne sposoby: mogą zamykać lub rozłączać obwód. Te dwa typy przełączników to normalnie otwarty oraz normalnie zamknięty.

Bramka logiczna NAND

Jeżeli weźmiemy naszą funkcję logiczną OR i zanegujemy nasze wejścia używając styków normalnie zamkniętych to dostaniemy funkcję logiczną NAND. Lampa zostanie wyłączona dopiero gdy oba przełączniki zostaną rozwarte.

ABQ
001
011
101
110

Bramka NOR

Negując wejścia bramki AND i używając styków normalnie zamkniętych NC to w wyniku dostaniemy funkcję logiczną NOR.

ABQ
001
010
100
110

Bramki kombinowane

Poprzez grupowanie styków w konfiguracji szeregowo-równoległej możemy realizować dodatkowe funkcje logiczne takie jak: Exclusive-OR oraz Exlusive-NOR.

Bramka Exlusive-OR (XOR)

Górna gałąź na schemacie elektrycznym (styk A (NC) w szeregu ze stykiem B (NO)) jest odpowiednikiem bramki NAND. Dolna gałąź (styk A (NO) w szeregu ze stykiem B) to odpowiednik bramki NAND. Dwie gałęzie (dolna i górna) połączone są równolegle.

ABQ
000
011
101
110

Analizując przedstawione schematy elektryczne oraz funkcje logiczne można zauważyć pewne analogie:
• Połączenie równoległe styków NO daje realizuje funkcję logiczną OR
• Połączenie szeregowe połączenie styków reprezentuje funkcje logiczną AND
• Styk normalnie zamknięty jest odpowiednikiem bramki NOT (negacji)

Proste programy w języku Ladder

Znając już podstawy logiku Bool’a można przejść do programowania sterowników PLC np.: wykorzystując język Ladder. Ten język graficznie przypomina schemat elektryczny. Język Ladder dostępny jest jednym z języków dostępnych w środowisku programistycznym Codesys lub TiA Portal.

Maciej Kurantowicz

Komentarz

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.

<iframe src=”https://player.vimeo.com/video/757198505?h=0e10f23dac” width=”640″ height=”564″ frameborder=”0″ allow=”autoplay; fullscreen” allowfullscreen></iframe>

Mailing kursu programowania

Inteligentny DOM

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=62 css=1]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania MINIKURS

Siemens Simatic S7-1200/S7-1500
w języku LAD/FBD

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=56 ]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

MINI KURS MAILOWY

PROGRAMOWANIA

CODESYS w języku ST

 

Zapisując się na mini kurs mailowy otrzymasz:
-codziennie jedną wiadomość e-mail przez okres tygodnia
-materiały dzięki którym rozpoczniesz programować
w Codesys i języku ST

 

[activecampaign form=22]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing dla programistów

ControlByte

Zapisując się na listę mailową otrzymasz:
– merytoryczne materiały z naszych kursów
– informacje o otwarciu zapisów na szkolenia programowania
– informacje o naszych webinarch na żywo [activecampaign form=3]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania

Codesys w języku ST

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=20]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania

Siemens Simatic S7-1200/S7-1500
w języku LAD/FBD + HMI

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=14 css=1]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania

Siemens S7-1200, S7-1500

w języku SCL

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=18 css=1]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.