• No results found

Robotstudio för bearbetning

N/A
N/A
Protected

Academic year: 2021

Share "Robotstudio för bearbetning"

Copied!
41
0
0

Loading.... (view fulltext now)

Full text

(1)

Robotstudio för bearbetning

Robotstudio för bearbetning

Robotstudio för bearbetning

Robotstudio för bearbetning

Mikael Burlin

Monteringsteknik

Examensarbete

Institutionen för ekonomisk och industriell utveckling

LIU-IEI-TEK-G--09/00144--SE

(2)
(3)

Sammanfattning

Projektet ProFlexA syftar till att automatisera gjutgodsrensning av stålgjutgods vid låga volymer genom att använda ny adaptiv teknik såsom flexibla fixturer och gripdon samt kraftstyrning. Projektet bedrivs av Linköpings Tekniska Högskola och Lunds Tekniska Högskola med stöd av tre gjuterier i Mellansverige samt systemintegratörer och leverantörer. Automatisering av gjutgodsresning har länge varit föremål för både forskning och kommersiellt intresse. Det finns idag fungerande lösningar främst riktat mot aluminiumgods och högre produktvolymer.

Syftet med examensarbetet var att undersöka huruvida Robotstudio, och mer specifikt dess tilläggsmodul Machining, var lämpligt för användning vid gjutgodsrensing. För att detta skall vara möjligt på hårdare material krävs kraftstyrning, vilket finns som tillval i den tidigare nämnda tilläggsmodulen.

För att ha möjlighet att testa machiningmodulen och få en uppfattning om vad Robotstudio är kapabelt till genomfördes först en självstudie av programmet. Som delmål för instuderingen genererades en visuell robotcell enligt ett av ProFlexA:s tidigare koncept för gjutgodsrensning. Denna process innefattade både den rent geometrihanterande programdelen och den robotprogrammerande, vilken är den som senare kom att ha störst betydelse under testerna. Därefter kopplades Robotstudio till befintligt robotstyrsystem och de fysiska testerna planerades och förbereddes. Efter detta utfördes testerna för att undersöka machiningmodulens användarvänlighet och exakthet.

Slutsatser

• Robotstudio är lätthanterligt för en ny användare med tidigare erfarenhet inom robotstyrning och RAPID-programmering.

• Generering av banor sker generellt med stor tidsvinst i machiningmodulen.

• Vidare tester med inriktning mot kraftstyrning borde utföras då möjlighet till detta finns.

(4)
(5)

Abstract

The project ProFlexA aims towards automating the cleaning of die-casted steel goods at low volumes by using new adaptive technology such as flexible fixtures and grippers and force feedback. The project is run by Linköpings Tekniska Högskola and Lunds Tekniska Högskola, with support from three foundries from the middle of Sweden together with system integrators and suppliers.

Automation of the cleaning of die-casted goods has been a subject of both scientific and commersial interest for a long time. There are working solutions today, but these are mostly aimed towards aluminum goods and larger volumes.

The purpose of this thesis was to examine if Robotstudio, and more specifically its add-in module Machining, was suitable for usage in the cleaning of die-cated goods. To make this possible when using harder materials force feedback is required, which is possible to use in this earlier mentioned module.

To be able to test the machining module and get an understanding of what Robotstudio is capable of, a self-study of the program was conducted. As a partial goal of the self-study a visual robot cell was generated according to one of ProFlexA:s earlier concepts for cleaning of die-casted goods. This process involved both the part of Robotstudio that handles the geometry and the part that handles the robot programming, which is the one that was going to be the most important during the tests later on. After this, Robotstudio was connected to the existing robot system and the physical tests were planned and prepared. The tests were then conducted to examine the user friendliness and exactness of the machining module.

Conclusion

• Robotstudio is easy to use for a new user with previous experience in robot control and RAPID programming.

• Generating robot paths in the machining module usually takes less time. • Further tests aimed at force feedback should be conducted when possible.

(6)
(7)

Innehållsförteckning

1 Inledning ... 9 1.1 Syfte ... 9 1.2 Avgränsningar ... 9 1.3 Metod ... 9 2 Teori... 11 2.1 Industrirobotar ... 11 2.1.1 Användningsområden... 12 2.1.2 Kraftstyrning ... 12 2.2 Robotprogrammering ... 13 2.2.1 Onlineprogrammering ... 13 2.2.2 Offlineprogrammering ... 13 2.2.3 RAPID ... 14

2.2.4 Eventuella problem för användaren ... 15

3 Genomförande och resultat ... 17

3.1 Instudering av Robotstudio 5.12 ... 17

3.1.1 Skapandet av konceptcellen ... 18

3.1.2 Grundläggande beskrivning av funktioner ... 20

3.1.3 Machiningguiden... 25

4 Test av Machiningmodulen ... 27

4.1 Verktyget ... 27

4.1.1 Funktion och geometri ... 28

4.1.2 Resultat... 28 4.2 Testerna ... 29 4.2.1 Test 1 ... 30 4.2.2 Test 2 ... 30 4.2.3 Test 3 ... 30 4.2.4 Test 4 ... 31

4.3 Informationsutbyte mellan plattformarna... 31

5 Diskussion och analys... 33

6 Slutsatser ... 35

Figurtabell... 37

Referenser ... 39

(8)
(9)

1 Inledning

Projektet ProFlexA syftar till att automatisera gjutgodsrensning av stålgjutgods vid låga volymer genom att använda ny adaptiv teknik såsom flexibla fixturer och gripdon samt kraftstyrning. Projektet bedrivs av Linköpings Tekniska Högskola och Lunds Tekniska Högskola med stöd av tre gjuterier i Mellansverige samt systemintegratörer och leverantörer. Exempel på de företag som är involverade i projektet är SVIA, SPECMA och ABB.

Rensningen innebär att den gjutna produkten rensas från det skägg som bildas efter gjutprocessen samt att ingöt kapas. Detta görs idag manuellt, vilket innebär att produkten även inspekteras för att hitta andra fel såsom blåsor. Rensning av gjutgods är ett tungt arbete och medför dålig arbetsmiljö.

Automatisering av gjutgodsresning har länge varit föremål för både forskning och kommersiellt intresse. Det finns idag fungerande lösningar främst riktade mot aluminiumgods och högre produktionsvolymer.

Avdelningen för Monteringsteknik har tidigare arbetat med simuleringsprogrammet DELMIA för att generera de robotcellskoncept som ingått i projektet, men en önskan finns att även börja använda ABB:s programvara Robotstudio. Anledningen till detta är dels att de robotar som avdelningen förfogar över uteslutande är tillverkade av ABB, samt att detta företag även ingår som samarbetspartner i ProFlexA.

1.1 Syfte

Syftet med detta examensarbete är att göra en kartläggning av Robotstudio och dess tilläggsmodul Machining för bearbetning samt att koppla Robotstudio till befintlig robot och robotstyrsystem.

1.2 Avgränsningar

De avgränsningar som existerar för detta examensarbete är bland annat att de robotar som står till förfogande endast är av den typ som företaget ABB tillverkar, och som en konsekvens av detta så kommer endast det programspråk som används för dessa, RAPID, att behandlas i arbetet. En annan konsekvens av att det uteslutande är robotar tillverkade av ABB som används i arbetet är att Robotstudio är det enda robotsimuleringsprogrammet som studeras grundligt. Även en avsaknad av Force Feedback-system till den använda roboten avgränsar arbetet, vilket medför att detta område endast studeras teoretiskt.

1.3 Metod

För att ha möjlighet att testa machiningmodulen och få en uppfattning om vad Robotstudio är kapabelt till genomförs först en självstudie av programmet. Som delmål för instuderingen genereras en visuell robotcell enligt ett av ProFlexA:s tidigare koncept för gjutgodsrensning. Denna process innefattar både den rent geometrihanterande programdelen och den robotprogrammerande, vilket är den som senare kommer att ha störst betydelse under testerna. Därefter kopplas Robotstudio till befintligt robotstyrsystem och fysiska tester planeras och förbereds. Efter detta utförs testerna för att undersöka machiningmodulens användarvänlighet och exakthet.

(10)
(11)

2 Teori

I detta kapitel beskrivs grundläggande fakta som läsaren kan behöva för att på bästa sätt kunna ta till sig detta examensarbete.

2.1 Industrirobotar

De aktuella industrirobottyperna i detta exjobb är samtliga av seriell uppbyggnad, vilket innebär att robotens axlar är kopplade till varandra i serie, med roterande eller translaterande länkar mellan dessa. Ett exempel på en seriellt uppbyggd robottyp visas i figur 1.

En robot innehar ett antal frihetsgrader, beroende på dess axelantal. De robotar som planerats att användas i denna tänkta applikation använder sig av sex frihetsgrader. Detta behövs för att både kunna positionera ett arbetsobjekt var som helst inom robotens tredimensionella arbetsområde samt för att fritt kunna orientera objektet. Ett exempel på orientering kan ses i figur 2, där den förenklade robotmodellen kan ses ha ett separat koordinatsystem vid gripdonet. Detta möjliggör att roboten kan rotera sin handled för att ge det hållna objektet en önskad orientering.

Ett viktigt begrepp inom robotteknik är robotens ”Tool center point”, TCP, vilket innebär den tänkta punkt där roboten angriper arbetsobjektet. Hos en robot utan tillkopplat verktyg befinner sig denna punkt vid handleden, på den position där ett eventuellt verktyg skall kopplas. TCP hos en verktygsbärande robot är lokaliserad vid verktygets arbetspunkt.

En industrirobot består, förutom av manipulatorn själv, även av ett så kallat styrskåp, vilket kan ses i figur 3 (2). Detta skåp innehåller komponenter nödvändiga för robotens styrning och

strömförsörjning. Det är också till detta skåp som robotens ”Teach Pendant” (1) är ansluten, vilken ger användaren en möjlighet att interagera med roboten via exempelvis knappar och styrspak.

Den industrirobot som huvudsakligen användes i detta examensarbete var en IRB 1400. Denna sex-axliga robot väger 255 kg, har en lyftkapacitet på fem kg och en räckvidd på omkring en och en halv meter. [1]

Figur 1: IRB 140(0) [1]

Figur 2: Orientering [2]

(12)

2.1.1 Användningsområden

De vanligaste skälen att införa robotar i tillverkningen är där det är viktigt med hög repeternoggrannheteller där flaskhalsar identifierats i produktionen. En robot har väldigt hög sådan noggrannhet och kan arbeta kontinuerligt utan pauser om matningssystemet anpassas för detta, vilket innebär att industriroboten är mycket lämplig i dessa sammanhang.

Industrirobotar används även delvis för arbetsuppgifter som inte lämpar sig för mänsklig arbetskraft. Det kan exempelvis röra sig om arbeten där arbetsmiljön är skadlig eller arbetsuppgifterna är så repetitiva eller tunga att de anses olämpliga för människor.

2.1.2 Kraftstyrning

Vid godsavskiljande bearbetning av icke identiska bearbetningsobjekt med stora ojämnheter längs bearbetningsytan uppkommer, i kombination med industrirobotens styvhet, höga momentankrafter. Dessa krafter åstadkommer egenskador och skador på bearbetningsobjektet, och har lett till att industrin idag använder sig av så kallad kraftstyrning vid dessa bearbetningsoperationer. Detta avhjälps vanligtvis med hjälp av en av de två följande lösningarna. [4]

Den första, som kan ses i figur 4, är ett system där kraft- och momentsensorer fästs vid robotens handled eller vid bearbetningsobjektets fixtur. Detta för att på så sätt få information om de krafter som uppkommer, vilket innebär att industrirobotens styrsystem får möjlighet att kompensera för dessa. Ett problem med denna lösning uppkommer om bearbetningsmaterialet har låg eftergivlighet och ojämnheterna är stora, då det krävs omedelbart svar och motsvarande acceleration från styrsystemet och axelmotorerna, vilket inte är möjligt med dagens teknik.

Den andra lösningen visas i figur 5, och innebär att en eftergivlighet byggs in i systemet via en extra translationsled monterad antingen vid robotens handled eller vid bearbetningsobjektets fixtur. Denna translationsled består vanligtvis av en pneumatisk cylinder, då detta visat sig vara den bästa lösningen. System med denna lösningsvariant kan ha antingen öppna eller slutna reglersystem.

Figur 5: Lösning 2 [4] Figur 4: Lösning 1 [4]

(13)

2.2 Robotprogrammering

Något att notera i ämnet robotprogrammering är att samtliga tillverkare av industrirobotar använder sig av olika programspråk, vilket kan ställa till kompatibilitetsproblem för företag och användare som hanterar robotar från olika tillverkare.

Det språk som ABB använder sig av, och som därför även är det enda som behandlats i detta exjobb, är RAPID. Utöver detta så existerar ett flertal andra robotprogrammeringsspråk, som exempelvis KRL, TPE och INFORM II.

2.2.1 Onlineprogrammering

Onlineprogrammering är ett begrepp som innebär att robotprogrammeringen sker direkt mot industriroboten via ”Teach Pendant” eller motsvarande kontrolldon.

Den traditionella, och vanligaste, metoden att programmera industrirobotar är den så kallade Teach-in-programmeringen. Användaren positionerar då roboten vid varje önskad punkt i robotprogrammet, lagrar denna position och bestämmer sedan med vilken hastighet roboten ska förflytta sig dit, samt ett antal övriga parametrar. Detta kräver dock att roboten tas ur drift under den tid programmeringen utförs, vilket kan innebära produktionsbortfall under programmeringstiden.

2.2.2 Offlineprogrammering

En nyare metod för att programmera industrirobotar är offlineprogrammering, vilket utförs med hjälp av en dator med särskild programvara installerad. Oftast är detta program en 3D-simulering av roboten och dess arbetsområde samt närmiljö, och därifrån kan man utföra en liknande process som i teach-in-programmeringen, men med den väsentliga skillnaden att den verkliga roboten kan vara i produktion under tiden. En robotkod genereras sedan av programmet, och kan föras över till roboten.

Exempel på övriga programvaror för offlineprogrammering är, förutom Robotstudio, DELMIA och MotoSim.

Ett problem som uppkommer med denna metod är att medan en relativt outbildad användare kan programmera en robot med hjälp av Teach-in, så krävs det mer utbildning av den användare som använder sig av offlineprogrammeringen, då denne även måste behärska mjukvaran.

Det är även möjligt att själv, manuellt, skriva koden i textformat för att sedan överföra denna till roboten som då endast måste instrueras om var kodens punkter befinner sig i rummet. Detta är en äldre metod, som endast kräver att användaren är införstådd med robotprogrammeringsspråket men som samtidigt kräver att roboten tas ur produktionsdrift under inprogrammeringen av punkterna.

(14)

2.2.3 RAPID

Här följer en kortare förklaring av RAPID-kodens uppbyggnad och funktion, vilken visas i figur 6.

Detta exempel är genererat i Robotstudio, och är ett exempel på RAPID-kod skapat för det senaste styrsystemet, IRC 5, och kan skilja sig delvis från kod genererad för föregående styrsystemsgenerationer.

I programmets övre del beskrivs de programmerade robotpunkterna, ”targets”, vilka är definierade med hjälp av en matris innehållande position i rummet, orientering samt robotens axelkonfiguration i denna punkt. Robotstudio beskriver orienteringen genom att skriva om ett targets koordindatsystems tre vektorer till en mer kompakt form kallad quaternion.

Därefter ses de definierade robotrörelserna, vilka innehåller ett tidigare beskrivet target, samt med vilken hastighet roboten skall förflytta sig dit, och även vilken zondata, verktyg och arbetsobjekt som används. Ett targets zondata beskriver bland annat hur nära roboten måste befinna sig detta target innan den kan fortsätta till nästkommande. När en fullständig rörelse är önskad används zondatan ”fine”.

Det finns tre grundtyper av robotrörelser, där de vanligaste är MoveL och MoveJ. MoveL förflyttar robotens TCP i en rak linje till nästa target och används oftast för rörelser där hög noggrannhet är viktig och robotens position måste vara bestämd längs hela rörelsen. MoveJ används vanligtvis vid rena förflyttningar, och innebär en rörelse utan krav på linjäritet då robotens axlar rör sig oberoende av varandra. En MoveJ-instruktion innebär även att axelrörelsernas hastighet anpassas så att samtliga axlar avslutar sina rörelser vid samma tidpunkt. Den tredje typen av robotrörelser är MoveC, vilken används för att förflytta robotens TCP cirkulärt. För att genomföra en MoveC-instruktion krävs två targets, ett för en punkt på cirkelbågen, och ett för bågens slutpunkt.

Ett flertal robotrörelser kombineras sedan till en robotbana, så kallad ”path”, vilken även kan innehålla ändringar av signaler på in- och utgångar samt enklare logiska uttryck, som exempelvis loopar och räknare.

(15)

2.2.4 Eventuella problem för användaren

En brist i robotens egen mjukvara som en användare måste ta hänsyn till vid robotprogrammering är så kallade singulära punkter. Dessa uppstår oftast då flera axlar befinner sig positionerade parallellt med varandra och ger upphov till ett tillstånd där matematiken som används för att kontrollera roboten inte kan beskriva dess tillstånd. Detta kommer att generera felaktigheter i robotens bana, vilken då inte kan köras. Användaren kan använda sig av särskilda robotkommandon för att kringgå detta problem, om de robotbanor som genererade de singulära punkterna inte kan ändras.

Ett annat problem, som förekommer i seriella industrirobotar med flertalet roterande axlar, är att det i många robotlägen förekommer ett flertal lösningar på hur robotens axlar kan befinna sig. Ett exempel av denna typ kan ses i figur 7, där roboten kan uppnå samma position samt orientering via två olika axelkonfigurationer. Användaren kan själv bestämma vilken konfiguration roboten skall använda sig av. I koden i figur 6 visas hur konfigurationen bestäms i RAPID.

Figur 7: Exempel på olika axelkonfigurationer för att nå samma punkt och orientering [3]

(16)
(17)

3 Genomförande och resultat

Här följer examensarbetets genomförande och de resultat som framkommit.

3.1 Instudering av Robotstudio 5.12

Det program som använts för Offlineprogrammeringen i detta exjobb är ABB:s egentillverkade Robotstudio, version 5.12. Detta program ger användaren möjlighet att direktimportera 3D-geometri från flertalet av de vanligaste CAD-programmen, vilket kompenserar för programmets egna bristfälliga möjligheter att skapa mer avancerad geometri. Robotstudio 5 är det simuleringsprogram som används för ABB:s modernaste robotstyrsystem, IRC 5, och är inte bakåtkompatibelt.

Examensarbetet inleddes med en självstudie av Robotstudio 5.12. Denna utfördes för att studera vilka möjligheter programmet har att generera robotstationer och robotbanor för bearbetning av de aktuella gjutna detaljerna, men även delvis för att se vilka möjligheter en oerfaren användare har att hantera programmet.

Robotstudio använder sig av ett virtuellt styrsystem, så kallad ”Virtual Controller”, som har samma egenskaper som ett fysiskt robotstyrsystem. Informationsflödet mellan de olika systemen kan ses i figur 8. Denna lösning innebär att användaren har möjlighet att testa sin robotcell på samma sätt som hade varit möjligt vid en onlinesituation, med motsvarande felsignaler och karaktäristik som då uppkommit. Rapidprogrammeringen sker av Robotstudio i samband med att varje ny punkt, bana eller händelse definieras i robotprogrammet, och förs över till det virtuella robotstyrsystemet vid synkronisering med detta. Det är även möjligt att överföra tidigare skapad kod från det fysiska styrsystemet till Robotstudio, för vidare påbyggnad eller modifiering av denna.

(18)

3.1.1 Skapandet av konceptcellen

I figur 9 ses den konceptcell som skulle skapas i Robotstudio. Den är tidigare framtagen på avdelningen för monteringsteknik, och skall användas för bearbetning av tänder för grävskopor. Den större delen av geometrin var därför redan skapad i ett annat program, och importeringen till Robotstudio var mycket enkel. Det skall dock noteras att alla funktioner kopplade till geometrin ej kan importeras på samma sätt. Detta innebär att exempelvis mekanismer, det vill säga rörliga komponenter avsedda för bland annat robotverktyg, måste importeras som rena 3D-kroppar, för att sedan skapas på nytt som mekanismer i Robotstudio. Detta sker väldigt intuitivt och snabbt med programmets egna verktyg för mekanismer. En nackdel är dock att det finns en begränsning för hur komplexa mekanismer som kan skapas, då ett objekt endast kan knytas till rörelsen hos en enda axel.

Metoden för att skapa en robotcell i Robotstudio innebär oftast att användaren inleder arbetet med att välja vilken robottyp cellen ska använda sig av. Robotstudio infogar därefter den valda roboten och startar dess virtuella styrsystem. I nästa steg importerar eller skapar användaren den geometri som cellen ska innehålla, och placerar denna på lämpliga positioner i robotens närhet. Ofta innebär skapandet av en ny cell även ett behov av ett

eller flera nya verktyg. Dessa skapas genom att användaren ger en geometri särskilda egenskaper, verktygsdata, såsom massa, tyngdpunkt, var den ska kopplas till robotens TCP samt var dess kontaktpunkt befinner sig. Denna kontaktpunkt blir vid anslutning till robothandleden robotens nya TCP. Ett verktyg kan även skapas som en mekanism, det vill säga ett objekt med minst en rörlig led, och detta är vanligt vid exempelvis gripdon. Mekanismer är även användbara när användaren har behov av att skapa andra rörliga objekt. När inget verktyg används är verktygsdatan ”tool0”

aktivt, vilket innebär att den gällande TCP:n är robotens egen. I figur 10 ses ett av de verktyg som användes i konceptcellen samt dess TCP, vilken kan ses i bilden nedre vänstra hörn i form av en ”frame”, som är en användarbestämd punkt med orientering. ”Frames” kan även användas för att enkelt ompositionera alternativt omorientera användarkoordinatsystemet när så behövs. Verktyg sparas med fördel som ett ”library”, vilket innebär att samtliga användare sedan kan använda sig av samma verktyg genom att infoga dessa direkt i en station.

(19)

När all geometri är skapad och utplacerad skapar användaren ett så kallat arbetsobjekt, som programmet använder för att gruppera de targets som användaren därefter definierar. Targets kan skapas genom att använda sig av koordinater, men även genom att användaren flyttar roboten till den önskade positionen och därefter lagrar denna.

En stor fördel med att Robotstudio använder sig av arbetsobjekt är att när ett arbetsobjekt ompositioneras eller omorienteras så utförs motsvarande operation på samtliga targets och banor. Detta är till stor hjälp då exempelvis ett arbetsstycke i en robotcell måste flyttas till en annan position, men operationerna som skall utföras på denna förblir oförändrade.

Därefter skapas robotbanor utifrån de inprogrammerade punkterna och användaren kan definiera övriga händelser som är planerade att ingå i processen. Dessa händelser kan exempelvis inkludera öppning och stängning av gripdon, utsignaler som startar rörelser hos externa mekanismer samt väntetider. Figur 11 visar en del av en av konceptcellens robotbanor, med tillhörande targets. När programmet är komplett så överför användaren detta till robotcellens virtuella styrsystem för att på så sätt få möjligheten att simulera processen i Robotstudio. Därefter sänds programmet till den anslutna fysiska robotens styrsystem för testning och körning.

Figur 11: Exempel på robotbana i Robotstudio

(20)

3.1.2 Grundläggande beskrivning av funktioner

Här följer en kort genomgång av Robotstudios menysystem och funktioner i punktform. I figur 12 visas det

användaren ser efter att ha valt robot och startat en ny station.

Vid (1) ses ett antal flikar, vilka representerar en uppdelning av Robotstudios funktioner i mindre delar, för att göra det mer lätthanterligt för användaren. Detta upplägg gör det även mer överskådligt för användaren att se vilka funktioner han har till sitt förfogande vid varje operation.

Vid (2) finns den aktuella flikens alla funktioner samlade. Dessa skiftar

beroende på vilken flik användaren valt att göra aktuell. De olika flikarna beskrivs i närmare detalj på de efterföljande sidorna.

I fönstret vid (3) visas den del av arbetsstationens innehåll som är av betydelse för respektive vald fliks funktion, och detta i trädstruktur. Detta innebär att innehållet i detta fönster ändras beroende på aktuell flik.

Vid (4) visas en grafisk visualisering av den aktuella stationen. Likt andra visualiserings- och solidmoduleringsprogram så går denna miljö att rotera och positionera efter användarens behov, och det är även möjligt att bland annat markera objekt.

I meddelandefönstret vid (5) visas eventuella fel och andra händelser som användaren kan behöva uppmärksamma.

(21)

I fliken i figur 13 är de flesta funktioner för uppstartande av en ny station samlade, och även ett flertal av de som användaren behöver för att skapa robotpunkter och banor.

Vid (1) ses de ikoner som innehåller hjälpmedel för användaren vid skapandet av en station. Dessa inkluderar infogandet av tidigare skapade verktyg och komponenter, så kallade ”Libraries”, samt möjligheten att importera kompatibel 3D-geometri och skapa lösa ”frames”.

Verktygsfältet vid (2) hjälper användaren att hantera robotens programmerade punkter och vägen mellan dessa. Här finns ikoner för att skapa nya arbetsobjekt, verktygsdata och robotpunkter. Det finns även möjlighet att skapa mer avancerade händelser utifrån detta fält. Vid (3) visas vilken robot, arbetsobjekt samt verktygsdata som för tillfället är aktivt, och det går även att ändra dessa inställningar i denna meny.

Panelen vid (4) låter användaren rotera samt positionera objekt, och även röra robotar och mekanismer, med muspekaren. Denna panel återfinns i flera flikar.

Vid (5) finner användaren inställningar för hur stationens 3D-vy ska presenteras.

Fliken i figur 14 används vid skapandet av ny geometri, såsom solida kroppar, ytor eller kurvor.

I fältet vid (1) finner användaren de verktyg som behövs för att skapa solider, ytor och kurvor. Solidmoduleringen i Robotstudio är begränsad till enklare former, och för att åstadkomma mer avancerade objekt så hänvisas användaren till externa CAD-program. Vid (2) finns Robotstudios verktyg för avståndsmätning samlade.

Fältet vid (3) innehåller snabbknappar för att skapa mekanismer och verktyg. Figur 13: Home-fliken

(22)

I figur 15 visas den flik där Robotstudios simuleringsverktyg är samlade.

Vid (1) kan användaren definiera ”kollisioner” mellan valda objekt. En kollision färgar de valda objekten när dessa kommer i kontakt med varandra, samt även när de kommer inom ett användarbestämt avstånd av varandra. Detta är till exempel användbart vid simuleringar av processer där robotverktyget rör sig nära bearbetningsobjektets fixturer. Det är även möjligt att definiera variabler som beror av dessa kollisioner.

I panelen vid (2) bestämmer användaren vilka delar av programmet som ska användas i simuleringen, samt i vilken ordning. Dessutom finns här ”event managern”, där programmets villkor och händelser definieras så att Robotstudio kan visualisera det som inträffar. Event managern beskrivs mer noggrant i figur 16.

Panelen vid (3) innehåller kontroller för att starta, stoppa samt återställa simuleringen.

Vid (4) finner användaren bland annat en möjlighet att åskådliggöra samtliga programmets använda signalers värden och en timer för att kunna uppskatta stationens processtid.

Panelen vid (5) innehåller verktyg för användaren att spela in stationens funktion som rörlig bild.

Några av de nyare funktionerna hos Robotstudio är möjligheten att synkronisera ett transportbandssystem med stationen. Inställningar för detta hittas vid (6).

I event managern bestäms vad som sker i programmet utöver de inprogrammerade banorna. Dessa händelser kan till exempel vara öppnandet av gripdon, start/stopp av externa mekanismer eller varningssignaler till operatören. Vid (1) knappar för att lägga till, ta bort eller på annat sätt hantera händelseinstruktionerna, och vid (2) definieras vilket villkor som krävs för att händelsen ska inträffa. På motsvarande sätt Figur 15: Simulation-fliken

(23)

I panelen vid (1) i figur 17 ges möjlighet att överföra inställningar och programinnehåll mellan programmet och det virtuella robotstyrsystemet. Detta motsvarar, som tidigare nämnt, vad som i ett online-scenario hade varit den fysiska robotens styrsystem.

Vid (2) finner användaren diverse simuleringsverktyg. Dessa inkluderar en simulering av robotens teachpendant, som ses i figur 18, med samma funktioner som en fysisk, samt virtuella motsvarigheter till styrskåpets operatörspaneler.

Panelen vid (3) innehåller diverse snabbfunktioner som användaren även finner i den virtuella teachpendanten. Ikongruppen vid (4) innehåller snabbknappar för att hantera de RAPID-program användaren skapat.

Vid (5) kan användaren skapa systemkonfigurationer samt ändra robotparametrar.

Online-fliken i figur 19 är väldigt lik den tidigare beskrivna offline-fliken, med den väsentliga skillnaden att i det här fallet är det det fysiska robotsystemet som kommunikationen sker med.

Vid (1) finns verktyg för att initiera och hantera kontakten mellan dator och styrsystemet. Användaren kan här bland annat efterfråga möjligheten att direkt redigera de program och parametrar som är lagrade i det fysiska styrsystemet, vilket ges genom kvittens från teachpendanten.

Panelen vid (2) innehåller hjälpmedel för styrningen av det fysiska systemet, och dessa är väldigt snarlika de som tidigare beskrivits för offline-fliken.

Figur 17: Offline-fliken

Figur 18: Den virtuella teachpendanten

(24)

Den sista fliken, ”add-ins”, innehåller en enkel hanterare för de installerade extramodulerna användaren laddat ner eller själv skapat. Den modul som använts i detta examensarbete är ”Machining”, vilken huvudsakligen är en hjälpmodul för att förenkla bearbetning vid användning av ett robothållet verktyg. Denna modul har även ett inbyggt Forcefeedback-stöd, vilket gör den särskilt intressant för bearbetningsfall.

Efter laddning av modulen så återfinns den som en flik till vänster om övriga flikar under resten av Robotstudiosessionen. Det bör noteras att vissa Robotstudio-funktioner, såsom möjligheten att överföra data till den virtuella kontrollern via offline-fliken, är inaktiverade då machiningmodulen är aktiv, eftersom detta istället skall genomföras via modulen.

Ett av de nya tilläggen till Robotstudio 5 är den så kallade Machiningmodulen, vars flik visas i figur 20. Denna modul möjliggör en enklare programmering av bearbetningsoperationer på ytor och längs kanter. En annan egenskap, som är särskilt intressant för projektet ProFlexA, är att modulen gör det möjligt att på ett enkelt sätt använda sig av kraftstyrning. Detta sker genom en användarvänlig guidad process där användaren fyller i önskade parametrar och programmet därefter genererar förslag på lösningar.

Vid (1) finns de funktioner som används för att skapa machininglösningen, vilket sker genom en serie inställningar som användaren guidas igenom. Här finns även möjligheten att definiera bearbetningsytor manuellt. Denna guide beskrivs i detalj i nästkommande kapitel. Panelen vid (2) innehåller diverse inställningar för manuellt bruk.

(25)

3.1.3 Machiningguiden

Här följer endast en kort genomgång av machiningguiden och dess funktioner, då dessa är relativt utförligt beskrivna vid respektive alternativ i guiden. Guidens sju steg visas i figur 21-27.

I steg ett av guiden definieras bland annat vilken av stationens robotar som skall utföra bearbetningen. Här namnges även bearbetningslösningen. I steg två av guiden definieras vilka ytor som skall bearbetas. Detta sker genom att användaren markerar en yta direkt i den virtuella arbetsstationen. Ett annat alternativ är att användaren väljer en yta redan tidigare definierad via funktionen för detta i machining-fliken, som tidigare beskrivits.

I steg tre av guiden sätts eventuella särskilda toleranser med hänsyn till machininglösningen. Dessa innefattar bland annat hur väl den genererade banan måste följa den valda ytan, vilken bankrökning som tillåts samt hur mycket banorna får överlappa varandra. Här finns även möjligheten att aktivera ForceFeedback om så önskas. I steg fyra av guiden bestäms huruvida verktyget arbetar axiellt eller radiellt längs dess z-axel, vilket verktyg som ska användas, verktygets arbetsbredd samt eventuell kalibrering. Här finns även möjlighet att ange hur stort

Figur 22: Machiningguiden, steg 2 Figur 21: Machiningguiden, steg 1

(26)

I steg fem väljs vilken typ av bearbetningsbana som skall skapas, samt parametrarna för denna.

Det finns bland annat möjlighet att få en bearbetningslösning där bearbetningen sker mellan parallella eller icke-parallella plan, med bearbetningsriktningen ortogonalt med dessa. Andra lösningsalternativ är bearbetning av kanter eller genom att en användarbestämd bana används.

I steg sex bestäms verktygets tillåtna arbetsvinklar samt eventuella skyddsavstånd vid banstart och banslut. Här bestäms även på vilket sätt passagen mellan avslutad och påbörjad bana ska genomföras.

I guidens sjunde och sista steg visas den genererade bearbetningslösningen. Användaren har här möjlighet att direkt låta Robotstudio automatiskt bestämma banornas konfigurationer samt överföra hela lösningen till det virtuella styrsystemet.

När det gäller tillgänglig användarhjälp och generell information så har Robotstudio stora brister. Det är väldigt svårt för en användare med begränsad roboterfarenhet och som även är oerfaren i programmet att lösa de problem som dyker upp vid genereringen av punkter och banor, då hjälpinformationen är bristfällig och i vissa fall helt obefintlig. Det är en fördel om användaren redan är insatt i RAPID-programmering, då ett flertal av

Figur 25: Machiningguiden, steg 5 Figur 26: Machiningguiden, steg 6

(27)

4 Test av Machiningmodulen

För att testa machiningmodulen bestämdes det att ett antal fysiska tester skulle utföras. Dessa beskrivs i detalj i kapitel 4.2. För att göra detta möjligt undersöktes i ett första steg huruvida Robotstudio kunde kopplas till någon av de robotstyrsystem av S4-modell som finns i Monteringstekniks lab. Då detta inte var möjligt bestämdes istället att en IRB1400-robot med ett IRC5-styrsystem som fanns på avdelningen för Maskinkonstruktion skulle användas. För att möjliggöra användning av denna krävdes det att den monterades på plats och kopplades ihop med dess styrskåp.

Denna installation inleddes med att industriroboten samt dess styrskåp placerades på önskade platser och därefter bultades fast i golvet. Robotens placering utfördes så att säkerhetsavstånd erhölls gentemot de två fasta väggar som avgränsar dess arbetscell. Roboten joggades sedan till kalibreringsläge och kalibrerades. Därefter anslöts Robotstudio genom att en nätverkskabel kopplades mellan en nätverksutgång på datorn och styrskåpets LAN-port. Därefter identifierade Robotstudio själv den inkopplade stationen och aktiverade denna i programmet.

4.1 Verktyget

Då skolan saknar möjligheter att testa Robotstudios machiningmodul i en verklig bearbetningssituation så bestämdes det att modulen skulle testas genom att roboten fick rita de genererade banorna med en penna istället. Detta skulle då visa de eventuella avvikelser som skulle kunna uppkomma mellan programmets bana och den verkliga. För att åstadkomma detta så behövdes ett verktyg som gjorde det möjligt för roboten att hantera pennan.

Eftersom IRB 1400 har en absolutnoggrannhet på 0,45 – 1,0 mm, [1], så krävdes det att även pennans spets hade en viss flexibilitet för att säkerställa att den alltid var positionerad direkt intill objektet. För att lösa detta så bestämdes det att en fjäder skulle monteras i verktyget mellan roboten och pennan.

För att minimera antalet singulära punkter i robotens närliggande arbetsområde bestämdes det även att pennan skulle vara positionerad med 30 graders lutning riktad nedåt gentemot robotens handled.

Verktyget måste även vara konstruerat för att kunna monteras på IRB 1400, vars handled visas i figur 28.

(28)

4.1.1 Funktion och geometri

Verktyget ritades i CATIA, som är ett vanligt förekommande CAD-program, och skrevs sedan ut i den 3D-skrivare som nyligen införskaffats av universitetet. På grund av att ett krav på verktygets utformning innebar att det skulle vara vinklat, och att det var önskvärt att verktygets längd skulle vara så liten som möjligt, så skulle detta innebära problem vid montering av verktygets bottenplatta på robotens handled. En lösning på detta var att konstruera bottenplattan som en separat del gentemot resten av verktyget. Detta skulle lösa monteringsproblemet, men införa ett nytt infästningsproblem då bottenplattan och verktygets underdel måste kunna ihopfogas utan glapp, och helst genom en reversibel process för att underlätta eventuella byten av robotverktyg.

En fördel med denna konstruktion är att verktyget enkelt kan anpassas för användning på samtliga övriga industrirobotar då endast en ny handled måste införskaffas, som passar storleken och hålbilden på den nya handleden.

För att möjliggöra en inplacering av sliden som håller pennan så krävdes även att verktygets överdel var löstagbar, vilket innebar att verktyget måste bestå av ännu en del. För att lösa infästningsproblemet av överdelen på underdelen så användes dels en överlappande kant hos underdelen, som överdelen fördes in i och som gav stabilitet i två riktningar. Stabilitet i den tredje riktningen erhölls genom att överdel samt underdel fick genomgående hål med 120 graders vinkelmellanrum, som ett tredelat fäste fördes in i. En funktionsskiss av verktyget kan ses i figur 29.

4.1.2 Resultat

Figurerna 30 till 32 visar bilder av verktygets ritning i CATIA, samt av de färdigutskrivna delarna, som är i hårdplast. Utskriften av samtliga delar skedde simultant, och tog totalt över 20 timmar. Då de nominella ritningsmåtten användes saknades axel- och håltoleranser, vilket innebar att delarna inte passade i varandra som planerat. Detta åtgärdades med smärgelduk och vanlig glatt kontorstejp.

Figur 29: Funktionsskiss av verktyget

(29)

4.2 Testerna

De tester som utfördes var följande:

1. Test av bana genererad av Robotstudio utan machiningmodul, utfört på horisontellt upplagt papper.

2. Test av bana genererad av Robotstudio med machiningmodul, utfört på horisontellt upplagt papper.

3. Test av bana genererad av Robotstudio med machiningmodul, utfört på papper uppsatt som mantelyta.

4. Test av bana genererad av Robotstudio med machiningmodul, utfört på grävskopstand enligt figur 38. (Endast simulering i Robotstudio.)

Målet med dessa tester var att få en bild av hur väl de machining-genererade banorna motsvaras av reella robotbanor hos den fysiska roboten, samt att se hur lättanvänd modulen är för en ny användare.

Figur 31: Verktygets delar, lösa Figur 32: Verktygets delar, ihopsatta och monterade

(30)

För att förbereda för testerna så gjordes ett experiment där en bestämt punkt i Robotstudio matchades med motsvarande fysiska robotpunkt. Detta visade på en skillnad på 190mm mellan den virtuella punkten och den reella längs x-axeln. Orsaken till detta visade sig vid närmare undersökning vara att vid skapandet av en ny robotstation i Robotstudio så positioneras roboten automatiskt med dess första axel riktad ut ur världskoordinatsystemets origo. Detta innebar en skillnad gentemot den fysiska robotens nollpunkt, som är belägen vid en punkt framför denna axel.

Testerna utfördes med ett arbetsbord placerat framför roboten, som bearbetningsobjekten placerades på. Figur 33 och 34 visar detta upplägg dels i Robotstudio och dels i det verkliga fallet.

4.2.1 Test 1

Den bana som skapades i Robotstudio var mycket enkel och bestod av två halvcirklar samt ett par raka linjer, vilka innebar att banan blev sluten. Den resulterande bilden visade inga tecken på IRB 1400:s absolutnoggrannhetsfel, vilket dock kan förklaras av att den penna som används till verktyget var alltför grov för att tillåta några slutsatser angående detta. Figur 35 visar resultatet från detta test.

4.2.2 Test 2

I detta test användes en bearbetningslösning genererad av machiningmodulen, med målet att bearbeta hela pappret. Detta utfördes genom att ett antal raka, parallella banor placerades med specificerat avstånd ifrån varandra. Figur 36 visar resultatet från detta test.

4.2.3 Test 3

Vid genereringen av en bearbetningslösning för denna mer avancerade geometri uppstod problem. Machiningmodulen gav samtliga banors förstapositioner en annan axelkonfiguration än resterande banpositioner, vilket ledde till stora och onödiga rörelser hos den virtuella roboten vid varje banas början. Skulle användaren välja att använda sig av det genererade programmet i befintligt skick skulle denne i de flesta fall behöva modifiera sin robotcell väsentligt. För att kringgå detta problem modifierades de felaktiga axelkonfigurationerna, vilket gick bra då relativt få banor användes i testet, men för en användare med ett smalt verktyg och stora bearbetningsobjekt skulle detta kunna innebära mycket arbete. Figur 37 visar resultatet från detta test.

Figur 35: Resultat från test 1

(31)

4.2.4 Test 4

Detta test genomfördes endast som simuleringsfall i Robotstudio. Detta på grund av de stora problem som den komplicerade geometrin skulle innebära vid fixeringen på bordet framför roboten.

Ett problem som tidigt identifierades vid genereringen av bearbetningslösning för denna, mer avancerade geometri, var att Robotstudio har svårigheter att identifiera hela ytor, och istället delar upp dessa i mindre segment. I vissa fall är dessa mycket små, och lätta för användaren att missa under

definieringen av de ytor som ska bearbetas. Är programmet då inställt för att separera

enskilda banor vid ett ”gap” som är mindre än det missade segmentet så kan detta innebära att bearbetningslösningen blir onödigt komplex.

En lösning av problemet med flera delytor som är svårbearbetade innebär att användaren skapar ett flertal olika bearbetningslösningar med en eller flera ytor per lösning. På detta sätt kan man använda olika typer av lösningar för olika typer av ytor. Exempel på olika typer av lösningar är kantbearbetningar och användardefinierade banor, vilka är lämpliga då den ytan som skall bearbetas är relativt liten.

4.3 Informationsutbyte mellan plattformarna

De typer av data som kan överföras mellan Robotstudio och det fysiska styrsystemet är begränsat till RAPID-program och inställningsparametrar. För att överföring av denna information ska vara möjlig direkt in i styrsystemet krävs dock att Robotstudioanvändaren först efterfrågar skrivrättigheter. Denna efterfrågan måste sedan godkännas via teach-pendanten.

Det enklaste sättet att överföra information mellan de två systemen är dock genom

Robotstudios inbyggda filhanterare, vilken ger möjlighet att överföra filer mellan programmet och styrsystemet. Ett överfört robotprogram startas sedan upp via teach-pendanten på samma sätt som om programmet skapats via denna.

Det är även, som tidigare nämnts, möjligt att i Robotstudio se en visuell bild av vad den fysiska teach-pendanten visar. Även det fysiska styrsystemets meddelandelogg finns tillgänglig i programmet, liksom övervakning av systemets in- och utgångar.

När det gäller visualisering av den fysiska roboten i Robotstudio så är detta begränsat till möjligheten att följa robotens rörelser via RAPID-koden, där dess radposition anges på samma sätt som i teach-pendanten.

(32)
(33)

5 Diskussion och analys

För en användare med kunskap om RAPID-programmering samt industrirobothantering bör Robotstudio vara relativt enkelt att lära sig. Det finns, som tidigare beskrivet, även möjligheter att sköta programmeringen med hjälp av en visuell variant av den teach pendant som vanligtvis används vid online-programmering och offline-programmering utanför Robotstudio, vilket särskilt borde tilltala användare vana vid dessa äldre metoder.

Anslutningen och kommunikationen mellan Robotstudio och det fysiska styrsystemet sker mycket enkelt och intuitivt, och det är möjligt att hantera flera fysiska styrsystem från samma Robotstudio-station, dock ej simultant.

Robotstudios lösning av informationsflödet, som ses i figur 6, innebär att det virtuella styrsystemet arbetar helt fristående från det fysiska, vilket i sin tur innebär att ett komplett fungerande robotprogram kan färdigställas i Robotstudio. Detta innebär i sin tur att programmet ej är bundet till en specifik fysisk robotcell, utan även kan användas i snarlika celler. Kalibrering samt kompensering för eventuella fel mellan den virtuella och den fysiska cellen kommer dock fortfarande att behövas. Beroende av behov kan denna kalibrering ske genom att arbetsobjekten i Robotstudio ompositioneras eller genom att verktygets arbetspunkt modifieras, i Robotstudio eller via teach-pendanten.

Machiningmodulen lämpar sig bäst vid generering av paths för bearbetning av större objekt som inte innehar alltför många olika delytor som skall bearbetas. I dessa fall blir lösningarna enkla, men den programmeringstid som användaren sparar blir fortfarande avsevärd jämfört med manuell path-generering i Robotstudio. När det gäller mindre bearbetningsobjekt med fler separata bearbetningsytor blir lösningarna mer komplexa, och användaren kan själv behöva göra manuella ändringar i lösningarna, vilket minskar den tidsvinst som machiningmodulen annars innebär.

Det faktum att möjlighet saknades att genomföra machiningtesterna med ett kraftstyrt system begränsar de slutsatser som kan dras om machiningmodulens lämplighet för just denna tillämpning. Det kan därför rekommenderas att vidare tester utförs då möjlighet för detta ges. Det skall dock påpekas att pennverktygets utformning ger det egenskaper motsvarande de hos ett öppet kraftstyrningssystem av den typ som visas i figur 5, kapitel 2.1.2.

Beträffande de utförda testerna så hade det varit önskvärt med en högre grad av fixering. Exempel på detta hade varit möjligheten att exakt bestämma bordets position samt orientering i rummet, samt även fixeringen av de objekt som testen utfördes på, vilket nu endast genomfördes med hjälp av enklare, mindre noggranna metoder. De tester som utfördes bedömdes ändå som godkända, då dessa undersökte möjligheten att generera banor genom machiningmodulen samt överföringen av programmet från Robotstudio till det fysiska styrsystemet.

(34)
(35)

6 Slutsatser

• Robotstudio är lätthanterligt för en ny användare med tidigare erfarenhet inom robotstyrning och RAPID-programmering.

• Generering av banor sker generellt med stor tidsvinst i machiningmodulen.

• Vidare tester med inriktning mot kraftstyrning borde utföras då möjligheten till detta finns.

(36)
(37)

Figurtabell

Figur 1: IRB 140(0) [1] ... 11

Figur 2: Orientering [2] ... 11

Figur 3: Styrskåp och Teach Pendant... 11

Figur 4: Lösning 1 [4] ... 12

Figur 5: Lösning 2 [4] ... 12

Figur 6: Exempel på RAPID-kod, genererad i Robotstudio ... 14

Figur 7: Exempel på olika axelkonfigurationer [3] ... 15

Figur 8: Robotstudios informationsflöde ... 17

Figur 9: Färdigskapad robotcell i Robotstudio ... 18

Figur 10: Exempel på verktyg i Robotstudio... 18

Figur 11: Exempel på robotbana i Robotstudio... 19

Figur 12: Robotstudios programmeringsmiljö... 20

Figur 13: Home-fliken... 21

Figur 14: Modeling-fliken... 21

Figur 15: Simulation-fliken... 22

Figur 16: Event managern ... 22

Figur 17: Offline-fliken ... 23

Figur 18: Den virtuella teachpendanten ... 23

Figur 19: Online-fliken ... 23

Figur 20: Machining-fliken... 24

Figur 21: Machiningguiden, steg 1... 25

Figur 22: Machiningguiden, steg 2... 25

Figur 23: Machiningguiden, steg 3... 25

Figur 24: Machiningguiden, steg 4... 25

Figur 25: Machiningguiden, steg 5... 26

Figur 26: Machiningguiden, steg 6... 26

Figur 27: Machiningguiden, steg 7... 26

Figur 28: IRB 1400:s handled ... 27

Figur 29: Funktionsskiss av verktyget ... 28

Figur 30: Ritningen i CATIA... 28

Figur 31: Verktygets delar, lösa ... 29

Figur 32: Verktygets delar, ihopsatta och monterade... 29

Figur 33: Stationen i Robotstudio... 29

Figur 34: Stationen i verkligheten ... 29

Figur 35: Resultat från test 1 ... 30

Figur 36: Resultat från test 2 ... 30

Figur 37: Resultat från test 3 ... 30

(38)
(39)

Referenser

[1] Product On-line Manual IRB 1400

[2] Introduction to robotics – mechanics and control, John J. Craig, 1989 [3] RAPID Reference Manual

(40)
(41)

Bilaga: Utdrag ur Product ”On-line Manual IRB 1400”

Här följer relevanta utdrag ur ABB:s ”Product On-line Manual IRB 1400”.

“Weight: Manipulator 225 kg Controller 240 kg”

“At rated load and 1 m/s velocity on the inclined ISO test plane with all six robot axes in motion.

Unidirectional pose repeatability: RP = 0.05 mm Linear path accuracy: AT = 0.45 - 1.0 mm Linear path repeatability: RT = 0.14 - 0.25 mm”

References

Related documents

Även för dig är detta en biologisk omöjlighet. Man måste ta till andra förklaringar till det minskade insu ­ linbehovet och då skall man först och främst ha klart för

Resultatet visade att barn från tre års ålder i stor utsträckning delar vuxenvärldens föreställningar om vad som är typiskt kvinnliga respektive typiskt manliga drag, och att d

Vi vill även undersöka hur eleverna förhåller sig till fenomenet mobbning, om skillnad förekommer på skolorna och mellan flickor och pojkar.. Vår hypotes är att mobbningen

Vi vill med detta mejl dock meddela att vi inte kommer att lämna ett svar på remissen.. Önskar er en fortsatt

Detta för att effektivt kunna använda de resurser som finns tillgängliga när det kommer till rehabiliteringsarbetet och att erbjuda olika personer olika former av stöd för att

I den del som remissen enbart avser en förlängning av lagen om tillfälliga begränsningar av möjligheten att få uppehållstillstånd i Sverige (med åtföljande följdändringar

Av 8 § lagen (2016:xxx) om tillfälliga begränsningar av möjligheten att få uppehållstillstånd i Sverige framgår att första stycket inte gäller under pe- rioden 20 juli

Man poängterar dock vikten av att utdelning/inhämtning av rena sprutor och kanyler inte räcker till för att minska spridningen av HIV/AIDS utan att denna åtgärd skall ses som en del