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.
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.
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
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