DEPARTEMENT INDUSTRIELE WETENSCHAPPEN EN TECHNOLOGIE Associatie
K. U. L e u v e n
Basisopleiding van 1 cyclus
Academiejaar : 2005 - 2006 Opleiding :
ELEKTRICITEIT
Keuzerichting :
TELECOMMUNICATIE
Optie :
ELEKTRONICA
Eindwerk
Ontwikkelen van een autonome testopstelling voor een heftrucksturing
door
Linsey Desmet
onder leiding van Ing. L. Demeersseman, KHBO
Grad. L. Verfaillie, GROUP THERMOTE & VANHALST NV
Eindwerk aangeboden tot het behalen van het diploma
GEGRADUEERDE IN ELEKTRICITEIT Katholieke Hogeschool Brugge - Oostende Zeedijk 101 , 8400 Oostende tel +32 59 56 90 00 - fax +32 59 56 90 01
De bedoeling van het eindwerk is een autonome testopstelling te ontwikkelen voor een Sevcon heftrucksturing. De testopstelling wordt gebruikt voor de detectie van fouten bij het repareren van de sturing. Het testprogramma wordt volledig gerealiseerd in LabVIEW. De in - en uitgangen van de sturingen worden gecontroleerd door middel van analoge en digitale I/O-kaarten en de instelling van de parameters door middel van een CAN-bus kaart. Deze kaarten bevinden zich samen in een PXI-chassis van National Instruments. In een eerste fase werd er een studie van de CAN-bus gemaakt. De data op de bus werd opgeslagen en geanalyseerd om zo de interne werking en parameteroverdracht te achterhalen. De CAN-bus is een snelle databus voor communicatie tussen elektronische apparatuur, ontwikkeld voor de auto-industrie om de interne bekabeling sterk te vereenvoudigen. Nadat het daar zijn nut had bewezen, werd ze ook geïntegreerd in heftrucks. In een tweede fase werden printkaarten ontworpen die het mogelijk maken om de sturing te controleren op laag vermogen, dus zonder contactoren en motoren. In een derde fase werd een testprogramma geschreven waarmee men de sturing kan inschakelen, parameters opvragen en de nodige controles verrichten. Er werd een automatisch testprogramma geschreven voor het controleren van de vermogenkring van de sturing met behulp van contactoren en motoren. De eindverhandeling bevat een situering van de sturing, een gedetailleerde omschrijving van de CAN-bus, het ontwerpen van de printkaarten voor de controleschakeling, de voorbereiding van het programmeren, en tenslotte uitleg van het testprogramma zelf.
Mededeling Deze eindverhandeling was een examen; de tijdens de verdediging vastgestelde fouten werden niet gecorrigeerd. Gebruik als referentie in publicaties is toegelaten na gunstig advies van de KHBO-promoter, vermeld op het titelblad
1
Woord vooraf Ik wil mijn ouders en mijn vriend Jeroen bedanken voor de morele steun die ze mij gegeven hebben ook als het minder vlot ging. Hun vertrouwen was een extra motivatie voor het behalen van mijn diploma. Ik dank hen vooral om me de mogelijkheid te geven om verder te studeren. Ik dank de docenten van het KHBO, zonder hun inzet en gedrevenheid zou het onmogelijk zijn geweest voor het behalen van mijn diploma. Ik dank in het bijzonder mijn binnenpromotor Dhr. Luc Demeersseman en mijn buitenpromotor Dhr. Lorenz Verfaillie, voor het overbrengen van hun ervaren kennis en het geduld dat ze hebben moeten opbrengen gedurende de stageperiode. De afdeling elektronica van het bedrijf Thermote & Vanhalst, in het bijzonder Dhr. Frederiek Blanchaert en Dhr. Yves Van Parijs wil ik bedanken voor hun kennis, gezelschap en ideeën tijdens mijn stage. Als laatste wil ik het bedrijf Thermote & Vanhalst bedanken voor het aanbieden van de stage en het gebruik te mogen maken van het nodige materiaal.
2
Inhoudsopgave Woord vooraf ............................................................................................................................. 2 Abstract .............................................................................Fout! Bladwijzer niet gedefinieerd. Inhoudsopgave ........................................................................................................................... 3 Lijst met illustraties .................................................................................................................... 5 Lijst met tabellen ........................................................................................................................ 7 Alfabetische lijst van afkortingen .............................................................................................. 8 Inleiding ................................................................................................................................... 10 1 Voorstudie ........................................................................................................................ 11 1.1 Situering van het eindwerk........................................................................................... 11 1.2 Een heftruck ................................................................................................................. 12 1.3 Bespreken van de teststuring........................................................................................ 13 1.4 LabVIEW ..................................................................................................................... 20 1.4.1 Het frontpaneel ......................................................................................................... 20 1.4.2 Het blokdiagram ....................................................................................................... 21 1.4.3 Het Icoon .................................................................................................................. 21 1.4.4 Dataflow ................................................................................................................... 21 1.4.5 SubVI’s..................................................................................................................... 22 1.4.6 Testen van een programma ...................................................................................... 22 1.4.7 National Instruments testapparatuur......................................................................... 23 1.5 Controller Area Network.............................................................................................. 24 1.5.1 Ontwikkeling ............................................................................................................ 24 1.5.2 Het CAN- protocol ................................................................................................... 25 1.5.3 Normering door ISO................................................................................................. 26 1.5.4 De fysische laag ....................................................................................................... 27 1.5.4.1 Low Speed CAN ...................................................................................................... 27 1.5.4.2 High Speed CAN...................................................................................................... 28 1.5.4.3 Afsluitweerstanden................................................................................................... 28 1.5.4.4 CAN- bus kabels ...................................................................................................... 28 1.5.4.5 CAN- connectoren.................................................................................................... 30 1.5.4.6 NRZ- encoding ......................................................................................................... 30 1.5.4.7 Bitstuffing................................................................................................................. 31 1.5.4.8 Bittiming................................................................................................................... 31 1.5.4.9 Synchronisatie .......................................................................................................... 32 1.5.5 De datalinklaag......................................................................................................... 34 1.5.5.1 Berichtuitwisseling................................................................................................... 34 1.5.5.2 Broadcast- principe .................................................................................................. 35 1.5.5.3 CAN- arbitrage ......................................................................................................... 35 1.5.5.4 Het CAN- frameformaat........................................................................................... 37 1.5.5.5 Het CAN- bericht ..................................................................................................... 38 1.5.5.6 Data frame ................................................................................................................ 38 1.5.5.7 Remote frame ........................................................................................................... 41 1.5.5.8 Error Frame .............................................................................................................. 42 1.5.5.9 Implementatie........................................................................................................... 45 1.5.6 De applicatielaag ...................................................................................................... 47 1.5.6.1 CANopen.................................................................................................................. 47 1.5.6.2 DeviceNet................................................................................................................. 47 1.5.6.3 Smart Distributed System (SDS).............................................................................. 48 1.5.6.4 CAN- Kingdom ........................................................................................................ 48
3
1.5.6.5 OSEK/VDX.............................................................................................................. 48 1.5.6.6 J1939- standaard....................................................................................................... 48 2 Voorbereiding programmeren .......................................................................................... 50 2.1 Ontwerpen van interfacekaarten................................................................................... 50 2.2 Programmeren .............................................................................................................. 52 3 Het testprogramma ........................................................................................................... 60 3.1 Het uitleesscherm ......................................................................................................... 60 3.2 Verloop......................................................................................................................... 60 3.2.1 Manueel testen.......................................................................................................... 60 3.2.1.1 Informatieve onderdelen manueel rijden.................................................................. 60 3.2.1.2 Informatieve onderdelen parameters ........................................................................ 62 3.2.2 Foutencontrole.......................................................................................................... 65 3.2.2.1 Controle voedingsspanning ...................................................................................... 67 3.2.2.2 Controle van spanningen .......................................................................................... 68 3.2.2.3 Controle van schakelaars.......................................................................................... 68 3.2.2.4 Controle van contactoren ......................................................................................... 69 3.2.2.5 Controle van detectie van fouten.............................................................................. 69 3.2.3 Automatisch rijden ................................................................................................... 70 3.2.3.1 Informatieve onderdelen .......................................................................................... 70 4 Besluiten........................................................................................................................... 71 5 Bijlage .............................................................................................................................. 72 5.1 Bijlage 1: Ontworpen printen in Eagle......................................................................... 72 5.2 Bijlage 2: Flowchart van de foutencontrole ................................................................. 79 6 Literatuurlijst .................................................................................................................... 80
4
Lijst met illustraties Figuur 1: Logo van Thermote & Vanhalst .............................................................................. 11 Figuur 2: Een vrijdragende heftruck ........................................................................................ 12 Figuur 3: Een reachtruck .......................................................................................................... 12 Figuur 4: Een stapelaar............................................................................................................. 13 Figuur 5: Een sturing................................................................................................................ 13 Figuur 6: De sturing SC2542 ................................................................................................... 14 Figuur 7: Het scoopbeeld van spanning veld t.o.v. massa ....................................................... 16 Figuur 8: De connector voor de CAN-bus ............................................................................... 18 Figuur 9: De handset van de SC2542....................................................................................... 18 Figuur 10: De configuratie van handset ................................................................................... 19 Figuur 11: Het controle palet ................................................................................................... 20 Figuur 12: Het frontpaneel........................................................................................................23 Figuur 13: Het blokdiagram ..................................................................................................... 20 Figuur 14: Het functiepalet ...................................................................................................... 21 Figuur 15: Het icoon ................................................................................................................ 21 Figuur 16: De dataflow ............................................................................................................ 22 Figuur 17: De testknoppen ....................................................................................................... 22 Figuur 18: De beveiliging van de analoge ingangen................................................................ 23 Figuur 19: Een conventioneel bedradingsysteem.....................................................................27 Figuur 20: Een multiplex bedradingsysteem............................................................................ 24 Figuur 21: Het multiplexsysteem ............................................................................................. 25 Figuur 22: Het ISO/OSI model van de CAN-bus .................................................................... 26 Figuur 23: De twisted pair: CAN-H en CAN-L....................................................................... 27 Figuur 24: Shielded twisted pair……………………………………………………………...32 Figuur 25: Unshielded twisted pair .......................................................................................... 29 Figuur 26: Een overzicht van busuitbreidingen ....................................................................... 29 Figuur 27: 9-pin D- sub connector ........................................................................................... 30 Figuur 28: NRZ- encodering .................................................................................................... 30 Figuur 29: Bitstuffing............................................................................................................... 31 Figuur 30: Hersynchronisatie voorbeeld 1 ............................................................................... 32 Figuur 31: Hersynchronisatie voorbeeld 2 ............................................................................... 33 Figuur 32: Broadcast communicatie ........................................................................................ 35 Figuur 33: De arbitrage ............................................................................................................ 36 Figuur 34: Het standaard frameformaat ................................................................................... 37 Figuur 35: Het extended frameformaat .................................................................................... 37 Figuur 36: Het standaard dataframe ......................................................................................... 38 Figuur 37: Start of frame bit..................................................................................................... 38 Figuur 38: Het arbitrageveld .................................................................................................... 39 Figuur 39: Het controleveld ..................................................................................................... 39 Figuur 40: Het dataveld............................................................................................................ 39 Figuur 41: Het CRC veld ......................................................................................................... 40 Figuur 42: Het bevestigingsveld .............................................................................................. 40 Figuur 43: End of frame veld ................................................................................................... 40 Figuur 44: Intermission space .................................................................................................. 40 Figuur 45: Het extended dataframe .......................................................................................... 41 Figuur 46: Het standaard remote frame.................................................................................... 41 Figuur 47: Het extended remote frame .................................................................................... 42 Figuur 48: Het error frame ....................................................................................................... 44 Figuur 49: Stand-alone CAN-controller................................................................................... 45 5
Figuur 50: Geïntegreerde CAN-controller ............................................................................... 46 Figuur 51: Serial Link I/O controller ....................................................................................... 46 Figuur 52: Het switchenbord.....................................................................................................53 Figuur 53: Het interfacebord 1 ................................................................................................. 50 Figuur 54: DB 25......................................................................................................................53 Figuur 55: De beveiliging.........................................................................................................53 Figuur 56: National Instruments PXI Unit................................................................................50 Figuur 57: De motor..................................................................................................................54 Figuur 58: Een weerstand voor anker....................................................................................... 51 Figuur 59: De contactor............................................................................................................54 Figuur 60: Het interfacebord 2 ................................................................................................. 51 Figuur 61: Schema van spanningsdeler.................................................................................... 51 Figuur 62: Data Acquisitie ....................................................................................................... 52 Figuur 63: Keuzemenu DAQ Assistent.................................................................................... 52 Figuur 64: Verschillende soorten analoge ingangen ................................................................ 53 Figuur 65: Keuzelijst analoge ingangen................................................................................... 53 Figuur 66: Configuratie analoge ingangen............................................................................... 54 Figuur 67: Differential meetsysteem........................................................................................ 54 Figuur 68: Referenced Single-Ended meetsysteem ................................................................. 55 Figuur 69: Non-Referenced Single-Ended meetsysteem ......................................................... 55 Figuur 70: Een goede samplefrequentie....................................................................................58 Figuur 71: Een slechte samplefrequentie ................................................................................. 55 Figuur 72: Verschillende soorten analoge uitgangen ............................................................... 56 Figuur 73: Configuratie analoge uitgangen.............................................................................. 56 Figuur 74: Mogelijkheden voor digitale in- en uitgangen........................................................ 57 Figuur 75: Instellingen digitale ingangen................................................................................. 57 Figuur 76: Een screenshot van het programma logging........................................................... 58 Figuur 77: Een screenshot van het programma CAN transmit ................................................ 59 Figuur 78: Een screenshot van het programma Measurement & Instruments ......................... 59 Figuur 79: Screenshot van het manueel rijden ......................................................................... 60 Figuur 80: Status van de spanningen........................................................................................ 61 Figuur 81: Invullen serienummer............................................................................................. 62 Figuur 82: Opmerking bij ongeldig serienummer.................................................................... 62 Figuur 83: Screenshot van het wijzigen van parameters.......................................................... 64 Figuur 84: Flowchart voor het wijzigen van een parameter..................................................... 64 Figuur 85: Het frontpaneel foutencontrole............................................................................... 65 Figuur 86: Het helpvenster van veld 1 ..................................................................................... 66 Figuur 87: De controle van de voedings-spanning................................................................... 67 Figuur 88: De controle van de spanningen............................................................................... 68 Figuur 89: De controle van de schakelaars .............................................................................. 68 Figuur 90: De controle van de contactoren .............................................................................. 69 Figuur 91: De controle van de foutendetectie .......................................................................... 69 Figuur 92: Het frontpaneel van automatisch rijden.................................................................. 70
6
Lijst met tabellen Tabel 1: Een overzicht van parameters van de sturing............................................................. 15 Tabel 2: De pinconfiguratie van de CAN-bus connector ......................................................... 18 Tabel 3: Het CAN protocol ..................................................................................................... 25 Tabel 4: De spanningsniveaus van low speed CAN ................................................................ 27 Tabel 5: De spanningsniveaus van high speed CAN ............................................................... 28 Tabel 6: Een overzicht van standaard t.o.v. extended frameformaat ....................................... 37
7
Alfabetische lijst van afkortingen ACK AMP BRP CAL CAN CAN- H CAN- L CIA CRC CSMA/CD DLC ECU’s EOF FMS HD I/O ID IDE ISO LabVIEW LLC MAC MDI NRSE NRZ ODVA OSI PCI PLC PLS PMA PXI RSE RTR SAE SDS SLIO SOF SRR STP syn. tq UTP
Acknowledge Arbitration on Message Priority Baud Rate Presealer CAN Application Layer Controller Area Network CAN -High CAN -Low CAN in Automation Cyclic Redundancy Code Carrier Sense Multiple Access with Collision Detection Data Length Code Electronic Control Units End of frame Feet Management System Hamming-Distance Input / Output Identifier Identifier Extension International Standardization Organisation Laboratory Virtual Instrument Engineering Workbench Logical Link Control Medium Access Control Medium Dependant Interface Non-Reference Single-Ended Non Return To Zero Open DeviceNet Vendor Association Open Systems Interconnection Peripheral Component Interconnect Programmable Logic Controler Physical Signalling Physical Medium Attachment PCI extensions for Instrumentatio Referenced Single-Ended Remote Transmission Request Society of Automotive Engineers Smart Distributed System Serial Linked I/O Start Of Frame Substitute Remote Request Shielded twisted pair synchronisatie tijdskwantum Unshielded twisted pair 8
VI DAQ
Virtuel instrument Data Acquisitie
9
Inleiding Dit eindwerk is gemaakt in opdracht van Group Thermote en Vanhalst te Waregem. De bedoeling van het eindwerk is een autonome testopstelling te ontwikkelen voor een Sevcon heftrucksturing. De testopstelling wordt gebruikt voor de detectie van fouten bij het repareren van de sturing. Het testprogramma wordt volledig gerealiseerd in LabVIEW. De in - en uitgangen van de sturingen worden gecontroleerd door middel van analoge en digitale I/O-kaarten en de instelling van de parameters door middel van een CAN-bus kaart. Deze kaarten bevinden zich samen in een PXI-chassis van National Instruments. Dit eindwerk is van belang voor het stagebedrijf om een betere service te bieden aan de klanten. Dit door middel van een snellere en correctere test. Het testprogramma moest zo worden opgesteld dat geen van de functies kon vergeten worden en aan de hand van een rapport moest duidelijk vermeld worden wanneer er zich problemen voordeden. Het programma moest gebruiksvriendelijk worden opgesteld zodat iedereen de sturing kan testen zonder enige voorkennis. We hebben het testprogramma in verschillende fasen aangepakt. In een eerste fase werd er een studie van de CAN-bus gemaakt. De data op de bus werd opgeslagen en geanalyseerd om zo de interne werking en parameteroverdracht te achterhalen. De CAN-bus is een snelle databus voor communicatie tussen elektronische apparatuur, ontwikkeld voor de auto-industrie om de interne bekabeling sterk te vereenvoudigen. Nadat het daar zijn nut had bewezen, werd ze ook geïntegreerd in heftrucks. In een tweede fase werden printkaarten ontworpen die het mogelijk maken om de sturing te controleren op laag vermogen, dus zonder contactoren en motoren. In een derde fase werd een testprogramma geschreven waarmee men de sturing kan inschakelen, parameters opvragen en de nodige controles verrichten. Er werd een automatisch testprogramma geschreven voor het controleren van de vermogenkring van de sturing met behulp van contactoren en motoren.
10
1 Voorstudie 1.1 Situering van het eindwerk Het eindwerk is gemaakt voor de firma Groep Thermote & Vanhalst
Figuur 1: Logo van Thermote & Vanhalst
TVH is opgericht in 1969 door dhr Paul Thermote en dhr Paul Vanhalst. Het is allemaal begonnen bij het aankopen, herstellen en verkopen van oude legerheftrucks. Dit was vooral gericht op België en Duitsland. Aangezien het aanbod in Europa te schaars was hebben ze op de Japanse markt ingespeeld, op grond daarvan hebben ze een grote expansieperiode doorgemaakt. In de jaren 90 was er een enorme expansie, dit is te danken aan de knowhow die door de jaren heen opgebouwd werd. Daardoor beschikken ze over een dagelijks bestand van 17000 actieve klanten in ruim 162 landen, bovendien beschikken ze over een voorraad van 450000 onderdelen op 10 miljoen gekende referenties. Tot nu toe wordt de groep geleid door de tweede generatie. De sterke bestuursleden bestaan uit de families Thermote & Vanhalst. De familie Thermote richt zich vooral op de aankoop van wisselstukken en de familie Vanhalst richt zich vooral op de aankoop van tweedehands heftrucks. TVH is vandaag een wereldspeler op de vorkheftrucks en heeft circa 1600 tweedehands heftrucks in voorraad. De groep deelt zich op in 5 divisies: Parts Division, Forklift Division, Handling Equipment Division, Rental Equipment Division en Service & repair division. Van het eenvoudigste steekwagentje tot de zwaarste heftruck, van het kleinste moertje tot het complete chassis; bij TVH vindt u het allemaal. Ongeacht het merk, het type of het bouwjaar van de heftruck, TVH heeft steeds de oplossing in huis. De ongeëvenaarde knowhow (kennis) van TVH vertaalt zich in een bestand van meer dan 10 miljoen artikelnummers waarvan ruim 450.000 referenties op voorraad. U hoeft geen verschillende leveranciers meer te zoeken en bespaart hierdoor heel wat tijd en moeite. TVH heeft een klantenbestand van klanten uit meer dan 162 verschillende landen. Daarom heeft TVH een wereldwijd distributienetwerk (dochtermaatschappijen en filialen). De verkoopteams staan continu ter beschikking om de wereldwijde verspreide klanten te woord te staan in 31 verschillende talen. De hoofdkantoren van TVH zijn beide gevestigd in West-Vlaanderen, namelijk in Waregem en Gullegem. De vestiging in Waregem is een nieuw en modern complex. Alle afdelingen van de vestiging in Gullegem werden overgebracht en de vestiging wordt meer gebruikt als magazijn.
11
1.2 Een heftruck Een heftruck is een transportwagen met een hefinrichting. Je hebt verschillende soorten heftrucks: •
vrijdragende heftruck, De heftruck met tegengewicht, kortweg heftruck genoemd, is zo gebouwd dat deze in normale omstandigheden en volgens de voorgeschreven instructies stabiel kan gebruikt worden. De lading bevindt zich voor de voorwielen.
Figuur 2: Een vrijdragende heftruck
Hierbij moeten we ook een onderscheid maken tussen heftrucks met 3 wielen en met 4 wielen. De te testen sturing bevindt zich in een heftruck met 3 wielen. •
voorgesteunde heftruck met vooruitschuifbare mast of vork, Deze wordt ook reachtruck genoemd. Deze heeft als voornaamste kenmerk dat de mast en/of vorken naar voor kunnen geschoven worden om een lading op te nemen of af te zetten.
Figuur 3: Een reachtruck
12
•
gesteunde stapelaar, Stapelaars met steunarmen en een vork waarvan de tanden boven de steunarmen zijn geplaatst. Deze stapelaar is al dan niet uitgerust met een zit- of staanplaats voor de bediener.
Figuur 4: Een stapelaar
Bij de heftrucks worden ook enkele termen gespecificeerd: •
Bypass: De bypass wordt ingeschakeld wanneer er volle snelheid gereden wordt en ook recht gereden wordt, dan worden de mosfets die de rijmotor aansturen overbrugd en wordt er gereden op batterijspanning. Dit om de mosfets niet te overbelasten.
•
Regeneratie: dit is het terugsturen van de overtollige energie naar de batterij(bv. bij het afremmen). Zo laten we de motor functioneren als generator.
1.3 Bespreken van de teststuring Een sturing is een elektronische regeling die aan de hand van meerdere ingangen (bv. Gaspedaal, richtingsschakelaar) de snelheid van een of meerdere motoren zal bepalen. In een elektrische machine vindt men dus meestal volgende sturingen terug: een tractiesturing (rijden), een pompsturing (heffen) en een servosturing (sturen). Iedere sturing bevat meestal één of meerdere printkaarten die het brein zijn van de sturing en die alle ingangssignalen verwerken tot een correct uitgangssignaal.
Figuur 5: Een sturing
13
Heftruckconstructeurs maken meer en meer gebruik van programmeerbare sturingen. Dit zijn sturingen die niet meer afgesteld moeten worden aan de hand van potentiometers, maar waar de parameters d.m.v. een programmeerconsole of via knoppen op het dashboard ingesteld kunnen worden. Als er een fout optreedt in de machine, dan komt er een foutmelding op het scherm. Ik heb gebruikt gemaakt van een Sevcon sturing. Sevcon produceert voornamelijk motor sturingen. De sturing is het type SC2542.
SC = Sevcon = merknaam 2 = 2000 reeks 5 = Dual Traction with Proportional Control = dubbele tractiemotor met regeneratie regeling 4 = 48V 2 = 250A
Figuur 6: De sturing SC2542
Een tractiemotor (tractie = trachus = het trekken) is een motor die bestemd is om een voertuig aan te drijven. Deze motor biedt de mogelijkheid de remenergie in het net terug te voeden. Elektrische tractie is de voorbeweging van voertuigen door middel van elektromotoren. Een elektromotor is een motor die in een continu proces elektrische energie, die wordt ontrokken van het net of een accu, om kan zetten in mechanische energie. Dit is meestal in de vorm van een draaiing van een beweegbaar onderdeel. Naargelang de aard van de energie die het voedingssysteem levert, wordt er een onderscheid gemaakt in gelijkstroom-, wisselstroom – en draaistroomtractie. De tractie bij de sturing is gelijkstroom. Gelijkstroomsystemen hebben als voordeel dat de meest geschikte elektromotor voor tractiedoeleinden, de gelijkstroomseriemotor, kan toegepast worden. Bij dit soort tractie wordt de spanning beperkt tot maximum 300V. Dit bemoeilijkt het transport van energie over grote afstanden. Een gelijkstroomseriemotor is een elektrische machine bestemd om te worden aangesloten aan een gelijkstroombron. Doordat de rotatiesnelheid op een eenvoudige wijze kan worden gevarieerd, is de gelijkstroommotor geschikt als aandrijfmotor voor voertuigen die met een instelbare snelheid moeten draaien en rijden.
14
Bij deze sturing kan je 30 parameters instellen. In de tabel vindt je een overzicht van de parameters. Imax De maximale stroom. Accel (Acceleration)
Dit is de reactietijd om van 0 naar volle snelheid te gaan.
Decel (Deceleration)
Dit is de reactietijd om van volle snelheid naar 0 te gaan.
Creep Speed
Dit is de kruipsnelheid :de snelheid die de sturing uitstuurt wanneer het gaspedaal minimaal ingedrukt is. De maximale snelheid.
Max Speed Cut Speed 1 /2
Dit zijn 2 maximale snelheiden die aanwezig zijn. De maximale duty cycle van de regeling wordt terug geregeld naar de geprogrammeerde waarde. Cut Accel 1 /2 Dit is de reactietijd om van de huidige waarde naar de waarde van de geprogrammeerde waarde te gaan ingesteld bij Cut Speed 1/2. Dir. Brake (Direction) Dit is de maximale remstroom wanneer we van richting wisselen. Ntrl Brake ( Neutral) Dit is de maximale remstroom wanneer we overschakelen naar neutraal. Foot Brake Dit is de maximale remstroom. Bypass Out Dit is de maximale stroom waarbij de bypass terug uitschakelt. Als de sturing boven deze waarde komt dan slaat de bypass contactor af. Het is een beveiliging tegen overspanning. F.W. In Dit is de stroom voor het inschakelen van de veldverzwakking. (Field Weakening) F.W. Out Dit is de stroom voor het uitschakelen van de veldverzwakking. (Field Weakening) Steer Delay Dit is de reactietijd van het stuur. Seat Delay Regen Speed (Regeneration) Brake Const Accel. Zero (Acceleration) Accel. Full (Acceleration) Brake Zero Brake Full
Dit is de reactietijd van het zetelcontact. Dit is de maximale snelheid voor het terugwinnen van energie. Dit is de verhouding tussen het terugwinnen van energie en het tegenstroom remmen. Dit is de minimale waarde van de potentiometer voor het optrekken. Dit is de maximale waarde van de potentiometer voor het optrekken. Dit is de minimale waarde van de potentiometer voor het remmen Dit is de maximale waarde van de potentiometer voor het remmen
Econ. Zero(Economy) Dit is de minimale waarde van de potentiometer voor economisch rijden. Econ. Full (Economy) Dit is de maximale waarde van de potentiometer voor economisch rijden. Str Left Dit is de maximale waarde van het stuur voor het draaien naar links. Str Right Steer Factor Dead Band Byp. Delay
Dit is de maximale waarde van het stuur voor het draaien naar rechts. Dit is het punt dat bepaald wanneer het binnenste wiel moet omkeren van richting tijdens een bocht. Bij een Nissan heftruck is dit standaard 2,9. Dit is de hoek waarbinnen het stuur zich moet bevinden om 100 % maximale snelheid te hebben en bypass mogelijk te maken. Dit is de reactietijd van de bypasscontactor.
Tabel 1: Een overzicht van parameters van de sturing
15
De duty cycle (δ) = (maximale tijd van de spanning hoog / de totale periode) * 100 % Deze sturing bevindt zich in 3 wielheftrucks. De sturing is verantwoordelijk voor het rijden en sturen en voor het aansturen van de motor voor het heffen. Deze sturing bevat twee vermogenblokken, een voor de rechtse motor en een voor de linkse motor. Iedere parameter zet zijn Identifier (ID) en specifieke data op de CAN bus. (wordt later verduidelijkt) Als je met de handset een beweging uitvoert, dan genereert de handset een ID en data. Deze ID en data wordt op de CAN bus geplaatst en deze informatie wordt bekeken door de sturing. Als de sturing deze ID en data herkent voert hij de functie uit en stuurt een antwoord terug met zijn ID. De verschillende ID en data werden later onderzocht om te gebruiken in het testprogramma geschreven in LabVIEW. In de sturing zitten er ook nog enkele veiligheden ingebouwd. Er is namelijk een volledige procedure die gevolgd moet worden bij het starten van de heftruck om te voorkomen dat de heftruck zonder meer kan rijden. Men kan opstarten op twee verschillende manieren: • contactslot – voetpedaal – rijrichtingschakelaar, • contactslot – rijrichtingschakelaar – voetpedaal. Het voetpedaal moet binnen de 2 seconden bediend zijn anders treedt er een fout op. Wanneer er geen contact meer is met de zetel, dan valt de sturing geleidelijk terug uit. De regeling wordt uitgeschakeld indien de stoelschakelaar een lange tijd geopend is. Aan de hand van een scoopbeeld van de spanning tussen de negatieve pool van de batterij en het veld kunnen we de snelheid controleren. Naarmate het veranderen van de snelheid, verandert ook de pulsbreedte van het signaal.
Figuur 7: Het scoopbeeld van spanning veld t.o.v. massa
De duty cycle bij het starten is afhankelijk van de instelling. De snelheid is tot 100% instelbaar onder de term optreksnelheid (Acceleration).
16
De regeling is voorzien van contactorchopping. Chopping laat toe om 24V contactoren te gebruiken bij alle batterijvoltages 24V -96V, door de batterijspanning continue te controleren en de overeenkomstige contactor uitgangspinnen te schakelen. Er zijn 3 mogelijkheden voor het hakken (choppen) beschikbaar via het setupmenu: uit, aan en 24V. De uit- instellingen worden gebruikt voor de nominale waarden van batterijspanningen, en voor het plaatsen van de spoelen op 24V voor hogere spanningstoestellen. Het plaatsen in de stand 24V is voor 24V spoelen en lampen zonder dat de spanning daalt tot 16V na 1 seconde. Wanneer we chopping aan plaatsen dan daalt de spanning tot 16V na 1 seconde. Een hakker of chopper schakelt een DC-verbruiker voortdurend aan en af van een DC-bron. De vermogenkring van de sturing bestaat uit mosfets die parallel geschakeld staan, dit heeft als gevolg dat er hogere belastingsstromen toegelaten worden. De stroom wordt tussen de individuele schakelaars gedeeld. Omdat mosfets een positieve temperatuurscoëfficiënt hebben kunnen zij parallel geschakeld worden zonder behoefte aan bronweerstanden. Als een mosfet lichtjes meer stroom trekt dan de andere, dan verwarmt deze en stijgt de impedantie, dit resulteert in een verlaging van de stroom. Parallelle mosfets moeten dicht bij elkaar geplaatst worden omdat de impedantie van de gate gelijk zou zijn en alle transistoren schakelen op het zelfde ogenblik. De bypasscontactor wordt bij vol ingedrukt voetpedaal ingeschakeld als: De regeling langer dan 1,5 seconden een stroom heeft van Imax en de motorspanning minstens 20% van de batterijspanning is of bij volledig ingedrukt voetpedaal en maximale uitsturing gedurende 1,5 seconden. De contactor valt terug af als de motorspanning lager dan 90% is. Bij deze twee voorwaarden moet het stuur zich binnen de deadband bevinden. De deadband is een instelbare parameter die uitgedrukt wordt in graden. Er is ook een mogelijkheid om een veldverzwakking te voorzien: dit gebeurd door middel van een weerstand of een extra wikkeling in de motor. Deze staat parallel over het veld van de rijmotor. De veldverzwakking wordt geschakeld door middel van een contactor. Wanneer de sturing volledig uitgeregeld is en de bypass contactor gesloten is, komt de veldverzwakking contactor in wanneer de geprogrammeerde inschakelstroom is bereikt. Er is ook terugwinning van energie.Dit treedt in werking: • wanneer een richting wordt gekozen tijdens het rijden en de snelheid hoger is dan de maximale reach-in. Dit maximum kan ingesteld worden (Regen Speed). • sluiten van de remschakelaar. Remmen van de motor gebeurt met een vaste remstroom. • Indien de rijrichtingschakelaar of voetpedaal in neutraal gezet wordt. Wanneer de snelheid te laag is om de rijmotor als generator te laten functioneren, schakelt de regeling automatisch over op tegenstroom remmen. In de sturing zijn er 2 ingangen aanwezig voor het instellen van de snelheid. De maximale duty cycle van de regeling wordt terug geregeld naar de geprogrammeerde waarde wanneer de microschakelaar open is. De sturing beschikt ook over een handremschakelaaringang. Als deze schakelaar gesloten is werken de rij-richtingcontactoren wel maar de sturing regelt niet.
17
In de sturing is er een instelling voor het remmen voorzien.. Er is een afremsnelheid in te stellen, m.a.w. de reactietijd indien er voor een lagere snelheid gekozen wordt. Deze instelling is lineair in te stellen van 100 tot 0%. De benaming voor het rijden is deceleration. De fouten worden aangeduid aan de hand van een diagnose-led. Wanneer zich een fout voordoet, wordt deze fout gewist nadat het probleem is opgelost en de truck opnieuw gestart wordt. De sturing beschikt ook over een seriële communicatie bus, namelijk de CAN-bus. Deze CAN-bus wordt gebruikt voor het aansluiten van een display of een programmeerconsole. Voor de aansluiting van de CAN-bus zijn er twee connectoren voorzien die parallel aangesloten zijn. De programmeerconsole kan op een van deze connectoren aangesloten worden. Sevcon’s CAN systeem is gedefinieerd als CAN 2.0A (zie later). Het CAN- protocol heeft een baudrate van 100kb/s. CAN-bus is een 2-draads twisted pair differentiaal systeem met 10,5V en 0V als voedingsspanningen. De aansluitingen worden gemaakt door middel van FCC- 68 telefoonconnectoren.
Figuur 8: De connector voor de CAN-bus
Pin
functie
1
10,5 V (SC 2000 selecteert)
2
0V ( negatieve voedingsspanning)
3
10,5V (SC 2000 selecteert)
4
10,5V (positieve voedingsspanning)
5
CAN High (Data)
6
CAN Low (Data)
Tabel 2: De pinconfiguratie van de CAN-bus connector
Elke sturing heeft 2 connectoren die full-duplex werking mogelijk maken. Elk netwerk beschikt over een 120 ohm afsluitweerstand, die voorzien is in elke sturing. De sturing waarvan ik gebruik maak kan ingesteld worden met een programmeerconsole. Meestal heeft men de programmeerconsole de naam handset of calibrator.
Figuur 9: De handset van de SC2542
18
Een handset is een gemakkelijk te gebruiken toestel die gebruikt wordt om aanpassingen te maken en instellingen te selecteren. De handset kan ook gebruikt worden als een apparaat om de diagnose te stellen van de status van alle spanningen, stromen en temperaturen in de controller samen met de toestand van alle schakelaars en de analoge inputs te tonen. Op de onderstaande figuur vindt u een menustructuur van de handset.
Figuur 10: De configuratie van handset
19
1.4 LabVIEW De software die gebruikt wordt om de sturing te testen is het programma LabVIEW 7.0. LabVIEW staat voor Laboratory Virtual Instrument Engineering Workbench. LabVIEW onderscheidt zich van andere programmeertalen omdat het een grafische programmeertaal is. Deze taal wordt ook wel de G- programmeertaal genoemd. Functies en subroutines worden aangegeven als blokjes. De broncode ziet eruit als een flowchart in plaats van een lijst met instructies. LabVIEW programma’s worden virtuele instrumenten (VI’s) genoemd. Een VI bestaat uit drie onderdelen: een frontpaneel, een blokdiagram en een icoon. We zullen deze drie onderdelen eens apart bekijken.
1.4.1 Het frontpaneel Het frontpaneel is de user interface. De gebruiker vindt hier de nodige informatie om een bepaalde toepassing in werking te stellen. Op het frontpaneel heeft men beschikking tot het controls palet. Dit palet bevat een uitgebreide verzameling voorgeprogrammeerde bedieningsknoppen en indicatoren. In LabVIEW worden deze controls en indicators genoemd.
Figuur 11: Het controle palet
Een control komt overeen met een databron (ingang) en een indicator met de dataweergave (uitgang). Een control heeft een dik kader en een indicator heeft een dun kader in het blokdiagram. Wanneer men een control of en indicator plaatst op het frontpaneel wordt er automatisch de corresponderende ‘data source’ en ‘data display’ in het blokdiagram geplaatst (en vice versa). Een data source of een data display noemt men een terminal.
Figuur 12: Het frontpaneel
Figuur 13: Het blokdiagram
20
1.4.2 Het blokdiagram Het blokdiagram is een schematisch aanzicht van de werking. Dit is de broncode die de software- ontwikkelaar ziet. Op het blokdiagram vindt u nodes, terminals en draden terug. Nodes zijn iconen met een bepaalde functie. Op het blokdiagram heeft men beschikking tot het functiepalet. Dit palet bevat een indrukwekkend aantal ingebouwde functies en complete VI’s en kan nog worden aangevuld met zelfgemaakte VI’s. Iedere functie of VI heeft een aantal inputs en een aantal outputs. Door het verbinden van alle inputs met een controle of met de output van een andere functie kan een compleet programma gemaakt worden. De verbindingen gebeuren d.m.v. draden, deze hebben een verschillende kleur naargelang het type. Zo staat de kleur roze voor het string type. Een string is een woord of zin. De dikte van de draad varieert ook, een dunne lijn stelt een eendimensionale array voor; een dubbeldikke lijn stelt een multidimensionale array voor.
Figuur 14: Het functiepalet
1.4.3 Het Icoon Het icoon bevindt zich rechtsboven terug op het frontpaneel en het blokdiagram.
Figuur 15: Het icoon
Een icoon heeft een aantal in- en uitgangen die we zelf kunnen definiëren. M.b.v. een icoon kan men een eenvoudige voorstelling gemaakt worden van wat er zich precies in het VI bevindt. Zoals u op het voorbeeld ziet is dit een VI om grafieken te maken.
1.4.4 Dataflow Programmeren in LabVIEW gebeurt volgens het dataflowprincipe, dit wil zeggen dat men altijd een bron en een doel moet hebben waartussen de informatie kan worden doorgegeven. De data moet altijd van bron naar het doel stromen. De volgorde waarin functies en VI’s worden uitgevoerd, wordt bepaald door de manier waarop ze met elkaar en met de terminals verbonden zijn. Een functie of een VI wordt uitgevoerd zodra en slechts wanneer al zijn inputs een waarde hebben gekregen, m.a.w. als alle nodige data beschikbaar is. Pas nadat die functie of VI is uitgevoerd, zullen haar of zijn outputs op hun beurt een waarde gekregen hebben. De dataflow is gemakkelijk te volgen door middel van de highlight execution. Wanneer dit is aangeklikt bij het runnen, wordt het programma zeer traag doorlopen en wordt de dataflow duidelijk zichtbaar gemaakt door bolletjes die over de draden schuiven.
21
Figuur 16: De dataflow
Je ziet duidelijk welke waarde er doorgegeven wordt.
1.4.5 SubVI’s We kunnen ook zelf VI’s aan maken. Deze worden subVI’s genoemd. Een subVI is een zelfstandig werkende VI die we kunnen oproepen in een hoofdVI. Deze hoofdVI noemt men in LabVIEW het top level VI. Hebben we een VI aangemaakt dan kunnen we deze voorstellen door een eigen icoon met zijn eigen aansluitpennen en met eventueel commentaar. Het grote voordeel van het gebruik van subVI’s is dat we onze top level VI eenvoudig kunnen houden. Wanneer we willen bekijken hoe een subVI is uitgewerkt, dan moeten we enkel op het icoon klikken in het blokdiagram.
1.4.6 Testen van een programma Als we denken dat het VI af is, kunnen we gaan testen. We kunnen gebruik maken van de runknop om het programma te starten. Het probleem hierbij is dat het programma heel snel is afgelopen als het zeer klein en eenvoudig is. Een andere mogelijkheid is de continuously runknop indrukken. LabVIEW start dan telkens opnieuw het geschreven programma. Stoppen is enkel mogelijk via de abort knop. Dit stoppen is niet aangeraden in grotere programma’s, omdat men dan niet weet waar de programma- afhandeling onderbroken is. highlight execution Run
run abort continue
pause
Figuur 17: De testknoppen
Een fout kan geconstateerd worden op twee manieren: de runknop is onderbroken en de draad in het diagram is onderbroken. Wanneer we op de onderbroken runknop drukken krijgen we een lijst van de gemaakte fouten. 22
1.4.7 National Instruments testapparatuur We maken gebruik van de NI-PXI-1042 als testapparatuur. Dit PXI- chassis is voorzien van kaarten met digitale in- en uitgangen en analoge in- en uitgangen en ook een CAN bus kaart. PXI (PCI extensions for Instrumentation) is een modulair instrumentatieplatform dat speciaal is ontwikkeld voor meet – en automatiseringstoepassingen. PXI maakt het ook mogelijk verschillende modules onderling te verbinden en te synchroniseren, zodat signalen snel en nauwkeurig doorgegeven kunnen worden zonder extra bekabeling. Omdat de PXI-kaarten heel duur zijn heeft TVH voor iedere PXI kaart een extra beveiliging gemaakt. De beveiliging van de analoge ingangen wordt uitgelegd.
Figuur 18: De beveiliging van de analoge ingangen
Positief signaal aan ingang omgezet naar 10,5 V van zener spert (onderste) en 0,7 van zener doorlaat (bovenste) = 11,2 V naar ingangscircuit. Negatief signaal aan ingang omgezet naar -10,5 V van zener spert (bovenste) en -0,7 van zener doorlaat (onderste) = -11,2V naar ingangscircuit De stroom wordt beperkt door de 22k weerstand. Stel ingangsspanning = 80V => I= 80 − 11,2 = 3,12 mA. 22000 De kaart mag maximum 5 mA krijgen. De 2M weerstand is geplaatst om zwevende signalen op te vangen, deze worden afgeleid naar massa. Omdat we werken met zenerdioden van 10,5V moeten we eerst de signalen kleiner maken, zodat de correcte waarde wordt doorgegeven. De spanningsdeler wordt later uitgelegd.
23
1.5 Controller Area Network 1.5.1 Ontwikkeling Eind de jaren ’80 kreeg de automobielindustrie te maken met twee probleemgebieden. De eisen op het gebied van comfort en veiligheid namen steeds meer toe echter nu is dit nog voor beiden het geval. Bv. Stoel- en spiegelverstelling, airconditioning, startblokkering. Het gevolg hiervan is dat de communicatie tussen de afzonderlijke units binnen het chassis zal toenemen. Het aantal communicatielijnen (kabelboom) moeten daarvoor enorm uitgebreid worden. Momenteel zit er ongeveer 2 kilometer draad met een totaal gewicht van ruim 100 kg in een auto. Er waren ook veel connectoren nodig. Dit geheel zorgde voor enkele problemen betreffende het gewicht, de productiekost, de betrouwbaarheid. De automobielsector (Duitse, Franse en Amerikaanse) begon naar nieuwe, moderne communicatiemethodes te zoeken en kwamen terecht bij de bustechniek. Deze techniek moet aan bijzondere eisen voldoen: • datatransport met lage en hoge snelheid, • zeer betrouwbare dataoverdracht met een Hamming-Distance (HD) groter dan 4, • geoptimaliseerd voor de overdracht van kleine datahoeveelheden, • componenten die gemakkelijk in gebruik zijn en goedkoop door massafabricage, • een eenvoudige busopbouw. Dit is een tweedraadsverbinding. Er kan gebruik gemaakt worden van twisted pair, zo wordt de overspraak vermeden. HD is een datacommunicatieterm die aangeeft hoeveel bits er tijdens het datatransport verkeerd doorgestuurd of ontvangen kunnen worden voordat het bericht niet meer op betrouwbaar op fouten te controleren is. Jammer genoeg ontwikkelde iedere grote automobielfabrikant een eigen busconcept en probeerde vervolgens deze huisstandaard internationaal aanvaard te krijgen. Er zijn slechts vier ontwikkelingen overgebleven maar in de eerste helft van de jaren ’90 moesten ze opgeven t.o.v. Controller Area Network (CAN). In de autopraktijk wordt CAN als low -en highspeed dataoverdracht sinds 1992 gebruikt. Bijna gelijktijdig ontdekte ook de industrie in het bijzonder de automatisering- en productiebranche deze communicatiemethode. De CAN -bus wordt in deze sectoren gebruikt om te meten, sturen en regelen. Zo vindt men deze bus in machines voor weefgetouwen, liften, robot -en motorsturingen. In conventionele automatische toepassingen komen vaak dubbele bekabeling of dubbele sensoren voor omdat de verschillende systemen soms dezelfde sensorinformatie nodig hebben.
Figuur 19: Een conventioneel bedradingsysteem
Figuur 20: Een multiplex bedradingsysteem
24
Dit systeem is bij multiplexsystemen, zoals CAN -bus, niet aanwezig doordat alle informatie de op het netwerk verstuurt wordt, via de seriële bus, voor iedereen beschikbaar wordt gemaakt. De informatie kan door elk systeem van de bus gelezen worden indien nodig.
Figuur 21: Het multiplexsysteem
1.5.2 Het CAN- protocol Om de communicatie op de CAN- bus in goede banen te leiden is er het CAN- protocol. In de tabel hieronder vindt u een overzicht van de belangrijkste technische specificaties. Deze specificaties worden later besproken. Multimaster Baudrate Modulatie Lengte van bericht Identificatie
Datalengte CRC- controle Prioriteit Foutdetectie Foutafhandeling Fysische koppeling Lengte netwerk
Het systeem is verdeeld in verschillende nodes waarbij elke node tijdelijke controle heeft over de actie. 10 kbaud – 1 Mbaud NRZ met bitstuffing 44 – 130 bits 11 bits standaard CAN (2032 verschillende berichten) 29 bits extended CAN (536 miljoen verschillende berichten) 0-8 bits 15 bits Laagste ID heeft de hoogste prioriteit (= arbitrage) Bit- niveau, CRC, formaatniveau Bevestiging (acknowledge), foutbericht, automatische herhaling Symmetrisch of asymmetrisch, galvanisch gescheiden, glasvezel 40 m of langer bij lagere baudrate
Tabel 3: Het CAN protocol
Baudrate: overdrachtsnelheid uitgedrukt in aantal tekens per seconde. Een teken kan meerdere bits zijn. Modulatie: toevoegen van een draaggolf aan het signaal.
25
CRC: Cyclic Redundancy Code Een foutopsporingstechniek die bestaat uit een test die op elk datablok of -frame wordt uitgevoerd door zowel de zendende als de ontvangende modem. De zendende modem plaatst de uitkomsten van deze testen in de vorm van een CRC-code in de datablokken. De ontvangende modem vergelijkt de resultaten met de ontvangen code en geeft een positieve of negatieve reactie.
1.5.3 Normering door ISO Begin de jaren 90 begon de International Standardization Organisation (ISO) met de wereldwijde normering van de automobielbus, waarbij de CAN-bus steeds meer op de voorgrond trad. De basis voor de normeringactiviteiten is het 7 lagen bestaande ISO/OSI referentiemodel. OSI (Open Systems Interconnection) is een referentiemodel voor de manier waarop boodschappen tussen twee punten op een telecommunicatienetwerk verzonden moeten worden. OSI werd in 1983 ontwikkeld door vertegenwoordigers van grote computeren telecommunicatiebedrijven. Het OSI model moest een hulpmiddel vormen om gedetailleerde interfaces mee te ontwikkelen die dan tot standaard kunnen benoemd worden. OSI was officieel door de ISO overgenomen als internationale standaard. De hoofdgedachte achter het OSI model is dat de communicatie tussen 2 eindpunten in een telecommunicatienetwerk in verschillende lagen ingedeeld kan worden, waarbij elke laag zijn eigen verzameling van speciale en gerelateerde functies. Elk eindpunt op dit netwerk is uitgerust met deze 7 functionele lagen. Als een boodschap van het ene eindpunt naar het andere verstuurd wordt, zal de boodschap dus eerst bij de zender de 7 lagen doorlopen en vervolgens bij de ontvanger in de omgekeerde richting. De CAN bus is gedefinieerd door de onderste twee lagen van het ISO/OSI model, namelijk de fysische laag en de datalinklaag. De applicatie laag is door de gebruiker zelf te bepalen.
Figuur 22: Het ISO/OSI model van de CAN-bus
26
1.5.4 De fysische laag De fysische laag zijn alle elementen die van belang zijn bij het tot stand brengen, onderhouden en verbreken van de fysische verbinding tussen 2 stations. De fysische laag wordt onderverdeeld in: • PLS - physical signalling: o bit encodering / decodering o bit timing o synchronisatie • PMA - physical medium attachment o zender- en ontvangerkarakteristieken: spanningsniveaus van de bits • MDI - medium dependant interface o connectors Bij een CAN- netwerk worden signalen gestuurd via de CAN- bus. Deze CAN- bus bestaat uit CAN- High (CAN-H) en CAN- Low (CAN-L). Deze twee draden werken in differentiële mode. Dit wil zeggen dat geïnverteerde voltages over de twee draden gestuurd worden en dit om ruis te verminderen. Deze voltageniveaus hangen af van welke standaard er gebruikt wordt. Er wordt immers een onderscheid gemaakt in CAN met hoge of lage snelheid qua baudrate.
Figuur 23: De twisted pair: CAN-H en CAN-L
1.5.4.1 Low Speed CAN De basis van de low speed CAN is een ontwikkeling waarmee de firma Bosch begin jaren ’80 in Duitsland is begonnen waarbij de ondersteuning van INTEL (omzetting van protocollen in hardwarechips) van groot belang was. Bij low speed is een data- overdrachtsnelheid van 5 kbit/s tot 125 kbit/s mogelijk. De spanningsniveaus voor dit CAN- netwerk voldoen aan ISO 11519-2. Signaal
Recessieve toestand (rust) min. Nominaal max.
Dominante toestand (actief) eenheid min. nominaal max.
CAN- High
1,6
1,75
1,9
3,85
4
5
CAN- Low
3,1
3,25
3,4
0
1
1,15
V (volt) V (volt)
Tabel 4: De spanningsniveaus van low speed CAN
27
Er is sprake van een recessieve toestand wanneer het spanningsverschil UD tussen CAN- H en CAN- L hoogstens 0,5 V is. Is het spanningsverschil UD tussen CAN- H en CAN- L minstens 0,9 V dan is er sprake van een dominante toestand. De nominale waarde betekent het niveau van de individuele leiding t.o.v. de massa.
1.5.4.2 High Speed CAN Bij high speed CAN is een data- overdrachtsnelheid tot 1Mbit/s mogelijk. De spanningsniveaus voor dit CAN- netwerk voldoen aan ISO 11898. Signaal
Recessieve toestand (rust) min. Nominaal max.
Dominante toestand (actief) eenheid min. nominaal max.
CAN- High
2
2,5
3
2,75
3,5
4,5
CAN- Low
2
2,5
3
0,5
1,5
2,25
V (volt) V (volt)
Tabel 5: De spanningsniveaus van high speed CAN
1.5.4.3 Afsluitweerstanden We moeten beide eindpunten van de CAN- bus afsluiten met een afsluitimpedantie om reflecterende golven te vermijden. De golven worden namelijk geabsorbeerd door de weerstand. Bij een twisted pair maken we gebruik van een impedantie van 120 Ω. Bij low speed CAN is geen afsluitweerstand vereist. Dit omwille van de beperkte baudrate max. 125 kbit/s. Deze baudrate maakt de CAN- bus ongevoelig voor reflecties.
1.5.4.4 CAN- bus kabels De kabels die gebruikt mogen worden voor het gebruik van de CAN -bus worden gespecificeerd in de ISO 11898 standaard. De belangrijkste specificaties zijn: • • • •
shielded of unshielded twisted pair kabel, nominale impedantie van 120 Ω (afsluitweerstand), weerstand in functie van de lengte, lijnvertraging van 5 nsec/m.
Een twisted pair kabel is een kabel waarbij de twee draden rond elkaar zijn gewonden met de bedoeling om elektromagnetische interferentie (overspraak) te vermijden. Hiervoor wordt de data differentieel op de aders gezet. Een shielded twisted pair kabel (STP) is een twisted pair kabel met een elektromagnetische afscherming, daardoor is er het minste last van elektromagnetische interferentie.
28
Een unshielded twisted pair kabel (UTP) is een twisted pair kabel zonder elektromagnetische afscherming.
Figuur 24: Shielded twisted pair
Figuur 25: Unshielded twisted pair
De maximale data- overdrachtsnelheid op de CAN- bus is afhankelijk van de lengte van de CAN- bus. Het is belangrijk dat het signaal dat op de bus gestuurd wordt, tijd genoeg heeft om zich op de CAN- bus voort te planten tot de meest uiterste CAN- modules en terug, vooraleer een nieuw signaal op de bus gestuurd wordt. In de tabel hieronder vindt u een overzicht van hoever de bus uitgebreid kan worden en welke data- overdrachtsnelheden er mogelijk zijn. Volgens de ISO 11898 standaard is het maximaal aangesloten stations 32.
Figuur 26:Een overzicht van busuitbreidingen
29
1.5.4.5 CAN- connectoren De meest aanbevolen connector is de 9-pin D- sub connector die bepaald is in de CIA standaard DS-102. Deze standaard is gebaseerd op de ISO 11898-1 en ISO 11899-2 norm en vormt de standaard voor de CAN- connectors.
Figuur 27: 9-pin D- sub connector
Indien de 9-pin D- sub connector gehanteerd wordt, zal een mannelijke connector met bovenstaande specificaties voorzien worden door de bus node, binnenin de modules moeten pin 3 en pin 6 verbonden worden. Er zijn echter meerdere mogelijkheden als CAN- connector.
1.5.4.6 NRZ- encoding Encoderen is analoge informatie omzetten naar digitale informatie. Bij de CAN- bus wordt gebruik gemaakt van de non return to zero (NRZ) modulatiemethode. Deze methode geeft de maximale transmissiesnelheid. Eigenlijk vindt er geen modulatie plaats, iedere 0 of 1 wordt als een 0 of 1 verstuurd. Gedurende 1 bittijd zijn slechts 2 toestanden mogelijk. Een dominante (0) of een recessieve(1).
Figuur 28: NRZ- encodering
30
1.5.4.7 Bitstuffing NRZ- encodering zorgt ervoor dat niet in elke bit een stijgende of dalende flank voorkomt. Het is perfect mogelijk dat de bus zich een lange tijd in dezelfde toestand bevindt. Wanneer er echter veel bits met eenzelfde polariteit na elkaar worden verstuurd, zijn er te weinig dalende flanken om de CAN- module te synchroniseren. Om dit probleem op te lossen wordt er na een bepaald aantal gelijke bits een tegengestelde bit toegevoegd. Dit wordt bitstuffing genoemd. Als een CAN- frame meer dan 5 bits in dezelfde toestand bevat die na elkaar verzonden moeten worden, dan wordt er automatisch na iedere reeks van 5 identieke bits een complementaire bit tussengevoegd en verzonden. Deze bit wordt de stuffbit genoemd, deze bevat geen informatie- inhoud. De ontvanger moet deze stuffbits weer verwijderen uit de datastroom. Dit wordt destuffing genoemd, zodat het oorspronkelijke bericht wordt hersteld.
Figuur 29: Bitstuffing
De verschillende CAN- modules aanwezig op het netwerk moeten gesynchroniseerd worden op de data die zich op dat ogenblik op de bus bevindt omdat ze elk een eigen klok hebben. Op deze klok kunnen er kleine afwijkingen ontstaan door temperatuur- en spanningswijzigingen. Als er faseverschuivingen zouden optreden dan zou zowel de gegevensoverdracht als de arbitrage mislopen. Het is noodzakelijk om eerst ons te verdiepen in de bittiming voor we de synchronisatie kunnen bekijken.
1.5.4.8 Bittiming De nominale bitsnelheid is het aantal bits dat per seconde verzonden wordt. De nominale bittijd = 1/ nominale bitsnelheid De bittijd wordt onderverdeeld in vier verschillende segmenten/ synchronisatiesegment verspreidingstijdsegment fasebuffersegment1 fasebuffersegment2
Sample point
31
• • • •
synchronisatiesegment: 2 modules zijn synchroon als hun stijgende en dalende flank in dit gebied valt, verspreidingstijdsegment: dit segment wordt gebruikt om vertragingen op te vangen die ontstaan door de relatief grote afstanden tussen de 2 modules, sample point: op dit moment wordt de waarde van de bit gelezen (1 of 0), fasebuffersegment 1 & 2: deze worden gewijzigd, op deze manier kan men het sample point van een bit verschuiven en dus de faseverschuiving compenseren.
Ieder segment wordt verder opgedeeld in een programmeerbaar aantal tijdskwanta. De lengte van een tijdskwantum (tq) is afhankelijk van de periode van de interne frequentiegenerator van het station en de programmeerbare schaalfactor (Baud rate prescaler – BRP). De waarde van die factor is gelegen tussen 1 en 32. De frequentieregelaar zorgt voor een minimum tijdskwantum dat vermenigvuldigd kan worden met de schaalfactor. tq = BRP * minimum tijdskwantum
1.5.4.9 Synchronisatie Het synchroniseren vindt plaats op twee manieren: • harde synchronisatie: De tussenruimte tussen de frames is recessief en de start van een frame is dominant. Alle ontvangers kunnen zich op deze overgang synchroniseren. • hersynchronisatie: Hersynchronisatie is het verschuiven van het sample point zodat de volgende bitwisseling terug in het synchronisatiegebied valt. M.a.w. de bittijd wordt verlengd of ingekort. Deze synchronisatie vindt plaats bij elke bitwisseling.
Laten we eens een diepere kijk nemen in de hersynchronisatie.
Voorbeeld 1: De ontvanger is sneller dan de zender.
Figuur 30: Hersynchronisatie voorbeeld 1
32
De ontvanger is te snel. De flank van dominant naar recessief valt immers voorbij het synchronisatiesegment van de ontvanger. Het fasebuffersegment 1 wordt verlengd. Hierdoor zal de flank van recessief naar dominant terug in het synchronisatiesegment vallen.
Voorbeeld 2: De ontvanger is trager dan de zender
Figuur 31: Hersynchronisatie voorbeeld 2
De ontvanger is te laat. De flank van dominant naar recessief valt immers voor het synchronisatiesegment. Het fasebuffersegment 2 wordt verkort. Hierdoor zal de flank van recessief naar dominant terug in het synchronisatiesegment vallen.
33
1.5.5 De datalinklaag De datalinklaag of logische laag zijn alle elementen die van belang zijn bij het tot stand brengen, onderhouden en verbreken van de logische verbinding tussen 2 stations. De datalinklaag wordt onderverdeeld in: • LLC – Logical Link Control o acceptatiefiltering / arbitrage o overload frames toekennen o recovery management •
MAC – Medium Access Control o inpakken van data en terug uitpakken o codering van frames o medium access management o error detectie en signallering o ACK o serialisatie en deserialisatie
1.5.5.1 Berichtuitwisseling De uitwisseling van berichten tussen de bus- deelnemers kan in principe op twee totaal verschillende manieren plaatsvinden: deelnemer- georiënteerde berichtuitwisseling en objectgeoriënteerde berichtuitwisseling. •
Deelnemer – georiënteerde berichtuitwisseling
De berichtzender spreekt de berichtontvanger heel concreet aan met zijn ontvangstadres. Bv. Station 25 stuurt een bericht naar station 37. Er wordt over de bus een virtuele verbinding tussen zender en ontvanger opgebouwd, het bericht is slechts voor één station bestemd. In het verzonden datapakket staat daarom het adres van de ontvanger en het adres van de afzender (37 en 25). Alle andere stations aan de bus negeren dit datapakket van de zender, omdat het niet aan hen is geadresseerd. De ontvanger verwerkt het bericht en bevestigd de correcte ontvangst. Bij fouten tijdens de dataoverdracht (negatieve bevestiging van de ontvanger) herhaalt de zender het bericht. •
Object – georiënteerde berichtuitwisseling
Hierbij wordt door de berichtzender aan zijn bericht een uniek berichtnummer toegekend (ID) en bericht en ID worden op de bus gezet, bv. Station A stuurt een meetwaarde met ID 978, ontvang- en zendadressen worden niet aangegeven. Deze ID is uniek omwille van het feit dat de inhoud van het bericht bepaald wordt en zijn prioriteit op het netwerk. Dit bericht is daarom gelijktijdig voor alle ontvangers bestemd (Broadcast- principe, zie later) en het motto van de zender aan de ontvangers is: neem van de bus, wat je nodig hebt.
34
1.5.5.2 Broadcast- principe De verspreiding van de berichten verloopt volgens het broadcast- principe. Alle CANmodules ontvangen alle CAN- berichten die op de bus verstuurd worden. M.a.w. als een module een bericht verstuurt dat eigenlijk maar voor 1 bepaalde module bedoeld is, ontvangen alle modules dit bericht. Na ontvangst beslist elke module, via een interne lokale filter of het bericht wel voor hem bedoeld was en verdere verwerking van het bericht dus nodig is. Een lokale filter, acceptance filter genoemd, zit in elke CAN- module.
Figuur 32: Broadcast communicatie
1.5.5.3 CAN- arbitrage Het CAN- protocol laat toe dat verschillende modules berichten op de bus kunnen sturen. (Multiple Access). Daardoor kunnen er problemen ontstaan. De basisvoorwaarde voor het zenden van een CAN- bericht is immers dat de CAN- bus vrij moet zijn. Er is namelijk een probleem als verschillende modules op het zelfde moment een bericht willen sturen. Om dit probleem op te lossen moet er dus een arbitragesysteem aanwezig zijn dat ervoor zorgt dat slechts één zender tegelijk toegang krijgt om te zenden. De CAN- bustoegang is gebaseerd op CSMA/ CD + AMP (Carrier Sense Multiple Access with Collision Detection and Arbitration on Message Priority). We verduidelijken de toegangsmethode CSMA/CD: • Multiple Access: elk aangesloten station heeft toegang tot het netwerk. • Carrier Sense: vooraleer een station mag uitzenden moet het luisteren als er geen ander station aan het uitzenden is. • Collision Detection: terwijl een station uitzendt moet het luisteren als er zich geen botsing voordoet. Een botsing treedt op wanneer 2 pc’s op het zelfde tijdstip een bericht sturen naar de zelfde poort. Besluit: de toegang is op goed geluk.
35
De arbitrage van de CAN- bus maakt dat er altijd maar één zender tegelijk de bus toegewezen krijgt terwijl er geen bustijd verloren gaat. Indien er meerdere zenders tegelijk willen zenden, krijgt de zender met de hoogste prioriteit de bus toegewezen. Berichten met een lagere prioriteit worden onderbroken. Het toewijzingssysteem zit in een CAN- controller ingebouwd, waardoor er geen extra elektronica nodig is. Hierdoor kan een CAN- module uitvallen zonder dat de rest van het systeem verstoord wordt wat dus resulteert in een hogere betrouwbaarheid. De data- overdracht op de CAN- bus bestaat niet uit logische nullen en enen maar uit dominante en recessieve bits. De toewijzing van de logische toestanden van de bustoestanden gebeurt over het algemeen zodat een logische nul de dominante en een logische één een recessieve toestand aangeeft. Als een station op de bus een recessieve bit uitzendt en een ander station gelijktijdig een dominante bit zendt, dan overschrijft de dominante bit de recessieve, m.a.w. de dominante toestand gaat voor de hele bus gelden.
Principe van arbitrage
Figuur 33: De arbitrage
Op de bovenstaande figuur zijn de IDs van de drie modules voorgesteld. Een ID is 11 bit lang. Module 1: ID: 10110111011 = 1467 Module 2: ID: 10100110111 = 1335 Module 3: ID: 10100111001 = 1337 De 3 modules zullen tegelijk de eerste recessieve 1 op de bus plaatsen. De bus blijft recessief 1, waardoor de ontvangers alle drie modules zullen ontvangen. Hierna wordt de tweede bit, de dominante 0 op de bus geplaatst door alle drie de modules. De drie ontvangers zullen dit ontvangen. Bij het zenden van de vierde bit plaatst module 1 een recessieve 1 en modules 2 en 3 een dominante 0 op de bus. De bus wordt hierdoor dominant. De ontvanger van module 1 ontvangt een 0, terwijl hij een 1 heeft verzonden en concludeert hieruit dat hij de arbitrage verloren heeft. Module 2 en 3 mogen doorgaan met zenden. Bij het zenden van de achtste bit plaatst module 2 een dominante 0 en module 3 een recessieve 1 op de bus. Module 3 heeft dan de arbitrage verloren en module 2 mag doorgaan met zenden. We kunnen concluderen dat het bericht met de kleinste ID de hoogste prioriteit heeft. Wanneer een module de arbitrage verliest, schakelt het over op alleen ontvangen en het gaat door met ontvangen van de rest van het bericht. Er gaat dus geen bericht verloren als een module de arbitrage verloren heeft.
36
De LLC (Logical Link Control) voorziet dat frames die de arbitrage verloren hebben of die verstoord zijn door errors opnieuw verstuurd worden. Dit principe wordt recovery management genoemd.
1.5.5.4 Het CAN- frameformaat Het CAN- protocol maakt gebruik van twee frameformaten: • CAN 2.0 A: het standaard frameformaat • CAN 2.0 B: het extended frameformaat
Figuur 34: Het standaard frameformaat
Figuur 35: Het extended frameformaat
Elk frame bestaat uit verschillende velden met elk hun specifieke functie. Er is namelijk een identificatie-, controle-, dataveld,… ingebouwd. Het grote verschil tussen beide formaten is de grootte van hun identificatieveld. Bij het standaard formaat bestaat dit veld uit 11-bits en bij het extended formaat bestaat dit uit 29bits, waaronder 11-bits ID (“base Identifier”) en 18-bits uitbreiding (“Identifier extension”). Er is ook een verschil tussen de IDE bit. Deze bit wordt als dominant verstuurd bij een 11-bit ID en recessief bij een 29-bit ID. Aangezien beide formaten over eenzelfde bus kunnen verstuurd worden, moet er een voorrangsregel zijn. Een bericht met een 11-bit ID heeft voorrang op een bericht met 29-bit ID. Beperkingen van het extended formaat t.o.v. het standaard formaat: • de vertragingstijd van de bus is groter, • meer bandbreedte vereist, • errors worden moeilijker gedetecteerd.(de gekozen polynoom voor een 15-bit CRC is geoptimaliseerd voor framelengtes tot 117 bits).
Max. aantal beschikbare IDs per bussysteem Aantal stations per bussysteem Dataoverdrachtsnelheid Hoeveelheid gebruikersdata per frame Max lengte van een frame
CAN 2.0 A 211 = 2048 Max. 32 5 kbit/s tot 125 kbit/s 0 tot 8 byte 117 bit
CAN 2.0 B 229 = 536870912 Max. 32 5 kbit/s tot 125 kbit/s 0 tot 8 byte 136 bit
Tabel 6: Een overzicht van standaard t.o.v. extended frameformaat
37
1.5.5.5 Het CAN- bericht Het CAN- bericht wordt in een vast frame verstuurd. Er zijn in principe vier verschillende frames mogelijk: • Data frame, • Remote frame, • Error frame, • Overload frame. De verschillende frames zullen we één voor één uitgebreid bespreken.
1.5.5.6 Data frame Dit is een bericht waarin de actuele data verstuurd wordt. We moeten een verschil maken tussen het standaard frameformaat en het extended frameformaat. Standaard dataframe formaat
Figuur 36: Het standaard dataframe
SOF – Start of frame Elk dataframe begint met een SOF-bit. Deze bit is een dominante bit. Er kan enkel een SOFbit verstuurd worden indien de bus zich in rusttoestand bevindt.
Figuur 37: Start of frame bit
Arbitratage veld Het arbitrageveld wordt samengesteld uit de ID en de RTR-bit. • ID: bestaat uit 11 bits en stelt het adres van het bericht voor. Zo weten de modules of het bericht al dan niet voor hen bedoeld is. • RTR-bit: RTR = Remote Transmission Request. Deze bit geeft weer als het een data- of remoteframe is. In geval van een dataframe is de bit dominant, anders is de bit recessief. De RTR-bit zorgt er voor dat een dataframe voorrang krijgt op een remoteframe.
38
Figuur 38: Het arbitrageveld
Controle veld Dit veld bestaat uit 6 bits: •
IDE-bit - Identifier Extention: Deze bit geeft weer als we met een standaard of een extended bericht te maken hebben. Bij een standaard bericht is deze bit dominant anderzijds recessief. • r0-bit: Deze bit is voorbehouden voor eventuele toekomstige uitbreidingen en is steeds dominant. • DLC – Data Length Code Dit veld bestaat uit 4 bits. Deze bits geven de lengte van het aantal databytes weer. Alle waarden vanaf 8 duiden op 8 databytes data.
Figuur 39: Het controleveld
Dataveld Dit is de werkelijk te verzenden data, welke 0 tot 8 bytes groot is. Elke byte bestaat uit 8 bits.
Figuur 40: Het dataveld
CRC veld Dit veld bevat 15 CRC- bits en één CRC-delimiter. Doormiddel van de CRC controleert men of het verstuurde bericht correct ontvangen is. Het CRC- veld wordt begrensd door het CRC-delimiter-bit, dat altijd recessief wordt verzonden.
39
Figuur 41: Het CRC veld
Bevestigingsveld ACK: Acknowledge Dit veld bestaat uit een bevestigingsbit (acknowledge slot) en één bit bevestigingsafsluiting (acknowledge delimiter). De zender maakt beide bits recessief. Als de controle door de ontvanger uitgevoerd positief is (CRC klopt) dan maakt hij de bevestigingsbit dominant. De zender ziet hierdoor dat er minstens één ontvanger zijn bericht correct heeft ontvangen.
Figuur 42: Het bevestigingsveld
EOF- End of frame Het einde van een dataframe bestaat uit 7 recessieve bits.
Figuur 43: End of frame veld
Intermission space Tussen de verschillende berichten moet de bus minstens 3 bittijden vrij zijn vooraleer er een nieuw bericht op de bus kan geplaatst worden. Tijdens de interframe space en het vrij zijn van de bus heeft deze een recessieve waarde.
Figuur 44: Intermission space
40
Extended dataframe formaat Enkel de velden die gewijzigd zijn t.o.v. het standaard frame worden besproken.
Figuur 45: Het extended dataframe
Arbritrageveld •
SRR – Substitute Remote Request Deze bit wordt op de plaats van de RTR bit verstuurd in het standaard frame. Hierdoor zal de zender deze bit steeds recessief versturen. Doordat deze bit altijd recessief is krijgt het standaardframe steeds voorrang op de extended.
Controleveld Dit veld bestaat uit 6 bits, de eerste twee bits zijn voor eventuele uitbreidingen later en zijn steeds dominant. De laatste vier bits geven de lengte van het dataveld weer. Deze bits zijn de DLC bits.
1.5.5.7 Remote frame Door een remote frame te zenden kan een bepaalde CAN- module informatie opvragen aan een andere CAN- module. Bv. Station A verzendt om de vijf minuten drie temperatuur- meetwaarden met ID 598 (datalengte = 3 bytes), die door andere stations worden ontvangen en verwerkt. Station C heeft nu onmiddellijk de nieuwste temperatuurmetingen nodig en kan absoluut geen vijf minuten wachten. Station C heeft de mogelijkheid om bij station A meteen de meetwaarden op te vragen, m.a.w. station C kan op de data- overdrachtcyclus inbreken. Station C verzendt daarom een remote frame. Alle stations ontvangen dit frame en zien aan de RTR- bit dat een station van een ander station data verlangt. Station A merkt dat de ID van het remoteframe overeenstemt met de ID van zijn eigen datapakket en verzendt als antwoord een dataframe met de gewenste data. Een remote frame komt grotendeels overeen met een dataframe. We sommen enkel de verschillen op. Er is zowel een standaard remote frame als een extended remote frame. Eerst bespreken we de standaard remote frame.
Standaard remote frame
Figuur 46: Het standaard remote frame
41
Arbitrageveld: • Identifier: de Identifier van het gewenste bericht wordt ingevuld, dus de Identifier van het station die de extra informatie uitzendt. Uit het voorbeeld is ID 598. De module die het bericht eigen aan deze ID kent, zal het gevraagde bericht verzenden. •
RTR-bit: de RTR-bit bij een dataframe is dominant, daarom wordt het bij een remote frame recessief gemaakt. Dat is een teken dat een station direct gegevens van een ander station aanvraagt.
Controleveld: De datalengte (DLC) in het controleveld moet overeenkomen met de lengte van het op te vragen bericht. Dataveld: Er is geen dataveld aanwezig. Extended remote frame
Figuur 47: Het extended remote frame
Het verschil tussen het standaard remote frame en het extended remote frame is een groter Identifier veld en de SRR -bit.
1.5.5.8 Error Frame Een positief kenmerk van het CAN- bus concept is dat het in staat is om fouten bij de dataoverdracht te herkennen en daarop te reageren. Er gebeurt een errordetectie op twee manieren: • op bitniveau: o bit monitoring, o bit stuffing. •
op berichtniveau: o CRC- check, o Frame check, o Acknowledge check.
Laten we ze één voor één bespreken. •
Bit monitoring: Er wordt steeds door de ontvanger van de zendende module gecontroleerd of het bitniveau op de bus wel gelijk is aan het bitniveau dat uitgezonden wordt.
42
Als de zender, na de arbitreringsfase, zijn data als enige op de bus verzenden mag en hij ontvangt een andere bittoestand dan degene die hij heeft verzonden, dan is dat voor hem een teken dat er een fout op de data- overdracht is opgetreden. Hij stopt dan met zenden en gaat over op de fout- afhandelingroutine. Deze wordt later besproken. •
Bit stuffing: Als in een CAN- frame meer dan vijf bits in dezelfde toestand na elkaar worden verzonden, dan wordt er automatisch na iedere reeks van vijf identieke bits een complementaire bit tussengevoegd en verzonden. Deze toegevoegde bit bevat geen informatie- inhoud. De ontvanger verwijdert deze bits uit de datastroom, zodat het oorspronkelijke bericht wordt hersteld. Als de ontvanger in een frame meer dan vijf bits na elkaar met dezelfde logische toestand ontvangt, behalve het EOF- veld, dan weet hij dat dit niet mogelijk is en er sprake is van een data- overdrachtsfout. De ontvanger gaat dan over op de fout- afhandelingroutine.
•
CRC- check: Er wordt gecontroleerd of er geen bits door storingen veranderd zijn. Als de ontvangen en zelf berekende controlesommen verschillen, dan gaat de ontvanger over naar de fout- afhandelingroutine.
•
Frame check: Doordat een CAN- frame enkele velden heeft met vaste inhoud kan men deze controleren. Er wordt namelijk gecontroleerd als de CRC- delimiter, de acknowledgedelimiter en het EOF- veld bestaan uit recessieve bits. Wanneer een dominante bit aangetroffen wordt, kan dit alleen maar door een data- overdrachtfout komen. Er wordt ook nagegaan als de lengte van het frame klopt. Wanneer er een dataoverdrachtfout is dan wordt de fout- afhandelingroutine aangeroepen.
•
Acknowledge check: In het frame is er een ACK- slot- bit voorzien, deze wordt door de zender als recessief verzonden. Alle ontvangers die het frame correct ontvangen overschrijven deze bit met een dominante bit. Hieruit kan de zender opmaken als minstens één zender zijn data goed heeft ontvangen. Als de zender vaststelt dat de ACK- slot- bit niet is overschreven, dan heeft geen enkele ontvanger het frame ontvangen, dan roept hij de fout- afhandelingroutine op.
Wanneer een van de vorige fouten wordt ontdekt, wordt het lopende bericht onmiddellijk onderbroken door het zenden van een error frame. Alle deelnemers op de bus herkennen dit frame en constateren dat het zojuist verzonden frame fout was, gooien het weg en verzenden zelf ook een error frame. In geval van bv. een defecte module kan deze foutdetectie leiden tot het blokkeren van de CAN- bus doordat alle berichten, ook correcte, worden afgebroken door error flags. Om dit te voorkomen doet elke module een zelfcontrole. Door deze controle kunnen aanhoudende storingen en het uitvallen van een module vastgesteld worden. De zelfcontrole bestaat uit het bijhouden van het aantal opgetreden fouten.
43
Afhankelijk van het aantal opgetreden fouten kan een CAN- module zicht in drie toestanden bevinden: • error active, • error passive, • bus off. Om het aantal fouten bij te houden beschikt een CAN- module over een teller om de zendfouten te tellen en een teller om de ontvangfouten te tellen. Wanneer een fout wordt geconstateerd, verhoogt de desbetreffende teller met 8. Voor elke correct bericht neemt de teller met 1 af. De status van een module is error active als beide tellers een waarde hebben kleiner dan 127. Als een van de tellers de waarde 127 overschrijdt, wordt de status van module error passive. Bij de status error active en error passive blijft de module normaal werken maar zal bij het vaststellen van een fout een equivalente error flag verzonden worden. De status error active zendt een active error flag, deze bestaat uit 6 dominante bits. De status error passive zendt een passive error flag, deze bestaat uit 6 recessieve bits. Een module krijgt de status bus off als de teller van de zendfouten de waarde 256 overschrijdt. De module wordt afgesloten van de bus. Wanneer een data- overdrachtfout opgemerkt wordt dan wordt er een fout- afhandelingroutine aangeroepen, laten we deze routine eens verder bekijken. Een error flag vormt samen met een error delimiter het error frame.
Figuur 48: Het error frame
Doordat een error flag bestaat uit 6 dezelfde opeenvolgende bits wordt dit door andere modules als een fout aanzien waardoor ook zij hun error flags gaan verzenden tengevolge van formaat, bit, stuff errors. Bij een error active flag begint elke station een recessieve bit te versturen zodra hun active flag afgelopen is. Deze recessieve bit kan eventueel nog overschreven worden doordat andere stations nog hun active error flag aan het versturen zijn vanwege de arbitrage. Dit leidt tot minstens 6 en maximaal 12 opeenvolgende bits. Wanneer een station een error passive flag wil zenden, zal de error passive module zijn error flag afsluiten als hij 6 opeenvolgende recessieve bits heeft gedetecteerd. Verzenden van een error passive flag leidt echter niet altijd tot detecteren van errors bij de ontvanger. Dit kan voorkomen worden in twee gevallen. Als een error passive flag gestuurd wordt tijdens arbitrage en andere modules blijven zenden. Het tweede geval is wanneer er een error passive flag gestuurd wordt op minder dan 6 bits voor de CRC.
44
Als een error flag wordt afgesloten worden er nog 8 recessieve bits verstuurd. Deze 8 bits vormen de error delimiter. Na het error frame zal er een interframe space van minstens 3 bits zijn. Na minstens 23 bits kan men terug trachten informatie op de bus te versturen. Als er sprake is van een error passive controller zal de interframe ruimte nog gevolgd worden door 8 recessieve bits. Deze bits vormen de suspend transmission (geschorste verzending). Na deze bits is de bus terug vrij. Na het error frame, de interframe space en eventueel de suspend transmission zal het station dat onderbroken wordt proberen zijn boodschap te versturen.
1.5.5.9 Implementatie Volgens de ISO 11898 is het CAN-systeem geïmplementeerd in silicium. De datalinklaag zorgt voor de communicatie. Het CAN-protocol zorgt op zijn beurt voor het detecteren van fouten en error indicaties. Er bestaan volgende implementaties: • Stand-alone CAN-controller, • Geïntegreerde CAN-controller, • Serial Link I/O controller.
Stand- alone CAN-controller Applicatie-interface: de aansluitingen aan in- en uitgangen, vb aansluitingen voor schakelaars, lampen, elektromotoren. Microcontroller: deze initialiseert de CAN-controller bij het opstarten van het systeem. Het zendt en ontvangt berichten naar en van de CAN-controller. Naar de applicatie-interface toe leest de microcontroller ook de stand van de schakelaars in en stuurt de ingangen aan. CAN-controller: deze verzorgt alle communicatie met de CAN-bus. De arbitrage en het herstellen van fouten gebeurt autonoom door de CAN-controller. Fysische interface: Dit is de elektronische interface tussen de CAN-controller en de CAN-bus. Deze interface kan slechts uit een aantal weerstanden bestaan of kan ook een complex circuit bevatten. Omdat de CAN-bus op diverse manieren gerealiseerd kan worden, bevat de fysische interface de aanpassing voor de CAN-bus Figuur 49: Stand-alone CAN-controller
45
Geïntegreerde CAN-controller Deze module is gelijkaardig aan de Stand-alone CAN-controller. De microcontroller heeft geen aparte CAN-controller meer maar een geïntegreerde. Het grote verschil hiervan is dat de microcontroller geen aparte adres databus nodig heeft waardoor dit opzet goedkoper is dan Standalone.
Figuur 50: Geïntegreerde CAN-controller
Serial Link I/O controller Deze controller bevat een applicatie-interface en een fysische interface maar tussen beiden staat een speciale intelligente CAN-controller. Deze wordt een Serial Link I/O (SLIO) genoemd. Deze SLIO bevat geen microcontroller maar wordt via de CAN-bus door een andere microcontroller op de bus geïnitialiseerd. Na initialisatie zal deze controller zonder tussenkomst van andere controllers berichten van ingangen kunnen versturen en op ontvangen berichten acties ondernemen.
Figuur 51: Serial Link I/O controller
46
1.5.6 De applicatielaag De applicatielaag is gericht op de eindgebruikers. De laag waar de applicaties leven die het netwerk gebruiken. De applicatielaag die werd ontwikkeld was de CAN Application Layer (CAL). Dit is en academische correcte en in industriële toepassingen bruikbare applicatielaag. Toch was er één groot nadeel: CAL was een applicatielaag waarvoor elke gebruiker een eigen communicatieprofiel moest ontwikkelen. Daardoor hebben de ontwikkelaars bij Bosch de invulling van de CAN- applicatielaag vrij gelaten en is CAN enkel gespecificeerd voor de eerste twee lagen van het OSI- model. Elke gebruiker van het CAN- protocol moet dus zijn eigen applicatielaag ontwikkelen wat tot een grote verscheidenheid aan toepassingen en applicatieprotocollen heeft geleid. Slechts enkele protocollen werden gestandaardiseerd. We bespreken de belangrijksten onder hen.
1.5.6.1 CANopen CANopen is een gestandaardiseerd protocol, dat de communicatie mogelijk maakt tussen toestellen van verschillende fabrikanten en de uitwisselbaarheid van gegevens tussen deze toestellen garandeert. Het protocol werd ontwikkeld door CAN in Automation (CIA) en werd gestandaardiseerd als CENELEC EN 50325-4. CANopen vormt een toonaangevende standaard voor industriële, automatisering - en embedded systemen. De CANopen is gebaseerd op de CAL. CANopen wordt vooral gebruikt in embedded systemen. Enkele voorbeelden van sectoren: • Voertuigen die niet geschikt zijn om op de baan te rijden, • Maritieme elektronica, • Liften, • Automatisatie in gebouwen, • Medische uitrusting en apparatuur.
1.5.6.2 DeviceNet DeviceNet is ontwikkeld door de Allen Bradley divisie van Rockwell. Inmiddels is er een onafhankelijke stichting voor opgericht, de ODVA (Open DeviceNet Vendor Association). Deze doet het beheer en de marketing voor het netwerk. De CAN- bustoepassing zit echter een niveau hoger dan de bij CANopen omschreven embedded omgeving. Met DeviceNet kan je machines en apparaten aan elkaar koppelen. Voor de gebruiker is geen kennis van de CANbus vereist omwille van een plug en play netwerk. DeviceNet is speciaal ontwikkeld voor industriële automatisatie. Elke deelnemer op het netwerk is verantwoordelijk voor het managen van zijn eigen CANIdentifiers, d.w.z. dat een uitbreiding van het netwerk, de nieuwe toegevoegde node, zichzelf kenbaar maakt en zoekt naar Identifiers voor communicatie.
47
Zowel bij CANopen als DeviceNet is er sprake van deviceprofielen. In deze profielen staat het object volledig beschreven, met klassen, instanties en attributen.
1.5.6.3 Smart Distributed System (SDS) Dit standaard protocol is ontwikkeld door Honeywell. Deze firma voert zelf het beheer over dit protocol. De devices die worden aangesloten zijn meestal sensors of eenvoudige I/O modules. Er moet altijd een master in het netwerk aanwezig zijn. Dit kan een PC of PLC (Programmable Logic Controler) zijn. Een PLC is een elektronisch apparaat met een microprocessor dat op basis van de informatie op zijn diverse ingangen, zijn uitgangen aanstuurt. De SDS kent twee soorten berichten. De statusveranderingen en berichten waarmee we andere informatie uit een sensor of I/O module willen opvragen of invoeren. Dit zijn meestal signalen betreffende diagnose of sensorspecifieke data. Het protocol is duidelijk geoptimaliseerd voor een sensorbus en vindt zijn toepassingen vooral in systemen, waar sensoren als foto- cellen en benaderingsschakelaars worden toegepast.
1.5.6.4 CAN- Kingdom Dit protocol is ontwikkeld door de Zweedse firma Kvaser. Het heeft een zeer gerangschikte structuur. In verschillende lagen wordt een besturingssysteem opgezet. Het is meer een conceptueel denken, dan een echte applicatielaag. Er is een mogelijkheid om het protocol te combineren met een ander protocol bv. DeviceNET op één netwerk. De meeste toepassingen van dit systeem vinden we bij hydraulische systemen in combinatie met robots.
1.5.6.5 OSEK/VDX OSEK is een Europese norm van de gebruikte operating systemen in de elektronica in de auto. Op datalink niveau is CAN een van de opties om te communiceren. Hoewel we niet echt kunnen spreken over en applicatielaag op CAN, geeft het wel een eerste aanzet tot eventuele standaardisatie in de automobielsector.
1.5.6.6 J1939- standaard De J1939 is de CAN- standaard voor de vrachtwagenwereld. Deze standaard zorgt ervoor dat de gegevens die op de CAN- bus van een vrachtwagen rondgestuurd worden op de juiste manier geïnterpreteerd kunnen worden. Vrachtwagenfabrikanten willen niet dat er zomaar informatie van de CAN- bus gelezen kan worden, laat staan op de bus gestuurd worden. De fabrikanten hebben afgesproken welke informatie van de CAN- bus er minimaal uit te lezen kan worden op de CAN- bus. De informatie die minimaal uitgelezen moet kunnen worden zit vervat in de FMS- standaard. FMS = Feet Management System. J1939 is ontwikkeld door SAE (Society of Automotive Engineers) en is een opvolger van eerdere ontwikkelingen, vastgelegd in J1708/ J1587 en J1922.
48
Dit heeft ervoor gezorgd dat er een extended versie (29 bit ID) van CAN gekomen is. De J1939 maakt enkel gebruik van een CAN- bus met baudrate van 250 bit /s. Dit zorgt ervoor dat de CAN- bus een bandbreedte heeft om ongeveer 1850 CAN- berichten per seconde te sturen. De J1939 ligt specificaties vast voor de 5 lagen van het OSI- model. Deze lagen zijn de fysische laag en datalinklaag, de lagen die ook in het CAN- protocol gedefinieerd zijn, de netwerk-, transport- en applicatielaag. Het protocol is standaard in de vrachtwagen- en busindustrie. Een tiental bedrijven over de hele wereld maken zogenaamde ECU’s (Electronic Control Units), die door de vrachtwagenconstructeurs geïntegreerd worden binnen hun totale besturing. Dit protocol zorgt ervoor, dat alle units zonder problemen op elkaar aangesloten kunnen worden en elkaar ook begrijpen.
49
2 Voorbereiding programmeren 2.1 Ontwerpen van interfacekaarten Vooraleer we de definitieve print hebben besteld hebben we gebruik gemaakt van testprinten, dit om gemakkelijk wijzigingen te kunnen aanbrengen. Onderstaande foto’s zijn afkomstig van de testprinten. De printlayout en het schema van de definitieve print wordt afgebeeld in bijlage 1. Om zoveel mogelijk op laagvermogen te werken hebben we geprobeerd zoveel mogelijk van de huidige opstelling te vervangen. We hebben namelijk het switchenbord vervangen door een interfacebord 1 met relais.
Figuur 52: Het switchenbord
Figuur 53: Het interfacebord 1
We hebben gebruik gemaakt van 24V relais en voor de communicatie tussen het relais en het TTL signaal afkomstig van de computer gebruiken we de IC ULN 2803. Deze IC bevat 8 darlington open collector transistoren. Om verbinding te maken tussen de interfacekaart en de computer maken we gebruik van een flatkabel naar een 25 pin connector (DB 25). Deze connector wordt verbonden naar een unit die voor de beveiliging instaat van de PXI unit. Dit PXI-chassis is voorzien van kaarten met digitale in- en uitgangen en analoge in- en uitgangen en ook een CAN bus kaart.
Figuur 54: DB 25
Figuur 55: De beveiliging
Figuur 56: National Instruments PXI Unit
50
We hebben de motoren vervangen door weerstanden. De heftruck bevat eigenlijk twee tractiemotoren. Er is een motor op het rechterwiel en een op het linkerwiel. Daardoor zijn er twee velden en twee ankers. We hebben de motor vervangen door weerstanden van 10 Ohm.
Figuur 57: De motor
Figuur 58: Een weerstand voor anker
We hebben ook de contactoren vervangen. Je hebt contactoren voor de normale werking en je hebt contactoren voor de opties. De contactoren voor de normale werking hebben we vervangen door een relais en de contactoren voor de opties hebben we vervangen door weerstanden. Wanneer we de contactoren voor de normale werking vervangen door een weerstand dan krijgen we een foutmelding omdat de sturing denkt dat er een kortsluiting is in de contactoren die verantwoordelijk zijn voor het rijden. (bv. contact is vastgebrand)
Contactor normaal
Contactor optie
Figuur 59: De contactor
Figuur 60: Het interfacebord 2
De waarden van de weerstanden moeten de ohmse waarde zijn van een contactor. Dit hebben we opgemeten. De ohmse weerstand van een contactor is 48 Ohm. Bij de contactoren voor de normale werking moeten we ook rekening houden met de weerstand van de spoel. Nu gebruiken we 5 W weerstanden maar deze vervangen we nog door 25W weerstanden zodat er betere dissipatie van de warmte is. Er wordt ook gebruik gemaakt van een spanningsdeler omdat er maar maximum 10 V mag ingestuurd worden op de analoge ingangen omwille van het gebruik van zenerdioden van 10,5 V in de beveiliging. Deze spanningsdeler wordt gevolgd door een spanningsvolger (opamp LM358). Dit is om een hoogohmige uitgang te hebben.
Figuur 61: Schema van spanningsdeler
51
2.2 Programmeren Op vraag van de firma Thermote & Vanhalst wordt er zo weinig mogelijk specifieke data in het eindwerk geplaatst. Omwille van het gebruik van analoge en digitale in- en uitgangen spreken we van data acquisitie (DAQ).
Figuur 62: Data Acquisitie
Data acquisitie is een proces om informatie op een geautomatiseerde manier uit analoge en digitale meetbronnen zoals sensoren en testapparaten te verzamelen. DAQ gebruikt een combinatie van PC gebaseerde meethardware en software die zorgt voor een flexibel en gebruiksvriendelijk meetsysteem Bij het programmeren wordt er gebruik gemaakt van de DAQ Assistent. Dit is een express VI. Hiermee kan je analoge en digitale in – en uitgangen uitlezen en teller in – en uitgangen uitlezen.
Figuur 63: Keuzemenu DAQ Assistent
De instellingen voor de gebruikte input en output worden één voor één besproken.
52
Er worden analoge ingangen gebruikt. Er zijn verschillende soorten metingen mogelijk. Spanningsmetingen worden toegepast om de spanningen in te lezen van onder andere de veld– en batterijspanningen. Deze spanningen zijn van belang om te controleren op kortsluitingen.
Figuur 64: Verschillende soorten analoge ingangen
Na het kiezen van het soort meting, worden de kaarten getoond die geconfigureerd zijn in LabVIEW en ter beschikking staan voor dit soort meting.
Figuur 65: Keuzelijst analoge ingangen
53
Na het kiezen van de ingang moet de ingang nog geconfigureerd worden voor het lezen van analoge ingangen.
Figuur 66: Configuratie analoge ingangen
De daq assistant kan op drie verschillende manieren geconfigureerd worden voor het lezen van analoge signalen: • Differential, • Reference Single-Ended • Non-Reference Single-Ended
Differential meetsysteem Bij dit meetsysteem wordt geen van beide ingangssignalen met de massa verbonden. In onderstaande figuur wordt een 8 kanaal differentiaal meetsysteem afgebeeld. In dit geval worden er twee multiplexers gebruikt en slechts 1 operationele versterker. Een ideaal differentiaal meetsysteem leest enkel het potentiaal tussen zijn positieve en negatieve ingang. Bij het gebruik van differentiaal wordt het aantal meetkanalen gehalveerd.
Figuur 67: Differential meetsysteem
54
Referenced Single-Ended Meetsysteem (RSE) Een RSE meetsysteem is aan te bevelen wanneer men zogenaamde floating signals wenst te meten. Het signaal wordt steeds gerefereerd t.o.v. de massa.
Figuur 68: Referenced Single-Ended meetsysteem
Non-Referenced Single-Ended Meetsysteem (NRSE) In een NRSE meetsysteem worden alle signalen t.o.v. een gemeenschappelijke referentie gemeten. De poort AISENSE is de gemeenschappelijke referentie. Alle meetsignalen moeten deze gemeenschappelijke referentie delen.
Figuur 69: Non-Referenced Single-Ended meetsysteem
De frequentie = samplefrequentie geeft weer hoeveel meetpunten er binnengelezen worden in een seconde. Een hogere samplefrequentie levert meer meetpunten op van het te meten signaal wat een betere weergave van het originele signaal geeft. Het is dus noodzakelijk om voldoende monsters te nemen van het signaal anders kan dit tot een foutieve interpretatie van het ingelezen signaal leiden. Volgens de Nyquist theorie moet de samplefrequentie minstens het dubbele zijn van de maximum frequentie van het in te lezen signaal voor een goede meting van het signaal te verkrijgen. Theoretisch is het haalbaar van een signaal juist te construeren bij frequenties beneden of gelijk aan de Nyquistfrequentie. Deze frequentie is de helft van de samplefrequentie. Ontvangen signaal
Verwacht signaal
Figuur 70: Een goede samplefrequentie Figuur 71: Een slechte samplefrequentie
55
Als instelling van de analoge ingangen wordt er gebruik gemaakt van spanningen van 0 tot 10 V, dit omwille van de voorziene beveiliging. Om de spanningen te verkleinen wordt een spanningsdeler toegepast, deze werd hierboven besproken. Analoge uitgangen worden gebruikt voor het simuleren van de potentiometers van het stuur, de snelheid en de economy potentiometer. Bij de analoge uitgangen is er een keuze tussen spanning- en stroommetingen. Er wordt gebruik gemaakt van spanningen.
Figuur 72: Verschillende soorten analoge uitgangen
Na het maken van een keuze moet de te gebruiken poort geselecteerd worden. Eens dit gebeurd is, moet de poort geconfigureerd worden.Dit gebeurt op dezelfde manier als bij de analoge ingangen.
Figuur 73: Configuratie analoge uitgangen
56
Het spanningsbereik wordt ingesteld van 0 tot 5V omdat 100% van de potentiometer overeenkomt met 5V. Om een relais aan te sturen wordt er gebruik gemaakt van digitale uitgangen. Bij de digitale in- en uitgangen kan men kiezen tussen een volledige poort of een enkele lijn uitlezen.
Figuur 74: Mogelijkheden voor digitale in- en uitgangen
Na het maken van de keuze moet de te keuze gemaakt worden welk poort of lijn er gebruikt wordt, dit naargelang de vorige instelling. Bij de digitale uitgangen moeten er geen verdere instellingen gebeuren. Vervolgens wordt er ook gebruik gemaakt van digitale ingangen voor het inlezen van de spanningen van de contactoren en voor de getoggelde signalen. Het aantal in te lezen punten is de enige instelling.
Figuur 75: Instellingen digitale ingangen
57
Door middel van de CAN-bus worden de parameters opgevraagd en gewijzigd. Het ontwikkelde CAN-bus programma Logging werd gebruikt om kennis te maken met de CAN-bus.
Figuur 76: Een screenshot van het programma logging
Na het onderzoeken van deze data worden enkele dingen opgemerkt: • na een bepaalde wachttijd vindt er een update plaats van de waarde of van de fout. • 681 en 683 zijn de ID’s afkomstig van de handset. 081 en 083 zijn de ID’s afkomstig van de sturing. 683 en 083 zijn de ID’s die gebruikt worden om een beweging aan te geven. 681 en 081 zijn de ID’s die gebruikt worden om de gegevens op te halen. • de data wordt opgevraagd in 5 lijnen. • Aan de data kan men ook zien als het afkomstig is van de handset of van de sturing. De data die begint met 10 02 is afkomstig van de handset. De data die begint met D0 03 is afkomstig van de sturing. • Wanneer er een waarde wordt opgevraagd, dan wordt er eerst plaats gemaakt voor de waarde door middel van spaties in te vullen, dan wordt de eenheid toegevoegd en pas dan wordt de eigenlijke waarde opgevraagd. Bij de update wordt enkel de waarde opnieuw opgevraagd. • de data is hexadecimaal
58
Na het kennen van de ID’s en de data die verzonden worden, is er een poging gebeurt om zelf data te verzenden. Dit is gebeurd met behulp van het voorbeeldprogramma CAN Transmit.
Figuur 77: Een screenshot van het programma CAN transmit
Door middel van het programma Measurement & Instruments van National Instruments is het mogelijk om de ID’s op de CAN-bus te bekijken.
Figuur 78: Een screenshot van het programma Measurement & Instruments
Data ontvangen van sturing verzonden data Er wordt op het ene kanaal (CAN 0) data gestuurd en op het andere kanaal (CAN 1) worden de ID’s afgeluisterd.
59
3 Het testprogramma 3.1 Het uitleesscherm Het testprogramma heeft 3 mogelijkheden. • manueel testen: de sturing aansturen en de parameters opvragen en wijzigen. • foutencontrole: de sturing op fouten controleren. • automatische testen: de sturing automatisch testen. Wanneer een mogelijkheid volledig doorlopen is, wordt er teruggekeerd naar het hoofdscherm.
3.2 Verloop 3.2.1 Manueel testen Bij het manueel testen beschikken we over twee tabbladen. Het ene tabblad is geschikt om manueel te rijden en het andere tabblad is geschikt om de parameters op te slaan en te wijzigen. Elk tabblad wordt afzonderlijk besproken.
3.2.1.1 Informatieve onderdelen manueel rijden
Figuur 79: Screenshot van het manueel rijden
Door middel van de schakelaars kunnen we de relais aansturen. Door het aanschakelen van de relais ziet de sturing de schakelaar als gesloten. Hierdoor kunnen we de sturing bedienen en alle relais testen.
60
Door middel van het toepassen van de juiste opstartvolgorde (contactslot – voetpedaal – rijrichtingschakelaar of contactslot – rijrichtingschakelaar – voetpedaal) kan men de motor laten rijden. De potentiometers worden gebruikt voor het bedienen van het stuur en de gaspedaal. De potentiometer voor de economy dient voor het economisch rijden. Deze wordt echter niet gebruikt. We hebben nog een ongebruikte potentiometer voorzien voor later. Naast het tabblad voor het manueel rijden is er ook nog een venster voorzien die de waarden weergeeft van de spanningen en stromen van de tractiemotoren, de spanningen van de mosfets, de temperaturen en de spanning over de condensator. Het uitlezen van deze waarden gebeurd via de CAN-bus.
Figuur 80: Status van de spanningen
61
3.2.1.2 Informatieve onderdelen parameters Op het tabblad parameters kan men alle instellingen zien van de parameters. Deze kan men opslaan en koppelen aan de sturing door gebruik te maken van het serienummer, dit is verplicht om in te vullen.
Figuur 81: Invullen serienummer
Het opslaan van de parameters gebeurt slechts als er een geldig serienummer is ingegeven. Een serienummer bestaat uit 8 karakters. Wanneer men een ongeldig serienummer ingeeft, dan krijgt men een opmerking en nog een kans om een serienummer in te geven.
Figuur 82: Opmerking bij ongeldig serienummer
62
Bij het opslaan wordt het wijzigen even gestopt omdat de CAN-bus anders zijn data door elkaar haalt. Het opgeslagen bestand ziet er als volgt uit: Part Nummer Serienummer Naam Key Drive I. Max. Accel Decel Creep Speed Max Speed Cut Speed1 Cut Accel1 Cut Speed2 Cut Accel2 Dir. Brake Ntrl Brake Foot Brake Bypass Out F.W. In F.W. Out Steer Delay Seat Delay Regen Speed Brake Const Accel. Zero Accel. Full Brake Zero Brake Full Econ. Zero Econ. Full Str Left Str Right Steer Factor Dead Band Byp. Delay
631/60027 10050065 Waarde 169,9 23,8 240 0,7 0,3 3 100 100 0,1 40 0,1 180 0 50 260 90 80 1 2,4 200 1,0 0,0 4,5 1,9 0,0 0,0 4,0 3,40 0,38 2,9 15 0,8
Eenheid hr hr A s s % % % s % s A A A A A A s s
V V V V V V V V ° s
63
De parameters kunnen ook gewijzigd worden.
Figuur 83: Screenshot van het wijzigen van parameters
Het wijzigen van de parameters gebeurt op de volgende manier:
Wijzigen van een parameter
Schakelaar omhoog
Waarde wijzigen door gebruik te maken van de up-down toets
Schakelaar naar beneden
Figuur 84: Flowchart voor het wijzigen van een parameter
Doordat elke parameter zijn eigen data bezit moest een schakelaar gebruikt worden zodat het programma weet welke data het moet doorzenden.
64
3.2.2 Foutencontrole
Figuur 85: Het frontpaneel foutencontrole
De foutencontrole doorloopt 5 stappen (zie bijlage 2). In de foutencontrole wordt de sturing op kortsluitingen gecontroleerd. De fouten worden ook zelf geconstrueerd om te controleren als de sturing deze fout herkent. Om de zoveel stappen wordt er een controle op fouten gedaan, als er zich enkele fouten voordoen dan worden enkele bijkomende metingen gedaan afhankelijk van de fout, deze metingen worden weergegeven en de test stopt. Er is ook een mogelijkheid tot het genereren van een foutenrapport. Dit foutenrapport kan opgesteld worden in twee talen, namelijk: Engels en Nederlands. Aan de hand van het foutenrapport weet de klant dat de sturing getest en in orde is. Het foutenrapport is gekoppeld aan de sturing want het invullen van een geldig serienummer is verplicht.
65
Het foutenrapport ziet er als volgt uit: Part nummer Serienummer
631/60027 10050065
Test
Controle
Voedingsspanning Aanpassing handset Voedingsspanning na diode Spanning veld 1 Spanning veld 2 12V uitgangsspanning Potentiometer rijden Potentiometer sturen Potentiometer pompen Pompcontactor Bypascontactor Veldverzwakking Schakelaar voorwaarts Schakelaar achterwaarts Schakelaar pedaalcontact Schakelaar zetelcontact Schakelaar handrem Schakelaar snelheid 1 Schakelaar snelheid 2 Schakelaar trigger Contactoren voorwaarts Contactoren achterwaarts Zetelcontact fout SRO- fout Sequentie fout Acceleratie fout 2 richtingen fout
24V in orde 24V in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde in orde
Per stap die uitgevoerd wordt is er een helpknop voorzien die een korte uitleg geeft over wat er precies uitgevoerd wordt tijdens deze stap. Bv. als we drukken op de helpknop bij veld 1 dan komt er een pop-up venster tevoorschijn met de volgende uitleg:
Figuur 86: Het helpvenster van veld 1
66
3.2.2.1 Controle voedingsspanning
Figuur 87: De controle van de voedingsspanning
Hierbij wordt er gecontroleerd of de voedingsspanning de sturing bereikt. Deze voedingsspanning is 24V ofwel 48V. Wanneer een ongeldige waarde gemeten wordt, wordt er een foutmelding getoond. Bij de controle van de aanpassing van de handset wordt er gecontroleerd als de handset op de juiste spanning is ingesteld, wanneer dit niet het geval is wordt de handset automatisch aangepast. Met de led wordt duidelijk gemaakt als het aanpassen gelukt is. In de sturing bevindt zich ook een diode na de voedingsspanning om de sturing te beschermen tegen negatieve spanningen.
De spanning na deze diode wordt ook gecontroleerd, zo wordt er gecontroleerd of de diode in kortsluiting ligt. De spanning voor en na de diode wordt vergeleken.
67
3.2.2.2 Controle van spanningen
Figuur 88: De controle van de spanningen
Hierbij wordt er gecontroleerd of er zich geen kortsluitingen bevinden in de sturing. Deze controles worden uitgevoerd voor het aanschakelen van de sturing. Wanneer er zich een kortsluiting voordoet, dan kleurt de led rood, anders kleurt de led groen.
3.2.2.3 Controle van schakelaars
Figuur 89: De controle van de schakelaars
Hierbij worden de ingangscircuits van alle schakelaars gecontroleerd. Met behulp van de CAN-bus wordt er gecontroleerd als de schakelaar open of gesloten is. Wanneer er gedetecteerd wordt dat de schakelaar geopend en gesloten wordt dan kleurt de led groen. Wanneer er een foute detectie optreedt, dan kleurt de led rood.
68
3.2.2.4 Controle van contactoren
Figuur 90: De controle van de contactoren
Hierbij wordt er gecontroleerd of alle contactoren aangestuurd worden. Voor het controleren van de contactoren moeten we eerst de sturing activeren. Bij het voorwaarts rijden worden er drie contactoren aangeschakeld: de contactor voor het voorwaarts rijden rechts, de contactor voor het voorwaarts rijden links en de contactor voor het regeneratiecontact. Bij het achterwaarts rijden worden er drie contactoren aangeschakeld: de contactor voor het achterwaarts rijden rechts, de contactor voor het achterwaarts rijden links en de contactor voor het regeneratiecontact. Als alle drie de contactoren aangeschakeld worden dan kleurt de led groen, anders rood.
3.2.2.5 Controle van detectie van fouten
Figuur 91: De controle van de foutendetectie
Hierbij wordt er gecontroleerd of alle fouten gedetecteerd worden. De fout wordt zelf geconstrueerd en dan wordt er nagegaan als de sturing de fout detecteert. Als de fout gedetecteerd wordt dan kleurt de led groen, anders kleurt de led rood.
69
3.2.3 Automatisch rijden 3.2.3.1 Informatieve onderdelen Het automatisch rijden is ontwikkeld dat er voor bepaalde tijd eenzelfde sequentie doorlopen wordt. Deze sequentie is vrij te kiezen. We kunnen kiezen uit vooruit, achteruit, snelheid 1 vooruit, snelheid 1 achteruit, snelheid 2 vooruit, snelheid 2 achteruit. Snelheid 1 en 2 zijn in te stellen via de handset. Wanneer er een fout optreedt dan stopt het programma en wordt de fout en het tijdstip van de fout opgeslaan.
Figuur 92: Het frontpaneel van automatisch rijden
70
4 Besluiten •
Het testprogramma werd geschreven in LabVIEW. Dit was een uitdaging, ik had al een beetje kennis van LabVIEW maar door het schrijven van het testprogramma heb ik veel bijgeleerd.
•
De printen werden in Eagle getekend. Dit programma was gloednieuw voor mij. Het programma Eagle werd gekozen omdat dit een freeware programma is en het wordt ook gebruikt in het bedrijf.
•
Ik had nog nooit gehoord van de CAN bus, nochtans worden we dagelijks met verschillende toepassingen van de CAN bus geconfronteerd, bv. Automobielsector, weefgetouwen, tractoren,…. Door het gebruik van de CAN bus is de werking ervan duidelijk geworden.
•
Er werd telkens een apart programma geschreven voor het testen van elke functie. De verschillende functies werden later samengevoegd wat uiteindelijk tot een hoofdprogramma moet leiden.
•
Bij het programmeren moet je met allerlei zaken rekening houden. Wanneer je denkt dat het programma af is, merk je op dat je het programma veel korter kan maken zodat het meer overzichtelijk wordt voor de gebruiker.
•
Het programma is zo ontwikkeld dat de gebruiker geen voorkennis hoeft te hebben.
•
Het testprogramma is volledig geschreven, men kan de sturing helemaal autonoom testen en controleren. Het programma is gebruiksvriendelijk gemaakt door het creëren van een rapport. Dit wordt gegenereerd aan de hand van het serienummer zodat er geen verwarring kan ontstaan.
71
5 Bijlage 5.1 Bijlage 1: Ontworpen printen in Eagle Dit is de printlay-out.
72
Dit is het schema van de print.
73
74
75
76
77
Dit is de print voor de spanningen die moeten aangesloten worden op de sturing.
78
5.2 Bijlage 2: Flowchart van de foutencontrole
Start
Controle van de voedingsspanning
Controle van spanningen om kortsluitingen te detecteren
Controle van de schakelaars
Controle van de contactoren
Controle van detectie van fouten
EINDE
79
6 Literatuurlijst Demeersseman, Luc (s.d). Vermogenelektronica. niet-gepubliceerde cursus, Oostende, KHBO. Groppe, Peter, Vom Berg, Bernd (1999). De CAN-bus: intelligente datacommunicatie voor in de praktijk. Elektuur, 39 (9) 32-36. Groppe, Peter, Vom Berg, Bernd (1999). De CAN-bus: intelligente datacommunicatie voor in de praktijk deel 2. Elektuur, 39 (10) 34-38. Vanhee, Luc (2004). Datacommunicatie. niet-gepubliceerde cursus, Oostende, KHBO. Verbruggen, Steven (2005). Visualisering industrieel meetproces. Aanpassen programma voor gegevensverwerking en weergave met LabVIEW. gepubliceerd eindwerk voor het behalen van het diploma van master elektromechanica optie elektrotechniek, Geel, Katholieke Hogeschool Kempen. Microsoft Corporation (2002). Encarta encyclopedie Basis Editie Winkel Prins Can-cursus ontwikkeld in het kader van het HOBUCAN-project, Ontwikkeling van een intelligente interface voor analyse en verificatie van datacommunicatie in moderne voertuigen. http://project.iwt-kdg.be/hobucan/HobuFilesDir/OnzeCursus/MyMainPage.html. Ledwich, G. Mosfets Basics. http://www.powerdesigners.com/InfoWeb/design_center/articles/MOSFETs/mosfets.s htm National Instruments http://www.ni.com/ Group Thermote & Vanhalst, TVH groupt- 5 divisies. http://www.tvh.be/new/pages/divisies.html Group Thermote & Vanhalst, Newsflash : Sturingen & printkaarten. http://www.tvh.be/newsflash/nf_0004_Electronic_cards_and_controllers/belgie_nl/ind ex.htm Sevcon. SC2000 manual. http://www.q- tronic.nl/frames/handleiding/SC2000%20CONTROLLER%20MANUAL%20%20REV%20F.pdf Tiepie Engineering. Veel gebruikte termen. http://www.tiepie.nl/nl/classroom/5/93#3.4
80
Vandeweerd, Peter. De CAN-bus (controller area network) intelligente datacommunicatie voor in de praktijk. http://users.pandora.be/peterna/osp/CAN-bus%20cursus.pdf Wikipedia de vrije encyclopedie, Controller Area Network. http://nl.wikipedia.org/wiki/CAN Wikipedia de vrije encyclopedie, LabVIEW. http://nl.wikipedia.org/wiki/LabView Wikipedia de vrije encyclopedie, Twisted pair. http://nl.wikipedia.org/wiki/Twisted_pair
81