SlideShare una empresa de Scribd logo
1 de 78
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
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
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
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.
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.
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
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
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.
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
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.
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).
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
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
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
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.
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.
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
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.
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.
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
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.
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
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
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
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
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.
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.
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
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.
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.
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.
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.
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.
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
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
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
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.
35
Industrial automation using FPGA and EtherCAT technology
Figuur 23 XPS schema
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.
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.
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
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.
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.
41
Industrial automation using FPGA and EtherCAT technology
Figuur 27 PLC programma structuur
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.
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.
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.
45
Industrial automation using FPGA and EtherCAT technology
9. Resultaat
Volgende figuur geeft het totale resultaat van dit eindwerk.
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.
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
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
49
Industrial automation using FPGA and EtherCAT technology
13. Appendix A: Patent Deltarobot
50
Industrial automation using FPGA and EtherCAT technology
51
Industrial automation using FPGA and EtherCAT technology
52
Industrial automation using FPGA and EtherCAT technology
53
Industrial automation using FPGA and EtherCAT technology
54
Industrial automation using FPGA and EtherCAT technology
55
Industrial automation using FPGA and EtherCAT technology
56
Industrial automation using FPGA and EtherCAT technology
57
Industrial automation using FPGA and EtherCAT technology
58
Industrial automation using FPGA and EtherCAT technology
59
Industrial automation using FPGA and EtherCAT technology
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 €
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
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
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.
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”
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.
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.
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
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.
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
EtherCAT DeltaRobot Xilinx Spartan FPGA
EtherCAT DeltaRobot Xilinx Spartan FPGA
EtherCAT DeltaRobot Xilinx Spartan FPGA
EtherCAT DeltaRobot Xilinx Spartan FPGA
EtherCAT DeltaRobot Xilinx Spartan FPGA
EtherCAT DeltaRobot Xilinx Spartan FPGA

Más contenido relacionado

Destacado

Penghasilan Projek RBT
Penghasilan Projek RBTPenghasilan Projek RBT
Penghasilan Projek RBTLiza MoKa
 
Biologic width understanding and its preservation
Biologic width understanding and its preservationBiologic width understanding and its preservation
Biologic width understanding and its preservationSah Oman
 
Advantages of native apps
Advantages of native appsAdvantages of native apps
Advantages of native appsJatin Dabas
 
BizSmart Value Proposition
BizSmart Value PropositionBizSmart Value Proposition
BizSmart Value PropositionWAKSTER Limited
 

Destacado (6)

Penghasilan Projek RBT
Penghasilan Projek RBTPenghasilan Projek RBT
Penghasilan Projek RBT
 
Biologic width understanding and its preservation
Biologic width understanding and its preservationBiologic width understanding and its preservation
Biologic width understanding and its preservation
 
Grails domain classes
Grails domain classesGrails domain classes
Grails domain classes
 
Spring boot
Spring bootSpring boot
Spring boot
 
Advantages of native apps
Advantages of native appsAdvantages of native apps
Advantages of native apps
 
BizSmart Value Proposition
BizSmart Value PropositionBizSmart Value Proposition
BizSmart Value Proposition
 

Similar a EtherCAT DeltaRobot Xilinx Spartan FPGA

Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"Cito Benelux
 
Flexibele oplossingen voor het laagspanningsnet van morgen [pt. II]
Flexibele oplossingen voor het laagspanningsnet van morgen [pt. II]Flexibele oplossingen voor het laagspanningsnet van morgen [pt. II]
Flexibele oplossingen voor het laagspanningsnet van morgen [pt. II]Rémy Cleenwerck
 
Defensie koopt producten voor luchtwegenmanagement en respiratoire zorg
Defensie koopt producten voor luchtwegenmanagement en respiratoire zorgDefensie koopt producten voor luchtwegenmanagement en respiratoire zorg
Defensie koopt producten voor luchtwegenmanagement en respiratoire zorgThierry Debels
 
Ontwikkelen van een nieuwe site voor de standaard & onderzoek naar het opzett...
Ontwikkelen van een nieuwe site voor de standaard & onderzoek naar het opzett...Ontwikkelen van een nieuwe site voor de standaard & onderzoek naar het opzett...
Ontwikkelen van een nieuwe site voor de standaard & onderzoek naar het opzett...Niels Timmermans
 
Onetouch 810 user manual - dutch
Onetouch 810   user manual - dutchOnetouch 810   user manual - dutch
Onetouch 810 user manual - dutchMatinator10
 
WASCO - Webs & Apps Standaarden voor de Converserende Overheid
WASCO - Webs & Apps Standaarden voor de Converserende OverheidWASCO - Webs & Apps Standaarden voor de Converserende Overheid
WASCO - Webs & Apps Standaarden voor de Converserende OverheidBart Gysens
 
Overheid koopt 7 miljoen wegwerphandschoenen
Overheid koopt 7 miljoen wegwerphandschoenenOverheid koopt 7 miljoen wegwerphandschoenen
Overheid koopt 7 miljoen wegwerphandschoenenThierry Debels
 
XML en Organisatie: vijf tegenstellingen
XML en Organisatie: vijf tegenstellingenXML en Organisatie: vijf tegenstellingen
XML en Organisatie: vijf tegenstellingenPieter van der Hijden
 
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...HenrietteReerink
 
Eindraport versie 14; 24 08-2014
Eindraport versie 14; 24 08-2014Eindraport versie 14; 24 08-2014
Eindraport versie 14; 24 08-2014Thomas Leflere
 
De Werkvennootschap op zoek naar gerechtsdeurwaarders
De Werkvennootschap op zoek naar gerechtsdeurwaardersDe Werkvennootschap op zoek naar gerechtsdeurwaarders
De Werkvennootschap op zoek naar gerechtsdeurwaardersThierry Debels
 
Mechatronic System Design
Mechatronic System DesignMechatronic System Design
Mechatronic System DesignVincent Claes
 
EMCO MAXIMAT SUPER 11
EMCO MAXIMAT SUPER 11EMCO MAXIMAT SUPER 11
EMCO MAXIMAT SUPER 11baijensjohan
 

Similar a EtherCAT DeltaRobot Xilinx Spartan FPGA (20)

Tutorial siemensplc s7300
Tutorial siemensplc s7300Tutorial siemensplc s7300
Tutorial siemensplc s7300
 
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"
 
Flexibele oplossingen voor het laagspanningsnet van morgen [pt. II]
Flexibele oplossingen voor het laagspanningsnet van morgen [pt. II]Flexibele oplossingen voor het laagspanningsnet van morgen [pt. II]
Flexibele oplossingen voor het laagspanningsnet van morgen [pt. II]
 
eGo Manual
eGo ManualeGo Manual
eGo Manual
 
thesis Steve Catternan
thesis Steve Catternanthesis Steve Catternan
thesis Steve Catternan
 
Defensie koopt producten voor luchtwegenmanagement en respiratoire zorg
Defensie koopt producten voor luchtwegenmanagement en respiratoire zorgDefensie koopt producten voor luchtwegenmanagement en respiratoire zorg
Defensie koopt producten voor luchtwegenmanagement en respiratoire zorg
 
Geïntegreerde proef
Geïntegreerde proefGeïntegreerde proef
Geïntegreerde proef
 
Ontwikkelen van een nieuwe site voor de standaard & onderzoek naar het opzett...
Ontwikkelen van een nieuwe site voor de standaard & onderzoek naar het opzett...Ontwikkelen van een nieuwe site voor de standaard & onderzoek naar het opzett...
Ontwikkelen van een nieuwe site voor de standaard & onderzoek naar het opzett...
 
Onetouch 810 user manual - dutch
Onetouch 810   user manual - dutchOnetouch 810   user manual - dutch
Onetouch 810 user manual - dutch
 
Masterproef
MasterproefMasterproef
Masterproef
 
WASCO - Webs & Apps Standaarden voor de Converserende Overheid
WASCO - Webs & Apps Standaarden voor de Converserende OverheidWASCO - Webs & Apps Standaarden voor de Converserende Overheid
WASCO - Webs & Apps Standaarden voor de Converserende Overheid
 
Overheid koopt 7 miljoen wegwerphandschoenen
Overheid koopt 7 miljoen wegwerphandschoenenOverheid koopt 7 miljoen wegwerphandschoenen
Overheid koopt 7 miljoen wegwerphandschoenen
 
XML en Organisatie: vijf tegenstellingen
XML en Organisatie: vijf tegenstellingenXML en Organisatie: vijf tegenstellingen
XML en Organisatie: vijf tegenstellingen
 
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...
 
Eindraport versie 14; 24 08-2014
Eindraport versie 14; 24 08-2014Eindraport versie 14; 24 08-2014
Eindraport versie 14; 24 08-2014
 
De Werkvennootschap op zoek naar gerechtsdeurwaarders
De Werkvennootschap op zoek naar gerechtsdeurwaardersDe Werkvennootschap op zoek naar gerechtsdeurwaarders
De Werkvennootschap op zoek naar gerechtsdeurwaarders
 
Mechatronic System Design
Mechatronic System DesignMechatronic System Design
Mechatronic System Design
 
EMCO MAXIMAT SUPER 11
EMCO MAXIMAT SUPER 11EMCO MAXIMAT SUPER 11
EMCO MAXIMAT SUPER 11
 
Annet Oorschot
Annet OorschotAnnet Oorschot
Annet Oorschot
 
Evaluatie autogerelateerde-belastingen-2008-2013
Evaluatie autogerelateerde-belastingen-2008-2013 Evaluatie autogerelateerde-belastingen-2008-2013
Evaluatie autogerelateerde-belastingen-2008-2013
 

Más de Vincent Claes

Percepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZEDPercepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZEDVincent Claes
 
Xilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello WorldXilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello WorldVincent Claes
 
Programming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDKProgramming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDKVincent Claes
 
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP BlockDebugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP BlockVincent Claes
 
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA'sUsing Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA'sVincent Claes
 
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)Vincent Claes
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot PythonVincent Claes
 
Installation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python WorkshopInstallation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python WorkshopVincent Claes
 
ZYNQ BRAM Implementation
ZYNQ BRAM ImplementationZYNQ BRAM Implementation
ZYNQ BRAM ImplementationVincent Claes
 
Implementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud ServiceImplementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud ServiceVincent Claes
 
Launching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT ProjectsLaunching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT ProjectsVincent Claes
 
Real Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARMReal Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARMVincent Claes
 
R Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by ExampleR Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by ExampleVincent Claes
 
Using Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL LaunchpadUsing Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL LaunchpadVincent Claes
 
Hogeschool PXL Smart Mirror
Hogeschool PXL Smart MirrorHogeschool PXL Smart Mirror
Hogeschool PXL Smart MirrorVincent Claes
 
Softcore vs Hardcore processor
Softcore vs Hardcore processorSoftcore vs Hardcore processor
Softcore vs Hardcore processorVincent Claes
 
Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...Vincent Claes
 

Más de Vincent Claes (20)

Percepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZEDPercepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZED
 
Xilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello WorldXilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello World
 
Programming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDKProgramming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDK
 
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP BlockDebugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
 
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA'sUsing Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA's
 
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot Python
 
Installation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python WorkshopInstallation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python Workshop
 
ZYNQ BRAM Implementation
ZYNQ BRAM ImplementationZYNQ BRAM Implementation
ZYNQ BRAM Implementation
 
Implementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud ServiceImplementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud Service
 
Launching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT ProjectsLaunching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT Projects
 
Real Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARMReal Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARM
 
R Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by ExampleR Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by Example
 
Using Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL LaunchpadUsing Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL Launchpad
 
Hogeschool PXL Smart Mirror
Hogeschool PXL Smart MirrorHogeschool PXL Smart Mirror
Hogeschool PXL Smart Mirror
 
Softcore vs Hardcore processor
Softcore vs Hardcore processorSoftcore vs Hardcore processor
Softcore vs Hardcore processor
 
MySQL / PHP Server
MySQL / PHP ServerMySQL / PHP Server
MySQL / PHP Server
 
Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...
 
fTales workshop
fTales workshopfTales workshop
fTales workshop
 
Maker Revolution
Maker RevolutionMaker Revolution
Maker Revolution
 

EtherCAT DeltaRobot Xilinx Spartan FPGA

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 35 Industrial automation using FPGA and EtherCAT technology Figuur 23 XPS schema
  • 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. 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. 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. 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. 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. 41 Industrial automation using FPGA and EtherCAT technology Figuur 27 PLC programma structuur
  • 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. 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. 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. 45 Industrial automation using FPGA and EtherCAT technology 9. Resultaat Volgende figuur geeft het totale resultaat van dit eindwerk.
  • 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. 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. 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. 49 Industrial automation using FPGA and EtherCAT technology 13. Appendix A: Patent Deltarobot
  • 53. 50 Industrial automation using FPGA and EtherCAT technology
  • 54. 51 Industrial automation using FPGA and EtherCAT technology
  • 55. 52 Industrial automation using FPGA and EtherCAT technology
  • 56. 53 Industrial automation using FPGA and EtherCAT technology
  • 57. 54 Industrial automation using FPGA and EtherCAT technology
  • 58. 55 Industrial automation using FPGA and EtherCAT technology
  • 59. 56 Industrial automation using FPGA and EtherCAT technology
  • 60. 57 Industrial automation using FPGA and EtherCAT technology
  • 61. 58 Industrial automation using FPGA and EtherCAT technology
  • 62. 59 Industrial automation using FPGA and EtherCAT technology
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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