I
Voorwoord In het masterjaar van mijn opleiding wordt mij de kans gegeven om alle kennis die ik opgedaan heb om te zetten naar een masterproef project. Ik heb dit project gekozen omdat het mij van in het begin boeide. Het kunnen uitwerken van een project met innovatieve technologieën is een kans die geen enkele student in het masterjaar zou laten liggen. Hierbij kwam nog eens dat ik de gelegenheid kreeg om het Simotion Motion Control gedeelte te leren kennen, dit via een opleiding in het Siemens opleidingscentrum te Huizingen. Eerst en vooral wil ik HOWEST bedanken voor de kansen die ze mij gegeven hebben om mijn praktische en theoretische vaardigheden verder uit te breiden via deze masterproef. Ook wil ik vooral mijn promotoren dhr. Vanwalleghem Bart en dhr. Derammelaere Stijn bedanken voor hun steun en inzet. Naast mijn promotoren wil ik ook dhr. Vandenhoeke Dieter bedanken. Nog een speciaal dankwoord voor het complete Siemens SITRAIN team om mij de mogelijkheid te geven de cursus „SIMOTION‟ te volgen. Ook zou ik graag Helpdesk van Siemens bedanken voor de hulp bij problemen. In het bijzonder Dhr. Ouvry Stijn voor de ondersteuning bij het opzetten van de communicatie en voor het tonen van de mogelijkheden van SINUMERIK. Tenslotte wil ik mijn ouders bedanken voor de kansen die ze mij hebben gegeven. Zonder hun steun zou ik deze opleiding nooit kunnen volgen.
II
Inhoudsopgave Voorwoord ....................................................................................................................................................... II Inhoudsopgave................................................................................................................................................ III Abstract .......................................................................................................................................................... VI Symbolen & afkortingen ................................................................................................................................ VII Figuren .......................................................................................................................................................... VIII Tabellen ........................................................................................................................................................... X Inleiding ........................................................................................................................................................... 1 1
Componenten beschrijving ..................................................................................................................... 3 1.1 SINAMICS .................................................................................................................................................. 3 1.1.1 Power Module 540 .......................................................................................................................... 3 1.1.2 Smart Line Module .......................................................................................................................... 3 1.1.3 Motor Module ................................................................................................................................. 4 1.2 SIMOTION ................................................................................................................................................. 5 1.2.1 Inleiding ........................................................................................................................................... 5 1.2.2 Regelcircuit ...................................................................................................................................... 6 1.2.3 Motion Control ................................................................................................................................ 6 1.2.4 SIMOTION SCOUT ............................................................................................................................ 7 1.2.4.1 Algemeen ............................................................................................................................... 7 1.2.4.2 Functies .................................................................................................................................. 7 1.2.4.3 Programmeerblokken ............................................................................................................ 8 1.2.4.4 Execution System ................................................................................................................... 9 1.3 SINUMERIK .............................................................................................................................................. 10 1.3.1 Inleiding ......................................................................................................................................... 10 1.3.1 Regelcircuit .................................................................................................................................... 11 1.3.2 Programmering ............................................................................................................................. 11 1.4
2
Drive-CLiQ ............................................................................................................................................... 12
Inleidende projecten ............................................................................................................................. 14 2.1 Didactische stand .................................................................................................................................... 14 2.1.1 Inleiding ......................................................................................................................................... 14 2.1.2 Uitbreiding..................................................................................................................................... 14 2.1.3 Configureren ................................................................................................................................. 15 2.1.4 Programmeren .............................................................................................................................. 17 2.2 Lineaire assen ......................................................................................................................................... 18 2.2.1 Inleiding ......................................................................................................................................... 18
III
2.2.2 2.2.3 3
Proefopstelling .............................................................................................................................. 18 Configureren ................................................................................................................................. 19
Robotisatie met SIMOTION ................................................................................................................... 21 3.1
Inleiding .................................................................................................................................................. 21
3.2
SIMOTION SCOUT ................................................................................................................................... 23
3.3 Communicatie met CNC .......................................................................................................................... 27 3.3.1 Communicatieprotocol.................................................................................................................. 27 3.3.2 Configuratie van de drives............................................................................................................. 27 4
CNC-machine & Robot........................................................................................................................... 30 4.1
Flowchart ................................................................................................................................................ 30
4.2 CNC - machine ......................................................................................................................................... 32 4.2.1 Proefopstelling .............................................................................................................................. 32 4.2.2 PLC programma ............................................................................................................................. 34 4.2.2.1 Inleiding ............................................................................................................................... 34 4.2.2.2 Het basis programma ........................................................................................................... 34 4.2.2.3 De nieuwe programma invulling .......................................................................................... 35 4.3 Robot....................................................................................................................................................... 37 4.3.1 Inleiding ......................................................................................................................................... 37 4.3.2 Proefopstelling .............................................................................................................................. 37 4.3.3 Visualiseren ................................................................................................................................... 39 4.3.3.1 Visual Studio ........................................................................................................................ 39 4.3.3.2 OPC ...................................................................................................................................... 40 Besluit ............................................................................................................................................................ 44 Literatuurlijst ................................................................................................................................................. 45 Bijlagen .......................................................................................................................................................... 46 X,Y-coördinaat slede verschuiving ............................................................................................................... 46 CNC-programma............................................................................................................................................... 49 Programma van de Robot ................................................................................................................................ 50 ST ................................................................................................................................................................. 50 ST_As_Achter .......................................................................................................................................... 50 ST_As_Voor ............................................................................................................................................. 51 ST_Berekening ........................................................................................................................................ 52 ST_Fout ................................................................................................................................................... 54 LAD/FBD....................................................................................................................................................... 55 Homing.................................................................................................................................................... 55 Inschakelen ............................................................................................................................................. 55 Positioneren ............................................................................................................................................ 55 Uitschakelen ........................................................................................................................................... 55 MCC-Beweging ............................................................................................................................................ 56 Bewegen ................................................................................................................................................. 56
IV
SafePos.................................................................................................................................................... 57 Programma CNC(Nieuw) .................................................................................................................................. 58 OB1 ......................................................................................................................................................... 58 FC 150 ..................................................................................................................................................... 59 FC 151 ..................................................................................................................................................... 60 FB150 ...................................................................................................................................................... 61 DB150...................................................................................................................................................... 65 Inschakelen van de opstelling ........................................................................................................................... 66 Homing zonder robot .................................................................................................................................. 66 Met robot .................................................................................................................................................... 66
V
Abstract This master dissertation deals with the integration of an industrial robot into a CNC machine. This project focuses specifically on the industrial robot, the CNC machine, the Siemens drives, the virtual presentation and the communication protocol. The virtual presentation of this project has the purpose of steering the complete machine from a distance. This is made possible by using the OPC technology that insures the connection between the visualization program and the OPC server program that uploads the information out of the drive. This way, the robot and CNC machine can be steered from a distance. The exact position of the industrial robot has to be entered in this virtual presentation. One of the main elements of this project is the industrial robot that delivers the unthreaded pieces of work to the CNC machine. The industrial robot uses a Siemens „SIMOTION‟ controller that controls and drives the servos from the robot. The intention is to set up the drive of the robot. This means that the drive has to be configured and programmed. A kinematic transformation has to be implemented in the drive to transform the XY position to the position of the linear axes. The CNC machine works with a Siemens „SINUMERIK‟ NC controller that controls and drives the servos of the CNC machine. This is a machine that already works and that has to be completed to make a connection with the industrial robot. Furthermore, a NC program has to be written for the CNC machine. Finally, a connection between the CNC machine and the industrial robot has to be set up. The chosen communication protocol is PROFIBUS. This connection enables the machines to communicate with each other through their drives. The hardware configuration of both drives has to be adjusted to make this possible. This was also one of the main elements of this project because by doing this, the robot can start or stop the CNC machine by sending the right command at the right time.
VI
Symbolen & afkortingen Drive-CLiQ CNC OPC LAD/FBD ST MCC ASUB
= = = = = = =
Drive - Component Link intelligence Quotient Computer Numerical Control OLE for Process Control Ladder Diagram/Function Block Diagram Structured Text Motion Control Chart Asynchronous subroutines
VII
Figuren Figuur 0.1: Logo HOWEST ....................................................................................................... 1 Figuur 1.1: Power Module 340 .................................................................................................. 3 Figuur 1.2: Smart Line Module .................................................................................................. 3 Figuur 1.3: Line reactors (smoorspoel) ...................................................................................... 3 Figuur 1.4: Algemeen schema Smart Line Module ................................................................... 4 Figuur 1.5: Single Motor Module .............................................................................................. 4 Figuur 1.6: Double Motor Module ............................................................................................. 4 Figuur 1.7: Overzicht SIMOTION D425/435 module ............................................................... 5 Figuur 1.8: Het regelcircuit van de „SIMOTION‟ ..................................................................... 6 Figuur 1.9: Overzicht „SINUMERIK 840D SL‟ module ......................................................... 10 Figuur 1.10: Het regelcircuit van de 'SINUMERIK' ................................................................ 11 Figuur 1.11: 'HMI Advanced' ................................................................................................... 12 Figuur 1.12: Drive/Encoder systeem met een Drive-CLiQ interface ....................................... 13 Figuur 1.13: Typische Drive-CLiQ structuur (De grijze kabels duiden op Drive-CLiQ)........ 13 Figuur 2.1: Voormalige didactische stand ................................................................................ 14 Figuur 2.2: 'DRIVE-CLiQ' verandering ................................................................................... 15 Figuur 2.3: Didactische motoren .............................................................................................. 16 Figuur 2.4: De lineaire- en nokkenas stand .............................................................................. 18 Figuur 2.5: Het didactische bord .............................................................................................. 19 Figuur 3.1: Algemene opstelling .............................................................................................. 21 Figuur 3.2: Topologie van de verbindingen ............................................................................. 23 Figuur 3.3: Inhoud programma ................................................................................................ 25 Figuur 3.4: Boomstructuur 'SCOUT'........................................................................................ 26 Figuur 3.5: Flowchart uitwering SIMOTION-gedeelte ........................................................... 26 Figuur 3.6: NetPro configuratie ............................................................................................... 28 Figuur 3.7: Slave instellingen(1) .............................................................................................. 29 Figuur 3.8: Slave instellingen(2) .............................................................................................. 29 Figuur 3.9: Master instellingen ................................................................................................ 29 Figuur 4.1: De proefopstelling ................................................................................................. 33 Figuur 4.2: De robot ................................................................................................................. 38 Figuur 4.3: Lay-out van de visualisering................................................................................. 40 Figuur 4.4: Export OPC data .................................................................................................... 41 Figuur 4.5: Instelling export OPC data .................................................................................... 41 Figuur 4.6: Path invoegen ........................................................................................................ 41 Figuur 4.7: Parameter selecteren .............................................................................................. 42 Figuur 4.8: OPC-server instellen(1) ......................................................................................... 42 Figuur 4.9: OPC-server instellen(2) ......................................................................................... 43 Figuur 4.10: OPC-server instellen(3) ....................................................................................... 43
VIII
Figuur 0.1: Positie sledes ......................................................................................................... 46 Figuur 0.2: Bedieningspaneel ................................................................................................... 66 Figuur 0.3: 'Reset'-knop op SINUMERIK ............................................................................... 67
IX
Tabellen Tabel 1.1: 'SCOUT'-functies ...................................................................................................... 7 Tabel 1.2: Compile selecties ...................................................................................................... 8 Tabel 1.3:User Tasks .................................................................................................................. 9 Tabel 2.1: Onderdelen didactische stand .................................................................................. 15 Tabel 2.2: Onderdelen stand „lineaire- en nokkenas‟ ............................................................... 19 Tabel 4.1: Onderdelen van de CNC-machine .......................................................................... 33 Tabel 4.2: Onderdelen van de robot aansturing ....................................................................... 38
X
Inleiding De masterproef „Integratie van een robot in een CNC-machine‟ wordt in HOWEST op de campus „Graaf Karel de Goedelaan‟ zelf verwezenlijkt. Het is een onderwerp dat wordt uitgevoerd onder de masteropleidingen „Elektromechanica‟ en „Elektrotechniek‟. In deze opleidingen wordt het labo „Elektromechanische aandrijvingen ІІ‟ gegeven, waarin deze masterproef kadert. De „Hogeschool West-Vlaanderen (HOWEST)” maakt deel uit van de Associatie Universiteit Gent. HOWEST is ontstaan in 1995 door een fusie van 5 hogescholen (Campussen in Kortrijk, Brugge en Oostende). In 1995 telden deze 1.800 studenten over al hun departementen. In 10 jaar tijd was dit aantal al gestegen naar 4.250 studenten en dit aantal blijft tot op heden nog ieder jaar groeien. Momenteel bestaat het opleidingenpakket van HOWEST uit 22 bachelor- en 7 masteropleidingen. Één van de masteropleidingen is de opleiding „Master in de industriële wetenschappen Elektrotechniek afstudeerrichting Automatisering‟. Dit is tevens de richting waarin deze masterproef wordt uitgevoerd.
Figuur 0.1: Logo HOWEST
De aanleiding voor deze masterproef is het verkrijgen van praktische realisaties voor de lessen „Elektromechanische aandrijvingen ІІ‟ en „CAD/CAM‟. In deze lessen kan deze realisatie dan gebruikt worden om verschillende theoretische punten te toetsen aan de praktijk. Het doel van deze masterproef is het verkrijgen van een praktische realisatie die het werkelijk industrieel proces van een robot met een CNC-machine kan simuleren.. Het is namelijk zo dat in de industrie een robot wordt ingezet om onbewerkte stukken in de CNC-machine te plaatsen en ze na bewerking er weer uit te halen. Dit is nu het doel dat op het einde van deze masterproef moet bekomen worden. Er wordt in deze masterproef niet gewerkt met een echte robot. Een bestaande opstelling met twee staven, die met een rotatiepunt aan elkaar hangen en aangestuurd worden door lineaire sledes, vervangt deze robot. Deze applicatie moet als demo bruikbaar zijn om enkele technologieën te demonstreren. Er moet eveneens een virtueel bedieningspaneel gemaakt worden om alles aan te sturen.
1
Als inleiding op deze masterproef is er eerst een cursus gevolgd in „SITRAIN‟, het opleidingscentrum van Siemens, om met de „SIMOTION‟-drive te leren werken. Nadat deze opleiding beëindigd was, zijn er eerst een paar andere proefstanden geconfigureerd met deze drive om alles van de drive nog beter te leren kennen. Dit was nodig om feilloos te kunnen overstappen van de cursus naar de masterproef. Bij de robot is er begonnen met een mechanische opstelling waar alle aansturingen al op aanwezig waren. De „SIMOTION‟-drive die de volledige opstelling aanstuurt, wordt geconfigureerd en geprogrammeerd. De CNC-machine echter is een drie assige opstelling die aangestuurd wordt door een „SINUMERIK‟-drive. Deze machine is al voorzien van een aansturing die volledig werkt. De programmering van de CNC moet echter verder uitgebreid worden om te kunnen communiceren met de robot en om aangestuurd te kunnen worden via een programma in de robot. Hiervoor is het vitaal communicatiestuk nog niet aanwezig, dus zal er een communicatie verbinding aangebracht worden tussen de drives die de machines aansturen. Hiervoor moeten beide drives opnieuw geconfigureerd en geprogrammeerd worden. Daarnaast is er nog het visueel stuk dat opgebouwd moet worden. Hiervoor zal gebruik gemaakt worden van „Visual Studio‟ om de grafische weergave mogelijk te maken. De OPCconnectie zal gebruikt worden als verbindingsprotocol tussen de client(Visual Studio) en de server(Simatic.Net).
2
1 Componenten beschrijving 1.1 SINAMICS 1.1.1 Power Module 540 De „Power Module 340‟ bevat de vermogentrap om motoren aan te sturen. Op deze module kan er een externe remweerstand aangesloten worden om de motor gemakkelijker te doen stoppen. Aan de onderkant van deze module is er een aansluiting voor de motor aanwezig. Door middel van een PM-IF interface is het mogelijk om een connectie te maken tussen de Power Module en de „Control Unit‟. Dit is mogelijk doordat er in beide een PM-IF interface geïntegreerd is. Deze zijn door middel van een klikconnectie aan elkaar verbonden.
Figuur 1.1: Power Module 340
1.1.2 Smart Line Module De „Smart Line Module‟ kan energie leveren of regeneratieve energie terugsturen naar het net. Hiervoor moet de module gevoed worden met 380-400VAC op zijn onderste klemmen en. Voordat de netspanning aan de ingangen toekomt, moet die eerst door een smoorspoel en een lijnfilter gaan. Via een geïntegreerd bussysteem zal de uitgangsspanning naar andere modules doorgestuurd worden.
Figuur 1.2: Smart Line Module
Figuur 1.3: Line reactors (smoorspoel)
3
Figuur 1.4: Algemeen schema Smart Line Module
1.1.3 Motor Module Er kan een verschil gemaakt worden tussen motor modules. Er zijn de Single Motor Modules en de Double Motor modules. De motor module is bedoeld om één of twee motor(en) aan te sturen. De module is voorzien van 2 DC-connecties die DC-spanning ontvangen van of verzenden naar andere modules via een bussysteem. Aan de bovenkant van de module zijn 3 of 4 Drive-CLiQ aansluitingen voorzien. Deze dienen om de communicatie met andere modules te kunnen verzekeren. De module is in staat om een veilige motor remming uit te voeren. Bij de Single module gebeurt dit zonder bijkomende onderdelen. De double module echter heeft twee ingebouwde contoles die hiervoor zorgen. De mogelijkheid bestaat om één of twee temperatuursensor(en) (KTY84-130) aan te sluiten aan de module. Deze sensor maakt het mogelijk de temperatuur van de motor binnen te lezen en te controleren. Het grote verschil tussen de twee modules zit hem erin dat de Double Motor module meer aansluitingen voor Drive-Clicq en voor een temperatuursensor heeft.
Figuur 1.5: Single Motor Module Figuur 1.6: Double Motor Module
4
1.2 SIMOTION 1.2.1 Inleiding „SIMOTION‟ is een controller die gemaakt is om nauwkeurig verschillende assen te kunnen positioneren. Het biedt de mogelijkheid om verschillende assen met elkaar te synchroniseren. Dit systeem is bovendien multifunctioneel is. Er kan niet alleen gebruik gemaakt worden van een gewone lineaire as aansturing, maar ook van een ingewikkelde robotarm aansturing. Dit is mogelijk door de sterke reken- en dimensioneerkracht die achter deze eenvoudig lijkende controller zit. Het aansturen van de assen doet de „SIMOTION‟ niet zelf. Hiervoor werkt de controller altijd met één of meerdere „SINAMICS‟-drives die zich lager in de hiërarchische structuur bevinden. Zaken die vroeger niet mogelijk waren met een alleen staande „SINAMICS‟-drive zijn nu wel mogelijk. Dit omdat de drives nu, met hoge performantie, aangestuurd en geregeld worden door de hiërarchisch bovenstaande „SIMOTION‟-controller. Om de „SIMOTION‟-controller te programmeren wordt er altijd gewerkt met de „SCOUT‟omgeving. De „SITOP‟-voeding die 24VDC uitstuurt, voorziet de „SIMOTION‟-controller van spanning. De uitwisseling van data met zijn onderliggende „SINAMICS‟-drives gebeurt aan de hand van „Drive CLiQ‟-kabels. Een „SIMOTION‟-controller kan werken met Ethernet, „PROFINET „en „PROFIBUS‟. Er is ook nog een extra ruimte voorzien om een communicatiekaart naar keuze in te voegen. Dit om ervoor te zorgen dat er altijd genoeg aansluitingen aanwezig zijn bij grote industriële installaties.[1]
Figuur 1.7: Overzicht SIMOTION D425/435 module
5
1.2.2 Regelcircuit Het regelcircuit van deze controller is een zogenaamde cascaderegelaar. De motor wordt gevoed door een signaal van de „Current Controller‟. Het signaal dat deze controller aan zijn ingang krijgt, is het verschil tussen het uitgangssignaal van de „Speed controller‟ en de actuele stroom die de motor nu bezit. Het signaal dat de„Speed controller‟ aan zijn ingang krijgt, is het verschil tussen gewenste snelheid met de actuele snelheid. De gewenste snelheid komt van de „Position/Motion Controller‟. Deze controller krijgt een signaal binnen dat het verschil is tussen de gewenste en de actuele position/motion. Alles rond motion en position bevind zich in de „SIMOTION‟ en wordt dus in deze controller geregeld. De speed en current controller bevinden zich in en worden geregeld door de „SINAMICS‟.
Figuur 1.8: Het regelcircuit van de ‘SIMOTION’
1.2.3 Motion Control „Motion Control‟ is letterlijk vertaald „Controle van de verandering van plaats‟. Hier kan uit afgeleid worden dat het hier gaat om het gecontroleerd verplaatsen van een object van de ene naar de andere positie. Deze verplaatsing gebeurt aan de hand van verschillende parameters.
Snelheid Versnelling Vertraging Positie Koppel
„Motion Control‟ wordt veelal toegepast op servo- en stappenmotoren. Dit begrip wordt vooral veel gebruikt bij CNC-machines en in de robotica. Om „Motion Control‟ te kunnen gebruiken, is er vooral een krachtige drive en een „RealTime‟ communicatiemiddel nodig. Dit zijn „Real-Time‟ communicatiemiddelen zoals SERCOS, PROFINET, PROFINET IRT, EtherCAT, VARAN, Powerlink,…. .
6
We kunnen volgende controles uitvoeren met „Motion Control‟: Snelheidscontrole Positiecontrole Kracht- en drukcontrole Camming Synchronisatiecontrole
1.2.4 SIMOTION SCOUT 1.2.4.1 Algemeen Het „SCOUT‟-programma is in principe een „engineering program‟. Het is speciaal ontwikkeld voor het creëren en managen van „SIMOTION‟-projecten. Dit omdat er hier namelijk aan „Motion Control‟ gedaan wordt op een grafische manier. Dit doet men aan de hand van de „MCC‟-programmeertaal. Deze programmeertaal is eigen aan de „SCOUT‟omgeving en wordt dus, in het „Siemens‟-gamma, uitsluitend hiervoor gebruikt. Om verschillende delen van de configuratie te bekijken, is er nog steeds in „SCOUT‟ de typische boomstructuur die eigen is aan „Siemens‟-programma‟s. 1.2.4.2 Functies Zoals in ieder „Siemens‟-programma moet in de „SCOUT‟-omgeving ook een hardwareconfiguratie aangemaakt worden. Die moet alle onderdelen bevatten waarmee gewerkt wordt. In de „SCOUT‟ omgeving moet er ook een optimalisatie gebeuren van alle onderdelen van de „HW Config‟. Deze optimalisatie houdt in dat de verschillende „SCOUT‟functies die men wil gebruiken in een programma worden aangemaakt en gedefinieerd in functie van het programmeergedeelte. De verschillende functies van de „SCOUT‟-omgeving zijn: Tabel 1.1: 'SCOUT'-functies
Functie
EXECUTION SYSTEM
I/O GLOBAL DEVICE VARIABELEN
Verklaring Onder deze functies worden verschillende „User Tasks‟ gedefinieerd waar men de programmeerblokken kan insteken. Dit naargelang het tijdstip waarop de programmeerblok moet worden uitgevoerd. Hier worden de gebruikte fysische in- en uitgangen gedefinieerd. Hier worden de globale variabelen gedeclareerd, gebruikt in verschillende programma‟s.
7
AXES
EXTERNAL ENCODERS
CAMS
PROGRAMS
Hieronder vindt men de assen die gebruikt worden in de opstelling. Er is keuze tussen een werkelijke of een fictieve as. Hier kunnen de externe encoders gedefinieerd worden. Hier maak je verschillende CAM‟s aan. Wanneer een as een voorbepaald profiel volgt, noemt men die „Camming‟. Hieronder staan alle programma‟s die geschreven zijn.
1.2.4.3 Programmeerblokken MCC „MCC‟ staat voor „Motion Control Chart‟. Dit is in principe een soort grafcet die hier wordt opgemaakt. Dit wordt veel gebruikt wanneer men op een overzichtelijke manier verschillende stappen wil doorlopen. Het voordeel hieraan is dat de stap waarbij er iets fout loopt makkelijk te detecteren valt. LAD/FBD „LAD/FBD‟ staat voor „Ladder Diagram/ Function Block Diagram‟. In STEP7 was het zo dat men, per functie(blok), altijd maar in één van deze programmeertalen kon programmeren. „LAD/FBD‟ is de algemene programmeertaal in de „SCOUT‟-omgeving. Dit komt de overzichtelijkheid ten goede bij het invullen van parameters. Hier is het ook zo dat er niet voor iedere in- of uitgang iets moet gedefinieerd worden. De in- of uitgangen die niet nodig zijn, kunnen, zonder latere foutweergave, blanco gelaten worden. ST „ST‟ staat voor „Structured Text‟. Dit is dezelfde manier van programmeren zoals „STL‟ in de STEP7-omgeving. Het gaat om een programmeertaal waar geen visueel voorgestelde blokken aan te pas komen. Hier gaat men het beoogde programma uitsluitend in tekstvorm schrijven. Aanmaken van een programmeerblok Bij het aanmaken van een programmeerblok moet er altijd op voorhand bestudeerd worden wat de functie van deze blok moet zijn. Er kunnen namelijk in het subvenster „Compiler‟ verschillende selecties aangevinkt worden. Tabel 1.2: Compile selecties
Selectie „Permit program status‟
Verklaring Dit moet worden aangevinkt bij een „MCC‟-programma, als men later de status van deze blok wil uitlezen.
8
„Permit language extension‟ „Permit OPC/XML‟
„Permit single step‟
Dit moet worden aangevinkt wanneer men wil dat elementen van programmeertalen die niet voldoen aan de „IEC 61131-3‟ toch kunnen gelezen worden. Dit moet worden aangevinkt wanneer men in de toekomst wil werken met een OPC-server. Als dit niet ingeschakeld is, kunnen de variabelen van deze blok niet gelezen of aangestuurd worden via een OPC-connectie. Dit moet worden aangevinkt, bij een „MCC‟-programma, als men het geschreven programma „stap per stap‟ wil doorlopen.
1.2.4.4 Execution System Het „Execution System‟ wordt gebruikt om verschillende taken uit te voeren, onder verschillende omstandigheden. Dit wordt gedaan door in één van de verschillende delen van dit „Execution System‟ een programma te integreren. Het programma moet dan uitgevoerd worden onder bepaalde omstandigheden. De verschillende delen kan men eigenlijk zien als vervanging van de OB‟s, FC‟s en FB‟s in de gewone PLC-programmeertaal. Tabel 1.3:User Tasks
User Tasks
Uitleg
Startup task Shutdown task
Wordt uitgevoerd bij overschakeling van „STOP‟ naar „RUN‟ Wordt uitgevoerd bij overschakeling van „RUN‟ naar „STOP‟ Wordt gestart door de gebruiker Wordt maar 1 keer doorlopen Wordt sequentieel uitgevoerd De cyclustijd wordt niet geobserveerd Kan actief blijven als je werkt met WAIT, loops, … Wordt gestart door de gebruiker, De cyclus wordt uitgevoerd (nadat hij voltooid is) De cyclustijd wordt geobserveerd (vergelijkbaar met PLC OB1) Wordt synchroon uitgevoerd met de servo-klok
Motion task
Background task
Servo Synchronous task IPO Synchronous task Timer Interrupt task User Interrupt task System Interrupt task
Wordt synchroon uitgevoerd met de IPO-klok Wordt gestart als er een geregeld tijdsinterval is Wordt gestart bij een zeker event Wordt getriggerd door een systeem event als er een alarm of een fout optreedt. Vb. Technological Fault Task
9
1.3 SINUMERIK 1.3.1 Inleiding „SINUMERIK‟ is een NC controller die ontwikkeld is om nauwkeurig verschillende assen van een CNC-machine te positioneren. De „SINUMERIK‟ bevat een PLC gedeelte. Het aansturen van de assen doet de „SINUMERIK‟ niet zelf, hiervoor werkt de NC controller altijd met één of meerdere „SINAMICS‟-drives die zich lager in de hiërarchische structuur bevinden. De „SINUMERIK‟ controller werkt voor de programmatie en de configuratie van zijn drive met drie verschillende programma‟s: „STEP 7‟ voor het PLC gedeelte dat de controller controleert, „STARTER‟ voor als er iets moet aangepast worden aan de instellingen van de„SINAMICS‟, het „HMI advanced‟-gedeelte voor het programmeren van het echte (C)NC-programma in „NC‟-taal. Een „SINUMERIK‟-NC controller kan werken met Ethernet, „PROFINET „en „PROFIBUS‟. Voor ethernet en „PROFIBUS zijn er standaard al aansluitingen aanwezig. Voor „PROFINET‟ echter moet er een extra kaart toegevoegd worden. Dit om ervoor te zorgen dat er altijd genoeg aansluitingen aanwezig zijn bij grote industriële installaties.[2]
Figuur 1.9: Overzicht ‘SINUMERIK 840D SL’ module
10
1.3.1 Regelcircuit Het regelcircuit van de „SINUMERIK‟ is ongeveer op dezelfde opgebouwd als bij de „SIMOTION‟. In dit regelcircuit is het zo dat alles rond positie zich in de „SINUMERIK‟ bevindt en dus in deze NC-controller wordt geregeld. De speed en current controller bevinden zich in en worden geregeld door de „SINAMICS‟.
Figuur 1.10: Het regelcircuit van de 'SINUMERIK'
1.3.2 Programmering „Step 7‟ De programmering van een controller in „Step 7‟ is gelijk aan de programmering van een gewone PLC in dit programma. Voor het aansturen van de drive-functie in dit programma wordt gebruik gemaakt van voorgeprogrammeerde FB‟s. Deze worden bij de installatie van de controller mee geïnstalleerd. Via deze FB‟s kun je de meeste zaken uit de drive aanspreken of inlezen. Dit deel wordt grondig besproken in hoofdstuk rond CNC-machine programmering. „Starter‟ Dit programma is een typisch „SINAMICS‟ programma. Met dit programma worden altijd de instellingen of parameters van deze drive ingesteld. Alleen in het „SIMOTION‟-programma zijn de functionaliteiten van deze software geïmplementeerd. Voor alle andere drives is deze software noodzakelijk, dit omdat de fine-tuning van de opstelling meestal maar kan aangepast worden door de parameters van de „SINAMICS‟ aan te passen. „HMI advanced‟ Deze software is de „NC‟-software waarmee de echte CNC-programma‟s worden geschreven. In „HMI advanced‟ word alles geprogrammeerd als een CNC-machine in typische „ISO NC‟programmeertaal.
11
Figuur 1.11: 'HMI Advanced'
1.4 Drive-CLiQ Drive-CLiQ is een realtime communicatie protocol dat veel gebruikt wordt bij de connectie tussen modules. De connectie tussen de verschillende modules is op te splitsen. Enerzijds in de connectie tussen de verschillende „Siemens‟-drives onderling. Anderzijds in de connectie tussen de aandrijfmodule en de motor of encoder die op de machine zelf aangebracht zijn. Het sturen van aandrijfgegevens en het ontvangen van positiegegevens zijn de twee belangrijkste eigenschappen van Drive-CLiQ. Het is dus een intelligente verbinding tussen de verschillende modules. Drive-CLiQ is een realtime seriële interface, gebaseerd op de 100Mbps ethernet technologie, die zorgt voor een directe verbinding tussen de motoren en de drives. Een sterke eigenschap van deze aansluiting is de herkenning van motoren ook „Electronic Name Plating‟ genaamd. De eigenschappen van een Drive-CLiQ motor worden direct herkend en doorgegeven bij de configuratie. Hierdoor is het niet meer nodig om de gegevens van de motor handmatig in te geven. Dit brengt op zich een serieuze tijdsbesparing met zich mee. De kans op fouten tijdens de configuratie is nu ook kleiner. De encoders zijn via dit protocol ook automatisch te herkennen. Hierdoor kan de toevoeging van encoders in de configuratie automatisch gebeuren. Deze modules worden ook wel eens de zogenaamde “Plug and Play Devices” genoemd. De voeding van de encoders is geïntegreerd in de kabel. Eén type kabel volstaat dus voor de verbinding van alle driveverbindingen (drive-drive, drive-motor, drive-encoder).De afstand tussen 2 modules met een Drive-Cliq kabel kan lopen tot 100 meter zonder gebruik te maken van repeaters. Om met Drive-CLiQ te werken, kan dus gebruik gemaakt worden van Drive-CLiQ producten. Deze zijn motoren, encoders en ook andere digitale en analoge I/O modules. De mogelijkheid bestaat ook om adapters te gebruiken voor niet - Drive-CLiQ componenten zodat deze toch
12
aan het Sinamics systeem gekoppeld kunnen worden. De Drive-CliQ interface maakt het ook mogelijk om de encoder terugkoppeling en motor temperatuur te lezen.
Figuur 1.12: Drive/Encoder systeem met een Drive-CLiQ interface
Figuur 1.13: Typische Drive-CLiQ structuur (De grijze kabels duiden op Drive-CLiQ)
13
2 Inleidende projecten 2.1 Didactische stand 2.1.1 Inleiding Voor de labo‟s „Elektromechanische aandrijvingen ΙΙ‟ was het nodig om de didactische stand uit te breiden. Op deze didactische stand kunnen verschillende aandrijfconcepten van asynchrone motoren worden aangetoond. Bedoeling is deze proefstand uit te breiden zodat ook „motion control‟ toepassingen kunnen gedemonstreerd worden.
Figuur 2.1: Voormalige didactische stand
2.1.2 Uitbreiding Er wordt vertrokken van de huidige didactisch borden die al in het labo aanwezig zijn. Bij gebruik van een „SIMOTION‟-controller kan de „Controle Unit‟ overbrugd worden. Alle intelligentie, die nodig heeft om de twee „SINAMICS Power Module‟ aan te sturen, is al inwendig aanwezig in de „SIMOTION‟. De „DRIVE-CLiQ‟-connecties, die op de „SINAMICS Controle Unit‟ bevestigd waren, worden verwijderd en veranderd naar de„SIMOTION‟-drive. Door deze connecties hebben nu een ideale communicatie tussen onze „SIMOTION‟-drive en de twee „SINAMICS Power Module‟-drives.
14
Figuur 2.2: 'DRIVE-CLiQ' verandering Tabel 2.1: Onderdelen didactische stand
Aantal
Onderdeel
1
SIMOTION D425 4.0
1
SINAMICS Control Unit CU320
2
SINAMICS Power Module 340
2
SIEMENS „UD0610‟-motor
Ordernummer 6AU1425-0AA00-0AA0 6SL3210-1SB14-0UA0 1LA7083-4AA10-Z
2.1.3 Configureren Om de „SIMOTION‟-drive te configureren, word gebruik gemaakt van het „SCOUT‟programma. Hiervoor werd er in het begin van het jaar een cursus gevolgd bij het opleidingscentrum van Siemens zelf, namelijk SITRAIN. Hier werd een opleiding gegeven aan de hand van een didactische stand die daar te gebruiken was. Er wordt altijd gestart met het aanmaken van een nieuw project in het „SCOUT‟-programma. Bij het aanmaken van de hardwareconfiguratie wordt de „SIMOTION D425 V4.0‟ als device ingesteld.[3] Het aanmaken van een drive met bijhorende motor is na de hardwareconfiguratie het logische vervolg. In deze stap worden beide drives/motoren op „servo‟-mode ingesteld. Er worden drie assen (axes) aangemaakt. Twee van deze assen zijn elk gekoppeld aan één drive. De derde as is een virtuele as. Deze wordt gebruikt om één van de andere assen te koppelen aan de virtuele as via synchronisatie. Bij het aanmaken van een as wordt er bepaald wat deze as allemaal aankan. In deze proef worden de instellingen van de assen verschillend genomen.
15
De ene kan alleen maar snelheid regelen. De andere kan echter snelheid regelen, posities aannemen en synchroniseren met een andere as. Dit omdat er één motor is met encoder en de andere zonder encoder uitgevoerd is.
Figuur 2.3: Didactische motoren
Doordat de stand van „Siemens‟ niet dezelfde was als die in het labo, is er soms wat zoekwerk geweest naar een fout. Een fout die gemaakt werd, bij het aanmaken van de drive, was het verkeerd instellen van de mode in welke de motor wordt aangestuurd. In eerste instantie was de mode ingesteld als „vector‟-mode, wat is gebruikelijk bij een asynchrone motor. Dit had wel één ernstig nadeel. Het gewenste communicatieprotocol kiezen was niet gemakkelijk. Dit omdat we van de „vector‟-mode gebruik maken. Dit protocol gebruikt men om te communiceren tussen de drive en de motor. Het „Siemens telegram 105‟ is het gebruikelijke protocol in deze omstandigheden. Dit is het ideale telegram om later „Motion Control‟ uit te voeren. Als er wordt gekozen voor de „vector‟-mode dan zal het gewenste telegram er niet tussen staan en worden er meerdere foutenmeldingen verkregen bij het configureren van andere zaken. De fout bestond erin dat een asynchrone motor zowel kan aangestuurd worden in „vector‟-mode als in „servo‟-mode. Bij het kiezen voor „servo‟-mode dan kan men het gewenste protocol gebruiken en zullen de foutmeldingen verdwijnen. Bij het aanmaken van de assen word alles aangevinkt bij het kiezen van de mogelijkheden van de drive. Dit is een veel gemaakte fout. De mogelijkheden dienen om te bepalen wat de motor, die aan de drive bevestigd is, allemaal aankan. Deze mogelijkheden zijn: Speed Control Positioning Synchronous operation
16
Normaal gezien wordt, bij alle assen, evenveel aangevinkt omdat ze met elkaar moeten kunnen communiceren. Iets wat hier wel over het hoofd werd gezien, is dat er hier gewerkt wordt met een motor met terugkoppeling en een motor zonder. Dit heeft tot gevolg dat de motor zonder terugkoppeling geen gebruik kan maken van de „Positioning‟ en de „Synchronous Operation‟ mogelijkheid.
2.1.4 Programmeren Het aanmaken van verschillende programma‟s wordt er eveneens gebruik gemaakt van het „SCOUT‟-programma. Aan de hand van de configuratie, die in het vorige stuk is besproken, kunnen er nu verschillende programma‟s aangemaakt worden voor de ingestelde assen. „MCC‟ en „LAD/FBD‟ zijn de twee meest belangrijke programmeertalen binnen de „SCOUT‟-omgeving. Het programmeren gebeurt dus meestal in deze talen. Voor de cycli die in de automatische stand of de foutbehandeling uitgevoerd werden, is er gebruik gemaakt van de „MCC‟-programmeertaal. Er is voor deze programmeertaal gekozen omdat dit de meest overzichtelijke programmeertaal is. Overzichtelijkheid is noodzakelijk omdat deze programma‟s gemakkelijk te begrijpen moeten zijn voor de studenten die hier later mee zullen werken. Voor de foutbehandeling is er een lege „MCC‟-blok aangemaakt. Dit omdat het bij een fout niet noodzakelijk is stappen te ondernemen. Er zijn vier vinkjes die in het subscherm „Compiler‟ aangevinkt moeten zijn bij het aanmaken van een programmeerblok. Deze zijn „Permit program status‟, „Permit language extension‟, „Permit OPC/XML‟ en „Permit single step‟. De keuze tussen het manueel of automatisch bedienen van de motoren en het manueel te doorlopen programma zelf, zijn geprogrammeerd in de „LAD/FBD‟-programmeertaal. Deze programmeertaal is het meest geschikt om de algemene werking, van het volledige programma, te programmeren. Deze is ook visueel het aangenaamst. Dit omdat men hier alles visueel ziet aan de hand van logische blokken. De „MCC‟-programmeertaal zou hier een minder goede keuze zijn omdat het overzicht, bij het werken met schakelaars, niet zo duidelijk is. Het is hier ook gemakkelijker om „Motion Tasks‟, waar de programma‟s aan gekoppeld zijn, aan of uit schakelen. Er zijn drie vinkjes die in het subscherm „Compiler‟ aangevinkt moeten zijn bij het aanmaken van een programmeerblok. Deze zijn „Permit program status‟, „Permit language extension‟ en „Enable OPC/XML‟
17
2.2 Lineaire assen 2.2.1 Inleiding De lineaire assen worden geconfigureerd als inleiding op het uiteindelijke doel van deze masterproef, namelijk het integreren van een robot in een CNC-machine. Dit om er voor te zorgen dat er een goede basis aanwezig is om dan van start te gaan met de masterproef.
2.2.2 Proefopstelling Voor het configureren van lineaire assen wordt er toegespitst op één proefstand die aanwezig was in het labo. Dit is een stand waar twee synchrone servomotoren een lineaire- en nokkenas aansturen via twee (oranje) „DRIVE-CLiQ‟- voedingskabels. De servomotoren zijn aangesloten op een „SINAMICS Double Motor Module‟. Bij de motoren is er een resolver ingewerkt die op zijn beurt, via andere (groene) „DRIVE-CLiQ‟-kabels, de informatie van de motor terug stuurt naar de „SINAMICS‟-module. Deze stand is makkelijker te configureren dankzij de Drive-CLiQ communicatiemiddelen.
Figuur 2.4: De lineaire- en nokkenas stand
De „SIMOTION D435 V3.2‟ stuurt de „SINAMICS Double Motor Module‟-module aan. Deze krijgt 24VDC binnen aan zijn klemmen. De „SINAMICS Double Motor Module‟ krijgt zijn DC-voeding van de „SIMOTION Smart Line Module‟. Deze module krijgt op zijn beurt spanning van het net via een smoorspoel en een filter.
18
Figuur 2.5: Het didactische bord
Het didactisch bord bevat volgende componenten: Tabel 2.2: Onderdelen stand ‘lineaire- en nokkenas’
Onderdeel
Ordernummer
SIMOTION D435 V3.2 SINAMICS Smart Line Module SINAMICS Double Motor Module SITOP modular 5A ½ ph Synchrone servo motor (Siemens) Line reactors (Siemens) Line Filter (Siemens)
6AU1 435-0AA00-0AA0 6SL3130 – 6AE15 – 0AA0 6SL3120 – 2TE15- 0AA0 6EP1333 – 3BA00 1FK7042 – 5AK71 – 1UG0 6SL3000 - 0CE15 - 0AA0 6SL3000 – 0HE15 - 0AA0
2.2.3 Configureren Dankzij het „SCOUT‟-programma is het configureren van de „SIMOTION‟ simpeler. Dezelfde stappen als bij de didactische stand zijn ook hier geldig. Deze zijn: 1. Een nieuw project aanmaken in het „SCOUT‟-programma. 2. Hardware-configuratie aanmaken (SIMOTION D435 V3.2). 3. Drives aanmaken met bijhorende motor. 4. Assen aanmaken die gekoppeld zijn aan de drives.
19
Bij het aanmaken van de tweede drive, dat er bij het selecteren van de drive-module gekozen wordt voor de eerste drive die aangemaakt is. Dit omdat beide motoren zijn aangesloten op één drive. Bij het aanmaken van de assen wordt er bij „axis-type‟ gekozen bij de lineaire as voor „Lineair‟ en bij de nokkenas voor „Rotary‟. De programmatie van het programma is identiek als bij de didactische stand.
20
3 Robotisatie met SIMOTION 3.1 Inleiding De uitleg over de inleidende projecten is in het vorige hoofdstuk al uitgebreid aan bod gekomen. Hier wordt nu overgegaan naar de werkelijke realisatie van de masterproef. Meer specifiek zal, hier ingegaan worden op alles wat rond de robot draait. Dit omdat het belangrijkste gedeelte van de masterproef handelt over het aansturen van een robot. Daarnaast is er ook nog de CNC-machine waar de communicatie nog moet geïntegreerd worden. De CNC-machine zal echter meer gedetailleerd in hoofdstuk 4 van deze thesis besproken worden. Het complete masterproef project kan op volgende manier beschreven worden. Er is een computer die via „Visual Studio‟ een grafische interface heeft om de robot te bedienen. De positie binnen de CNC-machine naar waar de robot een stuk moet brengen, wordt ingegeven in deze grafische interface. Nadat dit ingegeven is, zal de „SIMOTION‟-drive de assen aansturen en naar deze positie gaan. Bij het bereiken van de positie gebeuren er twee zaken. De positie en een start signaal worden doorgestuurd naar de „SINUMERIK‟-drive die de CNC-machine aanstuurt en de robot gaat naar de startpositie. Bij het krijgen van het startsignaal zal de CNC-machine naar dit punt bewegen en een bewerking uitvoeren. Daarna zal er een „einde bewerking‟-signaal teruggestuurd worden naar de robot en zal de CNCmachine naar zijn rustpositie gaan. De robot zal nu eerst het stuk nemen en dan naar de rustpositie brengen. Wanneer dit alles gedaan is, kan de cyclus weer opnieuw beginnen. De flowchart verder beschreven in hoofdstuk 4.1.
TCP/IP
Figuur 3.1: Algemene opstelling
21
De verduidelijking van sommige zaken: De connectie tussen computer en „SIMOTION‟-drive is een „TCP/IP‟-verbinding via een OPC-connectie. De „X, Y‟-coördinaten die ingegeven worden, zullen uitgerekend worden in de „SIMOTION‟-drive. Dit omdat ze moeten omgerekend worden naar de verschuivingen van de sledes. De robot wordt namelijk aangestuurd door sleden. De connectie tussen de „SIMOTION‟- en „SINUMERIK‟-drive is een „PROFIBUS‟connectie.
22
3.2 SIMOTION SCOUT De eerste stap is de configuratie van de „SIMOTION‟-drive. Hier wordt er altijd gestart met het aanmaken van een nieuw project in het „SCOUT‟-programma. De „SIMOTION D425 V4‟ wordt gekozen als „new device‟[3]. De configuratie is zo ingesteld dat „Ethernet IE/OP(X120)‟ het communicatiemiddel van dienst is. Beide drives, die de motoren aansturen, zijn geconfigureerd als een servosturing met speedcontrol via een encoder. Er moet wel op gewezen worden dat bij het selecteren van de drive, in het menu, de eerste drive nog eens geselecteerd wordt voor de tweede drive. Dit omdat er een „Double Motor Module‟ gebruikt wordt. Deze module stuurt allebei de motoren aan. De motoren zijn op zich geconnecteerd met de X1 aansluiting aan de onderkant van de „SINAMICS‟-drive. Doordat het hier gaat om een servomotor met „Drive-CLiQ‟ aansluiting moeten de parameters van de motor niet ingegeven worden. De „Drive-CLiQ‟ leest de drive gewoon in via de „Drive-CLiQ„-kabel. De connectie tussen de „SIMOTION‟- en „SINAMICS‟-drive gebeurt via een interne „PROFIBUS‟-verbinding. Deze is ingesteld als „Siemens telegram, PZD 10/10 (105)‟ en is dus heen en weer een telegram die 10 woorden lang is. Wanneer dit allemaal ingesteld is, moet de „topology‟ van de „SINAMICS‟ ingesteld zijn. Het instellen gebeurt via de keuze „topology‟ in de boomstructuur die te vinden is onder „SINAMICS _Integrated‟. De drives die geconfigureerd zijn, moeten dan eerst via het „Control Panel‟ uitgetest worden. Dit vindt men in de boomstructuur onder „SINAMICS _Integrated‟„Commissioning‟ . Hierna is de configuratie van de drives volledig.
Figuur 3.2: Topologie van de verbindingen
De assen zijn geconfigureerd als onderdeel van de drives die aangemaakt zijn. Iedere as is hier aan één drive gelinkt. De assen zijn als gewone, niet modulo, assen ingesteld en bezitten de opties „Speed Control‟ en „Positioning‟. Het zijn elektrische lineaire assen waarbij de encoder automisch herkend wordt via het „Drive-CLiQ‟ systeem en die werken op hetzelfde
23
communicatie telegram als de drives. Wanneer dit allemaal ingesteld is en alles zowel opgeslagen als gedownload is, moeten de assen nog uitgetest worden. Deze worden uitgetest via het „Control Panel‟ van de assen zelf. Dit vindt men in de boomstructuur onder de aangemaakte as. Hierna is de configuratie van alle onderdelen volledig. De programma‟s zijn in alle drie de programmeertalen gemaakt. Voor het maken van eenvoudige positioneer programma‟s, zoals „bewegen‟ en „SafePos‟, is er gebruik gemaakt van de „MCC‟-programmeertaal. „Bewegen‟ voert het basis positioneerprogramma uit. „SafePos‟ dient om de robot terug naar de veilige toestand te brengen. De „ST‟programmeertaal daarentegen is dan weer gebruikt voor het maken van de enable/disable, homing, fault en de rekenkundige programma‟s. Enable/disable en homing staan dan nog eens apart voor de slede vooraan en achteraan. Deze zitten dus onder „ST_As_Achter‟ en „ST_As_Voor‟. Fault zit dan onder „ST_Fout‟. Er is wel nog een onderscheid tussen deze programma‟s. De enable/disable, fault en homing programma‟s zijn namelijk gemaakt in de vorm van functieblokken en worden in LAD/FBD opgeroepen. Daarentegen zijn de rekenkundige programma‟s gemaakt in de vorm van functies. In de „SCOUT‟-software worden ze veel gebruikt om kleine bewerkingen in te definiëren. Deze rekenkundig functies worden opgeroepen in een programma dat ook in de „ST‟-programmeertaal gemaakt is en wordt rechtstreeks via het „Execution System‟ uitgelezen. Homing, zoals hiervoor vermeld, is het bepalen van een nulpunt. Wanneer er iets gehomed wordt dan zullen de assen hun nulpunten opzoeken. De manier waarop de homing wordt gedaan, is afhankelijk van de instellingen en de keuze tussen actief en passief. Dan is er nog de „LAD/FBD‟programmeertaal. In deze bevinden zich alle functieblokken met hun voorwaarden wanneer deze mogen ingeschakeld worden. Alle inschakelvoorwaarden en alle positie-informatie die in deze programma‟s worden gebruikt, zijn allemaal globale variabelen. Voor „LAD/FBD‟ wordt het programma „OB‟ gebruikt. Hieronder zitten „Homing‟, „Inschakelen‟, „Uitschakelen‟ en „Positioneren‟. „Positioneren‟ bepaalt welk MCC-programma mag uitgevoerd worden. Bij „Inschakelen‟ en „Uitschakelen‟ worden de assen geënabled of gedisabled. De „LAD/FBD‟ programma‟s zijn terug te vinden onder „Global DeviceVariables‟. In het „Execution System‟ staan verschillende programma‟s opgeslagen onder diverse tasks. Onder „Technological Fault Task‟ staat het „ST‟ Fault programma. Het „MCC‟ programma zit dan op zijn beurt onder „Motion Task_1‟ waar het uitvoeren bij starten van de PLC is uitgeschakeld. Dit is uitgeschakeld omdat deze „Motion Task‟, met het „MCC‟-programma erin, wordt opgeroepen in het „LAD/FBD‟ programma via een bepaalde startvoorwaarde. Alle andere programma‟s staan onder „Servo Synchronous task‟. Dit omdat deze programma‟s cyclisch moeten doorlopen en afgevraagd worden.
24
Figuur 3.3: Inhoud programma
25
Figuur 3.4: Boomstructuur 'SCOUT'
Figuur 3.5: Flowchart uitwering SIMOTION-gedeelte
26
3.3 Communicatie met CNC 3.3.1 Communicatieprotocol De eerste stap naar het zoeken van een communicatieprotocol was het uitzoeken welke protocollen allemaal toepasbaar waren op deze drives. Er zijn drie communicatieprotocollen die werken op zowel de „SIMOTION‟-drive als de „SINUMERIK‟-drive. Deze zijn „PROFIBUS DP‟, Ethernet en „PROFINET‟. „PROFIBUS DP‟ is het gekozen protocol nadat alle pro‟s en contra‟s bestudeerd waren. Dit om volgende reden: „PROFIBUS DP‟ is een „proven technologie‟. Er is zekerheid dat de data altijd juist toekomt op de bestemming. Bij Ethernet is er niet direct geweten wanneer de informatie zal toekomen. Voor „PROFINET‟ is er een extra kaart nodig om te kunnen communiceren via dit protocol. Doordat deze kaart nog niet aanwezig is op de „SIMOTION‟-drive en doordat deze nog zou moeten aangekocht worden is dit ook geen goede keuze. Het basisstation van beide drives bevat al „PROFIBUS DP‟-aansluitingen.
3.3.2 Configuratie van de drives. Nu het communicatieprotocol gekozen is, kan er overgegaan worden naar het configureren van de drives. Er is hiervoor wel een probleem aanwezig. De twee drives worden namelijk geconfigureerd elk vanop een aparte pc. Dit wil dus zeggen dat er een oplossing moest gevonden worden om ze elk van op hun eigen pc aan te sturen om toch de configuratie te kunnen maken. Hiervoor zijn enkele stappen doorlopen. In één van deze stappen is er geprobeerd om in iedere Hardware configuratie (HW-config) de andere drive te steken als slave. Dit kan niet werken doordat er altijd moet voldaan worden aan het „master/slave‟ of aan het „master/master‟-principe. In een andere stap wordt er geprobeerd om bij één van de drives de communicatiepoort open te zetten door deze op slave te zetten in de instellingen. De andere HW-config wordt dan als master ingesteld, waar dan aan de „master‟-communicatie de „slave‟-drive wordt toegevoegd. Dit heeft ook een slecht resultaat. Beide drives geven namelijk constant communicatie errors aan. Hierna is er te rade gegaan bij Siemens om te weten wat er fout is in de wijze van redeneren. Het blijkt dat er eigenlijk niet zoveel fout is. Bij het aanmaken van de communicatie moeten de twee drives geïmplementeerd worden in één algemeen project en moeten er toolboxen geüpdate worden. Nu kan de uiteindelijke configuratie beginnen. Dit loopt niet zonder problemen doordat de toolboxen niet kunnen geïnstalleerd worden op de computer. Daarbij komt nog eens dat de 27
„SINUMERIK‟-drive van de CNC-machine van de ene dag op de andere constant in „System Failure‟ gaat. Omdat er via internet geen sluitend antwoord kan gegeven worden, is er een persoon van Siemens eens langsgekomen om het probleem te bekijken. Nu blijkt het dat de HW-config van de „SINUMERIK‟ opnieuw moet aangemaakt worden en dat er eens een complete reset van deze drive moet gebeuren. De oorzaak voor het niet installeren van de toolboxen is de softwareversie van „STEP 7‟. Er is namelijk een servicepack 4 vereist en er is maar een servicepack 1 aanwezig. Dit wordt simpelweg opgelost door de servicepack 5 van het internet te downloaden en te installeren. Wanneer deze fouten allemaal uit de weg zijn, kan er overgegaan worden tot de configuratie. Eerst worden de twee aparte projecten samengevoegd tot één. Hierna wordt er overgegaan tot de configuratie. Hier wordt er gekozen om de „SIMOTION‟-drive als slave en de „SINUMERIK‟-drive als master in te stellen. Eerst word de communicatie toegevoegd in „NetPro‟ van het „Step 7‟-programma. Wanneer beide drives in één bestand staan worden beide configuraties ingeladen in de „NetPro‟. Hierna moet er een „PROFIBUS‟ netwerk aangemaakt worden. De poorten waar „PROFIBUS‟ kabel in het echt op aangesloten is, word in „NetPro‟ ook aangesloten aan het aangemaakt netwerk.
Figuur 3.6: NetPro configuratie
28
De „SIMOTION‟-drive is zo geconfigureerd dat hij als slave ingesteld staat. Dit door in de properties van de „PROFIBUS‟-aansluiting onder het tabblad „Operating mode‟ het vinkje op „DP slave‟ te zetten. Onder het tabblad „Configuration‟ wordt er dan een ingang van één woord lang en een uitgang van 6 woorden lang aangemaakt.
Figuur 3.7: Slave instellingen(1)
Figuur 3.8: Slave instellingen(2)
De „SINUMERIK‟-drive is zo geconfigureerd dat hij als master ingesteld staat. Dit door in de HW-config op de „PROFIBUS‟-aansluiting te klikken, met de rechtermuis knop, en dan „Add mastersystem‟ te kiezen. Aan deze aansluiting voeg je een configured „SIMOTION‟-drive toe. Bij de instelling van deze verbinding wordt gekozen voor de „SIMOTION‟ als connectie onder het tabblad „Connection‟. Wanneer dit gedaan is kan er onder het tabblad „Configuration‟ een ingang van zes woorden lang en een uitgang van één woord lang aangemaakt worden.
Figuur 3.9: Master instellingen
29
4 CNC-machine & Robot 4.1 Flowchart Het volledige productieproces begint met het connecteren van de OPC-client(Visual Studio) met de OPC-server(„SIMATIC.NET‟)(1). Hierdoor kan via het visueel bedieningspaneel de robot aangestuurd worden. Na het connecteren met de OPC-server worden de assen geënabled zodat de assen kunnen bewegen(2). Het homen van de beide sledes van de robot kan gebeuren nadat de sledes/assen geënabled zijn(3). Dit om het nulpunt van de sledes vast te leggen. Nadat de nulpunten van de sledes gekend zijn, kan er overgegaan worden naar het feitelijke programma. Dit houdt in dat nu via het visueel bedieningspaneel de posities in X,Y coördinaten kunnen ingegeven worden(4). Deze positie stelt het punt voor waar het te bewerken stuk in de CNC-machine moet bewerkt worden. Eerst wordt de Y-coördinaat ingegeven, in de visualisatiesoftware, waarna dan het maximum van de X-coördinaat wordt weergegeven via een messagebox. Nadat dan de X-coördinaat is ingegeven, staat de robot klaar om te positioneren. Bij het indrukken van de startknop, op het visueel bedieningsbord, zullen de sledes beginnen bewegen zodat ze de gewenste positie kunnen innemen(5). Hierna wordt dan voortdurend gecontroleerd of de robot al in de gewenste positie staat. Wanneer de robot dan in de gewenst positie staat, zal de robot terug naar zijn veilige positie gaan of beter gezegd naar zijn nulpositie gaan. Ook zal de „SIMOTION‟ nu via profibus de gewenste positie en het gewenste programma doorgesturen naar de
30
„SINUMERIK‟. Bij de handeling om terug naar veilige toestand te gaan, wordt ook constant gecontroleerd of de robot al in de veilige positie staat. Als dit het geval is, stuurt de „SIMOTION‟ een startsignaal naar de „SINUMERIK‟. Wanneer de „SINUMERIK‟ dan het start signaal ontvangt, zal hij eerst naar het gewenste punt gaan. Bij het aankomen op het gewenste punt wacht hij 5 seconden en start hij dan met het gekozen programma te doorlopen. Als het NCprogramma dan volledig afgewerkt is, zal de CNC-machine terug naar zijn nulpositie gaan en een signaal doorsturen naar de „SIMOTION‟. Dit signaal zal het visueel bedieningspaneel weer ontgrendelen en zo kan de volgende positie ingegeven worden.
31
4.2 CNC - machine 4.2.1 Proefopstelling De CNC-machine is één van de twee delen waar de masterproef uit bestaat. Dit gedeelte is in principe een gedeelte dat enkel nog moet geïntegreerd worden. Het is namelijk zo dat deze machine al geautomatiseerd is. Het is de bedoeling dat de functionaliteiten worden vervolledigd. De CNC-machine in het labo bestaat uit 3 verschillende spindels, om de X, Y, Z- beweging te maken. Op iedere spindel is er een servomotor aangesloten die de spindel zal bekrachtigen. Twee van deze servomotoren, namelijk X en Y, zijn aangesloten op een „SINAMICS Double Motor Module‟. De andere servomotor is aangesloten op een „SINAMICS Single Motor Module‟. Deze modules zullen via oranje „DRIVE-CLiQ‟-voedingskabels de motoren aansturen. Bij de motoren is er een resolver ingewerkt die op zijn beurt, via groene „DRIVECLiQ‟-kabels, de informatie van de motor terug stuurt naar zijn „SINAMICS‟-modules. Deze informatie wordt op haar beurt vergeleken met de gewenste waarde. Hieruit kunnen we afleiden dat men bij deze machine werkt met een gesloten regelkring. In een normale CNCmachine worden er aan de machine meetlatten bevestigd. Dit om de positie van het stuk te weten in functie van de frees. In deze opstelling wordt het stuk met de frees verplaatst en blijft de tafel stil staan. Er is ook nog een verschil in het meten. Het is namelijk zo dat hier de latten worden vervangen door de resolvers die op de motoren zitten. Dit omdat de motor rechtstreeks de spindels aansturen. Op deze manier kunnen de motoren dus aanzien worden als een nauwkeurig onderdeel binnen de CNC-machine. De „SINAMICS Single Motor Module‟ en „SINAMICS Double Motor Module‟ worden aangestuurd door de „SINUMERIK 840D‟. Deze wordt gevoed door een „SITOP‟-module. De motor modules krijgen hun DC-voeding van de „SIMOTION Smart Line Module‟. Deze module krijgt op zijn beurt spanning van een smoorspoel, via een filter. De componenten van het didactisch bord zijn in tabel 4.1 weergegeven. Het assenstelsel van de CNC-machine is op de volgende manier opgebouwd: De X-as is de slede die de frees naar links en naar rechts doet bewegen. Dit wanneer er op de machine wordt gekeken vanaf de voorkant. De Y-as is de slede die de frees naar voor en naar achter doet bewegen. Dit wanneer er op de machine wordt gekeken vanaf de voorkant. De Z-as is de slede die de frees op en neer doet bewegen ten opzichte van de tafel.
32
X Z Y
Figuur 4.1: De proefopstelling Tabel 4.1: Onderdelen van de CNC-machine
Onderdeel SINUMERIK NCU 710.2 SINAMICS Smart Line Module SINAMICS Double Motor Module SINAMICS Single Motor Module SITOP modular 5A ½ ph Synchrone servo motor (Siemens) Line reactors (Siemens) Line Filter (Siemens)
Ordernummer 6FC5371 - 0AA10 - 0AA1 6SL3130 - 6AE15 - 0AB0 6SL3120 - 2TE13- 0AA3 6SL3120 - 1TE13 - 0AA3 6EP1333 - 3BA00 1FK7042 - 5AF71 - 1DG0 6SL3000 - 0CE15 - 0AA0 6SL3000 – 0HE15 - 0AA0
33
4.2.2 PLC programma 4.2.2.1 Inleiding Bij het programmeren van de CNC-machine is begonnen van een reeds geschreven programma. Dit programma zorgt ervoor dat de CNC-machine manueel kan aangestuurd worden aan de hand van het bedieningspaneel. Ook kunnen verschillende programma‟s die geschreven zijn doorlopen worden. Nu is het de bedoeling om deze programmatie uit te breiden zodat de CNC-machine aan de hand van inkomende signalen kan aangestuurd worden. Zoals in het hoofdstuk rond “Robotisatie met SIMOTION” al vermeld werd, komen deze signalen binnen via een „PROFIBUS‟-verbinding en is deze al geconfigureerd voor de programmering begint. Om nu de volledige programmering te verstaan, wordt hieronder het volledige programma uitgelegd aan de hand van functies of functieblokken die gebruikt worden. De uitleg start met OB1 omdat dit het belangrijkste onderdeel is in de programmatie. Hier begint elk proces. 4.2.2.2 Het basis programma OB1 In de OB1 wordt er begonnen met een voorgedefinieerde Siemens functie FC2 die het basisprogramma inlaadt en er voor zorgt dat alles cyclisch wordt doorlopen. Dit is een functie die altijd als eerste in de OB moet staan, omdat alles start met het oproepen van het basisprogramma. De voorgedefinieerde Siemens functie FC19 is de volgende functie die opgeroepen wordt. Deze zorgt ervoor dat alle signalen van de machinestuurtafel doorgestuurd worden naar de signalen die van de NCKPLC(CNCPLC) gaan. Er staat in deze blok beschreven via welk kanaal alles verstuurd wordt (ChanNo) en wat er voor zorgt dat de verschuiving en de spindel stopt (FeedHold en SpindleHold). Na deze Siemens functies worden er ook een paar zelfgemaakt functies opgeroepen. Deze zitten in de netwerken drie tot en met zes. Het zevende netwerk bevat de berichten die doorgegeven worden naar het CNCprogramma. Daarom moet dit altijd laatst opgeroepen worden. FC50(Line_Module) Deze functie is een zelfgemaakte functie die alles rond de Line_Module bedient. In het eerste netwerk wordt Line Module geënabled aan de hand van toetsen die ingedrukt worden op het sturingspaneel. „Userbutton1” en “Userbutton2” zijn knoppen die ingedrukt worden op het besturingspaneel. Q5.6 en Q5.7 sturen dan de lampjes van overeenkomstige knoppen aan. In netwerk 2 word de infeed van de Control Unit geset. Netwerk 3 behandelt dan het wel dan niet doorsturen van noodstopcommando‟s en alarmberichten aan de hand van de toestand van de noodstop. In netwerk 4 word de noodstop bevestigd en in netwerk 5 gereset. In netwerk 6 en 7 worden verschillende alarmmessages verwijderd aan de hand van de stand van de Line Module. In het voorlaatste netwerk wordt via een voorwaarde de Line_Module gereset en in
34
de laatste wordt aan de hand van het enable signaal door de Line Module een alarm gegenereerd. FC51/52/53(X,Y,Z-as) Het eerste netwerk van deze zelfgemaakte functie beschrijft dat de eindeloopschakelaar in referentiestand langs de positieve zijde van het referentiepunt staat. Netwerk twee beschrijft de voorwaarden die moeten voldaan zijn voordat de controller geënabled kan worden. Het derde netwerk enabled de draaiknop op het HMI-paneel waarmee de snelheid tijdens het joggen bepaald word. In de volgende netwerken worden de pulsen en het positie meetsysteem geënabled en aan de hand van sommige ingangen bepaalt de machine hoe zal worden gereageerd. FC54(Spindel) In deze functie worden bepaalde gegevens van de spindel vergeleken en sommige uitgangen geset door een bepaalde voorwaarde
4.2.2.3 De nieuwe programma invulling FC150(Read/Write Profibus) Aan de hand van de Siemens functies SFC14 en 15 wordt hier informatie ingelezen of uitgestuurd. SFC 14 leest de informatie, doorgestuurd door de „SIMOTION‟, in en transfereert de informatie in DB500 (Netwerk 1). Dit zijn de statussen van de ROBOT, het startsignaal, het CNC-programma en de „X,Y‟-positie die binnenkomen. SFC 15 schrijft de informatie weg naar de „SINUMERIK‟(Netwerk2). Deze informatie haalt hij uit DB501. Dit zijn de statussen van de CNC-machine en het eindsignaal die doorgestuurd worden.(zie bijlage) FC151(Signalen) Hier gebeurt de verwerking van de signalen die in deze masterproef geprogrammeerd zijn. In netwerk 1 staat beschreven hoe de „ROBOT_SAFE‟ en „ROBOT_READY‟ signalen kunnen gesimuleerd worden wanneer er geen connectie is met de „SIMOTION‟-controller. Dit is wanneer er alleen met de CNC-machine wordt gewerkt. Het resetten van de gesimuleerde signalen gebeurt in Netwerk 2. In netwerk 3 worden de Signalen „CNC.BUSY‟ en „CNC.SAFE_POS‟ geset of gereset. Netwerk 3 transfereert dan de informatie tussen DB150 en DB500 of DB501. Dit zijn de statussignalen van de Robot en CNC die hier worden getransfereerd. Voor meer informatie over de DB500 en DB501 zie „FC150'.(zie bijlage) FB150(ROBOT_CTRL) Dit is het kloppend hart van de functionaliteiten die dit jaar toegevoegd zijn. Hier wordt namelijk beslist aan de hand van welke signalen die van de robot binnengekregen worden, of de CNC mag starten of niet. Het eerste netwerk bepaalt aan de hand van inkomende signalen in welke functie de CNC zich bevindt(READY,ERROR). In netwerk twee wordt er 35
gedefinieerd welke CNC-programma‟s doorlopen zullen worden. Deze gegevens worden uit DB150 gehaald. In het derde netwerk worden de X,Y,Z-startwaarden van de CNC doorgestuurd. Deze startwaarden worden in de R-variabelen van de CNC-geschreven. Deze R-variabelen worden in het programma „SETUP‟ gekopieerd naar G55-functie. Dit wordt in het hoofdprogramma als referentiepunt gebruikt. Vanaf dit punt wordt het programma uitgevoerd. In netwerk 4 word de ASUB eerst ingeladen en dan uitgevoerd, dit is eigenlijk het geselecteerde CNC-programma. In netwerk 5 en 6 is het inlezen van R-variabelen voorzien voor als er in te toekomst uitgebreid moet worden. De R-variabelen kunnen gebruikt worden om waarden tussen het NC-programma en de „SINUMERIK‟-controller te versturen.(zie bijlage) DB150 Alle belangrijke informatie van de CNC en robot wordt in de DB opgeslagen. Deze DB bevat alle informatie, over de ROBOT en de CNC-machine, en hun statussen.(Zie bijlage)
36
4.3 Robot 4.3.1 Inleiding Industriële robots zijn programmeerbare mechanische multifunctionele apparaten die ontworpen zijn om allerhande dingen te verplaatsen. Denk bijvoorbeeld aan materiaal, behandelde stukken, gereedschap, ... . Deze verplaatsingen zijn geprogrammeerde bewegingen. De industriële robots worden meestal gebruikt om onveilige, repetitieve en onaangename taken te doen. Ze zijn er dus om de taken te volbrengen die de mensen niet willen of kunnen doen. In allerhande scenario‟s kunnen ze gebruikt worden. Zoals bij het verven, samenstellen, lassen, palletiseren,…. . De industriële robots bestaan uit 4 delen: het mechanisch gedeelte, de robot controller, het voedingsgedeelte en het gereedschap. Met het mechanische gedeelte wordt de volledige robot bedoeld, met andere woorden alles wat beweegt bij het aansturen. Deze aansturing wordt verzorgd door de controller en het voedingsgedeelte. De controller bevat het programma en alle aansturingen. Het voedingsgedeelte levert zowel elektrische als hydraulische energie aan alle onderdelen van de robot. Dan is er nog het gereedschap dat van een verfpistool tot een grijper kan gaan. Voor het ingeven van het programma kan de computer gebruikt worden die bijhorende software heeft. Er kan ook een draagbare console gebruikt worden waarmee programmeren van op de werkvloer mogelijk is. Zo is het mogelijk om op de werkvloer de positie één voor één in te stellen waar men bijstaat. Deze console heeft de naam „Teach pendant‟.[8, 9]
4.3.2 Proefopstelling Het eindwerk draait rond twee grote onderdelen. De CNC-machine die de bewerking van een product voorstelt en het robot gedeelte die het transporteren van een product voorstelt. Dit stuk zal vooral verder op het robot gedeelte van deze masterproef ingaan. Zoals hiervoor vermeld, zal dit vooral rond het transporteren van een product draaien. De aansturing en het aangestuurde gedeelte van de robot zijn al aanwezig. De configuratie, programmatie en visualisatie van het stuk moeten nog volledig opgebouwd worden. Het robot gedeelte wordt voorgesteld door twee metalen staven. Deze zijn aan elkaar bevestigd door middel van een rotatiepunt. De staven op zich zijn aan de andere uiteinden verbonden aan twee „festo‟ geleidingen. Servomotoren zullen deze geleiding aansturen. De overgang van motor naar geleiding gebeurt door een flexibele koppeling. De „SIMOTION‟drive stuurt via „SINAMICS‟-drives de servomotoren aan. De „SINAMICS‟-drives bestaan uit een „SINAMICS Smart Line Module‟ en een „SINAMICS Double Motor Module‟. Deze „SINAMICS Double Motor Module‟ zal de twee servomotoren aansturen. De aansturing van de „SINAMICS‟-drives met de servomotoren gebeurt via „Drive-CLiQ‟ kabels. Doordat er resolvers in de motoren zijn ingewerkt, krijgen de „SINAMICS‟-drives
37
informatie terug van de motoren. Het gaat hier bijvoorbeeld om snelheid, positie, … die men terugkrijgt van de motoren. Het configureren en programmeren van deze drives gebeurt met de computer via het „SIMITION SCOUT‟-programma. Op beide geleidingen zijn er eindeloop contacten aangebracht. Deze eindeloop contacten hebben bepaalde functies in het ontwerp. Deze zijn er om ervoor te zorgen dat wagentjes van de geleiding niet te ver gaan. Maar de voornaamste reden van deze eindeloop contacten is het gebruik bij de homing. Bij de homing zullen we deze contacten namelijk gebruiken als referentiepunt om zijn nulpunt te bepalen. Zonder deze contacten zou dit zeer moeilijk zijn. Wanneer de spanning wegvalt, zal de precieze positie van de geleidingen namelijk nooit geweten zijn.
Figuur 4.2: De robot Tabel 4.2: Onderdelen van de robot aansturing
Onderdeel SIMOTION D425 V4.0 SINAMICS Smart Line Module SINAMICS Double Motor Module SITOP modular 5A ½ ph Synchrone servo motor (Siemens) Line reactors (Siemens)
Ordernummer 6AU1425-0AA00-0AA0 6SL3130 - 6AE15 - 0AB0 6SL3120 - 2TE13- 0AA3 6EP1333 - 3BA00 1FK7042 - 5AF71 - 1DG0 6SL3000 - 0CE15 - 0AA0
38
4.3.3 Visualiseren 4.3.3.1 Visual Studio „Microsoft Visual Studio‟ is het programma dat hier gebruikt wordt om de visualisering weer te geven. De bedoeling van de visualisering is het maken van een panel. Dit panel moet alles bevatten om de robot aan te sturen en moet ook informatie kunnen ingeven en uitlezen. Dit is hier gebeurd onder de vorm van groupboxes, textboxes, buttons en labels. Alles wat er op het panel weergegeven is, ingevuld wordt of aangeklikt wordt, moet naar de drive gestuurd worden of uit de drive gehaald worden. De verbinding tussen het panel en de drive gebeurt aan de hand van een OPC-verbinding. Deze OPC-verbinding wordt volledig beheerd vanuit een „class‟ die zich in de hiërarchie onder de form/panel bevindt. Onder het beheren van een verbinding hoort het leggen/verbreken van de verbinding en het beheren van de informatie van of naar de drive. Het panel bestaat uit volgende onderdelen: Een deel dat de connectie met de OPC-server maakt of verbreekt Een deel dat de assen enabled of disabled Een deel dat de assen doet homen. Een deel waar alle informatie van of voor de assen wordt ingegeven of weergegeven. Het programma is zo opgebouwd dat er geen fouten kunnen gebeuren. Bijvoorbeeld bij het drukken op „Connect‟ vergrendelt deze knop en wordt de knop „Disconnet‟ ontgrendeld. Het is zo opgebouwd dat er eerst een Y-coördinaat moet ingegeven worden. Wanneer dit gedaan is, verschijnt er een een „pop-up‟ venster met de waarden waartussen de X-coördinaat gelegen mag zijn. Dit om er zeker van te zijn dat er geen waarden gekozen worden buiten het bereik. Wanneer nu beide coordinaten ingegeven zijn, kan er op de knop „Positioneren‟ gedrukt worden om de assen hun werk te laten doen. Om zekerheid te hebben dat de as enabled, is er een functie die de functie „Enabled‟ aanvinkt wanneer dit het geval is.
39
Figuur 4.3: Lay-out van de visualisering
4.3.3.2 OPC In het vorige punt werd al vernomen dat er een OPC-connectie aanwezig moet zijn om de communicatie tussen de computer en de „SIMOTION‟-drive. moet er eerst een bepaald programma aanwezig zijn op de computer. Dit programma zal fungeren.. en dus met andere woorden de „SIMOTION‟-controller beschikbaar maken voor een OPC-verbinding. Het programma dat hiervoor gebruikt wordt is „SIMATIC.NET‟. Dit programma moet geïnstalleerd zijn op de computer die een rechtstreekse verbinding met de drive heeft. Een crossed ethernetkabel is hier de aangewezen kabel om dit te doen. Dit omdat een verbinding tussen twee devices altijd een crossed-kabel moet zijn. Een straight-kabel mag alleen maar gebruikt worden bij het gebruiken van een switch als tussenonderdeel. Wanneer devices een functie hebben die detecteert welke kabel gebruikt wordt, mag ook een straight-kabel gebruikt worden. Dit omdat in een dergelijk geval het device inwendig zijn poorten, waar de informatie normaal gezien moet toekomen, omdraait. Het programma „SIMATIC.NET‟ bevat een deelprogramma „Configuration Console‟ waarmee de OPC-server kan geconfigureerd worden. Maar eerst moet de drive een „symbol list‟ aanmaken. Deze „symbol list‟ bevat alle informatie om beschikbare gegevens van de drive aan te spreken via een OPC-verbinding. De „SIMOTION‟-drive laat van zichzelf al OPC-connectie toe. Hiervoor is standaard al een optie aangevinkt in de instellingen van de „SIMOTION‟. Het aanmaken van een „symbol list‟ gaat op volgende manier: De zelfgemaakte programma‟s die gebruikt worden, moeten eerst ingesteld worden om hun informatie beschikbaar te maken voor een OPC-verbinding. Rechtermuisklik op de programma unitpropertiescompiler’Enable OPC-XML(load symbols to RT)
40
De OPC-data van de drive exporteren naar de computer. Dit kan op de volgende manier: - In het hoofdscherm: „Options‟‟Export OPC data …‟
Figuur 4.4: Export OPC data
-
Klik hierna de juiste vinkjes aan en zet de versie op „SIMATIC NET V6.3 HF6‟
Figuur 4.5: Instelling export OPC data
-
De map selecteren waarin de datafile moet worden opslagen. ‘C:\Program Files\SIEMENS\SIMATIC.NET\opc2\binS7\simotion\xml\’
Figuur 4.6: Path invoegen
-
Klik op „YES‟ Selecteer de parameters
41
Figuur 4.7: Parameter selecteren
-
Klik op „No‟ want er wordt een router gebruikt tussen computer en drive.
Wanneer dit allemaal gedaan is, kan er overgegaan worden naar het configureren van de OPC-server via „Configuration Console‟. Hiervoor moeten bepaalde stappen doorlopen worden. Deze zijn: Ga naar „Applications‟‟OPC Setting‟‟Select OPC settings‟. Klik hier alleen S7 aan. Dit is het protocol waarin gewerkt kan worden. Hier is alleen het „S7‟-protocol nodig.
Figuur 4.8: OPC-server instellen(1)
Ga naar „Applications‟‟OPC Setting‟‟Symbols‟. Druk hier op „Edit List‟ en selecteer bij „Browse‟ de OPC-file die hierboven aangemaakt is.
42
Figuur 4.9: OPC-server instellen(2)
Ga naar „Modules‟‟Intel® PRO/100 VE Ne‟‟General‟. Stel hier verbinding in als een „TCP/IP(AUTO)->Intel® PRO 100 VE Ne‟ in „Configured mode‟.
Figuur 4.10: OPC-server instellen(3)
Ga als laatste naar „Applications‟‟OPC Setting‟‟Quit OPC server‟ en druk op de startknop. Als dit werkt dan is de configuratie gelukt.
43
Besluit Het doel van deze masterproef om een robot te verkrijgen die in een „X,Y‟positioneringsysteem werkt, is verwezenlijkt. De omrekening van een „X,Y‟-positie naar een verschuiving op de sledes werkt. Er kan dus gesteld worden dat dit voltooid is. De doelstelling om een communicatie te maken tussen de robot en de CNC-machine is gelukt. Er kan dus hier ook gesteld worden dat dit voltooid is. De andere doelstelling om een virtueel bedieningspaneel te hebben om dit alles aan te sturen, is gerealiseerd en kan dus ook als voltooid beschouwd worden. Er kunnen eventueel in de toekomst nog stukken toegevoegd worden als de stand uitbreidt. De hoofddoelstelling om een praktische realisatie te bekomen die het werkelijk industrieel proces van een robot met een CNC-machine kan simuleren, is tot een goed einde gebracht. Op het einde van deze masterproef werken de robot en de CNC-machine goed samen. Hierdoor kan een volledig werkelijk proces gesimuleerd worden. Er kan dus gesteld worden dat de masterproef tot een goed einde gebracht is. Deze toepassing kan in de toekomst ingezet worden in het labo „Elektromechanische aandrijvingen ІІ‟ om te tonen hoe een CNC-applicatie in de industrie werkt.
44
Literatuurlijst [1] 03/2007, "D4x5 Operating manual," SIEMENS. [2] Siemens, "840D sl/840Di sl Manufacturer/Service." [3] Cornillie, and Alexander, 2009, "Programmatie en visualisatie van motion toepassingen met een Simotion D controller," Industrieel Ingenieur, Kortrijk. [4] 2009, "computer numerical control -- Britannica Online Encyclopedia." [5] Franz, J., 1990, "CNC theorie en praktijk," M. Hauck, ed., De Vey Mestdagh, Middelburg, p. 207 p. [6] Van Grinsven, J. M., 1985, "Numerieke besturingen : (C)NC-mechanisch verspanen," Delft: Waltman, p. 152 p. [7] "Robot." [8] "Industrial robot - Wikipedia, the free encyclopedia." [9] "OSHA TECHNICAL MANUAL - SECTION IV: CHAPTER 4," S OF HAZARDS.
45
Bijlagen X,Y-coördinaat slede verschuiving Hier wordt de omrekening van de ingegeven X,Y-coordinaten naar de positieverplaatsing van de sledes uitgelegd. Eerst en vooral zijn er de twee uiterste posities die de sledes van de robot aankunnen. Enerzijds is er de minimum positie waar de benen het verst uit elkaar staan(Oranje) en anderzijds is er de maximum positie waar de benen het dichts bij elkaar staan(Rood). Er is wel één ding dat direct opvalt. Geen van de twee bereikt zijn echt maximum. In beiden ligt hun maximum die ze aankunnen iets dichter dan het werkelijke maximum. Het werkelijke maximum is dus de stand waar benen ofwel op elkaar ofwel in het verlengde van elkaar liggen. Dit is eenvoudig te verklaren. Wanneer de benen in het verlengde van elkaar liggen zou het onmogelijk zijn om de benen terug in de lucht te krijgen. Ook kunnen we dit maximum niet halen doordat de sledes niet lang genoeg zijn. Wanneer de benen nu op elkaar liggen maken ze de neiging om omver te vallen. Dit omdat ze dan vrij kunnen roteren rond het bevestigingspunt.
29,8 30 Figuur 0.1: Positie sledes
Voor het uitleggen van de berekeningen moet er eerst geweten zijn dat staven van de robot 60 mm lang zijn. Ook moet er geweten zijn dat de minimum positie gelijk is aan de helft van de maximum hoogte. Voor de berekening uit te leggen wordt de driehoek opgesplitst in twee rechthoekige driehoeken. De berekeningen gaan iedere keer gebeuren aan de hand van één van deze rechthoekige driehoeken. De berekeningen gaat op volgende manier: Delen van de gewenst Y_positie door de maximum Y_positie Breuk:= Y_Coordinaat / Y_Bereik (1.1) De vorige berekening vermenigvuldigen met de werkelijk te overbruggen hoogte. Omrekening:= breuk * 30 (1.2)
46
Bij vorige berekening wordt het verschil in hoogte tussen de echte minimum positie en de eigenlijke minimumpositie opgeteld. H_positie:= Omrekening + 30 (1.3) De vorige uitkomst word gekwadrateerd. Tu:= H_positie**2 (1.4) Aan de hand van „de wet van pythagoras„ en met behulp van de vorige berekening word het volgende berekend. Na deze berekening wordt de afstand bekomen van de positie van de staven op de gewenste positie ten opzichte van het middelpunt. Ou:= 60**2 – Tu (1.5) Au:=SQRT(in:=Ou) (1.6)
Hierna word de afstand berekend van de positie van de staven in nulpositie ten opzichte van het middelpunt. Oo:= 60**2 - 29.8**2 (1.7) Ao:=SQRT(in:=Oo) (1.8)
Hierna worden de twee afstanden van de twee vorige berekening afgetrokken van 60 mm. Dit om te weten hoeveel de sledes moeten verschuiven in „X,Y‟coördinaten aan de nulpositie of aan de gewenste positie te geraken. Pu:= 60 – Au (1.9) Po:= 60 – Ao (1.10) Nu worden de vorige resultaten van elkaar afgetrokken om de werkelijke verschuiving in „X,Y‟-coördinaten te verkrijgen. Wp:= Pu – Po (1.11)
47
Hierna word de finale berekening gemaakt om over te gaan van het „X,Y‟coördinatensysteem naar de verschuiving van de sledes. Breuk2:= Wp/Ao (1.12) Slede_berekening:= Breuk2 * 79 (1.13)
48
CNC-programma “Circle” programma SETUP G17 G60 G 55 G91 G94 //alle parameters instellen, G55 omdat de gewenste positie daar ingeladen is, G91 omdat de positie incrementeel ingenomen word MSG("CIRCLE PROGRAM") G0 X0 Y0 // Naar de gewenste positie gaan G0 X100 G0 Z-100 G2 X-100 Y-100 CR=100 F1000 G2 X-100 Y100 CR=100 G2 X100 Y100 CR=100 G2 X100 Y-100 CR=100 G0 Z100 G0 X-100 G56 // in G56 zit de positie (0,0,0). Deze word gebruikt om terug naar de veilige positie te gaan G0 X0 Y0 // naar veilige positie gaan MSG("") M30 “SETUP”-programma $p_uifr[2,X,TR]=-r30 $p_uifr[2,Y,TR]=-r31 $p_uifr[2,Z,TR]=-r32 M17
// parameter R30 wordt weggeschreven in de X-waarde van G55 // parameter R31 wordt weggeschreven in de Y-waarde van G55 // parameter R32 wordt weggeschreven in de Z-waarde van G55
49
Programma van de Robot ST ST_As_Achter INTERFACE USEPACKAGE cam; FUNCTION_BLOCK fb_As_Achter_Enable; FUNCTION_BLOCK fb_As_Achter_Disable; FUNCTION_BLOCK fb_As_Achter_Homing; END_INTERFACE IMPLEMENTATION FUNCTION_BLOCK fb_As_Achter_Enable VAR_TEMP Ret_Val: DINT; END_VAR Ret_Val :=_enableaxis( axis:=As_Achter, enablemode:=ALL, servocontrolmode:=ACTIVE, nextcommand:=IMMEDIATELY, commandid:=_getcommandid() ); END_FUNCTION_BLOCK FUNCTION_BLOCK fb_As_Achter_Disable VAR_TEMP Ret_Val: DINT; END_VAR Ret_Val := _disableaxis( axis:= As_Achter, disablemode:=ALL, servocontrolmode:=INACTIVE, nextcommand:=IMMEDIATELY, commandid:=_getcommandid() ); END_FUNCTION_BLOCK FUNCTION_BLOCK fb_As_Achter_Homing VAR_TEMP Ret_Val: DINT; END_VAR Ret_Val :=_homing( axis:=As_Achter, homingmode:=ACTIVE_HOMING, homeposition:=0.0, velocity:=10.0, velocityprofile:=USER_DEFAULT, commandid:=_getcommandid() ); END_FUNCTION_BLOCK END_IMPLEMENTATION
50
ST_As_Voor INTERFACE USEPACKAGE cam; FUNCTION_BLOCK fb_As_Voor_Enable; FUNCTION_BLOCK fb_As_Voor_Disable; FUNCTION_BLOCK fb_As_Voor_Homing; END_INTERFACE IMPLEMENTATION FUNCTION_BLOCK fb_As_Voor_Enable VAR_TEMP Ret_Val: DINT; END_VAR Ret_Val :=_enableaxis( axis:=As_Voor, enablemode:=ALL, servocontrolmode:=ACTIVE, nextcommand:=IMMEDIATELY, commandid:=_getcommandid() ); END_FUNCTION_BLOCK FUNCTION_BLOCK fb_As_Voor_Disable VAR_TEMP Ret_Val: DINT; END_VAR Ret_Val := _disableaxis( axis:= As_Voor, disablemode:=ALL, servocontrolmode:=INACTIVE, nextcommand:=IMMEDIATELY, commandid:=_getcommandid() ); END_FUNCTION_BLOCK FUNCTION_BLOCK fb_As_Voor_Homing VAR_TEMP Ret_Val: DINT; END_VAR Ret_Val :=_homing( axis:=As_Voor, homingmode:=ACTIVE_HOMING, homeposition:=0.0, velocity:=10.0, velocityprofile:=USER_DEFAULT, commandid:=_getcommandid() ); END_FUNCTION_BLOCK END_IMPLEMENTATION
51
ST_Berekening INTERFACE PROGRAM berekeningen; PROGRAM omzettingen; END_INTERFACE IMPLEMENTATION FUNCTION fc_Slede_berekening :LREAL //Constanten VAR CONSTANT Y_Bereik: LREAL := 500; END_VAR //Input parameters VAR_INPUT Y_Coordinaat: LREAL; END_VAR //Lokale variabelen VAR Omrekening: LREAL; Breuk: LREAL; Breuk2: LREAL; H_positie: LREAL; Au: LREAL; Ao: LREAL; Pu: LREAL; Po: LREAL; Wp: LREAL; Oo: LREAL; Ou: LREAL; Tu: LREAL; END_VAR Oo:= 60**2 - 29.8**2; Breuk:= Y_Coordinaat / Y_Bereik; Omrekening:= breuk * 30; H_positie:= Omrekening + 30; Tu:= H_positie**2; Ou:= 60**2 - Tu; Au:=SQRT(in:=Ou); Ao:=SQRT(in:=Oo); Pu:= 60 - Au; Po:= 60 - Ao; Wp:= Pu - Po; Breuk2:= Wp/Ao; fc_Slede_berekening:= Breuk2 * 79 ; END_FUNCTION FUNCTION fc_X_Max :LREAL //Constanten VAR CONSTANT X_Bereik: LREAL := 200; X_Top: LREAL := 79; END_VAR
52
//Input parameters VAR_INPUT Y_Verplaatsing: LREAL; END_VAR //Lokale variabelen VAR Omrekening: LREAL; END_VAR Omrekening:= Y_Verplaatsing * X_Bereik; fc_X_Max:= Omrekening / 79 ; END_FUNCTION FUNCTION fc_Uitkomst_X :LREAL //Constanten VAR CONSTANT X_Bereik: LREAL := 200; X_Top: LREAL := 79; END_VAR //Input parameters VAR_INPUT X_Verplaatsing: LREAL; END_VAR //Lokale variabelen VAR Omrekening: LREAL; END_VAR Omrekening:= X_Verplaatsing / X_Bereik; fc_Uitkomst_X:= Omrekening * 79 ; END_FUNCTION FUNCTION fc_Uitkomst_Voor :LREAL //Input parameters VAR_INPUT X_Coordinaat: LREAL; Y_Coordinaat: LREAL; END_VAR fc_Uitkomst_Voor:=Y_Coordinaat - X_Coordinaat; END_FUNCTION FUNCTION fc_Uitkomst_Achter :LREAL //Input parameters VAR_INPUT X_Coordinaat: LREAL; Y_Coordinaat: LREAL; END_VAR //Lokale variabelen VAR YTussen: LREAL; END_VAR YTussen:= Y_Coordinaat * -1; fc_Uitkomst_Achter:= -Y_Coordinaat - X_Coordinaat; END_FUNCTION
53
PROGRAM berekeningen VAR myY : LREAL; myX : LREAL; END_VAR IF g_x_y_berekenen= TRUE then myY:= fc_slede_berekening(y_coordinaat:=g_iy); g_imax:=fc_x_max(y_verplaatsing:=myY); END_IF; IF g_x_x_berekenen= TRUE THEN myX:=fc_uitkomst_x(x_verplaatsing:=g_ix ); g_ipositieachter:=fc_uitkomst_achter(x_coordinaat:= myX, y_coordinaat:= myY); g_ipositievoor:=fc_uitkomst_voor(x_coordinaat:=myX, y_coordinaat:=myY); END_IF; END_PROGRAM PROGRAM omzettingen IF xtransfer= TRUE THEN cnc_go:= cnc_safe; part_loaded:=loaded; END_IF; END_PROGRAM END_IMPLEMENTATION
ST_Fout INTERFACE PROGRAM pg_PerFout; PROGRAM pg_TechFault; END_INTERFACE IMPLEMENTATION PROGRAM pg_PerFout ; END_PROGRAM PROGRAM pg_TechFault ; END_PROGRAM END_IMPLEMENTATION
54
LAD/FBD Homing
Inschakelen
Positioneren
Uitschakelen
55
MCC-Beweging Bewegen
56
SafePos
57
Programma CNC(Nieuw) OB1
58
FC 150
59
FC 151
60
FB150
61
62
63
64
DB150
65
Inschakelen van de opstelling Homing zonder robot
Schakel de drives in Druk op de loshangende drukknop om de „Line Module‟ te enablen Druk op de „Jog‟-knop Druk op de „Ref Point‟-knop Druk op de „Spindle start‟-knop Druk op de „Feed start‟-knop Druk op de mindenste knop bovenaan van de middelste rij om de rest te enablen Druk op de twee knoppen links onderaan de middelste rij op alles te enablen Druk op de „Reset‟-knop Druk op de „Cycle‟-start knop
Figuur 0.2: Bedieningspaneel
Met robot
Volg dezelfde handelingen als bij „Homing zonder robot‟ Leg hierna de „SIMOTION‟-module aan en start de computer Start op de PC de SCOUT omgeving. Maak online verbinding Download het project Zet de „SIMOTION‟ in start Reset de „SINUMERIK‟ via het knopje in te duwen die getoond is op figuur 0.3 Leg alle signalen aan zoals op figuur 0.2 Druk op de „Reset‟-knop Nu kan er gestart worden
66
Er moet hier wel bij vermeld worden dat de „SIMOTION‟ zeker in „RUN‟ moet staan voordat de „SINUMERIK‟ wordt gereset. Dit omdat de „SINUMERIK‟-drive zijn slave moet kunnen zien bij het opstarten.
Figuur 0.3: 'Reset'-knop op SINUMERIK
67