A jelfolyam nyelve — ahol a blokkok egymásba ágyazása maga a kiértékelési sorrend, és ahol a szabadságnak ára van.

Az előző fejezet nyelve, a létradiagram, kapcsolókban gondolkodik. Az FBD jelekben.

Ha valaha láttál blokkvázlatot — szabályozási kör, jelfeldolgozási lánc, logikai kapcsolás kapukkal —, akkor az FBD ismerős lesz: dobozok, közöttük vonalak, és a jel balról jobbra folyik.

14.1 Az FBD alapelve

Az FBD (Function Block Diagram, funkcióblokk-diagram) ugyanabban a kombinált szerkesztőben él, mint az LD és az IL (13. fejezet), és ugyanaz az alapegysége:

„A hálózat az FBD- vagy LD-program alapegysége.”3

Egy hálózat tartalmazhat „logikai és aritmetikai kifejezéseket, program-, függvény- vagy funkcióblokk-hívásokat, ugrásokat vagy visszatérési utasításokat”.3 Minden hálózathoz adható cím, megjegyzés és jelölés.3

Egy FBD-hálózat: a jel balról jobbra folyik a blokkokon át OR bKezi bAuto AND bAjtoZar bVesz negálás bIndulhat értékadás jelfolyam: a blokk kimenete a következő blokk bemenete Ugyanez ST-ben: bIndulhat := (bKezi OR bAuto) AND bAjtoZar AND NOT bVesz; Az FBD a zárójelezést teszi láthatóvá: a blokkok egymásba ágyazása maga a kiértékelési sorrend.
14.1. ábra. Egy FBD-hálózat. A blokkok kimenete a következő blokk bemenete; a kis kör a negálást jelöli.

Az elemek, amikből egy hálózat felépül:

Elem Mit csinál?
blokk (box) egy operátor (AND, OR, ADD…), függvény vagy funkcióblokk. A típus a dobozban, a példánynév a doboz felett áll2
bemenet / kimenet a doboz bal, illetve jobb oldalán2
összeköttetés a blokk kimenetét egy másik blokk bemenetére köti
negálás kis kör a be- vagy kimeneten
értékadás a hálózat végén: az eredményt változóba írja
elágazás „az elágazás az operátordoboz kimeneténél két alhálózatra osztja a feldolgozási vonalat”2

14.2 Logikai alapblokkok

A leggyakoribb blokkok — és a nekik megfelelő ST-kifejezések:

Blokk Jelentés ST
AND mindegyik bemenet igaz bKi := bA AND bB;
OR legalább az egyik igaz bKi := bA OR bB;
XOR pontosan az egyik igaz bKi := bA XOR bB;
NOT tagadás bKi := NOT bA;
ADD, SUB, MUL, DIV alapműveletek iKi := iA + iB;
GT, LT, GE, LE, EQ, NE összehasonlítás bKi := iA > iB;
SEL, MUX, LIMIT választás, határolás –

A logikai blokkok jellemzően több bemenetűre bővíthetők: egy AND blokkhoz hozzáadható harmadik, negyedik bemenet is.

💡 Amit az FBD láthatóvá tesz

Nézd meg a 14.1. ábrát és alatta az ST-megfelelőjét:

ST
bIndulhat := (bKezi OR bAuto) AND bAjtoZar AND NOT bVesz;

Az ST-ben a zárójel dönti el a sorrendet — és a 12. fejezetből tudod, hogy ezt könnyű elrontani. Az FBD-ben ugyanez a rajzból látszik: az OR blokk kimenete megy az AND bemenetére, tehát az OR értékelődik ki előbb.

Az FBD legnagyobb erénye: a zárójelezést teszi láthatóvá.

14.3 Funkcióblokkok az FBD-ben

Az időzítők, számlálók és élfigyelők pontosan úgy használhatók, mint bármely más blokk — csak kell hozzájuk példánynév, amely a doboz felett jelenik meg.2

KÓD
              tonKesleltet
             +-------------+
             |     TON     |
  bIndit ----| IN        Q |---- bKesz
    T#5S ----| PT       ET |---- tEltelt
             +-------------+

Ugyanaz a szabály, mint mindenhol (10. fejezet): ahány független működés, annyi példány. Ha két késleltetésre van szükség, két blokkot kell beszúrni, két különböző példánynévvel.

14.4 Kidolgozott példa FBD-ben

Vegyük elő a 12.7. alfejezet szállítószalag-feladatát, és nézzük meg a darabszámláló részét FBD-ben.

KÓD
           rtErzekelo                    ctuDarab
          +----------+                 +------------+
          |  R_TRIG  |                 |    CTU     |
bErzekelo-| CLK    Q |-----------------| CU       Q |---- bTele
          +----------+                 |            |
                          bNyugtaz ----| RESET   CV |---- iDarab
                               500 ----| PV         |
                                       +------------+

Három dolog látszik jól ezen a rajzon, ami ST-ben csak a sorrendből derülne ki:

  1. az élfigyelő kimenete közvetlenül a számláló bemenetére megy — nincs köztes változó;
  2. a RESET és a PV külön bemenet, nem ugyanabból a jelútból jönnek;
  3. a számlálónak két kimenete van, és mindkettőt használjuk.
💡 Mikor válassz FBD-t?

Ott, ahol az adat átfolyik valamin: jelfeldolgozási lánc (mérés → skálázás → szűrés → határolás), szabályozási kör, több bemenetből egy döntés.

És ott, ahol sok blokkot kell összekötni: a létradiagram ilyenkor hosszú, keskeny hálózatokká nyúlik, az FBD viszont kétdimenziósan terül el.

14.5 A CFC — azonos elv, más szabályok

A CODESYS-ben létezik egy negyedik grafikus nyelv is: a CFC (Continuous Function Chart, folytonos funkcióterv).

A CFC „ugyanazon az elven alapul, mint az FBD, de a következő különbségekkel”: nem hálózatorientált, és az elemek szabadon elhelyezhetők a munkafelületen.1

FBD és CFC — kötött hálózat vagy szabad rajzvászon? FBD — hálózatorientált 1. hálózat AND 2. hálózat OR 3. hálózat Hálózatok egymás alatt, kötött sorrendben. CFC — szabad elhelyezés ADDMULTONLIM visszacsatolás — CFC-ben megrajzolható Az elemek bárhová tehetők, tetszőlegesen köthetők. A szabadság ára: a végrehajtási sorrend nem látszik a rajzból CFC-ben a sorrendet külön kell megjeleníteni és — visszacsatolásnál — külön kell megadni. A CFC ráadásul nem szabványos IEC 61131-3 nyelv.
14.2. ábra. Az FBD hálózatokba szervezett, a CFC szabad rajzvászon — visszacsatolással együtt.

Ez két gyakorlati különbséget jelent:

FBD CFC
Szerkezet hálózatok egymás alatt szabad rajzvászon
Elemek helye a hálózaton belül kötött bárhová tehetők
Összekötés a hálózat jelútja mentén tetszőleges, akár keresztbe
Visszacsatolás nem rajzolható meg közvetlenül megrajzolható
Végrehajtási sorrend a hálózatok sorrendje külön kérdés (14.6)
Szabvány IEC 61131-3 nem szabványos — CODESYS-kiterjesztés1

A visszacsatolás az igazi nyereség. Egy szabályozási körben az eredmény visszahat a bemenetre — ezt FBD-ben csak segédváltozóval lehet megoldani, CFC-ben viszont egyszerűen meghúzod a vonalat.

14.6 A végrehajtási sorrend — a szabadság ára

Ha az elemek bárhol lehetnek, felmerül a kérdés: milyen sorrendben futnak le?

A CFC végrehajtási sorrendje Auto Data Flow Mode (alapértelmezés) A CODESYS az adatfolyamból határozza meg a sorrendet, több hálózatnál pedig az elemek topológiai helyzetéből. rendezés: fentről lefelé, balról jobbra Eredmény: idő- és ciklusoptimalizált végrehajtás. Explicit Execution Order Mode A sorrendet te adod meg: minden elem kap egy sorszámot. Menüút: CFC → Execution Order vagy a helyi menü Execution Order pontja A többi elem átszámozódik, a sorrend megmarad. Visszacsatolásnál külön döntés kell „Ha visszacsatolással programozol hálózatokat, kijelölhetsz egy elemet kiindulópontnak a visszacsatolási hurokban” — ez a POU fut le először, és a 0-s sorszámot kapja. Körben ugyanis nincs magától értetődő „első” elem — ezt neked kell eldöntened.
14.3. ábra. A CFC kétféle sorrendmódja, és a visszacsatolás külön kezelése.

Automatikus sorrend adatfolyam szerint

Ez az alapértelmezés:4

„A CODESYS az adatfolyamot használja a végrehajtási sorrend meghatározásához, több hálózat esetén pedig az elemek topológiai helyzetét.”

A rendezési elv szó szerint: „a felső elemek és hálózatok fentről lefelé és balról jobbra vannak rendezve”.4 Az eredmény pedig „idő- és ciklusoptimalizált végrehajtás”.4

Visszacsatolás — itt neked kell dönteni

Körben nincs magától értetődő „első” elem. Ezért:4

„Ha visszacsatolással programozol hálózatokat, kijelölhetsz egy elemet kiindulópontnak a visszacsatolási hurokban.”

Ez a POU fut le először, és „a kiválasztott elem a 0-s sorszámot kapja”.4

Kifejezett sorrendmód

Ha az automatikus sorrend nem felel meg, a CFC objektum tulajdonságát át lehet állítani Auto Data Flow Mode-ról Explicit Execution Order Mode-ra.4 Ekkor minden elem kap egy sorszámot, amelyet kézzel is módosíthatsz:5

„A parancs párbeszédpanelt nyit a kiválasztott elem sorszámának tetszőleges értékre állításához.” — Menüút: CFC → Execution Order, vagy a helyi menü Execution Order pontja.

És a fontos részlet: „A kiválasztott elem a megadott sorszámot kapja. A többi elem úgy számozódik át, hogy a végrehajtási sorrendjük változatlan maradjon.”5

⚠️ A CFC legnagyobb kockázata

FBD-ben és LD-ben a végrehajtási sorrend látszik: a hálózatok egymás alatt vannak, sorban. CFC-ben nem — az elemek szabadon szét vannak szórva a vásznon.

Ha egy CFC-diagramot csak ránézésre próbálsz megérteni, rossz sorrendet fogsz feltételezni. A sorrendet külön meg kell jeleníteni (Display Execution Order), és a dokumentációba is bele kell írni.

Gyakorlati tanács: CFC-ben tartsd a rajzot rendezetten — az adatfolyam irányában, fentről lefelé és balról jobbra. Így az automatikus sorrend egybeesik azzal, amit a szem is lát.

14.7 A CFC szabványossági helyzete

Ezt a pontot érdemes pontosan tudni, mert vizsgakérdés lehet.

Az IEC 61131-3 nyelvcsomagja — a 6. fejezetben tárgyalt negyedik kiadás szerint — ST, LD, FBD és az SFC strukturáló elemkészlete. A CFC nem szerepel benne: ez a CODESYS (és néhány más gyártó) saját kiterjesztése.1

Mit jelent ez a gyakorlatban?

Következmény Magyarázat
Hordozhatóság egy CFC-ben írt POU nem vihető át automatikusan másik gyártó szabványos környezetébe
Vizsga a „nyelvek fajtái” kérdésre az öt szabványos nyelvet kell felsorolni; a CFC-t megemlíteni plusz pont, ha hozzáteszed, hogy nem szabványos
Konverzió a CFC nem része az FBD/LD/IL kombinált szerkesztőnek — a Ctrl+1/2/3 átváltás (13. fejezet) rá nem vonatkozik
Használhatóság ettől még teljesen jó nyelv; egy CODESYS-alapú projektben nyugodtan használható
💡 Így fogalmazz a vizsgán

„Az IEC 61131-3 öt nyelvet nevesít: IL, ST, LD, FBD és SFC — bár a 2025-ös negyedik kiadás nyelvcsomagjában az IL már nem szerepel. A CODESYS emellett kínál egy hatodik, nem szabványos nyelvet, a CFC-t, amely az FBD elvén működik, de nem hálózatorientált, és visszacsatolás rajzolható benne.”

Ez a válasz pontosan annyit állít, amennyit a források igazolnak (6. és 14. fejezet).

14.8 Mikor melyiket?

Feladat FBD CFC
Logikai kifejezés több feltételből ✔ ✔
Jelfeldolgozási lánc ✔ ✔
Visszacsatolt szabályozási kör segédváltozóval ✔ közvetlenül
Sok blokk, áttekinthető szerkezet ✔ hálózatokba tagolva rendezettséget igényel
Más gyártóhoz átvihető kód ✔ ✘
Nyelvek közötti átváltás (Ctrl+1/2/3) ✔ ✘
💡 A könyv ajánlása

Tanulj meg FBD-t — szabványos, hordozható, és a kombinált szerkesztőben azonnal átváltható LD-re vagy IL-re, tehát a vizsga „nyelvek közötti átváltás” témakörét is szolgálja.

A CFC-t akkor vedd elő, amikor visszacsatolásra van szükséged, vagy amikor egy meglévő projektben találkozol vele. Ismerd fel, tudd olvasni — de ne ez legyen az alapértelmezésed.

Összefoglalás

  • Az FBD alapegysége — az LD-hez hasonlóan — a hálózat, amely kifejezést, blokkhívást, ugrást vagy visszatérést tartalmazhat.
  • A hálózat elemei: blokk (a típus a dobozban, a példánynév felette), be- és kimenetek, összeköttetések, negálás (kis kör), értékadás, elágazás.
  • Az FBD legnagyobb erénye, hogy a zárójelezést láthatóvá teszi: a blokkok egymásba ágyazása maga a kiértékelési sorrend.
  • A funkcióblokkok FBD-ben is példányonként kellenek.
  • A CFC ugyanazon az elven működik, de nem hálózatorientált, az elemek szabadon elhelyezhetők, és visszacsatolás rajzolható benne.
  • A CFC végrehajtási sorrendje alapértelmezésben az adatfolyamból és a topológiai helyzetből adódik (fentről lefelé, balról jobbra), és „idő- és ciklusoptimalizált”.
  • Visszacsatolásnál ki kell jelölni egy kiindulópontot, amely a 0-s sorszámot kapja.
  • Kézi sorrendhez az objektum Explicit Execution Order Mode-ra állítható; a sorszám a CFC → Execution Order menüben módosítható.
  • A CFC legnagyobb kockázata: a sorrend nem látszik a rajzból. Tartsd rendezetten.
  • A CFC nem szabványos IEC 61131-3 nyelv, és nem része az FBD/LD/IL kombinált szerkesztőnek.

Gyakorlatok

🛠️ 14.1. feladat — Rajzold meg, majd váltsd át

Építsd fel FBD-ben a következő feltételt: az adagolás akkor engedélyezett, ha (a tartály nem üres) ÉS (a hőmérséklet 20 és 60 °C között van) ÉS (nincs riasztás). Használj GE, LE és AND blokkokat. Ha kész, nyomj Ctrl+2-t (létradiagram) és Ctrl+3-at (utasításlista), és hasonlítsd össze a három nézetet. Melyik a legolvashatóbb ehhez a feladathoz?

🛠️ 14.2. feladat — Két időzítő FBD-ben

Építsd meg FBD-ben: az indítójel után 2 másodperccel gyulladjon ki a lámpa, és 10 másodperccel induljon el a motor. Két TON blokkot használj, két külön példánynévvel. Futtasd szimulációban. Utána szándékosan add mindkettőnek ugyanazt a példánynevet, és nézd meg, mi történik — kapcsold össze a tapasztaltakat a 10.10. alfejezettel.

🛠️ 14.3. feladat — Hozz létre CFC POU-t

Hozz létre egy CFC nyelvű POU-t, és helyezz el benne négy blokkot rendezetlenül (össze- vissza a vásznon), egymáshoz kötve. Jelenítsd meg a végrehajtási sorrendet. Egyezik-e azzal, amit a rajz ránézésre sugall? Utána rendezd el az elemeket az adatfolyam irányában, és nézd meg újra a sorszámokat.

🛠️ 14.4. feladat — Visszacsatolás CFC-ben

Építs CFC-ben egy egyszerű visszacsatolt kört: egy ADD blokk kimenete egy SEL blokkon át térjen vissza az ADD bemenetére. Jelölj ki egy elemet kiindulópontnak, és nézd meg, hogy az kapja-e a 0-s sorszámot. Írd le, miért nem tudja a rendszer ezt magától eldönteni.

🛠️ 14.5. feladat — Fogalmazd meg a vizsgaválaszt

Írd le saját szavaiddal, két-három mondatban, hogyan viszonyul a CFC az IEC 61131-3 nyelvcsomagjához. A válaszod tartalmazza: mit nevesít a szabvány, hova tartozik a CFC, és mi ennek a gyakorlati következménye a hordozhatóságra.

Ellenőrző kérdések

  1. Mi az FBD alapegysége, és mit tartalmazhat?
  2. Hol áll a blokk típusa, és hol a példányneve?
  3. Hogyan jelöljük a negálást FBD-ben?
  4. Mit csinál az elágazás egy operátordoboz kimeneténél?
  5. Miért mondjuk, hogy az FBD „láthatóvá teszi a zárójelezést”?
  6. Hány példány kell két független TON-hoz FBD-ben?
  7. Miben tér el a CFC az FBD-től?
  8. Mit tud a CFC, amit az FBD nem?
  9. Hogyan határozza meg a CODESYS alapértelmezésben a CFC végrehajtási sorrendjét?
  10. Mi történik visszacsatolás esetén, és mit kell tenned?
  11. Mire való az Explicit Execution Order Mode?
  12. Mi a CFC legnagyobb kockázata, és hogyan csökkenthető?
  13. Szabványos IEC 61131-3 nyelv-e a CFC? Mi ennek a következménye?
  14. Átváltható-e egy CFC POU létradiagramra a Ctrl+2 paranccsal? Miért?

Tudáspróba

Válaszd ki az egyetlen helyes választ!

1. Az FBD alapegysége: a) a hálózat b) a POU c) a blokk d) a task

2. A funkcióblokk példányneve az FBD-ben: a) a dobozon belül; b) a doboz felett; c) a doboz alatt; d) nem látszik.

3. A negálást FBD-ben ez jelöli: a) áthúzott vonal; b) N betű a dobozban; c) kis kör a be- vagy kimeneten; d) szaggatott vonal.

4. A CFC és az FBD közötti fő különbség: a) a CFC csak logikai műveleteket ismer; b) a CFC szöveges nyelv; c) a CFC nem támogat funkcióblokkot; d) a CFC nem hálózatorientált, az elemek szabadon elhelyezhetők.

5. Visszacsatolás közvetlen megrajzolására alkalmas: a) CFC b) FBD c) LD d) IL

6. A CFC alapértelmezett végrehajtási sorrendje: a) véletlenszerű; b) az adatfolyamból és a topológiai helyzetből adódik; c) a létrehozás sorrendje; d) ábécésorrend.

7. A topológiai rendezés iránya: a) középről kifelé; b) lentről felfelé, jobbról balra; c) fentről lefelé, balról jobbra; d) nincs meghatározva.

8. Visszacsatolási hurokban a kiindulópontnak kijelölt elem sorszáma: a) 1 b) nincs sorszáma c) az utolsó d) 0

9. A CFC az IEC 61131-3 szempontjából: a) nem szabványos, gyártói kiterjesztés; b) a hatodik szabványos nyelv; c) az FBD egyik alfajtája a szabványban; d) az SFC része.

10. A Ctrl+1 / Ctrl+2 / Ctrl+3 átváltás vonatkozik: a) az összes IEC-nyelvre; b) az FBD, LD és IL nyelvre; c) az ST-re is; d) a CFC-re is.

A megoldókulcs a B függelékben található.

A fejezet forrásai


  1. CODESYS Online Help: FBD/LD/IL – a kombinált szerkesztő és a CFC eltérései. CODESYS GmbH. (2026-07-29) ↩↩↩

  2. Programming Function Block Diagrams (FBD). Beckhoff Information System. (2026-07-31) ↩↩↩↩

  3. FBD/LD/IL element network. Beckhoff Information System. (2026-07-31) ↩↩↩

  4. CODESYS CFC Help: Automatic Execution Order by Data Flow (V4.5.0.0). CODESYS GmbH. (2026-07-31) ↩↩↩↩↩↩

  5. CODESYS CFC Help: Command: Set Execution Order (V4.5.0.0). CODESYS GmbH. (2026-07-31) ↩↩

Mennyire volt hasznos ez a fejezet?

Még nincs értékelés.