PLC Versenyfeladat XIV. Országos Irányítástechnikai Programozó Verseny Budapest, 2008. március 19-21. Összeállította az EvoPro Kft. Általános bemutatás A feladatban szereplő eszköz egy 8x8 képpontos LED-mátrix kijelzőből, 16 darab nyomógombból, és egy Siemens PLC-ből áll. A feladat során a versenyzőknek egy játékot kell elkészíteni, ahol az eszköz kilenc nyomógombját fogjuk használni. Kijelző Nyomógombok 2 0 bit 1. oszlop 2 7 bit 8. oszlop 8. sor 1. sor Start Stop Pause Mozgatás Előválasztó Előválasztó Mozgatás Balra 1 2 3 4 Jobbra A Siemens S7 315-2DP CPU a kijelzőre történő szöveg vagy ábrák kiírását végzi, illetve figyeli, hogy melyik nyomógomb van lenyomva. A PLC-ben egy adatterület lett kialakítva, melyből folyamatosan történik az általunk kívánt kép kijelzőre írása. A PLC digitális I/O vonalakon keresztül kommunikál a külvilággal. Ezen a felületen adja ki a nyomógombok állapotát, illetve fogadja a megjelenítendő kép információt. A kijelzőt meghajtó PLC-nek és a csapatok által hozott PLC-nek kommunikálni kell egymással. Ez a kommunikáció I/O vonalakon keresztül történik. A megjelenítendő kép beírása soronként történik. A sorok és az oszlopok számozása a fenti ábrán látható.
2. oldal A kommunikáció leírása A kommunikáció hagyományos kézfogásos protokollra épül. A versenyzők által hozott PLC-nek meg kell címezni az egyik sort, és ki kell adni az adott sorban megjelenítendő információt. Ezzel egy időben egy dedikált kimenetet 1-be kell billenteni ( Adatküldés kérés ). Ekkor kezdődik a kommunikáció a két PLC között. A kijelzőt meghajtó PLC figyeli ezt a jelet a bemenetén. Ha érkezik Adatküldés kérés, akkor a magadott sor átmeneti tárolójába beírja a megjelenítendő információt. Ezután egy dedikált kimenetét 1-be állítja ( Adat beírva ), ezzel jelzi a másik PLC-nek, hogy beírta az adatot. A versenyzők által hozott PLC-nek ekkor vissza kell venni az Adatküldés kérés jelet. Ennek hatására a kijelző meghajtó PLC is visszaveszi az Adat beírva jelet. Ezután egy újabb Adatküldés kérés jellel egy újabb címet, adatot lehet küldeni a meghajtó PLC-nek. A sorok beírására az alábbi szabályok vonatkoznak: 1. A sorok beírási sorrendje tetszőleges 2. Ugyanazon sor többször is átírható 3. Ha egy sort nem ír át, akkor ott megmarad a korábbi érték 4. A kijelző frissítése a fiktív 9. sorba történő tetszőleges adat beírásával valósul meg FONTOS: A versenyzőknek nem kell biztosítani a folyamatos kijelzést. Ezt a funkciót a kijelzőt meghajtó PLC végzi. A csapatoknak csak 1-1 képet kell továbbítani a meghajtó PLC-nek ha egy újabb képet szeretnének kiíratni a kijelzőre. A sorok címzése: A nyolc sort négy bittel lehet megcímezni, mert a 0000 címet nem engedélyezzük. A sorok címzése Gray-kódban történik, ugyanis ekkor a szomszédos sorok kódjai közötti Hamming távolság egy. A pontos címeket a következő táblázat tartalmazza. Sor száma Kód (2 3 2 2 2 1 2 0 ) 0 fiktív 0000 1 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100 8 1100 9 fiktív 1101
3. oldal Hardver csatlakozási felület A versenyzők által hozott PLC-k digitális bemenetei Bemenetek Funkció Vezetékszám 1 Mozgatás balra Nyomógomb 1 2 Adat Beírva 2 3 Előválasztó Nyomógomb 1 3 4 Előválasztó Nyomógomb 2 4 5 Előválasztó Nyomógomb 3 5 6 Előválasztó Nyomógomb 4 6 7 Mozgatás jobbra Nyomógomb 8 8 START 9 9 STOP 10 10 PAUSE 11 A versenyzők által hozott PLC-k digitális kimenetei Kimenetek Funkció Vezetékszám 1 Kód 1 (2 0 ) 13 2 Kód 2 (2 1 ) 14 3 Kód 3 (2 2 ) 15 4 Kód 4 (2 3 ) 16 5 Adatküldés Kérés 17 6 Játék Vége 18 7 Oszlop 1 21 8 Oszlop 2 22 9 Oszlop 3 23 10 Oszlop 4 24 11 Oszlop 5 25 12 Oszlop 6 26 13 Oszlop 7 27 14 Oszlop 8 28 Tápfeszültség csatlakozás Kimenetek Funkció Vezetékszám 1 +24V 29 2 GND 30
4. oldal A programozási feladat leírása A feladat egy labdajáték megírása. A játékhoz szükséges eszközök egy labda és egy ütő. A három képpontból álló ütő az alsó (első) sorban helyezkedik el. Vízszintes pozíciója a balra és a jobbra mozgató nyomógombok segítségével változtatható. A játék célja, hogy a 8x8-as kijelző területén tartsuk a labdát az ütő segítségével. Játék indítása, szüneteltetése, megállítása A játék menetét három nyomógombbal vezérelhetjük. A START nyomógomb megnyomásával elindíthatunk egy új játékot. A STOP nyomógombbal leállíthatjuk a játékot. A START és a STOP nyomógomb hatására automatikusan be-, illetve kikapcsol a kijelző is (a kijelzőt meghajtó PLC látja el ezt a funkciót is). A PAUSE nyomógomb megnyomásakor a labda és az ütő pozíciója is rögzítve lesz, ekkor a PAUSE gomb újbóli megnyomásával folytatódik a játék. A labda ütő kapcsolat A labda három ponton érintheti az ütőt: - Ha az ütő bal szélére érkezik, akkor balra 45 -ban felfelé indul tovább - Ha az ütő közepére érkezik, akkor egyenesen 90 -ban felfelé indul tovább - Ha az ütő jobb szélére érkezik, akkor jobbra 45 -ban felfelé indul tovább Labda fal kapcsolat Ha a labda eléri a kijelző felső sorát, illetve bármelyik oldalfalat, akkor irányváltoztatással halad tovább: - Ha 45 -os beesési szöggel éri el a falat, akkor a visszaverődési szög szintén 45 -os - Ha 90 -os beesési szöggel éri el a falat, akkor a visszaverődési szög 180
5. oldal Bizonyos esetekben a labda 45 -os beesési szöggel éri el az ütőt közvetlen a fal mellett, ekkor ellentétes irányban indul vissza. Ha a labda eléri az alsó (első) sort, új labda indul. Egy játék három labdát tartalmaz. Minden új labda indítása előtt ki kell írni - két másodpercre - a kijelzőre, hogy a játékosnak még mennyi labdája van vissza az aktuális játékból. Erre egy lehetséges megoldás: A játék indítása előtt a játékosnak négy féle indulási labdapozíció ütőpozíció iránypozíció áll rendelkezésére, ahogy elindíthatja a játék menetét. Ezt a négy darab Előválasztó Nyomógomb egyikének a lenyomásával aktiválhatja. A négy Előválasztó Nyomógomb mindegyike más-más induló labda pozíciót, induló labda irányt, és induló ütő pozíciót tartalmaz. Ezt a START nyomógomb megnyomása előtt kell kiválasztani. A játék mind a három labdája ebből a kiválasztott pozícióból, irányból indul. A játék közben az indulási pozíciókat már nem lehet megváltoztatni. Az egyes előválasztókhoz rendelt kezdeti beállításokat az alábbi ábra tartalmazza. Előválasztó 1 Előválasztó 2 Előválasztó 3 Előválasztó 4
6. oldal A játék végén ki kell kapcsolni a kijelzőt is. A kijelző kikapcsolásához a csapatoknak a Játék Vége kimenetet kell aktívvá tenni 10ms időre. Ha a kijelzőt meghajtó PLC érzékeli ezt a jelet, azonnal kikapcsolja a kijelzőt, ugyanúgy, mintha valaki megnyomta volna a STOP gombot. Megoldandó feladatrészek - Kommunikáció megírása a két PLC között - START, STOP, PAUSE nyomógombok működése - Az ütő elhelyezése az alsó (első) sorban - Az ütő mozgatása bal jobb irányban a nyomógombok segítségével - A labda elhelyezése a kijelzőn - A labda másodpercenként kb. 3-4-szer lépjen - A labda mozgatása a kijelzőn egyenes vonalban - A labda megfelelő szögben történő irányváltoztatása a fal, illetve az ütő elérésekor - A labda útvonalának lekezelése, ha a labda eléri valamelyik alsó sarok pozíciót - Minden labdaindítás előtt két másodpercig kiírni a képernyőre, hogy mennyi labda van még hátra a játékból. - Labdaindító pozícióválasztás (előválasztó nyomógombok segítségével) - A kijelző kikapcsolása a játék végén