I
Diplomsko delo Interdisciplinarnega univerzitetnega študijskega programa
Študent: Boštjan Lorbek
Študijski program: UN ŠP Mehatronika
Smer: Mehatronika 1. stopnja
Mentor FERI: red. prof. dr. Riko Šafarič
Mentor FS: izred. prof. dr. Karl Gotlih
Lektor(ica): Tadejka Topolovec
Maribor, september 2010
III
ZAHVALA 1
Zahvaljujem se mentorjema za pomoč in
vodenje pri opravljanju diplomskega dela. Prav
tako se zahvaljujem mlademu raziskovalcu g.
Francu Hanţiču za pomoč pri diplomskem delu.
Hvala tudi prof. dr. Bojanu Gergiču za nekatere
napotke med delom diplomske naloge.
Posebna zahvala velja staršem, ki so mi
omogočili študij.
IV
VZPOSTAVITEV CAN-BUS KOMUNIKACIJE Z LABVIEW
Ključne besede: Komunikacija, CAN-BUS
UDK: 621.391(043.2)
Povzetek
Komunikacije v električnih napravah predstavljajo izmenjavo pomembnih podatkov
med seboj. Kompleksna naprava je sestavljena iz več krmilnih enot, katere
komunicirajo med seboj. Vsaka krmilna enota pa ima vgrajeno bazo pravil, s pomočjo
katere lahko razume drugo enoto. Komercialni krmilnik DPCANTE-020B080, podjetja
Advanced Motion Controls, ima za krmiljenje linearnega motorja podporo CAN-BUS
komunikacije, katero je potrebno povezati z osebnim računalnikom. Sam krmilnik ima
ţe integrirano bazo, katero je potrebno preučiti, ter izdelati bazo podatkov, katere bomo
uporabili za komunikacijo našega krmilnika z osebnim računalnikom.
V
CAN-BUS COMMUNICATION LINKS ESTABLISHMENT WITH
LABVIEW
Key words: Communication, CAN-BUS
UDK: 621.391(043.2)
Abstract
Communication in electrical devices represents the exchange of relevant information
among themselves. A complex system is composed of several control units, which
communicate with each other. Each control unit has a built-in database of the rules.
With this database the control unit can understand other units. A commercial Controller
DPCANTE-020B080, of company Advanced Motion Controls, has a support by the
CAN-BUS communication to control the linear motor, which is necessary to connect
the PC. The controller has an integrated database, which is necessary to be studied. The
user has to create his own database used for communication of the controller with the
PC.
VI
VSEBINA
1 UVOD ................................................................................................................................................. 1
2 PREDSTAVITEV TESTNE NAPRAVE DRSNIH VRAT ................................................................ 3
2.1 LINEARNI MOTOR .............................................................................................. 3
2.1.1 Podatki uporabljenega linearnega motorja ................................................. 5
2.2 KOMERCIALNI REGULATOR ............................................................................... 6
2.3 NAPAJALNIK ...................................................................................................... 7
2.4 LINEARNI MAGNETNI DAJALNIK ......................................................................... 8
2.4.1 Splošne zahteve linearnega dajalnika .......................................................... 9
2.4.2 Kratek opis delovanja ................................................................................. 10
2.5 CANOPEN PROTOKOL ...................................................................................... 10
2.5.1 CANopen ..................................................................................................... 10
2.5.2 CAN standard ............................................................................................. 13
2.6 LABVIEW ....................................................................................................... 14
3 IZDELAVA GONILNIKA ZA VZPOSTAVITEV KOMUNIKACIJE ........................................... 16
3.1 KONFIGURACIJA CAN OMREŢNEGA VMESNIKA ............................................... 17
3.2 POŠILJANJE IN PREJEMANJE BAJTOV! ............................................................... 18
3.2.1 Določanje položaja in vrnitev naprave v začetni položaj .......................... 23
3.3 POVPREČENJE IZMERJENIH VREDNOSTI ............................................................ 25
3.4 VKLOPNA IN IZKLOPNA LOGIKA ....................................................................... 27
3.5 PREIZKUS DELOVANJA ..................................................................................... 28
4 ZAKLJUČEK ................................................................................................................................... 32
5 VIRI, LITERATURA ....................................................................................................................... 34
6 PRILOGE ......................................................................................................................................... 36
6.1 GONILNIK ZA VZPOSTAVITEV CAN-BUS KOMUNIKACIJE ............................... 36
6.2 PODATKOVNI LISTI .......................................................................................... 36
6.3 SEZNAM SLIK ................................................................................................... 36
6.4 SEZNAM PREGLEDNIC ...................................................................................... 38
6.5 NASLOV ŠTUDENTA ......................................................................................... 38
6.6 KRATEK ŢIVLJENJEPIS...................................................................................... 39
VII
UPORABLJENE KRATICE
CAN - področno serijsko komunikacijsko omreţje (Controller–area network, CAN-
bus).
CANopen - protokol področno serijskega komunikacijskega omreţja.
V/I – vhodno izhodne enote.
ECU – centralno procesna enota (CPU).
VI – virtualen inštrument.
PVM – pulznoširinska modulacija.
SVM – prostorsko vektorska modulacija.
a – pospešek.
Rc – upornost navitja.
L – induktivnost navitja.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 1
1 UVOD
Namen in cilj te diplomske naloge je raziskati uporabnost električnega linearnega
motorja, za pogon električnih drsnih vrat. Diplomska naloga je financirana na podjetju
DOORSON d.o.o., Milenkova ulica 9, 2000 Maribor, ki je to nalogo financirala.
Diplomska naloga zajema komunikacijo CAN-BUS med komercialnim regulatorjem
podjetja Advanced Motion Controlc, model DPCANTE-020B080 in računalnikom na
katerem je naloţen programski paket LabVIEW 9 podjetja National Instruments. Drsna
vrata so kompleksna naprava iz več krmilnih enot, katere komunicirajo med seboj.
Komunikacijski protokol, ki ga uporabljam je CANopen. CAN je področno serijsko
komunikacijsko omreţje, namenjeno za povezavo krmilnih modulov, senzorjev in
aktuatorjev, ter za nadzor, upravljanje in diagnosticiranje porazdeljenih procesov, ki
delujejo v realnem času. Omreţni sistem je bil razvit za namen v avtomobilističnih
proizvodnih sistemih. Komunikacija je vzpostavljena s komercialnim regulatorjem, ki
ima nalogo, da z njim reguliramo in krmilimo navor, hitrost in poloţaj. Regulator je
digitaliziran in uporablja prostorsko vektorsko modulacijo. Regulator ima sposobnost, da
lahko ukazne signale generira sam, ima programabilne digitalne ali analogne vhode in
izhode. Linearni motor katerega krmilimo, je proizvod podjetja H2W Technologies, Inc.
Je alternativa rotacijskemu motorju, velika prednost ki jo ima, je visoko pospeševanje.
Motor prenaša silo preko mehanske povezave, namesto preko povezave magnetnega
polja. Os, ki jo poganja naš motor ne potrebuje stika med premikajočimi deli, posledično
se nam zmanjšajo vibracije in obraba. Na konstrukcijo linearnega motorja imam pritrjen
linearni magnetni dajalnik LM10. LM10 je brezkontaktni magnetni dajalnik pomika,
informacijo o pomiku dobi s pomočjo magnetnega merilnega traku, ki je pritrjen na
celotno dolţino drsnih vrat. Brezkontaktno merjenje poloţaja odpravi probleme obrabe,
zagotavlja trpeţnost in minimalno histerezo, zato ta sistem omogoča visoko natančnost
in zanesljivost merjenja tudi pri visokih hitrostih in pospeških. Regulator je vgrajen v
omarico, v kateri je vgrajen tudi napajalnik proizvajalca Advanced Motion Controls serije
PS1600W. PS1600W je nereguliran napajalnik. Načrtovan je tako, da zagotavlja
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 2
najboljšo razmerje med ceno in Wattom. Komunikacija je vzpostavljena preko
računalniškega programskega paketa LabVIEW 9, ki sodi med vodilne programe na
trţišču. Programski paket omogoča vzpostavitev komunikacije, opazovanje in
spreminjanje delovanja drsnih vrat.
Program, ki sem ga izdelal mi omogoča opazovati hitrost, poloţaj in tok linearnega
motorja, ki premika drsna vrata. Omogoča mi tudi preprosto poloţajno krmiljenje, da
lahko nastavim ţelen poloţaj. Programska struktura je razdeljena na osem delov:
konfiguriranje CAN omreţnega vmesnika, inicializacija razporeda (potrebna je za
povprečenje vrednosti), pošiljanje in prejemanje bajtov, povprečenje, izpis vrednosti
(poloţaj, tok, hitrost), logika za ročno določanje poloţaja, javljanje napak, vklopna in
izklopna logika.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 3
2 PREDSTAVITEV TESTNE NAPRAVE DRSNIH VRAT
Slika 1: Drsna vrata.
Na sliki 1 lahko so prikazana testna drsna vrata, ki so krmiljena s komercialnim
regulatorjem DPCANTE-020B080, podjetja Advanced Mootion Controls. Testna vrata je
izdelalo in financiralo podjetje DOORSON d.o.o., Milenkova ulica 9, 2000 Maribor in
sluţijo za raziskovalne namene, za razvijanje novih in boljših rešitev za trţišče. Moja
naloga je razviti in vzpostaviti komunikacijo s programskim paketom LabVIEW.
2.1 Linearni motor
Linearni motor je vrsta elektromotorja, ki pretvarja električno energijo v translacijsko
gibanje. Linearni elektromotor je posebna oblika elektromotorja, brez rotirajočih delov.
Njegovo sestavo si lahko predstavljamo tako, da prereţemo klasični rotacijski motor na
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 4
polovico in izravnamo rotor in stator, ju poloţimo enega nad drugim in ţe dobimo
linearni elektromotor.
Slika 2: Sestava linearnega motorja (a) stator prereţemo po črti, b) stator izravnamo, c)
rotor poloţimo nad stator, d) dvostransko obleganje rotorja, e) enostransko obleganje
rotorja).
Z linearnim motorjem lahko doseţemo zelo velike pospeške in hitrosti, zato jih
najpogosteje srečujemo v pogonski tehniki pri avtomatiziranih procesih (obdelovalni
stroji). Pri rotacijskih motorjih moramo uporabiti različne konstrukcijske rešitve pri
pretvarjanju rotacijskega gibanja motorja v premočrtno gibanje. Najpogostejša rešitev je z
uporabo vretena in matice, pri čemer se zmanjša togost in zanesljivost sistema.
c)
PREREZ PO
ČRTI
ROTOR STATOR NAVITJE
a) b)
d) e)
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 5
Prednosti uporabe linearnega elektromotorja:
velike hitrosti,
natančnost nastavljanja poloţaja,
nizka hrupnost,
hitra odzivnost.
Slabosti uporabe linearnega elektromotorja:
visoka cena,
segrevanje.
2.1.1 Podatki uporabljenega linearnega motorja
Slika 3: Uporabljen linearni motor.
Tabela 1: Podatki motorja
Model Kp Ic Ip a Rc L masa
[N/A] [A] [A] [m/s] [Ω] [mH] [Kg]
BLDA-02 [13.7] [3.1] [9.3] [15.7] [7.3] [2] [0.22]
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 6
2.2 Komercialni regulator
Reguliranje linearnega motorja je izvedeno s pomočjo komercialnega regulatorja
DPCANTE-020B080, ki ga je razvilo podjetje Advanced Motion Controls, pod serijo
produktov DigiFlex® Performance™. Njegov namen je reguliranje servomotorjev vseh
tipov. Reguliramo lahko navor, hitrost in poloţaj. Regulator je popolnoma digitaliziran in
uporablja prostorsko vektorsko modulacijo (SVM). Prednost popolne digitaliziranosti je,
da lahko uporabljam višje BUS napetosti, zmanjša pa se tudi izguba toplotne energije v
primerjavi s pulzno širinsko modulacijo (PVM) [4].
Sposobnost tega regulatorja je, da lahko ukazne signale generira sam ali pa jih napaja od
zunaj. Za povezavo z drugimi komponentami med sabo in za konfiguracijo ali nastavitev
pogona, lahko uporabim CANopen ali pa RS-232 serijski vmesnik. Ima tudi namenske
programabilne digitalne in analogne vhode in izhode. Vse uporabljene parametre
shranjuje v vgrajen trajni pomnilnik [4].
Slika 4: Komercialni regulator.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 7
Za komunikacijo z regulatorjem je potrebno preučiti CANopen standard. Preučiti pa je
treba tudi na kakšen način poteka pošiljanje in prejemanje ukazov. Regulator pošilja oz.
prejema 8 bajtno heksadecimalno kodo, pri čemer prvi 4 bajti vsebujejo informacijo oz.
ukaz, zadnji 4 bajti pa vsebujejo informaciji o veličini (npr. hitrost znaša 0,3 m/s) [5].
Ukaze, ki jih bom pošiljal, bodo imeli ID naslov 607, vse ostale ukaze in njihove kode si
lahko ogledate v tabeli 1 in 2 [6].
TABELA 2: UKAZ ZA 1. BAJT.
1. BAJT STATUS
40 Branje
42 Informacija
22 Pisanje
TABELA 3: UKAZI ZA 2., 3., 4. BAJT.
2. IN 3. BAJT 4. BAJT NALOGA
6077h 0h Preberi dejanski tok motorja.
606Ch 0h Preberi dejansko hitrost motorja.
6064h 0h Preberi dejansko lego motorja.
6040h 80h Vrni se v začetno stanje.
6040h 0Fh Omogoči delovanje.
6040h 04h Onemogoči delovanje.
2.3 Napajalnik
Za napajanje linearnega motorja in regulatorja je uporabljen napajalnik enakega
proizvajalca (Advanced Motion Controls). Napajalnik PS16H40 spada v serijo
nereguliranih napajalnikov PS1600W. Ta nereguliran enosmerni (DC) vir električne
energije, je sprejemljiva rešitev za večino aplikacij, kot nadomestek ojačevalnikov za
spreminjanje izhoda in komponent izmeničnega nihanja napajalnika.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 8
Napajalnik serije PS1600W je načrtovan tako, da zagotavlja najboljše razmerje med ceno
na Wattom. Ima več navitij za prilagoditev evropskim ali ameriškim omreţnim
napetostim (240V 50Hz ali 120V 60Hz). Ima tudi več različnih izhodnih navitij za
napetosti 30V, 36V ali 40V, pri čemer imam pri navitjih za 30V in 40V, štiri enaka
sekundarna navitja, za 36V pa dva enaka sekundarna navitja. Izhodna navitja lahko med
sabo zaporedno ali vzporedno poveţemo, da dobim še druge izhodne napetosti in tokove
[7].
Slika 5: Napajalnik PS16H40.
2.4 Linearni magnetni dajalnik
Za spremljanje informacij o hitrosti in poloţaju potrebujem ustrezno senzorsko napravo.
Za ta sistem z drsnimi vrati je zelo primeren linearni magnetni dajalnik, saj
brezkontakten način delovanja odpravi problem obrabe, zagotavlja trpeţnost in
minimalno histerezo, s tem pa omogoča natančno in zanesljivo merjenje tudi pri visokih
hitrostih in pospeških. Iz teh razlogov je uporabljen linearni magnetni dajalnik podjetja
RLS, model LM10 [9].
LM10 je brezkontaktni magnetni dajalnik pomika, sestavljen iz zaprte merilne glave in
samolepilnega magnetnega traku. Merilna glava LM10 ima vgrajeno LED diodo, ki sluţi
za laţje določanje pravilnega delovanja merilne glave. Merilna letev je lahko dolga do
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 9
100, zračna reţa med merilno glavo, ki je nameščena nad letvijo pa mora biti dolga od 1
do 5mm. Na merilni letvi moramo zmeraj nastaviti referenčno točko, ki je lahko vdelana
ţe ob izdelavi ali pa jo kasneje prilepimo s pomočjo orodja za namestitev značk.
Merilna glava ima digitalne izhode (moţni so tudi analogni izhodi), ki omogočajo
ločljivost na 1µm, 2µm, 5µm, 10µm,20µm in hitrost dajalnika 4 m/s [9].
Slika 6: Linearni magnetni dajalnik, proizvajalca RLS, model LM10.
2.4.1 Splošne zahteve linearnega dajalnika
Napajalna napetost: od 4,5 V do 7 V (vsebuje zaščito pred obrnjeno
polariteto).
Poraba energije (brez obremenitve): <30 mA za digitalni izhod <50 mA za analogni
izhod.
Stopnja zaščite: IP68 (po standardu IEC 60529).
Delovna temperatura: od -10°C do +80°C.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 10
2.4.2 Kratek opis delovanja
Diferencialni magnetorezistivni senzor se pomika vzdolţ po merilni letvi. Zaradi
sprememb magnetnega pretoka nastaneta sinusni in kosinusni signal. Z notranjo
interpolacijo sinusnega in kosinusnega signala lahko doseţemo ločljivost do 1µm [9].
Slika 7: Način delovanja linearnega magnetnega dajalnika.
2.5 CANopen protokol
2.5.1 CANopen
CAN je področno serijsko komunikacijsko omreţje, namenjeno za upravljanje, povezavo
krmilnih modulov, senzorjev in aktuatorjev, ter nadzor in diagnosticiranje porazdeljenih
procesov, ki delujejo v realnem času. Omreţni sistem je bil sprva razvit za
avtomobilistične proizvodne sisteme. Razvilo ga je podjetje Robert BOSCH GmbH iz
Stuttgarta v Nemčiji, leta 1987. Ker je CAN prenos podatkov izredno zanesljiv, cenovno
prijazen je zelo zastopan tudi izven avtomobilistične industrije. Najnovejši izdelki
uporabljajo CAN kot dopolnilo z drugimi omreţnimi sistemi, kot so npr.: LIN (nizko
cenovno serijsko omreţje za elektroniko), MOST (za uporabo zabavne elektronike v
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 11
avtomobilih) in FLEXRAY (za uporabo zaščitenih komunikacij). CAN je standardiziran
za industrijske aplikacije, Field Bus pa je razširjen pri krmiljenju procesov [8].
CAN zagotavlja trpeţno in cenovno ugodno omreţje, ki pomaga napravam v medsebojni
komunikaciji. Največja prednost uporabe CAN komunikacije je v tem, da se izredno
zmanjša število povezav, saj potrebuje procesor samo en vmesnik, da lahko komunicira z
ostalo periferijo, npr. s senzorji, aktuatorji itd. Zato ne uporablja njegovih vhodnih in
izhodnih enot za komunikacijo z ostalimi napravami iz sistema, posledično se zmanjšajo
tudi stroški izdelave, kar pride do izraza še posebej pri velikih serijah.
Slika 8: Prednost CAN vodila.
CAN protokol omogoča velike dolţine komunikacijskega vodila, pri niţjih hitrostih
prenosa tudi do 1 km. Po CAN vodilu pošiljamo kratka sporočila z hitrostjo prenosa od
100kbit/s do 2Mbit/s. CAN ima optimizirano obnašanje in se sam avtomatsko
sinhronizira. Dostop na vodilih lahko ima več nadzornih parov, njihov dostop na vodilo
pa je naključen, da se izogiba trkom. Število vozlišč na enotnem omreţju je omejeno le
teoretično, s številom razpoloţljivih identifikatorjev. Številke vozlišč se trenutno giblje
do 32 ali 64 na omreţje, vendar so na trţišču tudi proizvajalci, ki omogočajo mreţe do
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 12
110 vozlišč. Hitrost prenosa podatkov je odvisna od celotne dolţine vodnika, povezanega
z oddajniki. Za vse naprave v ISO11898 standardu poteka hitrost pri 1 Mbit/s, če je
dolţina vodnika krajša od 40 m, za večje dolţine vodnikov pa je potrebno zmanjšati
hitrost prenosa [8].
Tabela 4: Hitrost je odvisna od dolžine vodnika.
Slika 9: Hitrost prenosa.
Komunikacija je enaka za vse izvedbe CAN. Vendar pa obstajata dve različni izvedbi
CAN komunikacije, to sta popolni CAN (full CAN) in osnovni CAN (basic CAN). V
osnovni CAN konfiguraciji obstaja tesna povezava med CAN krmilnikom in
mikrokrmilnikom. Povezava mikrokrmilnika, ki ima še druge funkcije povezane z
sistemom za upravljanje bo prekinjena, da se ukvarja z vsakim CAN sporočilom. Popolni
CAN vsebuje dodatno strojno opremo za zagotavljanje sporočil ''streţnika'', ki samodejno
Hitrost Dolžina vodnika
125kbit/s nad 500 m
250kbit/s nad 200 m
500kbit/s nad 100 m
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 13
prejema in pošilja CAN sporočila v mikrokrmilnik. Pri popolnem CAN-u izvedejo
naprave obseţno filtriranje na dohodna sporočila, da zmanjšajo obremenitev na
mikrokrmilniku [8].
2.5.2 CAN standard
CAN je v celoti opisan v standardu ISO 118998. CAN komunikacijski protokol ISO
11898 opisuje, kako informacija potuje med napravami v omreţju in je v skladu z OSI
(Open System Interconnection) modelom, ki je plastno definiran. Dejanska komunikacija
med napravami, ki jih povezuje fizični medij (vodilo), je definirana z fizično plastjo
ISO/OSI referenčnega modela. Maksimalna dolţina omreţja je odvisna od frekvence,
števila vozlišč in hitrosti povečanja ţic [8].
Slika 10: ISO111898 arhitektura.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 14
2.6 LabVIEW
LabVIEW programi se obravnavajo kot virtualni inštrumenti (VI), ker lahko razne
merilne inštrumente, osciloskope in multimetre virtualno prikaţemo. LabVIEW vsebuje
veliko paleto orodij za analizo, simulacijo, zdruţevanje in shranjevanje podatkov, kot tudi
za iskanje napak v programski kodi [1].
Slika 11: Logotip.
V LabVIEW-u lahko izdelam uporabniku prijazne čelne plošče na katerih imam vse
potrebne gumbe in prikazovalnike rezultata. Elementi, s katerimi lahko spreminjam
vrednosti so lahko različnih vrst: tipka, stikalo, vrtljivo stikalo ali vrtljiv gumb. Za
prikazovalne elemente lahko izberem LED diode, grafe vseh vrst, kazalčne
prikazovalnike, numerične indikatorje itd. [2]. Povezave med elementi izdelam tako, da
odprem blokovni del programa, ter v njem sprogramiram našo napravo preko blokovne
kode oz. G-kode. Programski jezik vsebuje simbole, ki jih je potrebno povezati v
pravilnem zaporedju. Nekateri simboli imajo potem povezavo z elementom na čelni
plošči, ki sluţi za prikaz izmerjene vrednosti. Simbole premikam, povezujem, označujem
s pomočjo orodij, ki se nahajajo v orodni vrstici ''Tools''.
LabVIEW omogoča, da izmerjene podatke lahko shranjujem in si jih kasneje tudi
ogledam oz. analiziram. To storim s pomočjo opcije ''File I/O''. Pomembno je samo, da
vem, v katero knjiţnico shranimo podatke, (ASCI, TDMS, itd.) [3] ker če ţelim podatke
kasneje analizirati v določenem programu, mora ta program podpirati to knjiţnico.
Program omogoča tudi komunikacijo z različnimi napravami, kot tudi podatkovnimi
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 15
karticami, video kamerami in regulatorji [2]. Vse kaj potrebujemo v tem primeru so
pravilni vmesniki in gonilniki, ki si jih lahko snamem z internetne strani podjetja
National Instruments (http://www.ni.com/devzone/idnet/d/). Če pa nimam na razpolago
primernega gonilnika, si tega izdelamo sami, kar je tudi namen moje diplomske naloge.
Slika 12: Primer programa za regulacijo enosmernega elektromotorja (levo spodaj: čelna
plošča, desno zgoraj: blokovni diagram).
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 16
3 IZDELAVA GONILNIKA ZA VZPOSTAVITEV
KOMUNIKACIJE
Če ţelim opazovati odzive testnih vrat s pomočjo programskega paketa LabVIEW,
moram izdelati golilnik, ki mi bo to omogočal. Sprva je bil namen naloge, da bom
opazoval samo odzive toka, hitrosti in poloţaja, kasneje, med samo izdelavo gonilnika,
pa sem se odločil, da gonilniku dodam opcijo za nastavljanje poloţaja. Struktura
gonilnika je prikazana na sliki 13.
Slika 13: Struktura gonilnika.
Iz slike 13 je lepo razvidno, da je program sestavljen iz več manjših podprogramov. Za
podprograme sem se odločil zato, ker zmanjšajo strukturiranost samega programa. Prav
tako pa se poveča preglednost programa, saj je priporočljivo, da je program zasnovan za
ustrezno velikost monitorja. Program je sestavljen iz dveh struktur izven ''While'' zanke -
konfiguriranja CAN omreţnega vmesnika in inicializacije razporeda za povprečenje.
Znotraj zanke pa se nahajajo glavne strukture podprograma: pošiljanje in prejemanje
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 17
bajtov, povprečenje, izpis meritve, vklopna in izklopna logika, logika za primerjavo in
določanje pozicije, javljanje napake.
3.1 Konfiguracija CAN omrežnega vmesnika
Konfiguracijo CAN omreţnega vmesnika potrebujem, da lahko nastavim vse parametre,
ki so potrebni za vzpostavitev komunikacije s komercialnim regulatorjem.
Slika 14: Način kako konfiguriramo CAN omreţni vmesnik.
Slika 15: Podprogram za konfiguracijo.
ObjName- določim CAN omreţni vmesnik. Za določitev uporabljam sintakso ''CANx'',
kjer je ''x'' številka, ki označuje CAN omreţni vmesnik (uporabimo CAN0, CAN1, do
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 18
CAN63). CAN omreţni vmesnik je fizično priklopljen na naš računalnik in ga lahko
določim z uporabo Measurement & Automation Explorer (MAX).
CAN Network Interface Config- določa jedro konfiguracije lastnosti CAN omreţja, ki
vsebuje vse potrebne informacije kot so: Start On Open (pomeni ali se naj konfiguracija
izvede takoj ob zagonu programa, nastavljeno je na prevzeto stanje''1''), Baud Rate
(določim hitrost prenosa podatkov, sam sem uporabil hitrost 500kbit/s), Read Queue
Length (določim največje število neprebranih okvirjev za branje v čakalni vrsti v CAN
omreţnem vmesniku), Write Queue Length (največje število okvirjev za notranje pisanje
v čakalni vrsti za pošiljanje po CAN omreţnem vmesniki), Standard Comparator (je CAN
razsodba za ID standard), Standard Mask (se uporablja v zvezi s Standard Comparator in
sluţi za filtriranje vhodnih CAN okvirjev), Extended Comparator (sluţi za razširjanje
Standard Comparator-ja na 29 bitov), Extended Mask (se uporablja v zvezi z Extended
Comparator-jem in sluţi za filtriranje vhodnih CAN okvirjev).
Error out- opisuje napake ki se pojavijo med izvajanjem virtualnega inštrumenta. Napaka
se izpiše s pomočjo treh indikatorjev: status (mi sporoči, če je sploh prišlo do napake),
code (identifikacijska številka napake), source (opis napake z besedo).
Slika 16: Simbol za odprtje CAN povezave z napravo.
ObjHandle out – je vrednost, ki povezuje vse kasnejše CAN podpograme.
3.2 Pošiljanje in prejemanje bajtov!
Za pošiljanje in prejemanje bajtov sem izdelal podprogram, katera blokovna struktura je
prikazana na sliki 17.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 19
Slika 17: Blok diagram pošiljanja in prejemanja bajtov.
V osnovi je program izdelan s pomočjo opcije Flat Sequence structure, ki deluje po
principu filmskega traku, kar pomeni, da se izvajajo programi znotraj strukture
zaporedoma. To pomeni, da program najprej prebere vrednost hitrosti, z 2ms
zakasnitvijo, pozicijo in tok, na koncu pa še vpiše novo vrednost poloţaja, če seveda dobi
ukaz, da mora spremeniti pozicijo, v nasprotnem primeru se ta del programa ne izvaja.
Del programa za pošiljanje in branje bajtov je prikazan na sliki 18. Program se začne
izvajati, ko na čelni plošči vklopim tipko WRITE (piši), s tem ukazom povzročim, da se
začnejo pošiljati ukazi za spremljanje hitrosti, toka in pozicije, s pomočjo podprograma
CWrite (slika 19). Med pošiljanjem in branjem bajtov, sem vgradil zakasnitev 2 ms, da
ima regulator čas prebrati in poslati podatke. V podprogram pripeljem nekatere vhodne
(ObjHandle IN, Error out, Arbitration Id, Data Length, WRITE (v obliki globalne
spremenljivke) in izhodne ( Result T, Result H, Result P, ObjHandle out OUT, Error
out), TOK, HITROST, POLOŽAJ, primerjava (v obliki globalne spremenljivke))
informacije iz glavnega programa.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 20
Slika 18: Del programa za pošiljanje in branje bajtov (na sliki je prikazano branje
hitrosti).
Slika 19: podprogram, ki mi omogoča vpisovanje 8-bajtne kode v regulator.
Na CAN Writhe podprogram moram pripeljati naslednje vrednosti: ObjHandle,
(poveţemo ga iz ObjHandle out od CANOpen podprogramom), DataLength
(vrednost, ki pove koliko bajtov podatkov bom poslal, sam pošiljam 8 bajtov velike
informacije), Data (vsebuje 8 bajtno kodo, ki jo ţelim vpisati v regulator), IsRemote (če
imam vrednost 0, mi ta predstavlja CAN podatkovni okvir), Error in (poveţem ga z
Error out od CANOpen podprogramom), ArbitrationId (določa ID za posredovanje
CAN podatkov, jaz sem moral uporabiti vrednost 607).
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 21
Slika 20: Podprogram za branje trenutne hitrosti.
Program za branje trenutne vrednosti hitrosti je v osnovi razdeljen na štiri dele. Program
deluje tako, da prebere 8 bajtno kodo, ki jo pošlje regulator preko podprograma
CANReed. Na CANReed-u imam priklopljen virtualni inštrument, ki mi sluţi za
kasnejšo preverjanje stanj, če je med obratovanjem prišlo do napake, da si znatno
zmanjšam čas iskanja le- te. Kodo, ki vsebuje informacijo o trenutni hitrosti, je potrebno
razčleniti na 8 delov, da lahko primerjam posamezne bite in jih kasneje tudi dešifriramo v
številčno vrednost, ki naj bi predstavljala trenutno hitrost. Dešifriranje kode je
predstavljeno na sliki 21.
Slika 21: Dešifriranje kode za hitrost.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 22
Dešifriranje kode poteka tako, da prve 4 bajte primerjamo s konstantami in če so enaki,
dobim s pomočjo digitalne logike na izhodu ''Result'' logično 1, ki kasneje v programu
omogoči povprečenje vrednosti. Ker druga polovica kode vsebuje informacije o
vrednosti hitrosti, ki jo je prav tako potrebno dešifrirati v celo desetiško številko. Za
dešifriranje potrebujem opcijo Join Numbers, ki zdruţi številko oz. bajt iz dveh delov,
pri tem opravilu pa moram biti pozoren, kateri bajt ima večji pomen, saj ob napačni
zdruţitvi dobim drugačno vrednost. Da omogočim širšo uporabo, sem dodal več
indikatorjev, ki mi izpišejo vrednost v heksadecimalni in v desetiški obliki, program pa
izpiše tudi koliko bajtov sem zdruţili.
Po dešifriranju vrednosti, je potrebno le še preračunati v ustrezne merske enote in
pravilno izbrati formulo za faktor povečanja, ki sem jo pridobil s podatkovnega lista od
regulatorja. Če sem opazoval hitrost, sem dobival vrednosti v razdelkih na sekundo
(razdelki od linearnega magnetnega dajalnika), zato sem moral preračunati vrednost v
m/s. Enako je bilo pri poloţaju in toku, ko sem razdelke preračunal v metre in tok v
ampere. Na sliki 22 je prikazano preračunavanje merskih enot za hitrost, tok in poloţaj.
Slika 22: Preračunavanje merskih enot (a) hitrost, b) tok c) poloţaj).
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 23
3.2.1 Določanje poloţaja in vrnitev naprave v začetni poloţaj
Gonilniku sem dodal tudi moţnost spreminjana poloţaja s pomočjo vrtljivega gumba na
čelni plošči. Ob določanju poloţaja pa moj sistem potrebuje tudi tipko za vrnitev v
začetno stanje (Reset). Na sliki 23 je prikazan način, kako sem omogočil vpisovanje
ţelenega poloţaja.
Slika 23: Del programa, ki sluţi za določanje pozicije.
Program deluje tako, da se v primeru spremembe na vrtljivem gumbu, začne izvajati
zanka. To se zgodi zaradi logike za primerjanje in določanje poloţaja, ki se nahaja v
glavnem programu, slika 24. Logika deluje tako, da imam ob zagonu programa drsni
gumb na vrednosti 0, ob spremembi vrednosti gumba se spremeni stanje, kar povzroči,
da ima globalna spremenljivka stanje 1, ki povzroči, da se pošlje na regulator informacija
o novem poloţaju.
Slika 24: logike za primerjanje in določanje pozicije.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 24
Znotraj zanke je podprogram, ki mi generira potrebno 8 bajtno kodo za poloţaj, ki ga
ţelim doseči z mojimi drsnimi vrati oz. linearnim elektromotorjem. Znotraj tega
podprograma imam izvedene tudi ukaze za vrnitev v prvotno stanje (Reset), ter da
omogočam oz. onemogočam delovanje regulatorja (Enable, Disable). Zgradba programa
je prikazana na sliki 25.
Slika 25: Program ki mi omogoča določanje poloţaja.
Program deluje tako, da se preko globalne spremenljivke vrednost vrtljivega gumba
prenese v program, kjer potem po logiki dešifrira desetiško število in jo pretvori v 4
bajtno heksadedecimalno kodo. Še pred dešifriranjem pa je potrebno pretvoriti mersko
enoto meter v razdelke na magnetnem traku, da imam večjo natančnost reguliranja
poloţaja. Če pride med delovanjem do nepredvidljivih napak, pa je vgrajeno moţnost
zaustavitve delovanja in ga je mogoče postaviti v začetno stanje. Tako, da ob vklopu na
katero od teh tipk začne delovati del programa, ki je prikazan na levi strani slike 24,
razlika nastane samo v levi ''Case'' strukturi, ko se izvede generiranje 8 bajtne kode, ki je
potrebna za ţeleno funkcijo. Na sliki 26 je prikazano generiranje 8 bajtne kode za ukaz za
vrnitev v začetno stanje.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 25
Slika 26: generiranje 8 bajtne kode za ukaz za vrnitev v začetno stanje.
3.3 Povprečenje izmerjenih vrednosti
Opazovane vrednosti, ki jih regulator pošilja, niso primerne za uporabo, saj ima naprava
veliko natančnost, kar povzroči, da vrednosti zelo nihajo, zato je potrebno povprečiti
vrednosti, da dobim gladek prehod med meritvami. Povprečenje vrednosti je razdeljeno
na dva dela. Prvi del se izvaja izven ''While'' zanke, inicializacija matrike, v katero se naj
shranjujejo meritve in ji določi koliko meritev naj povpreči. Pri vpisovanju novih
vrednosti uporabljam ukaz ''Shift Registers'' katerega naloga je, da prenese vrednost iz
prejšnjih iteracij skozi ''While'' zanko za naslednjo ponovitev. Na robu zanke se pojavi v
obliki terminalov, na katerega priključim ţeleno vrednost. Terminal na desni strani zanke
vsebuje puščico gor in hrani podatke o zaključku ponovitev. Drug del povprečenja pa se
izvaja posebej, v ta namen izdelanim podprogramom. Glej sliko 27.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 26
Slika 27: Podprogram za povprečenje vseh vrednosti.
Podprogram je zasnovan tako, da pripeljemo vrednosti iz ''Shift Registers-a'' in trenutne
vrednosti toka, poloţaja in hitrosti. Program vsebuje tri ''case'' strukture, ki se vklapljajo
samo takrat, ko regulator pošlje vrednost za njih. Podrobno delovanje delovanja struktur
je prikazano na sliki 21. Na primer, da dobivamo informacijo za tok, potem je stanje
''Result T'' 1, pomeni, da se bo zagnala prva struktura, ki povpreči vrednosti toka. Znotraj
strukture je izdelan podprogram, ki izračunava povprečno stanje. Prikazan je ne sliki 28 .
Slika 28: Zanka povprečenja.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 27
Program deluje tako, da najprej primerja število povprečij in koliko meritev je bilo
izvedenih. Ko je bilo doseţeno število meritev 50 ali več, se vrednost vpiše v matriko, v
kateri se seštejejo vse vrednosti med sabo, skupna vsota pa se potem deli s številom
povprečij. Sam sem se odločil, da bom povprečil 50 vrednosti skupaj, ker je takrat odziv
najbolj kvaliteten in natančen.
3.4 Vklopna in izklopna logika
Na čelni plošči je pet gumbov za različne ukaze delovanja gonilnika. Čelna plošča
vsebuje gumb WRITE, ki sluţi za vklop pisanja podatkov v regulator. Z njim zaţenem
delovanje. Ko gumb postavim v stanje ''izklopljeni'' moj program še vedno deluje, vendar
se ne pošiljajo podatki na regulator. Program popolnoma zaustavim šele s tipko ''STOP''.
Program ima tudi moţnost, da postavimo regulator v začetno stanje (sistem resetiram), ali
pa omogočim oz. onemogočim stanje regulatorja.
Ker govorimo o gonilniku mora ta imeti moţnost vklapljanja in izklapljanja tudi izven
čelne plošče. Ta problem sem odpravil s pomočjo globalne spremenljivke ''Write freme
2'', deluje pa tako, da program vklopi tipka ''WRITE'' na čelni plošči ali tipka ''WRITE'' v
kakšnem drugem programu. Oba gumba sta pripeljana na logična ''ali'' vrata, ki delujejo
tudi v primeru, ko je vsaj en gumb od obeh vklopljen, tako bo stanje logičnih vrat na
izhodu logična 1.
Slika 29: Vklopna logika.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 28
Tudi tipke ''RESET'', ''ENABLE'' in ''DISABLE'' sem izvedel kot globalne
spremenljivke,saj se s tem zmanjša število povezav, ki bi morale biti pripeljane v
podprogram ''PISI polozaj'', ki se nahaja znotraj podprograma ''podprogram _pisi''.
Način izklapljanja programa deluje na podoben način kot vklapljanje, vendar preden se
program zaustavi, mora pred tem zaustaviti pošiljanje podatkov. Tega sem se lotil preko
Flat Sequence structure opcije, podrobnosti so prikazane na sliki 30.
Slika 30: Izklopna logika.
Program je zasnovan tako, da v primeru napake ob izklopu to tudi javi. Simbol za
javljanje napake se imenuje ''Simple Error Handler VI''. Napako javi v primernem oknu.
Na sliki 31 je prikazan virtualni inštrument, ki javlja napako.
Slika 31: Javljanje napake.
3.5 Preizkus delovanja
Za preizkus delovanja je potrebno vse komponente med seboj sestaviti. Sestava
komponent oz. struktura programa je v osnovi potekala po načinu, prikazanem na
blokovnem diagramu, prikazanem na sliki 13. Podrobna blokovna plošča gonilnika
izdelanega v LabVIEW-u pa je prikazana na sliki 32. Gonilnik vsebuje tri izhodne
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 29
virtualne inštrumente, ti prikazujejo vrednost toka, poloţaja in hitrosti. Čelna plošča
programa vsebuje vse potrebne gumbe za ukaze in virtualne inštrumente za spremljanje
vrednosti.
Slika 32: Blokovna plošča programa v LabVIEW.
Slika 33: Čelna plošča (a) konfiguracija CAN omreţnega vmesnika, b) Tipka za vklop
pošiljanja ukazov, c) Tipka za zaustavitev procesa merjenja, d) Tabela, kjer lahko
a
b c
d
e g
h f
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 30
spremljamo zadnjih šest izmerjenih vrednosti, e) Vzpostavimo regulator v začetno stanje
ali onemogočim oz. omogočim delovanje, f) Virtualni inštrumenti, ki prikazujejo
trenutne vrednosti toka hitrosti in poloţaja, g) Vrtljiv gumb za nastavljanje poloţaja vrat,
h) Okence, ki izpiše napako če je do te prišlo.
Povezava med regulatorjem in računalnikom poteka preko USB-CAN vmesnika NI-USB-
8473 (slika 34). Ker vmesnik vsebuje D-SUB (CAN protokola) priključek, je bilo potrebno
izdelati vodnik, ki je imel na eni strani mreţni RJ-45 priključek, na drugi pa D-SUB.
Podrobnosti priklapljanja ţičk vodnika, si lahko ogledamo na sliki 35.
Slika 34: USB-CAN vmesnik NI USB-8473.
Slika 35: Priključki vodnika (levo RJ-45, desno D-SUB ).
Ko imamo regulator priklopljen na računalnik, lahko zaţenemo program. Zagon poteka
tako, da v orodni vrstici stisnem gumb ''Run''. Za začetek pošiljanja podatkov, pa je
potrebno na čelni plošči programa vklopiti stikalo ''WRITE'' in regulator ţe pošilja
informacije o toku, hitrosti in poloţaju. Za laţjo predstavo rezultatov je potrebno še
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 31
izdelati grafični vmesnik, ki bo izrisoval grafe poteka in omogočil kasnejšo obdelavo
podatkov v drugih programih. Grafični vmesnik nisem izdelal sam, izdelal ga je sošolec s
katerim sva sodelovala v projektu Testnega pogona drsnih vrat.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 32
4 ZAKLJUČEK
V diplomskem delu sem preučil delovanje linearnega motorja, pri katerem sem ugotovil,
da je primeren za sistem, ki zahteva veliko natančnost in velike hitrosti ter pospeške.
Nato sem se lotil podrobnega preučevanja CANopen protokola, pri katerem sem spoznal,
da je bil prvotno razvit za avtomobilsko industrijo, ker pa je zelo vsestransko uporaben,
ga je moţno najti v vseh modernih sistemih. Njegov namen je, da znatno zmanjša število
povezav, posledično se zmanjša tudi cena izdelka. CAN protokol uporablja dva
napetostna nivoja pošiljanja podatkov CAN_Hi (od 1 V do 2,5 V) in CAN_Lo (od 2,5 V
do 4,5 V). Potem sem se lotil razvijanja gonilnika, ki bo omogočil vzpostavitev povezave
z regulatorjem, da bo mogoče opazovati odzive linearnega elektromotorja. Najprej sem
preučil knjiţnico bajtov, katere sem kasneje uporabil za komunikacijo. Ugotovil sem, da
potrebujem 8 bajtno heksadecimalno kodo za komunikacijo z regulatorjem. Prvi štirje
bajti sluţijo za ukaz regulatorju (npr. mi pošlje trenutno vrednost toka). Po preučevanju
vseh potrebnih 8 bitnih kod, sem se lotil izdelati program za vzpostavitev komunikacije z
regulatorjem. Pomagal sem si z nekaterimi primeri, ki sem jih dobil zraven študentske
verzije programskega paketa LabVIEW.
V naslednjem koraku je bil namen izdelati načrt, kako bo moj program sestavljen. Prišel
sem do spoznanja, da potrebujem več podprogramov, za laţji pregled samega gonilnika.
Gonilnik je v osnovi sestavljen iz konfiguracije CAN omreţnega vmesnika,
podprograma, kamor pošiljam in sprejemam informacije trenutnega stanja drsnih vrat in
podprograma za povprečenje vrednosti. Za povprečenje sem se odločil zato, da sem
zgladil prehode med izmerjenimi točkami, ker so bili le-ti zelo nestabilni in ker se kasneje
ni dalo analizirati vrednosti delovanja. Samemu gonilniku sem dodal moţnost krmiljenja
poloţaja, za to dodatno moţnost sem se odločil zato, ker če sem ţelel opazovati delovanje
drsnih vrat, sem moral imeti istočasno vklopljen še en računalniški program, s katerim
sem potem nastavljal premikanje. Podatke, ki sem jih dobival od regulatorja sem še moral
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 33
pretvoriti v ustrezne enote, ker so bile komponente izdelane v ZDA in tam uporabljajo
druge merske enote, kot pri nas v Evropi. Na koncu je bilo še potrebno izdelati vklopno
in izklopno logiko, ki omogoča uporabniku prijazno delovanje.
Dobra lastnost gonilnika za vzpostavitev komunikacije je, da je zelo enostavno zdruţljiv
z grafičnim vmesnikom, saj potrebujemo pri grafičnem vmesniku samo tri vhode, kjer
prejemamo informacijo o trenutnem stanju. Vsi gumbi za nadzor so izvedeni s pomočjo
globalnih spremenljivk, ker ne potrebujemo nobenih povezav. Gonilnik je primeren tudi
za druge aplikacije oz. sisteme, samo da je takrat potrebno preučiti knjiţnico CANopen
protokola, ki ga podpira novi regulator, razen če uporabljam enakega, potem knjiţnica
bajtov ostane enaka. Slaba lastnost gonilnika je, da ne more istočasno prejemati
informacije od serijske komunikacije in od CAN-a. Ko sem imel regulator istočasno
priklopljen na serijsko komunikacijo, preko katere je bila izvedena kaskadna regulacija,
nisem imel moţnosti nastavitve poloţaja, kljub temu pa sem še vedno lahko opazoval
odzive, sem imel veliko teţav. Glede celotnega sistema testnih vrat z linearnim
motornim pogonom, je velika slabost to, da je sam sistem zelo drag, stroški proizvodnje
pa bi se sicer nekoliko zmanjšali, če bi pričeli s serijsko izdelavo teh drsnih vrat.
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 34
5 VIRI, LITERATURA
[1] Robert H. Bishop, Learning with LabVIEW 8. Pearson Education Inc. 2007.
[2] National Instruments, LabVIEW Core1 Course Manual, 1. Izdaja, North Mopac
Expressway, Austin, Texas 2009.
[3] National Instruments, LabVIEW Core2 Course Manual, 1. Izdaja, North Mopac
Expressway, Austin, Texas 2009.
[4] ADVANCED Motion Controls, Komercialni regulator DPCANTE-020B080
(online), 2010, (citirano 13.9.2010), Dostopno na naslovu:
http://www.a-m-c.com/download/datasheet/dpcante-020b080.pdf
[5] ADVANCED Motion Controls, Strojna oprema – Priročnik za vzpostavitev
CANopen komunikacije, (online), 2010, (citirano 13.9.2010), Dostopno na naslovu:
http://www.a-m-c.com/download/manual/AMC_DPCANopen_InstallManual.pdf
[6] ADVANCED Motion Controls, Priročnik ukazov za CANopen komunikacijo,
(online), 2010, (citirano 13.9.2010), Dostopno na naslovu:
http://www.a-m-c.com/download/manual/AMC_CANopenCommunicationManual.pdf
[7] ADVANCED Motion Controls, Napajalnik – PS16 Series, (online), 2010, (citirano
13.9.2010), Dostopno na naslovu:
http://www.a-m-c.com/download/datasheet/ps16h40.pdf
[8] CANopen, CANopen protokol, (online), 2010, (citirano 13.9.2010), Dostopno na
naslovu:
http://www.can-cia.org
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 35
[9] RLS, LM10 magnetni sistem merjenja pomika, (online), 2010, (citirano 13.9.2010),
Dostopno na naslovu:
http://www.rls.si/default.asp?prod=lm10&lang=slovene
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 36
6 PRILOGE
6.1 Gonilnik za vzpostavitev CAN-BUS komunikacije
Gonilnik za vzpostavitev CAN-BUS komunikacije, se nahaja na priloţeni zgoščenki.
6.2 Podatkovni listi
Podatkovni listi, se nahajajo na priloţeni zgoščenki.
6.3 Seznam slik
Slika 1: Drsna vrata. ............................................................................................................ 3
Slika 2: Sestava linearnega motorja (a) stator prereţemo po črti, b) stator izravnamo, c)
rotor poloţimo nad stator, d) dvostransko obleganje rotorja, e) enostransko
obleganje rotorja). ....................................................................................................... 4
Slika 3: Uporabljen linearni motor. .................................................................................... 5
Slika 4: Komercialni regulator. ........................................................................................... 6
Slika 5: Napajalnik PS16H40. ............................................................................................ 8
Slika 6: Linearni magnetni dajalnik, proizvajalca RLS, model LM10. .............................. 9
Slika 7: Način delovanja linearnega magnetnega dajalnika. ............................................ 10
Slika 8: Prednost CAN vodila. .......................................................................................... 11
Slika 9: Hitrost prenosa. .................................................................................................... 12
Slika 10: ISO111898 arhitektura. ..................................................................................... 13
Slika 11: Logotip............................................................................................................... 14
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 37
Slika 12: Primer programa za regulacijo enosmernega elektromotorja (levo spodaj: čelna
plošča, desno zgoraj: blokovni diagram). .................................................................. 15
Slika 13: Struktura gonilnika. ............................................................................................ 16
Slika 14: Način kako konfiguriramo CAN omreţni vmesnik. .......................................... 17
Slika 15: Podprogram za konfiguracijo. ............................................................................ 17
Slika 16: Simbol za odprtje CAN povezave z napravo. .................................................... 18
Slika 17: Blok diagram pošiljanja in prejemanja bajtov. .................................................. 19
Slika 18: Del programa za pošiljanje in branje bajtov (na sliki je prikazano branje
hitrosti). ..................................................................................................................... 20
Slika 19: podprogram, ki mi omogoča vpisovanje 8-bajtne kode v regulator. .................. 20
Slika 20: Podprogram za branje trenutne hitrosti. ............................................................. 21
Slika 21: Dešifriranje kode za hitrost. ............................................................................... 21
Slika 22: Preračunavanje merskih enot (a) hitrost, b) tok c) poloţaj). .............................. 22
Slika 23: Del programa, ki sluţi za določanje pozicije. .................................................... 23
Slika 24: logike za primerjanje in določanje pozicije........................................................ 23
Slika 25: Program ki mi omogoča določanje poloţaja. ..................................................... 24
Slika 26: generiranje 8 bajtne kode za ukaz za vrnitev v začetno stanje. .......................... 25
Slika 27: Podprogram za povprečenje vseh vrednosti. ...................................................... 26
Slika 28: Zanka povprečenja. ............................................................................................ 26
Slika 29: Vklopna logika. .................................................................................................. 27
Slika 30: Izklopna logika. .................................................................................................. 28
Slika 31: Javljanje napake. ................................................................................................ 28
Slika 32: Blokovna plošča programa v LabVIEW. ........................................................... 29
Slika 33: Čelna plošča (a) konfiguracija CAN omreţnega vmesnika, b) Tipka za vklop
pošiljanja ukazov, c) Tipka za zaustavitev procesa merjenja, d) Tabela, kjer lahko
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 38
spremljamo zadnjih šest izmerjenih vrednosti, e) Vzpostavimo regulator v začetno
stanje ali onemogočim oz. omogočim delovanje, f) Virtualni inštrumenti, ki
prikazujejo trenutne vrednosti toka hitrosti in poloţaja, g) Vrtljiv gumb za
nastavljanje poloţaja vrat, h) Okence, ki izpiše napako če je do te prišlo. ............... 29
Slika 34: USB-CAN vmesnik NI USB-8473. ................................................................... 30
Slika 35: Priključki vodnika (levo RJ-45, desno D-SUB ). ............................................. 30
6.4 Seznam preglednic
TABELA 1: PODATKI MOTORJA ............................................................................................................... 5
TABELA 2: UKAZ ZA 1. BAJT .................................................................................................................. 7
TABELA 3: UKAZI ZA 2., 3., 4. BAJT ..................................................................................................... 7
TABELA 4: HITROST JE ODVISNA OD DOLŢINE VODNIKA ............................................................. 12
6.5 Naslov študenta
Ime in priimek: Boštjan Lorbek
Naslov: Turški Vrh 3
Pošta: 2283 Zavrč
Tel.študenta: 031-269-875
Elektronski naslov študenta: [email protected]
Vzpostavitev CAN-BUS komunikacije z LabVIEW Stran 39
6.6 Kratek življenjepis
Ime in priimek: Boštjan Lorbek
Rojen: 2. avgusta 1988
Osnovna šola: 1994-2003 OŠ Cirkulane – Zavrč
Srednja šola: 2003-2007 Srednja elektro šola Ptuj (ŠC Ptuj),
smer: Elektehnika; program: Elektrotehnik elektronik
Visoka šola: 2007-2010 FERI, Univerza Maribor, smer: Mehatronika UN