Medzi najpopulárnejšie jazyky na programovanie PLC patria:
- štruktúrovaný text (Structured Text – ST),
- sekvenčný funkčný (vývojový) diagram (Sequentional Function Charts – SFC),
- rebríkový logický diagram alebo jazyk kontaktných/reléových schém (Ladder Logic Diagram – LD),
- funkčný blokový diagram (Function Block Diagram – FBD),
- postupnosť inštrukcií (Instruction List – IL).
Medzinárodná elektrotechnická komisia IEC vo svoje norme 61131-3 načrtáva päť rôznych programovacích jazykov PLC: jazyk kontaktných/reléových schém, štruktúrovaný text, funkčné blokové diagramy, sekvenčné funkčné (vývojové) diagramy a postupnosť inštrukcií. Každý z týchto jazykov má výhody, slabé stránky a prípady najlepšieho použitia. Každý kompetentný programátor PLC si musí uvedomiť tieto možnosti pri riešení programovania konkrétnej aplikácie, využívať správny nástroj pre danú úlohu a mať vlastný pohľad na riešenie problémov. V závislosti od zvolenej platformy PLC môžu byť niektoré jazyky odporúčané alebo nemusia byť k dispozícii vôbec.
Pozrime sa podrobnejšie na každý z týchto jazykov, prejdime si ich aplikácie, všeobecnú štruktúru a prípady použitia.
Aký je najobľúbenejší programovací jazyk pre PLC?
Táto otázka je predmetom diskusií medzi programátormi PLC po celom svete. Konsenzus je taký, že najpoužívanejším jazykom na programovanie PLC je jazyk kontaktných/reléových schém, nazývaný aj rebríková logika. Je totiž vysoko flexibilný, ľahko sa učí a veľmi dobre rozumie elektrikárom, ktorí pracovali so schémami modelujúcimi rovnakú architektúru.
Za posledné desaťročie však do výroby vstúpila mladšia pracovná sila. Títo inžinieri a technici sa primárne učili moderné jazyky, ako sú Java, Python a Javascript keďže tieto jazyky sa viac podobajú na štruktúrovaný text. Treba však zohľadniť aj to, pre ktoré priemyselné odvetvie bude aplikácia programovaná. Vývoj aplikácií pre chemický priemysel sa zvyčajne realizuje použitím schém potrubí a prístrojového vybavenia (Piping and Instrumentation Diagrams – P&ID). Tieto schémy však možno ľahko replikovať pomocou funkčných blokových diagramov (FBD).
Kontaktné/reléové schémy
Predtým, ako sa PLC stali populárnymi, bolo riadenie vo väčšine výrobných závodov založené na štandardných relé. Relé zapínali a vypínali zariadenia na základe jednoduchej logiky, ktorá sa realizovala prostredníctvom ich fyzického spínania. Prepojenie týchto zariadení bolo špecifikované na elektrotechnických výkresoch, ktoré predpokladali usporiadanie pripomínajúce rebrík. Po zavedení prvých PLC do prevádzok sa objavilo aj ich programovanie cez kontaktné schémy, ktoré napodobňovalo rozloženie obvodov založených na relé. Inými slovami, logika kontaktných schém (rebríka) bola jedným z prvých programovacích jazykov PLC, ktorý sa dnes kvôli jednoduchosti stále používa.
Od svojho vzniku sa programovanie cez kontaktné/reléové schémy výrazne vyvinulo. Základné princípy fungovania však zostávajú rovnaké. Programovanie PLC cez LD vyhodnocuje každú „priečku rebríka“ v postupnom poradí a hodnotí podmienkové inštrukcie. Ak je výsledok vyhodnotený ako „TRUE“, vykonajú sa výstupné inštrukcie.
Výhody programovania PLC v LD
- Jednoduché na implementáciu a riešenie problémov – LD je vizuálny jazyk, ktorý poskytuje potvrdenie stavu pre väčšinu inštrukcií. Inými slovami, aj ten, kto má málo znalostí o konkrétnom procese, môže ľahko prejsť programom a pochopiť logiku.
- Modulárny dizajn – LD možno ľahko upraviť pridaním alebo odstránením logiky. Každá „priečka“ je samostatnou podmienkou a možno ju podľa potreby odstrániť alebo pridať.
- Odolnosť a konzistentnosť – LD umožňuje programátorovi implementovať mnoho funkcií. Jazyk je však veľmi „zošnurovaný“ štandardmi a neposkytuje úplnú flexibilitu, čím na druhej strane udržuje konzistenciu programu naprieč rôznymi implementáciami.
Nevýhody LD
- Nie je jednoduchý pre všetkých – LD je síce jednoduchý jazyk, ale nie je príliš intuitívny pre tých, ktorí vyrástli na jazykoch ako C, C++, Java alebo Python. Môže byť teda jednoduchší na pochopenie pre elektrotechnikov a pre tých, ktorí majú základné znalosti programovania zostáv.
- Pomalé nasadenie – kvôli vizuálnej povahe logiky v LD trvá programátorovi dlhšie, kým vytvorí logiku, ktorú potrebuje. V porovnaní s inými modernými programovacími jazykmi treba presúvať prvky, čím sa vývojový proces spomaľuje.
- Neintuitívne pre zložité aplikácie – LD je skvelým nástrojom, pokiaľ ide o sekvenčné logické úlohy. Pokiaľ však ide o modernú teóriu riadenia, ktorá zahŕňa PID, riadenie prietoku, analógové snímače a spätnoväzbové slučky, implementácia a dešifrovanie nie sú vždy ľahké.
LD je najpoužívanejší programovací jazyk PLC na svete. Je ľahké s ním pracovať a udržiavať programy v ňom vytvorené pre tých, ktorí neprogramujú PLC tak často. Odporúčame vám preto začať s programovaním PLC práve pomocou LD.
Štruktúrovaný text
Štruktúrovaný text je programovací jazyk PLC, ktorý sa veľmi podobá na C alebo assembler. Programátor vytvára riadky programu, ktoré sa spúšťajú postupne, vyhodnocuje konkrétne funkcie, booleovskú logiku a napája príslušné výstupy PLC. Štruktúrovaný text poskytuje jednoduchý prechod do sveta PLC pre tých, ktorí postavili svoje základy na tradičných programovacích jazykoch, ako je C, C++, Java alebo Python. S programom vytvoreným pomocou štruktúrovaného textu možno ľahko narábať aj v textových procesoroch, čo umožňuje jeho rýchlu implementáciu bez potreby hardvéru.
Výhody programovania PLC so štruktúrovaným textom
- Intuitívne pre iné programovacie jazyky – ako sme už spomenuli, štruktúrovaný text sa ľahko naučia tí, ktorí prichádzajú z prostredia softvérového inžinierstva. Obsahuje rovnaké štruktúry, programovacie paradigmy a funkcie, aké by človek očakával v prostredí C alebo Java.
- Vysoká komplexnosť – štruktúrovaný text umožňuje väčšiu flexibilitu ako iné jazyky a tým uľahčuje implementáciu pokročilých funkcií pre tých, ktorí tento jazyk ovládajú.
- Prenositeľnosť – štruktúrovaný text je štandardizovaný medzi väčšinou systémov PLC, čo uľahčuje migráciu medzi platformami. Medzi inými platformami nájdete značné rozdiely v iných jazykoch, štruktúrovaný text však možno implementovať do takmer všetkých hardvérových a softvérových platforiem.
Nevýhody štruktúrovaného textu
- Ťažké riešenie problémov – v porovnaní s programom vytvoreným v LD je štruktúrovaný text z hľadiska riešenia problémov oveľa zložitejší. Neexistujú žiadne vizuálne fronty, menej vizuálnych pomôcok a zvyčajne viac programu na jednom riadku. Tí, ktorí tento jazyk až tak nepoznajú, budú mať problém zistiť priebeh procesu.
- Náchylný na chyby – štruktúrovaný text poskytuje používateľovi väčšiu flexibilitu. Cenou za ňu je však štandardizácia. Programátori musia používať osvedčené postupy v oblasti softvérového inžinierstva na vytvorenie bezpečných riešení a zachytenie potenciálnych chýb softvéru.
Ak nemáte znalosti v inom programovacom jazyku, odporúčame, aby ste sa štruktúrovaný text naučili až po zvládnutí LD. V prostredí výrobných prevádzok sa kvôli uvedeným nevýhodám programovanie prostredníctvom štruktúrovaného textu často nevidí. Je to však vynikajúci spôsob manipulácie s údajmi, implementácie cyklov FOR a ďalších štruktúr, ktoré si v LD vyžadujú viac práce.
Funkčný blokový diagram
Je programovací jazyk vyvinutý s ohľadom na požiadavky aplikácií v chemickom priemysle. Umožňuje používateľovi vytvoriť vizuálne znázornenie a priebeh procesu s príslušnými prechodmi medzi inštrukciami. Vizuálny editor je používateľsky prívetivý, intuitívny a ponúka prirodzený spôsob implementácie konkrétnych tokov. Najbežnejšou aplikáciou, kde sme využili tento typ programovania PLC, bolo zavedenie PID regulátorov. Vizuálny aspekt FBD umožňuje ľahkú implementáciu PID, ich vizualizáciu, ladenie a riešenie problémov priamo v prevádzke.
Výhody programovania PLC pomocou FBD
- Flexibilný vizuálny editor – editor programovania funkčných blokových diagramov je veľmi používateľsky prívetivý a poskytuje jednoduchý spôsob vytvárania ľubovoľného rozloženia.
- Ideálne pre komplexné programovanie štruktúr – v LD bude musieť používateľ použiť viac priečok na to, čo možno dosiahnuť na jednej stránke FBD. Inštrukcie možno priamo preniesť do zložitejších foriem, ako sú napr. PID slučky, riadenie pohybu a doplnkové inštrukcie (Add-on-Instruction – AOI).
- Používateľsky prívetivý – vizuálny editor FBD je pre väčšinu používateľov prirodzený. Rozloženie procesu možno znovu vytvoriť pomocou metodiky drag-and-drop, kde je malý priestor na chybu.
Nevýhody FBD
- Ťažko štandardizovateľné – vzhľadom na flexibilitu rozloženia je náročné štandardizovať programy napísané v FBD. Každý programátor PLC bude mať svoj prístup, ktorý sa líši od ostatných. Tí, ktorí prídu už k hotovému programu, budú ťažko chápať tok informácií.
- Problém v mierke – FBD je skvelý vtedy, keď ide o malé implementácie konkrétnych oblastí procesu. Čím je však program zložitejší, tým ľahšie sa v ňom stratíte.
Funkčné blokové diagramy sú veľmi vhodné na programovanie PID slučiek či sekvencií riadenia pohybu. Ak bude potrebné riešiť tieto oblasti, FBD je na to vhodný. Opäť by sme však odporučili osvojiť si programovanie v LD.
Sekvenčné funkčné (vývojové) diagramy
Ako vyplýva už z názvu, sekvenčné funkčné diagramy (SFC) sú vhodné, pokiaľ ide o procesy nasledujúce za sebou. Pre tých, ktorí si to nevedia predstaviť, môže byť príkladom chemická premena zo surovín na hotový výrobok. Vezmime si ako príklad jednoduchý proces varenia. Predstavte si veľké zariadenie na varenie piva s mnohými nádržami, ventilmi, snímačmi tlaku, vykurovacími prvkami a časťou na balenie. Keď operátor začne výrobu novej dávky, proces prejde nasledujúcou postupnosťou krokov (upozorňujeme, že tieto kroky sú zjednodušené):
- Krok 1 – systém je overený na pripravenosť. Sú k dispozícii všetky príslušné prísady? Sú nádrže prázdne? Sú ventily v správnom stave? Ak je odpoveď na všetky otázky kladná, pokračujte. Ak nie, koniec.
- Krok 2 – spustite sekvenciu plnenia nádrže, ktorá môže vyžadovať viac prísad (voda, cukor, soľ, droždie atď.). Overte stav a pokračujte, keď je nádrž plná.
- Krok 3 – spustite proces varenia. Zvyšujte a udržujte teplotu po stanovený čas. Monitorujte tlak v nádrži a podľa toho reagujte. V prípade potreby pridajte prísady. Po dokončení varenia pokračujte ďalším krokom.
- Krok 4 – začnite presun do zadržiavacej nádrže. Naša dávka je pripravená; skontrolujte, či sú všetky príslušné ventily nastavené do správnej polohy, zadržiavacia nádrž je prázdna a začnite proces prepravy.
- Krok 5 – preneste dávku do zariadenia na plnenie do fliaš.
Z uvedeného príkladu je zrejmé, že kroky procesu sa vykonávajú postupne, majú definované začiatočné podmienky a to, ako by proces prebiehal vo výrobnom závode. V LD možno tento proces implementovať prostredníctvom inštrukcie SQI/SQO. Lepším prístupom by však bolo využitie SFC.
Výhody programovania pomocou sekvenčných diagramov
- Napodobovanie procesných tokov väčšiny chemických procesov – dávkovanie je bežný chemický procesný prístup, ktorý vyžaduje stanovené množstvo surovín a transformuje ich na konečný produkt. Pre takéto typy aplikácií je SFC jednotkou.
- Možnosť kombinácie s ST – väčšina editorov SFC umožňuje v špecifických prípadoch použiť štruktúrovaný text na vytvorenie pokročilých logických tokov.
Nevýhody SFC
- Nepoužiteľné vo väčšine aplikácií – je náročné aplikovať sekvenčné funkčné diagramy na proces, ktorý nie je sekvenčný. Inými slovami, SFC má obmedzené možnosti použitia.
- Paralelné toky je ťažké implementovať a odstraňovať v nich problémy – v rámci SFC môžete implementovať neobmedzené množstvo procesných tokov cez SFC. Nakoľko sa procesné cesty delia na viac tokov, je ťažké implementovať samostatné cesty toku, ktoré by viedli k robustnej postupnosti.
Programovanie v SFC je v konkrétnych prípadoch mimoriadne užitočné. No ak chcete zvoliť tento prístup v rámci typu procesu, ktorý nie je postupný – sekvenčný, rýchlo zistíte, že „tadiaľ cesta nevedie“. Ak idete programovať nejakú aplikáciu z reálneho výrobného prostredia, odporúčame, aby ste sa pred samotným programovaním v SFC oboznámili s procesom, porozumeli toku produktu a pokúsili sa zostaviť model na papieri.
Postupnosť inštrukcií
Postupnosť inštrukcií sa často zamieňa so štruktúrovaným textom pre podobné editory. Tieto dva programovacie jazyky možno zvyčajne vidieť na rôznych platformách, pretože ich tok je podobný. Napríklad riadiace systémy a PLC postavené na štandarde Codesys umožňujú používateľom implementovať logiku do postupnosti inštrukcií, zatiaľ čo riadiace systémy postavené na RSLogix 5000 majú prístup iba k štruktúrovanému textu.
Pokiaľ ide o priebeh programu, každý riadok špecifikuje inštrukciu, ako aj podmienky a výsledky konania. V mnohých aspektoch je postupnosť inštrukcií podobnejšia programu vytvorenému v LD ako cez štruktúrovaný text. Každý z týchto jazykov je však schopný vytvoriť rovnaký tok procesu.
Výhody postupnosti inštrukcií
- Vysoko štandardizované – postupnosť inštrukcií je postavená na pevnej štruktúre, ktorá vyžaduje, aby používateľ explicitne vytvoril premenné, špecifikoval podmienky a uviedol zoznam všetkých inštrukcií. Medzi implementáciami programu existujú len malé variácie, čo vedie k ľahkému pochopiteľnému programu.
- Zamerané na inštrukcie – ako už napovedá názov, dôležitosť sa viac prikladá inštrukciám ako dátovému toku. Tento štýl programovania prináša jasný prehľad o spôsobe spracovania údajov v programe.
Nevýhody postupnosti inštrukcií
- Programovací jazyk nie je k dispozícii na väčšine platforiem PLC – ako už bolo spomenuté, postupnosť inštrukcií nie je populárnou metódou programovania, pretože pre väčšinu programátorov je neprirodzené. Sú bližšie k tomu, čo môžeme vidieť v assembleri, a nie k inému programovaciemu jazyku na trhu.
Záver
Päť najobľúbenejších programovacích jazykov PLC sú kontaktné/reléové schémy (rebríková logika), štruktúrovaný text, funkčné blokové diagramy, sekvenčné funkčné (vývojové) diagramy a postupnosť inštrukcií. Tieto metódy programovania sú dostupné na väčšine platforiem. Niektoré PLC nemajú všetky typy dostupné v základnej verzii, ale len ako možnosť na dokúpenie.
Odporúčame, aby každý programátor PLC začínal rebríkovou logikou, pretože táto metóda je v priemysle najbežnejšia. Pretože je človek vystavený pokročilým metodikám programovania, je dôležité naučiť sa ďalšie jazyky, ktoré môžu predstavovať ľahší spôsob implementácie konkrétnych procesov.
Zdroj: Romanov, V.: Top 5 Most Popular Types of PLC Programming Languages. [online]. Citované 10. 5. 2021.