A jelfolyam nyelve — ahol a blokkok egymásba ágyazása maga a kiértékelési sorrend, és ahol a szabadságnak ára van.
- 14.1 Az FBD alapelve
- 14.2 Logikai alapblokkok
- 14.3 Funkcióblokkok az FBD-ben
- 14.4 Kidolgozott példa FBD-ben
- 14.5 A CFC — azonos elv, más szabályok
- 14.6 A végrehajtási sorrend — a szabadság ára
- 14.7 A CFC szabványossági helyzete
- 14.8 Mikor melyiket?
- Összefoglalás
- Gyakorlatok
- Ellenőrző kérdések
- Tudáspróba
- A fejezet forrásai
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
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.
Nézd meg a 14.1. ábrát és alatta az ST-megfelelőjét:
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
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.
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:
- az élfigyelő kimenete közvetlenül a számláló bemenetére megy — nincs köztes változó;
- a
RESETés aPVkülön bemenet, nem ugyanabból a jelútból jönnek; - a számlálónak két kimenete van, és mindkettőt használjuk.
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
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?
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 Orderpontja.
É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
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ó |
„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) | ✔ | ✘ |
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 aCFC → Execution Ordermenü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
É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?
É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.
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.
É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.
Í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
- Mi az FBD alapegysége, és mit tartalmazhat?
- Hol áll a blokk típusa, és hol a példányneve?
- Hogyan jelöljük a negálást FBD-ben?
- Mit csinál az elágazás egy operátordoboz kimeneténél?
- Miért mondjuk, hogy az FBD „láthatóvá teszi a zárójelezést”?
- Hány példány kell két független
TON-hoz FBD-ben? - Miben tér el a CFC az FBD-től?
- Mit tud a CFC, amit az FBD nem?
- Hogyan határozza meg a CODESYS alapértelmezésben a CFC végrehajtási sorrendjét?
- Mi történik visszacsatolás esetén, és mit kell tenned?
- Mire való az
Explicit Execution Order Mode? - Mi a CFC legnagyobb kockázata, és hogyan csökkenthető?
- Szabványos IEC 61131-3 nyelv-e a CFC? Mi ennek a következménye?
- Á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
-
CODESYS Online Help: FBD/LD/IL – a kombinált szerkesztő és a CFC eltérései. CODESYS GmbH. (2026-07-29) ↩↩↩
-
Programming Function Block Diagrams (FBD). Beckhoff Information System. (2026-07-31) ↩↩↩↩
-
FBD/LD/IL element network. Beckhoff Information System. (2026-07-31) ↩↩↩
-
CODESYS CFC Help: Automatic Execution Order by Data Flow (V4.5.0.0). CODESYS GmbH. (2026-07-31) ↩↩↩↩↩↩
-
CODESYS CFC Help: Command: Set Execution Order (V4.5.0.0). CODESYS GmbH. (2026-07-31) ↩↩