Melyik nyelven programozzunk? Áttekintés az öt szabványos nyelvről, a csoportosításukról és arról, mi változott 2025-ben.

Az eddigi fejezetekben megismerted, mit csinál egy PLC, milyen jelekkel dolgozik, és hogyan gondolkodunk róla. Most jön a kérdés: milyen nyelven mondjuk meg neki, mit csináljon?

Ez a fejezet áttekintést ad — a nyelvek részletes tárgyalása a IV. részben (12–16. fejezet) következik, amikor már van hova letöltened a kódot. Az írásbeli vizsgán ez a legnagyobb súlyú témakör: „PLC programozási nyelvek fajtái, csoportosítása” a teszt kérdéseinek 20%-a.

6.1 Az IEC 61131 szabványcsalád

A programozható vezérlőket nemzetközi szabványsorozat írja le: az IEC 61131. A sorozat részei és tárgyuk:1

Rész Tartalom
1 definíciók, a vezérlők kiválasztásához és alkalmazásához szükséges jellemzők
2 készülékkövetelmények és vizsgálatok
3 programozási nyelvek — szintaktikai és szemantikai szabályok
4 áttekintés és felhasználói útmutató
5 kommunikáció PLC-k és más elektronikus rendszerek között
6 (fenntartva)
7 fuzzy szabályozási nyelv
8 a 3. rész nyelveinek megvalósítási és alkalmazási útmutatója

A 2. résszel már találkoztál: a 3. fejezet digitális bemenettípusai (Type 1/2/3) onnan származnak. Most a 3. rész kerül sorra.

⚠️ Terminológiai pontosítás — ismétlés az 1. fejezetből

A 07145003-as programkövetelmény a szabványt „MSZ EN 1131-3” alakban említi. Ez elírás: a helyes jelölés IEC 61131-3, magyar honosítással MSZ EN 61131-3. A könyv a helyes jelölést használja, de ismerd fel a hibás alakot is.

6.2 A szabvány kiadásai — és ami 2025-ben változott

Ezt a pontot érdemes pontosan tudni, mert a vizsgaanyag és a hatályos szabvány itt eltér.

Ed. 3.02013-02-20 Ed. 4.02025-05 Nyelvcsomag: IL, ST + LD, FBD (+ SFC strukturáló elemek) Nyelvcsomag: ST + LD, FBD (+ SFC strukturáló elemek) visszavonva: 2025-05-22 Az IEC 61131-3 kiadásai A 2013-as kiadás az IL-t elavultnak jelölte; a 2025-ös kiadás nyelvcsomagjában már nem szerepel.
6.1. ábra. Az IEC 61131-3 két legutóbbi kiadása és a nyelvcsomag változása.
Kiadás Megjelenés Állapot
Ed. 3.0 2013-02-20 visszavonva 2025-05-222
Ed. 4.0 2025-05 hatályos3 1

Az Ed. 3.0 (2013) nyelvcsomagja a szabvány saját megfogalmazásában:2

„…a unified suite of programming languages for programmable controllers (PCs). This suite consists of two textual languages, Instruction List (IL) and Structured Text (ST), and two graphical languages, Ladder Diagram (LD) and Function Block Diagram (FBD).”

Az Ed. 3.0 fő újításai a korábbi kiadáshoz képest: új adattípusok és konverziós függvények, referenciák és névterek, valamint objektumorientált elemek (osztályok és funkcióblokkok).2

Az Ed. 4.0 (2025) nyelvcsomagja viszont már csak ST + LD, FBD nyelvekből és a programstrukturáló SFC-elemekből áll — az IL kimaradt belőle.3 A kiadás fő technikai újítása az UTF-8 karakterláncok és a hozzájuk tartozó függvények bevezetése.3

Mi történt az IL-lel?

  • Az Ed. 3.0 (2013) még tartalmazza az IL-t, de elavultnak (deprecated) jelöli a következő kiadásra nézve. A bizottság indoklása: „an assembler-like language is not up-to-date in modern development environments”.4
  • Az Ed. 4.0 (2025) nyelvcsomagjában az IL már nem szerepel.3
⚠️ Amit ebből a vizsgára tudni kell

A 07145003-as vizsga „PLC programozási nyelvek fajtái, csoportosítása” témaköre a hagyományos ötös felosztást (IL, ST, LD, FBD, SFC) várja el — a programkövetelmény maga is a régi, elírt szabványjelölést használja.

Ezért a könyv mind az öt nyelvet tanítja, hiszen a vizsgán ez a várt tudás, és a CODESYS 3.5 mindegyiket támogatja. Minden nyelvnél viszont feltüntetjük a szabványos állapotát — ha a vizsgán az IL-ről kérdeznek, a pontos válasz az, hogy „a hagyományos öt nyelv egyike, amelyet a 2013-as kiadás elavultnak jelölt, és a 2025-ös kiadás nyelvcsomagjában már nem szerepel”. Ez a válasz több, mint amit várnak — és pontosan ettől lesz jó.

💡 Miért nem tűnik el az IL a gyakorlatból?

Mert több évtizednyi működő program van megírva benne. Egy szabványkiadás nem törli le a gyárakban futó kódot. Aki karbantartással foglalkozik, még sokáig találkozni fog IL-lel — ezért tanítja meg a könyv olvasható szinten, még ha új fejlesztésre nem is ajánlja.

6.3 Az öt nyelv és csoportosításuk

SZÖVEGES NYELVEK GRAFIKUS NYELVEK ST — Structured Text strukturált szöveg · hatályos (Ed. 4.0) IL — Instruction List utasításlista · az Ed. 4.0 csomagjában nem szerepel LD — Ladder Diagram létradiagram · hatályos FBD — Function Block Diagram funkcióblokk-diagram · hatályos SFC — Sequential Function Chart sorrendi funkcióterv · strukturáló elemkészlet CFC — Continuous Function Chart CODESYS-kiterjesztés — NEM szabványos IEC-nyelv Az IEC 61131-3 nyelvei és csoportosításuk Az SFC-t a szabvány a program belső szervezésére szolgáló, grafikus és egyenértékű szöveges elemkészletként definiálja.
6.2. ábra. A nyelvek csoportosítása szöveges és grafikus nyelvekre, a CFC-vel kiegészítve.
Nyelv Rövidítés Csoport Szabványos állapot
Utasításlista IL (Instruction List) szöveges Ed. 3.0-ban elavult; az Ed. 4.0 csomagjában nem szerepel
Strukturált szöveg ST (Structured Text) szöveges hatályos (Ed. 4.0)
Létradiagram LD (Ladder Diagram) grafikus hatályos (Ed. 4.0)
Funkcióblokk-diagram FBD (Function Block Diagram) grafikus hatályos (Ed. 4.0)
Sorrendi funkcióterv SFC (Sequential Function Chart) grafikus és egyenértékű szöveges elemek hatályos (Ed. 4.0)
Folytonos funkcióterv CFC (Continuous Function Chart) grafikus nem szabványos IEC-nyelv, CODESYS-kiterjesztés5
📗 Szöveges és grafikus nyelvek

A szöveges nyelvekben a programot sorokba írjuk, mint egy hagyományos programozási nyelvben (IL, ST). A grafikus nyelvekben rajzolunk: elemeket helyezünk el és kötünk össze (LD, FBD, SFC, CFC). A választás nem csak ízlés kérdése — a feladat jellege dönti el, ahogy a 6.5. pontban látni fogod.

6.4 Az SFC különleges helyzete

Az SFC-t hagyományosan „az ötödik nyelvként” emlegetjük, de a szabvány maga pontosabban fogalmaz:1

„An additional set of graphical and equivalent textual elements named Sequential Function Chart (SFC) is defined for structuring the internal organization of programmable controller programs and function blocks.”

Vagyis az SFC a szabvány szerint nem egyszerűen egy további nyelv, hanem a program belső szervezésére szolgáló elemkészlet — amely grafikus és azzal egyenértékű szöveges alakban is létezik.

💡 Ez egy „extra pont” a vizsgán

A vizsgán az öt nyelv felsorolása a várt válasz. Ha viszont hozzáteszed, hogy „az SFC-t a szabvány a program belső szervezésére szolgáló elemkészletként definiálja, nem egyszerűen ötödik nyelvként”, azzal olyan pontosságot mutatsz, ami kiemel a mezőnyből. A gyakorlatban pedig ez magyarázza, miért lehet egy SFC-lépés akciója ST-ben megírva: az SFC a szerkezetet adja, a tartalmat másik nyelv.

6.5 Melyik nyelvet mire használjuk?

Nincs „legjobb” nyelv — a feladat jellege dönt. Az alábbi táblázat a könyv ajánlása, a IV. részben részletesen indokolva:

Nyelv Ebben erős Ebben gyenge Tipikus felhasználás
ST matematika, összetett feltételek, ciklusok, olvashatóság nagy programban a jelfolyam nem látszik ránézésre számítások, adatkezelés, összetett logika, kommunikáció
LD villamos szakembernek azonnal olvasható; bináris logika matematika, összetett adatszerkezetek kapcsolási logika, reteszelések, egyszerű vezérlés
FBD jelfolyam-szemlélet, funkcióblokkok összekötése sok elágazás esetén áttekinthetetlen szabályozási láncok, jelfeldolgozás
SFC lépéssorozatok, gépciklusok, üzemmódok folyamatos szabályozás sorrendi vezérlés, gyártási ciklus
IL (történelmi) kompakt, gépközeli nehezen olvasható, hibalehetőség régi programok karbantartása
CFC szabad elrendezés, áttekinthető nagy jelfolyam nem szabványos, hordozhatósági gond összetett szabályozási struktúrák
💡 A könyv fő nyelve az ST

Két okból. Egyrészt a hatályos szabvány központi szöveges nyelve — az IL kiesésével az ST maradt az egyetlen szöveges nyelv. Másrészt a legkifejezőbb: amit ST-ben három sorban le lehet írni, azt LD-ben néha három hálózatban. A könyv ugyanakkor minden nyelvet megtanít, mert a vizsga is így kéri, és mert karbantartáskor nem te választod a nyelvet.

6.6 A CFC — amit tudni kell róla

A CODESYS egy hatodik nyelvet is kínál, a CFC-t (Continuous Function Chart). A gyártói dokumentáció szerint ez „a programming language based on the same principle as FBD, but with the following differences”: nem hálózatorientált, és az elemek szabadon elhelyezhetők a munkafelületen.5

⚠️ A CFC nem szabványos IEC-nyelv

Sem az Ed. 3.0, sem az Ed. 4.0 nyelvcsomagjában nem szerepel. Ez a gyakorlatban azt jelenti, hogy egy CFC-ben megírt program nem feltétlenül vihető át másik gyártó rendszerébe. A vizsgán az öt szabványos nyelvet kell felsorolni — a CFC-t legfeljebb kiegészítésként említsd, és mondd meg róla, hogy gyártói kiterjesztés.

6.7 Egy nyelv, több nézet: az átváltás alapja

A CODESYS az FBD, LD és IL nyelvekhez közös szerkesztőt használ:5

„A combined editor enables programming in the languages FBD (function block diagram), LD (ladder diagram) and IL (instruction list).”

És ami ennél is fontosabb:5

„The basic unit of the FBD and LD programming is a network.” … „In CODESYS, however, an IL program also consists of at least one network in order to support conversion to FBD or LD.”

Vagyis a CODESYS hálózat (network) alapú belső ábrázolást használ, és épp azért kényszeríti az IL-programot is legalább egy hálózatba, hogy az átkonvertálható legyen FBD-be és LD-be.

💡 Ez az alapja a vizsga „nyelvek közötti átváltás” témakörének

Az írásbeli vizsgán önálló, 10%-os témakör a „PLC programozási nyelvek közötti átváltás”. A gyakorlati alap ez a közös, hálózat-alapú ábrázolás: ugyanaz a POU megjeleníthető FBD-ben, LD-ben és IL-ben. A 16. fejezet ezt élőben, a CC100-on mutatja be — ott derül ki az is, hogy mit lehet és mit nem lehet átkonvertálni.

📗 Hálózat (network)

Az FBD és az LD alapegysége. Egy hálózat egy önálló logikai egység — LD-ben egy „létrafok”, FBD-ben egy összefüggő blokkcsoport. A program hálózatok sorozata, amelyeket a vezérlő sorrendben hajt végre.

6.8 Összefoglaló táblázat a vizsgához

Ezt érdemes megtanulni:

Kérdés Válasz
Hány nyelvet definiál a szabvány? hagyományosan öt: IL, ST, LD, FBD, SFC
Melyek a szöveges nyelvek? IL és ST
Melyek a grafikus nyelvek? LD, FBD és SFC
Melyik a hatályos kiadás? Ed. 4.0 (2025)
Mi változott? az IL kimaradt a nyelvcsomagból
Mi az SFC pontos szerepe? a program belső szervezésére szolgáló, grafikus és egyenértékű szöveges elemkészlet
Mi a CFC? nem szabványos, CODESYS-kiterjesztés; nem hálózatorientált
Mi teszi lehetővé a nyelvek közötti átváltást? a közös, hálózat-alapú belső ábrázolás

Gyakorlatok

🛠️ 6.1. feladat — Nyelvválasztás

Melyik nyelvet választanád az alábbi feladatokhoz, és miért? Mindegyiknél adj meg egy elsődleges és egy alternatív választást!

  1. Egy présgép reteszelési logikája: 8 bemenet, 4 kimenet, csupa logikai feltétel.
  2. Egy 12 lépésből álló gyártási ciklus, üzemmódváltással.
  3. Egy analóg jel skálázása 4–20 mA-ről 0–100%-ra, tizedespontossággal.
  4. Egy régi gép programjának módosítása, amelyet 1998-ban írtak.
  5. Egy hőmérséklet-szabályozási lánc, több funkcióblokk összekötésével.
🛠️ 6.2. feladat — A szabvány állapota

Válaszolj röviden, saját szavaiddal:

  1. Melyik kiadás hatályos ma, és mikor jelent meg?
  2. Hány nyelv szerepel a hatályos kiadás nyelvcsomagjában, és melyek ezek?
  3. Mi történt az IL-lel, és mikor?
  4. Miért tanítja mégis ez a könyv az IL-t?
  5. Hogyan válaszolnál a vizsgán arra a kérdésre, hogy „Sorolja fel az IEC 61131-3 nyelveit!”?
🛠️ 6.3. feladat — Csoportosítás

Készíts egy táblázatot, amelyben a hat nyelvet (az öt szabványost és a CFC-t) három szempont szerint rendezed: szöveges/grafikus, szabványos/kiterjesztés, és hálózatorientált-e. Melyik nyelv lóg ki a sorból mindhárom szempontnál?

Összefoglalás

Az IEC 61131 szabványcsalád nyolc részből áll; a 3. rész írja le a programozási nyelveket. A hagyományos felosztás öt nyelvet ismer: két szöveges (IL, ST) és három grafikus (LD, FBD, SFC).

A szabvány Ed. 3.0 kiadása 2013-ban jelent meg, és 2025-05-22-én visszavonták; helyette az Ed. 4.0 (2025) hatályos. Ennek nyelvcsomagjában az IL már nem szerepel — a 2013-as kiadás ugyanis elavultnak jelölte, azzal az indokkal, hogy egy assembler-jellegű nyelv nem korszerű a mai fejlesztőkörnyezetekben.

A vizsga viszont az ötös felosztást kéri, ezért a könyv mindegyiket tanítja, de minden nyelvnél jelzi a szabványos állapotát.

Az SFC különleges helyzetű: a szabvány a program belső szervezésére szolgáló, grafikus és egyenértékű szöveges elemkészletként definiálja, nem egyszerűen ötödik nyelvként.

A CFC a CODESYS saját kiterjesztése, nem szabványos: ugyanazon az elven alapul, mint az FBD, de nem hálózatorientált, és az elemek szabadon elhelyezhetők.

A CODESYS az FBD, LD és IL nyelvekhez közös, hálózat-alapú szerkesztőt használ — ez teszi lehetővé a nyelvek közötti átváltást, amely az írásbeli vizsga önálló témaköre.

Ellenőrző kérdések

  1. Hány részből áll az IEC 61131 szabványcsalád, és melyik rész írja le a programozási nyelveket?
  2. Sorold fel az öt hagyományos IEC-nyelvet a rövidítésükkel és magyar nevükkel!
  3. Melyek a szöveges és melyek a grafikus nyelvek?
  4. Melyik szabványkiadás hatályos, mikor jelent meg, és mikor vonták vissza az előzőt?
  5. Mi történt az IL nyelvvel, és mi volt az indoklás?
  6. Miért tanítja mégis a könyv az IL-t?
  7. Hogyan definiálja a szabvány az SFC-t? Miben tér el ez a köznyelvi „ötödik nyelv” megfogalmazástól?
  8. Mi a CFC, és mi a legfontosabb tudnivaló róla?
  9. Mi a hálózat (network) az FBD és az LD nyelvben?
  10. Miért konvertálható át egy CODESYS-program FBD, LD és IL között?

Tudáspróba

Válaszd ki az egyetlen helyes választ!

1. Az IEC 61131 melyik része írja le a programozási nyelveket? a) 1. rész b) 2. rész c) 3. rész d) 5. rész

2. Melyek a szabvány szöveges nyelvei (a hagyományos ötös felosztás szerint)? a) IL és ST b) LD és FBD c) SFC és CFC d) ST és FBD

3. Melyik nyelv nem része az IEC 61131-3 szabványnak? a) SFC b) CFC c) FBD d) LD

4. Az IEC 61131-3 Ed. 3.0 kiadását mikor vonták vissza? a) 2013-02-20 b) 2020-01-01 c) még hatályos d) 2025-05-22

5. A 2025-ös Ed. 4.0 nyelvcsomagja: a) ST, LD, FBD (+ SFC elemek); b) IL, ST, LD, FBD (+ SFC elemek); c) csak ST és LD; d) mind a hat nyelv, a CFC-vel együtt.

6. Miért jelölte a 2013-as kiadás elavultnak az IL-t? a) mert nem lehet benne funkcióblokkot hívni; b) mert egy assembler-jellegű nyelv nem korszerű a mai fejlesztőkörnyezetekben; c) mert nem támogat logikai műveleteket; d) mert nem volt kompatibilis a grafikus nyelvekkel.

7. Az SFC-t a szabvány úgy definiálja, mint: a) a legfontosabb szöveges nyelvet; b) egy analóg szabályozási nyelvet; c) a program belső szervezésére szolgáló grafikus és egyenértékű szöveges elemkészletet; d) a létradiagram alternatíváját.

8. A CFC legfontosabb eltérése az FBD-től: a) szöveges nyelv; b) nem lehet benne funkcióblokkot használni; c) csak analóg jelekkel működik; d) nem hálózatorientált, az elemek szabadon elhelyezhetők.

9. Az FBD és az LD alapegysége: a) a hálózat (network); b) a lépés (step); c) a POU; d) a task.

10. Mi teszi lehetővé, hogy ugyanaz a POU FBD-ben, LD-ben és IL-ben is megjeleníthető legyen a CODESYS-ben? a) egy külön konvertáló program; b) a közös, hálózat-alapú belső ábrázolás; c) a projekt exportálása XML-be; d) semmi, ez nem lehetséges.

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

A fejezet forrásai


  1. PLCopen: IEC 61131-1 és IEC 61131-3 ismertetők. Elérés: plcopen.org/standards/logic/iec-61131-1/, illetve plcopen.org/standards/logic/iec-61131-3/ (2026-07-29). ↩↩↩

  2. IEC Webstore: IEC 61131-3:2013 publikációs adatlap (Ed. 3.0, megjelenés 2013-02-20; visszavonás 2025-05-22). Elérés: webstore.iec.ch/en/publication/4552 (2026-07-29). ↩↩↩

  3. IEC 61131-3 Edition 4.0, 2025-05 — a szabvány nyilvános előnézete (scope, foreword, tartalomjegyzék). (2026-07-29) ↩↩↩↩

  4. Danielle Collins: Why is the instruction list (IL) language for PLCs falling out of favor? Motion Control Tips. (2026-07-29) ↩

  5. CODESYS Online Help: FBD/LD/IL — a kombinált szerkesztő. CODESYS GmbH. (2026-07-29) ↩↩↩↩

Mennyire volt hasznos ez a fejezet?

Még nincs értékelés.