Diplomová práce
Monitorování veličin z impulsních čidel vypracoval: Petr Karafiát vedoucí diplomové práce: Ing. Zdeněk Němec, CSc. obor: Inženýrská informatika a automatizace specializace: Automatizace 2006
Strana 3 Anotace Diplomová práce se zabývá problematikou čítání a vyhodnocování okamžitých hodnot impulsních signálů z impulsních čidel. Práce naznačuje možné způsoby vyhodnocování impulsního signálu z čidla, pomocí externího USB modulu DataLab IO/USB či interních karet. Vyhodnocení probíhá v programech ControlWeb 5 a Matlab 7.1 v toolboxu Simulink. V diplomové práci je proveden rozbor problému vyhodnocování impulsů a aplikace v zadaném software.
Annotation This graduation theses conversant problems of counting and plotting instantaneous values impulse signal from impulse sensors. Work implies possible manners plotting impulse signal from sensor, by the help of external USB modulus DataLab IO/USB or internal cards. Evaluation proceeds in programmes ControlWeb 5 and Matlab 7.1 in toolbox Simulink. In graduation theses is effected analysis problems plotting impulses and application in engaged software.
Strana 4 Poděkování Děkuji touto cestou především vedoucímu diplomové práce ing. Zdeňku Němcovi, CSc., za odborné vedení, poskytnutí materiálu a prostředků i jeho cenných rad, díky čemuž výrazně přispěl k úspěšnému vyřešení mé diplomové práce.
Prohlášení Prohlašuji tímto, že diplomovou práci jsem vypracoval samostatně, na základě uvedené literatury a pod vedením vedoucího diplomové práce. V Brně 20.5.2006
................................... Petr Karafiát
Strana 5
Obsah: Seznam použitých zkratek a symbolů 1 Úvod 1.1 Cíl diplomové práce 1.2 Postup při řešení diplomové práce 2 Analýza problematiky senzorů 2.1 Senzor 2.2 Základní parametry senzorů 2.3 Měřící řetězec 3 Analýza problematiky impulsních senzorů 3.1 Rozdělení impulsních senzorů 3.2 Magnetická impulsní čidla 3.3 Indukčnostní senzory 3.4 Fotoelektrické senzory 3.5 Impedanční senzory 3.6 Speciální senzory 4 Popis použitých prostředků 4.1 Hardware 4.2 Software 5 Měření kmitočtu 5.1 Klasické měření kmitočtu za časový interval 5.2 Okamžité měření kmitočtu za pomoci referenční frekvence 5.3 Okamžité měření kmitočtu pomocí měření času periody 6 Řešení v programu Control Web 5 6.1 Generátor referenční frekvence 6.2 Lineární aproximace pro nižší frekvence 6.3 Práce v programu Control Web 5 6.4 Vývojový diagram 6.5 Řešení pomocí modulu analogových vstupů 6.6 Řešení pomocí modulu čítačových vstupů 6.7 Řešení pomocí modulu digitálních vstupů 6.8 Možnosti výstupů 6.9 Vliv zatížení PC na výsledky měření 6.10 Shrnutí měření v programu Control Web 5 7 Řešení v programu Matlab 7.1 7.1 Práce v programu Matlab-Simulink 7.2 Využití externího zařízení DataLab IO/USB 7.3 Využití interních karet Humusoft a Advantech 7.4 Možnosti výstupů 7.5 Shrnutí měření v programu Matlab 7.1 8 Závěr Literatura
6 7 8 8 9 9 9 12 13 13 14 18 20 21 21 23 23 30 37 37 39 41 43 43 45 46 47 48 51 62 67 67 68 69 69 69 71 72 72 73 75
Strana 6
Seznam použitých zkratek a symbolů Zkratky: HW SW PA PC LED CW5 D/A A/D DSP EEPROM USB I/O PWM CPU TTL LCD OPC OLE f/U ISA, PCI
Hardware Software Programovatelný automat Osobní počítač Svítivka Control Web 5 (produkt fy Moravské přístroje) Digitálně-analogový převodník Analogově-digitální převodník Digitální zvukový procesor Elektronicky přepisovatelná paměť Universální sériové rozhraní Vstup/výstup Šířková modulace Centrální procesorová jednotka 5V logika Display z tekutých krystalů OLE for process control Object linking and embedding Převodník frekvence na napětí Typ sběrnice v PC
Symboly: U I R N, A h, r, l, d, b Φ ω B n p α λ T, t f C δx
Elektrické napětí [V] Elektrický proud [A] Odpor [Ω] Počet jednotek (závitů, period, pulzů..) [ - ] Rozměry [m] Magnetický tok [Wb] Úhlová rychlost [s-1] Magnetická indukce [T] Otáčky [s-1] Počet pólových dvojic [ - ] Úhel mezi osami paprsků [RAD] Vlnová délka zdroje světla [m] Perioda [s] Frekvence [Hz] Kapacita [F] Relativní chyba [%]
Strana 7
1 Úvod Rychlý rozvoj techniky klade veliké úkoly na automatizaci ve všech oborech lidské činnosti. Dostatečné množství informací o jednotlivých procesech je základní podmínkou úspěšné činnosti všech systémů. Každé elektrické měření neelektrické veličiny je realizováno převodem měřené neelektrické veličiny na veličinu elektrickou, která pak je dále zpracována. Měření neelektrických veličin představuje v současné době mnoho speciálních oblastí měřicí techniky, které se vyvíjely postupně v různých časových obdobích podle technické úrovně a rozvoje jednoho nebo několika oborů, na které byly vázány. Vývoj je samozřejmě závislý především na úrovni technologie, elektroniky a na ně navazující obory, např. řídicí techniku, výpočetní techniku, chemii apod. Na druhé straně však měřicí technika umožňuje dosažení podstatně vyšších parametrů, a to nejen ve výrobě, ale ve všech odvětvích lidské činnosti. Měření neelektrických veličin je věnována stále větší pozornost nejen po stránce výzkumné a výrobní, ale také pokud jde o systémové zpracování dílcích oblastí. Měření neelektrických veličin elektrickou cestou má mnoho výhod oproti metodám neelektrickým, ale to je již mimo obsah této diplomové práce. Problematika přesného a okamžitého vyhodnocování fyzikálních veličin je dána potřebou regulace v praxi, kde je kladen stále větší důraz na zkrácení doby odezvy systému a tím zrychlení regulačního pochodu. Ta je samozřejmě závislá na rychlosti vyhodnocování dané veličiny z čidla. Tato práce se zabývá vyhodnocováním impulzů z impulsních čidel. Tato problematika je aktuální z hlediska velmi rozšířeného používání impulsních čidel, která mají pouze dvoupolohový(dvoustavový) výstup. Pro regulaci je potřeba získat nejen přesnou hodnotu, ale tuto hodnotu je třeba získat „okamžitě“, tedy v co nejkratších intervalech. To znamená, že zde nelze použít klasické metody vyhodnocování impulsů, kde je za daný časový interval např. 1s snímán počet impulsů. U této klasické metody dochází k aktualizaci hodnoty otáček až po dlouhé době, což je pro přesnou a rychlou regulaci nepostačující. Opět opakuji, že tato práce se zabývá co nejrychlejším a nejpřesnějším vyhodnocováním impulzů z impulsních čidel většinou metodou měření doby trvání jednoho posledního impulzu. Tím je zajištěna vysoká rychlost aktualizace hodnot, potřebných pro regulaci. Samozřejmě musíme brát v potaz, že výsledky se budou zpracovávat na osobním počítači či notebooku a proto nemůžeme počítat s žádnou oslňující rychlostí. Je to dáno rychlostí operačního systému a použitého hardware, který má své omezení. Ale navržený algoritmus je použitelný i pro programovatelné automaty, kde uvedené nevýhody neplatí.
1 Úvod
Strana 8
1.1 Cíl diplomové práce Tato diplomová práce se zabývá problematikou přesnosti vyhodnocení impulsů a použitelností osobního počítače pro tento účel. Byla navržena za účelem měřit průtok plynu a vody u experimentálního hořáku. A právě tyto průtokoměry mají impulsní výstup. Ale úkolem této diplomové práce není jen zaměření právě na tyto průtokoměry, ale také na jiné s různými výstupními frekvencemi. Proto je cílem navrhnout, realizovat a odzkoušet algoritmus, který vyhodnotí při požadované přesnosti, okamžitou frekvenci impulsů z impulsního čidla, zde simulovaného kmitočtem z přesného generátoru funkcí. Výsledkem bude vyhodnocení vhodnosti použití programů ControlWeb 5 a Matlab-Simulink a také typu vstupu v modulu DataLab IO/USB a zhodnocení různých metod řešení, hlavně s ohledem na přesnost a cenu. 1.2 Postup při řešení diplomové práce V prvních kapitolách se zabývám problematikou senzorů, možnostmi snímání a vyhodnocování impulzů a popisuji zde použitelné HW a SW prostředky. Dále jsem zaměřil pozornost na měření a vyhodnocování okamžité frekvence, které se tato práce týká. Klasická metoda měření frekvence za určitý čas totiž není vhodná pro automatizační praxi kvůli své pomalosti snímání. Požadavkem praxe je, mít aktualizovanou a přesnou hodnotu několikrát za sekundu. Proto jsem se zaměřil na jinou metodu, než je klasické počítání proběhlých period za časový interval. Budu popisovat všechny metody na které jsem přišel. Protože mám k dispozici více vstupních jednotek, zaměřím se postupně na každou z nich. První prověřím kvality a možnosti programu ControlWeb 5 a poté Matlab-Simulink. V těchto kapitolách bude podrobný popis algoritmu programu, který navrhnu pro toto zadání. Budou zde také nastíněny další metody a možnosti vyhodnocení a porovnání těchto metod.
Strana 9
2 Analýza problematiky senzorů Začneme popisem problematiky senzorů, neboť ve své práci pracuji s jedním z různých druhů senzorů a to s impulsními senzory. V této kapitole popíši senzor, typy senzorů a hlavně jeho vlastnosti, které jsou velmi důležité. Také zde zmíním něco o měřícím řetězci, protože ten je také podstatou této práce. V kapitole 2 jsem využíval informace z literatury [1]. 2.1 Senzor Senzor je funkční prvek tvořící vstupní blok měřícího řetězce, který je v přímém styku s měřeným prostředím. Místo pojmu senzor se používají též termíny snímač, převodník nebo detektor. Citlivá část senzoru se někdy označuje jako čidlo. Senzor snímá sledovanou fyzikální, chemickou nebo biologickou veličinu a transformuje ji na výstupní veličinu - nejčastěji analogový nebo číslicový elektrický signál. Typy senzorů: Dle měřené veličiny: senzory teploty, tlaku, průtoku, optických veličin, mechanických veličin (posunutí, polohy, rychlosti, zrychlení, síly, mechanického napětí aj.), chemické a biologické senzory, senzory elektrických a magnetických veličin aj. Dle fyzikálního principu: senzory odporové, indukčnostní, indukční, kapacitní, magnetické, piezoelektrické, pyroelektrické, optické, chemické, biologické aj. Dle styku senzoru s měřeným prostředím: bezdotykové, dotykové. Dle transformace signálu: aktivní, pasivní. Dle použité technologie: elektromechanické, mechanické, pneumatické, elektrické, elektronické, elektrochemické, polovodičové, mikroelektromechanické, optoelektronické aj. Dle výstupu: analogový: amplituda, frekvence, nebo střída napětí nebo amplituda proudu, číslicový, dvoustavový (např. polohový nebo teplotní spínač). Aktivní senzor je senzor, který se působením snímané veličiny chová jako zdroj energie (např. termoelektrický článek, fotodioda v aktivním režimu, indukční senzor, Wiegandův senzor) Pasivní senzor potřebuje napájení. Měřená veličina se někdy několikrát transformuje: např. v senzoru vlhkosti s číslicovým výstupem dochází k převodu vlhkost-permitivita-kapacita-frekvence-výstupní kód. 2.2 Základní parametry senzorů Typické parametry charakterizující základní statické a dynamické vlastnosti senzorů lze shrnout do následujícího přehledu: • citlivost a její stabilita (multiplikativní chyby) • dynamický rozsah (rozsah měřených veličin pro specifikovanou nejistotu měření) • offset a jeho stabilita (aditivní chyby)
2 Analýza problematiky senzorů
Strana 10
• linearita • hystereze, reprodukovatelnost • rozlišitelnost (a šumové charakteristiky) • celková přesnost vyjádřená jako nejistota nebo toleranční pásmo (maximální chyba) • dynamické parametry (časová konstanta, šíře pásma, rychlost číslicového přenosu) • odolnost vůči prostředí (vibrace, magnetické pole, radiace, ...). Statické vlastnosti senzorů Statická převodní charakteristika senzoru je dána funkční závislostí y = f (x) mezi vstupní veličinou x a výstupní veličinou y v časově ustáleném stavu. Tuto závislost lze velmi často popsat polynomem:
y = a 0 + a1 x + a 2 x 2 + ... + a n x n
(1)
Ideální statická charakteristika je dána vztahem:
y = Kx
(2)
y = y 0 + K1 x
(3)
nebo
kde
K je citlivost senzoru yo je offset.
Rozlišitelnost (resolution) senzoru je dána hodnotou snímané veličiny, při níž je na výstupu senzoru signál odpovídající směrodatné odchylce (efektivní hodnotě) šumu senzoru. U číslicových senzorů je rozlišitelnost navíc omezena na l LSB. V některých případech mají senzory práh citlivosti (mrtvé pásmo, threshold) omezený např. statických třením: např. u lopatkového průtokoměru dochází při nepatrných průtocích k zastavení turbínky. Dynamický rozsah senzoru (Full Scale, Span) je dán intervalem přípustných hodnot snímané fyzikální veličiny. Reprodukovatelnost (opakovatelnost) senzoru je dána změnou naměřené hodnoty po návratu do stejného bodu způsobenou časovou změnou charakteristiky nebo např. mechanickými nepřesnostmi. Do této chyby nebývá zahrnuta hystereze. Relativní chyba senzoru δ x je dána vztahem:
δx = kde
Δx x max − x min
(4)
Δx je absolutní chyba
Offset (posuv nuly) je aditivní chyba způsobená posunem jmenovité lineární charakteristiky. Má-li chyba aditivní charakter, odpovídající absolutní chyba Δx je nezávislá na měřené hodnotě x. Relativní chyba δ x je samozřejmě nejmenší, když měřená veličina dosáhne
2 Analýza problematiky senzorů
Strana 11
konce rozsahu, tj. x = x max . Často se uvádí teplotní drift offsetu (např. u tlakových senzorů v jednotkách Pa/K). Chyba citlivosti K (sensitivity error) je multiplikativní chyba, relativní chyba δ x nezávisí na měřené hodnotě x. Často se uvádí teplotní koeficient citlivosti (sensitivity tempco) v %/K nebo ppm/K. Přesnost senzoru se většinou vyjadřuje absolutní chybou. Pozor na to, že absolutní chyba se často vyjadřuje ve formě procent z rozsahu (% FS = percent Full Scale). Pojem nejistota (uncertainty) se v senzorové technice explicitně používá jen zřídka. Je třeba dávat pozor na to, zda v katalozích udávané přesnosti nebo chyby jsou skutečně maximální přípustné hodnoty, nebo se ve skutečnosti jedná o nejistoty (tedy toleranční meze, ve kterých s jistou pravděpodobností leží údaj senzoru). Nejistota se týká výsledku měření, senzorů, měřicích přístrojů, ale i hodnot použitých konstant, korekcí apod - viz norma EN60359. Chyba linearity senzoru je dána odchylkou od ideální lineární (spojité analogové nebo kvantované) charakteristiky. Pro analogový signál se chyba linearity udává vztahem: ⎛
y−y
⎞
L ⎟⎟ δ L = ⎜⎜ y y − min ⎠ max ⎝ max
kde
(5)
y L je definována ideální lineární funkcí (2) nebo (3)
Hodnoty K, y 0 a K1 lze vypočítat např. lineární regresí metodou nejmenších čtverců na základě kalibrace senzoru. Volbou podmínky pro minimum kvadrátu odchylky lze dosáhnout buď minimální aditivní chyby, nebo nulové chyby v počátku souřadnic statické charakteristiky na úkor větší hodnoty aditivní nebo multiplikativní chyby. Chyba hystereze je dle obr. 2 definována vztahy: ⎛ y −y
⎞
↑ ⎟⎟ δ L = ⎜⎜ ↓ ⎝ y max − y min ⎠ max
Obr. 1 Hystereze u senzorů
(6)
2 Analýza problematiky senzorů
Strana 12
Hystereze je omezujícím faktorem přesnosti řady mechanických systémů (vůle v převodech, hystereze membrány) i magnetických materiálů (koercivita a remanence). Technické specifikace by měly uvádět základní chyby senzorů při laboratorní teplotě i chyby v celém rozsahu pracovních teplot (případně i dalších veličin ovlivňujících přesnost senzoru). Pro návrháře je důležité znát nejen hodnoty teplotního koeficientu citlivosti a teplotního driftu offsetu, ale i celé typické teplotní závislosti - jen tak lze navrhnout případné teplotní korekce. Pro kritické aplikace se navíc uvádí stabilita parametrů senzoru po definovaném teplotním a vibračním cyklování a působení dalších vlivů (vlhkost, radiace a pod.). 2.3 Měřící řetězec
Základní blokové schéma měřicího řetězce je na obr. 1. Transformovaný elektrický signál je obvykle nutno zesílit. Při zesílení signálu je nezbytné zajistit dostatečný odstup signálu od šumu senzoru a zesilovače a od parazitních signálů (rušení elektrickým, magnetickým a elektromagnetickým polem, působením zemních smyček apod.) působících jak na senzor, tak na zesilovač. Uvedené požadavky se realizují speciálními zapojeními zesilovačů, frekvenčním omezením signálu, modulací elektrické nebo přímo neelektrické veličiny s následnou synchronní demodulací, nebo číslicovým zpracováním signálu. Další zpracování signálu je řešeno buď analogovými obvody (např. linearizačními), nebo po analogově-číslicovém převodu číslicově.
Obr. 2 Blokové schéma měřicího řetězce se senzorem A/Č - analogově číslicový převodník včetně vzorkovacích zesilovačů, multiplexerů apod., MP - mikropočítač (resp. mikrořadič, signálový procesor apod.), R - rozhraní, P - nadřazený výpočetní systém Analogový výstup měřicího řetězce je v nejjednodušším případě realizován přímoukazujícím přístrojem nebo zapisovačem, nebo pro přenos dat blokem unifikace signálu, modulátorem, případně optoelektronickým členem pro přenos modulovaného signálu světlovodem, apod. Analogové signály jsou standardizovány v rozsazích (0 - 10) V, (0 - 20) mA, (4 - 20) mA. Na obr. l .2 je příklad centralizovaného senzorového systému. Nevýhodou uvedeného uspořádání je jednosměrný tok informace, omezené možnosti zpracování signálu, nemožnost nastavovat parametry senzorů a elektronických obvodů aj. Kromě tradiční proudové smyčky se často využívá číslicového přenosu. U senzorů se nejčastěji používá sériové rozhraní RS-232 a RS-485. Zatímco u rozhraní RS-232 je pro obousměrný spolehlivý provoz nutno použít 3 a více vodičů a dosah přenosu dat je při rychlosti 20 kbitů/s cca 15 m, u RS-485 vystačí stíněná kroucená dvojlinka při rychlosti přenosu cca l Mbit/s do vzdálenosti 1000 m. Další výhodou RS485 je symetrický vstup, který potlačuje součtové rušivé signály a jediné napájení +5 V. Součástí každého rozhraní je komunikační protokol definující přenos naměřených dat, adres, řídicích a stavových signálů.
Strana 13
3 Analýza problematiky impulsních senzorů Protože ve své diplomové práci mám za úkol právě vyhodnocovat impulsy z impulsních senzorů, proto zde také uvádím část teorie ohledně impulsních senzorů. Hlavně popisuji jednotlivé druhy impulsních senzorů, tedy spíše jejich fyzikální podstatu. Měření úhlové rychlosti či dalších neelektrických veličin pomocí impulsů odvozených z otáček hřídele patří mezi nejpřesnější metody. Existuje velké množství technického provedení čidel, jimiž získáváme z hřídele impulsy. Od nejjednodušších mechanických kontaktů až po přerušované zdroje jaderného záření apod. Z hřídele získáváme během jedné otáčky jeden nebo více impulsů. U elektrokontaktních čidel se používá výhodně jazýčkových kontaktů. Impulsní snímače rychlosti vychází z definičního vztahu pro rychlost, tj. z podílu dráhy x vykonané objektem za časový interval t. Analogické vztahy platí také pro úhlovou rychlost, kde jsou snímače otáček na impulsním principu značně rozšířené. V kapitole 3 jsem využíval informace z literatury [1],[2],[3]. 3.1 Rozdělení impulsních senzorů
M1 u
u a)
b)
S N
ΔL
c)
M2
N S
S N
R1 R2
u
d)
u
e)
f) Obr. 3 Detektory pohybu s impulsním výstupem
V zásadě jde o detekci polohy značky na pohybujícím se objektu. Jako detektory polohy lze použít senzory: • magnetické a kontaktní senzory (nejlépe s ovládáním elektromagnetickým polem, t.j. Hallovy senzory nebo jazýčková relé) - (obr. 3 d)
3 Analýza problematiky impulsních senzorů
Strana 14
• indukční senzory (rotuje stálý magnet) nebo indukčnostní senzory (rotuje feromagnetický výstupek) - (obr. 3 a, c), • senzory na principu vířivých proudů s vysazováním oscilací při průchodu lopatky kotouče mezerou cívky rezonančního obvodu (obr. 3 e), • Wiegandův senzor (obr. 3 b) • optoelektronické senzory s detekcí průchozího nebo odraženého světla (obr. 3 f). • kapacitní senzory (reagují na změnu kapacity) • speciální senzory
Nejvíce senzorů se vyrábí v provedení s dvoustavovým výstupem - logický signál, výstup s otevřeným kolektorem nebo spínací kontakt. Polohové spínače mohou pracovat přímo na dvoustavovém principu (mechanický mikrospínač, jazýčkový kontakt, Wiegandův senzor), nebo obsahovat senzor polohy se spojitým výstupem (Hallův senzor, magnetorezistor, optickou závoru, kapacitní senzor,...) a na jeho výstupu komparátor. Polohové spínače se používají i jako senzory úhlové polohy a rychlosti (např pro řízení spalovacích motorů). Pro tyto aplikace jsou nejrozšířenější magnetické senzory, které vynikají robustností a spolehlivostí. V případě, že na měřený objekt není možno umístit permanentní magnet a tento objekt ani není feromagnetický (např. lopatky vysokootáčkových turbín vyrobené z hliníkových slitin), je nutno použít senzorů na principu vířivých proudů. Pokud je měřený objekt nevodivý (např. papír), používá se kapacitních nebo ultrazvukových senzorů. Jako čidla polohy se často používají i optické senzory. 3.2 Magnetická impulsní čidla
Zdrojem magnetického pole pro magnetické spínače je zpravidla permanentní magnet (nejčastěji magneticky tvrdý ferit či magnety NdFeB). Permanentní magnet může být připevněn na měřený objekt, ale většinou je součástí magnetického senzoru. Změna magnetického pole je pak vyvolána změnami magnetického toku např. vlivem průchodu zubu na měřeném feromagnetickém objektu. Pro snímání značek se používají tato magnetická čidla: • jazýčkové kontakty • Hallův senzor a spínač • magnetorezistory • indukční senzory • Wiegandův senzor 3.2.1 Jazýčkové kontakty (reed contacts)
Dva kontakty zhotovené z plíšků z magneticky měkkého materiálu jsou spínány polem permanentního magnetu. Hodnoty magnetického pole pro sepnutí a rozepnutí kontaktů se liší a vzniklá hystereze přispívá k odolnosti proti náhodnému sepnutí. Oba jazýčky jsou pokryty vrstvou vzácných kovů (Ag, Au, Pt) a zataveny do skleněné trubičky naplněné inertním plynem pod nízkým tlakem. Bez působení magnetického pole jsou kontakty zpravidla rozpojeny - vyrábějí se ale i jazýčkové kontakty s opačnou funkcí (v nulovém poli sepnuté). Doba sepnutí je okolo l ms.
3 Analýza problematiky impulsních senzorů
Strana 15
Obr. 4 Jazýčkové relé 3.2.2 Hallův senzor a spínač
Hallův spínač je nejrozšířenějším typem senzorů polohy. Jedná se o elektronický spínač ovládaný Hallovým napětím UH generovaným na elektrodách: U H = RH ⋅
kde
IP ⋅ B d
(7)
RH je Hallova konstanta B je magnetického pole Ip je proud procházející hranolem d je tloušťka hranolu
Obr. 5 Princip Hallova snímače Zesilovač UH a obvody spínače tvoří spolu s Hallovým prvkem o ploše asi 1,5 mm2 jeden integrovaný obvod. Nejvíce se využívá levné technologie CMOS. Hallovy spínače mají často jen 3 vývody (napájení, zem a výstup), přestože samotný Hallův senzor musí mít 4 vývody. Hallovy spínače se vyrábějí s různými spínacími charakteristikami (polarita, spínací a rozpínací pole, velikost hystereze) i s různě vymezenou frekvenční oblastí (tzv. dynamický typ je střídavě vázán). Používají se i spínače v diferenčním provedení, které obsahují dvě i více Hallových sond. Typické hodnoty spínacích polí jsou l mT až 10 mT.
3 Analýza problematiky impulsních senzorů
Strana 16
Obr. 6 Inteligentní Hallův senzor Obr. 6 ukazuje strukturu inteligentního Hallova senzoru s analogovým výstupem. Obvod obsahuje spínaný proudový zdroj pro napájení Hallovy destičky, teplotní korekce, A/D převodník a DSP procesor. V základním režimu pracuje s kalibračními konstantami v EEPROM paměti a analogový výstup vytváří D/A převodníkem. Do číslicového režimu se přepne zvýšením napájecího napětí. Pak lze s obvodem v servisním módu obousměrně komunikovat a data v EEPROM paměti měnit. Obvod se vyrábí i v provedení s dvoustavovým výstupem (jako programovatelný polohový spínač). 3.2.3 Magnetorezistory
Polovodičové magnetorezistory mají menší citlivost a kvadratickou charakteristiku, používají se tedy v oblasti vyšších pracovních polí (cca 0,5 T). Nicméně se tyto prvky v menší míře stále používají jako senzory polohy zejména pro velké teplotní rozsahy. Vyrábí je např. firma Murata. Feromagnetické magnetorezistory AMR (anizotropní magnetorezistory) a GMR (prvky založené na jevu gigantické magnetorezistence) jsou senzory původně vyvinuté pro čtecí hlavy magnetických disků. Zejména AMR magnetorezistory začínají v některých aplikacích nahrazovat Hallovy senzory: mají zhruba desetkrát vyšší citlivost, použitý magnet tedy může být menší nebo vzdálenost mezi senzorem a např. ozubeným kolem může být větší, což je pro hromadnou výrobu velmi důležité. AMR magnetorezistory mají lineární charakteristiku, používají se proto např. k měření vzdálenosti a úhlové polohy a pro měření magnetického pole. Na rozdíl od Hallových senzorů jsou AMR magnetorezistory citlivé na pole v rovině čipu. AMR senzory jsou použitelné i pro konstrukci kompasu. Jejich nevýhodou je možnost změny charakteristiky po působení silného pole. Proti tomu se používá periodické přemagnetování integrovanou cívkou. Výrobcem AMR senzorů jsou např. firmy Philips (řada KMZ) a Honeywell (řada HMR). 3.2.4 Indukční senzory
Impulsní generátorové čidlo tvoří cívka na jádře s trvalým magnetem. Když je čidlo v blízkosti rotující části, libovolná feromagnetická značka na hřídeli vytvoří změnu magnetického toku a indukuje v cívce napětí:
3 Analýza problematiky impulsních senzorů
U =−
kde
dΦ N dt
Strana 17
(8)
N je změna počet závitů cívky dΦ dt je změna magnetického toku
Napětí je úměrné úhlové rychlosti (rychlostní čidlo), což je hlavní nevýhoda indukčního čidla - nehodí se pro snímání malých úhlových rychlostí. Při kolísání otáček je nutné korigovat výstupní signál čidla. Výhodnější pro tyto aplikace jsou čidla polohová. S ohledem na jednoduchost a velký výstupní signál (bez pomocného zdroje) se však tento typ čidla pro měření otáček poměrně často používá a je ve výrobním programu všech předních výrobců snímačů.
Obr. 7 Indukční senzor 3.2.5 Wiegandův senzor
Je to zvláštní typ indukčního senzoru, který používá velkého Barkhausenova skoku v jednodoménovém feromagnetickém jádře. Díky tomu je tvar výstupního impulsu indukovaného do cívky při přemagnetování nezávislý na rychlosti měřeného objektu. Wiegandův senzor umístěný mezi trvalými magnety M1, M2 (obr. 8), v němž dochází k indukci napětí při změně magnetického toku, vzniklé feromagnetickými výstupky na obvodu rotujícího objektu.
Obr. 8 Wiegandův senzor 3.2.6 Praktické užití magnetického senzoru
Vytvoření značky v povrchu feromagnetika lze realizovat způsobem magnetického záznamu informace. Na tomto principu pracuje čidlo a záznamová a snímací část kanálu. Požaduje se, aby čidlo zaznamenalo na povrch hřídele co nejkratší magnetický impuls. Dále se požaduje snímání tohoto magnetického impulsu na povrchu hřídele při měření otáček v určitém aby na měřené hřídeli nebyly zbytky magnetismu. Proto je zapotřebí předchozí záznam a parazitní signály z povrchu hřídele vymazat. Na obrázku 2.6 je
3 Analýza problematiky impulsních senzorů
Strana 18
blokové schéma měřiče otáček. Čidlo Č je připojeno ke spínači S, kterým se zajišťují následující funkce: • mazání • záznam • měření
Obr. 9 Blokové schéma měřiče otáček s magnetickou značkou Ve funkci mazání je čidlo připojeno k mazacímu obvodu MO, který představuje impulsní generátor s exponenciálním poklesem proudu k nulové hodnotě. Ve funkci záznam je připojeno čidlo k záznamovému obvodu ZO, který generuje výkonový impuls o délce 0,5ms. Obě tyto funkce jsou ovládány pomocí automatiky. Ve funkci měření je signál z čidla veden do zesilovače Z přes filtr F a tvarovací obvod TO na výstup měřiče. Rozsah měřiče je 600 min-1 až 60 000 min-1. Filtr je nutný pro amplitudovou korekci signálu v požadovaném rozsahu otáček. Popsaný způsob snímání otáček hřídele je vhodný pro speciální aplikace, kde nelze dodatečně na hřídeli vytvořit značku, nebo kdy hřídel není v klidu. 3.3 Indukčnostní senzory
Indukčnostní senzory jsou pasivní senzory, v nichž je měřená veličina převáděna na změnu indukčnosti (jedna cívka, tzv. tlumivkové senzory) nebo vzájemné indukčnosti (nejméně dvě cívky - tzv. transformátorové senzory). Magnetický obvod senzorů může být otevřený nebo uzavřený, uspořádání jednoduché nebo diferenciální. Impedance senzoru s cívkou o N závitech je určena obecně vztahem: Z ( jω ) = R + jω
kde
Zm je magnetické reluktance R je ohmický odpor vinutí N je počet závitů
N2 Zm
(9)
3 Analýza problematiky impulsních senzorů
Strana 19
Indukčnostní senzory na principu vířivých proudů
Obr. 10 Princip indukčnostního senzoru Podstata těchto senzorů je znázorněna na obr. 10. Vířivé proudy jsou způsobeny střídavým magnetickým polem cívky H a vyvolají v materiálu s rezistivitou ρ a permeabilitou μ, sekundární magnetické pole o intenzitě Hv působící proti poli, které je vyvolalo (Lenzův zákon). Zmenšuje se tak intenzita původního pole, což má za následek zmenšení indukčnosti budicí cívky a zvýšení jejích ztrát, jelikož je nutné hradit energii spotřebovanou vířivými proudy na ohřev vodivého objektu. Fyzikálně hloubka vniku δ odpovídá vzdálenosti pod povrchem vodivého tělesa, ve které se magnetické pole utlumí na 1/e = 37% intenzity na povrchu. Používá-li se senzor pro měření vzdálenosti, musí se zvolit pracovní frekvence ω tak, aby údaj senzoru nebyl závislý na tloušťce měřeného objektu d, tedy aby d » δ. Použití senzorů s vířivými proudy: • měření vzdálenosti • detekce vodivých objektů (minohledačky, indukční smyčky pro detekci vozidel), • měření tloušťky vodivých vrstev • defektoskopie: hledání trhlin ve vodivých materiálech, sledování ρ a μ
Cívka senzoru je většinou navinuta na feritovém hrníčkovém jádře, což zvyšuje citlivost a fokusuje vyzařované pole. Převážná většina vyráběných senzorů má dvoustavový výstup (polohové spínače). Vyhodnocovací obvody těchto jednoduchých senzorů bývají založeny na LC oscilátoru nebo cize buzeném LC rezonančním obvodu.
Obr. 11 Provedení indukčnostního senzoru
3 Analýza problematiky impulsních senzorů
Strana 20
3.4 Fotoelektrické senzory
Pro správnou funkce fotoelektrického impulsního čidla otáček je nezbytné optimální řešení zdroje záření, dráhy světelného paprsku k rotující části (hřídeli) a od rotující části zpět k čidlu. Světelný paprsek je hřídelí cloněn (přerušován) nebo odrážen. Soustředění světelného paprsku do definovaného místa na hřídeli vyžaduje pomocnou optiku, která se skládá z: • čočky • zrcadla • optického vlákna (světlovou)
Pro fotoelektrická impulsní čidla je výhodné použití optronů. Příklady možného uspořádání zdroje světla, optické části a čidla záření jsou na obr. 12. Jde o reflexní čidlo otáček. Na obr. 12 a) je zdroj záření oddělen od čidla. Toto uspořádání je choulostivé na nastavení, používá se proto výjimečně. Na obr. 12 b) je využito polopropustné zrcadlo. Další možné řešení se zdrojem a čidlem záření v jedné ose se používá buď s čočkou obr.12 c), nebo se dvěma zrcadly obr.12 d). U čočky je čidlo záření orientováno směrem ke hřídeli. Je necitlivé ze strany zdroje záření. Tento princip byl použit např. u otáčkoměru PU420 (bývalá Metra Blansko). Fototranzistor byl zasunut do otvoru, který byl vyvrtán v čočce. Obdobné řešení se zrcadlovou optikou je na obr.12 d). Na obr. 12 e) je čidla otáček se světlovodem. Optické spojení zdroje a čidla záření je pomocí sdružovače S. Toto uspořádání je velmi výhodné obzvláště pro speciální využití, jako je např. špatně přístupné místo měření, přenos signálu zevnitř stroje, nedostatečné místa pro uložení čidla, přenos signálu na větší vzdálenosti apod.
Obr. 12 Základní typy fotoelektrických impulsních čidel
3 Analýza problematiky impulsních senzorů
Strana 21
3.5 Impedanční senzory
Jsou to indukčnostní nebo kapacitní čidla, která při otáčení hřídele skokově mění některý ze svých elektrických parametrů. Značka vytvořená na hřídeli je součástí indukčního nebo kapacitního čidla. Vyhodnocení změny impedance se provádí můstkem, děličem napětí apod. Toto řešení představuje polohové čidlo, jehož amplituda výstupního signálu je závislá na úhlové výchylce, nikoliv na úhlové rychlosti. Velmi časté je zapojení indukčnostního nebo kapacitního čidla do obvodu oscilátoru (oscilátorová čidla). Pro jeho správnou funkci jako čidla otáček musí být splněna podmínka, že frekvence oscilátoru je vyšší než frekvence změn odpovídající nejvyšším měřeným otáčkám. Oscilátorová čidla se velmi často používají pro měření otáček. 3.6 Speciální senzory
Do speciálních čidel se zahrnují čidla využívající laseru, čidla pro extrémně malé úhlové rychlosti (Sagnacův jev), čidla využívající ionizujícího záření apod. Patří sem též fluidiková čidla otáček. Zajímavé je také využití korelačního principu. Použitelná je i metoda využívající jevu, se kterým se setkáváme při osvětlení povrchu hřídele koherentním světlem laseru. Osvětlený povrch hřídele se chová jako velký počet elementárních zdrojů světla, ze kterých se světlo šíří kulovými vlnoplochami do prostoru a které navzájem spolu interferují. Vytváří se svazek směrově orientovaných laloků, které se při zobrazení projevují jako skvrnky (speckles – koherentní zrnitost). Hustota a velikost skvrnek je závislá na jakosti a opracování povrchu tělesa, od něhož se světlo laseru odráží. Pohybuje-li se předmět, na který koherentní světlo dopadá úhlovou rychlost ω , pohybují se průměrnou rychlostí i skvrnky v rozptýleném světle.
Obr. 13 Princip čidla rychlosti laserem Jestliže se do definované vzdálenosti L (obr. 13) umístí optická mřížka s mřížkovou konstantou odpovídající velikosti skvrnek, dostaneme ve fotoelektrickém čidle za mřížkou signál, jehož frekvence je úměrná rychlosti předmětu. Parazitní vliv způsobuje kolísání intenzity rozptýleného světla nestejnou reflexí měřeného povrchu. Další metoda měření úhlové nebo přímočaré rychlosti těles spočívá ve využití Dopplerova jevu. Princip je na (obr. 14). Paprsek vycházející z laseru se dělí na dva rovnoběžné svazky, které se soustřeďují pomocí objektivu do bodu A. Zde, kde se paprsky protínají, se měří rychlost. Elementární plochy povrchu tělesa, procházející tímto bodem, rozptylují světlo, které dopadá na fotoelektrické čidlo FD.
3 Analýza problematiky impulsních senzorů
Strana 22
Obr. 14 Princip měřiče rychlosti využívajícího Dopplerův jev Na výstupu je signál o frekvenci:
fD =
2ω sin
λ
α 2
(10)
ω je měřená úhlová rychlost elementárních ploch, ležících v rovině paprsku; je kde kolmá k ose obou paprsků α úhel mezi osami obou paprsků λ vlnová délka zdroje světla
Obr. 15 Interference dvou rovinných vln Toto diferenční uspořádání je patrné z obr. 15. V průsečíku obou paprsků vzniká interferencí optické pole, v němž se střídají maxima a minima intenzity světla. Vzdálenost mezi maximy je: a=
λ 2 sin
α
(11)
2
Pohybem jedné odrazové plošky tímto interferenčním polem směrem kolmým na interferenční roviny bude světlo rozptýlené touto ploškou intenzivně modulováno frekvencí: fD =
ω a
(12)
Nezbytnou podmínkou pro funkci je přítomnost rozptylových plošek na povrchu měřené části (hřídele).
Strana 23
4 Popis použitých prostředků Prostředky které jsem potřeboval a využil v této práci jsem rozdělil do dvou základních kategorií, do kterých se rozděluje většina zařízení a to na HW a SW. 4.1 Hardware
Hardware je pevná součástková základna, kde některé součástky mají funkci přesně danou a některé pracují podle programu, jenž lze měnit či modifikovat. HW prostředky pro řešení této diplomové práce byly zastoupeny osobním počítačem, v tomto případě notebook Acer TravelMate 2413NLM, externí průmyslová vstupně/výstupní jednotka DataLab IO/USB, programovatelným automat Siemens Simatic S7-200 CPU224, generátor funkcí Agilent 33220A a osciloskop Tektronix TDS2012. 4.1.1 Notebook Acer TravelMate 2413NLM
Notebook TravelMate 2413NLM jsem použil k řešení mé diplomové práce. Je to model ze základní řady firmy Acer za příznivou cenu. Tento notebook, je vybaven procesorem Intel Celeron M 1,5GHz, který sice patří na spodní příčky ve výkonu v mobilní oblasti, ale je srovnatelný s procesorem Intel Pentium 4 2,2GHz pro desktopové počítače. Tedy z hlediska výkonu, by měl plně vyhovovat nárokům používaného SW Control Web 5 a Matlab7.1. Další nutná věc pro spolehlivou komunikaci s externím zařízením je USB port. Tento notebook obsahuje čtyři USB 2.0 porty. V jednom portu byla vždy zapojena optická myš Logitech a v druhém DataLab IO/USB, což by nemělo ovlivňovat rychlost vyhodnocování údajů. Jinak další technické údaje o notebooku jsou níže.
Obr. 16 Notebook Acer TravelMate 2413 Technické specifikace:
Předinstalovaný operační systém • Microsoft® Windows® XP Professional Edition (v české verzi)
Procesor a čipová sada • Procesor Intel® Celeron® M 370 (1.5GHz, 400MHz FSB, 1 MB L2 cache
4 Popis použitých prostředků
Strana 24
• Čipová sada Intel® 910GM
Operační paměť • 512MB DDRII paměti
Pevný disk • 40GB ATA/100
Optická mechanika • DVD+/-RW DL
Display • 15”XGA TFT LCD displej s rozlišením 1024 x 768 bodů, 16,7 milionů barev
Grafika • Integrovaný 3D grafický čip Intel® 910GML 128 MB VRAM
Rozhraní • 4x USB 2.0 • 1x VGA • 1x PC Card slot (typu II) • 1x Modem (RJ-11) port • 1x Ethernet (RJ-45) port • 1x reproduktor/sluchátka/line-out • 1x mikrofon/line-in • 1x konektor DC pro AC adaptér 4.1.2 Externí průmyslová vstupně/výstupní jednotka DataLab IO/USB
Tato externí jednotka je hlavní HW částí této diplomové práce. Je nutné ji použít a oživit v SW prostředích programů ControlWeb5 a Matlab. Pro svou práci budu využívat tří hlavních vstupních jednotek. A to analogovou, digitální a čítačovou. Všechny jsou popsány včetně CPU modulu níže. Ovladače nutné pro rozeznání v operačním systému MS Windows XP jsou zdarma dodávány či je je možné stáhnout z firemního webu a byly nainstalovány pro bezchybný chod tohoto zařízení. Průmyslové vstupně/výstupní jednotky DataLab IO/USB jsou určeny pro spolupráci s nadřazeným počítačem, pro který zprostředkovávají měření (čtení) i nastavování (zápis) veličin. Jednotky DataLab IO/USB komunikují s počítačem po velmi rychlé standardní sériové sběrnici USB (Universal Serial Bus). USB se stal zcela všeobecně uznávaným standardem, který nahrazuje zastarávající sériové linky a jiná rozhraní. Dnes již není možné koupit počítač bez rozhraní USB-naopak stále častěji se prodávají počítače, které nejsou vybaveny tradiční sériovou linkou RS-232C. Návrh jednotek DataLab IO/USB je důsledné modulární. Každá jednotka má 4 pozice, do kterých lze zasunout vstupně/výstupní moduly podle potřeb aplikace. Lze tak libovolné kombinovat moduly pro 8 logických vstupu s moduly obsahujícími 8 logických výstupu ať již s relé či výstupními tranzistory s otevřeným kolektorem. K dispozici jsou i
4 Popis použitých prostředků
Strana 25
moduly přesných 16bitových analogových vstupu a množina I/O modulu není uzavřena a další typu modulu přibývají. Je také možné osadit jen část pozic, pokud jsou požadavky na pocty vstupu/výstupu menší než je kapacita jedné jednotky. Samozřejmě také lze k jedinému počítači připojit více jednotek a tím pocty vstupu/výstupu zvýšit. Pokud počet USB rozhraní v počítači nestačí (běžně bývá k dispozici 2 až 6 USB portu), je možné pomocí USB rozbočovače (USB Hub) počet portu zvýšit. Přenosová kapacita USB je hodně vyšší než je potřebné pro průmyslové aplikace a tak rozdělení kapacity jediného USB portu mezi více jednotek nepřináší podstatné snížení propustnosti. Jednotky DataLab IO/USB s napájením z USB sběrnice jsou tedy vhodné nejen pro pevné zabudování do rozvaděčů, ale také jako přenosné jednotky pro laboratorní měření, pro školní experimenty a laboratorní cvičení, apod. Mohou být snadno připojeny k notebookům a přenosným počítačům, v nichž není možné použít měřicí karty a které stále častěji nebývají vybaveny klasickým sériovým rozhraním. CPU modul pro DataLab IO/USB
• 4 sloty pro vstupně/výstupní moduly • USB konektor • Možnost externího napájení • Volitelná montáž na DIN lištu
Procesorová jednotka systému DataLab IO/USB obsahuje USB rozhraní, napájecí konektor a 4 sloty pro vstupně/výstupní moduly. CPU modul je umístěn v robustní kovové skříňce. Jednotka je základní součástí modulárního systému. Parametry modulu: • Napájení z USB sběrnice či externí 10–40Vss • Spotřeba 60mA bez modulu • Rozměry šířka × délka × výška = 165 × 154 × 23mm (bez DIN klipu)
Obr. 17 DataLab IO/USB na sběrnici DIN
4 Popis použitých prostředků
Strana 26
Modul digitálních vstupů
• 8 digitálních vstupu • Libovolná polarita signálu • Galvanické oddělení vstupu navzájem
Modul DL-DI1 obsahuje 8 galvanicky navzájem oddělených digitálních vstupu. Logická jednička vstupu je indikována LED. Mezní vzorkovací kmitočet je dán dobou komunikace mezi jednotkou DataLab IO/USB a nadřazeným počítačem. Doba jediné komunikace je kolem 3ms, tedy vzorkovací frekvence je asi 300 Hz. Tato doba ale závisí na použitém počítači, jeho USB rozhraní a také na vytíženosti USB sběrnice-pokud je jednotka zapojena pres rozbočovač a jiné zařízení se také snaží komunikovat s počítačem, doba odezvy se muže zvýšit. Na druhé straně odezva systému se nezvyšuje při manipulaci s více kanály jediného moduluodezva je stejná bez ohledu na to zda je zapisován jediný bit nebo všech 8 bitu. Optické oddělení vstupu je nezávislé na polaritě, takže modul muže číst také střídavé (AC) vstupy. Pravidla pro vyhodnocování logických úrovní střídavých vstupu jsou uvedena v popisu ovladače modulu DataLab IO/USB. Parametry modulu: • Vstupní odpor 4 700Ω • Prahová napětí ±0–1V je logická nula a ±3–30V je logická jednička
Obr. 18 Modul digitálních vstupů s optickým oddělením Modul digitálních čítačů
• 4 digitální galvanicky oddělené čítače • Rozsah čítačů 24 bitu (0 až 16 777 215) • Maximální vstupní frekvence 25 kHz při střídě 1:1 • Dva čítače s alarmovým výstupem při překročení přednastavené hodnoty • Dva čítače s možností vnějšího řízení čítání
Modul DL-CNT1 obsahuje 4 čítače s rozsahem 24 bitu (číselný rozsah každého čítače je 0 až 16 777 215). První dva čítače mají oproti druhé dvojici více možností konfigurace (funkce druhých dvou čítačů je omezena na prosté čítání a nulování). Režimy
4 Popis použitých prostředků
Strana 27
čítače (povolení čítání, volba úrovní apod.) jsou nastavovány programové. Podrobný popis nastavení režimu je uveden v popisu ovladače modulu DataLab IO/USB. Funkce prvních dvou čítačů (čítače 0 a 1) muže být rozšířena: • Po překročení hodnoty zapsané do porovnávacího kanálu muže být nastaven alarmový výstup. Logika alarmového výstupu (aktivní v 0 nebo 1) je nastavitelná v konfiguraci čítače X. • Čítání muže být ovlivňováno vnějším vstupem (gate). Logika vnějšího vstupu (aktivní v 0 nebo 1) je nastavitelná v konfiguraci čítače. Jako vnější vstupy jsou použity vstupy druhých dvou čítačů (k povolení čítání čítače 0 slouží vstup čítače 2, k povolení čítání čítače 1 slouží vstup čítače 3).
Mezní kmitočet vstupního signálu zaručující bezchybné čítání je 25 kHz při střídě 1:1. Pokud střída vstupního signálu není 1:1, je mezní kmitočet snížen tak, aby vstupní signál setrvával v každém logickém stavu minimálně 20 μs. Např. při střídě 1:4 je tedy mezní kmitočet 10 kHz. Parametry modulu: • Prahová napětí pro TTL vstupy je logická nula 0–1V a logická jednička 3–8V • Prahová napětí pro 24V vstupy je logická nula 0–2V a logická jednička 8–30V
Obr. 19 Modul digitálních čítačů Modul analogových vstupů
• 8 analogových vstupu • 16bitový delta-sigma převodník • Bipolární diferenční vstupy • Galvanicky oddělená signálová část • Vstupy 0 až ±20V, 0 až ±20mA
Modul DL-AI1 obsahuje osm diferenčních analogových vstupu. Pomocí propojek lze nastavit každý vstup zvlášť pro napěťový nebo proudový signál. Indikační LED č. 1 signalizuje přítomnost napájecího napětí modulu. Mezní vzorkovací kmitočet 20 Hz je limitován rychlostí A/D převodu. Doba komunikace mezi jednotkou DataLab IO/USB a nadřazeným počítačem je asi 4 ms a vzhledem k době převodu nemá podstatný vliv na rychlost získávání hodnot do počítače.
4 Popis použitých prostředků
Strana 28
Parametry modulu: • Proudový vstupní signál má vstupní odpor 120 a rozsah vstupu 20mA • Napěťový vstupní signál má vstupní odpor 1,25MΩ a rozsahy vstupu ±20 V 40V; ±10 V 20V; ±5 V 10V; ±2,5 V 5 V; ±5 V 10 V; ±2,5 V 5 V; ±1,25 V 2,5V; ±0,625 V 1,25V dle nastavení jumperů BIAS a mód
Obr. 20 Modul analogových vstupů V této kapitole jsem využíval informace z literatury [4]. 4.1.3 PA Siemens Simatic S7-200 CPU 224
Pro výpomoc s řešením práce, byl vybrán PA Simatic S7–200 s CPU 224. Bude použit jen jako generátor pomocného kmitočtu. Proto jeho popis bude jen krátký. Simatic S7-200 je řada malých programovatelných automatů určených k řízení v jednodušších automatizačních aplikacích. S7-200 sleduje stav vstupů a podle uživatelského programu řídí výstupy. Uživatelský program může obsahovat Booleovu logiku, čítače, časovače, matematické operace a komunikace s jinými zařízeními. Automat S7-200 má několik výhod, jako například malý a kompaktní design, výkonnou instrukční sadu, která je pro všechny typy CPU stejná, systém časových přerušení i přerušení od události, vysokorychlostní čítače do 30 kHz a pulzní výstupy do 30 kHz, a je tedy výborným řešením pro řízení široké škály automatizačních aplikací v technické praxi.
Obr. 21 PA Siemens Simatic S7-200 CPU 224 V této kapitole jsem využíval informace z literatury [5].
4 Popis použitých prostředků
Strana 29
4.1.4 Generátor funkcí Agilent 33220A
Pro měření přesnosti všech metod čítání byl použit, jako zdroj měřeného kmitočtu, generátor funkcí Agilent 33220A. Kmitočet tohoto generátoru je řízen krystalem, proto vykazuje vysokou přesnost a stabilitu výstupního signálu. Generátor Agilent 33220A nabízí 11 standardních frekvenčních signálů a další lze naprogramovat. Dále uvádím několik specifikací tohoto přístroje: • přesnost 20*10-6 Hz • 20 mHz sinusový a čtvercový signál • ramp, trojúhelníkové, šumové a poruchové signály • signál s volitelnou hranou pulzu • AM, FM, PM, FSK a PWM modulace • grafický mód pro ověření jednotlivých nastavení • připojení k jinému zařízení přes kabely USB, GPIB a LAN • software IntuiLink od firmy Agilent Technologies
Obr. 22 Generátor funkcí Agilent 33220A V této kapitole jsem využíval informace z literatury [6]. 4.1.5 Osciloskop Tektronix TDS2012
Osciloskop byl použit pro zjištění parametrů signálu, vystupujícího z PA a braného, jako referenční frekvence. Osciloskop Tektronix s barevným VGA LCD displejem TDS 2012 má šířku kmitočtového pásma 100 MHz, vysokou vzorkovací rychlost 1 GS/s. Některé funkce osciloskopu jsou uvedeny zde: • měření v kmitočtovém pásmu DC - 100 MHz • 2 kanály: 2mV/dílek - 5V/dílek • speciální barevný velký LCD displej (8 x 10 cm (dílků); úhlopříčka 120 mm) • 2 x 8 bit A/D převodník • dvě časové základny se spouštěním • vzorkovací rychlost 1GS/s
4 Popis použitých prostředků
Strana 30
• FFT analýza • kurzory a matematické funkce • paměť pro uchování nastavení přístroje a průběhů • napěťové a proudové sondy • software v českém prostředí • AUTOSET • podrobná pomoc
Obr. 23 Osciloskop Tektronix TDS2012 V této kapitole jsem využíval informace z literatury [7]. 4.2 Software
Dalším důležitým dílem této práce je SW, který musím použít dle zadání. Hlavní jsou tyto dva, tedy Control Web 5 a Matlab s toolboxem Simulink. Pomocí obou programů se musím pokusit oživit a použít externí modul DataLab IO/USB pro čítání impulsů. Dále krátce popíši i další pomocný SW, nutný pro tuto práci. 4.2.1 Control Web 5
Tento program je hlavní v této práci. V něm musím oživit externí modul DataLab IO/USB a určitým způsobem využít co nejvíce vstupních modulů k měření, tedy čítání impulsů. Definovat co je Control Web nebo vyjmenovat všechny jeho vlastnosti je na omezeném prostoru prakticky nemožné. Pro někoho je Control Web přístupný nástroj, který umožní levně realizovat řízení např. malé vodní elektrárny. Pro někoho jiného je to prostředek tvorby rozsáhlé podnikové distribuované aplikace s desítkami tisíc měřených bodů a obsahující stovky operátorských obrazovek, pracující na řadě počítačů zapojených do sítě. Nebo může Control Web pracovat jako programový most mezi SQL databází, WWW prohlížeči a GSM sítí. Pro řadu studentů je to nástroj, který jim ušetří spoustu práce s laboratorními pracemi, neboť automatizovaně provádí měření a tvoří protokoly. Control Web je univerzální nástroj pro vývoj a nasazování vizualizačních a řídicích aplikací, aplikací sběru, ukládání a vyhodnocování dat, aplikací rozhraní člověkstroj. Unikátní objektově-orientovaná komponentová architektura zajišťuje aplikacím
4 Popis použitých prostředků
Strana 31
systému Control Web nejširší rozsah nasazení od prostých časově nenáročných vizualizací až po řídicí aplikace reálného času. Hlavním cílem návrhu systému Control Web je učinit realizaci běžných úkolů snadnou a neobvyklých, komplikovaných úkolů možnou. Samozřejmě při respektování všech existujících standardů pro běh programů a jejich uživatelské rozhraní, výměnu dat a přístup k databázím, komunikaci po počítačových sítích a spolupráci s hardware pro sběr dat a řízení. Control Web pracuje v prostředí operačních systémů implementujících aplikační programové rozhraní Win32 a podporuje řadu průmyslových standardů a de facto standardů. Control Web koncepčně vychází z osvědčené architektury svých předchůdců Control Panel a Control Web 2000. Nasazení těchto systémů od jaderných elektráren a celopodnikových vizualizačních systémů až po přímé řízení strojů a jednoduché vizualizace dokazuje velmi široké možnosti této architektury. Zachováním vzestupné kompatibility zároveň chrání investice do existujících aplikací, vzdělání a know-how. Co je Control Web?
• Programový systém rychlého vývoje aplikací pro průmysl, laboratoře, školy,... • Vizualizace a řízení technologických procesů v reálném čase • Most mezi technologií a informačním systémem podniku • Rozhraní člověk-stroj • Přímé řízení strojů a technologií • Simulace, výzkum, vývoj a výuka (třeba LF UK) Podpora hardware
• Control Web je důsledně navrhován jako systém nezávislý na hardware • S patřičným ovladačem komunikuje s jakýmkoliv průmyslovým zařízením jako PLC (Siemens, Mitsubishi, Omron, Teco, Allen-Bradley, ABB, Honeywell, …), I/O moduly (DataLab IO, ELSACO, ADAM, …), měřicí karty (Advantech, Axiom, Tedia, …) či „virtuální“ zařízení, např. WWW server apod. • Architektura ovladačů je otevřená a pečlivě dokumentovaná, každý může implementovat vlastní ovladač Přístup k aplikaci přes WWW browser („tenký klient“)
• Control Web obsahuje zabudovaný HTTP server a dokáže vytvářet dynamické aplikace založené na WWW technologiích, zpřístupňované prostřednictvím standardních WWW prohlížečů • Je možné vytvářet serverové aplikace pro klienty na plnohodnotných PC i na mobilních telefonech • Bohatost aplikace lze nastavovat podle požadavků na přístup z různých klientů (čisté HTML, DHTML/CSS, Java, ActiveX, ...) Snadná a rychlá tvorba aplikací
• Vývoj nesmí být drahý
4 Popis použitých prostředků
Strana 32
• Aplikace je často nasazena jednou nebo jen několikrát, další nasazení vyžadují modifikace • Vývoj musí být rychlý • Zákazník nechce čekat měsíce (nebo roky) na doladění systému, odstranění chyb, … • Programátoři nemají čas studovat nové architektury, nové vývojové nástroje, chtějí použít co už znají Integrované vývojové prostředí
• Tvorba aplikace drag-and-drop • Komponenty (virtuální přístroje) aplikace přetahovány z palety • Modifikace parametrů v dialogových oknech • Přístrojový inspektor modifikuje specifické parametry daného virtuálního přístroje • K tvorbě aplikace není zapotřebí znalost programování • Funkce aplikace řízena parametry a výrazy • Programovací jazyk je k dispozici pro řešení náročnějších požadavků zákazníků • Grafický vývoj aplikací
Obr. 24 Ukázka aplikace v programu ControlWeb 5 V této kapitole jsem využíval informace z literatury [8].
4 Popis použitých prostředků
Strana 33
4.2.2 Matlab 7.1
Toto je druhý důležitý program této práce a v něm opět musím pokusit oživit a využít externí modul DataLab IO/USB. Protože nemám k tomuto modulu vhodné ovladače, budu muset vymyslet jiný způsob řešení. MATLAB je špičkové integrované prostředí pro vědeckotechnické výpočty, modelování, návrhy algoritmů, simulace, analýzu a prezentaci dat, měření a zpracování signálů, návrhy řídicích a komunikačních systémů. MATLAB je nástroj jak pro pohodlnou interaktivní práci, tak pro vývoj širokého spektra aplikací. Výpočetní systém MATLAB se během uplynulých let stal celosvětovým standardem v oblasti technických výpočtů a simulací nejen ve sféře vědy, výzkumu a průmyslu, ale i v oblasti vzdělávání. MATLAB 6 je považován za přelom nejen z hlediska rozsahu, integrace a kvality produktu, ale především z hlediska vztahu k uživateli a jeho pohodlí při práci. MATLAB poskytuje svým uživatelům nejen mocné grafické a výpočetní nástroje, ale i rozsáhlé knihovny funkcí spolu s výkonným programovacím jazykem čtvrté generace. Knihovny jsou svým rozsahem využitelné prakticky ve všech oblastech lidské činnosti. Díky své architektuře je MATLAB určen zejména těm, kteří potřebují řešit početně náročné úlohy a přitom nechtějí nebo nemají čas zkoumat matematickou podstatu problémů. Otevřená architektura MATLABu vedla ke vzniku knihoven funkcí, nazývaných toolboxy, které rozšiřují použití programu v příslušných vědních a technických oborech. Tyto knihovny, navržené a v jazyce MATLABu napsané nejvýznačnějšími světovými odborníky, nabízejí předzpracované specializované funkce, které je možno rozšiřovat, modifikovat, anebo jen čerpat informace z přehledně dokumentovaných algoritmů. Toolbox Simulink
Tato práce má být v prostředí Matlab hlavně vytvořena v toolboxu Simulink, který je k tomuto řešení vhodný. Simulink je program pro simulaci a modelování dynamických systémů, který využívá algoritmy MATLABu pro numerické řešení nelineárních diferenciálních rovnic. Poskytuje uživateli možnost rychle a snadno vytvářet modely dynamických soustav ve formě blokových schémat a rovnic. Pomocí Simulinku a jeho grafického editoru lze vytvářet modely lineárních, nelineárních, v čase diskrétních nebo spojitých systémů pouhým přesouváním funkčních bloků myší. Simulink nově umožňuje spouštět určité části simulačního schema na základě výsledku logické podmínky. Tyto spouštěné a povolované subsystémy umožňují použití programu v náročných simulačních experimentech. Samozřejmostí je otevřená architektura, která dovoluje uživateli vytvářet si vlastní funkční bloky a rozšiřovat již tak bohatou knihovnu Simulinku. Hierarchická struktura modelů umožňuje koncipovat i velmi složité systémy do přehledné soustavy subsystémů prakticky bez omezení počtu bloků. Simulink, stejně jako MATLAB, dovoluje připojovat funkce napsané uživateli v jazyce C. Vynikající grafické možnosti Simulinku je možné přímo využít k tvorbě dokumentace. Mezi neocenitelné vlastnosti Simulinku patří nezávislost uživatelského rozhraní na počítačové platformě. Přenositelnost modelů a schémat mezi různými typy počítačů umožňuje vytvářet rozsáhlé modely, které vyžadují spolupráci většího kolektivu řešitelů na různých úrovních.
4 Popis použitých prostředků
Strana 34
Obr.25 Ukázka aplikace v programu Matlab-Simulink V této kapitole jsem využíval informace z literatury [9] a [10]. 4.2.3 OPC servery
Pro řešení práce v programu Matlab využiji jeho schopnosti pracovat s OPC servery. Umí jak číst, tak do nich zapisovat. Z důvodu funkčnosti je nutné použít dva OPC servery a jeden OPC manager. Důvody budou popsány v řešení diplomové práce. OLE for Process Control (OPC) je technologie navržená pro propojení Windowsbased aplikací s hardwarem pro řízení technologií. Je to otevřený standard zajišťující nepřetržité získávání dat z připojených HW zařízení. Metody získávání dat jsou nezávislé na typu připojeného zařízení. Díky tomu si koncový uživatel může vybrat libovolný software a hardware, podporující standard OPC a nemusí si dělat starosti s dostupností komunikačních driverů pro jednotlivá zařízení. Existují 2 druhy OPC komponent: • OPC klient je aplikace, která získává data z OPC serveru a dále je zpracovává. • OPC server poskytuje OPC klientovi data. Je to aplikace vytvořená specificky pro jednotlivá HW zařízení. Vyčítá data ze zařízení a zpřístupňuje je OPC klientovi.
OPC klient komunikuje s OPC serverem pevně definovaným rozhraním. Díky tomu může libovolný OPC klient komunikovat s jakýmkoliv OPC serverem bez ohledu na to, pro jaké konkrétní zařízení byl OPC server vytvořen. OPC standard využívá pro komunikaci mezi klientem a serverem technologie Microsoft OLE, která je již řadu let důkladně prověřená a spolehlivá.
4 Popis použitých prostředků
Strana 35
Obr. 26 Struktura OPC OPC server pro ovladače systému Control Web Univerzální OPC server je zcela nový produkt, ke komunikaci se zařízením využívá ovladače systému Control Web 5. Pro všechna zařízení, k nimž existuje ovladač kompatibilní se systémem Control Web 5, existuje nyní také plnohodnotný OPC server. Použil jsem ho k získávání dat z externího modulu DataLab IO/USB, se kterým tento OPC server umí komunikovat. MatrikonOPC Server for Simulation Tento univerzální OPC server se specializuje na testování, rozvoj a konfiguraci aplikací, OPC klientů a spojení. Jeho hlavní výhodou jsou proměnné, které dovedou simulovat běh určitého zařízení. Tedy přesněji, generují náhodné hodnoty, které můžeme využít při testování. Také se dá využít proměnných čistě jako u klasického OPC serveru. Použil jsem ho z důvodu, že program Matlab neumí číst hodnoty z OPC serveru pro ovladače systému ControlWeb 5 a právě z tohoto serveru to zvládá. MatrikonOPC Data Manager MatrikonOPC Data Manager je program, který přenáší data z jednoho OPC serveru na další. Protože občas potřebujeme propojit dva OPC servery, což jednoduchým způsobem nejde, právě pro tuto činnost je vytvořen tento program. V aplikaci vidíme OPC servery a jednoduchým tažením, propojujeme jednotlivé proměnné z OPC serverů, čímž dochází k jejich vzájemnému propojení a následnému přenosu dat mezi oběma OPC servery. Protože bylo nutno výše uvedené OPC servery spolu propojit, použil jsem proto tento program. Jeho výhodou je jednoduchost a stabilita.
V této kapitole jsem využíval informace z literatury [11], [12] a [13]. 4.2.4 Programovací jazyk STEP 7 – Micro/WIN
Tento program by použit pro vytvoření jednoduchého řídícího programu, který slouží k tomu, aby PA Simatic S7-200 generoval různé referenční frekvence. Činnost PA je dána řídícím programem. Programování SIMATICU S7–200 se nejčastěji provádí pomocí vývojového prostředí STEP 7 Micro/WIN, které nabízí přehledné a efektivní programovací prostředí pro tvorbu řídícího programu. Tento program nabízí více druhů zápisu programu dle normy IEC 1131, ale já jsem použil tento:
4 Popis použitých prostředků
Strana 36
Jazyk mnemokódů Tento editor umožňuje psát program přímo instrukcemi. Program je znázorňován jako znakově orientovaný programovací jazyk. Hlavní výhodou tohoto editoru je možnost psát složité programy. Tento editor je nejpoužívanější u zkušených programátorů. Příklad programu napsaného mnemokódem:
LD O A =
I0.0 I0.2 I0.3 Q0.1
//Načtení jednoho vstupu //Logický součet s jiným vstupem //Logický součin //Zapsání hodnoty na výstup
Strana 37
5 Měření kmitočtu Hlavním úkolem této práce je měřit či čítat impulsy a vyhodnocovat co nejrychleji jejich frekvenci. Způsobů měření frekvence je více. Základní je měření počtu impulsů za časový interval, podobně jako to využívají klasické čítače. Další metodou je využití pomocné referenční frekvence či měření délky mezi impulsy. Dále budou popsány všechny tyto metody, bude vyhodnocena chyba při měření a popsány výhody a nevýhody jednotlivých metod. 5.1 Klasické měření kmitočtu za časový interval
U většiny prostředků, měřících a vyhodnocujících kmitočet, je princip založen na načítání celých period, které proběhnou za daný časový interval. Do paměti je tato hodnota ukládána pro její využití v následujících výpočtech a vyhodnocení. Většinou se čítá po dobu 1 sekundy a výsledná frekvence je v zobrazena v celých Hz.
Obr. 27 Princip klasického měření kmitočtu Výpočet frekvence: fn =
kde
n tM
(13)
fn je naměřená frekvence n je počet hran impulsů v intervalu tM tM je čas měření
Analýza chyby
Toto intervalové měření je spíše vhodné pro měření mnohem kratších časů mezi impulsy, než je základní čas měření. Další nevýhodou je to, že např. pro čas měření 1s je možno naměřit jen frekvenci v řádu Hz. Tedy nikdy nemůžeme naměřit např. 15,3Hz, zobrazí se nám jen 15Hz a taktéž nikdy nenaměříme menší frekvenci než 1Hz. Což je již první zanesení chyby do měření. Pokud by jsme chtěli tuto přesnost zvýšit např. abychom mohli měřit s přesností na desetiny Hz, pak by jsme museli prodloužit dobu měření na 10s. Tedy čím přesnější výsledek, tím se musí doba měření prodlužovat. Ale to je nechtěný jev, my potřebujeme pro měření a regulaci výsledky co nejčastěji aktualizovat, abychom mohli pohotově reagovat na změny. Chyba se projevuje hlavně tím, že začátek a konec měření probíhá stále stejně v určitém intervalu, avšak měřená frekvence, tedy spíše její první a poslední náběžná hrana začínají různě. To může vést až ke zkreslení dvěma periodám, což vidíme na obr. 27.
5 Měření kmitočtu
Strana 38
Tato věc způsobuje různé výsledky měření, kdy naměříme n či n-1 náběžnou hranu. n n −1 či f n = . A zde vidíme vznik chyby. Tato chyba se Převedeno na vzorce f n = tM tM nejvíce projevuje u frekvencí blížících se obrácené hodnotě času měření. Chyba může být až 100%. Čím má měřená frekvence vyšší kmitočet vůči obrácené hodnotě času měření, tím je chyba menší. Pro příklad uvedu vyhodnocení pro frekvenci f = 9,99Hz. Tuto frekvenci jsem vybral protože se na ní dá nejlépe ukázat velikost chyby. Je to hodnota, která se blíží obrácené hodnotě času měření v první části: 1) čas vyhodnocení 0,1s n 1 fn = = = 10 Hz a chyba je: t 0,1
δf = kde
Δf f
=
fn − f f
(14)
δf je relativní chyba Δf je absolutní chyba f je skutečná frekvence
po dosazení δf =
Δf f
=
fn − f f
=
10 − 9,99 9,99
= 0,001 ⇒ 0,1%
0 − 9,99 0 = 0 Hz a chyba je δf = = 1 ⇒ 100% 0,1 9,99 Chyba je až 100%, což je nepřípustné. Je to způsobeno tím, že měřená frekvence se blíží obrácené hodnotě času měření.
Ale také můžeme naměřit f n =
2) čas vyhodnocení 1s 10 − 9,99 10 fn = = 10 Hz a chyba je δf = = 0,001 ⇒ 0,1% a druhá možnost je 1 9,99 9 − 9,99 9 f n = = 9 Hz a chyba je δf = = 0,1 ⇒ 10% 1 9,99 Z výsledků lze vyčíst asi 10x menší chybu způsobenou právě prodloužením doby měření, ale také 10x pomalejší vyhodnocování, které je nechtěné. 3) čas vyhodnocení 10s 10 − 9,99 100 fn = = 10 Hz a chyba je δf = = 0,001 ⇒ 0,1% a druhá možnost je 10 9,99 9,9 − 9,99 99 fn = = 9,9 Hz a chyba je δf = = 0,01 ⇒ 1% 10 9,99 Z výsledků opět vidíme zmenšení chyby 10x. Doba měření je ale 10s a to je při rychlém vyhodnocování naprosto nepoužitelné.
5 Měření kmitočtu
Strana 39
Z příkladu vyplívá, že pokud chceme mít chybu měření nízkou, musí pak doba měření tM být minimálně o 2 - 4 řády delší, než je doba měřené periody. Pokud bychom brali vždy max. chybu, vyšel by nám pro dobu měření 1s přibližně takový graf: Relativní chyba 120
Chyba v %
100 80 60 40 20 0 1
10
100
1000
10000
Frekvence v Hz
Graf 1 Relativní chyba měření pro dobu měření 1s 5.2 Okamžité měření kmitočtu za pomoci referenční frekvence
Pro přesné vyhodnocování okamžitých otáček je nutné použít odlišnou metodu, než předchozí, která je vhodná pro úlohy, využívající PC nebo PA. Tedy kde je možnost využití pomocné referenční frekvence. Tato metoda využívá pro vyhodnocení kmitočtu naopak výpočet doby trvání poslední periody měřeného signálu. Tím je splněna podmínka co největší rychlosti vyhodnocení.
Obr. 28 Princip měření kmitočtu s referenčním signálem Výpočet frekvence: fn =
kde
fR nR
fn je naměřená frekvence fR je referenční frekvence nR je počet zaznamenaných period referenční frekvence fR
(15)
5 Měření kmitočtu
Strana 40
Analýza chyby
U této metody je přesnost závislá hlavně na přesnosti a výšce referenčního kmitočtu. Zaměřme se hlavně na výšku signálu, čím je vyšší, tím přesněji můžeme frekvenci změřit. I zde dochází k odříznutí počáteční a koncové necelé periody a ta se f fR . může blížit až ke dvou periodám. Převedeno na vzorec f n = R či f n = nR nR + 1 Pro příklad uvedu vyhodnocení pro frekvenci f = 9,99Hz: 1) pro fR = 100Hz 10 − 9,99 f 100 = 0,001 ⇒ 0,1% fn = R = = 10 Hz a chyba je δf = 9,99 nR 10 9,1 − 9,99 f R 100 = = 9,1Hz a chyba je δf = = 0,09 ⇒ 9% nR 11 9,99 Vidíme dosti velkou chybu asi 9%, která je důvodem užití nízké referenční frekvence 100Hz, která je jen 10x vyšší, než měřená frekvence 9,99Hz. fn =
2) pro fR = 1000Hz 10 − 9,99 f 1000 fn = R = = 10 Hz a chyba je δf = = 0,001 ⇒ 0,1% nR 100 9,99 9,9 − 9,99 f R 1000 = 0,009 ⇒ 0,9% = = 9,9 Hz a chyba je δf = 9,99 nR 101 Došlo ke snížení chyby 10x, protože referenční frekvence vzrostla 10x. Chyba je již pod 1%, což by se dalo již využít. fn =
3) pro fR = 10000Hz 10 − 9,99 f 10000 fn = R = = 0,001 ⇒ 0,1% = 10 Hz a chyba je δf = nR 1000 9,99 9,99 − 9,99 f R 10000 = = 9,99 Hz a chyba je δf = = 0 ⇒ 0% nR 1001 9,99 Opět se opakuje předchozí měření. Zde je již chyba opravdu minimální. fn =
Pro snížení chyby vyhodnocení je nutno volit referenční kmitočet podstatně vyšší minimálně o 2 - 4 řády než kmitočet měřený a je podmínkou znát přesnou hodnotu fR.
5 Měření kmitočtu
Strana 41
Pokud by jsme brali vždy max. chybu, vyšel by nám pro f = 1Hz přibližně takový graf: Relativní chyba 120
Chyba v %
100 80 60 40 20 0 1
10
100
1000
10000
Referenční frekvence v Hz
Graf 2 Relativní chyba měření pro f = 1Hz 5.3 Okamžité měření kmitočtu pomocí měření času periody
Tato metoda využívá pro vyhodnocení kmitočtu měření délky doby trvání impulsu měřeného signálu. Tím je splněna podmínka rychlosti vyhodnocení. Je velmi podobná předchozí metodě, jen místo pomocné frekvence měří čas periody. Opět bude záležet na přesnosti hodin.
Obr. 29 Princip časového měření kmitočtu Výpočet frekvence: fn = kde
1 tM
fn je naměřená frekvence tM je doba trvání jedné měřené periody
(16)
5 Měření kmitočtu
Strana 42
Analýza chyby
U této metody je přesnost závislá hlavně na přesnosti hodin a nejkratším možném měřeném intervalu či můžeme říci vzorkovacím intervalu. Zaměřme se nyní hlavně na ten vzorkovací interval. I zde dochází k odříznutí počátku a konce necelého intervalu a ten se může blížit až ke dvou časovým intervalům. Příklad s výsledky nebudu uvádět, protože by byl naprosto shodný jako u referenční frekvence. Jen by místo údaje referenční frekvence byl vzorkovací interval tvz. Dá se říct, že 1/tvz = fvz ,tedy vzorkovací frekvence a ta by se dala přirovnat k referenční frekvenci fR. Pokud by se nám vzorkovací interval prodloužil až k délce impulzu, opět by nám docházelo k chybě až 100%. Pro snížení chyby vyhodnocení je nutno volit co nejkratší vzorkovací interval, který by měl být o 2 – 4 řády přesnější než interval měřený.
Strana 43
6 Řešení v programu Control Web 5 Hlavním cílem této diplomové práce je právě vyřešení problému měření impulsů z impulsních čidel v tomto programu. Dále mám k dispozici externí zařízení DataLab IO/USB, který má možnost tří různých vstupů. A to analogový, digitální a čítač. Níže pak budou rozepsány podrobně všechny možnosti řešení pomocí těchto vstupů, popsán samotný program v aplikaci CW5, provedeno měření přesnosti a zhodnocení vhodnosti užití. Ale pro začátek musím popsat věci, které jsem si musel ještě k samotnému řešení připravit.
Obr. 30 Praktická ukázka měření 6.1 Generátor referenční frekvence
Protože jsem měl k dispozici pouze jeden generátor funkcí, který jsem ale potřeboval k měření přesnosti, proto jsem si tento generátor vytvořil z PA Siemens Simatic S7-200. PA Simatic jsem zvolil proto, že má možnost na svých výstupech Q0.0 a Q0.1 generovat pulzně šířkovou modulaci PWM, tedy obdélníkový signál, kde je možnost řízení periody a šířky pulzu. Tedy přesněji periodu lze podle nutnosti naprogramovat v rozsahu 50μs až 65 535μs nebo 2ms až 65 535ms a šířka pulzu v rozsahu 0μs až 65 535μs nebo 0ms až 65 535ms.
Obr. 31 Pulzně šířková modulace
6 Řešení v programu Control Web 5
Strana 44
Protože čítačový modul DataLabu zvládá čítat až 25kHz, nastavil jsem na výstup Q0.0 frekvenci 25kHz (40μs) a na druhý výstup Q0.1 frekvenci 10kHz (100μs). A to z toho důvodu, abych mohl provést měření přesnosti s více referenčními frekvencemi. Program pro běh PA jsem vytvořil v programu Step7. Tento program je velmi jednoduchý a využívá speciálního módu PWM. Je naprogramován v mnemokódu. Zde je výpis programu: Network 1 LD SM0.0 MOVB 16#D3, SMB67 MOVW +40, SMW68 MOVW +20, SMW70 PLS 0 Network 2 LD SM0.0 MOVB 16#D3, SMB72 MOVW +100, SMW73 MOVW +50, SMW75 PLS 1
//instrukce se vždy provedou //nastavení jednotek na μs //nastavení periody v μs (zde nastavena na fR = 25kHz) //nastavení střídy v μs //pulzní výstup na Q0.0
//nastavení periody v μs (zde nastavena na fR = 10kHz) //pulzní výstup na Q0.1
Přesnost je u referenční frekvence velmi důležitá, protože se od ní bude při vyhodnocování vycházet. Proto je nutno změřit přesnost tohoto řešení. Ale protože nemám k dispozici kvalitní a přesný čítač, použil jsem metodu porovnání se signálem z přesného funkčního generátoru. K porovnání jsem užil dvouvstupový osciloskop Tektronix TDS2012. Na první vstup jsem přivedl signál z PA a na druhý jsem přivedl signál z přesného generátoru funkcí. Následným srovnáním obou frekvencí na display, jsem zjistil, že generovaná frekvence z PA má velmi vysokou přesnost. Na obr. 32 vidíme , že vzestupné hrany z obou vstupů začínají ve stejný okamžik. Sice je tam vidět, že sestupné hrany se liší, ale to nám vůbec v ničem nevadí. Tento osciloskop má dokonce i funkci měřiče frekvence(čítače) a ten nám ukázal pro 10kHz frekvenci 9.99985kHz a pro 25kHz frekvenci 24.9996kHz. Z tohoto měření nám vychází, že chyba je velmi malá a proto tento PA může být užit jako přesný generátor referenční frekvence.
Obr. 32 Porovnávání frekvencí pomocí osciloskopu
6 Řešení v programu Control Web 5
Strana 45
6.2 Lineární aproximace pro nižší frekvence
V regulaci je požadavek na rychlé získávání údajů. Ale u okamžitého vyhodnocování, by docházelo k tomu, že při nízkých frekvencích asi pod 5Hz by se nám hodnota aktualizovala déle než 0,2s, což už může v některých situacích být dlouho. Např. pro hodnotu 0,5Hz, by dvě sekundy byl stále stejný údaj, ale frekvence mezi tím může třeba růst. Proto jsem zavedl lineární aproximaci mezi poslední dvě hodnoty, která nám dopočítává následující hodnoty každé 0,2s. Čímž pro nízké frekvence máme neustále zaručeny přibližné nové hodnoty frekvence. Samozřejmě, že tyto hodnoty nejsou reálné a jsou jen přibližné, ale pokud systém není nijak extrémně dynamický, tak se můžou velmi blížit realitě.
Obr. 33 Lineární aproximace Výpočet se provádí pomocí derivace funkce, tedy: d=
( f 2 − f1 ) TR
f a = f 2 + d ⋅ ta kde
(17) (18)
f1 je předposlední naměřená frekvence f2 je poslední naměřená frekvence a rovná se 1/TR d je derivace funkce ta je čas aproximace fa je aproximovaná frekvence
Kde fa je námi zjišťovaná aproximovaná frekvence v čase ta. Aproximační časový krok jsem volil 0,2s z důvodu požadavku častého získávání nových výsledků. Praktické provedení bude opět ukázáno dále.
6 Řešení v programu Control Web 5
Strana 46
6.3 Práce v programu Control Web 5
Ještě bych chtěl také popsat a ukázat základy práce v programu Control Web 5. Program CW5 se skládá ze třech hlavních záložek, mezi kterými přepínáme dle toho, co právě chceme s aplikací dělat. Jsou velmi dobře logicky rozděleny. 1) Záložka Textový editor. Zde vidíme a můžeme editovat naši aplikaci. Výhodou je velká přehlednost, ale nevýhodou je nutnost znát a umět číst v tomto textu. Dalo by se to přirovnat jako když píšeme či čteme program např. v jazyce C. 2) Záložka Datové inspektory. Zde pracujeme hlavně s datovými elementy, jako jsou globální proměnné a kanály. Globální proměnné jsou vlastně proměnné, které užíváme v naší aplikaci. Kanály jsou speciální proměnné externích modulů, jako je užitý DataLab IO/USB. Tedy každý modul má dány své kanály v určitém rozsahu a ty mají svůj smysl. Většinou nám poskytují údaje ze vstupů či do nich zapisujeme a tím ovládáme výstupy a poslední jsou na nastavování funkcí jednotlivých modulů. 3) Záložka Grafický editor. Tu využíváme nejčastěji a v ní vzniká celá aplikace. Zde vkládáme na panel různé přístroje jako ploché a prostorové přístroje, které obsahují např. pro spojité signály ručkové a číslicové měřící přístroje, knoflíky, potenciometry, grafy a pro binární signály tlačítka, přepínače, indikátory. Poté co máme vše potřebné na panelu a máme vytvořeny proměnné, můžeme začít s propojováním přístrojů s knoflíky atd. Ale pokud aplikace je trochu složitější a neobejde se jen s prostým zobrazením a nastavováním, je nutno použít výkonnější prostředky jako je programování. Opět položka program se nachází v sekci výkonných přístrojů. V mém případě bylo nutno použít tuto položku právě k měření impulzů a k výpočtu lineární aproximace. Programovací jazyk v programu CW5 je podobný jazyku C. Také bych ukázal a popsal důležité části aplikace. Aplikace začíná třemi oddíly Directories, Settings a Data, ale ty nejsou pro vysvětlení důležité. Dále je důležitá část Data, kde definujeme proměnné. data channel io {driver = iousb}; citac1 : longcard {driver_index = 9; direction = input}; end_channel; var cas : real {init_value = 1}; end_var; end_data;
// začátek definice kanálů // kanál 9, hodnota čítače 1 // konec definice kanálů // začátek definice proměnných // proměnná cas, poč. hodnota 1 // konec definice proměnných
Poslední a nejdůležitější oddíl je Instrument. Zde jsou definované přístroje. Pro příklad uvádím ukázku číslicového měřícího přístroje. instrument meter display; owner = backpane; position = 27, 34, 150, 40; expression = cas; mode = dot_digital; range_to = 1000; low_limit = 0; high_limit = 1000;
// začátek definice přístroje a jeho název // umístění na panelu // pozice na panelu // proměnná vyhodnocovaná přístrojem // typ přístroje bodový číslicový // rozsah do 1000 // spodní limit 0 // horní limit 1000
6 Řešení v programu Control Web 5
Strana 47
dec_places = 3; // počet desetinných míst 3 colors // začátek nastavení barev paper = black; // pozadí černé end_colors; // konec nastavení barev end_meter; // konec definice přístroje end_instrument; Dále bych mohl uvést i příklad programu, ale ten popíšu až v jednotlivých kapitolách, protože ten je pro řešení této práce velmi důležitý a různě se liší dle modulu a typu vyhodnocování. 6.4 Vývojový diagram
Před zahájením tvorby programu, si musíme nejdříve naznačit jeho běh. K tomuto účelu nejčastěji využíváme tzv. vývojový diagram. Na něm lépe rozeznáme jádro programu a jeho běh. Důležité je to hlavně pro přehlednost, protože neznalí lidé programování v daném programovacím jazyce, se v samotném programu nevyznají, avšak vývojový diagram je velmi přehledný a srozumitelný. Další jeho výhodou je také to, že se dá aplikovat i do jiných programovacích jazyků. Já využívám dvou programů. První je hlavní a pomocí něj je počítána námi zjišťovaná frekvence. Druhý je pro výpočet lineární aproximace.
Obr. 34 Vývojový digram obou programů Popisovat je nyní nebudu, protože se dle typu řešení mírně liší. Jsou vždy popsány dále v jednotlivých kapitolách.
6 Řešení v programu Control Web 5
Strana 48
6.5 Řešení pomocí modulu analogových vstupů
První možnost byla užít modul analogových vstupů. Sice to vypadá jako špatná volba, vybrat si na měření impulzů analogový modul, ale opak je pravdou. Sice nedochází k měření frekvence přímo, což by také šlo a popíšu dále, ale je nutný externí převodník frekvence na napětí či proud. senzor f/U
USS
Analogový DataLab vstup
USB
PC
Obr. 35 Schéma zapojení s využitím analogového modulu Ten lze realizovat více způsoby: 1) na trhu jsou speciální převodníky f/U různých firem. Popíši nyní jeden firmy Pepperl+Fuchs typ KFD2-UFC-1.D.
Obr. 36 Převodník f/U firmy Pepperl+Fuchs Převodník je možné připojit téměř k libovolnému zdroji impulsů. Může jít o klasický mechanický kontakt, stejně jako o indukční nebo optoelektrické čidlo. Při použití mechanického kontaktu lze zapnout vestavěný obvod, který potlačí zákmity kontaktu. Vstup pro čidlo je navíc opatřen hlídáním poruchy; převodník umí detekovat přerušení nebo zkrat v obvodu čidla. Nachází-li se čidlo v prostředí s nebezpečím výbuchu, je možné použít převodník v modifikaci s jiskrově bezpečným vstupem. Tato situace je typická pro měření průtoku topných plynů nebo pro měření otáček v zařízeních chemického průmyslu. Základní funkcí převodníku je konverze impulsního výstupu na standardní proudovou smyčku 0 až 20 mA nebo 4 až 20 mA. Převodník dokáže zpracovat impulsy od frekvence 0,001 Hz až do frekvence 12 kHz. Při malých četnostech impulsů (při pomalých otáčkách turbínky za malého průtoku) se uplatní digitální filtr, jehož parametry lze nastavit tak, aby velikost výstupního proudu nekolísala. Hodnota průtoku může být zobrazena na vestavěném displeji. Pak je převedena na proudový signál k dalšímu
6 Řešení v programu Control Web 5
Strana 49
zpracování. Výhodou je nastavení převodní konstanty v širokém rozmezí, možnost potlačení „nezajímavé“ části rozsahu průtoků a další funkce, umožněné vestavěným mikroprocesorem. Kromě analogového proudového výstupu má převodník vestavěna dvě relé a jeden dvoustavový elektronický výstup. Ty lze využít k různým účelům. Častým použitím je indikace mezních hodnot. Elektronický výstup lze použít i pro tvarování příliš úzkého impulsu z průtokoměru nebo k vydělení příliš vysoké frekvence, je-li to třeba pro další zpracování v jiném zařízení. Jednotky řady UFC je možné nastavovat prostřednictvím tlačítek a menu na vestavěném displeji nebo pomocí PC připojeného přes sériovou linku. To usnadňuje nastavení při opakované aplikaci. Lze dodat i variantu bez tlačítek a displeje, pouze pro nastavení z PC. Tento převodník díky svým funkcím je velmi vhodný pro toto řešení. Jeho cena je sice vyšší asi 11000Kč, ale jeho užití je bezproblémové a přesnost bude díky změně poměru vstupu k výstupu výborná. Pokud by jsme měřili např. frekvenci 0,2Hz, pak si můžeme nastavit abychom měli pro vstupní frekvenci 1Hz na výstupu proud 20mA a po převodu v analogovém modulu získáme pro ±20mA číslo ±32767. Tedy minimální měřená frekvence by byla 0,000031Hz a tato hodnota by byla i jako inkrement, po kterém by se zvětšovala. Z toho se dá spočítat, že chyba by byla maximálně 0,200031 − 0,2 δf = = 0,00016 ⇒ 0,016% , což je vynikající hodnota. 0,2 Je také možno použít jednodušších převodníků f/U, jako je DA-0/10-0/10-24 české firmy Newte. Tento převodník neumožňuje žádné nastavování a pouze převádí vstupní frekvenci 0-10kHz na napětí 0-10V. Této jednoduchosti také odpovídá nízká cena 999Kč. Pokud bychom vzali že analogový modul umí napětí ±10V převést na číslo ±32767, pak nejnižší měřitelná frekvence by byla asi 0,3Hz a tato hodnota by byla i jako inkrement, po kterém by se zvětšovala. A to je pro tuto práci nepřípustné a toto levné řešení by nešlo použít. 2) druhá možnost je tento převodník si vyrobit za pomocí vhodných integrovaných obvodů které většinou fungují na principu tzv. nábojové pumpy. Specializované IO vyrábí více firem a je mnoho typů. Základy o principu nábojové pumpy: u o = 2 ⋅ U SAT ⋅ C1 ⋅ R A ⋅ f kde
uo je výstupní napětí USAT je saturační napětí f je vstupní frekvence C1 a RA jsou hodnoty součástek
(19)
6 Řešení v programu Control Web 5
Strana 50
Obr. 37 Schéma nábojové pumpy Popíšu IO LM331 firmy National Semiconductor. Je to precizní převodník U/f a f/U který zvládá až 100kHz. Má výbornou linearitu lepší jak 0,01%, malý teplotní drift ±50ppm/Cº, velký dynamický rozsah až 100dB. Zapojení je velmi jednoduché a dle volby součástek se dá měnit převodový poměr. Obvod stojí asi 160Kč. Výhody a nevýhody bohužel vypsat nemůžu, protože bych musel tento obvod prakticky použít a změřit jeho parametry. Vzorec pro výstupní napětí a schéma zapojení: VOUT = f IN ⋅ 2,09V ⋅
kde
RL ⋅ ( Rt ⋅ C t ) RS
(20)
VOUT je výstupní napětí fIN je vstupní frekvence RL, RS, Rt a Ct jsou hodnoty součástek
Obr. 38 Schéma převodníku f/U s obvodem LM331 Poslední možností o které jsem se již zmínil je měřit impulzy přímo pomocí analogových vstupů. Tato myšlenka by šla jednoduše uskutečnit a byla by na principu, jako bude využíváno u dalších vstupů. Tedy pokud by bylo na vstupu napětí, dejme tomu pro TTL techniku 5V a měli jsme modul nastavený na ±5V, tak by jsme po převodu dostali číslo kolem 30000. Pokud by jsme si např. nastavili mez pro true na 15000, pak by true byla od 2,5V nahoru a false zase naopak dolů. A pak by se jen měřil čas či počet period z referenčního generátoru. V tomto by nebyl problém, ale zásadní problém je ve vzorkovací frekvenci, která je pouze 20Hz, což je pro náš účel nepoužitelné, protože chyba měření by byla velká.
6 Řešení v programu Control Web 5
Strana 51
Shrnutí:
Nyní bych měl trochu zhodnotit vhodnost užití tohoto modulu z hlediska ceny, přesnosti a jednoduchosti užití. Pokud nebudeme brát v potaz výrobu f/U převodníku a vynecháme nekvalitní přímé vyhodnocování impulzů, pak nám zbývá jen profesionální externí f/U převodník. A právě tato volba je vynikající z pohledu jednoduchosti užití a hlavně přesnosti, která je díky změně převodního poměru vynikající. Také měřený rozsah od 0,001Hz do 5000Hz je vynikající. Horší je jen cena, protože analogový modul stojí asi 3500Kč a f/U převodník 11000Kč. A tedy pokud bych to měl shrnout: Výhody • vysoká přesnost • jednoduché užití • mnoho možností nastavení • velký rozsah měřené frekvence Nevýhody
• vysoká cena V této kapitole jsem využíval informace z literatury [14], [15], [16]. 6.6 Řešení pomocí modulu čítačových vstupů
Další možností je užití modulu čítačových vstupů. U tohoto modulu je již možnost použití více možností. První je klasické měření frekvence za určitý časový interval, druhá možnost je měření s pomocným referenčním generátorem a poslední je měření délky intervalu mezi impulzy. 6.6.1 Klasické měření frekvence za časový interval
Toto měření je nejjednodušší. Měříme počet impulzů za časový interval. Teorie je popsána v kapitole 5.1. Já jsem zvolil měření za 1s, tedy minimální měřená frekvence je 1Hz a inkrement je po 1Hz. Pokud bychom chtěli přesnější měření a to v této práci chceme, museli bychom pro přesnost na setinu Hz prodloužit časový interval na 100s, což je zase v rozporu s rychlým vyhodnocováním. A proto je tento režim využíván jako čítač pro referenční frekvenci. A protože potřebujeme aby jsme měřili i referenční frekvenci co nejpřesněji, provedl jsem měření přesnosti i pro tento režim. Ještě bych doplnil schéma měření.
Generátor
Čítačové vstupy
DataLab
USB
Obr. 39 Schéma zapojení s využitím čítačového modulu
PC
6 Řešení v programu Control Web 5
Strana 52
Dále popíši důležitou část aplikace v programu Control Web 5. Vybral jsem pro pochopení problému jen část s programy, ve kterých dochází k samotnému čítání impulzů po dobu 1s a k výpočtu lineární aproximace: program program_1; timer = 0.2; procedure OnActivate(); begin t=t+0.2; fvir = f + d * t; display2.SetValue(fvir); historie2.SetValue(fvir); end_procedure; end_program; program program; timer = 1; send_same_data = on; procedure OnActivate(); begin fold = f; f = io.citac1; display.SetValue(f); historie.SetValue(f); io.reset1=0; d = (f - fold) * f; t = -0.2; end_procedure; end_program;
// začátek program_1 // periodické spouštění programu po 0,2s // procedura volaná vždy při aktivaci programu // začátek programu // přičítání inkrementu času 0,2s pro aproximaci // výpočet aproximované frekvence // odeslání nové hodnoty na měřící přístroj display2 // odeslání nové hodnoty na měřící přístroj historie2 // konec procedury OnActivate // konec program_1 // začátek program
// přiřazení předcházející frekvence do proměnné fold // načtení hodnoty z modulu čítače // vynulování modulu čítače // výpočet derivace funkce // vynulování t pro program_1
Jen bych to ještě mírně vysvětlil. V program_1 se jedná o výpočet lineární aproximace s časováním 0,2s, což je způsobeno tím, že program_1 je cyklicky spouštěn po 0,2s. To nám určuje právě parametr timer=0.2s. Dále se každým cyklem přičítá k počátečnímu času t 0,2s a tento nový čas se pak používá o řádek níže k výpočtu aproximované frekvence. Neznámé f a d se dostávají z program. Dále se tyto vypočtená hodnota posílá na přístroje display2 a historie2. Nyní se dostáváme k program. Ten začíná periodickým časováním 1s, které je právě z důvodu měření počtu impulsů za 1s, což jsem již popisoval výše. Pak navazuje zapsáním staré frekvence do proměnné fold a to kvůli tomu, abychom ji později použili k výpočtu derivace. Příkazem f = io.citac1 se načte hodnota čítače1 z externího čítačového modulu. Opět následuje zápis do přístroje display a historie. Příkazem io.reset1=0 se čítač1 vynuluje a může dojít k opětovnému plnění čítače po dobu 1s. Teď přicházíme k důležitému výpočtu derivace funkce d, kterou potřebujeme pro výpočet lineární aproximace a následuje nulování času t. Praktické měření chyby u této metody
Měření probíhalo za pomocí přesného generátoru funkcí a měřil jsem naměřenou hodnotu. Měření jsem provedl pro 6 frekvencí od nejnižší po maximální. Každé měření jsem 5x opakoval pro zajištění větší objektivity. A zde jsou výsledky:
6 Řešení v programu Control Web 5 Frekvence [Hz] 1 10 100 1000 10000 25000
1 1 10 100 998 9979 24973
2 1 10 100 998 9989 24948
Strana 53
3 1 10 100 999 9979 24949
4 1 10 100 998 9980 24948
5 1 10 100 998 9979 24949
Teoretická chyba [%] 0÷100 0÷10 0÷1 0÷0,1 0÷0,01 0÷0,001
Naměřená chyba [%] 0 0 0 0,206 0,192 0,213
Tab. 1 Naměřené hodnoty a výpočet chyby 0,25
Chyba v %
0,2 0,15 0,1 0,05 0 1
10
100
1000
10000
25000
Frekvence v Hz
Graf 3 Relativní chyba klasického měření frekvence za 1s Měření nám ukázalo chybu pro vyšší měřené frekvence o velikosti přibližně 0,2%, což není mnoho, ale tato chyba se nám asi přenese i do dalšího měření, kde budeme tuto metodu používat pro měření frekvence referenčního generátoru. Bohužel se s tím nedá nic dělat, jediná možnost by byla s touto chybou dále počítat. 6.6.2 Okamžité měření kmitočtu za pomoci referenční frekvence
Další možností využití čítačového modulu je okamžité měření frekvence za pomocí použití referenční frekvence z PA. V tomto režimu využívám dvou čítačových vstupů, první k měření impulsů a druhý pro referenční frekvenci. Opět to může vypadat nesmyslně, měřit okamžitou frekvenci impulsů pomocí čítače, ale přišel jsem na metodu, kterou to lze vyřešit. Využívám toho, že periodicky zjišťuji hodnotu jednoho čítačového vstupu a pokud se změní z 0 na 1, vím, že právě proběhla náběžná hrana impulsu a mohu spočítat počet náběžných hran z referenčního generátoru, který je stále čítán druhým čítačovým vstupem. Poté je nutné ihned oba čítače vynulovat a celý cyklus se stále opakuje.
6 Řešení v programu Control Web 5
Generátor
Strana 54
fM Čítačový vstup 1 fR
PA
Čítačový vstup 2
DataLab
USB
PC
Obr. 40 Schéma zapojení s využitím generátoru a PA U této verze bylo nejtěžší přijít na to, jak zjistit, kdy dojde vzestupná hrana. Nakonec jsem to vyřešil tak, jak jsem to rozvedl výše. Ale ještě bych rád uvedl schéma, jak vlastně to prakticky funguje. 1/f
t [s]
t [s]
Pulzy od impulsního čidla (Generátor)
Pulzy od frekvenčního generátoru (PA)
1/fR
t [s]
Obr. 41 Vysvětlení měření pomocí referenční frekvence Nyní popíšu opět důležitou část aplikace z programu CW5, platí pro referenční frekvenci 10kHz. Řádky které jsem již popisoval dříve a jsou stejné, již popisovat nebudu. program program; procedure OnActivate(); begin if (io.citac1>0) and (a=1) then fold = f; f=10000/io.citac2; display.SetValue(f); historie.SetValue(f); io.reset1=0; io.reset2=0; a=0; d = (f - fold) * f; t = -0.2; elsif io.citac1=0 then
// podmínka if zjišťuje zda je io.citac1>0 // pokud podmínka if platí pokračuje se // výpočet frekvence pomocí druhého čítače
// vynulování logické proměnné a // podmínka elsif zjišťuje zda je io.citac1=0 // pokud podmínka if platí, pokračuje se
6 Řešení v programu Control Web 5 a=1; end; yield; send self; end_procedure; procedure OnStartup(); begin send self; end_procedure; end_program; program program_1; timer = 0.2; procedure OnActivate(); begin t=t+0.2; fvir = f + d * t; display2.SetValue(fvir); historie2.SetValue(fvir); end_procedure; end_program;
Strana 55 // do proměnné a se zapisuje 1
// podmínka pro běh programu po spuštění
// program klasického čítače je popsán v 6.5.1
Vysvětlím program. Začneme první podmínkou. První část podmínky io.citac1>0 znamená, že pokud hodnota čítače je větší než 0, tak je tato část podmínky true. Druhá část podmínky a=1, je tam z důvodu, aby pokud impulz je stále true, nedocházelo ke stálému běhu programu. Pokud obě tyto podmínky platí, program pokračuje dále. Dalším důležitým krokem je výpočet frekvence. Zde vidíme právě, že v čitateli je fR, který je 10kHz a ve jmenovateli je hodnota druhého čítače, který právě čítá tuto frekvenci z PA. A právě podíl fR počtem impulsů nám dává frekvenci. Dále dochází k nulování čítačů a k důležitému vynulování proměnné a, která tím pádem že je 0, zabrání mnohonásobnému spuštění podmínky if. Ale až je binární hodnota na vstupu čítače 0, pak dojde ke změně proměnné a na 1. Praktické měření chyby u této metody
Průběh měření probíhal opět stejně, jako u minulého měření. Jediná změna je, že jsem provedl měření pro 10kHz: Frekvence [Hz] 1 0,05 0,05 0,1 0,1 0,5 0,502 1 1,006 5 5,079 10 11,377
2 0,05 0,1 0,502 1,006 5,528 9,677
3 0,05 0,1 0,502 1,006 5,498 11,507
4 0,05 0,1 0,502 1,006 5,079 9,728
5 0,05 0,1 0,502 1,006 5,081 11,39
Teoretická chyba [%] 0÷0,05 0÷0,1 0÷0,5 0÷1 0÷5 0÷10
Tab. 2 Naměřené hodnoty a výpočet chyby pro fR 10kHz
Naměřená chyba [%] 0 0 0,45 0,67 7,39 12,53
6 Řešení v programu Control Web 5
Strana 56
14
Chyba v %
12 10 8 6 4 2 0 0,05
0,1
0,5
1
5
10
Frekvence v Hz
Graf 4 Relativní chyba měření s referenční frekvencí 10kHz Tak i pro maximálních 25kHz: Frekvence [Hz] 1 0,05 0,05 0,1 0,1 0,5 0,502 1 1,006 5 5,08 10 11,384
2 0,05 0,1 0,502 1,007 5,529 11,515
3 0,05 0,1 0,502 1,006 5,079 9,724
4 0,05 0,1 0,502 1,006 5,08 11,379
5 0,05 0,1 0,502 1,006 5,499 9,724
Teoretická chyba [%] 0÷0,05 0÷0,1 0÷0,5 0÷1 0÷5 0÷10
Naměřená chyba [%] 0 0 0,45 0,7 7,4 12,51
Tab. 3 Naměřené hodnoty a výpočet chyby pro fR 25kHz 14
Chyba v %
12 10 8 6 4 2 0 0,05
0,1
0,5
1
5
10
Frekvence v Hz
Graf 5 Relativní chyba měření s referenční frekvencí 25kHz Měření nám ukázalo u obou referenčních frekvencí přibližně stejnou chybu. Je to způsobeno dvěma odlišnými věcmi. První je chyba měření referenční frekvence, o čem jsem psal v kapitole 6.5.1. Ta nám zanáší chybu kolem 0,2%. Druhý zdroj chyb pro frekvence 1Hz a více je problém v obnovovací frekvenci čítačového modulu. V manuálu jsem bohužel její hodnotu nenašel, ale je klidně možné, že se pohybuje někde kolem 100Hz. Tuto hodnotu totiž mívají i externí zvukové karty do USB, protože přibližně 10ms
6 Řešení v programu Control Web 5
Strana 57
trvá než proběhne komunikace po USB sběrnici. Tyto hodnoty lze sice snížit, ale pak může při jiné práci počítače dojít k výpadku komunikace, protože počítač nestíhá takovou rychlostí řešit požadavky na přenos dat. A tomuto právě odpovídají chyby pro tyto vyšší frekvence. Pro 10Hz, což je 10x míň, než je obnovovací frekvence, je chyba asi 12,5%. A to přesně souhlasí s teoretickým výpočtem chyby v kapitole 5.2. 6.6.3 Okamžité měření kmitočtu pomocí softwareového generátoru
Také mě napadla možnost využít program CW5 jako generátor referenční frekvence. Zjistil jsem, že maximální možná periodicita spuštění programu v aplikaci je 1ms. Tedy maximální frekvence, kterou lze generovat je 1000Hz. Schéma měření se shodné jako v kapitole 6.5.1. Jinak program je srovnatelný s programem v kapitole 6.5.2. Uvedu jen popis části softwareového generátoru. program program_1; timer = 0.001; procedure OnActivate(); begin b=b+1; end_procedure; end_program; program program; · · f=1000/b; b=0; · · end_program;
// časování 1ms // každou 1ms se přičte jedna k předchozí hodnotě
// výpočet frekvence za pomocí sw generátoru // vynulování hodnoty sw generátoru
Vytáhl jsem jen ty nejdůležitější věci. SW generátor funguje na velmi jednoduchém principu. Program je každou 1ms spouštěn a dochází k přičtení 1 do proměnné b a za 1s má proměnná b hodnotu 1000. Ta je pak využita pro výpočet frekvence, podobně jako v předchozí kapitole, kde se brala hodnota z druhého čítače. Praktické měření chyby u této metody
I zde jsem provedl měření chyby. Frekvence [Hz] 1 0,05 0,05 0,1 0,1 0,5 0,5 1 1 5 5,319 10 10,417
2 0,05 0,1 0,5 1 4,926 10,638
3 0,05 0,1 0,5 1 4,926 9,174
4 0,05 0,1 0,5 1 4,902 10,638
5 0,05 0,1 0,5 1 5,348 9,174
Teoretická chyba [%] 0÷0,05 0÷0,1 0÷0,5 0÷1 0÷5 0÷10
Tab. 4 Naměřené hodnoty a výpočet chyby pro sw generátor 1kHz
Naměřená chyba [%] 0 0 0 0 4,93 7,67
Chyba v %
6 Řešení v programu Control Web 5
Strana 58
9 8 7 6 5 4 3 2 1 0 0,05
0,1
0,5
1
5
10
Frekvence v Hz
Graf 6 Relativní chyba měření se sw generátorem 1kHz Kupodivu i při nižší generované frekvenci 1kHz jsou výsledky lepší. Je to asi způsobeno tím, že nedochází k promítání chyby při měření referenční frekvence z PA. 6.6.4 Okamžité měření kmitočtu pomocí měření času periody
A nyní se dostáváme k poslední možnosti měření frekvence pomocí čítačového modulu. Tato metoda je velmi podobná předchozí, ale rozdíl je v tom, že negenerujeme frekvenci 1000Hz, ale měříme čas s rozlišením 1ms. Program CW5 má jednu zvláštní proceduru, která přečte aktuální systémové (světové) datum a čas a vrátí jej v podobě juliánského data. Ale problém je ve vyjádření juliánského data číslem. Zkusil bych to trochu vysvětlit. Udává počet dnů od 12 hodin dne 1. ledna 4713 př.n.l. Juliánské datum je výhodným časovým měřítkem, nejsou zde problémy s přestupnými roky a různými počty dnů v měsících, zbytek po dělení celé části juliánského data sedmi dává přímo pořadí dne v týdnu, počínaje pondělím. Hodiny, minuty a sekundy se uvádějí jako zlomky dne jako jeho desetinná část. Pro praktické použití je třeba si uvědomit, že nový den juliánského data začíná v poledne našeho času, a proto je náš začátek dne, tedy půlnoc, vyjádřen jako polovina juliánského dne. Dle zvolené procedury se můžeme dostat až na přesnost na 1ms. Ale protože jak bylo psáno výše, je juliánské datum udáváno ve dnech a my chceme získat toto datum v sekundách, je nutno ho vynásobit 86400. Schéma měření se shodné jako v kapitole 6.5.1. Nyní uvedu část aplikace a opět jen tu důležitou a odlišnou část. Výpočet aproximace je shodný jako v kapitole 6.5.2. program program; send_same_data = on; procedure OnActivate(); begin if (io.citac1>0) and (a=1) then fold = f; cas2 = cas1; cas1 = date.GetDateTimeJD(); cas = (cas1 - cas2); času f = 1 / (cas * 86400);
// zapisujeme do proměnné cas2 předchozí čas // získání juliánského data // výpočet rozdílu předchozího a současného // výpočet frekvence
6 Řešení v programu Control Web 5
Strana 59
display.SetValue(f); historie.SetValue(f); io.reset1 = 0; a = 0; d = (f - fold) * f; t = -0.2; elsif io.citac1=0 then a=1; end; yield; send self; end_procedure; procedure OnStartup(); begin send self; end_procedure; end_program; Program opět funguje na velmi jednoduchém principu, kde od současného času cas1 odečítáme předchozí čas cas2. Tento rozdíl časů cas je pak délka poslední periody v juliánském datu, proto ho musíme vynásobit 86400, čímž získáme čas v sekundách a 1/t nám dá frekvenci. Důležitou podmínkou je, že musíme odečítat od sebe dvě juliánské data a teprve potom převést tento rozdíl na čas v sekundách a vypočítat frekvenci. Lépe vysvětleno je to na obrázku níže. 1/f
t [s]
Pulzy od impulsního čidla (Generátor) Juliánské datum
2453825,9640
2453824,9644
Obr. 42 Vysvětlení měření pomocí času periody
6 Řešení v programu Control Web 5
Strana 60
Praktické měření chyby u této metody
I zde jsem provedl měření chyby. Frekvence [Hz] 0,05 0,1 0,5 1 5 10
1 0,05 0,1 0,5 1 5,319 10,75
2 0,05 0,1 0,5 1 4,926 9,091
3 0,05 0,1 0,5 1 4,927 10,635
4 0,05 0,1 0,5 1 5,319 9,091
5 0,05 0,1 0,5 1 4,927 10,64
Teoretická chyba [%] 0÷0,05 0÷0,1 0÷0,5 0÷1 0÷5 0÷10
Naměřená chyba [%] 0 0 0 0 4,68 8,7
Tab. 5 Naměřené hodnoty a výpočet chyby pro měření pomocí času periody 10
Chyba v %
8 6 4 2 0 0,05
0,1
0,5
1
5
10
Frekvence v Hz
Graf 7 Relativní chyba měření pro měření pomocí času periody Chyba je velmi podobná jako v předchozí kapitole, protože tyto dvě metody jsou si velmi podobné. Mohlo by se říci, že měření s přesností na 1ms je vlastně obnovovací frekvence 1000Hz. Proto ta podoba výsledků. A opět jsou výsledky lepší než s použitím referenční frekvence. 6.6.5 Násobič frekvence
Měřit nízké frekvence je velmi složité, vysoké frekvence již ne. Proto si můžeme u těchto nízkých frekvencí vypomoci díky využití násobiče frekvence. Je to zařízení, či zjednodušeně obvod, který umí vstupní frekvenci vynásobit určitou hodnotou. Např. pro 1Hz na vstupu a násobící činitel 1000, je výstupní frekvence 1000Hz. Ale tento obvod je dost složitý. Využívá se tzv. fázový závěs (PLL - Phase Locked Loop), který je speciálním typem regulačních obvodů, jejichž akční a regulovanou veličinou je kmitočet nebo fáze. Jeho úlohou je regulovat kmitočet f2 oscilátoru VCO (napěťově řízený oscilátor) tak, aby byl přesně definovaným násobkem kmitočtu signálu f1 referenčního generátoru.
6 Řešení v programu Control Web 5
Strana 61
Obr. 43 Schéma fázového závěsu Princip je docela jednoduchý. Nejdůležitějším prvkem je fázový detektor, který porovnává fázi od příchozí frekvence f1 a od frekvence z děliče f2´. Pokud dojde k rozdílu fáze mezi těmito dvěma frekvencemi, dojde i ke změně napětí, které řídí napětím řízený oscilátor a ten změní frekvenci tak, aby dorovnal změnu fáze. Z popisu je krásně poznat princip regulace. Nejdůležitější věcí je rychlost a přesnost regulace s jakou je obvod schopný regulovat frekvenci. V praxi se užívají speciální integrované obvody, které mají právě funkci násobiče frekvence. Např. jsou to NE564 či CMOS4046.
Obr. 44 Příklad frekvenčního násobiče x100 Na obr. 43 vidíme jednoduché schéma násobiče frekvence s obvodem CMOS4046. Toto zapojení nám umožňuje vynásobit vstupní frekvence 100x. Je použitelné v oblasti 1Hz až 150Hz, tedy výstupní frekvence 100Hz až 15kHz. To je již dostatečná frekvence pro použití s čítačovým modulem, s měřením za určitý časový interval. Bohužel jsem toto zapojení prakticky neodzkoušel a nemohu tedy říci jak je přesné. Cena je nízká a pohybuje se kolem 50kč. Profesionálního výrobce tohoto zařízení jsem nenašel. V této kapitole jsem využíval informace z literatury [17]. 6.6.6 Shrnutí měření s čítačovým modulem
V závěrečné kapitole této části bych měl udělat krátké shrnutí vlastností. Použil jsem čítačový modul, jeho schopnosti jsou z různého pohledu na měření rozdílné. Pokud jej vezmeme jen jako klasický čítač pro vyšší frekvence do 25kHz, tak až na malou chybu asi 0,2% je výborný. Pro nízké frekvence by jsme museli ale použít násobič frekvence. Pokud ale potřebujeme rychlé vyhodnocování, tak je jeho užití dosti limitované. A to max. možnou měřitelnou frekvencí, kterou jsem naměřil asi 30Hz a již tak kolísala, že je
6 Řešení v programu Control Web 5
Strana 62
nepoužitelná. Asi od 10Hz níže se začíná chyba snižovat a to pro zmíněných 10Hz je ještě dosti vysoká asi kolem 10%. Ale pro frekvence pod 1Hz se již situace zlepšuje a chyba jde dle typu měření k nule. To hlavně vidíme v kapitolách 6.5.3 a 6.5.4. S ohledem na cenu je to výborné, protože cena čítačového modulu je 2000Kč a nic dalšího nepotřebujeme. Takže pokud bychom potřebovali měřit nízké frekvence pod 1Hz či ho použít jako klasický čítač, je poměr cena/výkon výborná. Teď bych to shrnul: Výhody • vysoká přesnost jako klasický čítač a pro f<1Hz • jednoduché užití • nízká cena Nevýhody
• omezená možnost měření frekvence 6.7 Řešení pomocí modulu digitálních vstupů
Poslední možností je užití modulu digitálních vstupů. U tohoto modulu je opět možnost použití více možností. První je možnost měření s pomocným referenčním generátorem a druhá je měření délky intervalu mezi impulzy. 6.7.1 Okamžité měření kmitočtu za pomoci referenční frekvence
Toto měření je velmi podobné jako v kapitole 6.5.2. Ale rozdíl je v tom, že používáme jak čítačový modul pro měření referenční frekvence, tak digitální modul pro zjišťování náběžné hrany. Schéma měření je opět shodné. U digitálních vstupů je celkem jednoduché vymyslet algoritmus na zjišťování náběžné hrany. Náběžná hrana nám vlastně změní hodnotu digitálního vstupu z false na true. Opět nesmíme opomenout podmínku, že pokud je vstup true, tak nám nesmí dojít k neustálému spouštění programu a musíme zajistit podmínku, jen jednoho spuštění. Řešení je opět stejné, za pomocí logické proměnné a. Nyní uvedu celou důležitou část aplikace a v dalších kapitolách jen rozdílnou část. program program_1; timer = 0.2; procedure OnActivate(); begin t=t+0.2; fvir = f + d * t; display2.SetValue(fvir); historie2.SetValue(fvir); end_procedure; end_program; program program; send_same_data = on; procedure OnActivate(); begin if io.digital and a then fold = f;
// program klasického čítače je popsán v 6.5.1
// podmínka spuštění programu
6 Řešení v programu Control Web 5 f=25000/io.citac2; display.SetValue(f); historie.SetValue(f); io.reset2=0; a=false; d = (f - fold) * f; t = -0.2; elsif not io.digital then a = true; end; yield; send self; end_procedure; end_program;
Strana 63 // výpočet frekvence při referenční frekvenci 25kHz
Z programů je vidět obdoba, opravdu došlo jen k malým změnám. A to v podmínce if, kde se nyní zjišťuje, zda digitální vstup 1 označený jako io.digital je true. Praktické měření chyby u této metody
I zde jsem provedl měření chyby. První měření je pro fR 10kHz. Frekvence [Hz] 1 0,05 0,05 0,1 0,1 0,5 0,506 1 1,006 5 5,157 10 11,364
2 0,05 0,1 0,498 1,006 5,525 10,377
3 0,05 0,1 0,499 1,006 5,498 10
4 0,05 0,1 0,506 1,006 5,155 11,364
5 0,05 0,1 0,499 1,006 5,131 9,911
Teoretická chyba [%] 0÷0,05 0÷0,1 0÷0,5 0÷1 0÷5 0÷10
Tab. 6 Naměřené hodnoty a výpočet chyby pro fR 10kHz 12
Chyba v %
10 8 6 4 2 0 0,05
0,1
0,5
1
5
10
Frekvence v Hz
Graf 8 Relativní chyba měření s referenční frekvencí 10kHz
Naměřená chyba [%] 0 0 0,88 0,67 7,68 9,84
6 Řešení v programu Control Web 5
Strana 64
A také pro fR 25kHz: Frekvence [Hz] 1 0,05 0,05 0,1 0,1 0,5 0,502 1 1,006 5 5,157 10 10,004
2 0,05 0,1 0,501 1,007 5,496 9,909
3 0,05 0,1 0,502 1,006 5,156 11,374
4 0,05 0,1 0,502 1,006 5,526 10,008
5 0,05 0,1 0,501 1,006 5,157 11,364
Teoretická chyba [%] 0÷0,05 0÷0,1 0÷0,5 0÷1 0÷5 0÷10
Naměřená chyba [%] 0 0 0,37 0,67 7,72 9,69
Tab. 7 Naměřené hodnoty a výpočet chyby pro fR 25kHz 12
Chyba v %
10 8 6 4 2 0 0,05
0,1
0,5
1
5
10
Frekvence v Hz
Graf 9 Relativní chyba měření s referenční frekvencí 25kHz Z výsledků měření opět můžeme vidět přibližnou shodu výsledků jako v kapitole 6.5.2. Dokonce pro 5Hz je ještě vyšší, což je podivné. Je to opět způsobeno jak zanesením chyby z měření referenční frekvence, tak obnovovací frekvenci digitálního modulu. Ta je sice dle manuálu asi 500Hz, ale já bych to opět viděl tak na těch reálných 100Hz jako u čítačového modulu. 6.7.2 Okamžité měření kmitočtu pomocí softwareového generátoru
Také u tohoto modulu jsem využil možnosti generovat referenční frekvenci softwareově. Jinak vše je přibližně stejné jako v kapitole 6.5.3. Schéma měření se shodné jako v kapitole 6.5.1. Jinak program je srovnatelný s programem v kapitole 6.5.3. Vypíšu jen jednu jedinou změnu.
6 Řešení v programu Control Web 5
Strana 65
program program; send_same_data = on; procedure OnActivate(); begin if io.digital and a then · · · end_program; Praktické měření chyby u této metody
I zde jsem provedl měření chyby. Frekvence [Hz] 0,05 0,1 0,5 1 5 10
1 0,05 0,1 0,5 1 5,155 9,091
2 0,05 0,1 0,5 1 4,926 10,753
3 0,05 0,1 0,5 1 5,319 10,638
4 0,05 0,1 0,5 1 4,902 9,521
5 0,05 0,1 0,5 1 5,128 10,638
Teoretická chyba [%] 0÷0,05 0÷0,1 0÷0,5 0÷1 0÷5 0÷10
Naměřená chyba [%] 0 0 0 0 3,97 7,81
Chyba v %
Tab. 8 Naměřené hodnoty a výpočet chyby pro fR 1kHz 9 8 7 6 5 4 3 2 1 0 0,05
0,1
0,5
1
5
10
Frekvence v Hz
Graf 10 Relativní chyba měření s referenční frekvencí 1kHz I zde se nám opět opakuje zlepšení chyby, důvody byly již popsány. 6.7.3 Okamžité měření kmitočtu pomocí měření času periody
Také u tohoto modulu jsem využil možnosti měřit délku periody. Jinak vše je přibližně stejné jako v kapitole 6.5.4. Schéma měření se shodné jako v kapitole 6.5.1. Jinak program je srovnatelný s programem v kapitole 6.5.4. Vypíšu jen jednu jedinou změnu.
6 Řešení v programu Control Web 5
Strana 66
program program; send_same_data = on; procedure OnActivate(); begin if io.digital and a then · · · end_program; Praktické měření chyby u této metody
I zde jsem provedl měření chyby. Frekvence [Hz] 1 0,05 0,05 0,1 0,1 0,5 0,5 1 1 5 4,902 10 10,635
2 0,05 0,1 0,5 1 4,926 9,181
3 0,05 0,1 0,5 1 5,342 10,64
4 0,05 0,1 0,5 1 4,927 10,637
5 0,05 0,1 0,5 1 4,901 9,08
Teoretická chyba [%] 0÷0,05 0÷0,1 0÷0,5 0÷1 0÷5 0÷10
Naměřená chyba [%] 0 0 0 0 3,84 8,27
Chyba v %
Tab. 9 Naměřené hodnoty a výpočet chyby pro měření pomocí času periody 9 8 7 6 5 4 3 2 1 0 0,05
0,1
0,5
1
5
10
Frekvence v Hz
Graf 11 Relativní chyba měření pro měření pomocí času periody I zde se nám opět opakuje zlepšení chyby, důvody byly již popsány. 6.7.4 Shrnutí měření s modulem digitálních vstupů
V závěrečné podkapitole shrnu všechny zjištěné vlastnosti modulu digitálních vstupů. Použil jsem ho třemi způsoby. První byl s pomocnou referenční frekvencí. Zde jsme ale potřebovali ještě navíc čítačový modul. Což nám prodražuje cenu a přitom chyba se nám kupodivu ještě zhoršila. Tedy tato možnost nám nepřináší žádné výhody. Druhý a třetí způsob již byl jen s modulem digitálních vstupů a přesnost se již mírně zlepšila.
6 Řešení v programu Control Web 5
Strana 67
Maximální možná frekvence měření se opět pohybovala kolem 30Hz, ale s obrovskou chybou. Až kolem 10Hz se chyba zmenší k 10% a pod 1Hz je již minimální. Cena tohoto modulu je 1800Kč, což je z použitých modulů nejnižší cena. Ale opět je tu omezení měření frekvence asi na méně než 1Hz. Výhody • vysoká přesnost pro f<1Hz • jednoduché užití • nízká cena Nevýhody
• omezená možnost měření frekvence 6.8 Možnosti výstupů
V této podkapitole bych měl také něco říci o výstupech. Já sice mám řešit jen vstupy, ale musíme také brát v potaz, že budeme něco regulovat. A právě abychom mohli provést zásah do soustavy, potřebujeme také výstupy. Výstupů máme více druhů, ale pro regulaci škrtících ventilů a šoupátek potřebujeme spojitý výstup a tedy využijeme analogové výstupy. V DataLab IO/USB máme možnost použít modul analogových výstupů. Obsahuje 8 výstupů s možností napěťového či proudového výstupu. Cena je 3800Kč. 6.9 Vliv zatížení PC na výsledky měření
Velmi důležitým faktorem při práci na PC je také jeho rychlost se kterou dovede cyklicky spouštět námi požadované aplikace. Protože pracujeme v reálném čase, nemůžeme si dovolit výpadky měření. Všechny předchozí měření byly prováděny jen se spuštěným CW5 a programem Excel, do kterého jsem zapisoval výsledky měření. Na pozadí běžely jen základní aplikace jako např. antivir. Na obdobném PC by pracoval CW5 i v praxi, tedy kromě spuštěné aplikace Excel, která nemá vliv na výkon. CW5 spouští program cyklicky maximální rychlostí, pokud to nezadáme jinak. Tato rychlost ale není nijak dána a je závislá na výkonu PC. Zkoušel jsem provést jednoduché měření a zjistil jsem, že je program bez zatížení spouštěn asi každé 0,000053s. Abych zjistil vliv zatížení, spustil jsem antivirový test. Tato procedura hodně zatěžuje systém a to tím, že čte z pevného disku a také zatěžuje procesor kontrolou souborů. Provedl jsem opět měření a vyšlo mi 0,000054s, což je zanedbatelné zpomalení. CW5 má minimální zaručené časování cyklického spouštění programu 0,001s. Kratší doba již nejde z důvodu omezení operačním systémem Windows XP dosáhnout. Této maximální rychlost jsem využíval u softwareového generátoru, kde program běžel naprosto bez problémů. Dělal jsem i zde praktické měření přesnosti generátoru s a bez zatížení a zatížení nemělo žádný vliv na výsledky. Z měření vyplívá, že zatížení PC má minimální vliv na rychlost vyhodnocování. Je to také způsobeno tím, že programy které používám k výpočtu frekvence jsou velmi jednoduché a CW5 jim sám dává vyšší prioritu v systému před ostatními aplikacemi.
6 Řešení v programu Control Web 5
Strana 68
6.10 Shrnutí měření v programu Control Web 5
Využil jsem snad všechny možnosti, jak využít modul DataLab IO/USB a program Control Web 5 k měření frekvence z impulsních senzorů. Jinak program CW5 se ukázal ve spojení s tímto modulem jako bezproblémový software, který je po malém zaučení velmi uživatelsky přívětivý. Je logicky rozdělen do tří částí a pracuje se v něm velmi intuitivně. Má obrovskou možnost užití, což je občas i na škodu, protože se tím některá nastavení stávají nepřehledná a složitá. Pokud člověk se již dostane do toho a porozumí programovacímu jazyku CW5, může pak již přímo programovat v textovém režimu, či tam aplikaci upravovat, což se mi mnohokrát hodilo. Program je stabilní a i externí modul se vždy choval bez problémů. Při užití jen těchto tří modulů, jsem mohl externí modul napájet po USB, což je také výborná věc. Nyní bych chtěl nějak zhodnotit všechny použité metody a ukázat tu nejvhodnější. Takže začneme od začátku. První bylo použití modulu analogových vstupů. Zde ale byl nutný ještě převodník f/U či f/I. Jeho užití je sice perfektní volba, protože bychom dostali přesné výsledky od 0,001Hz až po 12kHz, ale velká nevýhoda je cena. Ta se vyšplhá s modulem analogových vstupů až na 14500Kč na jeden vstup. Samozřejmě modul má jinak osm vstupů, ke kterým by se pak jen dokupovali převodníky. Další možnost je využít čítačového modulu. Ten se dá využít dvěma způsoby. První jako klasický čítač pro vyšší frekvence a druhá možnost jako čítač pro nízké frekvence pod 1Hz. Ale pokud bychom potřebovali něco mezi tím, tak to již nejde použít. Cena je dobrá a to 2000Kč na čtyři vstupy. Poslední možností je užití modulu digitálních vstupů. Toto řešení nám umožňuje měřit frekvence pouze pod 1Hz, což je dosti velké omezení. Jedinou výhodou je cena 1800Kč za osm vstupů. Ve výstupech problém není, cena je 3800Kč na osm analogových výstupů.
Strana 69
7 Řešení v programu Matlab 7.1 Další kapitolou této diplomové práce by mělo být řešení v programu Matlab. Je to program určený na matematické výpočty, ale obsahuje i speciální tzv. toolbox Simulink. Ten slouží ke tvorbě schémat a jejich výpočet je prováděn v Matlabu. Ale u tohoto programu je jeden problém. Pokud chceme, aby nám Matlab spolupracoval s nějakou interní či externí kartou, potřebujeme pro ni speciální ovladač. Ale bohužel k externímu zařízení DataLab IO/USB, který mám použít, tento ovladač není. Ve škole jsou sice i interní měřící karty Humusoft a Advantech, ale ty mají zase ovladače jen pro starší verze matlabu. Tato věc velmi komplikuje řešení, ale pokusím se najít nějaké uspokojivé řešení. 7.1 Práce v programu Matlab-Simulink
Jak jsem již napsal výše, program matlab se používá hlavně k matematickým a vědeckým výpočtům. Samozřejmě má více funkcí i pro práci s obrazem, zvukem a videem. Ale ovládání a práce s hardwareovými kartami přímo v prostředí matlab je velmi složité. A nejen proto se využívá toolbox Simulink. Jeho výhodou je přehlednost, protože pracujeme s bloky, které již někdo přichystal. Každý blok zastupuje matematické funkce, které jsou počítány v jádru matlabu, ale o to my se nestaráme. Těchto bloků je velké množství, v automatizaci a regulaci nejvíce využíváme bloky potřebné pro tvorbu regulátorů. A to jsou např. integrátor, zesílení, přenosová funkce, sumátor atd. Z těchto bloků skládáme námi žádané schéma a můžeme si odsimulovat chování systému např. při jednotkovém skoku. Já navíc využívám bloky OPC serveru a Real Time Workshopu. Bloky OPC serveru jsou potřeba pro práci s DataLab IO/USB a Real Time Workshop pro práci s interními kartami Humusoftu a Advantechu. 7.2 Využití externího zařízení DataLab IO/USB
Ale i tak jsem se nevzdal a zkoušel jsem vymyslet nějaké řešení. Hledal jsem řešení a nalezl jednu možnost jak obejít chybějící ovladače. A to využít tzv. OPC server. Firma Moravské přístroje dodává vlastní OPC server pro ovladače Control Web, který je určen právě pro hardware dodávaný od této firmy. Schéma zapojení vypadalo takto: PC Generátor
DataLab
USB
OPC server pro CW
Matlab
Obr. 45 Schéma zapojení s využitím OPC serveru Jenomže při tomto zapojení došlo k tomu, že program Matlab není schopný číst z tohoto OPC serveru. Proto jsem se informoval přímo u výrobce a ten mi potvrdil nekompatibilitu s programem Matlab, zkusil jsem tedy jinou možnost. Použil jsem další univerzální OPC server od firmy Matrikon a to MatrikonOPC Server for Simulation. Má jednu zajímavou funkci a to, že umí generovat náhodné hodnoty. Proto jsem to ihned odzkoušel, abych si zjistil rychlost programu Matlab. Zvolil jsem trojúhelníkový průběh a zkoušel jsem nastavovat obnovovací frekvenci. Zastavil jsem se na 0,3s, kdy je program
7 Řešení v programu Matlab 7.1
Strana 70
ještě stabilní. Při nižších časech dochází k pádu aplikace. Důvod je jednoduchý, pracujeme v reálném čase a pokud systém musí řešit jiné problémy, program Matlab nestíhá číst data a dojde k pádu. Nejkratší čas při kterém matlab ještě fungoval byl 0,05s, ale nesmělo se s ničím pracovat, což je z praktického hlediska nepoužitelné. Na obr. 45 vidíme načtené hodnoty, průběh je schodový právě z důvodu obnovování po 0,3s.
Obr. 46 Čtení dat z OPC serveru Z toho nám vyplívá, že užití čítačového a digitálního modulu je zbytečné, proto se zaměřím jen na analogový. Abychom je mohli využít aspoň jako v aplikaci CW5, musel by obnovovací čas být maximálně 0,01s. Ale nastal další problém, jak tyto dva OPC servery propojit. To žádný standardně nepodporuje. Ale nalezl jsem další produkt firmy Matrikon s názvem MatrikonOPC Data Manager. Tento program je právě určen ke propojení dvou OPC serverů. Po malém boji s nastavením, se nakonec povedl první úspěch a dostal jsem první data z DataLabu do Simulinku. Propojení pak vypadalo takto: OPC server pro CW
Generátor
DataLab
OPC server for sim.
OPC Data manager
Matlab
Obr. 47 Druhá verze schéma zapojení pomocí OPC serveru Využití modulu analogových vstupů
A nyní již k praktickému užití. Zapojil jsem vše dle schématu na obr. 46 a zkoušel jsem zda je vše v pořádku a zda opravdu dochází k získávání informace z modulu analogových vstupů. Abych krásně viděl, že se něco děje, zapojil jsem si na analogový vstup baterii se spínačem. Při připínání a odepínání baterie docházelo ke změně hodnot na display a osciloskopu v Simulinku. Schéma zapojení v Simulinku je na obr. 45.
7 Řešení v programu Matlab 7.1
Strana 71
Tedy tento modul by se dal využít, pokud by nám stačil obnovovací čas 0,3s. Zapojení by bylo pak podobné jako v kapitole 6.4, tedy impulsní senzor, převodník f/U a pak DataLab IO/USB. Použití a přesnost je opět shodná s kapitolou 6.4. Jen cena se navýší o cenu OPC serveru pro ovladače CW, což je 7500Kč. Výhody • vysoká přesnost Nevýhody
• vysoká cena • složité nastavení přes OPC servery • nízký obnovovací čas 7.3 Využití interních karet Humusoft a Advantech
Druhou možností bylo využít těchto interních ISA karet. Opět je nutné mít pro program Matlab ovladače či využít OPC server. Obě karty mají 8 analogových vstupů. Ale nyní k řešení, které jsem prakticky nezkoušel. Důvody byly již zmíněny. První byl ten, že ovladače obou karet byly pro staré verze Matlabu a OPC server pro ně také neexistuje. Druhý důvod byl, že jsou do ISA slotu a ten není již na dnešních počítačích, takže jsem je neměl kde odzkoušet. Tyto karty jsou již staré asi z roku 1999. Nyní jsou na trhu nové modely do dnes podporovaných slotů PCI. Můžeme vybírat z více výrobců, ale já se zaměřím na českého výrobce Humusoft. Tato firma je distributorem programu Matlab do ČR a přitom programuje vlastní toolboxy, např. Real Time Toolbox, který je nutný pro práci s kartami v Simulinku. A také vyrábí interní I/O karty. Protože chceme jak měřit, tak ovládat, proto potřebujeme kartu se vstupy a výstupy. V jejich nabídce je více karet, ale nejvíce nám vyhovuje model AD612. Vypíšu jen pár parametrů, které nás zajímají. Karta AD612 má osm analogových a digitálních vstupů, vzorkovací frekvence až 100kHz.
Obr. 48 Interní měřící karta Humusoft Pokud by jsme tuto kartu měli a měli i Real Time Toolbox, pak by řešení s touto kartou bylo zcela ideální. Zapojení by bylo pak podobné jako v kapitole 6.4, tedy impulsní senzor, převodník f/U a pak karta AD612. Přesnost by byla o něco horší než v kapitole 6.4, protože A/D převodníky jsou pouze 12bitů a mají tedy nižší rozlišení. Pokud
7 Řešení v programu Matlab 7.1
Strana 72
by jsme měřili opět např. frekvenci 0,2Hz a měli nastaveno pro vstupní frekvenci 1Hz na výstupu z f/U převodníku napětí 10V, tak po převodu v kartě AD612 získáme pro 10V číslo 0-4096. Tedy minimální měřená frekvence by byla 0,00024Hz a tato hodnota by byla i jako inkrement, po kterém by se zvětšovala. Z toho se dá spočítat, že chyba by byla 0,20024 − 0,2 = 0,0012 ⇒ 0,12% , což je stále vynikající hodnota. maximálně δf = 0,2 A na závěr bych se chtěl vrátit ještě k ceně. Ta je bohužel dosti vysoká, převodník f/U 11000Kč, karta AD612 16000Kč a Real Time Toolbox pro školy 19000Kč, jinak 53000Kč. To nám dává nejvyšší cenu ze všech možností, ale zase je to perfektní řešení pro práci v programu Matlab. Výhody • velmi dobrá přesnost • jednoduchost • univerzálnost Nevýhody
• velmi vysoká cena V této kapitole jsem využíval informace z literatury [18]. 7.4 Možnosti výstupů
I zde se musíme zmínit možnost výstupů. První jsme užili externí zařízení DataLab IO/USB, tam je možnost modulu analogových výstupů, jak jsem již psal v kapitole 6.7. Dále jsme mluvili o interních kartách. Staré ISA karty mají pouze dva výstupy, což je dosti málo. Zato nové karty jako AD612 mají již čtyři výstupy a jiní výrobci mají dokonce osm výstupů, což je již velmi dobré. 7.5 Shrnutí měření v programu Matlab 7.1
Práce v programu Matlab a toolboxu Simulink je vcelku bezproblémová. Využívá se již vytvořených bloků, které mají své funkce a dle potřeby se propojují různě mezi sebou. Horší je to již s odezvou systému při výpočetních požadavcích v reálném čase. Použitím výkonnějšího PC by se asi tyto časy zkrátily. Horší bylo navázat spojení s HW, ale to by se použitím vhodného nového HW jednoduše vyřešilo. V první části, se zařízením DataLab IO/USB, šel aspoň analogový modul. Sice to bylo řešeno dosti složitě přes OPC servery, ale jinak to vyřešit nešlo. Přesnost je výborná, použití velmi jednoduché, odezva horší. A horší je to i s cenou, která je kolem 22000Kč na první senzor. Další jen +11000Kč za f/U převodník. V druhé části jsem využíval interní karty. Protože jsem se zaměřil na provedení od firmy Humusoft, tak s realizací by nebyl žádný problém a použití by bylo také velmi jednoduché. Přesnost je také velmi dobrá. Opět je tu problém po finanční stránce. Cena je kolem 46000Kč na první vstup, dále jen +11000Kč za f/U převodník. Celkově bych tedy doporučil druhé řešení, i když náklady jsou obrovské, ale užitek a jednoduchost zde vše vynahrazuje.
Strana 73
8 Závěr Při řešení své diplomové práce jsem se podrobně seznámil s problematikou vyhodnocování kmitočtu pomocí PC. Jak metodou klasického čítání impulzů za časový interval, tak i metodou měření počtu zaznamenaných period pomocí referenčního signálu a měření délky periody. Prakticky jsem využíval zařízení DataLab IO/USB a také PA SIMATIC S7-200. Dále jsem se seznámil a naučil pracovat s programy Control Web 5 a Matlab7.1 s toolboxem Simulink. A samozřejmě nejen to, dále bylo nutné dohledat spoustu dalších informací potřebných k úspěšnému vyřešení této diplomové práce. V diplomové práci byly navrženy a prakticky odzkoušeny metody vyhodnocování kmitočtu a byl zde proveden rozbor problematiky. Aplikace v programu Control Web 5 jsou navrženy pro vyhodnocení jedné periody vstupního (měřeného) signálu a je zde možnost úpravy programů na vyhodnocování i jiného počtu period. Aplikací je více druhů, jednak dle použitého vstupního modulu a také dle typu měření. Celkem jsem vymyslel přes deset možností jak měřit kmitočet na PC. Vyhodnocení kmitočtu navrhovanými metodami je možné pro omezený rozsah kmitočtu a liší se dle použité metody. Důvodů je více. První je rychlost použitého počítače, kde závisí na rychlosti běhu aplikace. Druhý je rychlost komunikace po sběrnici USB se zařízením DataLab IO/USB. Tento důvod nejvíce omezoval moduly čítačových a digitálních vstupů. Praktickým měřením jsem došel k číslu 100Hz, s touto frekvencí komunikuje počítač s externím zařízením po USB sběrnici. Poslední a také velmi důležitý je požadavek na rychlé vyhodnocování a přesnost. A právě tento důvod nám omezil využití možností všech vstupních modulů. Za prvé jsem v programu Control Web 5 využil modulu analogových vstupů. Zde je řešení omezeno na využití převodníku frekvence na napětí. Ale toto řešení je díky tomuto velmi přesné, lze měřit frekvence od 1mHz až po 12kHz a jednoduché, nevýhodou je vysoká cena. Za druhé jsem využil čítačový modul. Zde bylo více řešení, jak klasické čítání, které je sice přesné, ale použitelné jen pro vysoké kmitočty, tak rychlé vyhodnocování, které je zase přesné jen pro kmitočty pod 1Hz. Pokud by se naše požadavky dostali do vhodného pásma frekvencí, pak je toto řešení velmi levné a přesné. Velmi obdobně je na tom řešení s modulem digitálních vstupů. Je použitelné jen pro měření pod 1Hz a zde je přesnost velmi dobrá. Cena je nejnižší ze všech variant, ale také má největší omezení. Zmínil jsem se i o násobiči frekvence, který by dále pomohl v řešení s čítačovým modulem, ale bohužel jsem nenašel kromě asi dvou zapojení, žádného výrobce a je to prozatím volný segment trhu. V poslední části diplomové práce jsem pracoval s programem Matlab 7.1. Zde se projevily různé nevýhody tohoto řešení. Hlavní problém byly zastaralé ovladače měřících karet, ale i samotné karty. Možnost by byla nákup nových karet a SW, ale tato investice je velmi velká. Avšak našel jsem aspoň jedno relativně funkční zapojené je zařízením DataLab IO/USB s modulem analogových vstupů. Řešení je sice omezeno na měření každých 0,3s a je dosti složité díky nutnosti použití dvou OPC serverů, ale i tak bylo možné v tomto programu pracovat. Nutností je opět převodník frekvence na napětí.
Strana 74
Strana 75
Literatura [1] RIPKA, P.–ĎAĎO, S. –KREIDL, M.–NOVÁK, J.: Senzory a převodníky. Praha, ČVUT 2005. 135s. [2] ZEHNULA, K.: Snímače neelektrických veličin. Praha, SNTL 1983. 372s. [3] ZEHNULA, K.: Čidla robotů. Praha, SNTL 1990. 372s. [4] Moravské přístroje a.s.. DataLab IO/USB [online] (17.4.2006). Dostupné z: http://www.mii.cz/art?id=134&cat=77&lang=405 [5] Siemens. S7-200 system manual czech [online] (17.4.2006). Dostupné z: http://support.automation.siemens.com/WW/llisapi.dll/csfetch/1109582/S7200CZ.pdf [6] Agilent technologies. 33220A Function / Arbitrary Waveform Generator, 20 MHz [online] (17.4.2006). Dostupné z: http://www.home.agilent.com/USeng/nav/-11457.536883183/pd.html [7] Tektronix. Digital Storage Oscilloscopes TDS1000 Series • TDS2000 Series [online] (17.4.2006). Dostupné z: http://www.tek.com/site/ps/0,,3G-15314-INTRO_EN,00.html [8] Moravské přístroje a.s.. Control Web 5 [online] (17.4.2006). Dostupné z: http://www.mii.cz/art?id=179&cat=94&lang=405 [9] Humusoft. Matlab – popis produktu [online] (17.4.2006). Dostupné z: http://www.humusoft.cz/matlab/matlab.htm [10] Humusoft. Simulink – popis produktu [online] (17.4.2006). Dostupné z: http://www.humusoft.cz/matlab/simulink.htm [11] Moravské přístroje a.s.. OPC server pro ovladače systému Control Web [online]. (17.4.2006). Dostupné z: http://www.mii.cz/art?id=214&lang=405 [12] MatrikonOPC. MatrikonOPC Simulation Server [online] (17.4.2006). Dostupné z: http://www.matrikonopc.com/products/opc-drivers/opc-simulation-server.asp [13] MatrikonOPC. MatrikonOPC Data Manager [online] (17.4.2006). Dostupné z: http://www.matrikonopc.com/products/opc-data-management/opc-data-manager.asp [14] Pepperl+Fuchs. Logic control unit, universal frequency converter KFU8-UFC-1.D [online] (17.4.2006). Dostupné z: http://www.pepperlfuchs.com/selector/gui/show_product_detail.kly?selected_prod_id=1340&lang=ENG [15] Newte. Převodník kmitočet na napětí DA-10/0-0/10-20 [online] (17.4.2006). Dostupné z: http://www.newte.cz/katalog/DA-010-010-24.pdf
Strana 76
[16] National Semiconductor. LM331 [online] (17.4.2006). Dostupné z: http://www.national.com/pf/LM/LM331.html [17] Sam Electronic Circuits. Frequency Multiplier X100 with Noise Rejection for low frequency [online] (17.4.2006). Dostupné z: http://users.otenet.gr/%7Eathsam/frequency_multiplier.htm [18] Humusoft. AD612 levná měřicí karta pro PCI sběrnici [online] (17.4.2006). Dostupné z: http://www.humusoft.cz/datacq/ad612cz.htm