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



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 I.

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.

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

Programozható logikai vezérlő

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

NEMZETGAZDASÁGI MINISZTÉRIUM

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

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

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

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

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

Java programozási nyelv

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

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

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

Irányítási struktúrák összehasonlító vizsgálata. Tóth László Richárd. Pannon Egyetem Vegyészmérnöki és Anyagtudományok Doktori Iskola

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

11. KÓDÁTALAKÍTÓ TERVEZÉSE HÉTSZEGMENSES KIJELZŐHÖZ A FEJLESZTŐLAPON

Joint Test Action Group (JTAG)

CDC 2000 Vezérlő 7. Vezérlőelemek figyelése Asian Plastic

3. Az univerzális szabályozó algoritmusai.

Programzás I gyakorlat

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

Occam 1. Készítette: Szabó Éva

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

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

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

Programozható logikai vezérlõk

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

Intelligens Érzékelők

Laborsegédlet 3. Labor

A SZEMCSEALAK ALAPJÁN TÖRTÉNŐ SZÉTVÁLASZTÁS JELENTŐSÉGE FÉMTARTALMÚ HULLADÉKOK FELDOLGOZÁSA SORÁN

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

Pacemaker készülékek szoftverének verifikációja. Hesz Gábor

Programozható Logikai Vezérlő

Adatok ábrázolása, adattípusok

Bevezetés a programozásba I.

Programozás létradiagramos programozási nyelven

AKTUÁTOR MODELLEK KIVÁLASZTÁSA ÉS OBJEKTÍV ÖSSZEHASONLÍTÁSA

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

Dr. Oniga István DIGITÁLIS TECHNIKA 8

5. Laborgyakorlat. Számláló funkciók, időzítő funkciók.

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

1. Jelölje meg az összes igaz állítást a következők közül!

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

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

Merlin Gerin. Katalógus. Védelem, automatika és irányítástechnika Sepam készülékcsalád Sepam 2000 Sepam Sepam 100

X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

1. konferencia: Egyenáramú hálózatok számítása

Programozási alapismeretek 1. előadás

Váltakozó áramú generátor, egyenáramú motor, léptető motor vizsgálata

Mosógépmotor bekötése

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

Irányítástechnika Elıadás. Relék. Relés alapkapcsolások

Kioldóköri ellenőrzés EuroProt+ készülékekben

Amortizációs költségelemzés

Programozás és Digitális technika I. Pógár István eng.unideb.hu/pogari

Minta felvételi feladatsor programozásból

Mérnök informatikus mesterszak mintatanterve (GE-MI) nappali tagozat/ MSc in, full time Érvényes: 2011/2012. tanév 1. félévétől, felmenő rendszerben

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

SZEMLÉLETES RÉSZINFORMÁCIÓK INTEGRÁCIÓS PROBLÉMÁINAK VIZSGÁLATA A VIRTUÁLIS VALÓSÁGOT TEREMTŐ SZIMULÁTOROK ALAPJÁN

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

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

Adatszerkezetek és algoritmusok

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Matlab Fuzzy Logic Toolbox

Teszt generálás webes alkalmazásokhoz

Foundation Fieldbus kommunikációra épülő folyamatirányítás teljesítőképességi kérdései

A nagy teljesítõképességû vektorhajtások pontos paraméterszámításokat igényelnek

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

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

Programozható logikai vezérlők

VALÓS HULLÁMFRONT ELŐÁLLÍTÁSA A SZÁMÍTÓGÉPES ÉS A DIGITÁLIS HOLOGRÁFIÁBAN PhD tézisfüzet

Adatkapcsolati réteg 1

II. év. Adatbázisok és számítógépek programozása

Rekurzió. Dr. Iványi Péter

BIZONYOS GRÁFELMÉLETI ALGORITMUSOK TANÍTÁSA ELEGÁNSAN KISS LÁSZLÓ

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

A döntésorientált hibamód és hatáselemzés módszertanának tapasztalatai az AUDI Motor Hungária Kft.-nél

Egyszerű programozási tételek

Az Ön kézikönyve LG 26LE5500

HIDEGEN HENGERELT ALUMÍNIUM SZALAG LENCSÉSSÉGÉNEK VIZSGÁLATA INVESTIGATION OF CROWN OF COLD ROLLED ALUMINIUM STRIP

Osztott algoritmusok

Brother eredeti színes nyomtatópatron A megadott oldalkapacitás számítási módja az ISO/IEC24711 szabvány alapján

Pénzügyi algoritmusok

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

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

2015. évi Bolyai János Megyei Matematikaverseny MEGOLDÁSI ÉS ÉRTÉKELÉSI ÚTMUTATÓ 9. osztály

A felmérési egység kódja:

Podoski Péter és Zabb László

A fafeldolgozás energiaszerkezetének vizsgálata és energiafelhasználási összefüggései

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

Programozási nyelvek (ADA)

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

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

A -Y és a Y- átalakítás bemutatása. Kiss László április havában

Átírás:

V. Évfolyam 2. szám - 2010. június Deák Ferenc deak@nct.hu LÉTRADIAGRAM FORDÍTÓK ELMÉLETE PLC VEZÉRLÉSEK SZÁMÁRA III. 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 265

BEVEZETÉS Az előző két részben a fordítási algoritmust ismertetettük. Most két olyan esetről lesz szó, amivel az általános algoritmus megértését nem kívántuk elbonyolítani. Különösen fontos a számlálók esete, mivel a kereskedelemben kapható PLC-kkel ellentétben, ez az algoritmus lehetővé teszi, hogy számláló ne csak a létrafok jobboldalán állhasson, hanem bárhol, és kimenetét feltételként szabadon fel lehessen használni. SPECIÁLIS ESETEK: IDEIGLENES RELÉK KIBONTÁSA 1.ábra. PLC program, melyben ideiglenes relé alkalmazása javasolt Ha az érintkezőket a diagramban vezetékdarabok felhasználásával sorosan illetve párhuzamosan kötjük, akkor köztük ÉS illetve vagy kapcsolatokat hozhatunk létre, így összetett logikai kifejezéseket valósíthatunk meg. Ha valamilyen logikai kifejezés eredményét többször fel szeretnénk használni a PLC programban, akkor két dolgot tehetünk: a) A logikai kifejezést annyi példányban megismételjük, ahányszor szükségünk van rá. Ez két problémát vet fel. Egyrészt, ha módosítani, akarjuk, akkor az összes előfordulását módosítani kell, aminek elmulasztása hibákhoz vezethet, másrészt a kifejezés értékét többször ki kell számítanunk. Másrészt a kifejezést minden előfordulásakor újra meg újra ki kell értékelnie a PLC-nek, ami nem gazdaságos b) Létrehozunk egy ideiglenes relét. A diagramban (1.ábra) a többször felhasznált kifejezést a 001.00 érintkező szimbolizálja. (Az 1.ábra egy meglehetősen egyszerű esetet mutat be, 266

az ideiglenes relé alkalmazása természetesen csak akkor éri meg, ha a 001.00 érintkező helyén valamilyen bonyolultabb kifejezés áll.) Az ideiglenes relé a 004.02-es relé, amelyet igazi kimenetként nem használunk fel, egyetlen célja, hogy további kifejezésekben szerepeljen. Az fenti ábrán (1.ábra) szereplő kapcsolást egyszerűbben is rajzolhatjuk, ezt mutatja a 2. ábra, ahol az ideiglenes relét egy vezetékdarabban rejtjük el, és TR jellel jelöljük. 2. ábra. Ideiglenes relé alkalmazása Az ideiglenes relé alkalmazása azonban a fordító algoritmus módosítását igényli. Az új algoritmus a következő: 1) Létrafokokra bontás. 2) Gráf reprezentációra alakítás 3) Ideiglenes relék kifejtése. Ennek során a 2. ábrának megfelelő gráfot átalakítja a PLC fordító az 1. ábrának megfelelő gráffá. (Erre a pontra egy példa a Speciális esetek: számlálók fejezetben található). 4) Mivel az előző lépésben egy létrafokból több keletkezik, ezért a létrafokokra bontást meg kell ismételni. A létrafokokra bontás megegyezik az első lépésben alkalmazott módszerrel, mely egy korábbi fejezetben került ismertetésre, azzal a különbséggel, hogy itt a létrafokokra bontás már a gráf reprezentáción történik. 5) A fordítás többi lépése megegyezik a korábban leírtakkal. SPECIÁLIS ESETEK: SZÁMLÁLÓK 267

3. ábra. Számláló a létradiagramban Az cikkben bemutatott számlálónak baloldalon egy léptető, és egy reset bemenete van. Kimenete a számláló típusától és állapotától függően aktív, vagy nem aktív. A kimenet opcionális, amennyiben nincs kimenete, akkor ezt a fordító pótolja egy a PLC program írója számára láthatatlan nyelő - vel. A számlálók belső működése a fordítási algoritmus szempontjából érdektelen, viszont abban lényegesen eltérnek a többi létradiagram-elemtől, hogy a több helyen is szerepelnek a mátrixban (mivel több lábuk van a baloldalon). Ezt úgy lehet elérni, hogy a mátrixban nem maguk a létradiagram elemek szerepelnek, hanem csak referenciák melyek a létradiagram elemre mutatnak. Ezt a megoldást mutatja be a 1. és 2. táblázat. Azonosító Típus Cím Index 1 Számláló 8001 #5 2 Érintkező 8000.00-3 Érintkező 8000.01-4 T-elágazás - - 5 T-elágazás - - 6 Tekercs 8000.02-1. táblázat. Létradiagram elemek felsorolása 4 2 1 6 5 3 1-2. táblázat. Létradiagram elemek a mátrixban Az ebből fordított gráf alakot mutatja a 4. ábra. 268

4. ábra. Számláló gráf alakja A számláló első előfordulását egy speciális itt CSILLAG -gal jelölt élnek fordítjuk, a második előfordulás maga a számláló. A CSILLAG -nál a felső, a második előfordulásnál az alsó lábat vesszük figyelembe a baloldalon. A jobboldali láb mindkét esetben ugyanarra az OUT élhez csatlakozik. A CSILLAG -ot az OUT-hoz és az ideiglenes relékhez hasonlóan ún. jobboldali elemnek tekintjük. A CSILLAG -ra és az OUT-ra alkalmazzuk a Speciális esetek: ideiglenes relék kibontása fejezetben leírt algoritmus 3. pontját a következőképpen: 1. Kezdetben minden elem színtelen. 2. Előbb a CSILLAG, majd az OUT mint jobboldali elemből kiindulva színezünk. 3. Választunk egy eddig még nem használt színt, és nyilakkal ellentétes irányban haladva beszínezzük a még nem színes éleket. A lépés után a gráfot a 5. ábra mutatja. 5. ábra. A gráf a másodlagos létrafokokra bontás után A különböző színű másodlagos létrafokokat egymástól függetlenül alakítjuk utasításlistává: a 1. mnemonic kód az első, az 2. mnemonic-kód a második létrefokot mutatja. 269

Egy összefésülési lépésben a CTUP AND LD-ot CTUP-ra cseréljük, így az AND LD eltűnik. A két létrafokból keletkezett utasításlistát egymás után fűzzük, a CSILLAG parancsokat egyszerűen töröljük (3. mnemonic kód). LD 8000.00 CSILLAG LD 8000.01 CTUP 8001 #5 AND LD OUT 8000.02 LD 8000.00 LD 8000.01 CTUP 8001 #5 OUT 8000.02 Mnemonic kód 1: első létrafok 2. Mnemonic kód: második létrafok 3. mnemonic kód: CSILLAG -ok törlése után A CTUP utasítás a végrehajtás során két adatot vesz ki a veremből (léptetőjel és reset), és egyet tesz bele (az OUT számára). A fordító helyes működéséhez azonban módosítanunk kell a soros összevonás szabályait. A 6. ábrán látható létra feldolgozásának lépéseit a 7-9. ábra mutatja. 6. ábra. Példa a soros összevonás módosítására 270

7. ábra. Gráf alak 8. ábra. A TR-ek kibontása után 9. ábra. Másodlagos létrafokok A harmadik létrafok esetében nem mindegy, hogy a soros összevonásokat milyen sorrendben hajtjuk végre. A 7.és 8. mnenomickód mutatja, hogy mi keletkezi, ha a 6-3 pontok közötti éllel kezdjük az átalakítást. A másik létrafokkal együtt a kész programot mutatja a 9. mnemonic-kód, ami hibás, mivel többet teszünk a verembe, mint amennyit kiveszünk. (Veremtartalom változásának összege nem zérus). 271

LD 2 LD 3 CNT ANDLD ANDLD OUT 4 4. mnemonic-kód: AND LD kifésülése előtt LD 2 LD 3 CNT OUT 4 5. mnemonic kód: AND LD kifésülése után A másik két létrafokkal együtt (a zárójel a veremtartalom változását jelzi): LD 1 (+1) OUT 2 (-1) LD 2 (+1) LD 2 (+1) LD 3 (+1) CNT (-1) OUT 4 (-1) 6. mnemonic kód: Az összes létrafok együtt A 10-12. mnemonic kód mutatja a helyes megoldást: 1-6 éllel kell kezdenünk. A 1-3. pszeudó kód, és a 10-11. ábra mutatja a helyes algoritmust. LD 2 LD 3 AND LD CNT ANDLD OUT 4 LD 2 AND 3 CNT OUT 4 7. Mnemonic kód: Eredmény, ha az 1-6 éllel kezdünk 8. Mnemonic kód: az összevonások után 272

LD 1 (+1) OUT 2 (-1) LD 2 (+1) LD 2 (+1) AND 3 (0) CNT (-1) OUT 4 (-1) 9. Mnemonic kód: A többi létrafokkal együtt Amíg van változás { Felesleges CSILLAG -ok törlése Soros-párhuzamos összevonások CSILLAG és számláló összevonások } 1. pszeudó kód: Összevonások algoritmusa Amíg van változás { Minden élre { Megvizsgáljuk, hogy össze lehet-e vonni másik éllel. } } Ha igen Akkor soros-párhuzamos összevonást végzünk 2. pszeudó kód: Soros-párhuzamos összevonás algoritmusa Minden élre { Számláló vagy CSILLAG összevonást végzünk } 3. pszeudó kód: CSILLAG és számláló összevonások algoritmusa 273

10. ábra. A csillag összevonás 11. ábra. A számláló összevonás 274

IPARI ALKALMAZÁSOK Az új PLC első alkalmazása rendhagyó módon egy kovácsoló gyártósor irányítása volt. A PLC önállóan NC modul nélkül üzemel, és egy hidraulikus prést, egy körasztalt, egy indukciós kemencét és önálló robotvezérlőkön keresztül három ipari robot munkáját irányítja. Azóta egy fogazógép, egy dörzshegesztőgép és egy karusszel eszterga felújítását is ezzel a vezérléssel oldottuk meg, és várhatóan 2010 tavaszától már a szériagyártás is megkezdődik. TOVÁBBI FEJLESZTÉSEK A szöveges PLC nyelvek vitathatatlan előnye, hogy a PLC programok szerkesztése a jól kidolgozott általános célú szerkesztőkkel megoldható. A szöveges kód bár nehezebben érthető de nagyon rugalmas. Ezt a létradiagram esetében felhasználóbarát szerkesztő kidolgozásával ellensúlyozható. A PLC szerkesztőnek együtt kell működnie a villamos tervezőrendszerekkel is. A hatékonyságjavítás fontos területe, az egyre összetettebb PLC utasítások beépítése, mellyel a PLC program tömörebbé, a PLC program megírása lényegesen gyorsabbá tehető. Bár az első őspéldányok elkészítése óta az NCT létradiagram szerkesztője sokat fejlődött, mégis célszerű a szerkesztőt erőteljesen fejleszteni, mivel minden munkaóra, amit PLC programozók munkáját gyorsító megoldások kidolgozásával töltünk, többszörösen megtérül. 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 275

[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. [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 276