LÉTRADIAGRAM FORDÍTÓK ELMÉLETE PLC VEZÉRLÉSEK SZÁMÁRA I.



Hasonló dokumentumok
LÉTRADIAGRAM FORDÍTÓK ELMÉLETE PLC VEZÉRLÉSEK SZÁMÁRA II.

LÉTRADIAGRAM FORDÍTÓK ELMÉLETE PLC VEZÉRLÉSEK SZÁMÁRA III.

Programozható logikai vezérlő

A CAN mint ipari kommunikációs protokoll CAN as industrial communication protocol

PROGRAMOZHATÓ LOGIKAI VEZÉRLİK

A 27/2012 (VIII. 27.) NGM rendelet (12/2013 (III. 28.) NGM rendelet által módosított) szakmai és vizsgakövetelménye alapján.

Irányítástechnika Elıadás. PLC-k programozása

Programozható Logikai Vezérlő

A 27/2012 (VIII. 27.) NGM rendelet (12/2013 (III. 28.) NGM rendelet által módosított) szakmai és vizsgakövetelménye alapján.

Adatszerkezetek 1. Dr. Iványi Péter

Adatok ábrázolása, adattípusok

Számítógépek felépítése, alapfogalmak

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

7400 Kaposvár, Pázmány P. u. 17. OM TANMENET. Modul: Osztály: Heti óraszám: Hetek száma: 32. P. h.

IRÁNYÍTÁSTECHNIKAI ALAPFOGALMAK, VEZÉRLŐBERENDEZÉSEK FEJLŐDÉSE, PLC-GENERÁCIÓK

Intelligens Érzékelők

CAD/CAM, CNC programozó technológus (FAT lajstromszám: PL-5608)

CNC technika. segédlet a CNC tantárgy oktatásához. Készítette: Paróczai János

Készítette: Oláh István mestertanár

Kapacitív áramokkal működtetett relés áramkörök S: B7:S21.3S2.$

Ipari hálózatok biztonságának speciális szempontjai és szabványai

Joint Test Action Group (JTAG)

A gyártási rendszerek áttekintése

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS

Versenyző kódja: 29 27/2012. (VIII. 27.) NGM rendelet MAGYAR KERESKEDELMI ÉS IPARKAMARA. Országos Szakmai Tanulmányi Verseny.

Digitális ki-bemenetek kezelése, bitszintű műveletek

PROGRAMOZHATÓ LOGIKAI VEZÉRLİK

Programozás alapjai (ANSI C)

Az Ön kézikönyve OMRON CX-ONE

3. M. 1. L. 1. Bevezetés

Programozható logikai vezérlõk

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

PARAMÉTERES GÖRBÉK ALKALMAZÁSA VALÓSIDE- JŰ DIGITÁLIS HANGFELDOLGOZÁS SORÁN

Előadó: Nagy István (A65)

Programozási nyelvek Java

Laborsegédlet 3. Labor

2. Laborgyakorlat. Step7 programozási környezet bemutatása

XI. DIGITÁLIS RENDSZEREK FIZIKAI MEGVALÓSÍTÁSÁNAK KÉRDÉSEI Ebben a fejezetben a digitális rendszerek analóg viselkedésével kapcsolatos témákat

Programzás I gyakorlat

PLC programozási nyelvek

SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN

CAD/CAM, CNC-programozó technológus

A 27/2012 (VIII. 27.) NGM rendelet (12/2013 (III.28) NGM rendelet által módosított) szakmai és vizsgakövetelménye alapján.

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Foglalkozási napló a 20 /20. tanévre

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

NEMZETGAZDASÁGI MINISZTÉRIUM

Programozás létradiagramos programozási nyelven

MAGYAR KERESKEDELMI ÉS IPARKAMARA. Országos Szakmai Tanulmányi Verseny. Elődöntő KOMPLEX ÍRÁSBELI FELADATSOR

Gyôztes minden ipari rendszerben

Az informatika kulcsfogalmai

DR. SZABÓ LÁSZLÓ 1 DOBOS GÁBOR 2

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Matlab Fuzzy Logic Toolbox

22. GRÁFOK ÁBRÁZOLÁSA

Fordítóprogramok. Aszalós László szeptember 7.

Számítógépek felépítése, alapfogalmak

Hobbi Elektronika. Bevezetés az elektronikába: Boole algebra, logikai kifejezések

Számítógép architektúra

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

Irányítástechnika Elıadás. PLC-k programozása

1. Valósítsa meg az alábbi alapkapcsolásokat: Az 1. ábrán az A) kapcsolásban amíg a

Algoritmus vizualizáció a tanítási gyakorlatban. Törley Gábor

Java II. I A Java programozási nyelv alapelemei

PLC-K ÁLTALÁNOS FELÉPÍTÉSE

Mechatronikai rendszerek

Irányítástechnika Elıadás. Programozható logikai vezérlık

Új kompakt X20 vezérlő integrált I/O pontokkal

XXI. Országos Ajtonyi István Irányítástechnikai Programozó Verseny

Vegyes témakörök. ARDUINO a kispénzű amatőrök PLC-je. Hobbielektronika csoport 2017/2018. Debreceni Megtestesülés Plébánia

A 32 bites x86-os architektúra regiszterei

Versenyző kódja: 3 27/2012. (VIII. 27.) NGM rendelet MAGYAR KERESKEDELMI ÉS IPARKAMARA. Országos Szakmai Tanulmányi Verseny.

Mi is volt ez? és hogy is volt ez?

MICRO PLC PR TERMÉKKÍNÁLAT

1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD)

1002D STRUKTÚRÁJÚ, KRITIKUS ÜZEMBIZTONSÁGÚ RENDSZER (SCS 1 ) ELEMZÉSE DISZKRÉT-DISZKRÉT MARKOV MODELLEL

Rendszer szekvencia diagram

Miskolci Egyetem Gépészmérnöki és Informatikai Kar SZAKDOLGOZAT. Feladat címe: PLC vezérelt pneumatikus oktatórendszer kialakítása.

Labor gyakorlat Mikrovezérlők

Szekvenciális hálózatok és automaták

KeyLock-23 Digitális kódzár 2 kimenettel, 3 bemenettel

Minta felvételi feladatsor programozásból

Elemi adatszerkezetek

Folyamatirányítás labor 4. mérés Gyártósori szállítószalag modell irányítása Modicon M340 PLC-vel. Feladat leírás

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

Dr. Mileff Péter

A HV-PCI6 VIDEODIGITALIZÁLÓ KÁRTYA ÉS ALKALMAZÁSAI (HV-PCI6 Video Digitizing Card and its Applications)

APB mini PLC és SH-300 univerzális kijelző Általános használati útmutató

Java programozási nyelv

20/1996. (III. 28.) IKM rendelet

PLC feladatok. 1. feladat

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba

4. Fejezet : Az egész számok (integer) ábrázolása

T2-CNCUSB vezérlő család hardver segédlet

Bevezetés a programozásba. 5. Előadás: Tömbök

Struktúra nélküli adatszerkezetek

Adatszerkezetek és algoritmusok

Átírás:

IV. Évfolyam 4. szám - 2009. december Deák Ferenc deak@nct.hu LÉTRADIAGRAM FORDÍTÓK ELMÉLETE PLC VEZÉRLÉSEK SZÁMÁRA I. Absztrakt A létradiagram egyszerű, programozási képzettséggel nem rendelkező szakemberek számára is érthető nyelv, ennek köszönhető, hogy az elmúlt 20-25 évben az egyik legnépszerűbb ipari programozási formává vált. Bár létradiagramos PLC (Programmable Logic Controller) rengeteg létezik a piacon, az ezeket feldolgozó fordítóprogramok irodalma meglehetősen szegényes. Az alábbi cikk az NCT új vezérléscsaládja számára kidolgozott PLC fordító elméleti hátterét mutatja be. Ez az algoritmus szakít az irodalom által ismertetett megközelítéssel, és gráfelméleti oldalról közelíti meg a kérdést, ami egy jól áttekinthető, szemléletes többlépcsős megoldást eredményez. Relay ladder logic has become one of the most popular discrete control programming systems in the last 20-25 years. Programmable Logic Controllers (PLCs) usually can be programmed by wiring up relay contacts and coils on screen. This virtual circuit is transformed into a list of instructions in sequence. In this paper, the translation theory of relay ladder logic for new generation NCT controllers is examined. In contrast to solutions accessible in the literature this algorithm is multiphase, expressive and based on graph theory. Kulcsszavak: PLC, Létradiagramm, fordító ~ PLC, Programmable logic controllers, relay ladder logic, compiler BEVEZETÉS Az NCT Kft. akkor még gazdasági munkaközösségként 1982-ben alakult. Munkatársai kezdetben az Elektronikus Mérőműszerek Gyára által gyártott Hunor vezérlők fejlesztésével foglalkoztak. A cég a kilencvenes évek elején NCT90 néven saját 16 bites eszterga-, majd pár évvel később maróvezérlővel lépett a piacra, majd szervomotorok és szervohajtások, CNC gépek fejlesztésével és gyártásával bővült a paletta. Az esztergavezérlők NC programnyelve 123

még a Hunor vezérlőkével egyezett meg, a maróvezérlők programozása azonban már Fanuckompatibilis volt. 1. ábra. Létradiagram A következő generációváltás a kilencvenes évek végén történt a 32-bites NCT99 megjelenésével, melynél mind a maró- mind az esztergavezérlők programozása és jelentős részben a kezelése is Fanuc kompatibilissé vált. LD 001.00 AND 001.01 OR 001.02 AND 001.03 LD 001.04 OR 001.05 AND LD OUT 004.00 1. mnemonic kód: Az 1. ábrán lévő létradiagram mnemonic kódja Tíz évvel később újabb nagyszabású termékmegújítás előtt állunk. A vezérlő többek között preemptív ütemezésű valósidejű operációsrendszert, a korábbinál lényegesen gyorsabb buszrendszert (EtherCAT [10]) kap. 124

2. ábra. Létradiagram mátrixos felépítése Az NCT vezérlők a kezdetektől fogva integrált PLC-vel rendelkeztek, vagyis a programozható logikai vezérlő nem önálló hardver egység, hanem csak egy szoftver modul. Egy szerszámgép esetében a PLC feladata, hogy az általános célú eszterga vagy maró vezérlőt egy konkrét gép működési környezetébe illessze: irányítja a szerszám- és munkadarabcserét, pneumatikus munkahengereket működtet, induktív jeladók jeleit fogadja, illetve kommunikál a vezérlő CNC moduljával, ami a szervohajtások irányítását végzi. Az NCT vezérlők PLC nyelve [3] jelenleg a Hunor vezérlőktől megörökölt alacsonyszintű szöveges kód, amit azonban nagyon kevesen ismernek. Mivel az NCT eladásaiban egyre nagyobb súllyal van jelen az OEM (original equipment manufacturer) cégek (szerszámgépgyártók, szerszámgép-felújító vállalkozások) részére történő értékesítés, ezért szükségessé vált, hogy itt is a Fanuc vezérlőkhöz hasonló rendszert vezessünk be: ez a ma már többé-kevésbé szabványossá vált létradiagram. A szabvány [1] ötféle programozási módot különböztet meg: utasításlista (mnemonickód), strukturált szöveg, létradiagram, funkcióblokk diagram és a sorrendi folyamábra [5]. Az állapotdiagramon [6, 7] és Petri-hálón [8,9] alapuló PLC programozási módok nem terjedtek el széleskörűen. A létradiagram egyszerű, programozási képzettséggel nem rendelkező szakemberek számára is érthető nyelv, ennek köszönhető, hogy az elmúlt 20-25 évben az egyik legnépszerűbb ipari programozási formává vált. Bár létradiagramos PLC rengeteg létezik a piacon, az ezeket feldolgozó fordítóprogramok irodalma meglehetősen szegényes. A témában született publikációk többsége azt tárgyalja, hogyan lehet egy megadott szabályrendszerből létradiagramot generálni [4]. Ennek további feldolgozásáról értekezik John T. Welch professzor cikke [2]. Az általa ismertetett algoritmus [2] csupán az alapelemek (kontaktusok, tekercsek) fordítását mutatja be, nem írja le a mai PLC-kben elterjedt bonyolult soklábú elemek számlálók, szubrutinok valamint ideiglenes relék kifejtését. Az alábbi cikk az NCT új vezérléscsaládja számára kidolgozott PLC fordító elméleti hátterét mutatja be. Ez az algoritmus szakít az irodalom által ismertetett megközelítéssel, és gráfelméleti oldalról közelíti meg a kérdést, ami egy jól áttekinthető, szemléletes többlépcsős megoldást eredményez. 125

A cikksorozat három részből áll: az alábbi cikk ismerteti a létradiagram létrafokokra bontását, a második rész foglalkozik magával a fordítással, a harmadik rész pedig a speciális eseteket és az ipari alkalmazásokat mutatja be. A LÉTRADIAGRAM A PLC programot létradiagram formájában kell megírni, ami a hagyományos villamos áramút-tervek szoftveres megfelelője. Kód Magyarázat A verem tartalma, az utasítás végrehajtása után LD 001.00 A 001.00 bit tartalmát 001.00 betöltjük a AND 001.01 - Kivesszük a verem tetején 001.00 ÉS 001.01 levő értéket - Elvégezzük a logikai ÉS műveletet a 001.01 tartalmával OR 001.02 - Kivesszük a verem tetején levő értéket - Elvégezzük a logikai VAGY műveletet a 001.02 bit tartalmával 001.00 ÉS 001.01 VAGY 001.02 AND 001.03 LD 001.04 OR 001.05 AND LD OUT 004.00 - Kivesszük a verem tetején levő értéket - Elvégezzük a logikai ÉS műveletet a 001.03 bit tartalmával A verem tetejére betöltjük a 001.04 bit tartalmát - Kivesszük a verem tetején levő értéket - Hozzávagyoljuk a 001.05 bit tartalmát - Kivesszük a verem tetején található két értéket - Összeéseljük őket Kivesszük a verem tetején található értéket, és beírjuk a 004.00 bitbe (001.00 ÉS 001.01 VAGY 001.02) ÉS 001.03 001.04 --------------------------------- (001.00 ÉS 001.01 VAGY 001.02) ÉS 001.03 001.04 VAGY 001.05 --------------------------------- (001.00 ÉS 001.01 VAGY 001.02) ÉS 001.03 (001.04 VAGY 001.05) ÉS ((001.00 ÉS 001.01 VAGY 001.02) ÉS 001.03) üres 1. táblázat. A mnemonickód értelmezése 126

A PLC program fordítása a következő lépesekből áll: 1. A létradiagramot létrafokokra bontjuk. 2. Az egyes létrafokokat gráffá alakítjuk. 3. Kifejtjük az ideiglenes reléket. Vezeték darabok szomszéd: fönt, jobbra, lent szomszéd: jobbra, lent, balra szomszéd: fönt, jobbra szomszéd: jobbra, balra Érintkező Kimenet szomszéd: jobbra, balra szomszéd: balra 2. táblázat. Néhány létradiagram elem A piacon léteznek olyan berendezések, amelyeket létradiagramban nem, hanem csak mnemonickódban lehet programozni. Ez esetben általában azt tanácsolják a leírások, hogy a PLC programozó rajzolja meg kézzel a létradiagramot. Ekkor a létradiagram lefordítása mnemonickóddá a PLC programozó feladata. A létradiagram és a mnemonickód között nincsen egyik irányban sem egyértelmű megfeleltetés. Az 1. ábrán szereplő létradiagram fordítása látható az 1. mnemonickód mezőben. Az 1. táblázatban foglalt kód némi magyarázatot érdemel. A mnemonic-kódra fordítást a PLC leírások intuitív folyamatként tárgyalják számos példával illusztrálva. A PLC programozók átlátva a létradiagramban levő kapcsolatokat kisakkozzák a megoldást. Ma már a létradiagram fordítók elvégzik ezt a munkát. Az alábbi cikk ennek a folyamatnak egy új módszerét ismerteti. 127

Ebben a leírásban létradiagram vezeték darabokból, feltételekből (érintkezőkből), és kimenetekből állnak. A vezeték darabok segítségével a feltételek között logikai (és/vagy) kapcsolatokat hozhatunk létre. A feltételeknek két fajtája van: az alaphelyzetben nyitott és az alaphelyzetben zárt érintkező. Kimenetből nagyon sokféle van, amelyektől jobbra már nem állhat más elem ezeket jobboldali elemnek is szokás nevezni. A létradiagram létrafokokból áll, melyek a baloldali alapvonalból indulnak ki, és jobboldalon pedig egy kimenet zárja őket. Lényegében az egy kimenethez tartozó létradiagram elemeket nevezzük létrafoknak. A létradiagram elemek egymáshoz tehát vezetékekkel kapcsolódnak. Ha egy adott létradiagram elem és szomszédja között van vezetékes kapcsolat, akkor azt mondjuk, hogy a létradiagram-elem számára ez a szomszéd engedélyezett. Az 1. ábrán használt létradiagram elemek engedélyezett szomszédait a 2. táblázat mutatja. minden (K kimenet típusú elemre) { Választunk egy eddig nem használt C színt LétraFokokraBontás( K, C ) } LétraFokokraBontás(Létradiagram-elem E, Szín C ) { ha ( E már a jobboldali alapvonal vagy E már be van színezve) akkor nem csinálunk semmit különben { E-t beszínezzük C színűre } } minden ( S engedélyezett szomszédra ) { LétraFokokraBontás( S, C ) } 1. Pszeudó kód: A létrafokokra bontás Létradiagram mátrixos felépítése A létradiagram elemeit egy kétdimenziós tömbben tároljuk a 2. ábrán látható módon. Az alábbi leírás nem tér ki minden részletre, a fordítási folyamatot a könnyebb érthetőség kedvéért csak fő vonalaiban ismerteti. A feldolgozás első lépése, hogy a létradiagramot felbontjuk olyan létradiagramok sorozatára, melyek mindegyike csak egyetlen létrafokot tartalmaz. 128

3. táblázat. A létrafokokra bontás néhány lépése egy példán 129

A LÉTRAFOKOKRA BONTÁS A létrafokokra bontás célja, hogy független szegmensekre bontsuk a feladatot, melyeket önállóan lehet feldolgozni. A kimeneteket a mátrixban balról jobbra és fentről lefele haladva keressük. A fentiek szerint végigmegyünk a mátrix összes elemén, és ha az adott elem kimenetnek számít, akkor választunk egy még nem használt színt és végrehajtjuk rajta a LétreFokokraBontás nevű eljárást. Az művelet algoritmusát 1. Pszeudó kód mutatja Ebben az eljárásban az óramutató járásának megfelelően bejárjuk az adott elem összes szomszédját, és ha az engedélyezett, akkor rekurzív módon elvégezzük azon is a LétraFokokraBontás eljárást. A rekurzív hívásoknak akkor van vége, ha elértük a baloldali alapvonalat, vagy ha egy korábban színezett elemre lépünk. Ezt a bejárási módot mélységi keresésnek (depth first search, DFS algoritmus) hívják. Erre mutat egy példát a 3. táblázat Az azonos színűre színezett létradiagram elemek jelentenek egy lépcsőfokot. A továbbiakban a lépcsőfokokat egymástól elkülönítve dolgozzuk fel. ÖSSZEFOGLALÁS A cikksorozat első részében a PLC program létrafokokra bontása került bemutatásra. A következő rész ezeknek az önálló programként értelmezhető programrészeknek végrehajtható szöveges kóddá alakítását fogja majd ismerteti. A harmadik rész tárgyalja, hogy a fordítási algoritmus kidolgozása után a létradiagram szerkesztő kényelmesebbé tétele a fejlesztés fő iránya. Hangsúlyozni kell, hogy a cikkben ismertetett elmélet alapján kialakított szoftver alkalmazásaként már egyre több termelő berendezés működik, főleg a járműiparban. Felhasznált Irodalom [1] IEC 61131-3 Programmable controllers - Part 3: Programming languages International Standard, International Electrotechnical Commission, 2003 [2] John T. Welch: Translating unrestricted relay ladder logic into Boolean form. Computers in Industry, 20 (1992) 45-61 [3] NCT szerszámgép vezérlések PLC programozási leírása http://www.nct.hu/pdf/nc_documents/magyar/telepites/magplc.pdf [4] H. A. Barker, J. Song, P. Townsend: A rule based procedure for generating programmable logic controller code from graphical input in the form of ladder diagrams, Eng. Appli. of AI, 1989, Vol. 2, December [5] R. Wareham, Ladder diagram and sequential function chart languages in programmable controllers, Can. Mach. Metalwork., December 1988, pp. 25-26. 130

[6] R. Devanathan, Computer aided design of relay ladder diagram from functional specification Int. Conf. on Industrial Electronics, Control and Instrumentation IECON, 1990, pp. 527-531. [7] D. Harel, Statecharts: a visual formalism for complex systems, Sci. Comput. Programming Vol. 8, 1987, pp. 231-274. [8] M. Courvoisier, R. Valette, J. Bigou and P. Esteban, A programmable controller based on a high level specification tool, IECON 1983, pp. 174-179. [9] T. Murata, N. Komoda, K. Matsumaoto and K. Haruna, A Petri-net based controller for flexible and maintainable sequence control and its applications in factory automation, IEEE Trans. Ind. Electron, Vol. IE-33, No. 1, February 1986, pp. 1-8. [10] IEC PAS 62407 Real-time Ethernet control automation technology (ETHERCATTM), International Electrotechnical Commission, 2005 131