Automationsteknik Sortering av cylindrar 1(5) Sortering av cylindrar I denna laboration ska ett antal aluminiumcylindrar sorteras med hjälp av ett sorteringsverk som styrs av en mikroprocessor. Sorteringen är baserad på en höjd och diametermätning av cylindrarna. Beskrivning av sorteringsverket Figur 1 Sorteringsverk. Figur 1 beskriver sorteringsverkets olika delar 1. Stegmotordriven skiva 2. Fack för sorterade cylindrar 3. Avlänkningsarm manövrerad med dragmagnet 4. Magasin för osorterade cylindrar 5. Stegmotordriven mataranordning 6. Stegmotor 7. Drivsteg till stegmotorer 8. Lysdiod 9. Ramp med fotodioder 10. Styrplåt 11. Anslutning av in- och utgångar (TTL-nivå)
Automationsteknik Sortering av cylindrar 2(5) Matningsanordningens magasin fylls med osorterade cylindrar. Dessa matas med hjälp av stegmotorn (6) ut på den roterande skivan (1). Vid mätstationen styrs cylindrarna först till en bestämd radie på skivan med hjälp av styrplåten (10). Med lysdioden (8) och fotodiodrampen (9) kan sedan diametern och höjden på cylindrarna bestämmas. Mätresultatet blir avgörande för i vilket fack cylindrarna placeras. Avlänkningen av cylindrarna från skivan sker med armen (3), som går in över den roterande skivan då dragmagneten spänningssätts. Utifrån höjd och diameter på cylindrarna ska dessa sorteras i tre olika fack enligt: Fack A: Cylindrar med korrekt mått Fack B: Cylindrar som måste kasseras pga undermått (antingen höjd eller diameter) Fack C: Cylindrar som går att ombearbeta till korrekt mått För att lätt identifiera cylindrarna har dessa försetts med färgmärkning enligt nedanstående tabell där Ö anger övermått, N nominellt mått och U undermått. Diameter Höjd Färg Ö Ö Svart Ö N Röd Ö U Grön N Ö Gul N N Ofärgad N U Brun U Ö Blå U N Violett U U Vit Fotodiodrampen består av 3 st fotodioder placerade över varandra med 2 mm avstånd. Fotodioderna belyses med dioden (8) via en hålmask. Den understa dioden (OPT 1) används för att mäta diametern på cylindrarna medan den mellersta (OPT 2) och den översta (OPT 3) används för att mäta höjden. OPT 1 mörkläggs alltid då en cylinder passerar. Genom att mäta skivans vridningsvinkel (räkna antalet stegpulser till skivans drivmotor) under den tid OPT 1 är avskärmad kan cylindrar med olika diametrar skiljas åt. Data för sorteringsverket Matare: Stegmotorfrekvens: 0-150 Hz Matning: 320 steg/cylinder Skiva: Stegmotorfrekvens: 0-200 Hz Steg/varv: 48 Utväxling: 25:1 Ingångar: KARUSELL FRKV. Stegpuls till skiva KARUSELL RIKT. Rotationsriktning på skiva
Automationsteknik Sortering av cylindrar 3(5) MAT.VERK REL 1 REL 2 REL 3 Utgångar: OPT 1 OPT 2 OPT 3 Stegpuls till matarverk Avlänkningsarm fack A Avlänkningsarm fack B Avlänkningsarm fack C Belyst fotodiod ger nolla på utgången Program för sortering När man skriver kod i t.ex. C underlättar det att använda sig så mycket som möjligt av define. I detta fall är det lämpligt att namnge in- och utgångar enligt exempelvis följande: #define OPT1 RB0 #define OPT2 RB1 #define OPT3 RB2 #define REL1 RC0 #define REL2 RC1 #define REL3 RC2 #define LED RC3 #define SKIVA RC4 #define MATARE RC5 Generering av pulser till stegmotor För att få stegmotorerna att snurra måste man skicka pulser till drivstegen. Eftersom det handlar om ganska låg frekvens är det lämpligt att växla utgången till stegmotorn varje gång en avbrottsfunktion exekveras. Avbrottet ska då inträffa med dubbel frekvens jämfört med den önskade pulsfrekvensen. Sekvens för sorteringen Sorteringen av cylindrarna görs lämpligen med hjälp av någon form av tillståndsrealisering där varje tillstånd får styra en uppgift/funktion. Så länge ingen av fotodioderna är påverkade befinner man sig i ett väntetillstånd. När den undre fotodioden detekterar en cylinder nollställs räknaren som mäter diametern. Denna räknar antalet pulser som skickas till stegmotorn och ger alltså ett direkt mått på skivans vridningsvinkel. När man räknat upp till det antal pulser som innebär att cylindern befinner sig ungefär mittför givarna läses höjden av med hjälp av de två övre givarna. Samtidigt fortsätter pulsräkningen. När den nedre givaren detekterar att cylindern passerat stoppas pulsräknaren och dess värde ger diametern. Utifrån den mätta höjden och diametern fattas beslut om vilket fack cylindern ska till och rätt avlänkningsarm aktiveras.
Automationsteknik Sortering av cylindrar 4(5) Tillståndsmaskin i C Det finns olika sätt att implementera en tillståndsmaskin i C. Ett sätt är att använda sig av switchsatser. Man har då en switchsats som innehåller övergångsvillkor och alltså sköter övergången från ett tillstånd till ett annat. Dessutom har man en switchsats som definierar vad utsignalerna ska vara i respektive tillstånd. För att lättare kunna hålla reda på tillstånden är det lämpligt att definiera dessa med ett vettigt namn. Nedanstående kodavsnitt är bara avsett att illustrera hur en enkel tillståndsmaskin kan skrivas med hjälp av switchsatser. START_SW och STOP_SW startar respektive stoppar en motor. Att motorn snurrar kvitteras med hjälp av en varvtalsvakt. //----Definiera in och utgångar--------------------------------------------- #define START_SW RC0 #define STOPP_SW RC1 #define VARVTALSVAKT RC2 #define MOTOR RC3 //----Definiera tillstånden------------------------------------------------- #define STILLA 1 #define STARTA 2 #define SNURRAR 3 #define STOPPA 4 while(1) { //----Kod för utgångar------------------------------------------------------ switch (mystate) { case STILLA: MOTOR = 0; case STARTA: MOTOR = 1; case SNURRAR: MOTOR = 1; case STOPPA: MOTOR = 0; default: MOTOR = 0; //----Villkor för övergång mellan tillstånden------------------------------- switch (mystate) { case STILLA: if (START_SW==1) mystate = STARTA; case STARTA: if (VARVTALSVAKT==1) mystate = SNURRAR; case SNURRAR : if (STOP_SW==1) mystate = STOPPA; case STOPPA: if (VARVTALSVAKT==0) mystate = STILLA; default: mystate = STILLA; Uppgifter Rita en tillståndsgraf som löser sorteringsuppgiften. Välj processorns oscillatorfrekvens till 1 MHz genom att skriva OSCCON = 0x40; i början av mainfunktionen. Definiera RB0, RB1 samt RB2 som ingångar och RC0, RC1, RC2, RC3, RC4 samt RC5 som utgångar.
Automationsteknik Sortering av cylindrar 5(5) Initiera Timer0 för att generera ett avbrott med frekvensen 200 Hz. Detta kommer att ge en pulsfrekvens till skivans stegmotor på 100 Hz. Mataren fungerar inte alltid helt klanderfritt varför denna inledningsvis inte används. Cylindrarna matas på för hand istället. För att bestämma sorteringsvillkoren för de olika diametrarna måste antalet pulser för de olika diametrarna vara känt. Låt cylindrar av olika diameter passera givarna, räkna antalet pulser och skriv ut detta tal på displayen. För att diametermätningen ska bli korrekt är det viktigt att cylindrarna placeras intill styrplåten som är monterad på mataren. Implementera en tillståndsmaskin enligt den tidigare konstruerade tillståndsgrafen.