Průměrný programátor programovatelných logických automatů (plc) má tendenci psát kód pro sebe kvůli okamžitému řešení, což může způsobit komplikace v delším horizontu. Zdroj Breen Machine Automation Services Průměrný programátor programovatelných logických automatů (plc) má tendenci psát kód pro sebe kvůli okamžitému řešení, což může způsobit komplikace v delším horizontu. Zdroj Breen Machine Automation Services

Programování programovatelných logických automatů (PLC) se často provádí za účelem vyřešení okamžitého problému, což však může vést k dlouhodobým obtížím, zejména pokud původní programátor není nablízku. Podívejte se na tipy pro programování PLC, kterými je třeba se řídit, a inspirujte se, čemu je třeba se vyhnout.

Výroba se zastavila, klient přichází o 100 000 dolarů za hodinu a zavolá programátora PLC, aby to co nejrychleji napravil. Programátor si začne hledat letenky na poslední chvíli a spustí virtuální privátní síť (VPN). O hodinu později programátor hledí na (pro něj) nový program, tisíce příček liniových schémat, žádné popisy značek, nejasné konvence pojmenování, stokrát zkopírovaný a vložený kód – to vše v jedné obrovské rutině. V tu chvíli si asi programátor nepomyslí o původním programátorovi nic hezkého.

Programování PLC: Osm tipů, kterými se řídit, a pět kroků, jimž se vyhnout

Průměrný programátor PLC má tendenci psát kód pro sebe, aby měl okamžité řešení. Je snadné zapomenout na chudáka, který to bude muset v budoucnu udržovat. Pokud nebudeme pozorní, můžeme se stát důvodem, proč někdo začne na obrazovku sprostě nadávat. Zde je několik jednoduchých tipů, jak nebýt takovým programátorem.

TAKTO NE – Kopírování a vkládání repetitivní logiky. Řekněme, že chcete postupně aktivovat dvě cívky. Jedna příčka pro zapnutí první, možná časovač se zpožděním a pak příčka pro zapnutí další. Kromě změny názvu značky z „CoilOne“ na „CoilTwo“ jsou příčky totožné. Všichni máme takový kód, protože to je obvykle všechno, jen pár příček. Co se ale stane, když máte 50 cívek? Než začnete mačkat Ctrl+V... 

TAKTO ANO – Hledejte příležitosti k opětovnému použití kódu. Smyčky jsou váš přítel. AOI, podprogramy, a dokonce i základní pole mohou urychlit vývoj, udržet kód čistší a usnadnit jeho budoucí údržbu. Změna logiky? Nemusíte vkládat 50 oprav, stačí jedna malá změna v podprogramu a je hotovo. Prosím? Klient chce, aby z 50 cívek bylo nyní 100? Pokud jste to udělali správně, měli byste doslova jen změnit značku „Coil_Count“ nebo jakoukoli jinou značku z 50 na 100. 

TAKTO NE – Používání nesrozumitelných názvů značek bez označení.

„tmrdelay“ – „timer“ (časovač) a „delay“ (zpoždění) jsou redundantní. K čemu je toto zpoždění? Používáme ho k rozblikání světla nebo k čekání na bezpečnou dobu před spuštěním těžkého lisu?

„AB_XGI:I.Data[1]“ – je zřejmé, že se jedná o datovou strukturu pro nějaké připojené zařízení, ale odkazovat na ni takto v hlavní rutině znamená zahodit příležitost pro srozumitelný kód.

„fireRobotMove“ – který robot? Jaký pohyb? Potřebuji hasicí přístroj? Tyto názvy značek nejsou samy o sobě zbytečné, ale bez kontextu mnoho neznamenají.

TAKTO ANO – Používejte popisné názvy značek. V názvu by mělo být uvedeno, k čemu značka slouží. Pozornost je třeba věnovat také formátování. Dokonce i „tmrDelay“ nebo „tmr_delay“ by bylo lepší. Nikdo by neměl hádat, kde je rozdělení slov. 

TAKTO ANO – Přidejte popisy ke značkám a příčkám. Jednoduchá vyrovnávací rutina nebo alias může změnit „AB_XGI:I. Data[1]“ na něco užitečnějšího, například „partXPos“; „tmrdelay“ by se mohlo stát „tmrDrivesReady“. Ještě lepší by byl popis na štítku nebo na příčce, který by vysvětloval, k čemu slouží.

TAKTO ANO – Pište slova pravopisně správně. Zkoušeli jste někdy najít všechny značky týkající se údajů o poloze a jedna z nich je „poistion“? Asi to znáte...

TAKTO NE – Nezanedbávejte strukturu programu. Nikdo se nechce prokousávat 200 příčkami rutiny s názvem „Main“, která zahrnuje vše od vstupu/výstupu (I/O) až po procesní tok. 

TAKTO ANO – K udržení pořádku používejte rutiny a uživatelsky definované datové typy (UDT) (nebo „struktury“ v závislosti na výrobci). Jednoduché rozdělení kódu na několik rutin nazvaných „Camera“, „InputBuffer“ a „Faults“ automaticky zvyšuje čitelnost. Žádné procházení 50 příčkami nesouvisející logiky – pokud potřebujete logiku kamery, vyhledejte rutinu „Camera“.

TAKTO ANO – UDT jsou neuvěřitelně užitečné. Umožňují seskupovat a pojmenovávat data, a to i v polích. Pokud například máte mnoho dat o poloze, která se vracejí ze systému počítačového vidění, můžete je uspořádat vytvořením UDT „Position“ se značkami „X“, „Y“ a „Z“; „point1“ s dílčími značkami je mnohem lepší než „point1X“, „point1Y“ a „point1Z“. Snadněji se přejmenovávají, snadněji se na ně odkazuje, snadněji se vkládají do pole a iterují.

TAKTO NE – Nebuďte přehnaně optimističtí:

„Tento projekt bude trvat jen několik měsíců.“

„Klient přesně ví, co chce.“

„Nikdo kromě mě to neuvidí.“

…nebo můj osobní favorit:

„Budu si pamatovat, proč jsem to udělal.“ 

TAKTO ANO – Pamatujte na Murphyho zákony: „Všechno, co se může pokazit, se pokazí.“ Tento bod má ve skutečnosti zdůraznit nezbytnost všech ostatních. Pozitivní přístup je málokdy špatná věc, ale kdyby se nikdy nic nepokazilo, pravděpodobně bychom neměli práci. Věci se kazí, plány se mění, stávají se nehody. Škálovatelný, čitelný a udržovatelný kód je Murphyho smrtelnou slabinou.

Nejlepší, co můžeme udělat pro přípravu na neznámou budoucnost, je pamatovat na výše uvedené zásady TAKTO ANO pro programování PLC. Používáním datových struktur, organizace, konzistentních stylů pojmenování a popisných komentářů píšeme kód, který je udržovatelný a flexibilní. To usnadní práci každému, kdo se bude muset na projekt podívat v budoucnu.

Váš klient vám poděkuje, až bude potřebovat přidat nové tlačítko. Vaši spolupracovníci vám poděkují, že máte přehlednou strukturu. Podle mých zkušeností však nejvíce pomáháte sami sobě. Protože – upřímně řečeno – v 50 % případů, kdy si stěžuji na kód, je to můj vlastní.

TAKTO NE – Nesnažte se to jen nějak zprovoznit. 

TAKTO ANO – Udělejte si čas, abyste to udělali správně. Pracujte chytře nyní, abyste si usnadnili práci později.

Jon Breen, autor článku, je majitel společnosti Breen Machine Automation Services LLC. Společnost Breen Machine Automation Services je obsahový partner vydavatelství CFE Media and Technology. Upravil Chris Vavra, ředitel pro webový obsah časopisu Control Engineering, CFE Media and Technology, Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript..

Control Engineering Česko

Control Engineering Česko je přední časopis o průmyslové automatizaci. Je vydáván v licenci amerického Control Engineering, které poskytuje novinky z této oblasti více než 60 let.

www.controlengcesko.com