• No results found

Návrh a realizace precizního vícekanálového zařízení pro dynamická měření pomocí inkrementálních snímačů na platformě NI

N/A
N/A
Protected

Academic year: 2022

Share "Návrh a realizace precizního vícekanálového zařízení pro dynamická měření pomocí inkrementálních snímačů na platformě NI"

Copied!
55
0
0

Loading.... (view fulltext now)

Full text

(1)

Návrh a realizace precizního vícekanálového zařízení pro dynamická měření pomocí inkrementálních snímačů na platformě NI

Diplomová práce

Studijní program: N2612 – Elektrotechnika a informatika Studijní obor: 1802T007 – Informační technologie

Autor práce: Bc. Jan Brandt

Vedoucí práce: doc. Ing. Miroslav Svoboda

(2)

Design and realization of precise multichannel device for dynamic

measurement with incremental encoders on NI platform

Master thesis

Study programme: N2612 – Electrical engineering and informatics Study branch: 1802T007 – Information technologies

Author: Bc. Jan Brandt

Supervisor: doc. Ing. Miroslav Svoboda

(3)
(4)
(5)
(6)

Poděkování

Děkuji doc. Ing. Miroslavu Svobodovi za pomoc při vedení diplo- mové práce. Mé poděkování patři též Ing. Pavlovi Kloučkovi, PhD.

za konzultace, které vedli ke zlepšení práce.

(7)

Abstrakt

Diplomová práce se zaobírá návrhem a realizací metody měření ki- nematických veličin, úhel a rychlost, pomocí inkrementálních en- kodérů postavené na produktu firmy National Instruments. Měření kinematických veličin je stále aktuální téma a jeho integrace s pro- dukty fy NI umožňuje jeho využít i při měření v rámci měřících stolic. Cílem práce je vytvořit software, který je schopen pracovat s hardwarem fy NI a je schopen měřit kinematické veličiny po- mocí inkrementálních enkodérů. Kombinace hardwaru a softwaru by měla navazovat na dřívější přístroj firmy VÚTS pojmenovaný DMU. Jelikož existují enkodéry s různými typy výstupních sig- nálů, jako požadovaný typ signálu jsme zvolili signál kvadratický.

Nejdříve je probrána teorie týkající se kinematických veličin a exis- tujících metod měření včetně použité metody využívající inkremen- tální enkodéry. Následuje popis návrhu vytvořeného softwarového balíku a některé detaily jeho realizace. Součástí detailů realizace je i popis ukázkového software napsaného pomocí tohoto balíku. V po- slední části jsou ukázány některá základní typy měření a jejich vý- sledky vytvořené pomocí realizovaného softwaru. Pomocí produktů fy NI lze realizovat zmíněnou metodu měření a následně ji použít i v úkolu z praxe. Stejně jako u zařízení DMU i zde existují některé limity dané především fyzikálními zákony.

Klíčová slova: LabVIEW, inkrementální enkodér, kinematika, úhlová měření

(8)

Abstract

Master thesis deals with design and realization of method for me- asurement of kinematic quantities (angle and velocity) with incre- mental encoders. Products from company National Instrument are used for this method. Measurement of kinematic quantities is still current topic and integration with products from NI allows to use them for measurement in customer solutions (measurement stands).

The goal of thesis is to create software which is able to work with hardware products of NI. It should be able measure kinematic quan- tities with incremental encoders. This combination of software and hardware should follow up measurement device DMU that was de- veloped in company VÚTS. Only on type of incremental encoders is used in this thesis. This type has output in form of logical TTL sig- nal. First part of thesis contains theory about kinematic quantities and methods for measurement with incremental encoders. Next part has information about design of created software and some details of realization. As part of these details is description of application example created with software package of this thesis. In last part of thesis are showed exemplary types of measurement with created application example. It is possible to realize mentioned method of measurement with products from company National Instruments and use it in practical situations. There are physical limits for this implementation as were in case of DMU.

Keywords: LabVIEW, incremental encoder, kinematics, angular measurement

(9)

Obsah

1 Úvod 14

2 Měření kinematických veličin 16

2.1 Kinematika . . . 16

2.2 Klasické přístupy k měření úhlových veličin . . . 17

2.3 Měření kinematických veličin pomocí inkrementálních snímačů . . . . 18

2.3.1 Úhel . . . 19

2.3.2 Úhlová rychlost . . . 19

2.3.3 Úhlové zrychlení . . . 20

3 Popis hardwaru a softwaru 21 3.1 DMU . . . 21

3.1.1 Historie . . . 21

3.2 Produkty NI. . . 22

3.2.1 Hardware . . . 22

3.2.2 Software . . . 23

4 Návrh softwaru 25 4.1 Knihovna DMU FPGA . . . 26

4.2 Knihovna DMU Host . . . 28

4.2.1 Třída DMU . . . 28

4.3 Komunikace mezi FPGA a hostitelem . . . 29

4.4 Komunikace mezi hostitelem a vzdáleným Windows klientem . . . 30

(10)

5 Realizace 34

5.1 Popis knihovny DMU FPGA . . . 34

5.1.1 Identifikace hran a určení směru . . . 34

5.1.2 Výpočet úhlu a rychlosti . . . 36

5.1.3 Odesílání dat hostiteli . . . 37

5.1.4 Příkazy od hostitele . . . 37

5.2 Popis knihovny DMU Host . . . 38

5.2.1 Popis třídy DMU . . . 39

5.2.2 Třída Communication . . . 40

5.3 Vzdálený Windows klient . . . 40

5.4 Příklad použití knihovny . . . 41

6 Ověření zařízení měřením 44 6.1 Měření kývavého pohybu . . . 44

6.2 Měření pružné hřídele . . . 47

7 Závěr 51

Přílohy 54

A Obsah přiloženého CD 54

(11)

Seznam obrázků

3.1 LV kód Z pulsu . . . 24

3.2 Blokové schéma VI pro detekci Z pulsu . . . 24

4.1 Vyobrazení předpokládaného využití jednotlivých části a komunikace mezi nimi v případě použití Compact RIO . . . 26

4.2 Diagram znázorňující základní princip FPGA knihovny . . . 27

4.3 UML diagram třídy DMU . . . 29

4.4 Podoba paketu pro komunikaci z FPGA . . . 30

4.5 Podoba bajtu pro status kanálu . . . 30

4.6 Podoba bajtu pro status kanálu . . . 31

4.7 Podoba paketu od hostitele do FPGA . . . 31

4.8 Podoba paketu od hostitele ke Windows klientu . . . 31

4.9 Podoba paketu od hostitele ke Windows klientu . . . 32

4.10 Podoba datové struktury od hostitele ke Windows klientu . . . 32

4.11 Diagram třídy Communication . . . 33

4.12 Diagram třídy DMU Remote . . . 33

4.13 Podoba struktury nastavení kanálu od hostitele ke Windows klientu, viz 5.6 . . . 33

5.1 Blokové schéma detekce změn hran a jejich vyhodnocení . . . 35

5.2 Blokové schéma detekce K pulsu. . . 35

5.3 Obsah datového typu Encoder Change . . . 36 5.4 Blokové schéma VI Process Angle v případě nulování podle Z pulsu . 37

(12)

5.5 Blokové schéma VI Process Angle v případě nulování podle počtu

pulsů enkodéru . . . 38

5.6 Datový typ pro nastavení kanálu v rámci třídy DMU . . . 42

5.7 Blokový diagram VI Send config to FPGA . . . 43

5.8 Datový typ DMU FPGA Values . . . 43

6.1 Compact RIO NI 9034 s dvěma moduly NI 9402 . . . 44

6.2 Kyvadlo s enkodérem určené k testovacímu měření kývavého pohybu 45 6.3 Měřený motor se silikonovou hadičkou a připojenými enkodéry . . . . 48

(13)

Seznam grafů

6.1 Výsledek měření kyvadla při vzorkovací rychlosti 10kHz . . . 46

6.2 Detail z měření kyvadla při vzorkovací rychlosti 10kHz . . . 46

6.3 Výsledek měření kyvadla při úhlovém vzorkování. . . 47

6.4 Detail z měření kyvadla při úhlovém vzorkování . . . 47

6.5 Několik počátečních otáček kanálu 1 při nízké rychlosti . . . 49

6.6 Průběh rychlosti během celého experimentu . . . 49

6.7 Průběh rozdílu úhlu a rychlosti během experimentu . . . 50

6.8 Průběh rychlosti při zastavení motoru . . . 50

(14)

Seznam zkratek

DMU Dynamická Měření Úhlová, zařízení pro měření pomocí inkrementálních snímačů a úhlových veličin

PCI Peripheral Component Interconnect, počítačová sběrnice

VI Visual Instrument, soubor zdrojového kódu pro grafický jazyk LabVIEW NI National Instruments, výrobce hardwaru a softwaru pro sběr a vyhodno-

cování dat i v průmyslových prostředích

FPGA Field Programmable Gate Array, programovatelné hradlové pole ARM Advanced RISC Machine, architektura procesorů

DMA Direct Memory Access, paměť s přímým přístupem

RTOS Realtime Operating System, operační systém reálného času RIO Reconfigurable Input/Output, konfigurovatelné vstupy/výstupy

TCP/IP Transmission Control Protocol/Internet Protocol, sada protokolů pro bezztrátový přenos dat (TCP) přes síťovou vrstvu (IP)

(15)

1 Úvod

Měření úhlových kinematických veličin patří mezi zásadní druhy měření, která jsou potřebná pro pochopení a analýzu funkce reálných točivých strojů. Takovéto stroje mohou vykazovat celou řadu problémů, které mohou být způsobeny právě neočeká- vaným průběhem otáčení hřídele. Tyto problémy pak mohou způsobovat sníženou životnost, vysokou hlučnost anebo rušivé vibrace. Abychom odhalili příčinu těchto problémů a případně mohli navrhnout i řešení jejich odstranění, je potřeba nejdříve zjistit skutečný průběh otáčení a odhalit tak případné odchylky od průběhu očeká- vaného.

Pro tento druh měření se v rámci VÚTS a.s. dlouhodobě využíval přístroj DMU, který s pomocí inkrementálních enkodérů byl schopen měřit úhlové kinematické veličiny. Díky dobrým zkušenostem s tímto přístrojem v několika jeho vyvinutých generacích (verzích) došlo k rozhodnutí, že by bylo vhodné vytvořit další variantu, která by byla schopna pracovat v rámci ekosystému firmy National Instruments.

Produkty fy NI se v rámci VÚTS používají řadu let a během této doby se postupně vracel nápad spojit kvalitní hardware a software od fy NI s metodikou vyvinutou a vylepšovanou v rámci VÚTS.

Metoda měření pomocí DMU a její principy byly dobře popsána v dizertační práci [1]. Cílem práce bylo především představení metodiky a jejich návaznost na dřívější metody měření, které ovšem využívaly časově závislé metody, což v někte- rých případech nebylo vhodné řešení. Též nebylo v [1] opomenuto zpracování takto měřených signálů pomocí Fourierovy transformace.

Cílem mé práce je tedy seznámit se s touto metodikou a následně navrhnout a vytvořit řešení, se kterým lze realizovat přesná dynamická měření úhlových veličin

(16)

pomocí inkrementálních enkodérů s logickým TTL výstupem a které je zcela po- stavené na produktech firmy National Instruments (NI). Nejdříve se budu zabývat teoretickým základem používané metody měření a krátkým seznámením s produkty fy NI, které by pro uvažovanou úlohu mohly být využitelné. Následuje popis návrhu řešení a navazuje na něj popis samotné realizace navrženého řešení.

(17)

2 Měření kinematických veličin

2.1 Kinematika

Kinematika je dle [2] definována jako součást mechaniky, která se zabývá pohybem útvarů. Mezi tyto útvary jsou řazeny body, tělesa a jejich soustavy, tj. mechanismy a stroje. Pohyb je vyšetřován bez ohledu na hmotnost a síly, které pohyb zapří- činily. Kinematika se věnuje nejjednodušší formě pohybu, mechanickému pohybu v prostoru a čase. Mluvíme-li o pohybu v rámci kinematiky, máme na mysli změnu polohy v závislosti na čase vůči jinému tělesu. Základními veličinami v kinematice jsou trajektorie, rychlost a zrychlení.

Trajektorie představuje spojitou křivku, kterou opisuje pohybující se bod ve zvo- leném prostoru. Tato křivka může být buď přímka a mluvíme o pohybu přímočarém, nebo se jedná o křivku a mluvíme tedy o pohybu křivočarém. Speciálními případy jsou pak pohyb po kružnici, šroubovici, apod. Dráhu chápeme jako vzdálenost ura- ženou po trajektorii.

Střední rychlost je podíl změny dráhy za přírůstek času

vs = ∆r

∆t (2.1)

Pokud mluvíme o okamžité rychlosti (označujeme v) předpokládáme limitu to- hoto podílu pro ∆t → 0. Poměr přírůstku rychlosti a přírůstku času je definován jako střední zrychlení

as = ∆v

∆t (2.2)

Chceme-li získat okamžité zrychlení, pak platí stejná pravidla jako v případě okamžité rychlosti. Okamžité zrychlení odpovídá limitě podílu středního zrychlení

(18)

pro ∆t → 0.

V případě pohybu po kružnici se bavíme o úhlových veličinách. Dráhu nazý- váme úhel. Ekvivalentem rychlosti a zrychlení jsou termíny úhlová rychlost a úhlové zrychlení.

2.2 Klasické přístupy k měření úhlových veličin

Význam analýzy mechanismů a strojů poháněných rotující hřídelí je značný. Proto byly vyvinuty metody pro měření a vyhodnocení dějů probíhajících na rotujících hřídelích. Tyto metody staví především na běžně používaném časově rovnoměrném vzorkování a jsou shrnovány pod pojmem řádová analýza (angl. Order-Analysis).

Aktuální periodu jedné otáčky referenční hřídele (periodu první harmonické složky) nazýváme řádem. Seznámení se základními přístupy lze nalézt třeba v [3]. Pakliže sbíráme data s fixní vzorkovací frekvencí a vyhodnocení probíhá přímo s klasickou frekvenční analýzou s jednotkami nezávislé proměnné v Hz, objevují se obtíže se sledováním harmonické složky. To je způsobeno vlivem kolísání nebo trendu střední úhlové rychlosti, což má za následek změnu pozice harmonické složky ve spektru.

Střední průběh a jiné funkční statistiky lze velmi obtížně určit vzhledem k tomu, že periody mohou mít jiný počet vzorků, přestože je rozdíl třeba malý.

Pro redukci těchto obtíží se úspěšně používá metoda synchronní vzorkovací frek- vence (též označované jako souběhová filtrace, angl. Order-tracking analysis). Ta využívá tzv. tacho signál, což je pomocný údaj nesoucí pulsní složku ve zvolených úhlových pozicích, nejčastěji jednou za otáčku. Naměřená data se následně v post- processingu nebo i v reálném čase přefiltrují. Ještě se pomocí interpolace převzorkují tak, aby mezi pulsy tacho signálu byl stejný počet vzorků. To vede k tomu, že v da- tech získaných touto metodou se sledovaná harmonická složka nachází vždy na stejné pozici. Jako nezávislou proměnnou bereme řád a odpovídající spektrum se nazývá řádové spektrum. Řádové spektrum je pojem v případě využití jednoho tacho sig- nálu pouze přibližný. Důvodem je, že nezachycuje plně průběh úhlové rychlosti mezi tacho pulsy. Místo toho pracuje se střední hodnotou úhlové rychlosti mezi tacho

(19)

pulsy.

Dalším metodou zpracování je tzv. Vold-Kalmanova filtrace, kterou předložil Vold, viz [4]. Stále využívá data nasbíraná s časovou základnou spolu s tacho sig- nálem. Důležitým aspektem, na který se dbá, je spojitost úhlové rychlosti pomocí splinové interpolace v bodech jednotlivých tacho pulsů. Cílem této filtrace je po- skytnutí časových průběhů vybraných harmonických složek. Opět se využívá pouze jeden tacho puls a tak není možné zjišťovat kolísání úhlové rychlosti během jednoho cyklu stroje.

2.3 Měření kinematických veličin pomocí inkremen- tálních snímačů

Popisovaná metoda využívá inkrementálních rotačních snímačů, někdy nazývaných také enkodéry. Kromě inkrementálních rotačních enkodérů se můžeme setkat i s en- kodéry lineárními. Tyto se od dříve zmíněných enkodérů odlišují především tím, že nejsou omezeny na kruhový pohyb a není u nich tedy měřen úhel a odvozené veličiny. U takovýchto enkodérů jsou měřeny veličiny vzdálenostní. Enkodéry vy- tváří obdélníkové či sinusové signály, jenž mají v případě inkrementálních rotačních enkodérů zvolené úhlové rozlišení a v případě inkrementálních lineárních enkodérů vzdálenostní rozlišení. Pro standardní průmyslově vyráběné enkodéry se rozdíl úh- lových intervalů mezi jednotlivými pulsy neliší o více než 0,1% [1]. Uvažíme-li, že okamžitou úhlovou rychlost získáme jako převrácenou hodnotu délky časového inter- valu mezi pulsy, tak ze zmíněného nízkého rozdílu dosáhneme při měření okamžité úhlové rychlosti velmi vysoké přesnosti. Ze stejného důvodu je i úhlová vzorkovací základna velmi stabilní a přesná.

Enkodéry obvykle generují 3 signály. Nulový signál, nejčastěji označovaný jako K nebo Z (v této práci budu používat označení Z), slouží jako referenční bod a generuje se jednou za otáčku. Generování neprobíhá vždy synchronně s ostatními dvěma signály. Zbývající dva signály, v této práci označované jako A a B, určují úhlové rozlišení. Mají stejnou podobu, ale jsou navzájem fázově posunuté o jednu

(20)

Obrázek 2.1: Generované pulsy od enkodéru s obdelníkovým výstupem [1, s. 17]

čtvrtinu periody. Tohoto se následně využívá k tomu, aby se dal určit směr otáčení enkodéru. Jednou z hlavních charakteristik enkodéru je počet period p (počet pulsů signálů A a B na jednu otáčku). Na trhu se lze běžně setkat s enkodéry s počtem pulsů od 60 do 90000 na otáčku.

2.3.1 Úhel

Měření úhlu probíhá jako prosté čítání hran obou signálů A a B se zohledněním smyslu otáčení (úhel roste/klesá). Díky tomu dosahujeme rozlišení až čtyřikrát vyšší než je počet pulsů enkodéru. Další variantou měření úhlu je diferenciální měření mezi dvěma připojenými snímači. Pokud se použijí snímače s rozdílným počtem pulsů na otáčku, tak se dá využít možnosti použít racionální převodový poměr z1/z2. Díky použití FPGA a jeho vysokému bitovému rozlišení výpočtů lze dosáhnout velmi přesných měření. Příkladem může být měření torzních kmitů, plížení plochých či klínových řemenů, vibrace převodů s ozubenými řemeny či vliv poškození ozubených kol.

2.3.2 Úhlová rychlost

Díky vysoké přesnosti enkodéru a rychlosti FPGA lze dosáhnout vysoké přesnosti v závislosti na rychlost FPGA. Například při rychlosti FPGA 100MHz dostaneme

(21)

vypočteme jako převrácenou hodnotu z periody ∆t

ω(ϕ) .

= ∆t

∆t(ϕ) = 60iω p

1

t(ϕ) − t(ϕ − ∆ϕ)[RP M ] (2.3) kde ∆ϕ označuje úhlový interval, přes který je měřen čas. Pomocí počtu pulsů snímače na otáčku p a údaje iω představující počet pulsů snímače, přes který se má měřit čas ∆t. Hodnota ∆t je čas potřebný k otočení hřídele snímače z úhlové pozice ϕ−∆ϕ do pozice ϕ. Pro parametr iωse používají násobky 14, nejčastěji celočí- selné, případně 12 nebo 14. Výsledná hodnota úhlové rychlosti ω ovšem ve skutečnosti nepředstavuje okamžitou úhlovou rychlost, ale střední hodnotu úhlové rychlosti za časový interval ∆t.

2.3.3 Úhlové zrychlení

Další veličinou je „okamžitá“ hodnota úhlového zrychlení. Stejně jako v případě výpočtu úhlové rychlosti se také nejedná o skutečné úhlové zrychlení, ale pouze o střední hodnotu úhlového zrychlení přes určený počet pulsů enkodéru. Vzhledem k vysoké citlivosti na šum je vhodné měřit čas přes větší počet pulsů enkodéru oproti úhlové rychlosti, proto je i časové zpoždění nutné k výpočtu obvykle významnější než u úhlové rychlosti. V závislosti na velikosti úhlové rychlosti se toto zpoždění projevuje s různou mírou. Pakliže je úhlová rychlost nízká, tak je zpoždění větší než v případě vysoké úhlové rychlosti. Navržená metoda tak spíše přináší údaj orientační, který se dá využít pro získání základní představy o měřeném systému. Pomocí deri- vace kvalitně změřené úhlové rychlosti lze získat v postprocessingu podstatně lepší odhad průběhu úhlového zrychlení.

(22)

3 Popis hardwaru a softwaru

3.1 DMU

Přístroj DMU slouží k měření základních úhlových veličin (úhel, úhlová rychlost a úhlové zrychlení) pomocí inkrementálních snímačů. Poslední verze DMU v podobě PCI karty obsahuje 100MHz FPGA a 24 bitové čítače. Dokáže zpracovávat signály až ze 4 enkodérů.

3.1.1 Historie

Vývoj první verze DMU probíhal na počátku 80tých let za účelem měření úhlových rychlostí. První verze sloužila k zápisu digitálních dat, tj. signálů z inkrementálních snímačů, na analogovou magnetickou pásku. Používaný magnetofon měl 8 kanálů.

Pro záznam digitálních dat se využívaly 1 nebo 2 kanály. Z této magnetické pásky se následně pomocí digitálního voltmetru převedl signál udávající čas mezi impulsy do PC. V PC se následně provedl výpočet úhlové rychlosti. Toto nebylo dostaču- jící. Proto se v následujících verzích provedla změna, a výpočet úhlové rychlosti se prováděl přímo v přístroji DMU. Dále se zvyšovala přesnost měření.

Ze začátku se používal pouze 10MHz procesor. DMU verze 3 už bylo samostatné zařízení, které měří, vypočítává úhlové veličiny a generuje úhlovou vzorkovací zá- kladnu pro další zařízení. Výpočty úhlových veličin probíhaly na programovatelném poli hradlových obvodů, které pracovalo na frekvenci 100MHz. DMU-3 bylo schopno zpracovávat signály ze dvou inkrementálních snímačů současně.

Čtvrtá verze DMU obsahovala drobná vylepšení hardwaru a výpočtů úhlových

(23)

DMU tak dostalo podobu karty pro sběrnici PCI, na které byly všechny důležité obvody, zejména čítače a FPGA. Zároveň došlo k rozšíření počtu měřících kanálů na čtyři.

Už delší dobu bylo zvažováno řešení, které by se dalo snáze integrovat jako součást průmyslového produktu. Vzhledem k využívání FPGA a k dlouhodobé spokojenosti s produkty firmy National Instruments bylo rozhodnuto, že se pro realizaci takového řešení využijí právě technologie fy NI.

3.2 Produkty NI

3.2.1 Hardware

Portfolio hardwaru firmy National Instruments je široké a obsahuje celou řadu pří- strojů s různým zaměřením. Tato se práce se bude zabývat pouze těmi přístroji, které jsou vhodné k integraci nebo samostatnému využití a umožňují využít FPGA.

Mezi takové patří Compact RIO, Single-board RIO a PXI.

Compact RIO [5], též označované zkratkou cRIO, představuje kompaktní prů- myslové řešení obsahující ARM nebo x86 procesor a programovatelné hradlové pole.

Základem cRIO je šasi, do kterého se mohou vkládat potřebné moduly. Moduly mohou obsahovat digitální a analogové vstupy/výstupy, konektory pro různé druhy sběrnic (především průmyslové a automobilové) nebo jiné typy vstupů/výstupů. Na této platformě běží NI Realtime OS (NI RTOS), systém reálného času na bázi Li- nuxu.

Single-board RIO, též označované jako sbRIO, se velmi podobá cRIO, ale má podobu samostatné desky. Společné pro cRIO i sbRIO jsou ARM procesor, progra- movatelné hradlové pole a použití NI RTOS. V závislosti na požadavcích lze vybrat z několika typů desek s různými typy vstupů/výstupů (digitální nebo digitální a analogové), přičemž jednou z možných variant je System on Module, zkráceně SoM.

SoM je ucelený systém velikosti kreditní karty a podporuje celou řadu sběrnic, na- mátkou Ethernet, RS485 a CAN. Zároveň umožňuje pracovat s SDHC kartami a

(24)

používat je tak například pro logování nebo ukládání dat. Kromě SoM mohou desky využít i možnosti použití cRIO modulů, ale počet najednou použitelných modulů je nižší, maximálně 2, oproti cRIO šasi.

Poslední možnou platformou je PXI [6]. PXI je založeno na platformě PC a kom- binuje sběrnici PCI nebo PCI express s modulárními CompactPCI kartami velikosti kreditní karty a k tomu přidává speciální sběrnici pro synchronizaci. Nabídka ka- ret je široká a poskytuje dostatek možností pro vývoj. Šasi jako takové neobsahuje FPGA, ale je možné ho získat pomocí PXI(e) karty. Pro PXI lze použít jako ope- rační systém Windows nebo NI RTOS. Ve spojitosti s FPGA se jeví NI RTOS jako vhodnější.

3.2.2 Software

Základním softwarem od firmy National Instruments je LabVIEW. LabVIEW je vývojové prostředí pro programovací jazyk G. Jazyk G je vizuální jazyk a oproti textovým jazykům slibuje větší přehlednost a snazší převod algoritmů do skutečného kódu. Základem pro to je tzv. dataflow programování, kde se zabýváme tím, jak plynou data v algoritmu a jak se postupně mění jejich podoba. Konečným stupněm pak může být jejich ukládání a/nebo zobrazení. Výhodou LabVIEW je také integrace pro práci s hardwarem od stejného výrobce. LabVIEW jako takové je rozděleno na celou řadu modulů, nás především zajímají 3 moduly, základní, RT a FPGA.

Kód v LabVIEW je rozdělen do vizuálních přístrojů (angl. visual instrument, zkráceně VI). VI představuje program a jako pojem pro podprogram se používá SubVI. Soubory s VI obsahují dva zásadní typy informací a to o uživatelské části VI, tzv. front panel, (příklad na obrázku3.1) a příslušného kódu v podobě blokového schématu jazyka G (příklad na obrázku3.2). Nejedná se tak o textové soubory, ale o soubory binární, což přináší nesnáze při používání se systémy pro správu verzí, např. GIT nebo SVN.

(25)

Obrázek 3.1: Front panel VI pro detekci Z pulsu

Obrázek 3.2: Blokové schéma VI pro detekci Z pulsu

(26)

4 Návrh softwaru

Vzhledem k požadavku na vícekanálové měření bylo potřeba postupovat při návrhu s touto myšlenkou a vytvářet návrh softwarového balíku tak, aby bylo možné přidá- vat další kanály. To se projevilo jako velmi problematické zejména v části pro FPGA, kde není možné snadno využít některé aspekty běžného programování v LabVIEW a zejména objektového programování, viz kapitola 4.1.

Základním předpokladem při návrhu je, že hlavní důraz bude kladen na využití RTOS a FPGA. V rámci LabVIEW je RTOS vnímán jako hostitel, angl. host. Toto označení bude použito v dalším textu, abych zachoval terminologii používanou NI.

Druhou možností je pak využít jako hostitele Windows OS na platformě PXI s FPGA kartou.

Pro použití navrhovaného kódu je nutné nejdříve vytvořit kód pro FPGA za pomocí vytvořených bloků z FPGA knihovny a až následně lze vytvořit spolupra- cující kód na hostitelském systému. Důvodem je zejména nutnost různých nastavení potřebných pro chod FPGA kódu. Mezi takové patří zejména určení vstupních ka- nálů pro signály enkóderů, výstupních signálů pro distribuci měřicí báze (časové nebo úhlové) či vyžadované DMA (Direct Memory Access) paměti pro umožnění komunikace mezi FPGA a hostitelem.

Jednotlivé části aplikace, FPGA, hostitel a Windows, byly rozděleny do samo- statných knihoven. Jádro každé knihovny se odlišuje dle určité části a řídí se přede- vším specifiky jednotlivých vrstev.

(27)

Obrázek 4.1: Vyobrazení předpokládaného využití jednotlivých části a komunikace mezi nimi v případě použití Compact RIO

4.1 Knihovna DMU FPGA

Při návrhu FPGA kódu bylo nejdříve nutné si uvědomit, co vše lze z programo- vých prostředků využít a které techniky nejsou pro vývoj vhodné. Na FPGA nelze, z důvodu jasného vymezení množství vynaložených prostředků na kód, používat dynamická pole. Nejdříve byl uvažován nápad využít pro FPGA kód objektové pro- gramování (OOP) pro zajištění jisté úrovně dynamičnosti. Po několika pokusech, kdy se projevilo zásadní omezení, byla tato varianta zavržena. Zmíněné omezení se týkalo obsahu klastrů, kde se nemohly kombinovat jmenné reference pro hardwarové vstupy-výstupy a hodnotové reference jednoduchých datových typů. Toto omezení eliminuje použití obou typů referencí v privátním klastru třídy a eliminuje výhody OOP.

Z výše uvedených důvodů bylo rozhodnuto využít pro LabVIEW tradičnější strukturu, která bere v potaz specifika FPGA v mnohem větší míře. Hlavním aspek- tem pro FPGA je možnost snadné paralelizace, což se dá využít rozdělením kódu na několik samostatně běžících celků, které spolu navzájem komunikují a sdílejí si data, viz obrázek4.2.

(28)

Obrázek 4.2: Diagram znázorňující základní princip FPGA knihovny

Na obrázku 4.2 lze vidět, že jednotlivé části, samostatně běžící, spolu většinou komunikuji přes různé prostředky (registry, paměti, fronty FIFO). Pro představu o nich následuje popis jejich využití v rámci FPGA kódu:

Registr použit pro udržení celkového (globálního) stavu FPGA kódu

Paměti použity pro komunikaci mezi jednotlivými částmi kódu, kdy není potřeba tok dat, ale pouze aktuální hodnota

Fronty typu FIFO použity pro tok dat, zejména mezi FPGA a hostitelem, ale též při sběru neupravených dat z enkodérů a jejich distribuci k hlavní části FPGA kódu

Pro udržení celkového stavu FPGA kódu byl použit registr, který na rozdíl od blokové paměti umožňuje čtení ve více časových doménách. To umožňuje jednotlivé části FPGA kódu nechat běžet v různých časových doménách ale v případě potřeby je možné je zastavit z jiné časové domény. Do blokové paměti a registru lze zapisovat pouze v jedné části kódu [7]. Zapsání do tohoto registru probíhá na začátku spuštění kódu za účelem nastavení na výchozí hodnotu a následně pak ke změně může dojít pouze v ovládací smyčce, která se nachází ve VI DMU FPGA Control.

Paměti využívají různé implementace v závislosti na jejich využití. Pro paměti

(29)

hradlového pole, ale je umístěna v pro FPGA dostupné RAM. Nevýhodou blokové paměti oproti LUT je možné zpoždění, takže nemusíme dostat data ve stejném cyklu, kdy o ně žádáme.

Fronty FIFO jsou využívány pro přenos informací od sběru dat z enkodérů. Tyto fronty využívají implementaci pomocí blokové paměti kvůli možnosti využití mezi více časovými doménami.

Velmi důležitým aspektem při návrhu FPGA je rychlost výsledného kódu a možná maximální frekvence tohoto kódu. Základní frekvence u FPGA dodávaných NI je 40MHz. Tato frekvence ale nemusí odpovídat našim požadavkům a tak je během realizace nutné zapracovat i na možnosti použití násobku této frekvence.

Hlavním cílem při realizaci tedy bude dostat se, co nejblíže hodnotě 100MHz pou- žité u FPGA v rámci poslední verze DMU. Jako kýžená frekvence se jeví 80MHz nebo 120MHz. Pakliže bychom dosáhli frekvence 120MHz, tak bychom si zajistili rozlišení mezi hranami cca 8,3 ns. Získali bychom ještě vyšší rozlišení, než poslední verzi DMU.

4.2 Knihovna DMU Host

Jádrem knihovny DMU Host je třída DMU, která obsahuje naprostou většinu kódu.

Tento kód obsahuje také funkce potřebné pro spolupráci s částmi, které jsou do- stupné na FPGA.

4.2.1 Třída DMU

Stejně jako v běžném OOP i v LabVIEW se definují atributy a metody. LabVIEW atributy schovává v rámci klastru pro privátní data. Nejvhodnější přístup tak je k těmto datům přistupovat skrze odpovídající metody. Třída obsahuje celou řadu typů metod, např. metody obsluhující FPGA, metody převodu hodnot z FPGA na hodnoty odpovídajících veličin a metody umožňující posílání informací vzdálenému klientu (Windows GUI). Seznam atributů a metod třídy lze dobře vidět z UML diagramu na obrázku4.3.

(30)

Obrázek 4.3: UML diagram třídy DMU

4.3 Komunikace mezi FPGA a hostitelem

Pro komunikaci mezi FPGA a hostitelem (RT/Win systém) bylo nutné vytvořit protokol, který by snadno umožňoval přenos dat mezi těmito částmi. Vzhledem k vlastnostem přenosu dat mezi FPGA a hostitelem v LabVIEW (využití DMA pamětí) se komunikace rozdělila na samostatné směry přenosu zvlášť, tj. od FPGA k hostiteli a od hostitele k FPGA. V obou případech byl využit jednoduchý protokol s možností dalšího rozšíření.

Pro přenos od FPGA k hostiteli byl použit systém, kdy se do DMA paměti odesílá pětice hodnot neznaménkového 32bitového celého čísla (datový typ U32).

Každý kanál odesílá tuto pětici v podobě zobrazené na 4.4.

První U32 obsahuje dva speciální bajty, status měření a status kanálu. Status ka- nálu slouží k informování hostitele o stavu a některých informacích o daném kanálu, viz obrázek4.5.

Status měření slouží k informování hostitele o stavu FPGA vrstvy, viz obrázek 4.6.

(31)

0 15 16 23 24 31

Rezervované Status měření Status kanálu

Úhel Rychlost

Obrázek 4.4: Podoba paketu pro komunikaci z FPGA

0 1 2 3 4 5 6 7

kanáluSměr Číslo kanálu Hodnota

Z Rezervováno

Obrázek 4.5: Podoba bajtu pro status kanálu

Význam bitů v Obrázku 4.6:

DAQ_EN Sběr dat je povolen

TMB Zvolená vzorkovací základna (úhlová=0, časová=1)

DAQ_TO Došlo k vypršení času čekaní při vkládání do FIFO určené pro sběr dat DAQ_RUN Informace o opuštění prvního cyklu VI DAQ + TMB Generation

Hostitel posílá pomocí DMA fronty data ve formě U32 hodnoty. Tato hodnota je složena ze tří částí zobrazených na obrázku4.7. Command představuje příkaz pro FPGA. Význam ID a Parameter se může lišit v závislosti na příkazu.

4.4 Komunikace mezi hostitelem a vzdáleným Win- dows klientem

Během kladení požadavků na tuto část bylo nutné si uvědomit, zda klient bude napsán též v LabVIEW nebo tu bude možnost klienta napsaného v jiném jazyce, např. C++ nebo Delphi. Pro zajištění co nejširšího možného využití bylo rozhodnuto pracovat s druhou variantou.

Pro komunikaci směrem od hostitele k Windows klientu lze využít dvě mož- nosti, Network Streams a TCP/IP. Network Streams jsou doporučený prostředek

(32)

0 1 2 3 4 5 6 7

DAQ_EN TMB DAQ_TO DAQ_RUN Rezervováno

Obrázek 4.6: Podoba bajtu pro status kanálu

0 7 8 15 16 23 24 31

Command ID Parameter

Obrázek 4.7: Podoba paketu od hostitele do FPGA

pro odesílání a příjem dat ve vysokých rychlostech. Druhá možnost, TCP/IP, je pro případ, kdy se zjistí, že Network Streams neposkytují dostatečnou propustnost a je vyžadována velmi vysoká rychlost přenosu nebo v případě využití klienta napsa- ného v jiném jazyce než LabVIEW. Pro tuto část byla zvolena struktura odesílaných dat taková, aby byla snadno převeditelná do podoby, které rozumí většina jazyků a kterou je LabVIEW schopno odesílat.

Pro komunikaci od Windows klienta k hostiteli existuje opět několik variant, TCP/IP, sdílené síťové proměnné a webová služba. Pro snazší integraci nejen s klien- tem napsaným v odlišeném jazyce byla zvolena varianta s využitím TCP/IP. Pokud by byl klient napsán v LabVIEW je tu možnost použití i síťových proměnných.

Jelikož budeme komunikovat obousměrně, zadávat příkazy od klienta a posílat data od hostitele, je potřeba vytvořit dvě nezávislé struktury. Pro příkazy se pou- žívá zpráva o pevně dané velikosti (100 bajtový paket), viz 4.8. První bajt paketu udává o jaký typ příkazu se jedná, Command nebo Settings. Zbytek obsahu paketu je závislý na typu. V případě nastavení se jedná především o informaci jaký typ nastavení se mění a s tím souvisejících dat.

0 7 8 15 16 23 24 31

Typ příkazu Podtyp příkazu Začátek dat příkazu

❤❤❤❤❤❤❤❤❤

❤❤❤❤❤❤

❤❤❤❤❤❤❤❤❤

❤❤❤❤❤❤

❤❤❤❤❤❤❤❤

Konec dat příkazu

Obrázek 4.8: Podoba paketu od hostitele ke Windows klientu

(33)

Data se mohou odesílat po větších celcích, proto se v prvních 4 bajtech nachází informace o počtu naměřených hodnot. Díky tomu klient ví, kolik naměřených hod- not má čekat a kdy se má znovu dotázat na počet odeslaných hodnot, viz obrázek 4.9.

0 7 8 15 16 23 24 31

Počet poslaných datových bloků

Velikost bloku

datového struktury Začátek datových struktur

❤❤❤❤❤❤❤❤❤

❤❤❤❤❤❤

❤❤❤❤❤❤

❤❤❤❤❤❤

❤❤❤❤❤❤

❤❤❤❤❤

Konec datových struktur

Obrázek 4.9: Podoba paketu od hostitele ke Windows klientu

Hodnoty jsou v podobě krátkého paketu složeného ze základních informací do- stupných o vypočtených hodnotách, viz obrázek4.10.

0 7 8 15 16 23 24 31

Číslo kanálu Směr pohybu DAQ povoleno Časová základna Timeout DAQ

FIFO První iterace posílání

dat proběhla Úhel Rychlost Hodnota Z

Obrázek 4.10: Podoba datové struktury od hostitele ke Windows klientu

Pro komunikaci na straně hostitele se využívá třída Communication, viz obrázek 4.11, a na straně klienta se využívá možností třídy DMU Remote, viz obrázek4.12.

Na obrázku4.13 lze vidět podobu dat příkazu pro nastavení kanálu.

(34)

Obrázek 4.11: Diagram třídy Communication

Obrázek 4.12: Diagram třídy DMU Remote

0 7 8 15 16 23 24 31

Kanál povolen Povolena asociace Asociovaný sousedníkanál Typ úhlové hodnoty Počet pulsů enkodéru za otáčku Decimace úhlové základny

Směr Typ nulování Měřit úhel přes n-pulsů Pohyblivý průměr

přes n-hodnot Počet čítačů Měřit průměrnou rychlost přes k otáček Typ průměrné

rychlosti Měřit zrychlení přes n-pulsů

Obrázek 4.13: Podoba struktury nastavení kanálu od hostitele ke Windows klientu, viz5.6

(35)

5 Realizace

Předchozí kapitola byla zaměřena především na návrh aplikace, který se v průběhu vývoje měnil v důsledku slepých větví vývoje, problémů s výkonem nebo zvolenou filozofií kódu. Též se zaobírala více komunikací mezi jednotlivými částmi, než výsled- nou podobou struktury kódu. Tato kapitola se oproti tomu zaměřuje na konkrétnější výsledky v podobě ukázek zásadních částí kódu. Rozdělena je opět do tří hlavních částí, FPGA, hostitele a vzdáleného klienta.

5.1 Popis knihovny DMU FPGA

Knihovna DMU FPGA sestává z velkého množství VI, ze kterých lze podle potřeb vytvořit kód, který dokáže detekovat hrany, provádět výpočty kinematických veličin, odesílat data a přijímat a předávat příkazy od hostitele. V této podkapitole budou představeny ty zásadní.

5.1.1 Identifikace hran a určení směru

Pro identifikaci hran signálů A a B slouží VI PreProcess Encoder Signal (obrázek 5.1). VI zároveň vyhodnocuje, zda se jedná o impuls. Impulsem je myšlena detekce změny hrany na jednom ze signálů. Impulsem je myšleno objevení se změny hrany na jednom ze signálů. V případě, že by došlo k situaci, kdy se objeví hrany na obou signálech zároveň, předpokládáme chybu. Určení směru je závislé na hraně, která byla detekována.

Z obrázku 5.1 je vidět, že pokud dostaneme hranu na signálu A budeme pro- vádět XNOR mezi aktuálními hodnotami na signálech A a B a v případě, že se

(36)

Obrázek 5.1: Blokové schéma detekce změn hran a jejich vyhodnocení

hrana neobjevila na signálu A ale B, provede se XOR mezi těmito signály. Tím si zjistíme jakým směrem se pohybujeme, buď tedy dostaneme 0 nebo 1 v závislosti zda postupujeme ve směru nebo proti směru hodinových ručiček.

Pro detekci Z pulsu se používá podobný princip, jenž je k nalezení ve VI Pre- Process K Pulse Signal Edges, viz obrázek5.2. Vzhledem k tomu, že se jedná pouze o jeden signál, tak je jeho kód, viz obrázek, podstatně jednodušší a neřeší se směr pohybu. V rámci VI se detekuje náběžná hrana signálu Z a v případě detekce se provede negace hodnoty Z. Negace hodnoty slouží pro detekci nežádoucích kmitů signálů Z z enkodéru. Důvodem těchto kmitů může být rušení nebo závada enkodéru.

Obrázek 5.2: Blokové schéma detekce K pulsu

(37)

Všechny tyto informace jsou následně předávány pomocí FIFO fronty v podobě klastru hodnot, definován v Encoder Change.ctl, viz obrázek5.3. Klastr se pak dále zpracovává v nezávislé smyčce. Pulsy Z signálu jsou odesílány s nejbližší změnou hrany na signálech A nebo B.

Obrázek 5.3: Obsah datového typu Encoder Change

5.1.2 Výpočet úhlu a rychlosti

Výpočty se provádí v samostatné smyčce. Hlavním VI pro výpočet hodnot veličin je Process Encoder Impulse. V tomto VI se provádí výpočty úhlu, rychlosti a informací pro generování úhlové základny.

Výpočet úhlu má na starost VI Process Angle, blokové schéma na obrázku 5.4.

VI funguje rozdílně v závislosti na nastavení Zero on Z Pulse. V případě hodnoty True se vynuluje úhel v momentě, kdy dostaneme Z puls.

V případě opačné hodnoty, False, dojde k vynulování v momentě, kdy dosáhneme hodnoty úhlu odpovídající počtu pulsů enkodéru násobené 4. K násobení 4 dochází už při posílání hodnoty od hostitele, proto se tato operace nenachází na blokovém schéma tohoto VI (viz obrázek5.5). V obou případech se vyhodnocuje směr pohybu a podle toho se vybírá operace, sčítání nebo odečítání, od poslední hodnoty.

Výpočet rychlosti provádí VI Process Velocity, blokové schéma na obrázku v pří- loze. Základní parametry pro toto VI odpovídají algoritmu popsanému v [1]. Imple- mentaci lze nastavit počet použitých čítačů (1, 2 nebo 4), což vede ke snížení chyby hodnoty rychlosti, ale způsobuje zpoždění zmíněné v [1]. Čítače jsou řešeny pomocí ukládání časové značky a následným výpočtem rozdílu od této značky z aktuální.

(38)

Obrázek 5.4: Blokové schéma VI Process Angle v případě nulování podle Z pulsu

Tyto rozdíly se ukládají a v momentě, kdy se provede výpočet hodnoty, se přečtou a provede se na nich průměrování.

5.1.3 Odesílání dat hostiteli

O odesílání dat hostiteli se stará VI DAQ + TMB Generator. V rámci tohoto VI se odesílají data hostiteli pomocí DMA FIFO ve formátu zmíněném v kapitole 4.3.

Součástí VI je možnost generování vzorkovací základny pro ostatní zařízení. Pro zapnutí je potřeba přivést hodnotu True na vstup kontrolky Enable TMB Generator.

Základní princip tohoto VI spočívá v kontrole, zda se neobjevil signál pro odeslání ve FIFO frontě Send Data TMB. Pokud dojde ke kladnému výsledku této kontroly, provede se načtení dat z paměti DMU output memory. Do této paměti se ukládají v hlavní smyčce vypočtená data, pomocí VI Store DMU Data.

5.1.4 Příkazy od hostitele

K příjmu slouží VI DMU FPGA Controller, ve kterém následně provádí příkazy VI Engine Dispatcher. V rámci tohoto VI se čte z DMA FIFO, kterou plní hostitel.

Podoba a význam přenášeného datového typu je popsán v kapitole4.3. Tabulka5.1 obsahuje název příkazu a význam ID a Parameter pro jednotlivé příkazy.

(39)

Obrázek 5.5: Blokové schéma VI Process Angle v případě nulování podle počtu pulsů enkodéru

Jak je vidět z tabulky tak nastavení Set System Settings a Set Encoder Settings mají další úroveň příkazů. Seznam těchto dalších příkazů nalezneme v 5.2 a5.3.

5.2 Popis knihovny DMU Host

Během realizace bylo zjištěno, že LabVIEW je celkem striktní v ohledu požadavků na FPGA z hlediska hostitele. Podoba front a jejich název musí být v době editace kódu známy. Proto byly pro třídu DMU zvoleny názvy front a jejich datové typy.

Potřeba jsou 2 fronty, DAQ a Parameters, jejichž datový typ je U32. DAQ slouží pro sběr dat a tak z ní hostitel vyčítá data, což odpovídá typu DMA FIFO Target- To-Host. Jak už bylo zmíněno v kapitole 4.3, tak je nutné vyčíst vždy tři hodnoty, abychom vyčetli celý FPGA paket. Druhou frontou je Parameters, prostřednictvím které se posílají příkazy FPGA kódu. Jelikož se jedná o opačný směr toku dat, tak je Parameters typu DMA FIFO Host-To-Target. Tyto informace a případné další požadavky na rozhraní z FPGA lze nalézt v datovém typu FPGA Engine Refnum.

(40)

Tabulka 5.1: Seznam příkazů pro komunikaci hostitele k FPGA Příkaz

(Command)

ID Parameter

Start/Stop DAQ 0 - DAQ Enable

Start system Stop FPGA Set System Settings

7-6b ID

5-0b typ nastavení

Hodnota příslušná typu nastavení

Set Encoder Settings

7-6b číslo kanálu 5-0b typ nastavení

Hodnota příslušná typu nastavení

Sleep[us] Počet mikrosekund

5.2.1 Popis třídy DMU

Pro nastavení kanálu v rámci třídy slouží datový typ Configuration Host, viz obrázek 5.6. Jak je vidět na obrázku, každý kanál má celou řadu nastavení týkajících se zejména algoritmů pro výpočet jednotlivých kinematických veličin. V rámci tohoto typu bylo uvažováno i další rozšiřování funkcionality pro zajištění dalších funkcí přítomných v DMU. Potřebná část nastavení z datového typu je následně poslána FPGA části.

Před odesláním se tyto informace převedou do formátu, kterému rozumí FPGA kód zmíněný v kapitole 5.1.4. K tomu se využívá VI Send config to FPGA, viz obrázek5.7.

Pro spuštění a zastavení měření slouží VI Start Measurement a Stop Measure- ment.

Pro načítání dat z fronty DAQ je VI Fetch Channel Data, které získaná data předává dál do datové fronty náležící třídě. Z této datové fronty následně vybírá VI Read FPGA Packet, kde se načtená data posílají dál. Jelikož FPGA paket předsta- vuje pouze pole celých čísel, je nutné tato data převést na odpovídající veličiny a informace. K převodu z FPGA paketu na hodnoty bylo vytvořeno VI FPGA Packet

(41)

Tabulka 5.2: Seznam příkazů pro komunikaci hostitele s kódem FPGA

Příkaz Popis

Sampling Frequency Počet násobků 100ns pro časovou vzorkovací základnu, např. 1000 pro vzorkování 10kHz

Angular(F)\Time(T) base sampling

Nastavení typu vzorkovací základny

Angular Base Decimation

Decimace úhlového vzorkování, počet přeskočených hran enkodéru mezi 2 vzorky

to Values, které vrací datový typ DMU FPGA Values, na obrázku5.8.

Pro převod kinematických veličin z formátu, který vrací FPGA, slouží VI Ki- nematics values. V rámci tohoto VI se využijí informace o frekvenci FPGA, počtu impulsů na otáčku enkodéru a směru pohybu.

5.2.2 Třída Communication

Tato třída obsahuje metody pro komunikaci s klientem a převod dat mezi poli bajtů a datovými typy používanými třídou DMU. Některé z dostupných metod, které ne- potřebují jako vstupní parametr třídu, jsou určeny použití na straně klienta. Zásadní část třídy pro hostitele jsou datové typy pro příkazy, Net Cluster, enum Command Type a enum Settings Type. Na obrázku4.11 je vidět diagram třídy.

5.3 Vzdálený Windows klient

Základem programu pro Windows je komunikace pomocí TCP/IP. Popis možných metod komunikace je v kapitole 4.4. Pro nastavení hostitele má klient dostupný stejný datový typ, jako třída DMU. Zároveň má k dispozici další nastavení týkající se odesílání dat od hostitele vzdálenému klientu. Ke komunikaci využívá třídu DMU Remote, zobrazenou na obrázku4.12.

(42)

Tabulka 5.3: Seznam části příkazů pro komunikaci hostitele k nastavení enkodéru na FPGA

Příkaz Popis

Velocity

Measure Across

Nastavení přes kolik pulsů se má počítat rychlost (představuje 4 násobek pulsu enkodéru)

Motion Sense Nastavení zda se má posílat informace o směru pohybu Number of

pulses

Počet pulsů enkodéru kanálu

Number of counters

Počet čítačů pro výpočet rychlosti

Velocity Average From

Nastavení přes kolik vzorků se má průměrovat rychlost

Enable Povolení/zakázání kanálu

5.4 Příklad použití knihovny

Mezi základní použití knihovny patří laboratorní měření pouze pomocí inkrementál- ních enkodérů. Pro takové měření není nutná integrace s jinými typy signálů, takže se na FPGA zaměřujeme čistě na signály od enkodérů. V tomto případě lze pou- žít VI DMU FPGA Top Level, kde se pouze nastaví příslušné vstupy od použitého cRIO/sbRIO či FPGA karty a vytvořit zkompilovaný kód pro FPGA. Základem zmíněného VI je DMU FPGA Engine, který je postaven pro obsluhu 1 nebo 2 ka- nálů. První kanál provádí nulování úhlu na obou kanálech a slouží jako zdroj pro úhlové vzorkování.

S pomocí vytvořeného kódu můžeme využít třídu DMU pro sběr dat. Na základě použitého operačního systému hostitele se pak můžeme rozhodnout, zda data přímo napojit na uživatelské rozhraní nebo přeposílat vzdálenému klientu. Jako příklad použití v případě hostování na Windows nebo testování běhu na RT slouží VI Simple Example.

(43)

Obrázek 5.6: Datový typ pro nastavení kanálu v rámci třídy DMU

Pro komplexnější příklad byla vytvořena aplikace sestávající ze tří částí, zmíně- ného kódu z DMU FPGA Top Level VI převedeného do kódu pro FPGA, VI App Example pro RT část aplikace a VI UI App Example pro Windows část aplikace. RT část je navrhnuta pro odesílání surových dat z FPGA a nastavování FPGA kódu.

Veškeré převody a zobrazení dat provádí Windows část.

Všechna zmíněná VI lze nalézt na přiloženém CD v rámci projektu DMU_Stan- dalone.

(44)

Obrázek 5.7: Blokový diagram VI Send config to FPGA

Obrázek 5.8: Datový typ DMU FPGA Values

(45)

6 Ověření zařízení měřením

Pro všechna ověřovací měření byl využit Compact RIO NI 9034 s dvěma moduly NI 9402, viz obrázek6.1.

Obrázek 6.1: Compact RIO NI 9034 s dvěma moduly NI 9402

6.1 Měření kývavého pohybu

Pro měření kývavého pohybu byl použit přípravek sestávající z enkodéru Heidenhain ROD 260 o 18000 pulsech na otáčku a kyvadla, viz obrázek 6.2.

(46)

Obrázek 6.2: Kyvadlo s enkodérem určené k testovacímu měření kývavého pohybu

Kývavý pohyb má klesající tendenci a reprezentuje změnu smyslu pohybu. Tento specifický pohyb vytváří sinusovou podobu rychlosti. V případě měření za pomocí časové základny se tato sinusoida promítá i do podoby úhlu. Úhlové měření pouze produkuje úhel v podobě zubu. Podobu těchto signálů v případě měření časovou základnou při vzorkovací frekvenci 10kHz lze vidět na grafu 6.1 a detail signálů nalezneme na grafu 6.2. Na detailu si lze všimnout, že hodnota rychlosti má v po- rovnání s hodnotou úhlu kolem nuly schodovitý tvar. Důvodem pro toto je dlouhá doba mezi pulsy, takže nemáme data potřebná k výpočtu rychlosti.

(47)

Graf 6.1: Výsledek měření kyvadla při vzorkovací rychlosti 10kHz

Graf 6.2: Detail z měření kyvadla při vzorkovací rychlosti 10kHz

Pro srovnání bylo provedeno ještě jedno měření, ale tentokrát byla použita úhlová vzorkovací základna. Zvolená decimace základny byla nastavena na 1, takže bylo vzorkováno rychlostí ½ pulsu enkodéru, tj. každé dvě hrany. Naměřená data lze vidět na grafu 6.3 a detail na grafu 6.4. Zejména z detailu lze vidět trojúhelníkový tvar průběh úhlu s lineárním charakterem a průběh rychlosti odlišný od sinusového.

(48)

Graf 6.3: Výsledek měření kyvadla při úhlovém vzorkování

Graf 6.4: Detail z měření kyvadla při úhlovém vzorkování

6.2 Měření pružné hřídele

Pro tento druh měření se používají dva enkodéry a provádí se diferenční měření. Mě- řen byl asynchronní motor Siemens 1LA7070-0AA10-Z (3x220V) řízený frekvečním

(49)

sloužila k simulaci pružné hřídele a byl k ní připojen enkodér Heidenhain ROD 1020 s 1024 pulsy na otáčku. Na druhém konci byl přímo na hřídel umístěn enkodér Heidenhain ROD 1020 s 3600 pulsy na otáčku. Enkodér na hřídeli byl připojen na první kanál a enkodér připojený k pružné hřídeli byl zapojen na druhém kanálu.

Na skříni, kde je umístěn frekvenční měnič, se nachází potenciometr, který slouží ke změně otáček motoru. Provedeny byly 2 měření, jedno s časovou základnou 10kHz a druhé s úhlovou základnou 3600 vzorků na otáčku. Pokud není řečeno jinak, data jsou brána z měření s časovou základnou.

Obrázek 6.3: Měřený motor se silikonovou hadičkou a připojenými enkodéry Na grafu 6.5 si lze všimnout, že rychlost je mírně kolísavá. To je způsobeno chováním asynchronního motoru daným jeho konstrukcí.

(50)

Graf 6.5: Několik počátečních otáček kanálu 1 při nízké rychlosti

Na grafu6.6 je vidět kompletní průběh měření s časovou základnou. Lze na něm jasně vidět, jak se nejdříve rychle sníží torzní kmitání a s rostoucí střední rychlostí se opět zvyšuje.

Graf 6.6: Průběh rychlosti během celého experimentu

Rozdíl rychlosti a úhlu, viz graf 6.7, ilustruje, že enkodér pro kanál 2 je o něco

(51)

ních kmitů lze vypozorovat i na jeho rozdílu, kde amplituda s rostoucí rychlostí též klesá a následně roste.

Graf 6.7: Průběh rozdílu úhlu a rychlosti během experimentu

Poslední zajímavou částí je průběh rychlosti při okamžitém vypnutí motoru, kde se silně projeví pružnost hřídele. Na grafu6.8indikuje, že volný konec pružné hřídele s připojeným enkodérem se točil okamžik v opačném smyslu, než byl směr otáčení motoru. Jedná se o jasnou indikaci torzního kmitu, který byl dán pružností hřídele.

Graf 6.8: Průběh rychlosti při zastavení motoru

(52)

7 Závěr

V diplomové práci jsem se zabýval návrhem a realizací metod měření úhlových ki- nematických veličin za pomocí produktů fy National Instruments.

Navržené řešení využívá systém Compact RIO a C modul 9402, který má čtyři digitální vstupy/výstupy. V rámci řešení se využily tři vstupy, každý připadnul jed- nomu ze základních signálů enkodéru, A, B a Z. Byl vytvořen software, který im- plementuje výpočty související s použitou metodou.

Nejzásadnější část softwaru se nachází na FPGA, které je běžně umístěné v Com- pact RIO nebo samostatné kartě. V rámci této části se zpracovávají signály z enko- déru a vypočítávají se požadované veličiny úhel a rychlost. Výpočet je ovlivňován nastaveními vycházejícími z nastavení DMU. V této části se už musí sestavovat kód umožňující práci s více kanály. Nejvyšší dosažená rychlost FPGA kódu je 80MHz.

Pro komunikaci s FPGA a přepočty do reálných veličin byla vytvořena knihovna DMU Host. Základ této knihovny tvoří třída DMU, která je určena pro použití v rámci systému reálného času na bázi Linuxu od fy NI nebo MS Windows. Důle- žitou částí bylo i vytvoření komunikace se vzdáleným klientem, která je obstarána třídou Communication. Tato třída je určená pro příjem příkazů a odesílání dat. Pro příjem dat na straně klienta byla vytvořena třída DMU Remote, která obsahuje kód pro řízení a komunikaci s třídou Communication. Součástí vytvořeného softwarového projektu je i příklad použití všech uvedených knihoven.

Pro otestování vytvořeného řešení byly realizovány dva experimenty, které odpo- vídají možným reálným scénářům nasazení v praxi. V prvním příkladu bylo možné ověřit, že ukázková aplikace založená na vytvořeném kódu je schopna měřit ký- vavý/vratný pohyb. Ve druhém příkladu byly měřeny rozdíly úhlu a rychlosti dvou

(53)

enkodérů usazených na koncích hřídele motoru. Pokud by mechanismus obsahoval i převodový poměr, lze provést srovnávací měření, kdy výsledné hodnoty jsou vyná- sobeny poměrem převodu. Hlavní cíl, více kanálové měření kinematických veličin, úhlu a rychlosti, s využitím produktů od fy National Instruments, byl dosažen.

(54)

Bibliografie

[1] ČEJKA, Ing. Václav. Vývoj a teorie metod měření s časově neekvidistantním vzorkováním u strojů poháněných rotující hřídelí. Liberec, 2009. Disertační práce. Technická univerzita v Liberci.

[2] JULIŠ, Karel; BREPTA, Rudolf. Mechanika: Statika a kinematika. 1986.

[3] BRANDT, Anders; LAG, Thomas; AHLIN, Kjell; TŮMA, Jiří. Main Principles and Limitations of Current Order Tracking Methods. Sound and Vibration.

2005, s. 19–22. ISSN 1541-0161.

[4] HERLUFSEN, Henrik; GADE, Svend; KONSTANTIN-HANSEN, H.; VOLD, Håvard. Characteristics of the Vold-Kalman Order Tracking Filter. Sound and Vibration. 1999, s. 3–8.

[5] NATIONAL INSTRUMENTS CORPORATION. Compact RIO Platform [on- line]. 2017 [cit. 2017-12-15]. Dostupné z: http://www.ni.com/compactrio/.

[6] NATIONAL INSTRUMENTS CORPORATION. PXI Platform [online]. 2017 [cit. 2017-12-15]. Dostupné z: http://www.ni.com/pxi/.

[7] NATIONAL INSTRUMENTS CORPORATION. Implementing Multiple Clock Domains (FPGA Module) [online]. 2017 [cit. 2017-12-15]. Dostupné z: http:

//zone.ni.com/reference/en-XX/help/371599K-01/lvfpgaconcepts/

implementing_domains.

(55)

A Obsah přiloženého CD

• Diplomová práce

diplomova_prace_Jan_Brandt_2018.pdf

• Zdrojový kód

DMU_Standalone.zip

References

Related documents

Lidská kůže tvoří rozhraní mezi lidským tělem a okolním prostředím. Kůže je plošně největší orgán těla, který chrání tělo před mechanickými, chemickými a

Zde končí oddělená úprava dat naměřených při měření s generátorem jako zdrojem měřícího napětí a začíná společná část zobrazení charakteristiky diody pro

Obrázek 8: Příklad Michelsonova interferometru pro kalibraci akcelerometrů výše ukazuje Michelsonův laserový interferometr, který se používá k měření

Přečerpávací zařízení bylo zachováno podle původního konceptu s tím, že bylo modifikováno víko doplňované nádoby, tak aby k němu bylo možné při- pojit filtrační zařízení,

Bylo by sice možné použít regulaci výkonu pomocí spínání, obdobně jako u žárovek, je však potřeba si uvědomit, že nyní pracujeme s napětím pouze 12

V závěru práce jsou uvedeny hodnoty z měření tlakové ztráty filtru a rychlosti odsávání částic, která jsou porovnána s výpočtem provedeném při vlastním

Měření prokázalo, že koš umístěný v tělese filtru má vliv na měřené parametry. Přestože jsou výsledky statisticky významné, je ale rozdíl hodnot v řádů procent. Při

Toto místo bylo vybráno z důvodu dobré dostupnosti na stěně štoly a možnosti porovnání se strunovým přístrojem pro měření deformace horniny Geokon Model 4422 Monuments