Logika drabinkowa - Ladder logic

Logika drabinkowa była pierwotnie napisaną metodą dokumentowania projektowania i budowy szaf przekaźnikowych stosowanych w produkcji i kontroli procesu . Każde urządzenie w szafie przekaźnikowej będzie reprezentowane przez symbol na schemacie drabinkowym z pokazanymi połączeniami między tymi urządzeniami. Ponadto na schemacie drabinkowym zostaną również pokazane inne elementy znajdujące się poza stojakiem przekaźników, takie jak pompy, grzałki itp.

Logika drabina przekształciła się w języku programowania , który reprezentuje program, za pomocą wykresu graficznego na podstawie schematów z logicznego przekaźnik sprzętu. Logika drabinkowa służy do opracowywania oprogramowania dla programowalnych sterowników logicznych (PLC) stosowanych w przemysłowych aplikacjach sterowania. Nazwa opiera się na obserwacji, że programy w tym języku przypominają drabiny , z dwiema pionowymi szynami i szeregiem poziomych szczebli pomiędzy nimi. Podczas gdy schematy drabinkowe były kiedyś jedyną dostępną notacją do zapisywania programów sterowników programowalnych, dziś inne formy są standaryzowane w IEC 61131-3 (na przykład, jako alternatywa dla graficznej formy drabinkowej, istnieje również format bardziej podobny do języka asemblerowego o nazwie Instrukcja wykaz w ramach normy IEC 61131-3 .).

Przegląd

Część schematu drabinkowego, w tym styki i cewki, porównania, zegary i multiwibratory monostabilne

Logika drabinkowa jest szeroko stosowana do programowania sterowników PLC , gdzie wymagane jest sekwencyjne sterowanie procesem lub operacją produkcyjną. Logika drabina jest przydatny dla prostych, ale krytycznych systemów sterowania lub na przerabianiu starych przewodowych obwodów przekaźnikowych. Ponieważ programowalne sterowniki logiczne stały się bardziej wyrafinowane, znalazły zastosowanie również w bardzo złożonych systemach automatyki. Często program logiki drabinkowej jest używany w połączeniu z programem HMI działającym na stanowisku komputerowym.

Motywacją do przedstawienia logiki sterowania sekwencyjnego na schemacie drabinkowym było umożliwienie inżynierom i technikom fabrycznym tworzenia oprogramowania bez dodatkowego szkolenia w celu nauki języka takiego jak FORTRAN lub innego ogólnego języka komputerowego. Rozwój i konserwacja zostały uproszczone ze względu na podobieństwo do znanych systemów sprzętowych przekaźników. Implementacje logiki drabinkowej mogą mieć cechy, takie jak wykonywanie sekwencyjne i obsługa funkcji przepływu sterowania, które sprawiają, że analogia do sprzętu jest nieco niedokładna.

Logika drabinkowa może być traktowana jako język oparty na regułach, a nie język proceduralny . „Szczebel” w drabinie reprezentuje regułę. Po wdrożeniu z przekaźnikami i innymi urządzeniami elektromechanicznymi różne reguły działają jednocześnie i natychmiast. Po zaimplementowaniu w programowalnym sterowniku logicznym reguły są zwykle wykonywane sekwencyjnie przez oprogramowanie w pętli ciągłej lub „skanowaniu”. Wykonując pętlę wystarczająco szybko, zwykle wiele razy na sekundę, uzyskuje się efekt jednoczesnego i natychmiastowego wykonania. Właściwe użycie sterowników programowalnych wymaga zrozumienia ograniczeń kolejności wykonywania szczebli.

Składnia i przykłady

Sam język można traktować jako zbiór połączeń między kontrolerami logicznymi (styki) i aktuatorami (cewki). Jeśli można prześledzić ścieżkę między lewą stroną szczebla a wyjściem, poprzez potwierdzone (prawda lub „zamknięte”) styki, szczebel jest prawdziwy i bit pamięci cewki wyjściowej jest potwierdzany (1) lub prawdziwy. Jeśli nie można prześledzić żadnej ścieżki, wyjście jest fałszywe (0), a „cewka” przez analogię do przekaźników elektromechanicznych jest uważana za „niezasiloną”. Analogię między propozycjami logicznymi a stanem styku przekaźnika zawdzięcza Claude Shannon .

Logika drabinkowa ma styki, które tworzą lub przerywają obwody sterujące cewkami. Każda cewka lub styk odpowiada stanowi pojedynczego bitu w pamięci sterownika programowalnego. W przeciwieństwie do przekaźników elektromechanicznych program drabinkowy może odnosić się dowolną liczbę razy do stanu pojedynczego bitu, co odpowiada przekaźnikowi o nieskończenie dużej liczbie styków.

Tak zwane „styki” mogą odnosić się do fizycznych („twardych”) wejść do sterownika programowalnego z urządzeń fizycznych, takich jak przyciski i wyłączniki krańcowe, za pośrednictwem zintegrowanego lub zewnętrznego modułu wejściowego lub mogą reprezentować stan bitów pamięci wewnętrznej, które mogą być generowane gdzie indziej w programie.

Każdy szczebel języka drabinkowego ma zazwyczaj jedną cewkę po prawej stronie. Niektórzy producenci mogą dopuszczać więcej niż jedną cewkę wyjściową na szczeblu.

  • Wejście szczebla: sprawdzacze (styki)
    • —[ ]—Styk normalnie otwarty, zwarty, gdy odpowiednia cewka lub wejście, które nim steruje, jest zasilana. (Otwarty kontakt w spoczynku)
    • —[\]—Styk normalnie zamknięty („nie”), zamknięty, gdy odpowiednia cewka lub wejście, które ją kontroluje, nie jest zasilane. (Kontakt zamknięty w spoczynku)
  • Wyjście szczebla: siłowniki (cewki)
    • —( )—Cewka normalnie nieaktywna, pod napięciem, gdy jej szczebel jest zamknięty. (Nieaktywny w spoczynku)
    • —(\)—Cewka normalnie aktywna („nie”), pod napięciem, gdy jej szczebel jest otwarty. (Aktywny w spoczynku)

„Cewka” (wyjście szczebla) może reprezentować fizyczne wyjście, które obsługuje pewne urządzenie podłączone do programowalnego sterownika, lub może reprezentować bit pamięci wewnętrznej do wykorzystania w innym miejscu programu.

Sposobem na ich przypomnienie jest wyobrażenie sobie kontrolerów (styków) jako wejścia przycisku, a aktuatorów (cewek) jako wyjścia żarówki. Obecność ukośnika w warcabach lub siłownikach wskazywałaby domyślny stan spoczynku urządzenia.

Logiczne AND

 ------[ ]--------------[ ]----------------( )
   Key switch 1      Key switch 2       Door motor

Powyższe realizuje funkcję: Silnik drzwi = Stacyjka 1 ORAZ Stacyjka 2

Ten obwód pokazuje dwa przełączniki kluczykowe, których ochroniarze mogą użyć do aktywacji silnika elektrycznego na drzwiach skarbca banku. Kiedy normalnie otwarte styki obu przełączników zamykają się, prąd może płynąć do silnika, który otwiera drzwi.

Logiczne ORAZ z NIE

 ------[ ]--------------[\]----------------( )
   Close door      Obstruction         Door motor

Powyższe realizuje funkcję: Silnik drzwi = Zamknij drzwi I NIE (Przeszkoda).

Ten obwód pokazuje przycisk, który zamyka drzwi, oraz detektor przeszkód, który wykrywa, czy coś znajduje się na drodze do zamykania drzwi. Kiedy normalnie otwarty styk przycisku zamyka się, a normalnie zamknięty czujnik przeszkody jest zamknięty (nie wykryto przeszkody), prąd jest w stanie popłynąć do silnika, który zamyka drzwi.

Logiczne OR

 --+-------[ ]-------+-----------------( )
   | Exterior unlock |                 Unlock
   |                 |
   +-------[ ]-------+
     Interior unlock

Powyższe realizuje funkcję: Odblokuj = Odblokuj wnętrze LUB Odblokuj zewnętrzne

Ten obwód pokazuje dwie rzeczy, które mogą wywołać elektryczne zamki drzwi samochodu . Odbiornik zdalny jest zawsze zasilany. Solenoid odblokowujący jest zasilany, gdy którykolwiek zestaw styków jest zamknięty.

STOP/START przemysłowy

W powszechnej przemysłowej logice start/stop z blokadą mamy przycisk „Start” do włączania stycznika silnika i przycisk „Stop” do wyłączania stycznika.

Po naciśnięciu przycisku „Start” wejście staje się prawdziwe, poprzez przycisk „Stop” styk NC. Gdy wejście "Uruchom" stanie się prawdziwe, uszczelniony styk NO "Uruchom" równolegle ze stykiem NO "Start" zamknie się, utrzymując logikę wejścia w stanie prawdziwy (zatrzaśnięty lub zaplombowany). Po zatrzaśnięciu obwodu można wcisnąć przycisk „Stop” powodując rozwarcie styku NC i w konsekwencji fałszowanie wejścia. Następnie styk NO „Run” otwiera się i układ logiczny powraca do stanu nieaktywnego.

 --+----[ ]--+----[\]----( )
   |   Start |   Stop    Run
   |         |
   +----[ ]--+
        Run
 -------[ ]--------------( )
        Run             Motor

Powyższe realizuje funkcję: Run = (Start OR Run) AND ( NOT Stop)

Ta konfiguracja zatrzasku jest powszechnym idiomem w logice drabinkowej. Może być również określany jako „logika uszczelnienia”. Kluczem do zrozumienia zatrzasku jest rozpoznanie, że przełącznik „Start” jest przełącznikiem chwilowym (gdy użytkownik zwolni przycisk, przełącznik jest ponownie otwarty). Gdy tylko elektrozawór „Uruchom” włączy się, zamyka styk NO „Uruchom”, który blokuje elektrozawór. Otwieranie przełącznika „Start” nie daje wtedy żadnego efektu.

Uwaga: W tym przykładzie „Run” reprezentuje stan bitu w PLC , a „Motor” reprezentuje rzeczywiste wyjście do przekaźnika rzeczywistego, który zamyka rzeczywisty obwód silnika .

Ze względów bezpieczeństwa wyłącznik awaryjny może być połączony szeregowo z przełącznikiem Start, a logika przekaźnika powinna to odzwierciedlać.

 --[\]----[\]----+--[ ]--+---------( )
   ES    Stop    | Start |        Run
                 |       |
                 +--[ ]--+
                    Run
 -------[ ]--------------( )
        Run             Motor

Powyższe realizuje funkcję: Run = ( NIE zatrzymanie awaryjne) AND ( NIE zatrzymanie) AND (start LUB uruchomienie)

Złożona logika

Oto przykład tego, jak mogą wyglądać dwa szczeble w programie logiki drabinkowej. W rzeczywistych zastosowaniach mogą istnieć setki lub tysiące szczebli.

Zazwyczaj złożona logika drabinkowa jest „czytana” od lewej do prawej iz góry na dół. Ponieważ każda z linii (lub szczebli) jest oceniana, cewka wyjściowa szczebla może być zasilana do następnego etapu drabiny jako wejście. W złożonym systemie będzie wiele „szczebelków” na drabinie, które są ponumerowane w kolejności oceny.

 1. ----[ ]---------+----[ ]-----+----( )
      Switch        |   HiTemp   |    A/C

                    |            |
                    +----[ ]-----+
                        Humid
 2. ----[ ]----[\]--------------------( )
        A/C    Heat                 Cooling

Linia 1 realizuje funkcję: A/C = Switch AND (HiTemp LUB Humid )

Linia 2 realizuje funkcję: Chłodzenie = A/C I ( NIE Ogrzewanie)

Jest to nieco bardziej złożony system dla szczebla 2. Po przeanalizowaniu pierwszego wiersza cewka wyjściowa „A/C” jest podawana do szczebla 2, który jest następnie oceniany, a cewka wyjściowa „Chłodzenie” może być podawana na wyjście urządzenia "Sprężarka" lub do szczebla 3 na drabinie. System ten pozwala na rozbicie i ocenę bardzo złożonych projektów logicznych.

Dodatkowa funkcjonalność

Dodatkowa funkcjonalność może zostać dodana do implementacji logiki drabinkowej przez producenta PLC jako specjalny blok. Gdy specjalny blok jest zasilany, wykonuje kod na z góry określonych argumentach. Te argumenty mogą być wyświetlane w specjalnym bloku.

                              +-------+
  -----[ ]--------------------+  A    +----
   Remote unlock              +-------+
                           Remote counter
                             +-------+    
 -----[ ]--------------------+  B    +----
  Interior unlock            +-------+      
                         Interior counter 
                      +--------+
  --------------------+ A + B  +-----------
                      | into C |
                      +--------+
                         Adder

W tym przykładzie system policzy, ile razy naciśnięto przyciski odblokowania wnętrza i zdalnego. Informacje te będą przechowywane w komórkach pamięci A i B. W komórce pamięci C będzie przechowywana całkowita liczba elektronicznych odblokowań drzwi.

Sterowniki PLC mają wiele rodzajów specjalnych bloków. Obejmują one liczniki czasu, operatory arytmetyczne i porównania, przeglądanie tabel, przetwarzanie tekstu, sterowanie PID i funkcje filtrowania. Wydajniejsze sterowniki PLC mogą działać na grupie lokalizacji pamięci wewnętrznej i wykonywać operacje na szeregu adresów, na przykład symulując fizyczny sekwencyjny sterownik bębnowy lub maszynę skończoną . W niektórych przypadkach użytkownicy mogą definiować własne bloki specjalne, które w rzeczywistości są podprogramami lub makrami. Duża biblioteka specjalnych bloków wraz z szybkim wykonaniem pozwoliła na wykorzystanie sterowników PLC do realizacji bardzo złożonych systemów automatyki.

Ograniczenia i języki następców

Notacja drabinkowa najlepiej nadaje się do problemów sterowania, gdzie wymagane są tylko zmienne binarne i gdzie blokowanie i sekwencjonowanie binarnych jest głównym problemem sterowania. Podobnie jak we wszystkich językach programowania równoległego , sekwencyjna kolejność operacji może być niezdefiniowana lub niejasna; możliwe są warunki wyścigu logicznego, które mogą dawać nieoczekiwane wyniki. Złożone szczeble najlepiej podzielić na kilka prostszych kroków, aby uniknąć tego problemu. Niektórzy producenci unikają tego problemu poprzez jawne i całkowite zdefiniowanie kolejności wykonywania szczebla, jednak programiści mogą nadal mieć problemy z pełnym zrozumieniem wynikającej z tego złożonej semantyki.

Wielkości analogowe i operacje arytmetyczne są niezręczne do wyrażenia w logice drabinkowej, a każdy producent ma inne sposoby rozszerzenia notacji dla tych problemów. Zwykle obsługa tablic i pętli jest ograniczona, co często skutkuje powielaniem kodu w celu wyrażenia przypadków, które w innych językach wymagałyby użycia indeksowanych zmiennych.

Ponieważ mikroprocesory stały się bardziej wydajne, notacje, takie jak sekwencyjne wykresy funkcji i schematy bloków funkcyjnych, mogą zastąpić logikę drabinkową w niektórych ograniczonych zastosowaniach. Niektóre nowsze sterowniki PLC mogą mieć całość lub część programowania przeprowadzaną w dialekcie przypominającym język BASIC , C lub inny język programowania z powiązaniami odpowiednimi dla środowiska aplikacji czasu rzeczywistego.

Popularność

W 2019 roku IEEE Spectrum umieściło logikę drabinkową na 50 z 52 na liście popularnych języków programowania.

Zobacz też

Bibliografia

  1. ^ http://ecmweb.com/archive/basics-ladder-logic „Logika drabinkowa wykorzystuje styki przełącznika lub przekaźnika do implementacji wyrażeń logicznych. W minionych latach logika drabinkowa była możliwa dzięki przekaźnikom dyskretnym i była czasami nazywana „logiką przekaźnikową”.
  2. ^ Edward W. Kamen Industrial Controls and Manufacturing , (Academic Press, 1999) ISBN  0123948509 , Rozdział 8 Schematy drabinkowe i implementacje PLC
  3. ^ „Interaktywne: najlepsze języki programowania” . Widmo IEEE . Źródło 2019-10-18 .„Interaktywne: najlepsze języki programowania” . Widmo IEEE .

Dalsza lektura

Zewnętrzne linki