Čo je praktickejšie: objektovo{0}}orientované programovanie PLC alebo rebríková logika?

Aug 03, 2026 Zanechajte správu

V oblasti priemyselnej automatizácie zostáva rebríková logika jedným z najčastejšie používaných programovacích jazykov; v prípade zložitejších ovládacích objektov je však objektovo{0}}orientované programovanie určite vysoko efektívnym prístupom. Najprv si pohovorme o objektovo-orientovanom programovaní:


Objektovo{0}}orientované programovanie je pokročilá programovacia paradigma v-počítačových jazykoch na vysokej úrovni. Túto filozofiu dizajnu je možné aplikovať aj na PLC programy v priemyselných riadiacich systémoch. Hoci nedokážeme implementovať mnohé vynikajúce vlastnosti objektovo-orientovaného programovania-, ako je napríklad „dedičnosť“-a jazyk PLC nemusí mať ani vlastnosti objektovo-orientovaného programovacieho jazyka, základnými pojmami objektovo-orientovaného programovania sú triedy a inštancie tried (tj objekty). Musíme len využiť tieto koncepty. V počítačovom programovaní potrebujeme na definovanie tried abstrahovať a zovšeobecniť určité entity. V priemyselných riadiacich systémoch sú však riadiace objekty, ako sú motory a ventily, jasne definované riadiace kategórie; môžeme im definovať triedy priamo bez potreby abstrakcie. Nasledujúce časti budú používať programovací jazyk Step7 od spoločnosti Siemens a programovací jazyk Unity od spoločnosti Schneider na vysvetlenie objektovo{16}}orientovaného programovania pre PLC.


I. Metódy implementácie


Objektovo{0}}orientované programovanie v kroku 7 je implementované pomocou funkčných blokov (FB). Keď sa objaví táto téma, ľudia často myslia na modulárny programovací prístup navrhnutý spoločnosťou Siemens. V skutočnosti ide o rovnaký koncept, ale pojmy ako „modularizácia“, „bloky údajov na pozadí“ a „viacnásobné pozadia“ zavedené spoločnosťou Siemens neumožňujú používateľom vždy jasne pochopiť a aplikovať túto vynikajúcu filozofiu dizajnu.


Ak k tomu však pristúpite z perspektívy objektovo{0}}orientovaného programovania, môžete oveľa lepšie porozumieť tomuto vzoru návrhu. „FB blok“ sa považuje za „triedu“; možno ho považovať za zoskupenie kódu pre podobné riadiace objekty. Napríklad pre premennú-frekvenčnú jednotku MM440 môžete napísať blok FB s názvom „MtrMM440“. V objektovo{6}}orientovanom programovaní sa to nazýva „trieda“. Keď potrebujete naprogramovať riadenie pre konkrétny motor, môžete mu priradiť blok DB na pozadí-v objektovo{9}}orientovanom programovaní, nazýva sa to implementácia triedy (tj vytvorenie inštancie triedy: objekt). Keď potrebujete ovládať viacero motorov, môžete tomuto bloku FB priradiť rôzne databázy na pozadí, čo je ekvivalentné vytváraniu viacerých inštancií triedy.


Krok 7 obsahuje ďalší typ programového bloku: blok FC. Programovanie primárne využívajúce FC bloky sa v systémoch Siemens označuje ako štruktúrované programovanie, ktoré možno prirovnať k procedurálnemu programovaniu v počítačovom programovaní,-teda programovaniu, ktoré je čisto{3}}založené na funkcii.


Programovanie pomocou softvéru Unity od spoločnosti Schneider poskytuje lepšie pochopenie objektovo{0}}orientovaného programovania. Jeho definície DFB zahŕňajú vstupné/výstupné parametre, súkromné/verejné premenné a implementáciu kódu,-čo sú presne základné prvky „triedy“ v počítačovom objektovo-orientovanom programovaní. Vytvorenie inštancie triedy (objektu) je rovnako jednoduché ako vytvorenie bežnej "boolovskej" premennej; stačí definovať premennú tejto "triedy" v "Function Blocks."


Step7 aj Unity podporujú procedurálne aj objektovo{1}}orientované programovanie. Rozdiel medzi týmito dvoma prístupmi je podobný rozdielu medzi programovaním v C a C++ v počítačových jazykoch vysokej{4}}úrovne.


V nasledujúcom vysvetlení budú FB v Kroku 7 a DFB v Unity označované ako „triedy“, zatiaľ čo kombinácia FB a pozadia DB v Kroku 7, ako aj inštancie DFB v Unity, budú označované ako „objekty“.


II. Objektovo{1}}orientovaná programovacia architektúra


Vyššie uvedená diskusia zahŕňa detaily implementácie, ale filozofia programovania je postavená na architektúre programu. Jednoduché použitie objektovo-orientovaných metód v konkrétnej časti kódu neznamená, že celý program je objektovo-orientovaný. Tento typ programovania si vyžaduje prístup založený na nasledujúcich aspektoch:


1. Návrh štruktúrovaného obvodu.


Táto sekcia sa zameriava predovšetkým na automatizované výrobné linky; pre samostatné obrábacie stroje možno použiť zjednodušenú štruktúru:


<1>Vrstva automatizovanej výrobnej linky: Toto je najvyššia úroveň, ktorá obsahuje hlavné PLC, ktoré riadi rôzne zóny pod ňou.

<2>Projektová vrstva: Táto vrstva má nezávislý systém distribúcie energie, ale nemá PLC; pozostáva len z distribuovaných modulov riadených automatizovanou výrobnou linkou. Ako už názov napovedá, má vysoký stupeň nezávislosti a môže byť navrhnutý a vyrobený ako samostatný projekt. Keď je automatizovaná výrobná linka relatívne malá, možno túto vrstvu vynechať.

<3>,Úroveň funkčnej skupiny: Na základe procesných divízií sú segmenty zariadení, ktoré vykonávajú špecifickú procesnú funkciu, zoskupené do funkčnej skupiny. Táto skupina patrí do inžinierskej úrovne; keď sa vynechá úroveň inžinierstva, patrí do úrovne automatizovanej výrobnej linky. Objektovo-orientované programovanie si nevyhnutne nevyžaduje použitie vyššie uvedenej štruktúry, ale dobre -navrhnutá elektrická štruktúra je vhodnejšia pre objektovo-orientované programovanie.


2. Celá logika pre akýkoľvek ovládací objekt je implementovaná v rámci „triedy“.


Na dosiahnutie tohto cieľa je potrebné analyzovať informácie súvisiace s objektom riadenia. Napríklad pre motor je potrebné zvážiť nasledujúce relevantné informácie:


Vstupné informácie:


<1>,Informácie o ochrane obvodu, ako je istič motora a tepelné relé.

<2>,Informácie o funkčnej ochrane, ako sú koncové spínače pre pohybové motory, tlakové spínače pre ventilátory a spínače hladiny oleja pre olejové čerpadlá.

<3>Podmienky spustenia a zastavenia: Hoci vyššie uvedená ochrana okruhu a funkčná ochrana môžu spôsobiť zastavenie chodu motora a reset môže spustiť reštart, tu uvedené podmienky sú podmienky pre spustenie a zastavenie počas normálnej prevádzky-, ako sú kroky v procese sekvenčného riadenia.

<4>Režimy ovládania: ako manuálne a automatické.

<5>Reset poruchy: Reštartovanie systému pomocou resetovacích signálov.


Informácie o výstupe:

<1>Riadiace výstupy, ako je hlavný stykač ovládajúci motor.

<2>Výstupy stavových informácií

<3>Poruchové výstupy


Informácie o stave úložiska:


Stredné premenné používané na implementáciu kódu, ako aj stavové premenné, ktoré môže HMI čítať. Integrujte všetky vyššie uvedené informácie do jednej triedy a štandardizujte parametre triedy čo najviac. Stále však existujú určité rozdiely v porovnaní s-programovacími jazykmi na vysokej úrovni. Pre Krok 7 je štandard, ktorý treba nasledovať: programová štruktúra je implementovaná pomocou FC a riadenie objektu je implementované pomocou FB, ako je znázornené na nasledujúcom štruktúrnom rámci (ktorého elektrická štruktúra je založená na úvode vyššie): Toto je len hrubá architektúra programu PLC; dobrá architektúra by mala byť komplexnejšia a vedecká.


3. Starostlivo plánujte dátové štruktúry


Definovanie dátových štruktúr je kľúčové a mali by ste sa snažiť tieto štruktúry čo najviac zjednotiť bez obáv o úložný priestor; moderná pamäť PLC je dostatočná na uloženie veľkého množstva údajov. Stojí za zmienku, že v Kroku 7 by ste sa mali vyhnúť definovaniu užívateľom-definovaných typov (UDT) mimo tried vždy, keď je to možné. namiesto toho ich definujte v rámci tried. Aj keď to môže viesť k duplicitným definíciám rovnakej štruktúry v rôznych triedach, zvyšuje to nezávislosť tried.


V nasledujúcich častiach porovnáme tieto dva prístupy k programovaniu:


Výhody objektovo{0}}orientovaného programovania V porovnaní s rebríkovou logikou ponúka objektovo-orientované programovanie nasledujúce výhody:

• Kód je prenosný a ľahko znovu použiteľný;

• Je ľahké používať matematické funkcie, cykly a iné konštrukcie;

• Objektovo{0}}orientované programovanie sa vyučuje prakticky v každom kurze počítačového programovania;

• Kód môže bežať na rôznych hardvérových platformách.


Ak chcete zvládnuť objektovo{0}}orientované programovanie, musíte najprv porozumieť konceptu objektov a tomu, ako ich používať. Akonáhle je objekt alebo trieda napísaná, môže byť jednoducho znovu použitá prostredníctvom viacerých volaní. Napríklad vytvorte objekt na ovládanie motora, ktorý spracováva všetky vstupy, výstupy a poruchy. V prípade potreby je možné ovládať viacero motorov viacnásobným vytvorením inštancie tohto jediného ovládacieho objektu. Toto je známe ako-inštancia na požiadanie. Keď je potrebné ovládať viacero motorov, tento jediný objekt možno použiť opakovane. Volá sa v prípade potreby a inštancie sa vytvárajú tak, ako sa používajú.


Každá inštancia každého motora má svoje vlastné charakteristiky, ako je zastavenie motora, chod motora, rýchlosť motora a preťaženie motora. Väčšina programovacích prác je dokončená pri prvom vytvorení objektu. Toto je iný spôsob myslenia ako rebríková logika a je silnejší, pretože akonáhle je objekt postavený, je ľahké ho použiť a znova použiť. Objektovo-orientované programovanie uľahčuje vykonávanie zložitých matematických funkcií, výpočtov slučiek, polí a vnorených podprogramov. Prakticky každý kurz počítačového programovania-či už na strednej škole, vysokej škole alebo online výukové programy-učí tento koncept. Vytvorený kód je prenosný a môže bežať na rôznych hardvérových platformách.


"Rebríková logika sa riadi formátom elektrických rebríkových diagramov používaných v reléových riadiacich systémoch a väčšina ľudí sa ju môže rýchlo naučiť a zvládnuť."


V porovnaní s rebríkovou logikou má však objektovo{0}}orientované programovanie nasledujúce nevýhody:


• Vyššie náklady;

• Strmšia krivka učenia;

• Riešenie problémov nie je pre personál údržby obzvlášť jednoduché;

• Pred nahraním zdrojového kódu do procesora sa zvyčajne vyžaduje kompilácia.


V porovnaní s rebríkovou logikou si objektovo{0}}orientované programovanie často vyžaduje viac pamäte a vyšší výkon spracovania, čo vedie k vyšším nákladom. Naučiť sa objektovo{2}}orientovaný programovací jazyk môže trvať dlhšie. Pravdepodobne sa vyžaduje výučba v triede a zvládnutie základných konceptov si vyžaduje značný čas, prax, testovanie a aplikáciu. Programátori musia často študovať objektovo{5}}orientované programovanie, aby mohli používať sledovače na sledovanie kódu alebo debuggery na ladenie logiky. Pri tomto type-programovania na vysokej úrovni môže byť ťažké implementovať-možnosti online monitorovania v reálnom čase.


Pred stiahnutím zdrojového kódu do ovládača je potrebné ho skompilovať. Zdrojový kód zvyčajne nie je uložený v pamäti procesora. To znamená, že je potrebné venovať pozornosť zálohovaniu zdrojového kódu, pretože skompilovaný kód zvyčajne nie je možné upravovať. Pri objektovo-orientovanom programovaní musia byť súbory knižnice prepojené s inými zdrojmi používanými počas procesu kompilácie. Bez pochopenia prepojenia a zdrojov bude ťažké spustiť program.


Výhody rebríkovej logiky:


Rebríková logika je jednoduchá a samo{0}}dokumentačná metóda kódovania-niektorí dokonca pochybujú, či sa kvalifikuje ako programovací jazyk. Sleduje formát rebríkových diagramov používaných v reléových riadiacich systémoch a väčšina ľudí sa ho môže rýchlo naučiť a zvládnuť. Je to jediný programovací jazyk široko používaný v oblasti automatizácie strojov po celé desaťročia a v dohľadnej budúcnosti zostane jedným z hlavných programovacích jazykov v automatizačnom priemysle.


Postupom času, ako ľudia z rôznych prostredí a oblastí vstúpili do priemyslu, boli do súpravy nástrojov priemyselnej automatizácie zavedené rôzne programovacie jazyky. Patria sem programovanie funkčných blokov, štruktúrovaný text, stavové programovanie a sekvenčné funkčné diagramy. Tieto štyri programovacie jazyky spolu s rebríkovou logikou tvoria štandardné programovacie jazyky definované štandardom IEC 61131-3 Medzinárodnej elektrotechnickej komisie (IEC).


Logika normy IEC 61131 je taká, že ak každý dodávateľ dodržiava túto normu, potom-aspoň do určitej miery-by sa človeku stačilo naučiť týchto päť programovacích jazykov, aby mohol ľahko prepínať medzi platformami ponúkanými rôznymi dodávateľmi. Nie je to však tak.


To isté platí pre základnú rebríkovú logiku (ako je použitie reléových kontaktov a cievok); pri programovaní sa však treba naučiť syntax a používateľskú skúsenosť každého dodávateľa, ako aj špecifiká používania ich programovacej platformy. Napriek nedostatočnej štandardizácii ponúka rebríková logika oproti objektovo{1}}orientovanému programovaniu nasledujúce výhody:


• Je vhodný- na riadenie strojov a procesov;

• Je ľahšie pochopiteľné, pretože je vo svojej podstate samo{0}}dokumentuje;

• uľahčuje odstraňovanie porúch riadeného systému;

• Je ľahké ladiť;

• Zdrojový kód môže byť zvyčajne uložený v procesore.


Rebríková logika je vhodná- na riadenie strojov a procesov, najmä pre automatizačné systémy s veľkým počtom diskrétnych vstupov a výstupov (I/O). V priebehu rokov sa rebríková logika neustále zdokonaľovala, aby zvládla analógové I/O, vďaka čomu je vhodnejšia pre širokú škálu aplikácií riadenia procesov.

 

V porovnaní s aplikáciami riadenia strojov majú procesné aplikácie zvyčajne vyšší podiel analógových I/O.

Keďže rebríková logika sa používa jednoduchšie ako objektovo{0}}orientované programovanie, mnohí skúsení technici a inžinieri sa ju môžu rýchlo naučiť. Logika je vysoko systematická a organizovaná a jej samo{2}}dokumentačný charakter uľahčuje jej pochopenie a zvládnutie. Pred aktiváciou zariadenia sa musí každý riadok kódu vyhodnotiť ako pravdivý. Ak je na ovládanie päť motorov, je potrebných aspoň päť riadkov kódu, čo značne zjednodušuje proces.

"Zdrojový kód a deskriptory rebríkovej logiky sú zvyčajne uložené v riadiacej jednotke, čím sa eliminuje potreba prístupu k zdrojovému kódu a tým sa odstraňuje frustrácia, ktorú programátori často zažívajú pri pokuse o pochopenie kompilovaných programov."

Pre elektrotechnikov a personál údržby je rebríková logika vysoko intuitívna. Hoci si rebríková logika vyžaduje iný spôsob myslenia ako objektovo{1}}orientované programovanie, dá sa rýchlo zvládnuť štúdiom a pochopenie kódu napísaného inými trvá menej času. Je krištáľovo jasné, kedy je logika pravdivá a kedy nepravdivá. Dokonca aj tí s obmedzenými skúsenosťami s programovaním môžu ľahko pochopiť pojmy, ako sú stavy zapnutia/vypnutia, napájanie cievky, porovnávacie premenné a bežné matematické funkcie.
 

81e77660-9f31-11ed-bfe3-dac502259ad0.jpg

Je jednoduchý a ľahko sa používa, zefektívňuje riešenie problémov a ladenie. Pri sledovaní logiky je ľahké pochopiť aktuálne prevádzkové podmienky. Nevyžaduje sa žiadny softvérový titul ani pokročilé znalosti programovania. Vďaka rebríkovej logike môžu pracovníci údržby a inžinierov jednoducho sledovať proces a pochopiť, čo sa deje. Rebríkovú logiku si možno predstaviť ako pravdivostnú tabuľku: ak je logika naľavo pravdivá, aktivuje sa logika napravo.


Zdrojový kód a deskriptory rebríkovej logiky sú zvyčajne uložené v ovládači. To eliminuje frustráciu programátorov, ktorú často zažívajú, keď sa snažia porozumieť kompilovanému kódu bez prístupu k zdrojovému kódu,-čo je tiež bežný problém v objektovo-orientovanom programovaní.


V porovnaní s objektovo{0}}orientovaným programovaním má však rebríková logika aj tieto nevýhody:


• Počítačoví programátori a IT odborníci nepoznajú rebríkovú logiku;

• Je ťažké vykonávať matematické funkcie, spracovanie textu a spracovanie údajov;

• Spolieha sa na čas skenovania;

• Na vykonanie je potrebný špecializovaný hardvér, ako napríklad programovateľný logický radič (PLC).


Rebríková logika je symbolický jazyk, ktorý počítačoví programátori a IT odborníci nepoznajú, keďže sa ho neučia v škole. Manipulácia s matematickými funkciami, textovými reťazcami a údajmi v rebríkovej logike môže byť náročná, predovšetkým preto, že rebríková logika nebola pôvodne navrhnutá tak, aby zvládala tieto funkcie.


Rebríková logika závisí aj od času skenovania. Väčšie programy vyžadujú viac času na skenovanie a spracovanie logiky. Pri vykonávaní rebríkovej logiky systém číta vstupy, skenuje logiku, aktualizuje dátové tabuľky a výstupy, vykonáva komunikáciu a potom opakuje cyklus. Na zabezpečenie rýchlejšieho vykonávania určitej logiky možno implementovať funkcie, ako sú prerušenia a iné programovacie techniky.


Hoci softvérové ​​-zariadenia PLC nakonfigurované s rebríkovou logikou môžu bežať na počítači PC, hardvér (napríklad PLC) zvyčajne musí byť kompatibilný s programovacím softvérom a najlepšie je zakúpiť oba od toho istého dodávateľa. To zaisťuje kompatibilitu, ale nie je to obzvlášť vhodné, ak chcete zmeniť dodávateľa.


Okrem porovnania výhod a nevýhod rebríkovej logiky a objektovo{0}}orientovaného programovania by používatelia mali tiež posúdiť, ako sa tieto programovacie jazyky budú používať v prostredí, kde budú nasadené. Ak sa továreň alebo zariadenie už štandardizovalo na rebríkovej logike, jej nahradenie objektovo-orientovaným programovaním sa neodporúča, aj keď je pre danú aplikáciu vhodnejšie druhé. Keďže používanie objektovo{4}}orientovaného programovania neustále rastie, očakáva sa, že bude v nasledujúcich desaťročiach koexistovať s rebríkovou logikou. Progresívnemu-odborníkovi na automatizáciu by bolo dobré-odporúčať ovládať oba jazyky.

 

Zaslať požiadavku

whatsapp

Telefón

E-mailom

Vyšetrovanie