FBD ( anglicky Function Block Diagram ) je grafický programovací jazyk podle normy IEC 61131-3 . Určeno pro programování programovatelných logických automatů (PLC) . Program je tvořen seznamem obvodů prováděných postupně shora dolů. Řetězy mohou být označeny. Instrukce skoku na štítek umožňuje změnit pořadí provádění obvodů pro podmínky programování a smyčky.
Programování využívá sady knihovních bloků a uživatelské bloky také napsané v FBD nebo jiných jazycích IEC 61131-3 . Blok (prvek) je podprogram, funkce nebo funkční blok (AND, OR, NOT, spouštěče , časovače, čítače, bloky zpracování analogového signálu, matematické operace atd.).
Každý jednotlivý řetězec je výraz složený graficky z jednotlivých prvků. Další blok je připojen k výstupu bloku a tvoří řetězec. Uvnitř řetězce jsou bloky prováděny přesně v pořadí jejich připojení. Výsledek výpočtu obvodu je zapsán do interní proměnné nebo přiveden na výstup PLC.
Příklad fragmentu programu na FBD: A děleno B , vynásobeno 2 a zapsáno do proměnné result
┌────────┐ │ │ ┌────────┐ A───────┤ │ │ * │ │ / ├────────┤ ├───výsledek │ │ │ │ B ──────┤ │ 2 ──┤ │ │ │ └────────┘ └────────┘Stejná funkce v pseudokódu:
výsledek := 2 *( A / B );Pokud je potřeba řídit volání bloků, jsou k nim přidány speciální vstupy EN (enable) a výstupy ENO. Logická nula na vstupu EN deaktivuje volání bloku. Výstup ENO se používá k indikaci chyby v bloku a zastavení výpočtu zbytku příčky.
Jazyk FBD se snadno učí, je názorný a vhodný pro aplikované specialisty, kteří nemají speciální vzdělání v oblasti informatiky. Přísná sekvence provádění má za následek jednoduchou vnitřní strukturu instrukcí, která se převádí do rychlého a spolehlivého kódu. FBD velmi jasně odráží vztah vstupů a výstupů diagramu. Pod podmínkou kvalitativní studie algoritmu z pozice přenosu signálu je jeho znázornění ve formě FBD diagramu názornější než v textových programovacích jazycích [1] .
Existuje mnoho praktických implementací jazyka FBD s určitými rozšířeními nebo omezeními. Existuje praxe, ve které mohou různé organizace vyvíjet specializované verze FBD , včetně verzí optimalizovaných pro určité typy programovatelných logických automatů. Takovým příkladem je jazyk C anny Function D iagram ( CFD ), stejně jako rozšíření jazyka FBD v prostředí CoDeSys , které k němu přidává metodiku objektově orientovaného programování [2] .
Jednou z variant FBD je programovací jazyk CFC ( Continuous Function Chart ) . Umožňuje libovolně nastavit pořadí, ve kterém se bloky provádějí. CFC grafy dávají programátorovi větší svobodu jednání, ale kompromisem je o něco vyšší pravděpodobnost chyby a větší kód.
Existuje modifikace FBD , která umožňuje použití pouze čistých funkcí s jedním výstupem, bez mezistavů. Implementuje paradigma funkčního programování .
Programovací jazyky IEC 61131-3 :
Programovací jazyky | |
---|---|
|