Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

EtherCAT DeltaRobot Xilinx Spartan FPGA

449 views

Published on

Demo for EtherCAT FPGA Core that controls a Deltarobot Construction.

Published in: Technology
  • Be the first to comment

EtherCAT DeltaRobot Xilinx Spartan FPGA

  1. 1. Afstudeerwerk ingediend tot het behalen van het diploma van master in de industriële wetenschappen: Elektronica-ICT Promotor: dhr. V. Claes (XIOS Hogelschool Limburg) Academiejaar 2011 – 2012 INDUSTRIAL AUTOMATION USING FPGA AND ETHERCAT TECHNOLOGY XIOS HOGESCHOOL LIMBURG DEPARTEMENT TOEGEPASTE INGENIEURSWETENSCHAPPEN Simon VERSTREKEN
  2. 2. i Industrial automation using FPGA and EtherCAT technology Industrial automation using FPGA and EtherCAT technology Inhoudsopgave 1. Dankwoord ..........................................................................................................................1 2. Abstract ...............................................................................................................................2 3. lijst met afkortingen..............................................................................................................3 4. Het bedrijf ............................................................................................................................5 5. Inleiding ...............................................................................................................................6 6. Gebruikte systemen en technologieën.................................................................................8 6.1 FPGA............................................................................................................................8 6.1.1 Atlys Spartan 6 ontwikkelingskit ..............................................................................10 6.2 Delta-Robot ................................................................................................................11 6.2.1 Kinematisch model van de deltarobot......................................................................12 6.3 DC servo motoren.......................................................................................................17 6.3.1 Werking van de servo motor....................................................................................18 6.3.2 Aansturing servomotoren ........................................................................................19 6.4 MicroBlaze..................................................................................................................20 6.4.1 Floating point unit....................................................................................................20 6.4.1.1 Floating point Notatie in binaire vorm...................................................................21 6.5 EtherCAT protocol ......................................................................................................24 6.5.1 Werking EtherCAT protocol.....................................................................................24 6.5.1.1 Telegram .............................................................................................................25 6.5.1.2 Fieldbus Memory Management ...........................................................................25 6.5.1.3 SyncManagers.....................................................................................................26 6.5.1.4 EtherCAT IP-Core flash geheugen ......................................................................26 6.5.2 EtherCAT state machine .........................................................................................27 7. Opbouw van het project.....................................................................................................28 7.1 Printed Circuit Board...................................................................................................28 7.1.1 Multisim schema .....................................................................................................28 7.1.2 Ultiboard schema ....................................................................................................30 7.2 PWM controller...........................................................................................................32 7.2.1 werking PWM controller ..........................................................................................32
  3. 3. ii Industrial automation using FPGA and EtherCAT technology 7.3 EtherCAT IP-Core configuratietool..............................................................................34 7.4 FPGA configuratie ......................................................................................................34 7.4.1 MicroBlaze ..............................................................................................................36 7.4.2 PLB slaves..............................................................................................................36 7.4.2.1 EtherCAT slave ...................................................................................................37 7.4.2.2 Pre-setup.............................................................................................................37 7.4.2.3 PWM4channel .....................................................................................................37 7.4.2.4 switches, LED en pushbuttons.............................................................................37 7.4.2.5 SPI-Flash.............................................................................................................38 7.4.2.6 RS232_UART......................................................................................................38 7.4.3 Clock generator.......................................................................................................38 7.5 Software voor de MicroBlaze ......................................................................................39 7.5.1 Bootloop programma...............................................................................................39 7.5.2 Hoofdprogramma ....................................................................................................39 7.6 PLC programmatie......................................................................................................40 7.6.1 Twincat System manager........................................................................................40 7.6.2 Twincat PLC Control ...............................................................................................40 8. Problemen ondervonden bij het eindwerk ..........................................................................42 8.1 EtherCAT licentie........................................................................................................42 8.2 Flash geheugen EtherCAT IP-Core ............................................................................42 8.3 Twincat netwerkkaart..................................................................................................42 8.4 Twincat gebruikersrechten..........................................................................................43 8.5 USB programmeerkabel .............................................................................................43 8.6 Robot onderdelen .......................................................................................................43 8.7 Beckhoff PLC verbinding ............................................................................................44 8.8 Robot te hevig ............................................................................................................44 9. Resultaat ...........................................................................................................................45 10. Conclusie .......................................................................................................................46 11. Lijst met afbeeldingen ....................................................................................................47 12. Lijst met Vergelijkingen ..................................................................................................48 13. Appendix A: Patent Deltarobot .......................................................................................49 14. Appendix B: Bill Of Materials..........................................................................................60 15. appendix C: Licentieovereenkomst Beckhoff..................................................................61 16. appendix D: Handleiding configuratietool .......................................................................63 Lijst met referenties ..................................................................................................................74
  4. 4. 1 Industrial automation using FPGA and EtherCAT technology 1. Dankwoord Het maken van een masterscriptie vereist niet alleen veel tijd, inspanning en toewijding; het vereist eveneens een grote dosis hulp. Het feit dat dit werk tot stand is kunnen komen is niet alleen het resultaat van mijn eigen inspanningen, maar ook van al diegenen die mij in deze drukke tijden hebben bijgestaan. Hen zou ik via deze weg even willen bedanken. Vooreerst richt ik mij tot mijn externe promotor, Ing Vincent Claes, voor de aanbieding van het interessante onderwerp. Zonder hem had dit werk immers nooit tot stand kunnen komen. Tevens wens ik mijn interne promotor, Drs. Ing Stijn duchateu, hartelijk te bedanken voor de geleverde inspanningen. Zijn vele tips en raadgevingen vormden een ware bron van inspiratie. Ook mijn ouders verdienen een welgemeende dank u. Zij hebben mij altijd heel vrij gelaten in alles wat ik doe, zo ook in mijn studiekeuze. Dankzij hun steun kon ik de richting Elektronica- ICT beginnen en ook blijven studeren, waarvoor dank. Vervolgens zou ik mijn vriendin Dorien willen bedanken. Zij heeft mij doorheen het jaar altijd gesteund en meehelpen zoeken naar mogelijke oplossingen en problemen. Zij heeft er ook voor gezorgd dat ik op tijd en stond een pauze nam en hierbij “outside the box” kon denken door een even alles te laten rusten. Ik zou ook al mijn vrienden willen bedanken voor de steun en hulp die zij geboden hebben die ervoor zorgde dat dit eindwerk tot een goed eind gebracht werd. Ook wil ik alle mensen bij Beckhoff Automations en de EtherCAT technology group bedanken voor hun snelle antwoorden en reacties op mails en forum topics. Kortom: bedankt aan iedereen die heeft bijgedragen aan het tot stand komen van deze masterscriptie.
  5. 5. 2 Industrial automation using FPGA and EtherCAT technology 2. Abstract Interne promotor: Drs. ing. Stijn. Duchateau Externe promotor: Ing. Vincent Claes Het doel van deze masterproef is het creëren van een proefopstelling die FPGA technologie integreert in een industrieel geautomatiseerde setting. De beschouwde opstelling bestaat hierbij uit een delta robot, een FPGA en een Beckhoff PLC met touchscreen. Een FPGA (Field Programmable Gate Array) is een geïntegreerde schakeling bestaande uit programmeerbare logische functies, zoals decoders. De opstelling voorziet een communicatieplatform tussen de FPGA en de PLC, dewelke gebeurt aan de hand van een EtherCAT verbinding. EtherCAT is een nieuwe veldbus technologie die gebruik maakt van de bestaande ethernet infrastructuur. Vanwege het ondersteunen van alle netwerktopologieën worden de kosten van de infrastructuur echter aanzienlijk verminderd. Bovendien maakt het EtherCAT protocol gebruik van telegrammen om informatie over te sturen, dewelke on-the-fly worden verwerkt. Deze processen gebeuren op hardware niveau, wat ertoe leidt dat de datagrammen slechts één nanoseconde vertraging oplopen. Dit alles verheft EtherCAT tot efficiënt communicatiemiddel. De in de proefopstelling gebruikte kabels, aansluitingen en netwerkkaarten, die tevens Full- Duplex ondersteunen, voldoen dan ook aan de voorwaarden om het EtherCAT protocol te kunnen verwerken. Nadat de PLC data heeft verstuurd naar de FPGA met behulp van het EtherCAT protocol, wordt dit protocol gedecodeerd op de FPGA. In het decoderingsproces wordt gebruik gemaakt van een EtherCAT IP-Core, dewelke verleend wordt door Beckhoff Automations. Bovendien wordt er op de FPGA een MicroBlaze Soft-Core processor geïmplementeerd. Op deze microcontroller draait een C programma die de verzonden telegrammen gaat verwerken. Ten slotte wordt de verwerkte data doorgestuurd naar de motorsturing. Deze motorsturing is een IP-Core die volledig in VHDL geschreven is en die gekoppeld wordt aan de microprocessor via een bussysteem. De Deltarobot wordt zodoende aangestuurd, en de integratie van FPGA technologie in industriële automatisatie is een feit.
  6. 6. 3 Industrial automation using FPGA and EtherCAT technology 3. lijst met afkortingen FPGA Field Programmable Gate Array ETG EtherCAT Technology Group PWO Projectmatig Wetenschappelijk Onderzoek FPDA-2 FPGA Platform with Data-I/0 capabilities for Industrial and educational Applications-2 MSD Mechatronic System Design I/O Input/Output OS Operating System µC Microcontroller HDL Hardware Description Language ASIC Application-Specific Integrated Circuit GPIO General Purpose Input Output HDL Hardware Description Language DC Direct Current (gelijkstroom) LAN Local Area Network NIC Network Interface Card CPU Central Processing Unit ESC EtherCAT Slave Controller LUT Look Up Table IC Integrated Circuit FPU Floating Point Unit IP-Core Intellectual Property Core BOM Bill Of Materials XPS Xilinx Platform Studio SDK Software Development Kit RAM Random Access Memory CLB Configurable Logic Block
  7. 7. 4 Industrial automation using FPGA and EtherCAT technology IOB Input Output Block LMB Local Memory Bus PLB Processor Local Bus OTP One Time Programmable FMMU Field Memory Management Unit SM Sync Manager
  8. 8. 5 Industrial automation using FPGA and EtherCAT technology 4. Het bedrijf Deze masterproef is in opdracht van XIOS Hogeschool Limburg en in samenwerking met Beckhoff Automations, EtherCAT technology group, FPDA-2 en MSD (Mechatronic System Design) onderzoeksprojecten. XIOS Hogeschool Limburg: De XIOS Hogeschool is niet alleen een Hogeschool maar ook een Expertise centrum voor industrie, onderwijs en samenleving. Deze hogeschool wilt, door beroep te maken op industriële standaarden, de studenten opleren om in een zo breed mogelijk werkgebied nuttig te zijn. Onder de XIOS zijn er 2 onderzoeksprojecten die ook onderzoek doen naar mechatronica en embedded systemen.  FPDA-2: FPDA-2 is een PWO project van de professionele bachelor opleiding Elektronica-ICT van de XIOS Hogeschool Limburg. Zij ontwikkelen embedded systemen gebruikmakend van de nieuwste technologieën. Deze Masterproef is één voorbeeld van zo een project.  MSD: MSD staat voor Mechatronic System Design, het is een nieuw PWO- onderzoeksproject dat de verschillende professionele bachelor opleidingen van het departement N-Tech uitvoeren. Het project combineert Mechanische constructies met state-of-the-art elektronica. Daarnaast wordt de HMI (Human Machine Interface) afgehandeld door een iOS of Android smartdevice. Deze onderzoeksgroep deelt dezelfde interesses in het mechatronica gedeelte van dit eindwerk. Beckhoff Automation: Beckhoff Automation is een van herkomst Duits bedrijf dat al sinds 1980 actief werkt rond het automatiseren van processen. Beckhoff maakt open automatisatie systemen die werken op PC gebaseerde technologie. Hun productgamma gaat van industriële Pc’s, I/O’s en Fieldbus componenten en zelfs automatiseringssoftware. Beckhoff is tevens ook gezeteld in de EtherCAT technology group.  EtherCAT technology group: The EtherCAT technology group is een groep van verschillende bedrijven die in de wereld van de automatisatie zetelen. Al deze bedrijven hebben hun krachten gebundeld om één universele Fieldbus technologie op de markt te brengen die iedereen de mogelijkheid geeft om eenvoudig te implementeren.
  9. 9. 6 Industrial automation using FPGA and EtherCAT technology 5. Inleiding Zoals de titel al aangeeft handelt deze masterproef over het implementeren van een EtherCAT Core in een Field Programmabel Gate array (FPGA). Deze implementatie wordt gerealiseerd aan de hand van een praktisch opstelling, een delta robot en een touchpanel PLC van Beckhoff. Deze robot is een non-professionele opstelling die enkel gemaakt is om de werking van het volledige systeem te demonstreren. Het einddoel van dit eindwerk is om vanuit de Beckhoff PLC data te sturen over een EtherCAT verbinding. Figuur 1 geeft een flowchart weer hoe dit in zijn werk gaat. Dit gaat als volgt in zijn werk:  De Beckhoff PLC stuurt data pakketten over ethernet via het EtherCAT protocol naar een FPGA waar een MicroBlaze microcontroller (µC) op geïmplementeerd is.  Deze FPGA ontvangt de gegevens via het EtherCAT IP block dat geïmplementeerd wordt op de FPGA via een processorbussysteem.  De data wordt verwerkt in de FPGA door middel van een Soft-Core µC. Het type µC dat in dit eindwerk gebruikt wordt is de MicroBlaze.  De verwerkte data wordt dan op zijn beurt gebruikt voor het aansturen van de Delta- Robot. Figuur 1 Flowchart project
  10. 10. 7 Industrial automation using FPGA and EtherCAT technology Dankzij de samenwerking met Beckhoff kan, en mag het EtherCAT IP block door de XIOS Hogeschool Limburg gebruikt worden voor dit onderzoek.(Zie appendix C voor de overeenkomst) De gebruikte FPGA is een Spartan 6 ontwikkeld door Xilinx. Digilent heeft rond deze FPGA een ontwikkelbord gemaakt dat Atlys gedoopt werd. Het ontwikkelbord wordt onder meer ondersteund door het Xilinx University Program.
  11. 11. 8 Industrial automation using FPGA and EtherCAT technology 6. Gebruikte systemen en technologieën 6.1 FPGA Field Programmable Gate Array (FPGA) zijn programmeerbare halfgeleider apparaten die gebaseerd zijn op een matrix van configureerbare logische blokken (CLB’s). Deze CLB’s worden verbonden met elkaar door programmeerbare connecties. In tegenstelling tot application specific integrated circuits (ASICS) worden FPGA’s niet gemaakt voor een specifieke toepassing. FPGA’s kunnen geprogrammeerd worden afhankelijk van de gewenste applicatie of gewenste functie. Het dominerende type van FPGA’s zijn diegene die gebaseerd zijn op het SRAM type. Deze types kunnen in tegenstelling tot One Time Programmable FPGA’s (OTP), meerdere keren geprogrammeerd worden. Het voordeel van een FPGA is dat het ontwerp in een latere ontwerpcyclus nog steeds kan aangepast worden. Figuur 2 geeft een figuur weer van de FPGA structuur. Figuur 2 Interne FPGA structuur De FPGA bestaat uit duizenden identieke CLB’s. Deze bestaan uit flipflops, multiplexers , logische poorten en uit een configureerbare schakelmatrix met 4 of 6 ingangen. Elke logische cel kan individueel gekoppeld worden aan een andere cel. Op deze manier kan men het gedrag, van de cellen, bepalen. Om de interconnectie tussen de cellen te maken worden er programmeerbare verbindingen aangestuurd. Op deze manier ontstaat er een cluster van cellen die gebruikt kan worden als bouwstenen voor andere schakelingen. Op deze manier kan er een microcontroller architectuur geïmplementeerd worden. Om deze CLB’s naar de buitenwereld te verbinden kunnen ze verbonden worden met I/O Blocks (IOB’s). deze IOB’s hebben de nodige elektronica om het signaal bruikbaar te maken zodat er schakelaars mee ingelezen kunnen worden of LED’s aangestuurd kunnen worden. Bij de meeste FPGA soorten is er een optie om registers toe te voegen aan de logische cellen. Op deze manier ontstaat er clocked logic. De combinatorische eigenschappen van elke cel worden geïmplementeerd als Look Up Tables (LUT’s).
  12. 12. 9 Industrial automation using FPGA and EtherCAT technology Het bepalen van welke logische cellen met elkaar verbonden moeten worden is een zeer ingewikkeld proces. Maar gelukkig wordt dit proces volledig afgehandeld door speciale software. De gebruiker moet enkel de functie bepalen door het schrijven van code. Deze programmeertaal heet Hardware Description Language (HDL) en is gelijkaardig aan de programmeertaal die gebruikt wordt voor ASIC’s. Deze taal wordt gebruikt om de werking van de FPGA te bepalen aan de hand van de logische blokken. Door het schrijven van deze VHDL code gaan de logische cellen onderling met elkaar verbonden worden. Als de VHDL code volledig en correct geschreven is dan kan de FPGA geprogrammeerd worden. Om de FPGA nog meer flexibeler te maken kan er een Microcontroller geïmplementeerd worden op de FPGA. Hierdoor is het makkelijker om meer gecompliceerde functies te verkrijgen. Nog een ander voordeel is dat er niet meer op het laagste niveau geprogrammeerd hoeft te worden. De µC kan immers voorzien worden van een programma dat geschreven is in C-code. Dit soort µC noemt men een Soft-Core µC omdat deze microcontroller softwarematig geïmplementeerd is. Een zeer groot voordeel hiervan is dat de specificaties van de microcontroller niet vast liggen en dus aangepast kunnen worden aan de benodigdheden van het gewenste systeem. Een nog groter voordeel is dat zowel sequentieel als parallel gegevens kunnen verwerken worden. Door gebruik te maken van een microcontroller op een FPGA moet er een systeem zijn dat de Microcontroller toelaat om te communiceren met alle rand apparatuur. Xilinx heeft hier geopteerd om een bussysteem te gebruiken. Dit bussysteem wordt ook wel de Processor Local Bus (PLB) genaamd. Op deze PLB bus kan er extra periferie aangesloten worden. Op Figuur 3 wordt de gehele structuur van een embedded systeem met een MicroBlaze µC weergegeven. Deze PLB bus is volledig synchroon met 1 kloksignaal. Op deze bus spreken we van Masters en slaves. De Master is een periferie die een commando naar de slaves kan sturen. Een voorbeeld van een Master is de MicroBlaze zelf. Een Slave op dit bus systeem kunnen de general purpose Input Outputs zijn (GPIO). Deze GPIO kan een aansturing van LED’s zijn of het inlezen van drukknoppen. Figuur 3 Embedded systeem
  13. 13. 10 Industrial automation using FPGA and EtherCAT technology Atlys Spartan 6 ontwikkelingskit6.1.1 Figuur 4 Atlys FPGA ontwikkelbord Voor dit eindwerk wordt er gebruik gemaakt van een Atlys Spartan 6 ontwikkelbord. De Atlys FPGA is een compleet en “ready-to-use” FPGA ontwikkelbord gebaseerd op de Xilinx SPARTAN 6 LX45 FPGA. Deze kit wordt onder andere ook ondersteund door het Xilinx University Program, en binnen diverse cursussen van het departement N-Tech van de XIOS Hogeschool Limburg gebruikt. Volgende lijst geeft de periferie weer van de Atlys Spartan 6  128Mbyte DDR2 16-bit wide data  10/100/1000 Ethernet PHY  On-board USB2 ports (programatie en data overdracht)  USB-UART en USB-HID port (muis/toetsenbord)  twee HDMI video input ports en twee HDMI output ports  AC-97 Codec met line-in, line-out, mic en headphone  Real time power monitors on all power rails  16Mbyte x4 SPI Flash voor configuratie en data opslag  100MHz CMOS oscillator  48 I/O’s verbonden met externe connectoren  GPIO bevat 8 LED's, 6 drukknoppen en 8 schakelaars
  14. 14. 11 Industrial automation using FPGA and EtherCAT technology 6.2 Delta-Robot Een delta robot is een robot die gevormd wordt door 3 servomotoren die 120° van elkaar verdraaid staan. Aan deze servomotoren worden armen gemaakt zodat de servomotor deze kan laten roteren. Aan het uiteinde van deze armen worden scharnierpunten voorzien die op hun beurt verbonden zijn met stangen die naar de effector gaan. Door het inventief ontwerp van de deltarobot kan er in een 3D vlak gewerkt worden door enkel de rotatie van de servomotoren te beïnvloeden. De Delta robot wordt ook wel eens parallelle robot genaamd. Deze naam is ontstaan omdat de “effector” en het basis element altijd parallel zijn ten opzichte van elkaar (zie Figuur 5). Ook zorgen deze benen ervoor dat de “effector” evenwijdig met de oppervlakte is ongeacht de posities van de servomotoren. Dit is ook een voordeel aan de delta robot. Op deze manier kan er een grijper of dergelijke vast gemaakt worden onder de effector. In dit werk wordt er een vacuüm pomp aangesloten op de delta-robot. Deze pomp wordt ook aangestuurd door een servomotor. Door middel van het vacuüm kan een muntstuk of bal worden opgenomen en terug geplaatst. Figuur 5 geeft de constructie weer van een Delta robot. Figuur 5 constructie delta robot 1)Basis element 2)Scharnierpunten 3)Servomotoren 4)Been van de delta robot 5)Effector
  15. 15. 12 Industrial automation using FPGA and EtherCAT technology Het design van deze robot word beschreven in een 36 tal patenten. De belangrijkste patenten zijn:  WIPO patent WO 87/03528 18 juni 1987  US patent opgemaakt op 11 december 1990 (US 4,976,582)  Europees patent opgemaakt op 17juli 1991 (EP 0 250 470)  Het US patent steekt ook als bijlage achteraan (Zie Appendix A) Kinematisch model van de deltarobot6.2.1 Om de robot te kunnen gebruiken moet deze geprogrammeerd worden zodoende dat deze de juiste bewegingen uit kan voeren. Om de locatie van de effector te beïnvloeden moeten de servo motoren roteren. Om de juist rotatie hoek te bepalen moet er een wiskundig afleiding gevormd worden. Deze afleidingen noemt men de inverse kinematica van een robot. Dit wil zeggen dat de locatie van de effector gebruikt wordt om de rotatiehoek te bepalen van de servomotoren. Er bestaat ook voorwaartse kinematica, hierbij worden de rotatiehoeken gebruikt om de positie van de effector te bepalen. Om de berekeningen te kunnen maken voor forward kinematics moeten de servo motoren beschikken over een feedback systeem zodat de rotatiehoek van de servo motoren kan uitgelezen worden. Aangezien de gebruikte servomotoren in dit eindwerk hier niet over beschikken is het niet relevant om deze techniek te bespreken in dit eindwerk. Zoals aangehaald moeten de rotatiehoeken bepaald worden. Hiervoor moet er een wiskundige berekening gebeuren. Eerst worden er enkele parameters vastgelegd die het lezen en begrijpen van de berekeningen vereenvoudigen.  De lengte van de basis driehoek: f  De lengte van de driehoek van de effector: e  Het rotatiepunt van de servomotor: F  Het rotatiepunt tussen de 2 armen: J  Het rotatiepunt aan de effector: E  De lengte tussen punt F en J: rf  De lengte tussen punt J en E: re In Figuur 6 is het kinematisch model voorgesteld met alle parameters.
  16. 16. 13 Industrial automation using FPGA and EtherCAT technology Figuur 6 Parameters van de Delta Robot Het standaard assenstelsel wordt gekozen op de basisplaat. Hierdoor gaat de effector altijd in een negatieve Z richting werken. Door het ontwerp van de robot en de keuze van het assenstelsel kan de arm F1J1 enkel roteren in het YZ vlak om het punt F1. De cirkel, die het punt J1 kan beschrijven heeft een straal die gelijk is aan rf. De andere 2 scharnierpunten zijn universal joints of ook wel kruiskoppelingen genaamd. Dit wil zeggen dat de arm E1J1 vrij kan roteren ten opzichte van het scharnierpunt E1. Doordat de arm E1J1 vrij kan roteren wordt er niet langer een cirkel omschreven maar een bol waarin het punt J1 zich kan bevinden. Omdat de berekeningen te vereenvoudigen wordt er een projectie gedaan op het YZ vlak. Hierdoor wordt er niet langer een bol omschreven maar een cirkel die in het YZ vlak ligt. Er moet dan wel rekening gehouden worden dat het middelpunt en de straal van de bol niet hetzelfde is als deze van de cirkel. Voor de herberekening van het middelpunt wordt er ook een projectie van het punt E1 gedaan op het YZ vlak. Dit nieuwe punt wordt E’1 genoemd. Nu zijn er 2 cirkels in het YZ vlak terug te vinden 1 met middelpunt F1 en de andere met middelpunt E’1. De straal van de cirkel wordt bepaald door de afstand tussen het geprojecteerde punt E’1 en het punt J1. De intersectie van deze 2 cirkels geeft het punt J1 weer. Als dit punt bekend is kan de hoek, die de servo arm ten opzichte van de Y as maakt, berekend worden.
  17. 17. 14 Industrial automation using FPGA and EtherCAT technology Figuur 7 bepaling van het punt E1’ Het middelpunt van de effector wordt het punt E0 genoemd omdat dit het punt is waar de actie van de effector plaats vind. De coördinaten van punt E0 zijn: ( ) Om van het punt E0 naar het punt E1 te herleiden wordt met goniometrie de afstand bepaald tussen E0 en E1. in Figuur 7 is af te leiden dat de afstand tussen punt E0 en E1 gelijk is aan: √ Vergelijking 1: afstand tussen E0 en E1 Vanuit bovenstaande vergelijking kunnen de coördinaten van het punt E1 bepaald worden. Dit punt wordt vervolgens geprojecteerd op het YZ-vlak. Dit wil zeggen dat de X coördinaat van het punt E’1 gelijk moet zijn aan 0. Hieruit volgt dat afstand tussen het punt E1 en E’1 dezelfde is als de verplaatsing van de X-coördinaat. Vergelijking 1 Geeft de afleiding in formule vorm. ( √ ) Vergelijking 2: Afstand tussen E1 en E’1
  18. 18. 15 Industrial automation using FPGA and EtherCAT technology Figuur 8 Delta robot parameters Vervolgens moet de afstand tussen het punt E’1 en J1 berekend worden. Omdat er een projectie op de X as gebeurd is kan dit met de stelling van Pythagoras opgelost worden. Vergelijking 3: stelling van Pythagoras Als deze stelling uitgewerkt wordt en vereenvoudigd wordt dan krijgen we Vergelijking 4 √ Vergelijking 4: Berekening lengte E’1J1 De straal van de cirkel die bekomen wordt door de projectie te doen van de bol naar het YZ vlak is dan gelijk aan de lengte van E’1J1. Om de coördinaten van het punt F1 te berekenen kan een soortgelijke formule als Vergelijking 1 gebruikt worden. Het enige verschil is dat de lengte van de basisdriehoek (f) genomen wordt in plaats van de lengte van de effector driehoek (e). Dit toegepast op Vergelijking 1 geeft volgende formule.
  19. 19. 16 Industrial automation using FPGA and EtherCAT technology √ ( √ ) Vergelijking 5: afstand tussen F0 tot F1 Nu zijn alle coördinaten en lengtes berekend die nodig zijn om het punt J1 te bepalen. Om dit punt te bepalen worden er een stelsel van 2 vergelijkingen opgesteld. ( √ ) ( ) ( √ ) ( ) Vergelijking 6 Stelsel om het punt J1 te bepalen Uit deze 2 vergelijkingen kunnen we de coördinaten van het punt j1 bepalen door middel van de discriminant. Als de discriminant kleiner is dan 0 wilt het zeggen dat het punt dat gekozen wordt niet bestaat. Als de discriminant niet 0 is dan gaan er 2 punten berekend kunnen worden. Een eenvoudige manier om het juiste punt te berekenen is door ervanuit te gaan dat het uiterste punt het juiste punt is dat nodig is. De hoek die de servomotor moet aannemen kan dan berekend worden door: ( ) Vergelijking 7 Hoek Theta voor de servo motor Nu dat de hoek van de servo motor bepaald is moeten de overige 2 hoeken van de 2 andere servomotoren ook nog berekend worden. Doordat er een goed referentie assenstelsel gekozen is, wordt het berekenen van de 2de en 3de hoek niet moeilijk. Door gebruik te maken van de symmetrie van de deltarobot kunnen we vorige berekeningen opnieuw gebruiken. De eerste stap is dat het referentie assenstelsel 120° gedraaid wordt om de Z-as. Hierdoor ontstaat een nieuw referentieassenstelsel met coördinaten X’Y’Z’. In dit assenstelsel kan dan de hoek Thetha2 berekend worden. Hiervoor kunnen de bovenstaande formules gebruikt worden. Het enige verschil is dat voor de 2de hoek nieuwe coördinaten, x’0 en y’0, moeten berekend worden voor het punt E0. Om deze rotatie uit te voeren wordt er gebruikt gemaakt van een rotatiematrix. ( ) ( ) ( ) ( ) Vergelijking 8 Rotatiematrix De hoek θ in de formule is 120°. Hierdoor gaan de coördinaten 120 graden verdraaid worden tegen de wijzers van de klok in.
  20. 20. 17 Industrial automation using FPGA and EtherCAT technology 6.3 DC servo motoren DC servomotoren zijn motoren die werken op een DC spanning en hebben drie aansluiting. Twee van deze aansluitingen worden gebruikt om de motor te voorzien van de benodigde spanning, de derde is de controle aansluiting. Met deze controle aansluiting kan men de positie van de servomotor bepalen. Door op deze controle aansluiting een PWM signaal aan te leggen met een periode van 20MS kan men de stand bepalen (zie 6.3.2 Aansturing servomotoren) Figuur 9 DC servomotor In de behuizing van RC servomotor, zoals weergegeven is in Figuur 9, zit een compleet servo systeem dat bestaat uit een DC motor, tandwielreducties, een terugkoppel schakeling en een aanstuurschakeling. De feedback schakeling bestaat meestal uit een regelbare weerstand die aangesloten is op de draaiende as. In Figuur 10 zijn alle onderdelen aangeduid Figuur 10 onderdelen van een servomotor
  21. 21. 18 Industrial automation using FPGA and EtherCAT technology Werking van de servo motor6.3.1 Figuur 11 Interne werking van een servo motor Figuur 11 geeft een blokschema weer hoe dat de DC servomotor intern er voor zorgt dat de as op de juiste hoek staat. De as van DC motor is verbonden met een tandwielreductie deze is op zijn beurt verbonden met een sensor. Deze reductie is ook naar buiten toe verbonden zodat een servo arm kan verbonden worden. De potentiometer waarde die gebruikt wordt in de terugkoppelschakeling veranderd naargelang de stand van de servomotor. Dus een verandering in draaihoek geeft een verandering in weerstandswaarde. Deze verandering geeft op zijn beurt een verandering in spanningswaarde. De verandering in spanning over de weerstand wordt gebruikt om de motor op een bepaald punt te houden. De “puls breedte naar spanningsomvormer” zet een PWM signaal om naar een spanning. Het PWM signaal is afkomstig van een aanstuureenheid zoals een microcontroller of in dit geval een FPGA. Beide spanningen worden vervolgens vergeleken met elkaar en versterkt door de “error amplifier”. Deze versterkte spanning wordt dan aan de DC-motor toegevoerd. Als de spanning afkomstig van de “puls breedte naar spanningsomvormer” en de spanning afkomstig van de potentiometer even groot zijn dan is de versterkte error waarde gelijk aan 0 waardoor de DC motor geen aansturing heeft. Het gevolg hiervan is dat de DC-motor dus op een bepaalde positie blijft Staan. De exacte positie van de DC motor wordt bepaald door het aangelegde PWM signaal.
  22. 22. 19 Industrial automation using FPGA and EtherCAT technology Aansturing servomotoren6.3.2 De positie van de servomotor wordt bepaald door het signaal dat aangelegd wordt op de 3de aansluiting ook wel de “control wire” genaamd. Dit signaal is een PWM signaal met een vaste periode van 20MS (frequentie=50 Hz). Door de puls breedte aan te passen kan de rotatiehoek bepaald worden van de servo motor. Als de puls breedte 1MS is dan gaat de servo motor helemaal naar links uitwijken, is de puls breedte 2MS dan gaat de servo motor helemaal naar rechts uitwijken. De puls breedte moet dan ook tussen 1 en 2 ms liggen. Als dit niet het geval is dan zal de servomotor oververhitten en stuk gaan omdat de rotatiehoek groter is dan de maximaal toegelaten rotatiehoek. In dit eindwerk wordt er gebruikt gemaakt van servomotoren met een ingebouwde oververhittingsbeveiliging om dit probleem te voorkomen. In dit eindwerk wordt er gebruikt gemaakt van servo motoren van het merk Hitec. Het typenummer en alle gebruikte onderdelen zijn terug te vinden in de Bill Of Materials (BOM). Deze is terug te vinden in Appendix B Figuur 12 geeft weer hoe dit PWM signaal eruitziet. Figuur 12 Servo PWM signaal
  23. 23. 20 Industrial automation using FPGA and EtherCAT technology 6.4 MicroBlaze De MicroBlaze soft-Core microprocessor is een processor die geïmplementeerd kan worden op de FPGA. De functies van deze softwarematige micro-controller kunnen zelf gekozen worden. Deze processor is speciaal ontwikkeld voor Xilinx gebaseerde FPGA’s. Het is een 32 bit RISC processor die gebaseerd is op de Harvard architectuur. Deze architectuur zorgt ervoor dat de opslag, instructies en data van elkaar gescheiden zijn. Figuur 13 geeft deze Harvard architectuur weer. Figuur 13 Harvard architectuur van de MicroBlaze De MicroBlaze processor heeft meer dan 70 configuratie opties. Al deze opties geven de MicroBlaze de benodigde kracht en flexibiliteit om in een zeer brede context toepasbaar te zijn. De microcontroller kan op deze manier ook zorgen voor een kleine footprint op de FPGA zodat men hogere prestaties kan halen uit de FPGA. Langs de andere kant kan men de MicroBlaze configureren om veel functies te ondersteunen. Hierdoor wordt de footprint op de FPGA uiteraard groter en zijn de prestaties minder hoog. Zoals eerder aangehaald zijn er veel functies beschikbaar voor de MicroBlaze. In volgende punten worden de belangrijkste mogelijkheden kort besproken die van toepassing zijn voor de masterproef. Floating point unit6.4.1 Een Floating Point Unit (FPU) is een eenheid die de berekening van Floating points op zich gaat nemen. Omdat deze unit apart geïmplementeerd wordt, en deze speciaal ontwikkeld is om zuiver Floating point berekeningen te doen, gaat het verwerken van Floating points veel sneller. De meeste processoren kunnen wel omgaan met floating points door aan software emulatie te doen. Maar deze berekeningen nemen veel tijd in beslag waardoor de snelheid van het hele systeem achteruit gaat. De MicroBlaze heeft daarom een speciale optie om een FPU te implementeren. Deze FPU loopt parallel mee met de MicroBlaze processor. Als er in de software een floating point berekening gedaan wordt dan zal de FPU deze berekening automatisch overnemen. Als de FPU
  24. 24. 21 Industrial automation using FPGA and EtherCAT technology de berekening gedaan heeft gaat deze het resultaat terug sturen naar het MicroBlaze programma. De FPU van de MicroBlaze kan enkel met single precision floating points omgaan. Als er een typecasting is naar een double precision floating point, dan zal de MicroBlaze deze berekening softwarematig uitvoeren. Hierdoor kan het programma enorme vertragingen oplopen. Doordat het EtherCAT protocol een zeer strikte timing heeft moeten deze vertragingen zoveel mogelijk vermeden worden. Deze typecasting komt zeer vaak voor als er een vermenigvuldiging of een deling wordt uitgevoerd. Door na elke bewerking een typecasting van double naar single te doen wordt er voor gezorgd dat de MicroBlaze zo weinig mogelijk belast wordt. En dat de FPU al het zware rekenwerk voor zijn rekening neemt. Floating point is een methode om een reëel getal voor te stellen en er berekeningen op te uit te voeren. Het woord floating is ontstaan omdat de komma “float” ofwel zweeft. Dit wil zeggen dat de komma niet vast ligt en dus kan verschoven worden om een reëel getal, met variërende precisie, voor te stellen. De standaard computer representatie van floating point ligt vast in de IEEE 754. Deze zijn vergelijkbaar met de kenmerken van de wetenschappelijke notatie uit de wiskunde. En is opgedeeld in 2 grote delen. Het eerste deel is de mantissa. Dit is het basis getal vanuit de wetenschappelijke notatie. Het tweede deel is de exponent bij de wetenschappelijke notatie van decimale getallen is dit voorgeteld door waarbij x de exponent is en 10 het grondtal. 6.4.1.1 Floating point Notatie in binaire vorm Om een reëel getal als een binaire waarde te omschrijven is er, zoals eerder aangehaald, de IEEE 754 standaard. Volgens deze standaard zijn er 2 soorten floating points namelijk de single floating point en de double floating point. Het verschil tussen beide is het aantal bits dat gebruikt wordt. Bij een single floating point wordt het reëel getal voorgesteld door 32 bits en bij een double wordt dit voorgesteld door 64 bits. Het is dan ook wel duidelijk dat het getal dat gerepresenteerd wordt bij een 64 bit floating point veel groter kan zijn of meer cijfers achter de komma kan bevatten. In dit eindwerk wordt er enkel gebruik gemaakt van single precision floating points. Figuur 14 Single precision floating point notatie Figuur 14 geeft de opbouw van de single precision floating point weer. Zoals duidelijk te zien is bestaat de representatie uit 3 delen. Het S gedeelte (rood) stelt het teken voor als deze bit ‘0’ is dan is het een positief reëel getal als dit ‘1’ is dan stelt het een negatief reëel getal voor. Het E gedeelte (geel) bestaat uit 8 bits die de exponent voorstellen. En dan is er als derde deel, het M gedeelte (groen), dat de Mantissa heet. Om een decimale waarde om te vormen naar de binaire single
  25. 25. 22 Industrial automation using FPGA and EtherCAT technology precision floating point moeten er enkele stappen gebeuren. Aan de hand van een voorbeeld zullen deze stappen uitgelegd worden. Neem als voorbeeld het getal -210,25 genomen. Eerst wordt het linkerdeel van de komma omgevormd naar een binaire waarde. Dus 210 wordt 11010010 in binaire waarde. We bekomen deze waarde door gebruik te maken van het binair tal stelsel. Het volgende wat er moet gebeuren is de omvorming van het rechtergedeelte van de komma. Dit gedeelte wordt gevormd door gebruik te maken van negatieve machten. Dus de waarde achter de komma moet uitgeschreven worden als Vergelijking 9 komma gedeelte omvormen naar binaire waard Of om het eenvoudig uit te drukken is dit Vergelijking 10 mantissa vorming voor Floating point Doordat het voorbeeld getal juist eindigt op ,25 is dit net ¼ dus de binaire waarde is ,01. Hieruit volgt dat de volledige representatie in binaire waarde gelijk is aan 11010010,01 De volgende stap is dit getal normaliseren zodat er slechts 1 beduidend cijfer voor de komma staat. Om dit te doen in het voorbeeld moet de komma 7 plaatsen naar links schuiven zo ontstaat het getal 1,101001001. Omdat er genormaliseerd wordt zal het eerste getal altijd 1 zal zijn in binaire waarde. Hierdoor mag de eerste bit weg gelaten worden. Op deze manier wordt de mantissa bekomen. Omdat de mantissa voorgesteld wordt als 23 bits moet de rest aangevuld worden met een‘0’ tot er een getal ontstaat dat 23 bits lang is. In dit voorbeeld wordt dit dus 10100100100000000000000. De tekenbit is ‘1’ omdat het voorbeeld getal een negatieve waarde heeft. Deze bit is ‘0’ als het een positief getal is. Dus op dit moment zijn er al 24 bits van de 32 bits gekend. De 8 bits die de exponent voorstellen heeft in dit voorbeeld als waarde 7.Omdat er ook negatieve exponenten kunnen zijn moet dit ook in rekening gebracht worden. Dit probleem kan opgelost worden door de exponent op te tellen met het getal 127 dit is de hoogst mogelijke waarde die voorgesteld kan worden door 7 bits. Op deze manier kan er aan de hand van de eerste bit al nagegaan worden of er sprake is van een positieve of negatieve exponent. Dus in dit voorbeeld gaat de waarde van de exponent gelijk zijn aan 134. Dit getal gaat voorgesteld worden door zijn binair equivalent. Het resultaat hiervan is 10000110. Als dit achtereenvolgens aaneen gekoppeld wordt dan krijgen we een 32 bits Floating point waarde in binaire notatie. Vergelijking 11 geeft de volledige bitstream weer die het getal -210,25 representeert. 1 Vergelijking 11 representatie van een floating point in binaire waarde Floating point heeft een variabele precisie. Deze precisie ontstaat doordat de mantissa een vast aantal bits heeft. In deze mantissa wordt het gehele getal weergeven. Dus een groot getal met veel cijfers voor de komma gaat een lagere precisie hebben omdat er minder cijfers achter de komma mogelijk zijn. Is het getal
  26. 26. 23 Industrial automation using FPGA and EtherCAT technology dat gerepresenteerd wordt zeer klein bijvoorbeeld 1 cijfer voor de komma dan kunnen er meer cijfers achter de komma geschreven kunnen worden. Hierdoor is duidelijk te zien dat de precisie van een getal verkleind naarmate het getal groter wordt. Een andere vorm van precisie verlies heeft te maken dat er een round off kan gebeuren. Hierdoor is het getal dat gerepresenteerd wordt niet exact. Als er dan een aftelling gebeurd met een getal dat rond dezelfde waarde ligt dan worden alle significante cijfers 0. Hierdoor blijven er echter zeer kleine waardes over die niet correct zijn doordat er een round off is gebeurd bij een vorige bewerking. Bij het gebruik van integers is de maximale afrondingsfout 1 omdat een integer een vast aantal bits heeft die niet waarde afhankelijk zijn. Dit wil zeggen dat elke bit van een integer een vaste macht representeert. Dit is niet het geval voor floating point getallen en hierdoor is de fout die gemaakt kan worden variabel.
  27. 27. 24 Industrial automation using FPGA and EtherCAT technology 6.5 EtherCAT protocol EtherCAT protocol staat voor Ethernet for Control Automation Technology. EtherCAT kan dus gebruikt worden in een heel uitgebreid gebied binnen de automatisatie. EtherCAT is een open technologie die ontwikkeld is door de EtherCAT Technology Group, (ETG). Dit is een overkoepelende groep van bedrijven die een universeel protocol, met zeer uiteenlopende functionaliteiten, hebben ontwikkeld. De EtherCAT technology group staat er voor in dat ieder bedrijf het EtherCAT protocol kan implementeren. Om dit te verwezenlijken moet het protocol een zeer uitgebreide functionaliteit bieden. Om dit te garanderen bevat de ETG een aantal experten die uit allerlei verschillende takken van de industrie komen. Dit gaat van machine bouwers tot automatisatie bedrijven. Het EtherCAT protocol is een protocol, dat net zoals het ethernet protocol, gebruik kan maken van een LAN-netwerk. Het voordeel van het EtherCAT protocol is dat het de limitaties van ethernet overbrugt. Het ethernet pakket wordt niet meer ontvangen, verwerkt en omgezet naar processdata in elke connectie. Bij EtherCAT wordt het pakket “On the fly” verwerkt. Door gebruik te maken van fieldbus memory management units (FMMU’s) in elke slave node wordt enkel de data uitgelezen die bedoeld is voor de slave node. Het data pakket of ook wel telegram genoemd wordt onmiddellijk doorgestuurd naar het volgende apparaat. Tegelijkertijd wordt de ingangsdata mee verwerkt in het doorgestuurde telegram. Door deze techniek van data verwerking worden de telegrammen slechts met enkele Nanoseconden vertraagd. Het hele EtherCAT protocol is gebaseerd op een master-Slave structuur. Nog een groot voordeel van EtherCAT is dat het zeer eenvoudig is om master apparaten te creëren. Door gebruik te maken van goedkoop, commercieel verkrijgbare standaard netwerk kaarten ook wel Network Interface Cards (NIC’s) genaamd, kan men een masterapparaat creëren. Ook kan eender welke on board ethernet controller gebruikt worden als hardware interface voor het EtherCAT protocol. Een van de functies van deze NIC’s is dat de data die gestuurd wordt gebruik maakt van Direct Memory Acces (DMA). Dit wil zeggen dat de data niet via de CPU gaat herleid worden maar rechtstreeks verwerkt kan worden. In volgende hoofdstukken wordt het volledige EtherCAT protocol in detail uitgelegd. Werking EtherCAT protocol6.5.1 In vergelijking met ethernet is het EtherCAT systeem één groot apparaat. Dit apparaat ontvangt en verstuurd ethernet telegrammen. Dit apparaat bevat geen ethernet controller met een microprocessor, maar bevat een aantal EtherCAT Slave Controllers (ESC’s). Deze ESC’s verwerken de inkomende telegrammen onmiddellijk en halen de relevante data uit het telegram of plaatsen data terug in het telegram. Dit wordt dan op zijn beurt doorgestuurd naar de volgende ESC. De Laatste ESC stuurt het volledige telegram terug naar de eerste ESC zodat deze het kan terugsturen naar de Master. Dit dient tevens als een controle van het telegram. Dit hele procedé rust op het principe dat ethernet gebruik maakt van een full duplex communicatie.
  28. 28. 25 Industrial automation using FPGA and EtherCAT technology 6.5.1.1 Telegram Zoals al eerder aangehaald zijn de telegrammen gebaseerd op het zelfde principe als het ethernet protocol. Zoals te zien is in figuur X zijn de eerste 14 bytes van een telegram voor EtherCAT en Ethernet hetzelfde. Hierdoor kan EtherCAT op een gewoon Local Area Netwerk (LAN) werken en kan er ook gebruikt worden van standaard commercieel verkrijgbare switchen en dergelijke. Figuur 15 EtherCAT telegram EtherCAT en Ethernet kunnen ook samen geïmplementeerd worden. Als dit het geval is worden er tijdsloten voorzien waarin een ethernet data pakket kan verstuurd worden. Hierdoor is het ook mogelijk om via een TCP/IP verbinding data door te sturen. Dit is vooral handig als op hetzelfde netwerk een data server aangesloten is die alle gegevens bijhoudt van het volledige EtherCAT systeem. Zo kan er vanop afstand de status van het hele netwerk en van elke master en slave opgevraagd worden zonder het netwerk van EtherCAT te verstoren. 6.5.1.2 Fieldbus Memory Management Meerdere EtherCAT apparaten kunnen tegelijk aangesproken worden met slechts 1 data pakket. Dit pakket bevat dan meerdere commando’s. Dit zorgt ervoor dat het de data capaciteit verhoogd en het systeem sneller kan werken. Hoewel een ingangssignaal met exact 2 bit aan data een enorme overhead maakt. Dit probleem wordt aangepakt door de Fieldbus Memory Management (FMMU). De FMMU zorgt ervoor dat de data rate bijna 100% is en dit zelfs voor data van maar 2 bits lang. Deze memory managers kunnen vergeleken worden met de memory managers van een pc. Ze gaan logische adressen omvormen naar fysische adressen.Dit gebeurd aan de hand van een tabel in de IP-Core. Het verschil met standaard memory managers gaat deze FMMU kunnen werken tot zelfs op bitgewijze operaties. Dit laat toe om 1 enkele bit op een bepaald adres te veranderen. Als er niet langer een EtherCAT apparaat aangesproken wordt maar rechtstreeks een adresplaats binnen het netwerk kan aangesproken worden kan de data direct op de juiste locatie geplaatst worden. Als in het EtherCAT netwerk nog andere slaves zijn die een passend adres hebben voor het pakket gaan ook tegelijk hun data lezen en terug schrijven in het EtherCAT pakket. Op deze manier kan met 1 enkel pakket een groot aantal slaves aangesproken worden. Omdat de FMMU in elke slave aanwezig is kan de master, in dit geval de PLC, een volledige lijst opmaken met de juiste adressen. Hierna stuurt de master zijn adreslijst door naar alle slaves zodat zij weten welk adres binnen het pakket voor hun bestemd is. Hierdoor is het mappen van apparaten
  29. 29. 26 Industrial automation using FPGA and EtherCAT technology niet langer nodig en cruciaal. De volgorde van apparaten en hoe ze onderling met elkaar verbonden zijn is niet langer van belang. Dit is echter wel belangrijk bij het initialiseren van het netwerk. 6.5.1.3 SyncManagers SyncManagers zorgen ervoor dat de data altijd consistent is die uitgelezen wordt door de MicroBlaze. Omdat het systeem zo snel werkt kan het zijn dat wanneer de MicroBlaze data aan het lezen is van het register dat er ondertussen al nieuwere data bijgekomen is. Hierdoor kan het voorkomen dat er data gelezen wordt die niet correct is. Om dit probleem op te lossen zijn er de SyncManagers (SM). De syncmanagers kunnen op 2 manieren werken.  Buffered mode In buffered mode wordt er gebruik gemaakt van 3 buffers. 1 om naar te schrijven, 1 om van te lezen en een laatste waar altijd de laatste data bijgehouden wordt. Beide geheugenplaatsen zijn even groot. De SyncManagers zelf handelt af wat en wanneer in welk geheugen komt te staan. Het voordeel van buffered mode is dat er tegelijk data ken gelezen en geschreven worden.  Mailbox mode In mailbox mode is er maar 1 geheugen ter beschikking. En kan er dus bijgevolg niet tegelijk gelezen en geschreven worden naar dit geheugen. De SyncManagers zorgt ervoor dat eerst de geschreven data verzonden is alvorens data kan uitgelezen worden. Het nadeel van deze manier is dat er niet altijd gelezen of geschreven kan worden naar het geheugen. Het voordeel is wel dat er tot drie maal minder geheugen plaats moet voorzien worden dan bij de Buffered mode. 6.5.1.4 EtherCAT IP-Core flash geheugen Om de IP-Core te laten werken moet deze geconfigureerd worden. Deze configuratie wordt gemaakt in een XML bestand. Dit bestand wordt ook de EtherCAT Slave Information (ESI) genaamd. In dit bestand worden alle SyncManagers gelinkt aan de Field memory management units gekoppeld. De I/O’s worden gekoppeld aan de SyncManagers door gebruik te maken van Process Data Objects. ER zijn 2 soorten PDO’s er zijn er om de inkomende gegevens te verwerken ( RxPDO) en er zijn degene die de uitgaande gegevens verwerken( TxPDO). In dit ESI bestand worden ook standaard gegevens opgeslagen zoals serienummer van de IP-Core, de naam die gegeven is aan het apparaat. Deze naam wordt dan weergeven in Twincat system manager. Dit ESI bestand moet kunnen gelezen worden vooraleer de IP-Core naar een operationele staat kan gaan. Lukt het niet om deze configuratie te laden of bevat een fout dan blijft de IP-Core in de initialisatie status staan.
  30. 30. 27 Industrial automation using FPGA and EtherCAT technology EtherCAT state machine6.5.2 De EtherCAT state machine is een state machine die het opstarten regelt van de IP- Core. Onderstaande figuur geeft de state machine weer. Figuur 16 EtherCAT state machine Zoals te zien is start de EtherCAT slave altijd in de “Init” modus. Van hieruit kan Slave 2 richtingen uit. Dit kan zijn “pre-Operational” of “Bootstrap”. De “bootstrap” modus dient enkel om een nieuwe firmware update te doen of om een nieuwe configuratie te schrijven naar het flash geheugen. Deze status is niet noodzakelijk en heeft niets te maken met de normale werking van de slave. De status kan ook naar “pre- Operational” gaan. In deze staat gaat de EtherCAT slave controleren of alles in orde is zoals I/O’s en of alle systemen werkende zijn. Van hieruit kan de status veranderen naar “Safe-Operational”. Deze staat kan gebruikt worden voor het initialiseren van de aangesloten toepassing. Bijvoorbeeld een systeem check van alle verbonden apparatuur. Van hieruit kan de slave naar “operational” gaan. In deze staat werkt de IP-Core volledig en is volledig operationeel. Vanaf dit moment kunnen er gegevens verstuurd en ontvangen worden door de slave. Zoals ook te zien is op de tekening is het mogelijk op van elke staat weer naar de “InIt” staat te gaan zonder het gehele Process opnieuw te doorlopen.
  31. 31. 28 Industrial automation using FPGA and EtherCAT technology 7. Opbouw van het project Om deze masterproef tot een goed einde te brengen werd het project in verschillende delen gesplitst. Door op deze manier tewerk te gaan kan men het programma beter begrijpen en is het eenvoudiger om fouten te detecteren. Dit hoofdstuk bespreekt de opbouw en de eventuele problemen die opdoken tijdens het uitvoeren van de proef. 7.1 Printed Circuit Board Om al de hardware te verbinden met de FPGA is er een Printed Circuit Board (PCB) ontwikkeld. Dit is nodig omdat de FPGA niet genoeg vermogen kan leveren om de motoren rechtstreeks aan te sturen. Om een PCB te ontwikkelen zijn er 2 cruciale stappen nodig. Deze worden uitgelegd in volgende punten. Multisim schema7.1.1 Voor het ontwerpen van het schema wordt het software pakket Multisim gebruikt. Dit is een softwarepakket om elektrische schema’s uit te tekenen en te testen op functionaliteit. Op het schema zijn verschillende onderdelen terug te vinden. Er zijn enkele connectoren op geplaatst die ervoor zorgen dat we de PCB kunnen verbinden met de FPGA en de servo motoren. Er zijn ook 4 optocouplers terug te vinden in het schema Deze ervoor zorgen dat het signaal dat van de FPGA komt volledig gescheiden is van de servomotoren. Op die manier wordt de FPGA beschermd van eventuele fouten die er optreden bij de motoren. Er staan ook 4 transistors op het schema. Deze zijn nodig omdat de aansturing van de optocouplers meer vermogen vraagt dan de I/O’s van de FPGA kunnen leveren. Dus deze transistors zorgen ervoor dat het nodige vermogen geleverd kan worden aan de optocouplers. Op het schema is nog een derde IC terug te vinden. Dit is een serieel flash geheugen dat nodig is voor de EtherCAT IP-Core. Hierop gaat de IP-Core configuratie data schrijven en lezen. Al deze componenten worden verbonden met een connector zodat alles ingeplugd kan worden op het ontwikkelbord met de FPGA. Onderstaande figuur geeft het Multisim schema weer.
  32. 32. 29 Industrial automation using FPGA and EtherCAT technology Figuur 17 Multisim schema voor PCB Hierop is duidelijk te zien dat het schema 2 delen heeft. Het linker deel dat werkt op 5V. Dit zorgt ervoor dat de servomotoren voorzien worden van de juiste spanning. Het rechter gedeelte is het gedeelte dat rechtstreeks in contact komt met de FPGA. Dit gedeelte werkt op 3,3V, deze spanning is afkomstig van het FPGA ontwikkelbord.
  33. 33. 30 Industrial automation using FPGA and EtherCAT technology Ultiboard schema7.1.2 Als het schema volledig uitgetekend is volgt de 2de stap, het exporteren naar Ultiboard. Hierin kan de lay-out van de PCB vast gelegd worden. Na het exporteren zijn alle componenten van het schema terug te vinden in het programma. Deze worden dan, door middel van logisch beredeneren, zodanig geplaatst dat ze eenvoudig te solderen zijn. Omdat het oog ook wat mag is het aan te raden om de componenten mooi uit te lijnen ten opzichte van elkaar. Figuur 18 Geeft weer hoe dat de componenten geplaatst zijn op de PCB. Figuur 18 Plaatsing van de componenten op PCB Als eenmaal de componenten op de juiste positie staan kan er begonnen worden aan het “Routen” van de koperen banen. Het routen houdt in dat alle component op een juiste manier verbonden zijn met elkaar. Eenmaal als dit gedaan is kan er ook een “Powerplane” geplaatst worden. Dit zorgt ervoor dat alle leegtes die er ontstaan, door het routen, opgevuld worden met koper. Dit zorgt ervoor dat er, bij het maken van de PCB, minder afval ontstaat. Als de pcb voorzien is van een powerplane dan ziet deze eruit als weergegeven wordt in Figuur 19. De powerplane heeft ook als nut om alles met hetzelfde grond potentiaal met elkaar te verbinden.
  34. 34. 31 Industrial automation using FPGA and EtherCAT technology Figuur 19 PCB klaar voor productie Als dit allemaal gebeurd is, is de PB klaar voor productie. Ultiboard geeft de gebruiker de mogelijkheid om een voorbeeld weer te geven in 3D hoe de PCB er in het echt gaat uitzien. Figuur 20 laat deze 3D weergave zien Figuur 20 Boven aanzicht PCB in 3D
  35. 35. 32 Industrial automation using FPGA and EtherCAT technology Figuur 21 Onderaanzicht PCB in 3D 7.2 PWM controller Voor het aansturen van de servomotoren is er een PWM signaal nodig met een periode van exact 20 ms.(zie DC servo motoren) Om dit PWM signaal op te wekken wordt er een aangepaste Intelectual Property Core (IP-Core) aangemaakt. Deze IP-Core moet geschreven worden in HDL. Omdat de IP Core in HDL geschreven is wordt er zeer dicht op hardware niveau gewerkt. Omdat er een periode van exact 20 ms nodig is, is er een zeer juiste timing nodig. Dit kan bereikt worden door zeer in HDL te programmeren. werking PWM controller7.2.1 Een PWM controller is zeer eenvoudig te schrijven in HDL. Voor de aansturing is een periode van 20 ms nodig, door de interne klok, van de controller, op te tellen kan dit signaal softwarematig worden gegenereerd. De MicroBlaze µC heeft een klok frequentie van 50 MHz. Dit betekend dat hij op 1 seconde 50 000 000 pulsen gaat genereren. Aan de hand van volgende formule kan dan berekend worden hoeveel klokcycli er moeten geteld worden om een periode van 20 ms te krijgen Vergelijking 12 PWM klokpulsen tellen
  36. 36. 33 Industrial automation using FPGA and EtherCAT technology Vergelijking 13 Periode bepaling Om een signaal van 50 Hz te krijgen moet er, volgens bovenstaande formule, tot 1.000.000 geteld worden. Het optellen gebeurd telkens als er een stijgende flank van de klokpuls gedetecteerd wordt. Als dit gebeurd gaat er een variabele incrementeren met 1. Als deze aan de waarde van 1.000.000 komt dan wordt er een signaal (flag)hoog gemaakt. Op dat zelfde moment wordt de variabele weer op 0 gezet. Door het flag signaal wordt de periode vast gelegd op 50 Hz, wat overeenkomt met 20ms. Vanaf het moment dat het flag signaal hoog geworden is gaat er een 2de timer starten. Deze bepaald de duty cycle. In dit werk moet de duty cycle tussen 1 en 2 ms liggen. Aan de hand van Vergelijking 12 tot Vergelijking 13 kan er eenvoudig berekend worden dat voor een periode van1 ms tot 50.000 moet geteld worden en voor een periode van 2 ms tot 100.000 geteld moet worden. Figuur 22 geeft het PWM signaal weer dat gegenereerd werd door de IP-Core. De periode is 20 ms met een duty cycle van 1,5 ms Figuur 22 PWM signaal gemeten met een oscilloscoop
  37. 37. 34 Industrial automation using FPGA and EtherCAT technology 7.3 EtherCAT IP-Core configuratietool Zoals al eerder aangehaald moet er een IP-Core geïmplementeerd worden op de FPGA om het EtherCAT protocol om te vormen naar bruikbare data. De IP-Core heeft vele functies ter beschikking. Het configureren van de IP-Core is een zeer eenvoudige procedure. Omdat Beckhoff een eigen configuratie tool heeft, moet er geen rekening gehouden worden met achterliggende code. Deze configuratietool heeft heel wat instellingen daarom is er een bijlage gemaakt die als handleiding kan gebruikt worden. In deze handleiding worden ook de meeste belangrijke functies besproken en uitgelegd. Deze handleiding is terug te vinden in appendix D 7.4 FPGA configuratie Nu dat er een PCB ontworpen is die de link vormt tussen de servomotoren en de FPGA moet de FPGA nog geconfigureerd worden. Om de FPGA te configureren zijn er 2 programma’s nodig. Het eerste programma heet Xilinx Platform Studio (XPS). In dit programma kan de hardware omschreven worden die uiteindelijk op de FPGA komt te staan. Het FPGA programma bestaat uit verschillende onderdelen zoals weergegeven wordt in Figuur 23. Elk onderdeel zal in het kort omschreven worden in volgende paragrafen.
  38. 38. 35 Industrial automation using FPGA and EtherCAT technology Figuur 23 XPS schema
  39. 39. 36 Industrial automation using FPGA and EtherCAT technology MicroBlaze7.4.1 Zoals al eerder aangehaald wordt er gebruik gemaakt van een MicroBlaze microcontroller. Deze MicroBlaze microcontroller is verbonden met het DDR ram geheugen, de Local Memory Bus (LMB) en de Processor Local Bus (PLB). In Figuur 24 staat de MicroBlaze microcontroller centraal en kan data versturen naar de andere onderdelen via de LMB en PLB bussen. De LMB wordt voornamelijk gebruikt om geheugen aan te spreken waar de processor zijn data kan wegschrijven en uitlezen. Dit is bijvoorbeeld het DDR2 Random Acces Memory (RAM) dat op zich op het FPGA ontwikkelbord bevind. De PLB echter wordt gebruikt om processor data te versturen naar alle periferie. Op deze PLB bus worden dan slaves gekoppeld. Op deze manier kan de µC communiceren met deze slaves. De EtherCAT IP-Core is onder andere een slave die gekoppeld is aan de PLB bus. Figuur 24 XPS MicroBlaze connectie PLB slaves7.4.2 Op Figuur 25 staan alle slaves weergegeven die aangesloten zijn op de PLB bus. Deze slaves worden ook wel IP-Cores genoemd. Elke slave heeft zijn eigen specifieke functies. In volgende paragrafen zal de basis functie, van elke slave, kort uitgelegd worden.
  40. 40. 37 Industrial automation using FPGA and EtherCAT technology Figuur 25 PLB slaves 7.4.2.1 EtherCAT slave Deze IP-Core heeft als functie het EtherCAT protocol te decoderen en bruikbare data op de PLB bus te zetten zodat deze data gebruikt kan worden. Deze IP-Core wordt in detail uitgelegd in hoofdstuk 6.5. 7.4.2.2 Pre-setup De IP-Core pre-setup heeft als functie om voorinstellingen vast te leggen. Het is niet mogelijk om een bepaalde uitgang van de FPGA Hoog of Laag te maken zonder deze op voorhand te definiëren. In deze pre-setup worden alle uitgangen van de FPGA gedefinieerd zodat ze wel aangestuurd worden. Bijvoorbeeld om het SPI flash geheugen te kunnen gebruiken moeten er bepaalde uitgangen van de FPGA hoog gemaakt worden. Deze uitgangen worden dan gedefinieerd in deze IP-Core. 7.4.2.3 PWM4channel In deze IP-Core wordt het hele PWM signaal gevormd. Deze IP-Core verwacht vier 32 bit integers en vormt deze om naar het juist PWM signaal voor de motoren. In hoofdstuk 7.2 wordt de opbouw van het PWM signaal in detail uitgelegd. 7.4.2.4 switches, LED en pushbuttons Deze drie IP-Cores dienen om de schuifschakelaars, LED’s en drukknoppen uit te lezen of aan te sturen op het FPGA ontwikkelbord. Met deze IP-Cores kan er gemakkelijk aan debuggen gedaan worden. Later kunnen de schakelaars gebruikt worden om externe signalen te simuleren. De LED’s worden in dit eindwerk gebruikt om de status weer te geven van de EtherCAT IP-Core.
  41. 41. 38 Industrial automation using FPGA and EtherCAT technology 7.4.2.5 SPI-Flash Deze IP-Core zorgt voor het afhandelen van alle instructies die nodig zijn om naar het onboard flash geheugen te schrijven of te lezen. Omdat de FPGA gebruik maakt van volatile memory( vluchtig geheugen) moet de FPGA steeds opnieuw geprogrammeerd worden na het wegvallen van de spanning. De gehele configuratie staat dan opgeslagen in het flash geheugen. Dit geheugen is non-volatile (niet vluchtig geheugen) en behoudt zijn data als de spanning wegvalt. Om de data uit het flash geheugen te laden en de FPGA te configureren wordt er gebruik gemaakt van een bootloop programma. Dit bootloop programma wordt uitgebreid uitgelegd in hoofdstuk 7.5.1 7.4.2.6 RS232_UART Deze IP-Core dient ervoor om een RS232 communicatie te maken. Via deze communicatie kan er gemakkelijk aan debuggen gedaan worden. Deze IP-Core is aangesloten op een connector die op het FPGA ontwikkelbord staat. Via deze connector kan het ontwikkelbord verbonden worden met een PC via de seriële poort. Met een programma zoals Hyperterminal kunnen dan gegevens uitgelezen worden van de FPGA. Clock generator7.4.3 Dit onderdeel van het FPGA programma heeft als functie om al de nodige klokpulsen zorgvuldig te maken. Zo heeft de EtherCAT IP-Core een bepaalde frequentie nodig om ervoor te zorgen dat het signaal met de juiste frequentie verstuurd wordt. Deze blok zorgt er ook voor dat de µC een juiste snelheid heeft en deze ook constant is en blijft. Figuur 26 Clock generator
  42. 42. 39 Industrial automation using FPGA and EtherCAT technology 7.5 Software voor de MicroBlaze Nu dat de hardware omschreven is wordt het tijd dat er software geschreven wordt. De MicroBlaze kan geprogrammeerd worden in een 2de programma van Xilinx. Dit programma heet Software Development Kit (SDK). Vanuit XPS kan de gehele hardware configuratie geëxporteerd worden naar SDK. Hierin kan dan software geschreven worden voor de MicroBlaze. De taal waarin deze programmering gebeurd kan gekozen worden. In dit eindwerk wordt er gebruik gemaakt van de standaard C-taal. Deze programmeertaal wordt ook zeer veel gebruikt voor het maken van programma’s voor Pc’s. Ook het programma dat geschreven is voor de MicroBlaze µC bestaat uit enkele onderdelen. Het eerste onderdeel is het bootloop programma. Bootloop programma7.5.1 Omdat de FPGA bij het uitvallen van de spanning zijn gegevens verliest moet de FPGA telkens bij het opstarten opnieuw geconfigureerd worden. Omdat het niet mogelijk is om het volledige programma mee in de FPGA te zetten wordt het programma weg geschreven naar het RAM geheugen. Hieruit kan de FPGA dan al zijn data halen en wegschrijven die nodig is. Maar omdat het RAM geheugen zijn gegevens ook verliest bij het wegvallen van de spanning wordt het volledige programma in FLASH geheugen gestoken. Dit geheugen verliest zijn gegevens niet bij het wegvallen van de spanning. Ondanks dat Flash geheugen relatief traag is kan men dit toch gebruiken om het programma in op te slaan. Maar omdat het geheugen zo traag is, is het beter om het programma uit het flash geheugen te kopiëren naar het RAM geheugen. Dit RAM geheugen is vele male sneller dan het FLASH geheugen. Om het programma vanuit het FLASH geheugen naar het ram geheugen te krijgen moet er een programma geschreven worden dat klein genoeg is om in de FPGA te implementeren. Dit programma heet een Bootloop programma. De naam zegt het al zelf dit programma gaat opstarten bij het “booten” van de FPGA. In dit klein programma wordt geschreven waar het volledige MicroBlaze programma staat op het FLASH geheugen en gaat dit vervolgens kopiëren naar het RAM geheugen van het ontwikkelbord. Van hieruit kan dan het grote programma, dat bedoeld is voor de MicroBlaze, starten. Hoofdprogramma7.5.2 Zoals net verteld is er een groot programma dat nodig is voor de MicroBlaze. Dit is het eigenlijke hoofdprogramma. Hierin worden alle gegevens verzameld van de IP-Cores en worden deze verwerkt. In dit programma staat wat er met de data moet gebeuren die afkomstig is van de EtherCAT IP-Core. Ook wordt hierin geschreven hoe de LED's zich moeten gedragen en hoe de motoren aangestuurd worden. Zoals eerder aangehaald moet er een wiskundige berekening gedaan worden voor het aansturen van de servo motoren. Ook deze berekening wordt mee geprogrammeerd in dit programma. De FPU draait parallel naast de MicroBlaze en van zodra er een Floating Point berekend moet worden gaat de FPU deze berekening overnemen dus voor het inschakelen van de FPU hoeft er geen rekening gehouden worden.
  43. 43. 40 Industrial automation using FPGA and EtherCAT technology 7.6 PLC programmatie De Laatste stap die nodig is om het geheel te kunnen laten werken is het configureren en het programmeren van de PLC. De PLC is van het merk Beckhoff en is voorzien van een touchscreen. Om de PLC werkende te krijgen moeten er 2 dingen gedaan worden. De 3 stappen worden hieronder uitgelegd. Twincat System manager7.6.1 De Twincat System Manager is een programma waarin de configuratie van de PLC gedaan kan worden. Om de configuratie te vereenvoudigen is het makkelijker om de PLC te verbinden met de PC en het ontwikkelbord te verbinden met de PLC. Dan kan er simpelweg een broadcast gedaan worden over het netwerk en alle verbonden PLC’s en EtherCAT slaves worden automatisch herkend. Als de apparaten herkend zijn en geconfigureerd zijn kan er een programma geschreven worden. Twincat PLC Control7.6.2 Het programma voor de PLC wordt geschreven in Twincat PLC control. In dit programma kan de gehele programmatuur geschreven worden voor de PLC. Twincat PLC control heeft het voordeel dat er in veel verschillende programmeertalen geprogrammeerd kan worden. In dit eindwerk is gebruik gemaakt van 2 van deze programmeertalen om te testen of het mogelijk is om verschillende talen te combineren. Omdat de PLC voorzien is van een touchscreen is er ook een visualisatie gemaakt voor dit touchscreen. Deze visualisatie kan ook gemaakt en geprogrammeerd worden in Twincat PLC control. In Figuur 27 wordt de structuur van het programma weergegeven.
  44. 44. 41 Industrial automation using FPGA and EtherCAT technology Figuur 27 PLC programma structuur
  45. 45. 42 Industrial automation using FPGA and EtherCAT technology 8. Problemen ondervonden bij het eindwerk 8.1 EtherCAT licentie Probleem: Om de IP-Core van EtherCAT te mogen gebruiken moet er een licentie aangevraagd worden. Dit was al gedaan maar Xilinx XPS gaf constant de melding dat de licentie die geïnstalleerd was verlopen was. En dit terwijl de license manager van Xilinx duidelijk weergaf dat de licentie nog in orde was en dat deze actief was. Oplossing: Nadat er meerdere pogingen ondernomen werden om de licentie werkende te krijgen. Werd er contact opgenomen met EtherCAT zelf. Hierbij heeft EtherCAT een nieuw licentie bestand doorgestuurd. Na het instaleren van de nieuwe licentie kon de configuratietool van de EtherCAT IP-Core wel gebruikt worden. XPS gaf ook geen foutmelding meer dat de licentie verlopen was. 8.2 Flash geheugen EtherCAT IP-Core Probleem: De EtherCAT IP-Core slaat zijn configuratie op in een flash geheugen. Er is de mogelijkheid om dit flash geheugen te emuleren op de FPGA zodat er geen extern flash bij aan de FPGA moet gekoppeld worden. Echter bleek dit niet zo makkelijk als het leek. De EtherCAT IP-Core weigerde te initialiseren doordat hij een fout gaf dat hij geen configuratie kon vinden. Oplossing: Door extern een klein flash geheugen bij te plaatsen op de printplaat was dit probleem snel opgelost. Hierdoor wordt de configuratie opgeslagen op het flash geheugen dat op de extra printplaat staat. 8.3 Twincat netwerkkaart Probleem: Twincat maakt gebruik van standaard netwerkkaarten. Maar hiervoor heeft de ETG speciale drivers geschreven zodat het EtherCAT protocol kan gebruikt worden. Hoewel ETG zegt dat ze een groot gamma aan netwerkkaarten ondersteunen bleek dit toch niet zo een groot gamma te zijn. Hierdoor moest er op zoek gegaan worden naar een Pc of NIC die wel compatibel is met Twincat. Oplossing: Na lang zoeken is er toch een pc gevonden die Twincat ondersteund en kon het eigenlijke eindwerk beginnen.
  46. 46. 43 Industrial automation using FPGA and EtherCAT technology 8.4 Twincat gebruikersrechten Probleem: In de XIOS hogeschool Limburg hebben de studenten beperkte rechten op de Pc’s dit om te voorkomen dat de studenten instellingen zouden kunnen aanpassen. Bij het openen van Twincat crashte het programma onmiddellijk. Eerst werd gedacht dat het programma slecht geïnstalleerd was. Omdat het op een andere pc (waar een docent ingelogd had wel werkte). Er is dan op meerdere Pc’s geprobeerd met steeds hetzelfde resultaat. Telkens een docent zonder beperkingen inlogde werkte het programma wel. Het probleem zat dus dat de gewone student niet genoeg rechten had om het programma te openen. Oplossing: Dankzij de IT dienst is er 1 pc ter beschikking gesteld speciaal zonder beperkingen zodat Twincat wel werkte op 1 Pc. Het nadeel was wel dat deze Pc in een gewoon leslokaal stond waar regelmatig ook les was en er dus niet altijd gewerkt kon worden aan de robot. 8.5 USB programmeerkabel Probleem: Vanuit SDK kan de FPGA rechtstreeks geprogrammeerd worden via een USB kabel. Maar omdat het Digilent Atlys ontwikkelbord gebruik maakte van een nieuw soort interface, was deze nog niet compatible met de SDK versie die geïnstalleerd was op de Pc’s. Oplossing: Bij Xilinx was het probleem ondertussen bekend en door enkele aanpassingen te doen in SDK kon de programmeerkabel wel gebruikt worden om de FPGA te programmeren vanuit SDK. 8.6 Robot onderdelen Probleem: De onderdelen voor de delta robot werden online besteld. De verwachte levertermijn was 3 a 4 weken. Echter na 10 weken was er nog steeds niets geleverd. Na het sturen van een email bleek dat er bepaalde onderdelen niet beschikbaar waren. Hierdoor zijn er enkele onderdelen moeten nabesteld worden. De bestelling heeft uiteindelijk bijna 12 weken op zich laten wachten. Oplossing: Omdat de robotconstructie niet onmiddellijk ter beschikking moest zijn was de wachttijd van 12 weken niet zo een erg drama.
  47. 47. 44 Industrial automation using FPGA and EtherCAT technology 8.7 Beckhoff PLC verbinding Probleem: Om het PLC programma te kunnen schrijven moest de PLC verbonden worden met de Pc zodat deze geprogrammeerd kon worden. Echter bij het aansluiten bleek de Pc de PLC niet te vinden op het netwerk. Na tientallen pogingen bleef de PLC niet vindbaar op het netwerk. Oplossing: De Beckhoff PLC heeft 2 LAN aansluitingen. Deze zijn genaamd LAN1 en LAN2. Echter op de PLC zelf werd er aangegeven dat LAN1 op de PLC zelf LAN2 heette. Door de kabels die naar de FPGA en de PC gingen om te wisselen op de PLC bleek het probleem opgelost te zijn. 8.8 Robot te hevig Probleem: Door dat de servomotoren zo krachtig zijn en er geen demping op de servo motoren zit beweegt de robot veel te hevig waardoor hij niets kon opnemen of neerleggen zonder alles te vergooien. Oplossing: Door software matig een vertraagde beweging te implementeren maakt de robot een zachtere beweging zodat het mogelijk wordt om veel exacter objecten op te nemen en weer neer te zetten.
  48. 48. 45 Industrial automation using FPGA and EtherCAT technology 9. Resultaat Volgende figuur geeft het totale resultaat van dit eindwerk.
  49. 49. 46 Industrial automation using FPGA and EtherCAT technology 10. Conclusie Als alle onderdelen die hierboven besproken worden samen gebracht worden dan kan men hieruit afleiden dat het gebruik van een FPGA of een embedded systeem zeer veel mogelijkheden biedt. De delta robot laat zien hoe dat systemen kunnen geautomatiseerd worden. De veelzijdigheid en configureerbaarheid worden duidelijk aangetoond. Dankzij de EtherCAT IP-Core wordt er, via een standaard netwerkkaart, een industrieel netwerk opgezet. Dit laat zien dat er geen peperdure systemen of een speciaal ontworpen netwerk topologie nodig zijn. Het EtherCAT systeem laat ook goed zien dat het zeer configureerbaar is naar de wensen van de ontwerper. De programma’s die gebruikt worden zoals XPS en EDK zijn zeer zorgvuldig en voldoende gedocumenteerd zodat zelfs beginners snel kunnen beginnen aan hun eerste ontwerp. Omdat Xilinx deze FPGA ontwikkelkit ondersteund in hun University program is er zeer veel informatie te vinden. Er zijn tutorials waarin uitgebreid wordt uitgelegd hoe het ontwikkelbord werkt en wat de speciale functies zijn. Via de Xilinx website is het zeer makkelijk om bestaande oplossingen, zoals IP-Cores, over te nemen of aan te passen aan de noden van het systeem. De IP-Cores laten toe dat er op hardware niveau kan geprogrammeerd worden. Hierdoor kunnen er tijdskritieke componenten gecreëerd worden, zoals de PWM aansturing van de servomotoren. Gebruikmakend van de MicroBlaze Soft-Core µC wordt er aangetoond dat er niet enkel op hardware niveau gewerkt hoeft te worden maar dat er ook met hogere programmeertalen gewerkt kan worden. Doordat de MicroBlaze zo configureerbaar is toont deze ook aan dat deze in een zeer groot werkgebied direct toepasbaar is. Er hoeft immers in mindere mate rekening gehouden worden met rekenkracht en aantal I/O’s ter beschikking. In dit ontwerp laat de FPGA ook zien dat er in een zeer laat ontwikkelstadium nog aanpassingen kunnen gemaakt worden aan de hardware configuratie en dit zonder terug helemaal opnieuw te moeten beginnen. Dit eindwerk is geschreven als basis voor verder onderzoekswerk naar de mogelijkheden van FPGA’s en embedded systemen binnen de industriële automatisatie. Een mogelijke uitbreiding van het eindwerk is om een 2de exacte opstelling te maken en deze 2 opstellingen te laten communiceren met elkaar door gebruik te maken van het EtherCAT protocol. Deze opstelling kan ook verder gebruikt worden om studenten op te leren in embedded systemen, PLC sturingen en industriële communicatie systemen. De dingen die ik nog graag had willen bijvoegen was het maken van een versnelling en vertraging voor de robot (op VHDL niveau) zodat de servo motoren minder belast worden. Een 2de zaak wat ik nog had willen uitvoeren is een Linux gebaseerd systeem instaleren op de FPGA zodat er eventueel ook een beeldscherm kan aangesloten worden. Hierop zou dan de status en beweging van de robot kunnen weergegeven worden aan de hand van een 3D model.
  50. 50. 47 Industrial automation using FPGA and EtherCAT technology 11. Lijst met afbeeldingen Figuur 1 Flowchart project...........................................................................................................6 Figuur 2 Interne FPGA structuur .................................................................................................8 Figuur 3 Embedded systeem ......................................................................................................9 Figuur 4 Atlys FPGA ontwikkelbord...........................................................................................10 Figuur 5 constructie delta robot.................................................................................................11 Figuur 6 Parameters van de Delta Robot..................................................................................13 Figuur 7 bepaling van het punt E1’............................................................................................14 Figuur 8 Delta robot parameters ...............................................................................................15 Figuur 9 DC servomotor............................................................................................................17 Figuur 10 onderdelen van een servomotor................................................................................17 Figuur 11 Interne werking van een servo motor ........................................................................18 Figuur 12 Servo PWM signaal ..................................................................................................19 Figuur 13 Harvard architectuur van de MicroBlaze ...................................................................20 Figuur 14 Single precision floating point notatie........................................................................21 Figuur 15 EtherCAT telegram ...................................................................................................25 Figuur 16 EtherCAT state machine...........................................................................................27 Figuur 17 Multisim schema voor PCB.......................................................................................29 Figuur 18 Plaatsing van de componenten op PCB....................................................................30 Figuur 19 PCB klaar voor productie ..........................................................................................31 Figuur 20 Boven aanzicht PCB in 3D........................................................................................31 Figuur 21 Onderaanzicht PCB in 3D.........................................................................................32 Figuur 22 PWM signaal gemeten met een oscilloscoop............................................................33 Figuur 23 XPS schema.............................................................................................................35 Figuur 24 XPS MicroBlaze connectie........................................................................................36 Figuur 25 PLB slaves................................................................................................................37 Figuur 26 Clock generator ........................................................................................................38 Figuur 27 PLC programma structuur.........................................................................................41
  51. 51. 48 Industrial automation using FPGA and EtherCAT technology 12. Lijst met Vergelijkingen Vergelijking 1: afstand tussen E0 en E1 .....................................................................................14 Vergelijking 2: Afstand tussen E1 en E’1 ....................................................................................14 Vergelijking 3: stelling van Pythagoras......................................................................................15 Vergelijking 4: Berekening lengte E’1J1 .....................................................................................15 Vergelijking 5: afstand tussen F0 tot F1......................................................................................16 Vergelijking 6 Stelsel om het punt J1 te bepalen .......................................................................16 Vergelijking 7 Hoek Theta voor de servo motor.........................................................................16 Vergelijking 8 Rotatiematrix ......................................................................................................16 Vergelijking 9 komma gedeelte omvormen naar binaire waard .................................................22 Vergelijking 10 mantissa vorming voor Floating point................................................................22 Vergelijking 11 representatie van een floating point in binaire waarde ......................................22 Vergelijking 12 PWM clockpulsen tellen....................................................................................32 Vergelijking 15 Periode bepaling...............................................................................................33
  52. 52. 49 Industrial automation using FPGA and EtherCAT technology 13. Appendix A: Patent Deltarobot
  53. 53. 50 Industrial automation using FPGA and EtherCAT technology
  54. 54. 51 Industrial automation using FPGA and EtherCAT technology
  55. 55. 52 Industrial automation using FPGA and EtherCAT technology
  56. 56. 53 Industrial automation using FPGA and EtherCAT technology
  57. 57. 54 Industrial automation using FPGA and EtherCAT technology
  58. 58. 55 Industrial automation using FPGA and EtherCAT technology
  59. 59. 56 Industrial automation using FPGA and EtherCAT technology
  60. 60. 57 Industrial automation using FPGA and EtherCAT technology
  61. 61. 58 Industrial automation using FPGA and EtherCAT technology
  62. 62. 59 Industrial automation using FPGA and EtherCAT technology
  63. 63. 60 Industrial automation using FPGA and EtherCAT technology 14. Appendix B: Bill Of Materials Aard artikel Aantal Eenheidsprij s Btw-bedrag Totaal RB-Lyn-111 (Lynxmotion Aluminium Tubing) 2 7.56 € 15.12 € RB-Lyn-131 (Lynxmotion Hexagon (6 Sided) 1 17.90 € 17.90 € RB-Lyn-113 (Lynxmotion Aluminium Tubing - 3") 3 2.18 € 6.54 € RB-Lyn-116 (Lynxmotion Aluminium Tubing 2.250" AT-05) 3 1.85 € 5.55 € RB - Lyn-146 (Lynxmotion Ball Link Set 4-40 2 pair) 3 7.51 € 22.53 € RB-Lyn -145 (Lynxmotion Threaded Rod - 12") 1 7.16 € 7.16 € RB-Lyn-155 (Lynxmotion ASB-19B Aluminium intercconnect) 2 3.55 € 7.1 € RB-Lyn - 152 (Lynxmotion HUB-09 Aluminium tubing) 3 3.60 € 10.8 € RB-Lyn -339 (Lynxmotion Vacuum Gripper kit) 1 42.47 € 42.47 € RB-HIT-90 (HS-7966HB high speed, high torque servo motor) 3 71.13 € 213.39 € RB-UPT-07 (Uptech CDS 5516 Serial robot servo (robotis compatible) 3 33.19 € 99.57 € RB-LYN-79 (Lynxmotion E-Z Aluminium Servo Bracket Two Pack ASB-02) 3 5.67 € 17.01 € Verzending 1 15.71 € 15.71€ Algemeen totaal 480.85 €
  64. 64. 61 Industrial automation using FPGA and EtherCAT technology 15. appendix C: Licentieovereenkomst Beckhoff EtherCAT Technology Group Vendor ID Usage Agreement 1. Vendor ID 1.1. The EtherCAT Technology Group (ETG) submits to Vendor an EtherCAT Vendor ID for the use in Vendor’s products making use of EtherCAT Technology, at any time subject to the provisions of this Agreement. 1.2. The right to use the EtherCAT Vendor ID is non-exclusive and non-transferable and may be terminated if Vendor fails to comply with the provisions hereunder. ETG expressly shall have the right, in accordance with ETG policies and in its sole discretion, to invalidate any Vendor ID assigned to Vendor with the resulting termination of all rights and privileges associated with such Vendor ID(s). 1.3. Vendor’s products shall, at the time those are provided to Vendor’s customers or otherwise distributed by Vendor, be declared fully compatible with the latest version of the pertinent EtherCAT Technology at that time pursuant to the provision of Section 2. 2. Conformance Test 2.1. All Vendor’s products shall undergo tests according to the pertinent EtherCAT Conformance Test Policy to ensure that those products are compatible with the latest version of the EtherCAT Technology. These tests shall be completed with a positive result (“compatible”) before any of the products may be sold, delivered or otherwise distributed to Vendor’s customers. 2.2. In case a modification of the EtherCAT Technology results in a product which was compatible to the preexisting version of the EtherCAT Technology to be incompatible after the modification, Vendor shall within twelve (12) months from the date the product became incompatible modify such product and adapt it to the latest version of the EtherCAT Technology. After such modified product has passed the Conformance Test pursuant to Section 2.1. with a positive result, Vendor shall have the right to sell, deliver or otherwise distribute this product to its customers and any sale and delivery of the incompatible product during the twelve (12) months period shall be deemed permitted. 2.3. Without prejudice to the limitations set forth in Sections 2.1. and 2.2., Vendor shall have the right to continue to supply Existing Customers with products containing the version of the EtherCAT Technology they initially received. 3. Use of Trademarks 3.1. Vendor acknowledges that Beckhoff Automation GmbH is the sole proprietary owner of the trademarks "EtherCAT" and "Safety over EtherCAT", with applications or registrations in the European Community (CTM003122736, CTM006350029, CTM005460563) and corresponding registrations or applications in various other countries (“Trademarks”). Beckhoff Automation GmbH has already granted or will grant to Vendor a non-transferable, worldwide, non-exclusive, royalty-free license to use the Trademarks for the marketing and sale of the products manufactured in compliance with the latest version of the EtherCAT Technology at the time they are supplied to Vendor’s customers or otherwise de facto distributed by Vendor or its customers. 3.2. Vendor shall mark its products according to the pertinent EtherCAT Marking Rules, which describe the proper marking of the product and the respective product documentation. 3.3. Vendor shall not use the Trademarks, Certification Marks and Vendor IDs for products incorporating preexisting versions or derivatives of the EtherCAT Technology which are not fully compatible with the latest version of the EtherCAT Technology at the time they are supplied by Vendor to its customers. 3.4. After the expiration of the twelve (12) months period pursuant to Section 2.2., Vendor may not use the Trademarks, Certification Marks and Vendor ID for those products incorporating the pre-existing versions of the EtherCAT Technology which are not fully compatible with the latest version of the EtherCAT Technology at the time they are de facto supplied to Existing Customers. 4. Existing Customers “Existing Customer” means a customer who received a product which was compatible to a version of the EtherCAT Technology at the time the product was first supplied to such customer. 5. Distribution of products containing EtherCAT Technology outside this Agreement
  65. 65. 62 Industrial automation using FPGA and EtherCAT technology Vendor shall not create and sell or otherwise distribute a product, except as expressly permitted by any EtherCAT License Agreement entered into by Vendor. Any attempt otherwise to create, to sell or otherwise to distribute such products or a product containing a modification of the Intellectual Property Rights provided thereunder automatically terminates the license granted herein. 6. Warranty Disclaimer Statement The EtherCAT Vendor IDs are provided by ETG to Vendor on an AS IS basis without warranty. NO WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE BEING PROVIDED BY ETG. Neither the issuance of Declarations of Conformity by ETG to Vendor nor the license to use any EtherCAT Certification marks shall be understood as providing any assurance that Vendors EtherCAT Compliant products are in complete compliance with the Specifications or that any level of interoperability can be assured by ETG. In no event shall ETG, its officers, directors, members, agents, licensors or affiliates be liable to Vendor or any Customer for lost profits, development expenses or any other direct, indirect incidental, special or consequential damages. Vendor agrees to indemnify and hold harmless ETG, its officers, directors, members, agents, licensors and affiliates (collectively, “Indemnitees”) for any losses or damages any Indemnitee may suffer as a result of Vendors use of the Vendor ID, the EtherCAT trademark or the Certification Marks in the manufacture, use, sale or distribution of Vendors products. 7. Miscellaneous This Terms of Usage Agreement is the entire agreement between Vendor and ETG relating to the Vendor IDs. The terms of this agreement can be amended or waived only in writing. This agreement cannot be assigned by Vendor, and any attempted assignment shall be void. 8. Governing Law This Agreement shall be governed by the laws of Germany. 9. Jurisdiction The parties hereby submit to the jurisdiction of the Landgericht Düsseldorf, Germany. 10. Assigned Vendor ID The ETG hereby assigns the Vendor ID 0x00000628 to: Company XIOS Hogeschool Limburg Department N-Technology Department Development Address Universitaire Campus ZIP/City 3590 Diepenbeek Country Belgium Phone +32 478353849 Fax Vendor ID requested by: Vincent Claes | vincent.claes@xios.be We accept the Vendor ID and the Vendor ID agreement Signature: ………………………………………………………. Date: ………………………………………………………. (Company Stamp) Signed by: ………………………………….……………………………………………………………………… (Name, Position) The Vendor ID is valid only if form is signed and returned by mail or fax to EtherCAT Technology Group Ostendstr. 196 90482 Nuremberg Germany Fax +49 911 5405629
  66. 66. 63 Industrial automation using FPGA and EtherCAT technology 16. appendix D: Handleiding configuratietool In deze bijlage wordt de configuratie tool die door Beckhoff Automations ter beschikking gesteld is uitgelegd. STAP1: Bij het aanmaken van een IP-Core moet er een design name gekozen worden. In dit geval is de naam “ethercat” gekozen. Er moet ook een design folder gekozen worden. Het is deze folder die gebruikt gaat worden om alle bestanden in te plaatsen die nodig zijn voor een werkende IP-Core. Vervolgens op “continue” klikken.
  67. 67. 64 Industrial automation using FPGA and EtherCAT technology STAP 2: Product ID is een identificatie nummer zodat de IP-Core herkend kan worden. Dit getal kan en mag vrij gekozen worden maar moet wel tussen de waardes 0 en 65535 liggen. Als de waardes gekozen zijn worden deze automatisch naar een hexadecimale code omgevormd. Als er meerder EtherCAT apparaten op het netwerk aangesloten zijn kan men door middel van deze ID het apparaat makkelijker vinden. Onderaan is er een grijs kader zichtbaar met extra informatie. Hierover is meer te vinden in de laatste stap. Omdat deze op dit ogenblik nog niet veel van belang is. Vervolgens klikken op “next”
  68. 68. 65 Industrial automation using FPGA and EtherCAT technology STAP 3: In stap 3 worden alle fysische eigenschappen toegewezen aan de IP-Core. Hierin kan beslist worden hoeveel Ethernet poorten er beschikbaar zijn en hoeveel er gebruikt gaan worden. Bij deze configuratie tool moeten er minstens 2 communicatie poorten geselecteerd worden om problemen te vermijden. Waarom er problemen ontstaan is terug te vinden in bovenstaande scriptie onder hoofdstuk 8 Als er meer dan 2 communicatie poorten beschikbaar zijn kan men deze selecteren met het pulldown menu. Bij het type van communicatie poort wordt er gekozen voor een MII(Media Independent Interface) interface. Een ander keuze is RMII (Reduced Media Independent Interface). Voor EtherCAT communicatie is het beter voor een MII te kiezen omdat dit stabieler is.
  69. 69. 66 Industrial automation using FPGA and EtherCAT technology  PHY Management Interface: Vervolgens word de communicatie poort geconfigureerd. Het vinkje aan “PHY Management Interface” betekent dat de IP-Core verbinding maakt met een externe PHY. PHY komt van PHYsical layer van het OSI model. Deze PHY IC gaat ervoor zorgen dat de data verstuurd wordt met het juiste protocol en dat de ontvangen data weer gedecodeerd wordt naar bruikbare data.  TX Shift: Om te voldoen aan de Ethernet specificaties moet er een fase verschuiving in het TX signaal zijn. Dit kan Manueel of automatisch gedaan worden. In dit geval wordt er gekozen om dit manueel te doen. Dus deze functie wordt niet geselecteerd.  Link State through MII: Er kan aan link detectie gedaan worden door de MII. Dit wil zeggen dat de MII gaat controleren of er een kabel aangesloten is en of er een werkende verbinding is. In dit geval willen we dat de EtherCAT IP-Core deze detectie gaat doen zodat de IP-Core beslissingen kan nemen als er al dan niet een verbinding tussen de master en slave is. Dus deze functie wordt niet geselecteerd.  Enhanced Link Detection: Enhanced link detection zorgt ervoor dat er geavanceerde detectie methodes zijn om fouten op te sporen tussen de verbindingen. Aangezien er in dit eindwerk maar 1 slave gekoppeld wordt en omdat de PHY deze detectie niet ondersteund wordt deze niet ingeschakeld.  Tristate driver Inside Corer (EEPROM/MII) Een tristate driver wordt gebruikt om een derde toestand in te voeren buiten 0 = laag en 1 is hoog. Hier wordt een derde staat aan toegevoegd en dat is de high impedance. Deze is niet nodig voor dit eindwerk dus wordt niet geselecteerd.
  70. 70. 67 Industrial automation using FPGA and EtherCAT technology STAP 4:  FMMUs: Field memory management units zijn mapping devices die ervoor zorgen dat de data van het EtherCAT frame op de juiste positie in het geheugen geplaatst worden. Door gebruik te maken van meerdere FMMUs kan dus tegelijk meerdere adresplaatsen aangesproken worden. In dit geval gebruiken we 3 FMMUs 1 voor inputs en 1 voor outputs. Hierdoor kunnen de inputs en outputs tegelijk en onafhankelijk van elkaar gelezen en geschreven worden.  SyncManagers: SyncManagers zorgen ervoor dat alle data die verzonden of ontvangen is altijd gesynchroniseerd is en blijft. Het probleem dat kan ontstaan is dat als er data uitgelezen wordt door het slave programma dat er net op dat moment data in een register geschreven wordt door de IP-Core hierdoor kan het zijn dat er verkeerde data op het verkeerde moment wordt uitgelezen. Om dat te voorkomen zorgt de
  71. 71. 68 Industrial automation using FPGA and EtherCAT technology IP-Core voor SyncManagers. Deze zorgen ervoor dat de data die gelezen wordt door het programma altijd correct is. Dit is als het ware een buffer systeem. In dit eindwerk werken we met 2 SyncManagers. Hierdoor worden inputs en outputs volledig van elkaar gescheiden en is de data altijd consistent.  Process Data Ram: Hier wordt bepaald hoe groot het RAM geheugen moet zijn dat nodig is om de ontvangen of verzonden data in op te slaan. Hoe groter dit is hoe trager de slave wordt. Dus wordt aan geraden om dit zo klein mogelijk te houden. Aangezien in dit eindwerk maar enkele integers doorgestuurd en ontvangen worden is een RAM geheugen van 4 Kbyte meer als voldoende.  Distributed Clock Configuration: Distributed clocks worden gebruikt om de delay tussen al de Slave devices te compenseren. Omdat dit eindwerk maar gebruik maakt van 1 slave device is het implementeren van deze timer overbodig. Als er zeer veel slave devices gekoppeld worden aan het netwerk dan gaat er een tijdsverschil ontstaan tussen de 1ste en de laatste slave. Als de distributed clock gebruikt wordt gaat deze timer de vertraging tussen het ontvangen en verzenden van een pakket opslaan. Deze tijd wordt mee doorgestuurd naar de volgende slave. Op deze manier weet elk slave device wat de vertraging is van een ander slave device. Door deze functie is het mogelijk om alle slave devices volledig synchroon te laten werken.
  72. 72. 69 Industrial automation using FPGA and EtherCAT technology STAP 5: In stap 5 worden alle functies vastgelegd die de IP-Core moet hebben. Omdat er een krachtige FPGA gebruikt wordt kan de volledige functionaliteit geïmplementeerd worden. Dus hier wordt gebruik gemaakt van een Large base feature set. Hierdoor worden er watchdogtimers, event registers en interrupts toegevoegd aan de functionaliteit van de IP-Core. Er is nog bijkomende functionaliteit die verder uitgelegd wordt.  EEPROM Emulation by PDI: De EtherCAT slave heeft een bijkomend geheugen nodig waarin alle configuraties weg geschreven worden. Dit is een EEPROM device dat extern wordt toegevoegd. Er kan echter ook geopteerd worden om de EEPROM te

×