Szerszámgépészeti és Mechatronikai Intézet Robert Bosch Mechatronikai Intézeti Tanszék Gépészmérnöki és Informatikai Kar


1 Szerszámgépészeti és Mechatronikai Intézet Miskolci Egyetem Robert Bosch Mechatronikai Intézeti Tansz&eacu...
Author:  Nóra Budainé

0 downloads 2 Views 1MB Size

Recommend Documents


No documents


Szerszámgépészeti és Mechatronikai Intézet Robert Bosch Mechatronikai Intézeti Tanszék

Miskolci Egyetem Gépészmérnöki és Informatikai Kar

Szakdolgozat Tesztkörnyezet fejlesztése Siemens S7+ analóg periféria modulok funkcióinak ellenőrzéséhez

Készítette: Lőrincz Gábor

Témavezető Lénárt József Konzulens Bakó István

2016

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

TARTALOMJEGYZÉK

1. BEVEZETÉS ......................................................................................................................... 1 2. AZ S7+ RENDSZER BEMUTATÁSA ................................................................................. 3 2.1. BŐVEBBEN AZ ET 200SP RENDSZERRŐL .............................................................. 5 2.2. AZ ANALÓG MODULOK BEMUTATÁSA ................................................................ 7 2.3. A MODULOK CSATLAKOZÓKIOSZTÁSA ............................................................. 10 2.4. A DIAGNOSZTIKAI FUNKCIÓK MŰKÖDÉSE ....................................................... 13 2.5. A MODULOK EGYÉB FUNKCIÓI ............................................................................ 16 3. A HARDVERKONFIGURÁCIÓ ........................................................................................ 17 4. A TESZTPROGRAM MŰKÖDÉSE ................................................................................... 21 4.1. A CPU FELFUTÁSA.................................................................................................... 24 5. MANUÁLIS TESZTVÉGREHAJTÁS ............................................................................... 29 6. AUTOMATIKUS TESZTVÉGREHAJTÁS – ÖSSZEFOGLALÓ .................................... 32 6.1. A MODULOK ÁTKONFIGURÁLÁSA ...................................................................... 33 6.2. DIAGNOSZTIKAI FUNKCIÓK ELLENŐRZÉSE – KIMENETI MODULOK ........ 37 6.3. DIAGNOSZTIKAI FUNKCIÓK ELLENŐRZÉSE – BEMENETI MODULOK........ 40 6.4. A HARDVERES MEGSZAKÍTÁSOK ELLENŐRZÉSE ........................................... 41 7. A TESZTEREDMÉNYEK KIÉRTÉKELÉSE .................................................................... 42 8. FEJLESZTÉSI LEHETŐSÉGEK ........................................................................................ 44 9. ÖSSZEFOGLALÁS ............................................................................................................. 45 10. SUMMARY ....................................................................................................................... 46 11. IRODALOMJEGYZÉK ..................................................................................................... 47

I

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

1. BEVEZETÉS A megfelelő minőség garantálása érdekében minden termék a piacra történő bevezetése előtt átesik bizonyos tesztelési folyamatokon. A tesztelést végzőknek komoly felelősségük van, mivel az ő feladatuk eldönteni, hogy egy termék elérte-e már a piaci érettség mérföldkövét. Az evosoft Hungary Kft. System Test&Engineering üzletága a Siemens hajtástechnikai, automatizálási és irányítási rendszereinek tesztelésével foglalkozik. A vállalat budapesti irodája a termékfejlesztés utolsó lépcsőfoka, ahová az eszközök már abban a formájukban érkeznek, ahogy azokat a Siemens a végfelhasználóknak szánja. Legyen szó egy CPU-ról, digitális vagy analóg modulról, esetleg egyéb speciális célra szánt eszközről, a forgalomba hozatal előtt minden funkcióját alapos ellenőrzésnek kell alávetni. A tesztelés természetesen az eszköz kiadása után sem ér véget. Folyamatosan érkeznek az újabb firmware-ek a felhasználói élmény javítása vagy egy, csak később megtalált hiba javítása érdekében. Alap feltevés, hogy egy funkció tökéletes működése egy korábbi firmware-ben nem garancia arra, hogy az ugyanúgy fog működni egy újabban, ezért egy új verzió kiadásakor újra el kell végezni a teszteket. Ennek köszönhetően mindennapossá vált a teszt-automaták használata. Az eszközök és szoftverek tesztelését egy tesztadatbázis alapján kell elvégezni, ami tartalmazza az elvégzendő teszteket, azok végrehajtási módját és az elvárt eredményeket is. Egyes tesztek – mint például a méréshatárok ellenőrzése – csak manuálisan végezhetőek el, de nagy számban fordulnak elő automatizálható feladatok is. Feladatom egy olyan tesztkörnyezet tervezése és megvalósítása volt, mely képes elvégezni és kiértékelni egy analóg bemeneti és egy kimeneti Simatic ET 200SP periféria modul automatizálható tesztjeit centrális (CPU mögötti) használat esetén. A tesztkörnyezet megtervezése során alapkövetelmény volt, hogy a modulok funkciót az összes lehetséges beállítási kombinációban ellenőrizni kell, hibás működés esetén pedig minden olyan információt le kell tárolni, ami alapján az manuálisan is reprodukálhatóvá válik. A tesztkörnyezet kialakítása során figyelembe kellett vennem továbbá, hogy az egyes modulok által megvalósítható funkciók eltérhetnek, így a tesztek során elvárt eredmények is mások. Mivel az eszközök folyamatosan fejlesztés alatt állnak, azokba rendszeresen kerülnek be új funkciók. Egy új funkció megjelenése időnként egy korábban implementáltnak a működését is befolyásolhatja, ezért gondoskodnom kellett róla, hogy az elvárt eredmények a 1

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

jövőben módosíthatóak legyenek a felhasználó program nagyobb mértékű megváltoztatása nélkül. Az S7+ rendszerek termékpalettájának folyamatos bővülése miatt alapvető célnak tűztem ki, hogy a rendszer ne csak a jelenleg piacon lévő modulok tesztelését legyen képes elvégezni, hanem minimális időráfordítással bevezethetőek legyenek a jövőben várhatóak is. Dolgozatom két fő részre osztható. Az első részében bemutatom az S7+ rendszert, - azon belül is nagyobb hangsúlyt fektetve az ET 200SP termékcsaládra – annak főbb újdonságait, továbbá a tesztelendő analóg ki- és bemeneti modulok funkciót és működési módjait. A tesztkörnyezet felépítése és annak működése a dolgozat második részében kerül bemutatásra a harmadik fejezettől kezdődően, mely a tesztek elvégzéséhez szükséges hardverkonfigurációt tartalmazza. Ugyanebben a fejezetben ismertetésre kerül továbbá egy áramkör mely a bemeneti modulok ellenőrzésében játszik nagy szerepet. A további fejezetek a tesztprogram működését, az ellenőrzések sorrendjét és lefutását tartalmazzák. Külön fejezetek foglalkoznak a működés manuális ellenőrzésével, illetve az automatikus tesztvégrehajtással.

2

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2. AZ S7+ RENDSZER BEMUTATÁSA Az S7-300-as PLC-k 1995-ös bevezetése óta jelentős technikai fejlődésnek lehettünk tanúi, melynek köszönhetően a Siemens elérkezettnek látta az időt az S7 termékpaletta felfrissítésére. A vállalat 2010 első negyedévében kezdte el bevezetni az új termékcsaládokat, melyek az S7-1200, S7-1500 és ET 200SP neveket kapták. Összefoglaló nevükön a Siemens ezen eszközöket S7+ rendszernek nevezi, míg az előző generáció (S7-300, S7-400, illetve az ET 200S) a Classic nevet kapta. Az új generáció megjelenésével természetesen nem csak a teljesítményben történt változás. A fő irányvonal az egységesítés volt, melynek köszönhetően minden S7+ CPU rendelkezik minden funkcióval. Míg Classic CPU-k esetében bizonyos funkciók (például több ciklikus megszakítás) csak a felsőbb kategóriás eszközökön érhetőek el, az S7+ CPU-k között csak méret-, portszám-, és teljesítménybeli különbség van. A jelenleg kapható eszközök közül a legkisebb teljesítményű S7-1511-1 CPU is tartalmaz minden olyan funkciót, amit a legerősebb modell, az S7-1518-4 is.

2.1 ábra – Az S7-1500 termékcsalád egyes modelljei (forrás: www.totallyintegratedautomation.com)

A 2.1 ábrán jól látható, hogy az S7-1500-as CPU-kon megjelent a felnyitható kezelőpanel. Ennek segítségével programozó számítógép (PG) nélkül is lekérdezhetjük, illetve módosíthatjuk a fontosabb jellemzőket, kiolvashatjuk a diagnosztikai puffer tartalmát, vagy akár VAT táblákat kezelhetünk.

3

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A Classic rendszerek elsődleges programozási nyelve az STL, az S7+ rendszeré viszont az SCL lett. Az STL a logikai műveletekhez a CPU akkumulátorait használja [1], melyeknek a mérete 32 bit. A Plus rendszerrel azonban bevezetésre kerültek új 64 bites adattípusok [2] melyeknek a kezelése az akkumulátorokkal, ha nem is lehetetlen, de rendkívül körülményes lenne. Az SCL programnyelvnek ezzel szemben nincs szüksége a CPU akkumulátoraira, emiatt - és az eltérő processzor architektúra miatt - fizikálisan azok már nem is léteznek a CPU-ban, csupán egy elkülönített memóriaterületként vannak jelen az STL kompatibilitás miatt. Classic rendszerek esetén az adatblokkokban a változók kezdőcímei sorrendben, egymás után történnek kiosztásra az adatblokkban elfoglalt helyük szerint. Az S7+ rendszerrel együtt bevezetésre került az optimalizált hozzáférés [2], mely S7-1200 PLC-k esetén helykihasználásra, S7-1500 PLC-k esetén pedig sebességre történő optimalizálást jelent. Előbbi esetben a fordító olyan sorrendbe rendezi a változókat, hogy azok a lehető legkevesebb helyet foglalják a memóriában. Sebességre történő optimalizálás esetén a fordító a gyorsabban elérhető változókat az adatblokk elejére rendezi, a BOOL típusú változókat pedig külön-külön bájtra helyezi el, ezzel még tovább csökkentve az elérési időt. Optimalizált hozzáférés esetén a változók kezdőcímei a felhasználó számára rejtve maradnak, így azokra a programban csak szimbolikus címükkel lehet hivatkozni. Az új eszközökkel párhuzamosan került bemutatásra a TIA Portal programozó környezet, mely számos újdonságot vonultatott fel. Megújult a keretprogram és változásokon estek át a programszerkesztők. A fejlesztők különös figyelmet fordítottak az SCL programszerkesztőre, melynek köszönhetően a felhasználói élmény jelentős mértékben javult. A szerkesztő felugró ablakokkal segíti a programozó munkáját, melyeknek köszönhetően már nem szükséges begépelni egy változó teljes elérési útját. Alapértelmezett lett továbbá a szimbolikus címzés. Programnyelvtől függetlenül, ha egy változóra annak abszolút címével hivatkozunk, a szerkesztő automatikusan kicseréli azt a változó szimbolikus címére. Amennyiben egy változóhoz még nem rendeltünk hozzá szimbolikus címet, a program automatikusan legenerálja azt. Az eszköz- és hálózatkezelés teljesen grafikus úton történik. A hálózati nézet ablakban egyszerre érhetjük el és köthetjük hálózatba az eszközeinket. Nem csak a vezérlők, hanem a HMI-k (ember-gép kapcsolat) és a számítógép-állomások konfigurálása is ebben a nézetben történik, így a kialakított hálózat könnyebben kezelhetővé válik. 4

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2.1. BŐVEBBEN AZ ET 200SP RENDSZERRŐL A 2.2 ábrán egy ET 200SP rendszer látható, melyet a korábbi ET 200S utódjának tekinthetünk. A termékpaletta magában foglal decentrális perifériákat és CPU-kat egyaránt. A processzorok az elődtől eltérően CPU 15XX elnevezést kaptak akárcsak az S7-1500-as társaik, melynek okát a korábban említett egységesítésben kereshetjük. Végrehajtási idő, memória és teljesítmény tekintetében az ET 200SP termékcsalád CPU-i egyenértékűnek tekinthetőek az S7-1500 termékcsalád alsóbb kategóriás eszközeivel. Bár az ET 200SP processzorok kijelzővel nem rendelkeznek, és a választható modulok csatornaszáma is jellemzően kevesebb, a rendszer számos más előnyös tulajdonsággal bír.

2.2 ábra – Simatic ET 200SP konfiguráció (forrás: www.siemens.com) Míg az S7-1500-as CPU-k után centrálisan (CPU mögé) maximálisan harminc modul csatlakoztatható, az ET 200SP CPU-k után akár hatvannégy is, így sokkal változatosabb konfigurációk állíthatóak össze. További előny a vertikális telepíthetőség, bár ilyen esetben a csatlakoztatható modulok száma harminckettőre csökken. Mivel a termékpalettán található modulok eltérő szélességűek lehetnek, ügyelnünk kell rá, hogy a busz hossza nem haladhatja meg az egy métert [3]. 5

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2.3 ábra – Különböző BaseUnit típusok

Az ET 200SP rendszer felépítésében is különbözik az S7-1500 rendszertől. Míg utóbbinál a modulokat egy hátlapi buszcsatlakozó kapcsolja össze, az ET 200SP rendszer BaseUnit-okat használ, melyek a 2.3 ábrán láthatóak. Ezekbe az egységekbe csatlakoztathatjuk a modulokat a hátoldalukon található csatlakozó segítségével. Annak ellenére, hogy a termékpalettán jelenleg tizennégy különböző típusú BaseUnit található, feladatukat tekintve nem különböznek. A modulok rajtuk keresztül csatlakoznak a buszrendszerre, illetve rajtuk találhatóak meg a megtápláláshoz és a bekötéshez szükséges csatlakozók is [4]. A kommunikációs buszon kívül a BaseUnit-okon három további busz található. Ebből egy a referenciafeszültség számára (P2 busz), egy pedig a hozzá képest +24V potenciálon lévő tápfeszültség számára van fenntartva (P1 busz). A modulok ezeken a buszokon keresztül kapják a megtáplálást. Egyes BaseUnit-okon kiegészítő csatlakozókat találhatunk világoskék jelöléssel. Ezeknek a segítségével csatlakozhatunk rá a harmadik - AUX nevű - buszra, melyet szabadon felhasználhatunk [4]. Működés szempontjából kétféle BaseUnit-ot különböztetünk meg. A sötét színű egység minden esetben csatlakozik a tőle balra elhelyezkedő BaseUnit P1, P2 és AUX buszaira, míg a világos galvanikusan le van azokról választva. Ebből a működésből adódóan amennyiben világos BaseUnit-ot használunk, annak minden esetben külső megtáplálásra van szüksége.

6

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2.2. AZ ANALÓG MODULOK BEMUTATÁSA Digitális jelek esetén a jelnek két állapotát különböztetjük meg, melyek rendszerint egymástól jól elkülöníthető feszültségszintek. Az ET 200SP digitális modulok -30 és +5V között logikai 0-t, +11 és +30V között pedig logikai 1-et érzékelnek. A digitális jelek információtartalma meglehetősen kevés, így bizonyos feladatokra nem használhatóak fel. Az analóg jelek hasonlóképp előre meghatározott tartományba eső elektromos jelek, de jóval több állapotát különböztetjük meg. Az analóg jeleket analóg bemenetekkel dolgozhatjuk fel, melyeknek fontos tulajdonságuk, hogy milyen típusú jelek kezelésére alkalmasak. Az iparban leggyakrabban feszültséget és áramot, ritkábban ellenállásértékeket használnak. Hasonlóképp fontos tulajdonság a felbontás. A folytonos analóg jelet a modulban található A/D (analóg-digitális) konverter alakítja digitális jellé. Az analóg jeltartományt a konverter meghatározott számú tartományra osztja - vagyis kvantálja -, a kimenetén pedig annak a tartománynak a bináris kódját jeleníti meg, amelyik tartományba a jel pillanatnyi értéke esik. Minél nagyobb a felbontás, annál több tartományra tudja osztani a konverter a feldolgozandó jelet, ezáltal pontosabb közelítéshez jutunk [5]. A Classic modulokban található konverterek felbontása típustól függően 8-14 bit között változik. Az ET 200SP analóg modulok ezzel szemben kivétel nélkül 16 bites felbontással rendelkeznek. Ebből az alsó 15 bit a jel nagyságát, a legmagasabb helyiértékű bit pedig a bipoláris jelek előjelét jelzi [5]. Az ET 200SP rendszer által használt BaseUnit-okon tizenhat – a modulok által is hozzáférhető - csatlakozó található. Mivel az analóg jelátvitel két vezetéket igényel, az analóg modulok maximálisan nyolc csatornával rendelkezhetnek, de megvalósítható funkcióktól függően a csatornaszám tovább csökkenhet. Az

analóg

modulokat

csoportosíthatjuk

működésük

jellege,

csatornaszámuk,

funkcionalitási osztályuk, illetve a támogatott jeltípusok szerint. Ezek az információk megtalálhatóak a modul nevében, illetve annak rendelési számában is.

7

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2.4 ábra – Analóg modulok azonosítása

A 2.4 ábrán láthatjuk az ET 200SP analóg perifériamodulok rendelési számainak felépítését. Az első négy karakter minden esetben 6ES7 (Siemens automatizálási termék), melyet bemeneti modulok esetén 134, kimeneti modulok esetén 135 követ. Az állandó 6-ot követő első karakter a támogatott jelfajtákat, a második a csatornaszámot jelöli, az utolsó négy karakter pedig a modul funkcionalitási osztályára utal. Árammérésre képes bemeneti modulok esetén a névben megjelenik továbbá, hogy a modul milyen bekötési módú távadókkal használható. Különösen fontos tulajdonság a funkcionalitási osztály, melyet négy kategóriába sorolhatunk: basic (BA), standard (ST), high feature (HF) és high speed (HS) [6]. A basic besorolású modulok csak az alapfunkciók megvalósítására képesek. A beállítási lehetőségeik a legtöbb esetben kimerülnek a támogatott üzemmódok és mérési tartományok megválaszthatóságában. Diagnosztikai funkcióval nem, vagy csak alapszinten rendelkeznek. Az analóg modulok rendszerint csak egy fajta jel feldolgozására képesek, a kiválasztható méréshatárok száma pedig kevesebb, mint a standard, high feature, és high speed besorolású moduloké. A standard besorolású modulok mindegyike rendelkezik az - adott modulra jellemző összes diagnosztikai funkcióval. Bármelyik funkciót engedélyezzük, az érvényes lesz a modul összes csatornájára, így egy hiba bekövetkezése esetén - annak jellegén kívül - csak arról kapunk információt, hogy az melyik modulon áll fenn.

8

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A high feature besorolású modulok rendelkeznek minden korábban említett funkcióval, viszont az egyes diagnosztikai funkciók csatornánként konfigurálhatóak. Egy hiba fellépése esetén így egyértelműen azonosíthatjuk, hogy az melyik modul melyik csatornáján áll fenn. Képesek továbbá kiváltani hardveres megszakításokat, melyek szintén csatornánként konfigurálhatóak. Amennyiben a modult PROFINET-en keresztül decentralizált perifériaként használjuk, lehetőség nyílik, hogy a be- vagy kimeneti értéket megosszuk akár négy további IO Controllerrel. Ilyenkor az egyes csatornákról létre kell hoznunk úgynevezett MSI/MSO szubmodulokat, és azokat hozzá kell rendelnünk az egyes IO Controllerekhez. Ezt a funkciót bemeneti modulok esetén MSI-nek (Module-internal Shared Input), kimeneti modulok esetén MSO-nak (Module-internal Shared Output) nevezik [7]. Az MSI/MSO szubmodulok minden esetben bemeneti csatornaként jönnek létre, így azokat csak olvasni lehetséges. A high speed modulok, mint nevük is mutatja, nagysebességű jelfeldolgozásra szolgálnak. Általában rendelkeznek minden olyan funkcióval, mint amivel a high feature modulok is, továbbá ki és bekapcsolható rajtuk a nagysebességű mód. Működésükből adódóan bizonyos funkciók - mint az MSI/MSO - az ilyen típusú modulokon nem elérhetőek. Az analóg be- és kimeneti modulok képesek lehetnek diagnosztizálni a rövidzárlatot, a vezetékszakadást, az alul- és felülcsordulást, illetve a tápfeszültség hiányát. A diagnosztikai funkciók elérhetősége függ a jel típusától és a méréshatártól.

9

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2.3. A MODULOK CSATLAKOZÓKIOSZTÁSA A hardverkonfiguráció megtervezéséhez elengedhetetlen, hogy tisztában legyünk a modulok lábkiosztásával, illetve annak logikájával. Az analóg modulokkal kompatibilis BaseUnit-okon tizennyolc vagy huszonnyolc csatlakozó található, melyek közül az 1-től 16-ig számozott csatlakozókon minden esetben a modulok kivezetéseihez férhetünk hozzá, a fennmaradók funkciója a BaseUnit típusától függ.

2.5 ábra – Analóg kimeneti modulok csatlakozó kiosztása

Az 2.5 ábrán [8][9] megfigyelhető, hogy a kettő és négycsatornás kimeneti modulok lábkiosztása közel azonos. A különbség mindössze abban mutatkozik, hogy a kétcsatornás egységen a hiányzó harmadik és a negyedik csatorna bekötési pontjai „reserved”, vagyis fenntartott jelöléssel vannak ellátva, azok a modullal nincsenek fizikailag összeköttetésben. Megfigyelhető továbbá, hogy a kimeneti jel legyen akár áram, akár feszültség, mindig ugyanazokon a csatlakozókon jelenik meg. A feszültség módban is működni képes HF és HS modulokon a 9-16 csatlakozók segítségével a modul képes visszamérni az aktuátoron megjelenő jelet, és jelveszteség esetén kompenzálni azt. Kizárólag áram módban működni képes modulok esetén ezek a csatlakozási pontok a modullal nincsenek fizikai kapcsolatban. Mivel a tesztek során nem használunk aktuátorokat, illetve nem mérési pontosságot ellenőrzünk, ezeknek a lábaknak a bekötése nem szükséges. 10

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

Az egyes bemeneti modulok csatlakozó-kiosztásai jelentősen eltérhetnek egymástól, mivel külön bekötési pontok tartoznak a feszültségméréshez, a kétvezetékes illetve a négyvezetékes bekötési módú távadóval történő áramméréshez [5]. Mivel a modulok maximum tizenhat kivezetett csatlakozóval rendelkezhetnek, a négycsatornás modulok sohasem támogatják mind a három távadófajtát. Az ET 200SP termékcsalád eszközpalettán jelenleg kétféle négycsatornás modult találhatunk meg. Az „AI 4xU/I 2-wire ST” a feszültség-kimenetű, illetve a kétvezetékes bekötési módú áram-kimenetű szenzorokat, míg az „AI 4xI 2-/4-wire ST” a négy- és kétvezetékes bekötési módú áram-kimenetű szenzorokat támogatja.

2.6 ábra – Négycsatornás bemeneti modulok csatlakozó-kiosztása

A kétvezetékes bekötési módú, áram-kimenetű távadók csatlakoztatása mindkét említett modul esetén lehetséges, melyeket modultól függetlenül a 9-16-os lábakra kell csatlakoztatni a 2.6 ábra [10] alapján. Mivel ebben az esetben a távadó a megtáplálást a jelvezetéken keresztül kapja, a csatlakozók I- helyett Uv jelöléssel vannak ellátva. Az első nyolc csatlakozó „AI 4xU/I 2-wire ST” modul esetén feszültség, „AI 4xI 2-/4-wire ST” modul esetén pedig áram kimenetű külső megtáplálású távadók jelét képes fogadni.

11

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2.7 ábra – Kétcsatornás bemeneti modulok csatlakozó-kiosztása A kétcsatornás modulok bekötési pontjai - jelvezetékek szempontjából - minden esetben megegyeznek. Az első négy csatlakozópont – ahogy az a 2.7 ábrán [11] látható - feszültségmérésre van fenntartva, az ötödik és a hatodik csatlakozó a pozitív jelvezeték árammérés esetén. Négyvezetékes távadó használata esetén a referenciavezetéket a – az első csatorna esetén – a hetes lábra kell csatlakoztatni, a kilences és tizenegyes lábakon keresztül pedig a távadót tudjuk megtáplálni. Mivel a kétvezetékes bekötésű távadók a referenciavezetéket használják a távadó megtáplálására, ilyen távadó használata esetén a hetes és nyolcas csatlakozókat nem szükséges bekötni. Egyes modulokon a négyvezetékes távadók tápvezetékei külön csatlakozópontokat – a fenti példán RES lábbal jelölteket - használnak.

12

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2.4. A DIAGNOSZTIKAI FUNKCIÓK MŰKÖDÉSE Az ET 200SP analóg be- és kimeneti modulok képesek diagnosztizálni az alul- és felülcsordulást, rövidzárat, vezetékszakadást illetve a megtáplálás hiányát. Az egyes funkciók elérhetőségét és azoknak működését a modulok dokumentációjába találhatjuk. A funkciók működését a legtöbb funkcióval rendelkező „AI 2xU/I 2-/4-Wire HF” és „AQ 2xU/I HF” modulok segítségével mutatom be.

2.8 ábra – Kimeneti értékek bipoláris jelek esetén

A kimeneten kiadott jel nagysága egy kimeneti WORD-re írt értéktől függ, mely -32768 és 32767 közötti decimális értékek közé eshet. Bipoláris jelek esetén a választott jeltartomány felső határértékéhez tartozó jel kivezérlése a kimenetre írt 27648 decimális értékkel lehetséges (lásd: 2.8 ábra [8]). Efelett egészen 32511 vezérlésig a modul „Overrange” (jeltartomány felett) állapotba kerül. 32511 vezérlés esetén a kivezérelt jel a beállított felső jeltartomány 117,589%-a lesz (tehát +-10V-os jeltartomány esetén ~11,76V). A kimenetre 32512 vagy annál nagyobb értéket írva a modul felülcsordulás állapotba kerül, amit – amennyiben engedélyezve van a felülcsordulás diagnosztizálása - a modul jelent a CPU-nak. Alulcsordulás diagnosztika kiváltása a kimenetre írt -32513 és kisebb értékekkel lehetséges.

13

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2.9 ábra - Kimeneti értékek unipoláris jelek esetén Unipoláris jelek esetén a kimenetre csak pozitív értétek írhatunk. A minimális kimeneti jel 0 vezérléssel valósítható meg. Az alulcsordulási határérték a kimeneti jel típusától és a jeltartomány nagyságától függ. A 2.9 ábra [11] alapján olyan jeltartományok esetén, amelyek nem tartalmazzák a nullát, 0 vezérlés hatására a kimeneten a jeltartomány alsó határértékéhez tartozó jel jelenik meg, melyet a rövidzárlat és a vezetékszakadás diagnosztikák viselkedése során figyelembe kell vennünk. A kimeneti jelek nagyságát a jeltípus és jeltartomány függvényében reprezentáló táblázatok az 1. mellékletben találhatóak. Feszültségkimenet esetén konfigurálható továbbá a rövidzárlat diagnosztizálása. A modul figyelemmel kíséri a Q+ csatlakozón lévő feszültség értékét, és amennyiben azt 0V potenciálra kapcsoljuk – például a Q- csatlakozóval összekötve – a modul jelenteni fogja a rövidzárlatot a CPU-nak. A jelentés csak abban az esetben fog megtörténni, ha a kimeneti jel értéke meghaladja ±0,5V-os érzékelési küszöböt. Áramkimenet esetén a kimeneti modulok képesek a vezetékszakadás diagnosztizálására. Az érzékelési küszöb előjeltől függetlenül 3mA, az áramhurok megszakadását a modul csak efelett képes érzékelni. A 1. melléklet táblázatai [8] alapján megfigyelhető, hogy a hibák érzékelése ugyanolyan vezérlés mellett, a jeltartománytól függően eltérhet. Mivel 0 vezérlés esetén 1-5V-os tartományban a kimeneti jel értéke 1V a modul ilyen vezérlés mellett is képes a rövidzárlatot diagnosztizálni. Ugyanez a viselkedés figyelhető meg 4-20mA jeltartomány esetén is. Megfigyelhető továbbá, hogy alulcsordult állapotban 0-10V és 1-5V jeltartomány esetén a kimeneti jel értéke 0V, így szintén nem érzékelhető a rövidzárlat. Ugyanebből az okból kifolyólag 0-20mA jeltartomány esetén alulcsordult állapotban a modul nem képes érzékelni a vezetékszakadást sem. 14

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A bemeneti modulokon a diagnosztikai funkciók viselkedése - bár alapjaiban megegyezik a fentebb leírtakkal - a távadók jellemzőitől függően eltérő lehet. A kimeneten jelentkező vezetékszakadás nem zárja ki az alul- vagy felülcsordulás állapot jelenlétét. Ezzel szemben egy bemeneten fellépő vezetékszakadás vagy rövidzárlat esetén nem lesz feldolgozható jelünk, így ha a hiba jelentkezésekor a csatorna alul- vagy felülcsordult állapotban volt, az automatikusan meg fog szűnni. Ha a rövidzárlat vagy vezetékszakadás megszűnt, és a bemenete továbbra is alul- vagy felülcsordult állapotban van, az ismét jelentésre kerül. A bemeneti jel nagysága alapján meghatározott bináris értéket a PLC egy bemeneti WORD-ön tárolja. A jel nagysága a WORD értéke alapján a fentebb leírt módon határozható meg. Az egyes analóg értékekhez tartozó digitális értékeket és az egyes méréshatárok esetén konfigurálható diagnosztikákat a 2. melléklet táblázatai [11] tartalmazzák. Az alul- és felülcsordulás diagnosztizálása a jel fajtájától és a méréshatártól független. Amennyiben a bemeneti jel értéke több mint 17.589%-al meghaladja a méréshatár alsó vagy felső határértékét, a modul jelenti a megfelelő diagnosztikát a CPU-nak. A vezetékszakadás diagnosztika csak 4-20mA méréshatár esetén elérhető. Az áramhurok megszakadása esetén a csatornán mérhető áramerősség 0mA lesz. Mivel ez az érték ennél a méréshatárnál már alulcsordult állapotot jelent, amennyiben a vezetékszakadás diagnosztika nincs konfigurálva, de az alulcsordulás igen, a modul az utóbbit fogja jelenteni a CPU-nak. Rövidzárlat diagnosztika méréshatártól függetlenül elérhető árambemenet, illetve 1-5V méréshatár esetén feszültségbemenet esetén. Árambemenet esetén a modul a távadó megtápláló feszültségének a rövidre zárását képes érzékelni. Feszültségbemenet esetén a modul U+ csatlakozóját 0V potenciálra kötve – például az U- csatlakozóval - a bemeneti jel éréke 0V lesz. Ha vezetékszakadást idézünk elő, nem lesz bemeneti jelünk, azaz a modul szintén 0V értéket fog jelezni. Bármelyik eset áll fenn a modul jelenti a rövidzárlatot a CPU-nak. Mivel ez az érték ennél a méréshatárnál már alulcsordult állapotot jelent, amennyiben a rövidzárlat diagnosztika nincs konfigurálva, de az alulcsordulás igen, a modul az utóbbit fogja jelenteni a CPU-nak. A HF besorolású modulok V2.0-nál magasabb firmware verziótól képesek a távadó megtáplálását is elvégezni, emiatt a rövidzárlat diagnosztika is elérhetővé vált az árambemenettel megegyező működéssel. Mind a bemeneti, mind a kimeneti modulok esetén az eszköz tápfeszültségének lekapcsolása esetén a diagnosztikai funkciók működésképtelenné válnak, ezért a modul jelentést küld a CPU-nak azok megszűnéséről. 15

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2.5. A MODULOK EGYÉB FUNKCIÓI Egyes modulok a hibadiagnosztizáláson kívül kiegészítő funkciókkal is rendelkeznek. Bemeneti modulok esetén leggyakrabban hardveres megszakítások kezeléséről beszélhetünk. Az analóg bemeneti modulokon – amennyiben a modul képes hardveres megszakítások kiváltására – csatornánként négy hardveres megszakítást konfigurálhatunk, kettő alsó és kettő felső határérték átlépést. Annak konfigurálásakor meg kell adnunk a típusát, a hozzá tartozó értéket, illetve a megszakításhoz rendelt szervezőblokk számát. Mikor a bemeneti jel a megadott határértéket átlépi, a kiválasztott szervezőblokk automatikusan meghívódik. A kimeneti modulok képesek reagálni a CPU leállásra, azaz beállítható a kimeneti jel viselkedése, egy esetleges leállás bekövetkezése esetén. A kimeneti jel megtarthatja a leállás előtti legutolsó állapotát, de felvehet 0, vagy egy általunk meghatározott értéket is. High Speed és High Feature besorolású modulok esetén elérhető továbbá a „Quality Info” vagy más néven „Value Status” funkció [8][11], melyet bekapcsolva a modul – a csatornáihoz lefoglalt címek mellett – bemeneti biteken képes jelezni a be- vagy kimeneti jel valóságtartalmát. Amennyiben az adott csatornához tartozó Value Status bit értéke 1, a jel értéke érvényes. Bármilyen hiba esetén a Value Status bit logikai 0 értéket vesz fel, ezzel jelezve, hogy a ki- vagy bemeneten bár van – a PLC számára is értelmezhető – feldolgozható jel, annak értéke nem fedi a valóságot. Egyes bemeneti modulokon elérhető az MSI (Module-internal Shared Input), egyes kimeneti modulokon pedig az MSO (Module-Internal Shared Output) funkció, melynek segítségével a modul ki- vagy bemenetin lévő értékeket bemeneti WORD-ökre tükrözhetjük. Ilyen másolatokból maximum négyet hozhatunk létre, melyeket más-más IO Controllerekhez is hozzárendelhetünk amennyiben a modult megosztott eszközként használjuk. A funkció kizárólag abban az esetben konfigurálható, ha a modult PROFINET-en decentralizált perifériaként projektáltuk, ezért a tesztkörnyezet a funkció működését nem ellenőrzi.

16

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

3. A HARDVERKONFIGURÁCIÓ A tesztkörnyezet kialakítása során a fő szempontnak az automatizált végrehajtást tekintettem, így már a hardverkonfiguráció megtervezésekor figyelembe kellett vennem, hogy lehetséges legyen a felhasználói programból kiváltani a modulok által diagnosztizálni képes hibákat, illetve – analóg bemenetek esetén – hardveres megszakításokat. Az iparban az analóg kimeneteket aktuátorok vezérlésére, a bemeneteket pedig a távadók által szolgáltatott jelek feldolgozására használják, de bizonyos tesztek során, - hogy a bemeneteken feldolgozható jelhez jussunk - gyakorta használunk távadó helyett kimeneti modulokat. Ezzel a módszerrel könnyen kiválthatunk hardveres megszakításokat, illetve tesztelhetővé válik a vezetékszakadás érzékelése, de bizonyos méréshatárok esetén lehetetlen alul- és felülcsordulást előidézni a jelveszteségek miatt. Egy megfelelően kiépített ellenálláshálózat és egy minimum 12V-os feszültségforrás segítségével, ezzel szemben olyan feszültség és áramerősség-értékeket valósíthatunk meg, melyeket a bemenetek már nem képesek kezelni, de károsodás nélkül elviselik azokat. A 3. melléklet M3.1 ábráján egy általam tervezett kapcsolás látható, melynek segítségével a modulok funkcionalitása tesztelhetővé válik. A kapcsolást az „M” és a „+24V” kivezetéseken 24V DC feszültséggel meg kell táplálni, a modul kivezetéseit pedig az áramkör azonos nevű kivezetéseihez kell csatlakoztatni. A „Voltage” mágneskapcsolót működtetve az R1-R6 ellenállások közösített lábain +24V feszültség jelenik meg. Az R1-R4, illetve R8 ellenállások együtt egy feszültségosztót alkotnak. A K1-K4 mágneskapcsolók segítségével az R1-R4 ellenállások leválaszthatóak az áramkörről, így megváltoztatva az eredő ellenállást. A „Voltage” mágneskapcsoló működtetésekor, az áramkör U+ és U- kivezetésein az R8 ellenálláson eső feszültségérték mérhető. A „Pol” mágneskapcsoló U+ és U- csatlakozók bekötési pontjait felcseréli, így a modulon a feszültség ellentétes előjellel fog megjelenni. Az „I-4Wire” és K1 mágneskapcsolókat működtetve, - illetve a modul megfelelő kivezetéseit az „I+_4W” és „I-_4W” kivezetésekre csatlakoztatva – a bemeneten megközelítőleg 8mA áramerősség mérhető. A K1-K4 mágneskapcsolók állapotainak változtatásával az áramerősség 28mA-ig növelhető. A „Pol” mágneskapcsoló működtetése esetén az áramirány megfordul, az a modulon is ellentétes előjellel fog megjelenni. Az „I-2Wire” mágneskapcsoló működtetése esetén a kapcsolás működése az előbbivel azonos, de a külső megtáplálás helyett a kapcsolás a jelvezetéken keresztül kapja meg a 17

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

működéshez szükséges 24V feszültséget. Mivel az áramirány nem fordítható meg így csak unipoláris jelet mérhetünk. Az „SC_AI” mágneskapcsoló segítségével rövidzárlatot idézhetünk elő a bemeneti modulokon, míg a „DIAG_AQ” mágneskapcsoló a vezetékszakadás és a rövidzárlat előidézéséért felel kimeneti modulok esetén. Az egyes mágneskapcsolók a nevükkel azonos kivezetésre kapcsolt +24V DC feszültséggel működtethetőek. A „Voltage”, „I-2Wire” és „I-4Wire” mágneskapcsolók közül egyidejűleg csak egy működtethető, így bármelyik módot is használjuk, a nem használt bemenetek galvanikusan le vannak választva a kapcsolásról. Mivel az egyes csatornák különkülön paraméterezhetőek, ahány csatornával rendelkezik a tesztelendő modul, annyi ilyen áramkörre van szükség. A tervezett hardverkonfiguráció az alábbi eszközöket tartalmazza: - 1 db „CPU 1512SP-1PN” processzor (6ES7 512-1DK00-0AB0) - 1 db „RQ 4x24VUC/2A CO ST” relés modul (6ES7132-6GD50-0BA0) - 1 db „DQ 4x24VDC/2A ST” digitális kimeneti modul (6ES7 132-6BD20-0BA0) - 4 db „DQ 16x24VDC/0,5A ST” digitális kimeneti modul (6ES7132-6BH00-0BA0) - 1 db tesztelendő analóg kimeneti modul - 1 db tesztelendő analóg bemeneti modul - 1 db „Server module” (6ES7193-6PA00-0AA0) - 3 db „BU15-P16+A0+2D” (világos) BaseUnit (6ES7193-6BP00-0DA0) - 4 db „BU15-P16+A0+2B” (sötét) BaseUnit (6ES7193-6BP00-0BA0) A hardverkonfigurációban a modulok a fenti sorrendben követik egymást. A CPU után következő első modult minden esetben világos BaseUnittal kell használni, amit külsőleg meg kell táplálni. Mivel a következő öt digitális kimeneti modul sötét színű BaseUnitban foglal helyet azok a tápfeszültséget a bal oldali szomszédjuktól kapják. A tesztelendő modulok szintén világos BaseUnitban foglalnak helyet, így mindkét modulnak külső megtáplálásra van szüksége. A tesztelendő modulokat a megtáplálást nem közvetlenül kapják, hanem az „RQ 4x24VUC/2A CO ST” relés modul egy-egy csatornáján keresztül, így azok bármikor lekapcsolhatóak. A tesztelést segítő áramköröknek a „DQ 4x24VDC/2A ST” kimeneti modul biztosítja a megtáplálást. A felhasználói program csak azokat az áramköröket helyezi feszültség alá, melyekre a tesztek során szükség van, így elkerülendő az áramkörök felesleges terhelését. 18

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

Az áramkörben lévő mágneskapcsolók a „DQ 16x24VDC/0,5A ST” digitális kimeneti modulok segítségével vezérelhetőek az alábbi módon: -

-

Alacsonyabb helyiértékű bájt: -

0. bit – „Voltage” mágneskapcsoló működtetése

-

1. bit – „I-4Wire” mágneskapcsoló működtetése

-

2. bit – „I-2Wire” mágneskapcsoló működtetése

-

3. bit – „Pol” mágneskapcsoló működtetése

-

4. bit – „SC_AI” mágneskapcsolók működtetése

-

5. bit – „DIAG_AQ” mágneskapcsoló működtetése

-

6. bit – bővítésre fenntartva

-

7. bit – bővítésre fenntartva

Magasabb helyiértékű bájt: -

0. bit – „K1” mágneskapcsoló működtetése

-

1. bit – „K2” mágneskapcsoló működtetése

-

2. bit – „K3” mágneskapcsoló működtetése

-

3. bit – „K4” mágneskapcsoló működtetése

-

4. bit – bővítésre fenntartva

-

5. bit – bővítésre fenntartva

-

6. bit – bővítésre fenntartva

-

7. bit – bővítésre fenntartva

Az ET 200SP rendszer moduljait programfutás közben is át lehet parametrizálni. Megváltoztathatjuk a mérési módot és méréshatárt, ki- és bekapcsolhatunk diagnosztikai funkciókat és hardveres megszakításokat, vagy akár le is tilthatunk egy csatornát. Az S7+ rendszer rendelkezik továbbá egy „Configuration Control” nevű funkcióval, mely lehetőséget biztosít a fizikailag jelenlévő hardverkonfigurációt átrendezni a projektált konfiguráció megváltoztatása nélkül [7]. Az említett funkciók működéséhez az eszközökben található data recordok vannak a segítségünkre. A hardverkonfiguráció letöltésekor az egyes eszközök paraméterei ezekben a data recordokban kerülnek letárolásra. Felépítésük az eszköz típusától és a data record funkciójától függően változik. Kiolvasásukhoz az RDREC (read record), felülírásukhoz a WRREC (write record) függvényt használhatjuk. 19

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A tesztprogram a CPU 33-as és a tesztelendő modulok 128-as számú data recordját olvassa és írja a futás közben több alkalommal. Előbbi a Configuration Control funkció használatához elengedhetetlen, utóbbi a modulok programfutás közbeni paraméterezéséhez. Az egyes data recordok - azok összetettsége miatt - a későbbi fejezetekben bővebben is kifejtésre kerülnek. A

4.

melléklet

M4.1

ábráján

a

TIA

Portal

fejlesztőkörnyezetben

projektált

hardverkonfiguráció látható, mely jelentősen eltér a fizikailag jelen lévőtől. A CPU után következő hat modul a valós helyére van projektálva, de tesztelendő be- és kimeneti modulok helyén digitális modulok állnak. A 17-es slottól kezdődően analóg bemeneti, a 41-es slottól kezdődően pedig analóg kimeneti modulok találhatóak. A tesztkörnyezet jelenleg ezeknek a moduloknak az ellenőrzését tudja elvégezni, de az üres helyekre további modulok bevezetése is lehetséges. A szerver modul a legutolsó, 66-os sloton található. A hardverkonfigurációt ebben a formájában letöltve, a PLC a nem megfelelő helyen lévő, vagy hiányzó modulokról hibajelentést küldene, a tesztprogram pedig működésképtelen lenne. A Configuration Control funkció segítségével azonban mire a PLC eléri a „RUN” üzemállapotot, - ha OB100 lefutása alatt beállítjuk a helyes konfigurációt – az helyes hardverkonfigurációt fog jelezni. A funkció használatához azt a PLC beállításai között engedélyeznünk kell. A projektált eszközök sorrendjét a CPU 196-os data recordjába kell beleírni – centrális konfiguráció esetén - OB100 lefutása alatt. Ha ez nem történik meg a CPU a blokk lefutása után STOP üzemállapotba kapcsol, ezzel egyidejűleg a diagnosztikai pufferben jelzi, hogy nem történt meg a data record feltöltése.

20

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

4. A TESZTPROGRAM MŰKÖDÉSE Az üzemmódválasztó kapcsoló „RUN” állapotba kapcsolása után a CPU „Startup” üzemmódra vált, és elkezdi futtatni a „Startup” szervezőblokkot, mely a Configuration Control funkcióért, és a modul bizonyos paramétereinek meghatározásáért felel. (Terjedelmük miatt a programblokkokat a CD melléklet tartalmazza) A blokk lefutása során a felhasználói program meghatározza a fizikailag jelen lévő modulok rendelési számát és firmware verzióját, azok alapján pedig összeállítja a hardverkonfigurációt és beleírja azt a CPU 196-os data recordjába. A 196-os data record módosítása után a CPU újraindul, ezért a tesztelendő modulok fontosabb paraméterei egy remanens adatblokkban kerülnek tárolásra, hogy azokat a tesztek végrehajtása során a program fel tudja használni. Miután a CPU elérte a „RUN” üzemállapotot, a program automatikusan a manuális tesztelést futtatja. Ekkor VAT táblák segítségével változtathatjuk meg a modul csatornáinak paramétereit, vezérelhetjük a tesztelő áramkör mágneskapcsolóit, továbbá fel- és lekapcsolhatjuk a tesztelendő modulok tápfeszültségét. Automatikus tesztvégrehajtás esetén miután egy VAT táblából kiválasztottuk, hogy melyik modul tesztelését szeretnénk elvégeztetni, egy bit IGAZ állapotba állításával indíthatjuk a tesztfolyamatot. Amennyiben mindkét modul ellenőrzését engedélyeztük, a program automatikusan a kimeneti modullal kezdi a folyamatot. A tesztek végrehajtása mindkét modul esetén az alábbi sorrendben történik: 1. a program felparaméterezi a modult 2. diagnosztikai megszakítások ellenőrzése 3. hardveres megszakítások ellenőrzése (csak bemeneti modulok esetén) 4. az első három pont ismétlése mindaddig, míg meg nem valósult az összes lehetséges paraméterezési kombináció. A tesztprogramban definiálva van a modulok helyes működése. Ha előidézünk egy hibát valamelyik csatornán, a program 250mS letelte után ellenőrzi, hogy kell-e érkeznie, illetve, hogy érkezett-e jelentés a modul felől a hibáról. Ha a modul jelent egy hibát, a jelentésben szereplő adatok szintén ellenőrzésre kerülnek. Rendellenes működés esetén egy remanens adatblokkba kimentésre kerül minden olyan paraméter, melyeknek segítségével a hibát később manuálisan reprodukálhatjuk. A tesztek végeztével a CPU automatikusan „STOP” üzemállapotba kapcsol, így jelezve, hogy a végrehajtás kész.

21

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A TIA Portal fejlesztőkörnyezetben projektálásra kerültek azok a modulok, amiknek a működését a tesztkörnyezet képes ellenőrizni. A projektálással egyidejűleg a modulok egyes paraméterei bevezetésre kerültek egy adatbázisba, melyet a „module_database” nevű adatblokk tartalmaz.

4.1 ábra – A modulok paramétereit tartalmazó UDT-k A modulok paramétereinek megadásához

két

új

adattípus

került

létrehozásra

„AI_module_data” és „AQ_module_data” néven, melyeknek felépítése a 4.1 ábrán látható. A „module_database” adatblokk egy-egy tömböt tartalmaz ezekből az adattípusokból. Mivel a tesztkörnyezet bővíthető, egy modul bevezetése esetén annak paramétereit – a tömb méretének megnövelése után – be kell vinnünk az adatblokkba. A modul nevét a tesztkörnyezet nem használja, azt csak a könnyebb azonosíthatóság érdekében szükséges megadni. A rendelési szám (MLFB), a firmware verzió (Version) és a slot-szám együtt, egyértelműen beazonosítja a modult, a CPU a felfutás alatt ezeknek a paramétereknek a segítségével állítja össze a hardverkonfigurációt. A „diagnostics” struktúra a

modul

által

támogatott

diagnosztikai

funkciókat

méréshatáronként.

22

tartalmazza

jeltípusonként

és

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A „channel_level” illetve a „modul_level” BOOL típusú változók segítségével adhatjuk meg, hogy a modul csatorna- vagy modulszintű diagnosztikával rendelkezik. A modulokat a tesztprogram képes átparametrizálni, és ehhez a 128-as data recordot használja. Mint minden data recordnak ennek is van egy meghatározott hosszúságú fejléce, de annak hossza modulonként eltérhet. A tesztkörnyezet működéséhez azonban szükség van a data record bizonyos paramétereink ismeretére. A „channel_param_start_byte” változóban ezért meg kell adni a modul 128-as data recordjának nulladik csatornájához tartozó első bájt sorszámát, melyet a modul dokumentációjában találhatunk meg. A program a szükséges paramétereket ebből az információból már képes meghatározni. Egyes bemeneti modulok képesek hardveres megszakítások kiváltására. Amennyiben a hardverkonfigurációban engedélyeztük azokat, a „Hardware_interrupt_support” változó értékének logikai 1-et adva a program képes lesz az ellenőrzésükre. Amennyiben a modul rendelkezik a Value Status funkcióval, annak ellenőrzését a „Value_status” bitnek IGAZ értékre állításával tudjuk beállítani.

23

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

4.1. A CPU FELFUTÁSA Mivel a Configuration Control funkció aktiválva van, a „Startup” üzemállapot alatt lefutó szervezőblokkban érvényes értéket kell írnunk a CPU 196-os data recordjába. Az írás befejeztével a CPU újraindul. Mivel a szervezőblokkok nem rendelkeznek static területtel, azok a változók, amelyekre a program futása során a későbbiekben szükségünk lesz, a „configuration_control_data” adatblokkban kerülnek tárolásra. A „Startup” szervezőblokk a felhíváskor a „configuration_control_data” adatblokk „caseindex” nevű változóját inkrementálja eggyel. A szervezőblokk ezen az utasításon kívül egy CASE ciklust tartalmaz, melynek három ága van. Az aktív ág a „caseindex” változó aktuális értékétől függ. Mivel a „caseindex” változó kezdeti értéke 0, az inkrementálás után 1 értéket vesz fel, a programfutás pedig ennek megfelelően a CASE ciklus 1 értékhez tartozó ágban folytatódik. A 196-os data record felépítése a „Configuration_control” struktúra segítségével történik. A struktúra négy USint típusú változót tartalmaz a fejlécnek, és egy 66x2 bájt méretű kétdimenziós tömböt a slotok konfigurálásához. Az adott slothoz tartozó első bájton meg kell adni, hogy a slotra projektált modul a valóságban melyik sloton található. Ha például a tizenhetes slotra projektált modul a valóságban a kilences sloton található, a tizenhetes bájt értékét kilenccel kell egyenlővé tenni. Ha a valós konfiguráció az adott modult nem tartalmazza, a bájt értékét nullával kell egyenlővé tenni. A második bájt a BaseUnit-ra vonatkozó információ, mely csak nullát vagy egyet tartalmazhat. Utóbbi értékre akkor van szükség, ha a modult sötét BaseUnittal projektáltuk, de a valóságban világossal használjuk. A fejlécben elvárt értékek a TIA Portal súgója segítségével kerültek meghatározásra. A FOR ciklus a hardverkonfigurációt úgy állítja össze, mint ha az első nyolc modul a valóságban is megegyezne azzal amit projektáltunk.

REPEAT "WRREC_DB"(REQ := TRUE, ID := 33, INDEX := 196, DONE => #done, RECORD := #Configuration_control); UNTIL #done END_REPEAT;

24

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A felépített data recordot a WRREC függvény segítségével írhatjuk be a CPU-ba. Ehhez a függvény „ID” bemenetén meg kell adni a CPU hardverazonosítóját, (CPU esetén 33) és az „INDEX” bemeneten a beírandó data record sorszámát (jelen esetben 196). Ha a „REQ” bemenetre logikai 1-et kapcsolunk, az írás megkezdődik. A blokk aszinkron lefutású, ezért azt a fenti módon egy REPEAT ciklusban kell meghívni. Ha az írás befejeződött, a függvény „DONE” kimenetének értéke IGAZ lesz, a REPEAT ciklusnak ezáltal teljesül a kilépési feltétele. A CPU újraindul, és újból meghívja a „Startup” szervezőblokkot. Ezzel egyidejűleg hibajelentés is érkezik, mivel a nyolcadik és kilencedik slotra projektált modulok helyett más modulok vannak jelen. A blokk második meghívódásakor a „caseindex” változó ismét inkrementálásra kerül. A változó remanens területen van tárolva, így megőrzi korábbi értékét, az inkrementálás után pedig értéke 2 lesz. A programfutás ennek megfelelően a CASE ciklus 2 értékhez tartozó ágban folytatódik. Az adott ág egy WHILE ciklust tartalmaz, mely addig fog futni, amíg a „Laddr” változó értéke kisebb, mint 260. A ciklus meghívása előtt ennek a változónak az értékét 258-cal tesszük egyenlővé, a ciklus végén pedig inkrementáljuk eggyel, így a WHILE ciklus kétszer fog lefutni.

REPEAT "GET_IM_DATA_DB"(LADDR := #Laddr, IM_TYPE := 0, DONE => #done, DATA := #IM_DATA); UNTIL #done END_REPEAT;

A „GET_IM_DATA” függvény segítségével kiolvashatjuk az eszközök azonosítói információit. Az IM_DATA név az angol „identification and maintenance” – azaz azonosítás és karbantartás – szavakból ered. Az eszközök többféle IM adatot tartalmaznak, ezért a függvénynek a LADDR (logikai cím) és IM_TYPE bemenetén meg kell adnunk, hogy melyik eszközből és melyik IM adatot szeretnénk kiolvasni. A blokk aszinkron lefutású, ezért azt a WRREC függvényhez hasonlóan egy REPEAT ciklusban kell meghívni. A függvény a kiolvasott adatokat az „IM_DATA” nevű IM0_Data típusú struktúrába tárolja le. Mivel a WHILE ciklus meghívása előtt a „Laddr” változót 258-cal tettük egyenlővé, a függvény az ehhez az eszközazonosítóhoz tartozó eszköz IM0 adatait olvassa ki. A 258-as 25

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

eszközazonosító a hardverkonfigurációban a nyolcadik slotra projektált „Dummy_module_1” nevű digitális bemeneti modulhoz tartozik. Mivel a valóságban ezen a sloton a tesztelendő bemeneti modul található, a GET_IM_DATA függvény annak az IM0 adatait fogja kiolvasni, mely tartalmazza - többek között - a modul rendelési számát, és firmware verzióját. Ezeknek az adatoknak és a „module_database” adatblokknak a segítségével a program képes összeállítani a valós hardverkonfigurációt, amennyiben a tesztelni kívánt modulok szerepelnek a projektált hardverkonfigurációban és a paraméterei az adatblokkba is bevezetésre kerültek.

4.2 ábra – Az IM0_Data adattípus felépítése

A 4.2 ábrán látható az IM0_Data adattípus felépítése. A modul rendelési számát az „Order_ID” string (karakterlánc), a firmware verzióját pedig a „Software_Revision” nevű struktúra tartalmazza részekre bontva. A „module_database” adatblokk a firmware verziót – az egyszerűbb adatbevitel érdekében - egy stringben tárolja, így jelen formájában a két értéket nem lehet összehasonlítani. A program a struktúrát ezért stringgé konvertálja, melynek módját a következő példa segítségével mutatom be. Tegyük fel, hogy a tesztelendő modul firmware verziója „R11.2.5”. Ebben az esetben a „Software_Revision struktúra felépítése: -

Type: R

-

Functional: 11

-

Bugfix: 2

-

Internal: 5 26

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A könnyebb kezelhetőség érdekében a fenti értékek string típusúvá konvertálás után a „Version_string” nevű tömbben kerülnek letárolásra Ha egy számot tartalmazó változót (pl.: INT, USint) string típusúvá konvertálunk, a konverziós függvény az érték elé beszúrja annak előjelét. Egy FOR ciklus és a DELETE függvény segítségével a felesleges ’+’ karakter törlésre kerül. A CONCAT függvény a „Type” és a „Functional” karaktereket összefűzi és az eredményt a „Version” nevű stringben tárolja, melyhez a következő FOR ciklus egyenként hozzácsatolja a „Bugfix” és az „Internal” karaktereket, egymástól pontokkal elválasztva. A FOR ciklus lefutása után a „Version” változó az ’R11.2.5’ értéket fogja tartalmazni. A modul rendelési számának az „MLFB” változóba történő kimentése és egy segédváltozó nullával történő egyenlővé tevése után a programfutás az IF ciklusban folytatódik. Mivel a „Laddr” változó értéke 258, egy WHILE ciklus az „MLFB” és a „Version” változók alapján elkezdi keresni a tesztelendő modult a „module_database” adatblokkban. Annak megtalálása esetén a modul paramétereit a „configuration_control_data” adatblokk „AI” struktúrájában tárolja le. Ugyanebbe az adatblokkba az „Additional_infos_AI” struktúrába kimentésre kerül a modul csatornáinak száma, amit a program rendelési szám tizenkettedik karaktere alapján határoz meg (lásd: 2.2-es fejezet). A csatornaszám meghatározása után a „Laddr” változó értékét a program 259-re inkrementálja. Mivel a WHILE ciklus kilépési feltétele nem teljesül, az újra elvégzi a fent leírt műveleteket. A 259-as eszközazonosító a hardverkonfigurációban a kilencedik slotra projektált „Dummy_module_2” nevű digitális kimeneti modulhoz tartozik, melynek helyén a tesztelendő kimeneti modul található. A ciklus lefutása alatt a kimeneti modul fentebb említett paraméterei is meghatározásra kerülnek. A „Laddr” változó inkrementálásával teljesül a kilépési feltétel. A program a fejezet elején leírt módon ismét összeállítja a 196-os data recordot, - ezúttal a valós paraméterekkel – majd beírja azt a CPU-ba. Az írás befejeztével a CPU újraindul, és ismét meghívja a „Startup” szervezőblokkot. A második újraindulás után a „caseindex” változó értéke ismét inkrementálásra kerül, a program futása pedig a CASE ciklus megfelelő ágában folytatódik. A GEO2LOG függvény a slot-szám alapján meghatározza a tesztelendő modulok hardverazonosítóját a „Geoaddr” struktúra alapján, majd az RD_ADDR függvény a kiolvasott hardverazonosító alapján meghatározza a modulok kezdőcímét. Amennyiben a modulon a Value Status funkció be van kapcsolva, az azt tartalmazó bájt címe is mentésre kerül. A kiolvasott hardverazonosítók és 27

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

kezdőcímek a „configuration_control_data” adatblokkba kerülnek kimentésre. Amennyiben a modul rendelkezik Value Status funkcióval, a Value Status bájt címe is kimentésre kerül. Az RDREC függvény kiolvassa előbb a kimeneti, majd a bemeneti modul 128-as data recordját. A data-recordok és azok hossza a „configuration_control_data” adatblokkba kerülnek mentésre. A data-recordok meghatározása után a program feszültség alá helyezi az egyes csatornákhoz tartozó tesztelő áramköröket. Mivel a „caseindex” változó remanens területen van tárolva, a blokk végén értékét nullával kell egyenlővé tennünk. A blokk lefutása után a CPU „RUN” állapotra vált és elkezdi futtatni a „Main” szervezőblokkot.

28

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

5. MANUÁLIS TESZTVÉGREHAJTÁS A CPU a „Startup” szervezőblokk lefutása után elkezdi futtatni a „Main” szervezőblokkot. Amíg a „Test_cases” adatblokkban található „Test_start” változó értéke HAMIS, a program minden ciklusban ellenőrzi, hogy engedélyezve van-e az automatikus tesztvégrehajtás. Amennyiben nincs, meghívódik a „Manual_test” funkcióblokk, mely a modulok paraméterezéséért felel manuális tesztvégrehajtás esetén. Mind a manuális mind az automatikus tesztvégrehajtásban nagy szerepet játszik a „Configuration In Run” (röviden CIR) funkció, melynek segítségével a modulok paraméterei programfutás közben módosíthatóak. Bármilyen modulról is legyen szó, a modul csatornáinak beállításait a 128-as data record tartalmazza. A melléklet M5.1 ábráján [11] a 128-as data record felépítése látható „AI 2xU/I-2-/4-wire HF” modulok esetén. Az első 2 bájt (0 és 1) a fejléc mely tartalmazza a data record verzióját illetve az egy csatornát leíró struktúra hosszát (jelen esetben 18-at). High Speed besorolású modulok esetén a fejléc tartalmazza továbbá a működési módot (normál vagy nagysebességű) és a mintavételezési frekvenciát is. A fejléc után közvetlenül következnek a csatornák paraméterei. Az ábra szerinti X bájt a mérés típusát, az X+1 bájt pedig a beállított méréshatárt tartalmazza kódolva. A kódolási táblázatokat a melléklet M5.3 ábrája [11] tartalmazza. A diagnosztikai funkciók az X+6 bájt segítségével konfigurálhatóak. Amennyiben az adott diagnosztikához tartozó bit értéke 1 a diagnosztika aktív. Az X+5 bájt a beállított hardveres megszakításokat, az X+10-től X+17-ig terjedő bájtok pedig az azokhoz tartozó értékeket tartalmazzák. A fennmaradó bájtok vagy később megjelenő funkciók számára vannak fenntartva, vagy olyan beállításokat tartalmaznak melyeknek a tesztelése csak laborműszerekkel lehetséges. Kimeneti modulok esetén a 128-as data record felépítése – mely a melléklet M5.2 ábráján [8] látható - kis mértékben eltér a bemeneti modulokétól. Bár azonos módon tárolva, de az X+6 helyett az X+2 bájt tartalmazza a diagnosztikai funkciókat. Az X+3 bájton a modul reakcióját konfigurálhatjuk CPU leállás esetén. Ha ennek bekövetkezése esetén a kimeneten egy általunk meghatározott nagyságú jelet szeretnénk megjeleníteni, annak értékét az X+4 és X+5 bájtokon állíthatjuk be. Kimeneti modulok esetén nem beszélhetünk hardveres megszakításokról, így az egyes csatornákat leíró struktúrák is rövidebbek. Ha egy modul nem támogatja valamely funkciót (például hardveres megszakítások ST modulok esetén), az adott funkciót tartalmazó bájt értékének 0-t kell megadnunk.

29

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

Abban az esetben, ha a modul nem rendelkezik csatornaszintű diagnosztikával, a „nulladik” csatornára beállított diagnosztikai funkciók lesznek érvényesek az összes csatornára, amennyiben az adott mérési módban és méréshatárban elérhető az adott funkció. A „Manual_test” funkcióblokk az első meghívódásakor lefuttat egy inicializálást, mely során a blokk „static” területén – a programkód könnyebb átláthatósága érdekében - tárolásra kerülnek a modulok egyes paraméterei.

5.1 ábra – A manuális tesztek során használandó VAT táblák (részlet) Manuális tesztelés esetén az 5.1 ábrán látható VAT táblák segítségével megadhatjuk az egyes csatornák fontosabb paramétereit. A „Reconfig_AI” vagy „Reconfig_AQ” BOOL típusú változó segítségével indíthatjuk el a paraméterezési folyamatot. Ekkor egy FOR ciklus az általunk megadott paraméterek alapján összeállítja az adott modulhoz tartozó 128-as data recordot majd a WRREC függvény segítségével beírja azt a modulba. A VAT táblákon nyomon követhetjük, hogy az írás sikerrel vagy - paraméterezési hiba esetén – hibával zárult. Ha az írás sikeres volt a blokk egy FOR ciklusban annyiszor hívja meg a „Relay_control” funkcióblokkot ahány csatornával a modul rendelkezik. A blokk bemenetén meg kell adni a mérési mód kódját tartalmazó bájt értékét és a csatornaszámot. Mivel utóbbinak a FOR ciklus ciklusváltozója van megadva, így minden csatorna ellenőrzésre kerül. 30

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

Abban az esetben, ha a blokk a bemeneti modul átkonfigurálása után hívódott meg, a mérési mód kódja alapján egy CASE ciklus beállítja az AI_Control változó értékét. A POKE utasítás ezt perifériálisan kiírja a „Channel_number + 2” – azaz a második, negyedik, hatodik vagy nyolcadik - bájtra. A melléklet M5.4 ábráján látható, hogy az említett bájtok a tesztelő áramkör mágneskapcsolóit vezérlő digitális kimenetekhez tartoznak, azaz a mérési mód megváltoztatása esetén a program a tesztelő áramkört automatikusan az aktuális mérési mód szerint állítja be. A POKE_BOOL utasítás működésbe hozza a tesztelő áramkör K1 mágneskapcsolóját, ezzel a bemenetre 1,3V vagy 7,76mA nagyságú jelet juttatva. Ha kimeneti modulok tesztjét végezzük el – akár manuálisan akár automatikusan – a „Relay_control” blokk a kimenetre decimális 5000 értéket ír, a DIAG_AQ mágneskapcsolót pedig a kimeneti jel típusától függően vezérli. Áram kimeneti jel esetén a blokk a DIAG_AQ mágneskapcsolót működtetve az AQ+ és AQ- csatlakozókat rövidre zárja. A mágneskapcsolót a VAT táblából manuálisan működtetve feszültség kimeneti jel esetén rövidzárlatot, áram kimeneti jel esetén pedig vezetékszakadást idézhetünk elő. A „Relay_control” blokk lefutása után a VAT táblákról az egyes tesztek manuálisan elvégezhetőek. Vezérelhetőek a tesztelő áramkörökön található

K1-K4 és „Pol”

mágneskapcsolók és lekapcsolhatóak a modulok tápfeszültségei. A „Manual_test” blokk minden ciklusban kiolvassa a bemeneti modul bemeneti jeleinek értékét, és írja a kimeneti modulok kimeneteit. A bemeneti és kimeneti jel értéke illetve a Value Status bitek értékei a VAT táblákon szintén felügyelhetőek. A felhívódott hardveres megszakításokat – típusonként és csatornánként – számlálók segítségével, míg a diagnosztikai megszakítások működését a diagnosztikai puffer szemrevételezésével ellenőrizhetjük. Az automatikus tesztvégrehajtást az „Automatic_test_execution” VAT táblából indíthatjuk el. Itt meg kell adnunk, hogy melyik modul tesztjét szeretnénk elvégezni. A folyamat a „Test_start” változó segítségével indítható el.

31

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

6. AUTOMATIKUS TESZTVÉGREHAJTÁS – ÖSSZEFOGLALÓ Az automatikus tesztvégrehajtást kiválasztva a program ellenőrzi, hogy a melyik modul tesztjét engedélyeztük. Ha mindkét modul ellenőrzését beállítottuk, minden esetben a kimeneti modulok tesztjei hajtódnak végre először. A tesztfolyamat elején egy funkcióblokk felparaméterezi a modult valamilyen beállítási kombinációban. A paraméterezési folyamat befejezése után végrehajtódnak a diagnosztikai funkciókkal kapcsolatos tesztek egy előre definiált forgatókönyv alapján, mely alatt ellenőrzésre kerül a modulok viselkedése különböző vezérlések esetén. A forgatókönyvek többször is lefutnak, így ellenőrizve hogy a diagnosztikai funkciók megfelelően működnek-e abban az esetben is, ha a be- vagy kimeneti jel alul- vagy felülcsordult állapotban van. A diagnosztikai funkciók ellenőrzésre után a bemeneti modulokon ellenőrzésre kerülnek a hardveres megszakítások amennyiben a modul támogatja azokat. Diagnosztikai funkciók szempontjából a program a modult az összes lehetséges beállítási kombinációban ellenőrzi. Egy „AI 2xU/I-2-/4-Wire HF” modul esetén ez csatornánként 169 féle beállítási lehetőség, azaz a modult 28561 féle kombinációban lehet felparaméterezni. Ha minden lehetséges hardveres megszakítási kombinációt ellenőrizni szeretnénk a programnak több mint 7,2 millió különböző beállítási lehetőséget kellene ellenőriznie, ami az átlagos tesztvégrehajtási idővel számolva több mint két évig tartana. Ebből kifolyólag a tesztkörnyezet – amennyiben lehetséges - az összes hardveres megszakítást bekapcsolja, a végrehajtási időt ezzel kevesebb, mint nyolcvan órára csökkentve. A tesztek végrehajtása után a program újrakonfigurálja a modult és a folyamat elölről kezdődik. Ha a tesztek végrehajtása befejeződött a CPU automatikusan STOP állapotba kapcsol. Bármilyen hiba fellépése esetén a program egy adatblokkba menti, hogy a hiba mikor, melyik teszt közben és minek a hatására lépett fel. A tesztkörnyezet működését egy „AI 2xU/I-2-/4-Wire HF” és egy „AQ 2xU/I HF” modul segítségével fogom bemutatni.

32

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

6.1. A MODULOK ÁTKONFIGURÁLÁSA A kimeneti modulok ellenőrzését elindítva meghívódik a „Reconfig_AQ” funkcióblokk. Mivel az újrakonfigurálás több PLC ciklus alatt megy végbe, a blokk rendelkezik egy „Busy” kimenettel. A manuális teszthez hasonlóan a blokk lokális területén tárolásra kerül a modul „Startup” állapot alatt kiolvasott 128-as data recordja, a csatornáinak száma, és 128-as data recordban a nulladik csatornához tartozó első bájt értéke. Utóbbiból meghatározásra kerül, hogy a data recordban hány bájt ír le egy csatornát. Az 5. fejezetben ismertetésre került a 128-as data record felépítése. Megfigyelhető, hogy bár a kimeneti jel típusát (X bájt) és a jeltartományt (X+1 bájt) is egy bájt tárolja, a második és magasabb helyiértékű bitek minden esetben 0-t tartalmaznak. Ebből kifolyólag a kimeneti jel típusának és a jeltartománynak a megváltoztatásához elegendő a nulladik és az első bitek értékének megváltoztatása. A blokk „static” területén deklarálva van egy „Type_and_range” nevű UInt típusú változó, melynek felépítése a 6.1 ábrán látható.

6.1 ábra – A „Type_and_range” változó felépítése Az ábrán az „Output type” a kimeneti jel típusát, az „Output range” pedig a kimeneti jeltartományt leíró két-két bitet tartalmazza. A 128-as data record megfelelő bájtjainak értékét a program a „Type_and_range” változó értéke alapján állítja be. Tegyük fel, hogy a változó értéke decimálisan 230, melynek bináris kódja 111001102. Ebben az esetben a melléklet M5.3 ábrája alapján, a program a nulladik csatornát 0-10V-ra az elsőt pedig 4-20mA jeltartományra állítja, a második és harmadik csatornát – amennyiben léteznek – pedig deaktiválja.

33

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

6.2 ábra – A „Diagnostics” változó felépítése Hasonlóképp deklarálásra került a 6.2 ábrán látható „Diagnostics” változó, melynek első húsz bitje tárolja az egyes csatornákon konfigurálható diagnosztikai funkciókat az ábrán látható elv szerint. Mivel minden csatornára öt különböző féle diagnosztika állítható be, a változónak csak az első húsz bitje tartalmaz a program számára releváns információt. Minden újrakonfigurálás előtt a „Type_and_range” és a „Diagnostics” változókat a program inkrementálja és megpróbálja felparaméterezni a modult a változók értéke alapján. Mivel a tesztelhető modulok rendelkezhetnek kettő vagy négy csatornával, illetve modul vagy csatornaszintű diagnosztikával, a blokk első meghívódásakor a CASE ciklus 0 értékhez tartozó ágában meghatározásra kerül, hogy a változókat meddig szükséges inkrementálni. Az újrakonfigurálás három lépésből áll. A CASE ciklus 1 értékhez tartozó ágában egy FOR ciklus a 128-as data recordban a diagnosztikai funkciókat tartalmazó bájtokat 0-val teszi egyenlővé, ezzel kikapcsolva a diagnosztikai funkciókat, majd inkrementálja a CASE ciklus ciklusváltozóját. Ha a 128-as data record hibás paramétert tartalmaz (például feszültségkimenet esetén bekapcsolt vezetékszakadás diagnosztikát), a WRREC függvény nem tudja végrehajtani az írást. Egy csatorna deaktiválása esetén (0000_00002-t írva a megfelelő bájtba) azonban a WRREC függvény a többi paramétert figyelmen kívül hagyja. Ebből a működésből kifolyólag - mivel a kimeneti jel típusát kettő, a diagnosztikákat pedig öt bit tárolja - a program a deaktivált csatornákat is százhuszonnyolc különböző kombinációban paraméterezné fel, ami jelentősen megnövelné a tesztek lefutási idejét. Mivel a csatorna deaktiválva van, mind a százhuszonnyolc beállítási kombinációnak ugyanazt a viselkedést kell produkálnia. A „Type_and_range” változó jeltartományt tartalmazó bitjei ezért – amennyiben a csatornát deaktiváljuk – IF ciklusok segítségével maszkolásra kerülnek, így a legközelebbi 34

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

inkrementáláskor azok 002 míg a kimeneti jel típusát tartalmazó bitek „012 értéket vesznek fel, mely ±10V-os feszültségkimenetre való paraméterezést jelent. A program ezek után a „helper” segédváltozót egyenlővé teszi a „Type_and_range” változó értékével és egy FOR ciklus segítségével a 128-as data record megfelelő bájtjaiba beírja a megfelelő paramétereket. A WRREC függvény megpróbálja beleírni a „RECORD” tömb tartalmát a modul 128-as data recordjába. Ha az írás sikertelen – paraméterezési hiba esetén – a „Type_and_range” változó értéke mindaddig inkrementálásra kerül, míg az írás sikerrel nem zárul, vagy a változó értéke el nem éri a beállított maximális értéket. Sikeres írás esetén a jeltípus és jeltartomány mentésre kerül, a „Type_and_range” változó pedig – ha nem érte el a maximális értéket inkrementálódik eggyel, ezzel felkészülve a következő paraméterezési folyamatra. A program ezek után ugyanezt a folyamatot elvégzi a „Diagnostics” változóval is. Ha az írás sikertelen mikor a változó értéke eléri a beállított maximális értéket a program visszaugrik a CASE ciklus 1 értékhez tartozó ágára és új jeltípust és/vagy mérési határt konfigurál. A diagnosztikai funkciók paraméterezése után a program meghívja a „Relay_control” blokkot, ami a korábban említett módon elvégzi a tesztelő áramkör beállítását. Az átkonfigurálás befejeződése után a „Test_cases” adatblokkban tárolásra kerül a beállított konfiguráció. A Kimeneti jel típusa és a jeltartomány minden esetben bekerül az adatblokkba, a diagnosztikai funkciók viszont csak abban az esetben, ha az adott csatorna nincs deaktiválva. Ha a modul csak modulszintű diagnosztikára képes azt minden esetben a nulladik

csatornára

kell

konfigurálnunk.

Ebből

kifolyólag,

ha

egy

csatornát

feszültségkimenetre, egy másikat áramkimenetre paraméterezünk, lehetségessé válik a vezetékszakadás és a rövidzárlat diagnosztika bekapcsolása is. A melléklet M1.7 ábráján látható, hogy vezetékszakadás diagnosztika csak áram-, rövidzárlat diagnosztika pedig csak feszültségkimenet esetén elérhető ezért annak ellenére, hogy mindkettő konfigurálva van minden csatornán csak a rá jellemző diagnosztikai funkciók lesznek aktívak. A ”Module_level_diag_correction” blokk a kimeneti jel típusa és jeltartománya alapján ellenőrzi, hogy a konfigurált diagnosztikai funkciók érvényesek-e az adott csatornára, és amennyiben szükséges korrigálja az adatokat. A „Test_cases” adatblokkba így a valós működésnek megfelelő adatok kerülnek mentésre.

35

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A blokk ezután ellenőrzi, hogy szükség van-e további konfigurációk tesztelésére. Amennyiben a „Diagnostics” és a „Type_and_range” változó értéke is elérte a meghatározott maximumot, a blokk a „Last_configuration” kimenetén jelzi, hogy az utolsó érvényes konfiguráció tesztje következik. Ha a „Diagnostics” változó értéke nem érte el a beállított maximális értéket a blokk a legközelebbi meghíváskor a jeltípust és a jeltartományt nem fogja módosítani, kizárólag a diagnosztikai funkciókat konfigurálja újra. A blokk a „Busy” kimenetén HAMIS értékkel jelzi a folyamat befejeződését. A bemeneti modulok átkonfigurálását a „Reconfig_AI” blokk végzi, mely felépítésében és működésében megegyezik a „Reconfig_AQ” blokkal. A két blokk között két nagyobb eltérés figyelhető meg. Míg a kimeneti modulok esetén a jeltartományt tartalmazó bájtnak csak 2 bitje hordozott releváns információt, a bemeneti modulok méréshatára 4 biten van kódolva. Másik különbség, hogy mivel egyes bemeneti modulok képesek hardveres megszakításokat kiváltani, az azokhoz tartozó határértékeket újra kell konfigurálni, ha megváltoztatjuk a mérési módot, vagy a méréshatárt. A tesztelő áramkör segítségével csak néhány diszkrét értéket juttathatunk a bemenetre, melyeket a melléklet M6.1 ábrája tartalmaz. Ebből kifolyólag az alsó és felső határértékeket úgy kellett megválasztanom, hogy azok bármilyen mérési mód és méréshatár esetén külön-külön és együtt is átléphetőek legyenek, miközben a bemeneti jel értéke nem haladhatja meg az alul- vagy felülcsordulási határértéket. A választott értékek a 6.3 ábrán láthatóak.

6.3 ábra – A hardveres megszakításokhoz választott határértékek A „SET_hardware_interrupt_values” blokk a mérési mód és a méréshatár alapján kiszámolja az ábrán látható értékekhez tartozó decimális értékeket, melyeket átad a „Reconfig_AI” blokknak, ahol a WRREC függvény segítségével azok beírásra kerülnek a modul 128-as data recordjába. A blokk futása a „Reconfig_AQ” blokkal megegyező módon folytatódik.

36

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

6.2. DIAGNOSZTIKAI FUNKCIÓK ELLENŐRZÉSE – KIMENETI MODULOK Egy hiba megjelenése vagy megszűnése esetén, ha annak diagnosztizálása engedélyezve van, fel kell hívódnia a „Diagnostic_error_interrupt” szervezőblokknak. A blokk rendelkezik egy „Laddr” nevű változóval mely annak a modulnak a hardverazonosítóját tartalmazza, amelyik a megszakítást kiváltotta. A RALRM függvény segítségével kiolvashatóak a megszakítást kiváltó hiba paraméterei, melyeket a modul jelentett. A függvény a kiolvasott adatokat a „tinfo” és „ainfo” struktúrákban tárolja. Utóbbi tartalmazza a hibakódot, a hibát jelentő csatorna számát és a hiba jellegét (bejövő vagy elmenő). A kiolvasott paraméterek a „Test_cases” adatblokk „Diagnostic_alarm_data” tömbjében kerülnek tárolásra, melynek felépítése a 6.4 ábrán látható.

6.4 ábra – A Diagnostic_alarm_data tömb felépítése

Az egyes csatornák hibainformációt a tömb 0-3-as tömbindexű struktúrái tartalmazzák. Abban az esetben, ha a tesztelendő modul csak modulszintű diagnosztika megvalósítására képes, minden hibát 32768-as csatornaszám (8000h) mellett jelent. Ekkor a hibára vonatkozó információk a tömb utolsó struktúrájában kerülnek tárolásra. Bejövő hiba esetén az adott hibához tartozó változó értékébe 1 elmenő hiba esetén 2 kerül beírásra. Az átkonfigurálás befejeződése után - ha a csatorna nincs deaktiválva - meghívódik az „AQ_Diagnostic_tests” funkcióblokk, mely egy tíz lépésből álló forgatókönyv segítségével elvégzi a modul diagnosztikai funkcióinak ellenőrzését. A forgatókönyv négyszer fut le, minden lefutás után új értéket állítva a „Value_control” változónak, mely az alapértelmezett kimeneti jelet tartalmazza. Értéke lehet decimális 0, 5000, 32767 vagy -32768. 37

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A tesztfolyamat a „Control” változó „Value_control” változóval történő egyenlővé tételével kezdődik. A Control változó értékét ezután a POKE utasítás kiírja a kimenetre. A „Check_AQ_Process_Value” blokk meghatározza, hogy a kimeneti jel értéke a névleges, alulcsordult vagy felülcsordult állapotba esik. Ezt a „Nominal”, „Underflow” és „Overflow” változókon jelzi. A 2.4 fejezetben ismertetésre került, hogy az egyes decimális értékekhez milyen fizikai értékek tartoznak továbbá, hogy a vezetékszakadás és rövidzárlat érzékelésére csak abban az esetben képes a modul, ha a kimeneti jel értéke meghaladja a 0,3mA-t vagy 0,5V-ot. A 6.5 ábra tartalmazza a kimeneti jel fizikai értékét a „Value_control” változó decimális értéke alapján. Látható, hogy 0 és -32768 értékek esetén egyes jeltartományokban a kimeneti jel az érzékelési határérték alatt, egyes jeltartományokban pedig afelett van. Előbbi esetben a blokk ezt az „Under_sense_value” kimenetén jelzi. A blokk kimeneti paramétereit az „AQ_Diagnostics_test” blokk a static területén tárolja, hogy azokat a tesztek végrehajtása során fel tudja használni.

6.5 ábra – Kimeneti jel nagysága különböző decimális értékek esetén A parancsok végrehajtása után meghívódik a „Check_diag_request_AQ” blokk mely a „Scenario_number” változó, a csatorna paraméterezése és a „Check_AQ_Process_Value” blokk által szolgáltatott adatok alapján meghatározza, hogy milyen diagnosztikai megszakításoknak kell meghívódnia. Az elvárt paraméterek a „Requested_parameters” struktúrába kerülnek, mely felépítésében a 6.4 ábrán ismertetett „Diagnostic_alarm_data” struktúrával megegyezik. Az elvárt paraméterek meghatározása után a „System_time_1” változóba mentésre kerül az aktuális rendszeridő a CASE ciklus ciklusváltozója pedig inkrementálódik. A blokk a következő ciklusok során a „System_time_2” változóba menti az aktuális rendszeridőt.

38

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A két érték minden ciklus során összehasonlításra kerül, és amennyiben különbségük több mint 250mS, a program elkezdi a tesztek kiértékelését. A POKE_BOOL utasítás kiolvassa az adott csatornához tartozó Value Status bit értékét, majd összehasonlítja azt az elvárt értékkel. A Value Status bit értéke kizárólag akkor lehet logikai 1, ha a modulon semmilyen hiba nem áll fenn. Ha a paraméterek helyesek, vagy a modul nem támogatja a Value Status funkciót a „Value_status_OK” változó értéke logikai 1 lesz. Ezt követően a „Check_Diagnostics” blokk összehasonlítja a modul által jelentett és az elvárt paramétereket. A blokk a paraméterek egyezését a „Passed” kimenetén jelzi. Ha

minden

paraméter

helyesnek

bizonyult,

a

CASE

ciklus

ciklusváltozója

inkrementálódik. Abban az esetben, ha valamelyik teszt során rendellenes működés lépett fel, a ciklusváltozó inkrementálása előtt meghívódik az „Error_Saving” blokk, ami a bemeneti paraméterek alapján meghatározza a hiba jellegét és a fellépésének helyét, majd menti azokat az „Error_list” adatblokkba az aktuális paraméterezéssel együtt. A tesztek során fellépő hibák mennyiségét az „AI_error_count” és „AQ_error_count” változók tárolják. A paraméterek ellenőrzése után a blokk megvizsgálja, hogy a program futásának hol kell folytatódnia. Amennyiben a forgatókönyv még nem ért a végéhez, folytatja annak futtatását. Ha mind a tíz lépés végrehajtódott a „Value_control” változót először 5000-re, majd 32767-re és -32768-ra módosítja, és ismét lefuttatja a tesztszekvenciát. Miután a teljes teszt lefutott - azaz a „Value_control” változó értéke -32768, a „Scenario_number” változóé pedig 10, a blokk a „Channel_Done” kimeneten jelzi, hogy az adott csatorna tesztjei befejeződtek. A leírt teszt szekvencia ezután lefut a modul többi csatornájára is, ha azok nincsenek deaktiválva. Miután a tesztek az összes csatornára lefutottak, a „Main” szervezőblokk ellenőrzi, hogy szükséges-e további tesztek futtatása. Amennyiben igen, a CASE ciklus ciklusváltozójába 0 értéket ír, így a következő ciklusban ismét meghívódik a „Reconfig_AQ” blokk. Ha a teljes teszt szekvencia lefutott, a CPU STOP üzemállapotba kapcsol, vagy ha bemeneti modul ellenőrzését is engedélyeztük a program elkezdi futtatni azokat.

39

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

6.3. DIAGNOSZTIKAI FUNKCIÓK ELLENŐRZÉSE – BEMENETI MODULOK A bemeneti modulok diagnosztikai funkcióinak tesztelését az „AI_Diagnostics_test” blokk végzi el. A kimeneti modulokhoz hasonlóan a tesztfolyamat bemeneti modulok esetén is egy forgatókönyv alapján hajtódik végre. Első lefutásakor a „Value_control” byte – azaz az alapértelmezett vezérlés – értéke 2. Míg kimeneti modulok tesztelése esetén ezt az értéket a kimenetre

írtuk,

bemeneti

modulok

ellenőrzésekor

a

tesztelő

áramkör

K1-K4

mágneskapcsolóit vezéreljük vele. Emellett a vezérlés mellett a bemeneten – jeltípustól és méréshatártól függetlenül - a névleges mérési tartományba eső jel (~2V vagy ~12mA) mérhető. A kimenetekkel ellentétben a bemeneti modulokon egyes paraméterezések esetén konfigurálható a vezetékszakadás és a rövidzárlat diagnosztika is, ennek értelmében a forgatókönyv is több tesztesetet tartalmaz. Hasonlóan a kimeneti modulok ellenőrzéséhez, ellenőrzésre kerül a funkciók működése felül- és alulcsordult állapotban is. Utóbbit a program a „Pol” mágneskapcsoló segítségével valósítja meg. Kétvezetékes távadók esetén az áramirány nem fordítható meg, ezért a forgatókönyv – az alapértelmezett három helyett – ilyen tesztek esetén csak kétszer fut le. A diagnosztikai funkciók viselkedése nagymértékben függ attól, hogy a bemeneti jel értéke a névleges vagy az alul/felülcsordulási tartományba esik. Ebből kifolyólag három különböző blokk határozza meg a tesztek során elvárt paramétereket. Ha a „Value_control” változó értéke 2h, az elvárt paramétereket a „Check_diag_requests_AI_nominal” blokk határozza meg a korábban ismertetett elv szerint. A forgatókönyv második lefutásakor a „Value_control változó értéke FFh, azaz a bemeneten mérhető érték ~13,5V vagy ~28mA. Ezek az értékek méréshatártól függetlenül felülcsordult állapotot jelentenek, melynek megfelelően az elvárt paramétereket a „Check_diag_requests_AI_overflow” blokk határozza meg. Amennyiben a forgatókönyv harmadszor is végrehajtódik, a bemeneti jel az alulcsordult tartományba esik, ekkor a „Check_diag_requests_AI_underflow” blokk határozza meg az elvárt paramétereket. A diagnosztikai megszakításoknak ugyanúgy maximum 250mS alatt kell felhívódniuk, mint a kimeneti modulok tesztjei esetén. A tesztek végeztével a blokk a kilépés előtt a csatornát alapállapotba állítja, így azok a többi csatorna teszteredményeit nem befolyásolhatják.

40

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

6.4. A HARDVERES MEGSZAKÍTÁSOK ELLENŐRZÉSE A hardveres megszakítások ellenőrzése öt lépésben történik. A tesztelést végző „AI_hardware_interrupt_test” blokk első meghívódásakor a „Value_control” változó értéke 2 – azaz a tesztelő áramkörön a K2 mágneskapcsoló működtetve van - melynek megfelelően a bemeneten a melléklet M6.1 ábrája alapján ~2V vagy ~12mA nagyságú jel mérhető. A forgatókönyv a „Value_control” változó segítségével a következő vezérlési sorrendet valósírja meg: 1. K3 mágneskapcsoló működtetése (High limit 1 érték átlépése) 2. K2 és K3 mágneskapcsoló működtetése (High limit 2 érték átlépése) 3. K2 mágneskapcsoló működtetése (Low limit 1 érték átlépése) 4. K1 mágneskapcsoló működtetése (Low limit 2 érték átlépése) 5. K2 és K3 mágneskapcsoló működtetése (High limit 1 és High limit 2 érték átlépése) 6. K1 mágneskapcsoló működtetése (Low limit 1 és Low limit 2 érték átlépése) Bármelyik határértéket átlépve fel kell hívódnia a „Hardware_interrupt” szervezőblokknak, melynek „IChannel” változója tartalmazza a csatornaszámot. Az „EventType” változó értéke azonosítja a megszakítást előidéző eseményt (például High limit 1 átlépése esetén 3h-at). A „HW_interrupt_req_check” blokk a „Scenario_number” változó értéke alapján meghatározza az elvárt paramétereket, melyeket a „Check_HW_Interrupts” blokk hasonlít össze a valós paraméterekkel. Amennyiben a paraméterek nem egyeznek az „Error_saving” blokk az „Error_list” adatblokkba menti a szükséges paramétereket, melyek alapján a hibás működés a tesztek lefutása után manuálisan is reprodukálható.

41

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

7. A TESZTEREDMÉNYEK KIÉRTÉKELÉSE Miután az összes teszt lefutott, a CPU automatikusan STOP üzemállapotba kapcsol, ezzel jelezve a végrehajtás végét. Mikor az adott modul tesztjei befejeződnek, a program egy-egy változó segítségével jelzi azokat. A TIA Portal fejlesztőkörnyezet segítségével az „Error_list” adatblokkból kiolvashatóak a végrehajtás során fellépő hibák, az „Automatic_test_execution” VAT táblán pedig ellenőrizhető, hogy a CPU leállást valóban a tesztek befejeződése okozta, és nem valamilyen egyéb hiba. Mivel az „Error_list” blokk a remanens memóriában van tárolva nem veszti el a tartalmát a CPU leállása, majd elindulása után sem. A benne szereplő adatok alapján manuális ellenőrzéssel könnyen megállapítható, hogy mi okozta az adott hibát. A tesztkörnyezet üzembe helyezése előtt annak helyes működését is ellenőriznem kellett. A modulok átparaméterezését végző blokkokba ezért kiegészítő programsorok kerültek, melyek a beállított paraméterek szerint felülbírálták a program alapvető működését. Így biztos lehettem benne, hogy a tesztek során – a program szempontjából – fel fog lépni rendellenes működés. A tesztkörnyezet minden funkciója ellenőrzésen esett át, így megbizonyosodtam róla, hogy a program a hibákat – ha vannak – megtalálja, és azokról olyan információkat közöl, melyek alapján azok manuálisan is reprodukálhatóak. Mivel az eszközök jelenleg is fejlesztés alatt állnak, a fellelt hibák nyilvánosságra hozatala a vállalat adatvédelmi irányelveibe ütközik, az eredmények kiértékelését emiatt egy manuálisan generált – de automatikusan ellenőrzött – hiba segítségével fogom bemutatni egy „AI 2xU/I-2-/4-wire HF” modul különböző firmware verziói esetén. A „SET_Hardware_interrupt_values” blokkban egy kiegészítő IF ciklus a „High_limit_1” változó értékét feszültségmérés és ±10V méréshatár esetén 27648 értékkel írja felül, a határértéket ezzel +10V-ra állítva. A hardveres megszakítások ellenőrzése során a bemeneti jel nagysága sohasem haladja meg az 5,1V-ot, így ±10V méréshatár esetén a megadott határérték nem léphető át. A módosítás a többi méréshatárt nem befolyásolja, így a programnak – feltételezve a modul helyes működését – kizárólag ±10V méréshatár esetén kell rendellenesnek vélt viselkedést naplóznia. Az automatikus tesztvégrehajtást engedélyezve a program – működéséből adódóan először ±5V méréshatárra paraméterezi a „nulladik” csatornát, a többit pedig deaktiválja, majd ellenőrzi a diagnosztikai és a hardveres megszakítások helyes működését. Ha az adott méréshatárt – diagnosztikák szempontjából – az összes lehetséges kombinációban leellenőrizte, a „nulladik” csatornát ±10V méréshatárra paraméterezi. 42

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

A 7.1 ábrán az „Error_saving” blokk által mentett értékek láthatóak. A „Block_number” változó értéke alapján a hiba az „AI_hardware_interrupt_test” blokk futása alatt jelentkezett. A „Scenario_number” és az „Error_type” változók értéke a hiba helyét azonosítja. Megfigyelhető, hogy V2.0 firmware verzió esetén 32, míg V1.1 firmware verzió esetén csak 16 hiba fordult elő. Ennek oka, hogy a V2.0 firmware-ben a diagnosztikai funkciók bővítésre kerültek, így azokat a program ±10V méréshatár esetén nyolc helyett tizenhat különböző kombinációban ellenőrzi. Mivel a „High_limit_1” és „High_limit_2” határértékek átlépése egyidejűleg is megtörténik, a blokk paraméterezésenként két hibás működést fog naplózni.

7.1 ábra – AI 2xU/I 2-/4-wire HF modul naplózott hibái V1.1 (balra) és V2.0 (jobbra) firmware verziók esetén

43

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

8. FEJLESZTÉSI LEHETŐSÉGEK Mind a hardverkonfiguráció, mind a felhasználói program megtervezése során figyelembe kellett vennem, hogy a tesztkörnyezet a későbbiekben bővíthető legyen mind funkcionalitás, mind támogatott hardverek szempontjából. A dolgozat korábbi fejezeteiben említésre került, hogy az MSI/MSO funkciók csak abban az esetben elérhetőek, ha a modult decentralizáltan használjuk. A tesztelendő modulokat egy „IM 155 6 PN HF” PROFINET-es interfész modul (IM) mögött használva mind az MSI mind az MSO funkció működése ellenőrizhetővé válna a végrehajtási idő jelentős mértékű megnövekedése nélkül. A CPU-t és az interfész modult összekötő PROFINET kábelt nem közvetlenül, hanem mágneskapcsolókon keresztül bekötve az összeköttetés megszakítható. Mikor az IM elveszti a kapcsolatot a processzorral a mögé projektált modulok ugyanazt a viselkedést produkálják, mint ha a CPU STOP állapotba kapcsolt volna. Ezzel a módszerrel – és a kimeneti modulok jelét egy centrálisan használt bemeneti modulra juttatva - ellenőrizhetővé válik a kimeneti modulok „Reaction to CPU STOP” funkciója. A CPU és az IM közti kapcsolat kiépítése annak ellenére, hogy pár másodperc alatt megtörténik, a tesztek mennyisége miatt jelentősen meghosszabbítja a teljes tesztvégrehajtási időt. A jövőben emiatt ki szeretném egészíteni a programot, hogy lehetőség legyen rövidebb lefutási idejű tesztek futtatására (például csak egy csatorna, vagy az összes lehetséges helyett megadott számú, véletlenszerű paraméterezés ellenőrzése). A felhasználói program a tesztelő áramkör K1-K4 mágneskapcsolóit egy kimeneti bájt segítségével vezérli. Az áramkör működéséből fakadóan jelenleg maximum tizenöt különböző nagyságú érték juttatható a bemenetre. A vezérlő bájtok négy felső helyiértékű bitjét a program egy esetleges bővítésre fenntartja. A jövőben ez felhasználható a megvalósítható értékek számának növelésére, vagy egy különálló hálózat kiépítésével ellenállásmérésre alkalmas modulok ellenőrzésére is.

44

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

9. ÖSSZEFOGLALÁS Az evosoft Hungary Kft. System Test&Engineering üzletága azzal a feladattal bízott meg, hogy tervezzek egy olyan tesztkörnyezetet, ami képes elvégezni egy analóg bemeneti és egy analóg kimeneti ET 200SP perifériamodul funkcionalitással kapcsolatos tesztjeit. A tervezés első szakaszában megismerkedtem a modulok funkcióival és azok pontos viselkedésével, nagy figyelmet fordítva a működési eltérésekre különböző eszközök esetén. Az automatizálható tesztesetek meghatározása után hamar be kellett látnom, hogy a digitális modulok ellenőrzése során használt módszerek, az analóg modulok komplexebb működése miatt nem lesznek célravezetőek, ezért egy kiegészítő áramkör tervezése mellett döntöttem. Az áramkör kialakítása során figyelembe vettem, hogy annak viselkedése független legyen a használt eszközöktől, bármilyen modul tesztjét is szeretnénk elvégezni, a felhasználói program ne igényeljen módosítást. A hardverkonfiguráció megtervezésekor nagy hangsúlyt fektettem arra, hogy a rendszer a későbbiekben további modulokkal is bővíthető legyen a felhasználó program módosítása nélkül. Ebben nagy segítséget nyújtott a S7+ rendszer Configuration Control funkciója. A program lehetővé teszi mind az automatikus, mind a manuális tesztvégrehajtást melynek köszönhetően az automatikus ellenőrzés során fellépő hibák a tesztek lefutása után ugyanazon körülmények mellett reprodukálhatóak. Az automatikus végrehajtáshoz az elvégzendő teszteket tartalmazó adatbázis alapján forgatókönyveket hoztam létre, melyek lefutása során ellenőrzésre kerülnek a modulok diagnosztikai funkciói, a hardveres megszakítások és a Quality Info funkció helyes működése. A tesztkörnyezet egyes modulokon többszázezer tesztet is elvégez, emiatt egy hibamentő blokk minden, a hiba reprodukálásához szükséges paramétert eltárol. Az elkészített tesztkörnyezet jelentős mértékben megkönnyíti a tesztelést végzők feladatát. Az automatizált ellenőrzésnek köszönhetően a csak manuálisan elvégezhető tesztekre több idő fordítható, ezzel átfogóbb ellenőrzést lehetővé téve. Egyes eszközök már elérték azt a fokú fejlettségi szintet, mikor a hibás működés csak néhány kivételes esetben áll fenn. A program futása alatt a modulok minden lehetséges paraméterezési kombinációja ellenőrzésre kerül, így ezek a kivételes esetekben előforduló hibák is kiszűrhetőek. Összetettségük miatt egyes eszközök ellenőrzése napokat is igénybe vehet, ezért a rendszert jövőben tovább szeretném fejleszteni és rövidített programokkal kiegészíteni. Ezzel egy korábban megtalált hiba javítása esetén rövid idő alatt ellenőrizhető lenne a javítás sikere. 45

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

10. SUMMARY I have mandated by the Systemtest&Engineering division of evosoft Hungary Kft to develop a test environment, which is able to perform the functionality tests of both analog input and output modules of ET 200SP system. In the first section of planning, I had to be well informed about the behaviours of each functions that the analog modules could have.After defining the automatable test cases, I had to face the fact, that the checking methods usually used in case of digital modules are not enough satisfying because of the complexity of analog modules. My solution for this problem was a tester circuit. It needed to function independently from the actually used devices without making any changes in the user program. During the planning of hardware configuration it was emphasized to make the test environment expandable with more modules without major changes has been made. The most suitable solution was using the Configuration Control function which the S7+ system has. The program allows both automatic and manual test execution, which means that the failures occured during the automatic test execution, can be easily reproduced manually. For the automatic test execution, I made scenarios based on a database that contains the list and the method of the operation of each tests. During the automatic test execution the user program is automatically checks the correct operation of diagnostic functions, hardware interrupts, and the quality information function. In case of some modules the test enviroment can produce thousands of tests and if an error occurs the error saver block saves the necessary parameters to reproduce the errors later. Owing to the automatic test execution, more time can be spent on test that can only be executable manually, which makes the control methods more extensive. Most of the devices are highly developed, so inaccurate functionality can be observed only in some exceptional cases. During the execution of the tests all possible parameterizing combinations can be checked, so failures can be filtered. Because of the complexity of the devices the checking progress could last for days, therefore in the future I would like to improve the test environment with shortened programs, so the successfulness of the error corrections could be easily examined.

46

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

11. IRODALOMJEGYZÉK [1]

„Dr. Ajtonyi István, Gyuricza István - Programozható irányítóberendezések Hálózatok és rendszerek”, Műszaki Könyvkiadó, Miskolc, 2002

[2]

„Siemens AG - Programming Guideline for S7-1200/S7-1500 V1.4”, Nürnberg, 2015

[3]

„Siemens AG – ET 200SP System manual”, Nürnberg, 2015”

[4]

„Siemens AG – Simatic ET 200SP BaseUnits”, Nürnberg, 2014

[5]

„Siemens AG - SIMATIC S7-1500, ET 200MP, ET 200SP, ET 200AL, ET 200pro, ET 200eco PN Analog value processing”, Nürnberg, 2014

[6]

https://support.industry.siemens.com/cs/document/109476914/what-are-thedifferences-between-the-basic-(ba)-standard-(st)-high-feature-(hf)-and-high-speed(hs)-modules-of-the-et-200sp-and-et-200mp?dti=0&lc=en-WW

[7]

https://support.industry.siemens.com/cs/document/78397446/new-functions-for-et200mp-profinet-im-and-s7-1500-i-o-modules?dti=0&lc=en-WW

[8]

„Siemens AG - Analog output module AQ 2xU/I HF manual”, Nürnberg, 2014

[9]

„Siemens AG - Analog output module AQ 4xU/I ST manual”, Nürnberg, 2014

[10]

„Siemens AG - AI 4xU/I 2-wire ST manual” Nürnberg, 2014

[11]

„Siemens AG - AI 2xU/I 2-/4-wire HF manual” Nürnberg, 2014

(linkek utoljára ellenőrizve: 2016.04.30)

47

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

MELLÉKLETEK

48

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

1. MELLÉKLET – ANALÓG KIMENETI MODULOK TÁBLÁZATAI

M1.1 táblázat – Decimális és hexadecimális értékek ±5V és ±10V jeltartomány esetén

M1.2 táblázat – Decimális és hexadecimális értékek 0-10V jeltartomány esetén

M-1

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

M1.3 táblázat – Decimális és hexadecimális értékek 1-5V jeltartomány esetén

M1.4 táblázat – Decimális és hexadecimális értékek ±20mA jeltartomány esetén

M-2

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

M1.5 táblázat – Decimális és hexadecimális értékek 0-20mA jeltartomány esetén

M1.6 táblázat – Decimális és hexadecimális értékek 4-20mA jeltartomány esetén

M-3

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

M1.7 táblázat – Kimeneti modulok konfigurálható diagnosztikai funkciói

M-4

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

2. MELLÉKLET – ANALÓG BEMENETI MODULOK TÁBLÁZATAI

M2.1 táblázat – Decimális és hexadecimális értékek ±5V és ±10V méréshatár esetén

M2.2 táblázat – Decimális és hexadecimális értékek 1-5V és 0-10V méréshatár esetén

M-5

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

M2.3 táblázat – Decimális és hexadecimális értékek 0-20 és 4-20mA méréshatár esetén

M2.4 táblázat – Decimális és hexadecimális értékek ±20mA méréshatár esetén

M-6

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

M2.5 táblázat – Bemeneti modulok konfigurálható diagnosztikai funkciói

M-7

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

3. MELLÉKLET – TESZTELŐ ÁRAMKÖR

M3.1 ábra – A tesztelő áramkör

M-8

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

M4.1 ábra – A TIA Portal fejlesztőkörnyezetben projektált hardverkonfiguráció

4. MELLÉKLET – PROJEKTÁLT HARDVERKONFIGURÁCIÓ

M-9

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

M5.1 ábra – Data record 128 bemeneti modulok esetén (Példa)

5. MELLÉKLET – BE- ÉS KIMENETI MODULOK DATA RECORDJAI

M-10

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

M5.2 ábra – Data record 128 kimeneti modulok esetén (Példa)

M-11

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

M5.3 ábra – Bemeneti (balra) és kimeneti (jobbra) modulok kódolási táblázatai

M5.4 ábra – A tesztelő áramkört vezérlő kimeneti modul címkiosztása (nulladik csatorna)

M-12

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR ROBERT BOSCH MECHATRONIKAI INTÉZETI TANSZÉK

6. MELLÉKLET – A BEMENETI MODULOK VEZÉRLÉSE

M6.1 ábra – Bemeneti jel értéke a mágneskapcsolók vezérlésének függvényében

M-13

Life Enjoy

" Life is not a problem to be solved but a reality to be experienced! "

Get in touch

Social

© Copyright 2013 - 2019 TIXPDF.COM - All rights reserved.