Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning Daniel Leonardsson dale0010@student.umu.se Kajsa Persson kape0038@student.umu.se I samarbete med Svensk Maskinprovning, SMP, har ett miniprojekt genomförts. Projektet bestod av att programmera två stegmotorer till en testrigg, i form av en motorsågsuppställning, som används vid test av skyddskläder. De färdigprogrammerade motorerna demonstrerades för SMP med gott resultat. Miniprojekt inom kursen Introduktion till Ingenjörsarbete, 7.5 hp Handledare: Markus Broström
Innehållsförteckning 1. Inledning... 1 2. Teori... 2 2.1 Tillvägagångssätt vid provning... 2 2.2 Önskvärda funktioner... 2 2.3 Begränsningar... 3 3. Genomförande & metod... 4 3.1. Programmering av stegmotor BM60... 4 3.1.1. Förflyttning i höjdled... 4 3.1.2. Maxhöjd, signal... 4 3.1.3. Hitta maxhöjd... 4 3.1.4. Läs position... 4 3.1.5 Hitta position... 5 3.2. Programmering av stegmotor BM28... 5 3.2.1. Kedjespänning... 5 3.2.2. Nollspänning... 5 3.2.3. Släpp kedja... 5 3.2.4. Hitta nollspänning... 6 3.3. Nödstopp... 6 3.4 Kontrollbordet... 6 3.4.1. Stegmotor BM60... 6 3.4.2. Stegmotor 28... 7 3.5 Brytare... 7 3.5.1. Brytare till stegmotor 60... 7 3.5.2. Brytare till stegmotor 28... 7 3.5.3. Nödbrytare... 7 4. Resultat... 7 5. Diskussion... 8 Referenser... 9
1. Inledning På Röbäck utanför Umeå ligger ett av Svensk Maskinprovnings, SMP, provningslaboratorier. Där genomförs bland annat motorprovningar, avgasanalyser, säkerhetsprovningar av motorsågar, röjsågar och skyddskläder. Vid säkerhetsprovningar av skyddskläder för motorsågsarbete används ett motorsågsblad som är kopplat till två stegmotorer, en som reglerar höjden på bladet och en som justerar kedjespänningen. Mycket av själva provningen har länge styrts manuellt. Målet med projektet var att programmera två nya motorer till en helt ny provanläggning, bild 1, där fokus ska ligga på säkerhet, automatisering och ergonomi. Detta för att spara tid, minska den mänskliga felfaktorn samt eventuella arbetsskador. Dessutom skulle ett tillhörande provisoriskt kontrollbord konstrueras. Dokumentation i form av manual samt kopplingsschema för testriggen var även det en del av uppgiften. Bild 1. Motorsågsuppställning med tillhörande stegmotorer, BM28 och BM60. 1
2. Teori Vid test av skyddskläder ämnade för motorsågshantering används en testrigg i huvudsak bestående av ett motorsågsblad och en benattrapp. Testet ska motsvara en motorsågsolycka då sågen tappas på benet. 2.1 Tillvägagångssätt vid provning Till att börja med monteras en provbit av skyddstextil på benet. Därefter spänns kedjan, motorsågen sänks till en höjd nära benet och startas. När rätt varvtal på kedjan nåtts släpps motorsågssvärdet varpå det träffar benet. Analys av skadorna provbiten och tiden det tog för kedjan att stanna görs. Är resultaten tillfredställande görs sedan hela proceduren om igen men denna gång med en riktig skyddsbyxa. 2.2 Önskvärda funktioner Den gamla testriggen var gammal och krävde mycket manuellt arbete. Detta ville man på SMP undvika när den nya riggen, skulle konstrueras. Med hjälp av två stegmotorer, bild 2, och ett kontrollbord, bild 3, skulle de ergonomiska och säkerhetsmässiga problemen lösas. Den första stegmotorn, BM60, justerar höjden på motorsågsbladet och den andra stegmotorn, BM28, justerar kedjespänningen. De båda stegmotorerna styrs med modulen Ezi-STEP Plus-R som programmeras med Ezi-MOTION Plus-R. De önskvärda funktionerna för de båda motorerna redovisas i listan nedan. FUNKTION BESKRIVNING PRIORITET MOTOR 60 Förflyttning i höjdled Så länge kontakt hålls nere förflyttas stegmotor BM60 i höjdled, positiv eller negativ (2 kontakter) 5 Läs position En viss position på stegmotor BM60 kan sparas genom att 3 trycka ner en kontakt på kontrollbordet Hitta position Men en kontakt på kontrollbordet hittar stegmotor BM60 3 tillbaka till den senast ihågkomna positionen Hitta maxhöjd Med en kontakt ska stegmotor BM60 automatiskt höjas till 5 maxhöjd Maxhöjd Signal Vid en bestämd maxhöjd bryts strömmen till stegmotor BM60 varpå motorn sedan sänks ca 5 mm. Funktionen aktiveras genom en kontakt på kontrollbordet. Efter motorn sänkts 5 mm går en digital signal som bekräftar att motorn är i körklart läge. 4 2 MOTOR 28 Kedjespänning Kedjespänningen ska kunna justeras med två kontakter 5 Släpp kedja Med en kontakt ska kedjan slackas till max 5 Nollspänning När rätt kedjespänning erhållits ska denna position kunna 4 memoreras med en kontakt. Hitta nollspänning Med en kontakt på kontrollbordet hittar stegmotor BM28 tillbaka till senast sparade kedjespänning. 4 ÖVRIGT Nödstopp Nödstoppskontakt som bryter strömmen till båda motorerna 5 2
Bild 2. De båda stegmotorerna, BM28 och BM60. Bild 3. Provisoriskt kontrollbord. 2.3 Begränsningar Projektet avsåg att behandla mjukvaran och effektivisera motorerna, inte bygga färdigt hela motorsågsuppställningen. Testkörning med SMP närvarande skulle enligt överenskommelse ske ca fyra veckor efter projektets start. 3
3. Genomförande & metod Till att börja med krävdes en förståelse för hur produkten mad alla dess komponenter, funktioner och begränsningar. Detta uppnåddes genom att läsa manualerna[1][2][3][4] samt experimentera och leka med de olika funktionerna i programvaran. I början av projektet hålls även en kontakt med återförsäljaren av stegmotorerna[5] för att få en djupare fårståelse för funktionen. När en förståelse för produkten hade tillgodogjorts började projektet med att fokusera på att skapa de, enligt kravspecifikationen, önskvärda funktionerna för testriggen. Projektet fokuserades på att genomföra de funktioner med högst prioritet först. Arbetet var uppbyggt i två delar; elektronik och programmering. Stegmotorerna styrdes med hjälp av en modul som, när kretsen slöts, fick en signal. För att få kretsen att slutas användes ett kontrollbord med olika knappar. Dessa signaler modulen fick användes för att programmera hur motorn skulle uppträda vid olika delar. 3.1. Programmering av stegmotor BM60 Eftersom stegmotor BM60 hade flest och mest avancerade funktioner fokuserades arbetet i första hand på denna. 3.1.1. Förflyttning i höjdled Att programmera motorn så den förflyttades i höjdled var enkelt att utföra och testa då detta bara krävde att man kopplade en knapp till kontrollbordet som skickade en signal till programmet. Programmet har en inbyggd funktion som heter Jog + och Jog för att definiera att motorn ska förflytta sig i höjdled. Hastigheten motorn skulle köras i kunde även den ställas in. 3.1.2. Maxhöjd, signal För att motorn skulle utföra flertalet saker i följd eller att den skulle gå till en viss position användes programmets inbyggda funktion position table. När brytaren slogs till skulle motorn åka ned några centimeter. Eftersom motorn vid uppstart antar att position noll är där den för tillfället är, måste en nollpunkt kunna definieras varje gång motorn startas. Ett 0-läge verkade rimligt när uppställningen var som högst upp, det vill säga när brytaren slår till. Position table börjar köras då funktionen JPT Start används. Vid användande av bara den funktionen börjar den automatiskt högst upp, det vill säga på position 0. 3.1.3. Hitta maxhöjd För att kunna hitta tillbaka till maxhöjd kunde funktionen JP table köras. Denna körs i en multipel varför den börjar på position 16 i position table. Den är definierad till att hitta tillbaka till position 10000. Detta är positionen som motorn har då tryckluftsmotorn kan köras in utan att den hindras av någonting. Det vill säga om först kretsen till JP table sluts och sedan JPT Start börjar den istället på position 16 istället för på position 0. 3.1.4. Läs position Position table kunde användas till denna funktion. Men då slutanvändaren ville ha så få knappar som möjligt valdes att inte lägga så stor vikt vid den. Det går att läsa en ny position istället för maxhöjden genom att köra funktionen JPT Start, det vill säga samma funktion som maxhöjd, signal har. Nackdelen med detta blir då istället att en ny nollpunkt definieras samt att motorn åker ned en bit. 4
3.1.5 Hitta position När man har läst in en ny position med funktionen läs position går det att hitta tillbaka till den på samma sätt som Hitta maxhöjd 3.2. Programmering av stegmotor BM28 Programmering av stegmotor BM28 gjordes efter BM60 som framgår av ovan. En annan anledning till att den inte börjades med var att den som följde med testriggen inte fungerade som den skulle. Därför var en ny tvungen att beställas från återförsäljaren. 3.2.1. Kedjespänning För att sköta kedjespänningen gjordes på samma sätt som för BM60. Funktionerna Jog + och Jog hanterades med hjälp av kontrollbordet via en elektrisk signal. 3.2.2. Nollspänning För att definiera en nollpunkt användes position table, bild 4, och dess funktion JPT Start för att den skulle börja på nummer noll i positionstabellen. Det den gör är egentligen bara att nollställa punkten att den aktuella positionen är noll. Bild 4. Position table. En funktion i programmet Ezi-MOTION Plus-R. 3.2.3. Släpp kedja För att slippa behöva definiera en nollpunkt som var fallet med motor BM60 användes här istället en annan teknik. Eftersom brytaren inte skulle göra någon speciell funktion kunde denna användas för att definiera en gräns för hur långt motorn maximalt kunde gå. Därför kunde position table användas till att motorn skulle gå så långt den bara kunde åt ett håll. När den då slog till brytaren slutade motorn att köras. Funktionen som användes här var JP table som började på position 16. 5
3.2.4. Hitta nollspänning För att hitta tillbaka till den positionen man hade sparat användes här en annan del i position table. När man tryckte in en knapp JP Table samt JPT Start började den på position 8, vilken är definierad att snabbt gå tillbaka till position 0 oavsett vilken position den befinner sig på för tillfället. 3.3. Nödstopp En vanlig nödstoppsknapp är kopplad på elnätet och skall bryta all ström. Eftersom projektet handlade om mjukvaran var detta en nödstoppsknapp till mjukvaran enbart. En vanlig nödstoppsknapp går det alltid ström igenom så länge knappen inte är intryckt. Detta skiljer sig därför lite med de andra funktionerna eftersom modulerna till motorerna skickar en signal när man sluter kretsen. Detta gick dock att ställa in i programmet att den istället för att vara low active, det vill säga styra modulen när kretsen slöts, istället vara high active för att reagera på när kretsen bryts. 3.4 Kontrollbordet Kotrollbordet är uppbyggt av 9 stycken knappar och ett antal brytare. Denna instruktion är skriven så att funktionen presenteras i fet stil och texten nedanför beskriver lite mer funktionen, hur det är uppbyggt och hur den kan justeras. 3.4.1. Stegmotor BM60 Förflytta upp i höjdled när en knapp hålls intryckt förflyttas motorn uppåt Förflytta ned i höjdled när en knapp hålls intryckt förflyttas motorn nedåt Denna funktion kan ändras i avseende vad gäller hastighet. Vid en för tung belastning, det vill säga om den går för snabbt eller att den går för tungt, kommer alarmet att gå. Därför är det av vikt att denna justeras så att motorn förflyttas i lagom snabb hastighet utan att larmet går. Position start Vid knapptryckning sparas positionen samt förflyttar motorn ned några centimeter Denna funktion är identisk med den som brytaren gör. I programmet finns en funktion som heter JPT Start som startar positionstabellen där man kan definiera hur motorn ska röra sig om man inte trycker in en knapp. Har man inte definierat vart den ska börja börjar den längst upp i positionstabellen. I detta fall är det definierat att den först ska nollställa positionen så att den har position 0 i läget längst upp. Därefter förflyttas motorn ned några centimeter. Återgå till maxhöjd Vid intryckning av denna knapp först samt Position start återgår den till ursprungsläge Denna knapp definierar vart i positionstabellen den skall börja någonstans. Motorn verkar inte gå att starta på en viss position som inte är i början av positionstabellen. Så för att kunna gå till en viss position måste denna knapp tryckas in och sedan Position start. Istället för att börja högst upp,läge 0, i positionstabellen går den då längre ned och börjar på läge 16. 6
3.4.2. Stegmotor 28 Spänn kedja/slacka kedja Denna funktion kan ändras i avseende vad gäller hastighet. Vid en för tung belastning, det vill säga om den går för snabbt eller att den går för tungt, kommer alarmet att gå. Därför är det av vikt att denna justeras så att motorn förflyttas i lagom snabb hastighet utan att larmet går Position start Tryck på knappen för att nollställa Även denna motor har en knapp för JPT Start vilket startar positionstabellen på läge 0. Det enda den här knappen gör är att spara positionen när positionstabellen startas. Slacka tryck på knappen och sedan position start Denna knapp definierar läge 16 i positionstabellen. För att slippa ställa in exakt vart positionen är varje gång motorn startas är denna inställd på att slacka kedjan nästan så långt det går. Det som stoppar den är istället brytaren som skickar en annan signal att här är ändläget. Återgå - tryck på knappen och sedan position start Denna är en annan plats i positionstabellen. Efter man har tryckt på knappen position start kommer den att komma ihåg vart läge 0 är. När man har slackat kedjan max trycker man in denna knapp och sedan Position Start. Den kör då läge 8 i positionstabellen vilket gör att den återgår till den positionen man har sparat. 3.5 Brytare 3.5.1. Brytare till stegmotor 60 Denna brytare nollställer positionen och kör motorn ned några centimeter och har samma funktion som position start för BM60. Man skulle kunna göra på liknande sätt som för motor BM28, det vill säga att brytaren definierar en ändpunkt. Dock tappar man då funktionen att motorn åker ned en bit efter att den träffar brytaren. Fördelen man får ut istället är att man kan återgå till en position man har sparat. 3.5.2. Brytare till stegmotor 28 Denna brytare har en hårdvarulimit inkopplad för att den inte skall kunna slacka kedjan mer. Därigenom slipper man ställa in en position på motorn. 3.5.3. Nödbrytare Denna är en mjukvarustoppare, vilket skickar att motorn ska sluta köra utan att sakta ned något innan. 4. Resultat På utsatt tid blev programmeringen av stegmotorerna samt tillhörande kontrollbord klart. Hans[6] och Tage från SMP bjöds in till universitetet för demonstration av testriggen. Då de tyckte att alla, i kravspecifikationen, högt prioriterade funktioner fungerade som de skulle kunde projektet i stort förklaras utfört. Presentation av projektet gjordes den 16/5 inför klasskamrater och kursansvarige. 7
5. Diskussion Vid genomförandet av projektet var mycket av arbetet i början fokuserat på att lära sig vilka funktioner och begränsningar det medföljande programmet hade. Förarbetet hade även att göra med att lära sig hur allting skulle kopplas. Vi hade dock till en början en del problem att hitta verktyg för att koppla ihop allting. Bland annat var det svårt att få tag på en sådan trivial sak som en lödkolv. Genom hela projektet hade vi som mål med att följa kravspecifikationen med de funktioner som var definierade. Vad som var ännu viktigare för gruppen var dock att förstå vad testriggen i slutändan skulle användas till. Detta gjorde att vi kunde fokusera på det som var viktigt för själva funktionen samt att skapa en så användarvänlig funktion som möjligt. Att bara förflytta motorerna i höjdled respektive sidled (BM28) var lätt att ordna och man kunde dessutom testa detta i det medföljande programmet. Begränsningar i mjukvaran gjorde dock att inget villkorat kunde göras med stegmotorerna. D.v.s. om motorn fick en viss signal skulle den göra flera saker samtidigt eller i följd. Detta innebar svårigheter vid den högt prioriterade funktionen maxhöjd. På grund av detta fick avkall göras på de lägre prioriterade funktionerna läs position samt hitta position. 6. Slutsatser Trots knapphändig förkunskap samt liten projektgrupp (2 personer) har arbetet med projektet flytet på bra och motorsågsuppställningen blev färdig i tid. Vi är båda nöjda med vår insats med det gläder oss ännu mer att Hans och Tage på SMP är nöjd med resultatet. 8
Referenser Manualer [1] Ezi-SERVO Plus-R Position Table, FASTECH [2] Ezi-SERVO Plus-R Communication Function, FASTECH [3] Ezi-SERVO Plus-R Text, FASTECH [4] Ezi-SERVO Plus-R, User Program(GUI) Function, FASTECH Personlig kommunikation [5] Stefan Swelenius, SIGBI, 042-65400 [6] Hans Arvidsson, Svensk Maskinprovning, Verkstadsgatan 17, 904 32 Umeå, 010-516 64 72 9