Programowalne sterowniki logiczne (PLC) to komputery przemysłowe, wyposażone w różnego rodzaju wejścia i wyjścia (analogowe, cyfrowe, tranzystorowe, przekaźnikowe). Stosuje się je do sterowania i monitorowania pracy wielu różnych urządzeń w przemyśle i logistyce. Międzynarodowa Komisja Elektrotechniczna (IEC) definiuje pięć języków programowania sterowników PLC. Są to: język drabinkowy, diagramy blokowe, sekwencyjne diagramy funkcji, tekst strukturalny i listy instrukcji. Każdy z tych języków należy do jednej z dwóch kategorii: graficznej lub tekstowej. Języki graficzne składają się z elementów wizualnych, podczas gdy języki tekstowe wykorzystują ciągi tekstowe.
Programowanie PLC – czym charakteryzują się poszczególne techniki?
Język drabinkowy
Język drabinkowy (logika drabinkowa), to graficzny język programowania sterowników PLC oparty na schematach obwodów logiki przekaźników. Składa się z dwóch równoległych prętów połączonych szeregiem szczebli, przypominających wyglądem drabinę (stąd nazwa). Na tych szczeblach znajdują się styki i cewki, które symbolizują odpowiednio wejścia (takie jak np. wartość czujnika) i wyjścia (takie jak np. polecenie uruchomienia silnika).
Większość programistów sterowników PLC preferuje logikę drabinkową i nie bez powodu. Jest to język elastyczny, wszechstronny, pozwala na łatwe rozwiązywanie problemów i jest prosty do nauczenia. Wadą jest jednak to, że gdy drabina dotrze do określonej liczby szczebli, konieczne może być podzielenie jej na większą liczbę mniejszych drabin.
Schemat bloków funkcyjnych
Diagram bloków funkcyjnych (FBD) to kolejny popularny graficzny język programowania sterowników PLC. Składa się z różnego rodzaju bloków posiadających wejścia i wyjścia. Urządzenia podłączone do sterownika PLC można podłączyć do wejścia, a zmienne można wysyłać do wyjścia. Dodatkowo bloki łączą się ze sobą — wyjście jednego bloku może być podawane na wejście innego bloku. Bloki te definiują funkcje systemu.
Język bloków funkcyjnych jest stosunkowo prosty, choć jego używanie wymaga pewnej wprawy. Jest to doskonały wybór do stosowania w sterownikach bezpieczeństwa, układach regulacji oraz tam, gdzie zachodzi potrzeba częstego ponownego wykorzystania kodu.
Sekwencyjne diagramy funkcji
Sekwencyjne diagramy funkcji (Sequential Function Charts – SFC) to graficzny język programowania sterowników PLC oparty na algorytmie GRAFCET. Przypomina on schemat bloków funkcyjnych. Język składa się z kroków i przejść. Kroki to działania, które należy wykonać, a przejścia to warunki logiczne, które należy spełnić przed przejściem do następnego kroku.
Główną zaletą korzystania tego języka jest to, że może uprościć skomplikowany proces poprzez podzielenie go na łatwiejsze do zarządzania części. Testowanie i rozwiązywanie problemów może być łatwiejsze niż w przypadku innych języków programowania PLC. Sekwencyjne diagramy funkcji są idealnym rozwiązaniem w przypadku złożonych procesów wielostanowych czy procesów połączonych, gdy wiele procesów ma być uruchamianych równolegle lub sekwencyjnie.
Tekst strukturalny
Tekst strukturalny to język programowania PLC wysokiego poziomu. Jest to język tekstowy, którego składnia jest porównywalna do C lub C++. W języku tym instrukcje (takie jak na przykład instrukcja warunkowa „IF”) służą do wykonywania funkcji.
W przypadku pracy z tekstem strukturalnym rozwiązywanie problemów może być złożonym procesem, ponieważ stany zmiennych nie są łatwo rozpoznawalne. Ten język najlepiej nadaje się do wykonywania takich czynność jak analizowanie kodów kreskowych, zapętlanie, manipulowanie danymi, wypełnianie luki w kodzie maszynowym, wykonywanie skomplikowanych obliczeń matematycznych lub wyszukiwanie danych.
Lista instrukcji
Lista instrukcji to tekstowy język programowania PLC niskiego poziomu, stoi o stopień wyżej niż język maszynowy. Składa się ona z prostej serii instrukcji i jest podobna do języka asembler. Język ten w aktualnym standardzie Międzynarodowej Komisji Elektrotechnicznej został uznany za przestarzały, co oznacza, że prawdopodobnie nie będzie dłużej stosowany w celu programowania nowych PLC. Nadal jednak można się będzie z nim zetknąć w przypadku starszych sterowników.
Programowanie PLC – jak wytypować język dla konkretnego wdrożenia?
Wszystkie powyższe języki pozwalają osiągnąć wszystko to, do czego zdolny jest sterownik PLC. Z tego powodu wybór języka często uzależniony jest od praktycznych względów związanych z wdrażaniem i konserwacją. Ważne jest, aby wziąć pod uwagę preferencje klienta oraz to, jaki jest zestaw umiejętności programistów, inżynierów i personelu serwisującego.
Programowanie PLC a system SCADA
Nowoczesne systemy nadzoru SCADA mogą współpracować z dowolnym programowalnym sterownikiem logicznym, wykorzystującym dowolny język programowania PLC. Systemy SCADA pozwalają na płynne połączenie i komunikację pomiędzy sterownikami pochodzącymi od różnych producentów: Siemens, Schneider Electric, Rockwell Automation (Allen Bradley), Omron, Mitsubishi, GeFanuc, ABB. Ta swoboda pozwala wybrać najlepszy język i sprzęt dla danego projektu.