Professional Documents
Culture Documents
Pouziti Pocitacu V Merici Technice
Pouziti Pocitacu V Merici Technice
Garant předmětu:
Ing. Miloslav Čejka, CSc.
Autor textu:
Ing. Miloslav Čejka, CSc.
Obsah
1 ÚVOD..........................................................................................................................................6
1 Úvod
Měření a měřicí technika vůbec je důležitou součástí řady oborů, ať již technických nebo i
netechnických. Setkáváme se s ní v běžném životě. Protože ale samotné provádění měřicího úkonu
je na člověka dosti náročné, někdy přímo i neproveditelné, vznikl již poměrně dávno požadavek
celý proces měření automatizovat. To má jednak stránku technickou (HW), ale též i programovou.
V tomto materiálu se budeme zabývat hlavně stránkou programovou a její implementaci na počítače
třídy PC. Jedná se o problematiku značně širokou, zde se budeme věnovat hlavně nástrojům pro
tvorbu programového vybavení měřicích systémů. Je třeba mít na paměti, že jde o nástroje – jejich
správné použití vyžaduje znalosti z teorie měření, teorie signálů, statistiky i informačních
technologií. Kromě toho zde budou zmíněny i prostředky pro tvorbu měřicích přístrojů jako
takových – tedy systémů CAD i prostředků pro zpracování již naměřených dat.
5) Vypočtěte, jaké napětí je na vstupu měřicí karty, pokud měříme napětí zdroje
s U=4,2V,vnitřním odporem 100 kΩ, odporem vedení 1 Ω, pokud je vstupní odpor karty
820 kΩ !
Výsledky testu jsou v kap.7.1.1
Může jít ovšem i o samostané programy, např. obvodové simulátory typu MicroCAP, PSPICE atd.
b/ výpočtové prostředky pro zpracování naměřených dat. Patří k nim statistické programy
typu STATGRAPHICS, ev. MatCAD, ale i MATLAB, HiQ atd. Může jít i o tabulkové procesory
typu EXCEL atd. Tyto prostředky zpracují naměřená data (mají modul vstupu dat), provedou
potřebné výpočty, jejichž řízení může být buď konverzační (pomocí menu) obsluhou nebo
programem a výsledky prezentují např. graficky s možností výstupu do textových procesorů k
tvorbě zpráv.
c/ textové procesory typu WORD, nebo složitějších programů DTP (Desk Top Publishing)
(AmiPro, VENTURA..)
d/ databázové systémy používané jednak pro úschovu naměřených dat (pro dokumentaci o
měřeném procesu), nebo i jako specialita databáze pro metrologické účely o kalibrovaných
přístrojích.
Aplikace on-line jsou řešeny speciálními programovými systémy, které budou dále podrobněji
popisovány. Řeší komunikaci s měřeným objektem i další zpracování dle tohoto schématu :
Virtuální přístroj
Sběr dat - (data acquisition) - prostředky pro komunikaci s reálným okolím. Jedná se jak o
technické, tak i programové prostředky. Komunikace se děje buď pomocí karet připojovaných na
sběrnici počítače (A/D a D/A převodníky..), nebo pomocí běžných měřicích přístrojů,
komunikujících přes standardní sběrnice (GPIB, RS232C,USB…). V tomto případě se např. A/D
převod uskutečňuje v tomto přístroji (multimetr..), další operace jsou již nad číslicovými daty. Při
zpracování signálů v kmitočtovém rozsahu nad 20 MHz je tento postup nezbytný, zásuvné karty již
v tomto rozsahu běžně nepracují. Někdy je zařazen i prostředek pro analogové předzpracování
(zesilovače, přepínače..).
Programové prostředky obvykle dovolují současný sběr dat i jejich zpracování (pokud to
dovoluje výkon počítače). To je nezbytné např. i při ukládání dat na disk při jejich větších
objemech. Omezení v této části mohou být klíčové i pro celý systém. Na druhé straně u firemních
systémů je pravidlem omezení na technické prostředky téže firmy.
Zpracování - prostředky pro zpracování naměřených dat, bývají zde různé statistické metody,
filtrace, transformace atd. Tuto část je obvykle možno rozšiřovat uživatelem.
Prezentace - prostředky pro komunikaci s uživatelem prostřednictvím obrazovky, klávesnice
a myši. Možnost tvorby výstupních datových souborů, výstup na tiskárnu či zapisovač. Rozhoduje o
uživatelské přístupnosti systému, u programově ovládaných systémů pak o možnostech
programátora vytvořit systém dle požadavků zadavatele. Tato část bývá poměrně uzavřená a
základní elementy jsou neměnné. Prezentace může být realizována i vzdáleně např. internetovým
prohlížečem.
Koncepce uvedená na Obr. 1 je vlastně jiný pohled na libovolný měřicí přístroj. I u analogových
přístrojů můžeme nalézt část sběru dat (vstupní sondy, svorky, kabely), zpracování (analogový
převod napětí na úměrný proud např. rezistorem) i prezentaci (měřicí ústrojí realizuje převod do
Použití počítačů v měřicí technice 9
člověkem vnímatelné podoby). Označuje se také pojmem virtuální přístroj (virtual instrument). To
neznamená, že jde o nějakou simulaci. Takový přístroj skutečně měří zcela stejně , jak jsme zvyklí.
Neprogramátor Programátor
jednoduché aplikace komplexní aplikace
Hotový SW Vytvářený
plně uživatelem
ASYST
Na druhé straně je tzv. hotový software, označovaný jako ready-to-run. Po instalaci může
uživatel ihned začít pracovat. Nevýhodou je, že takový sw je buď příliš jednoúčelový nebo sice
konfigurovatelný na základě různých nabídek a voleb, často tím dosti nepřehledný. Mezi těmito
extrémy je několik mezistupňů, kdy je např. dodán „ovladač“ k měřicí kartě (knihovna funkcí), tak
že aplikátor nemusí přesně znát hw řešení, dokonce je možné bez zásahu do sw použít i obdobnou
kartu. Další možností jsou různé pomůcky, které usnadňují programování v univerzálním jazyku
často používaných sekvencí.
Zvláštní skupinu tvoří tzv. vývojové systémy. Jde o specifické programovací jazyky a
prostředí, které mají značnou variabilitu a jsou vybaveny často používanými nástroji (pro
zpracování signálů, přístup na datovou síť, různá rozhraní, grafy pro zobrazování, prostředky pro
uživatelské rozhraní) a nástroji pro automatizaci programování měřicích aplikací. Dovolují rychlý
vývoj i neprogramátorům, hlavní nevýhodou je jejich cena a určitá vazba na firmu dodávající
takový systém (licence, chyby, technická podpora…) .
LABTECH ACQUIRE PCLS-702 (Laboratory Technologies Corp.): Program pro sběr dat
maximálně ze 4 analogových vstupů, jeden číslicový kanál. Vzorkování od 50 S/s do 1 S/3roky.
Možnost změny měřítka. Záznam se provádí na disk současně se zobrazením. Výstup pro řadu
analytických programů. Spouštění z klávesnice, z analogového nebo číslicového vstupu.
Kompatibilní s LABTECH NOTEBOOK.
LABTECH NOTEBOOK PCLS-701 (Laboratory Technologies Corp.): Integrovaný systém
pro sběr dat, monitorování a řízení v reálném čase. Určeno pro karty PC-LabCards. Obsahuje
prostředky pro linearizaci napětí z termočlánků, grafiku v reálném čase. Dovoluje analyzu dat při
jejich získávání (+,-,*, porovnání, FFT, průměry) ale i jako tzv. post-run data analysis (hledání
závislostí, FFT, analýza pomocí volání tabulkového procesoru. Minimální požadavky na HW.
Verze XE( práce na pozadí jiných programu).
LABTECH CONTROL PCLS-707 (Laboratory Technologies Corp.): Pro monitorování
průmyslových procesů, řídicí systémy. Kompatibilní s LABTECH NOTEBOOK. Dovoluje vytvářet
animované grafy technologického procesu, obsahuje prostředky pro řízení (PID regulátory,
distribuované řízení). Podporuje počítačovou síť typu peer-to-peer nebo file-server (Novell, 3Com).
Existuje ve verzi vývojové i jako run-time modul pro provozování vytvořených aplikací bez
možnosti zásahu.
EASYEST PCLS-804 (ASYST Software Technologies): Integrovaný soubor vysoké úrovně
s nástroji pro A/D převod, analýzu a grafické zobrazení. Udávají se tyto maximální rychlosti sběru
dat: A/D do souboru 45-65 kHz na jeden kanál, zobrazení "čárový zapisovač" 100 Hz na kanál,
regulátor PID 5 Hz. Z prostředků analýzy dovoluje polynomickou transformaci (do 5.řádu), filtry,
FFT vč. okének, integrace a derivace, základní mat. funkce. Grafika je typu "zapisovač", tabulky,
podpora výstupů jak v ASCII, tak PCX i HPGL a pro rodinu programů ASYST. Minimální
požadavky na HW.
ASYSTANT-GPIB PCLS-704-GPIB (ASYST Software Technologies):
Verze ASYSTANT (EASYEST) pro přístroje připojené přes GP-IB (karta ADVANTECH
PCL-848). Vlastnosti jako EASYEST.
DADiSP Signal Analysis Spreadsheet PCLS-708 (DSP Development):
Analytický nástroj vědeckého a inženýrského charakteru. Pro sběr dat je nutná verze
DADiSP/LT. Použití pro zpracování matic, obrazů, laboratorní automatizaci, vědu a výzkum. Je ve
verzi BASE (výpočty), PRO (rozšířené výpočty) a ACQ (BAS+DADiSP/LT)..
Control EG PCLS-709 (Quinn-Curtis):
Programová podpora karet PCL-711, 718, 818, 812(PG), 720, 722, 725, 726, 789. Ovládání
pomocí menu. Kombinuje výhody záznamníku, programovatelných automatů a regulátorů PID.
Maximální počet kanálů je 256. Minimální požadavky na HW.
SNAP-Series Softwares PCLS-805 (HEM Data Corporation):
Modulární programový systém pro sběr dat a jejich zpracování. Maximální vzorkovací
kmitočet je 100 kHz, počet vzorků 32 768. Základní moduly jsou: SNAPSHOT STORAGE SCOPE
(jádro programů SNAP), SNAP-CALC, SNAP-PRINT, SNAP-STREAM (data na HD do 60 kHz),
SNAP-FFT, SNAP-FILTER, SNAP-ACTION (rozhodování).
SNAP-MASTER for Microsoft Windows PCLS-806 (HEM Data Corporation): Inovace
SNAP pro práci pod Windows. Kombinuje ikony k sestavení vlastního "uživatelského přístroje".
Vyžaduje alespoň 2 MB RAM, Ms Windows 3.0, VGA.
Software Programming Tools for Measurement/Control/Graphics PCLS-807: Nástroje
pro TurboPascal 5.x, 6.x nebo TurboC 2.x, C++ nebo Microsoft C 5.x, 6.x a QC 2.x. Tvoří nástavbu
12 FEKT Vysokého učení technického v Brně
nad drivery karet , dovolují programovat Hardcopy, řízení myši, nástroje pro grafiku a grafy, PID
regulátor, linearizace termočlánků, prokládání křivek, FFT, sériovou komunikaci.
GeniDAQ (PCLS-GNI-W32 )
Grafický modulární systém pro tvorbu HMI aplikací. Určeno pro W95 atd. Multitasking,
komunikace TCP/IP. BasisScript, Multi-threaded technologie. V současnosti vytlačil všechen
ostatní sw pro měřicí účely fy ADVANTECH.
Test Program for PC-LabCards PCLS-TEST:
Bezplatně dodáván ke každé kartě ADVANTECH k ověření její funkce.
KDAC500: Rozšíření BASICA, Quick Basic, Quick C, TurboC Quick Pascal, FORTRAN, TurboC,
C++, Turbo Pascal (dle verze). Doplňuje příslušný jazyk asi o 30 příkazů pro komunikaci s kartami.
CoOperator - pomocný nástroj pro univerzální jazyky (TP,C) pro rychlé vkládání sekvencí
komunikace s přístroji. Byl řešen jako rezidentní program v DOS, který bylo
možno aktivovat ve vývojovém prostředí zvoleného jazyka. Ten pak vygeneroval potřebnou
textovou posloupnost místo klávesnice.
TestPoint - prostředí pro tvorbu aplikací sběru a zpracování dat. Řízeno událostmi. Podporuje
jak práci se zásuvnými kartami, tak i přístroje připojené přes standardní rozhraní. Lze rozšířit o řadu
toolkitů pro práci s databázemi, přístup přes internet aj. Poměrně rozšířené, používá např. ČMI.
Dnes verze 4.0 (Obr. 4).
Použití počítačů v měřicí technice 13
Principem programování je vytvoření tzv. Action Listu, tj. seznamu akcí, které mají být
provedeny na základě události generované výkonným objektem. Událostí je např. „stisknutí“
tlačítka, odměření hodnoty, příjem znaku nebo ukončení výpočtu. Vlastní výkonné objekty jsou
prezentovány grafickými ikonami, které vybíráme ze zvláštního okna („Stock“). Uživatelské
rozhraní se vytváří ve zvláštním okně graficky a vyplněním tabulek. Vytvořenou aplikaci lze
převést do spustitelného tvaru bez možnosti úprav, součástí je i generátor instalace. Vývojové
prostředí je chráněno hw klíčem.
EfLab- prostředí pro sběr dat a předzpracování. Ovládání pomocí menu, statická a dynamická
měření. Je možná kalibrace měřicího řetězce. Naměřené hodnoty lze zpracovat do tabulky nebo
grafu. Měření lze rozložit do posloupnosti jednotlivých kroků. Po skončení kroku je možno
rozhodnout o dalším postupu a tak plně automatizovat měření bez programování. Zajištěna vazba na
karty ADVANTECH, Axiom, EEp. Jsou k dispozici varianty s různým stupněm vybavení a tomu
odpovídající cenou. Součástí byly i prostředky pro řízení. Jednoduchý systém se zajímavým
řešením s minimálními nároky na HW.
Jedná se o skupinu software, který většinou není specializován jen na aplikace v měření. Jde o
velmi rozsáhlou skupinu programů, se kterými bylo možno se setkat v jiných kurzech. Pracovník
v měřicí technice by měl být seznámen s obecnými programy pro psaní textu a tabulkovými
procesory (velmi často používané). Bylo by sem možno zařadit i vývojová prostředí pro
mikrokontroléry a DSP. Zde se dotkneme je programů typu CAD pro návrh plošných spojů,
statistických a vizualizačních programů
spoj, pokud je k dispozici plocha desky a čas k návrhu (limitující faktor!). Parametry návrhu lze
modifikovat, vymezovat zakázané oblasti, volit směr kladení spojů ve vrstvách, v kolika vrstvách
autorouter pracuje (často jen ve dvou!). Autorouter bývá dodáván jako doplněk, někdy i od jiné
firmy než ostatní části. Dokonalý autorouter je značně nákladný. Protože propojení je možné jen na
správně rozmístěných součástkách, býval někdy součástí i automatický umisťovač součástek
(autopalce). S používáním obvodů vysoké integrace klesá význam autorouterů, řada firem
navrhující desky plošných spojů je vůbec nepoužívá, protože propojení a rozmístění je spíše dáno
funkcí (zpoždění na spojích, vzájemné vazby atd.) než jen propojením potřebných bodů.
- možnost volné editace
Zda lze kreslit kružnice, zasahovat např. do nepájivé masky atd., klást spoje mimo rastr,
tvořit i jednoduché konstrukční výkresy.
- zapojovací rastr a jeho limit. Dnes se dává přednost bezrastrovým řešením, které lépe využijí
plochu desky.
- návrh obvodů PLD
- texty, popisky, rozpisy
- zachycení postupu práce, možnost návratu o zadaný počet kroků, možnost přerušení práce
autorouteru, automatická archivace ve zvolených intervalech.
- přizpůsobení systému konkrétnímu HW (grafika, EMS, HD, tiskárna, plotter) a nároky na
něj
- způsob ovládání systému (menu, aktivované nebo trvale zobrazené), možnost maker,
předefinování menu, spolupráce více pracovišť u složitých řešení.
-cena (u síťových verzí jde do stovek tisíc Kč)
Příklady:
OrCAD, EAGLE, ULTIBOARD, READC, EED, FORMICA...
simulátory (např, MICROCAP), SPICE
Obr. 11 - Systém QCad pro kreslení silnoproudých instalací, rozvaděčů i obvodových schémat.
Použití počítačů v měřicí technice 23
Málokdy ovšem konstruktér řeší návrh až na úroveň technologické výroby desky s plošným
spojem. Návrh je třeba provádět se znalostí technologie, způsobu pájení i doporučení výrobce
součástek. Proto je výhodné vlastní návrh desky a výrobu zadat specializované firmě a jí předat jen
návrh schématu zapojení. Je nezbytná domluva jak ohledně nastavení systému, tak i použitých
knihoven. Protože výroba desek je poměrně nákladná, je potřeba věnovat návrhu desek velkou
24 FEKT Vysokého učení technického v Brně
pozornost nejen z hlediska obvodového návrhu, ale i technologického provedení. Zde je třeba
odkázat na další specializované kurzy s toto problematikou.
ADSTAT
Program české produkce, vznikl na VŠCHT Pardubice. Jde o stavebnicový systém s různým
stupněm vybavení. Zde je jen několik oblastí, pro které je systém vhodný:
! Základní statistika
! Vícerozměrná data
! Analýza rozptylu
! Kalibrace (tvorba modelů kalibračních křivek)
! Vyhlazování
! Lineární regrese
! Nelineární regrese
! Růstové křivky.
HiQ
Programový produkt firmy National Instruments, existuje ve verzi Base a Professional.
Základní myšlenkou je vytvoření interaktivního poznámkového sešitu, který integruje jak text, tak
vzorce, grafy a popis algoritmů (scripts). Uživatel může měnit vstupní data (která lze zadávat ručně,
přebírat z jiných systémů (EXCEL, LabVIEW…), provést zpracování a zobrazit výsledky i graficky
v komfortním 3D zobrazení (a to nejen axonometricky, lze zobrazovat např. v kulových čí
válcových souřadnicích) se stínováním. V určité době se HiQ používal na 3D zobrazení výsledků
26 FEKT Vysokého učení technického v Brně
LabVIEW, který toto zobrazení neměl integrováno. HiQ lze používat i interaktivně jako kalkulátor.
Hlavní nevýhodou je nutnost učit se zvláštnímu programovacímu jazyku. Jde o konkurent systému
MATLAB, prakticky zaměřený na stejnou třídu úloh. Z toho důvodů dokáže i zpracovávat m-file
systému MATLAB, ne však v plném rozsahu. Pro vlastníky licence MATLAB byl poskytován
zdarma. Pro spouštění hotových aplikací („nootebook-ů“) je zdarma k dispozici HiQ Reader. Pro
typické aplikace je dodávána řada řešičů (Problem Solvers), např. z oblasti optimalizací, řešení
diferenciálních rovnic atd. Hlavní význam HiQ lze spatřovat ve výuce. Je dodáván na i CD
LabVIEW.
Obr. 16 – Prostředí LW/DOS, současné zobrazení oken PROGRAM a INTERACTIVE. Režim jazyka C.
EDITOR PŘÍSTROJOVÉ KNIHOVNY - slouží jak pro tvorbu přístrojové knihovny, tak i
knihovny zvané uživatelská. Jde o takové moduly, které mohou realizovat komunikaci s konkrétním
typem přístroje, ale i funkce bez vazby na reálné prostředí (např. speciální matematické funkce).
Protože knihovna obsahuje popis své struktury (strom funkcí knihovny), okna pro volbu parametrů
(tzv. funkční panel) i příslušné nápovědy (helpy), jsou zde prostředky pro tvorbu všech těchto částí.
Vlastní knihovní procedury lze vytvořit jak v prostředí LW (pak mají zvláštní tvar a jsou uloženy v
souborech *.LBW a *.LWI), tak i mimo něj (např. v MacroAssembleru či v Microsoft C) ve tvaru
*.OBJ. Popis stromu, oken i nápovědy jsou uloženy v souboru *.FP.
EDITOR UŽIVATELSKÉHO PROSTŘEDÍ - slouží pro tvorbu uživatelského prostředí. Jde o
grafický editor objektů tohoto prostředí. Umožňuje i vazbu na běžné grafické prostředky (např. pro
zakreslení technologického schématu) jako CorellDraw či PaintBrush - tedy těch, které mají výstup
ve formátu PCX.
GENERÁTOR PROGRAMU EXE - zajistí vygenerování dávkového souboru pro řízení
kompilátorů Microsoft (C či QuickBasic) a sestavujícího programu LINK. Pokud je k dispozici
dostatečná paměť, lze proces kompilace a sestavení spustit i z prostředí LW/DOS. Tuto část LW lze
spustit i přímo z prostředí MS-DOS. Spustitelný program lze vytvořit i pomocí tzv. Run-Time
systému (RTS). RTS je volitelný placený doplněk. Výhodou je, že rychlost a ostatní vlastnosti
vytvořeného spustitelného programu přesně odpovídají jeho chování při chodu uvnitř prostředí LW.
Základní knihovny jsou následující (Obr. 17):
Formatting and I/O - procedury řízení V/V, práce se soubory, převody mezi znaky a ciframi
dle zadaného formátu
User Interface - ovládání uživatelského prostředí
Graphics - grafické operace (lze užívat buď User Interface nebo Graphics, nikoli obou
současně v jednom programu). Slouží pro kompatibilitu s verzí 1.
Analysis (ev. Advanced Analysis) - matematické operace, práce s maticemi, komplexními
čísly, transformace, filtrace, návrhy číslicových filtrů. Knihovna Advanced Analysis se dodává na
zvláštní objednávku.
Data Acquisition AT (ev. MC) - ovládání karet s převodníky připojené přímo na sběrnici
počítače typu XT,AT (volba AT) nebo Microchannel (MC).
RS-232 - ovládání kanálu RS-232 C (volba parametrů, komunikačního protokolu, vlastní
přenos atd.).
VXI - řízení systému dle standardu VXI (není součástí standardní dodávky)
GPIB - řízení měřicího systému dle standardu IEEE 488.1 (IMS-2)
GPIB CALLs - řízení měřicího systému dle standardu IEEE 488.1 (IMS-2) pro QuickBasic
formou volání podprogramů
GPIB 488.2 - řízení měřicího systému dle standardu IEEE 488.2
System - systémové funkce, náhrada některých funkcí, které nelze ovládat přímo klíčovými
slovy jazyka.
Dále mohou následovat uživatelské knihovny, které lze též v prostředí LW vytvořit. Rozsah
užívaných knihoven lze volit, což zrychluje práci a snižuje nároky na paměť. Některé knihovní
funkce lze snadno nahradit konstrukcí jazyka, knihovní funkce bývají rychlejší. Nevýhodou
knihovních funkcí např. Analysis je to, že pracují jen s čísly typu double. To může být vzhledem
k přesnosti zbytečné a zvětšuje to jen požadavky na paměť.
Použití počítačů v měřicí technice 31
Obr. 17 – Interaktivní tvorba volání knihovní funkce s možností jejího bezprostředního spuštění
Systém LabWindows/DOS je vhodný pro tvorbu programů, které mají řešit komunikaci s
reálným prostředím, hlavně pro měřicí účely. Programování je mnohonásobně rychlejší, než v
univerzálním programovacím jazyku. Pro účely řízení však knihovny neobsahují žádnou podporu.
Systém neobsahuje žádný nástroj na tvorbu textových výstupů. Lze pouze vykreslit (vytisknout)
uživatelské rozhraní jako obrázek, avšak tištěné textové protokoly je nutno naprogramovat pomocí
formátovacích funkcí.
Nevýhodou je vyšší cena systému a i to, že i když jde vlastně o práci v reálném čase, je pro
tento režim poskytována podpora jen na úrovni knihoven (např. sběr dat metodou dvojitého
bufferu). Nelze také bez experimentů ověřit, zda je pro danou aplikaci systém vhodný. Dnes je třeba
na LW/DOS pohlížet jako na jedno z prvých komerčně nabízených prostředí pro tvorbu sw, které
obsahuje prvky automatizace programování. Řešení nápovědného systému knihoven formou panelů
zůstalo zachováno i ve vyšších verzích. Na druhé straně se nedá tento systém považovat za zcela
otevřený. Při tvorbě modulů v jiných jazycích a jejich začleňování do systému se musí dodržet
určitá pravidla, která ovšem nejsou v dodávaných manuálech jednoznačně popsána. To způsobuje,
že použití např. karet ADVANTECH s originálními knihovnami je nefunkční. Při implementaci
vzniká problém různé rychlosti při běhu přeloženého programu externím překladačem (větší
rychlost), někdy se po překladu externím překladačem objeví chyby, které nejsou v ladicím
prostředí zjistitelné. Přes tyto nevýhody byla v systému vytvořena řada aplikací nejen pro měřicí
účely, které jsou dodnes používány. Obnova technického vybaveni (upgrade počítače) vede ale
často i k nutnosti převodu a přepracování do systému LW/CVI, popsaného dále.
32 FEKT Vysokého učení technického v Brně
LW-C
ANSI C
QuickBasic
Maximální délka pole - integer 32768, long, float 16384, double 8192. Ukazatel není
povolen, vyjma ve volání funkcí.
Operátory
Unární:
* výraz - nepřímý přístup
& - ukazatel na objekt
- - unární mínus
! - logická negace
~ - jednotkový doplněk
++ - inkrement, nesmí být součást výrazu!
-- - dekrement, nesmí být součást výrazu!
switch(výraz) {
case1: case 2: příkaz break; (break musí být použit vždy!)
default: příkaz break;
}
return - návrat ve funkci
Příklad funkce: int funkce(int x, int *y, float z)
volání funkce: z=funkce(26,&bbb,23.7);
Preprocesor dovoluje jen #define a #include. #define lze použít jen pro přiřazení konstanty.
#define ABC 25
#include “xyz.h”
Vazby jednotlivých částí systému při tvorbě sw ve spustitelném tvaru při použití externího
překladače (CL) a sestavovacího programu (LINK)vyjadřuje následující obrázek:
.uir .c
LW
.h
.h
.app
HW
LWMAKE
Okolí
.bat .lnk
CL
Knihovna
LLIBCE
LINK
.exe
Příklad: %3i[w3]
Modifikátory pro real (%f):
• [bn] - délka v bytech, 4/8
• [in] - offset v polích, u rep
• [z] - indikace dat string, u rep
• [wn]- přesná délka výstupu
• [pc] - počet cifer za des.tečkou je c
• [en] - exp. notace, počet cifer exponentu
• [f] - notace s desetinnou tečkou
• [t] - odseknutí desetinných míst (konverze do i)
• [r] - zaokrouhlení (konverze do i)
Příklad: %f[b4w7p2]
Použití počítačů v měřicí technice 37
Příklad: %s[t32]
Pro opačný případ, tedy rozklad např. textu na subřetězce nebo čísla slouží skanovací funkce.
Opět jsou tři typy:
• Scan(vstup, formátová_specifikace,vý1,vý2..výn) - konverze uvnitř paměti (identifikátor vstup,
výn)
• ScanFile(fh, formátová_specifikace,vý1,..výn) - konverze soubor (specifikovaný pomocí fh) ->
paměť
• ScanIn( formátová_specifikace,vý1,vý2..výn) – konverze interaktivní okno (klávesnice) ->
paměť
Jedná se o funkce s proměnným počtem výstupních parametrů. Formátová_specifikace je
textový řetězec, který definuje způsob konverze. Formálně má tvar
vstupní_specifikace>výstupní_specifikace. Příkladem konverze textu (txt) na dvě čísla typu integer
(i,j) s verifikací oddělovací čárky je funkce
Scan(txt,”%s>%i,%i”,&i,&j)
Pokud txt je 32, 64 bude i=32 a j=66. Výstupní/vstupní specifikace má tvar %rep
formatcode[mod], rep-nepovinný opakovač, [mod]- nepovinný modifikátor. Formatcode může být
následující:
• s - řetězec
• i – integer , mod určuje základ čís.soustavy
• x - integer šestnáckově
• o - integer osmičkově
• d - integer dekadicky
• f - reálné číslo
• c- kopíruje 1 znak
modifikátory mají rozdílný význam podle formatcode:
• %i jsou povoleny bn, in, z,rn, wn, s, u, x, d
• %f: bn, in, z, wn, pn, en, f, x, d
• %s: in, a, wn, q, y, tn, t-, t#, x
Příklad: %s>%s[xt59]%s[xt59], vstupní řetězec je abc;XYZ;
Výstup1 je „abc“, výstup2 je „XYZ“
Pokud n nemá být konstantní, můžeme ho nahradit znakem „*“ a předat v seznamu parametrů:
ScanFile(fh,“%10f>10f[i25]“,pole); lze též použít
n=10; j=25;
ScanFile(fh,“%*f>*f[i*]“,n,n,j,pole);
38 FEKT Vysokého učení technického v Brně
Skanovací a formátovací funkce lze použít i ke konverzi polí např. z typu integer na double:
Fmt(pole_double,“%100f<%100i”,pole_integer);
Pokud je výstupni specifikace %s, můžeme ji včetně znaku > nebo <. Skanovací a formátovací
funkce vrací číslo, které udává, kolik vstupních/výstupních prvků seznamu bylo zpracováno.
Existují funkce, které analyzují výskyt chyb a počet bytů zkonvertovaných ze vstupu. Tak se dá
např. funkce Scan použít pro komparaci řetězce textu s předlohou.
4.1.2 LabWINDOWS/CVI
LabWINDOWS/CVI vznikl jako pokračování verze pro DOS. Jedná se o 32 bitový systém,
který bylo ve verzi 3 a 4 možno provozovat i na platformě MS-WINDOWS 3.1. Později byl tento
systém označován výhradně jako CVI ( C for Virtual Instrumentation).
• TCP Library (Transport Control Protocol ) – pro výměnu dat po síti protokolem TCP/IP
• DataSocket Library – pro předávání dat pomocí protokolu DataSocket (NI)
• DDE Library (Windows Dynamic Data Exchange) – ovládání a výměna dat mezi programy ve
Windows
• ActiveX Automation Library – využívání externích aplikací podporující technogii MS Active X
• Formatting and I/O Library – formátovací a skanovací funkce, jednoduchá práce se soubory
kompatibilní s LW/DOS
• Utility Library – pomocné funkce (datum, čas, práce se soubory na disku…)
• ANSI C Library
Kromě toho obsahuje prostředí řadu nástrojů (které lze i uživatelsky doplňovat), jako je průvodce
CodeBuilder (pro generování kostry programu na základě uživatelského rozhraní), průvodce pro
ovládání ActiveX serverů, průvodce pro tvorbu IVI přístrojových ovladačů. Je dodáván i soubor
přístrojových ovladačů, případně další nástroje (např. Programmer Toolbox) a sada ukázkových
příkladů. V prostředí lze vyvolat nápovědu nebo nahlédnout do elektronické dokumentace.
rozhraní CVI vychází z podobných principů jako rozhraní u verze pro DOS. Bylo
však značně vylepšeno (Obr. 27) a to jak do vzhledu, tak i co do počtu grafických objektů.
Zásadní změnu doznalo ovládání, které dovoluje využít mechanismu Callback funkcí. Také je zde
možnost vytvářet uživatelské rozhraní programově funkcemi User Interface Library, tedy bez
editoru a souboru UIR. Grafické objekty jsou následující:
• Numeric
• String
• Text Message
• Text Box
• Command Button
• Toggle Button
• LED
• Binary Switch
• Ring Control
• List Box
• Table
• Decorations
• Graphs and Strip Charts
• Pictures
• Timer Control
• Canvas (obecné kreslení vektorovou grafikou)
V různých verzích se měnil vzhled objektů, např. ve ve verzi 6 lze používat 3D objekty (Obr.
28).
Každému grafickému objektu lze přiřadit funkci, která je mechanismem Callback vyvolána.
Tato funkce pak může analyzovat, jaká událost nastala a zjistit i další parametry. CVI pracuje
s následujícími typy událostí:
Byl zaveden objekt Timer, což je vlastně generátor událostí, který je generuje ve zvolených
intervalech.
Mechanismus Callback funkcí a ovládání uživatelského rozhraní vysvětluje Obr. 29.
48 FEKT Vysokého učení technického v Brně
main(){
panel_handle = LoadPanel(...);
DisplayPanel(panel_handle, ...);
menu_handle = LoadMenuBar(...);
RunUserInterface();
}
int CVICALLBACK PanelResponse (int handle, int event, void *callbackdata, int eventdata1, int
eventdata2)
{
switch (event) {
case EVENT_PANEL_SIZE :
/* Code that responds to the panel */
/* being resized */
break;
case EVENT_PANEL_MOVE :
/* Code that responds to the panel */
/* being moved */
break;
case EVENT_KEYPRESS :
/* Code that responds to a keypress */
/* eventdata1 & eventdata2 contain */
/* keycode information */
break;
}
return(0);
}
tento způsob je podporován, avšak generátor CodeBuilder vždy generuje kostru s využitím
Callbacks.
//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include <cvirte.h>
#include <utility.h>
#include <userint.h>
#include <stdio.h>
#include "OnePanel.h"
#include "toolbox.h"
//-----------------------------------------------------------------------------
// Defines
//-----------------------------------------------------------------------------
#define MAX_THREADS 49
#define NUMERIC_HEIGHT 40
#define NUMERIC_WIDTH 75
//-----------------------------------------------------------------------------
// Global Variables
//-----------------------------------------------------------------------------
static int panelHandle = 0;
static int numThreads = 0;
static volatile int exiting = 0;
static int poolHandle = 0;
static int tlvHandle = 0;
static char errorBuf[CMT_MAX_MESSAGE_BUF_SIZE];
//-----------------------------------------------------------------------------
// Prototypes
//-----------------------------------------------------------------------------
static int CVICALLBACK MyThreadFunction (void *ctrlID);
static int SetupApplication (void);
static int ShutdownApplication (void);
50 FEKT Vysokého učení technického v Brně
//-----------------------------------------------------------------------------
// Main
//-----------------------------------------------------------------------------
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
{
if (InitCVIRTE (hInstance, 0, 0) == 0) /* Initialize CVI libraries */
return -1; /* out of memory */
SetSleepPolicy(VAL_SLEEP_MORE);
Error:
// Terminates the threads if needed
ShutdownApplication();
return 0;
}
//-----------------------------------------------------------------------------
// Quit
//-----------------------------------------------------------------------------
int CVICALLBACK Quit (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event) {
case EVENT_COMMIT:
QuitUserInterface (0);
break;
}
return 0;
}
//-----------------------------------------------------------------------------
// NewThread
//-----------------------------------------------------------------------------
// Each time we click on this button a new numeric indicator is created on
// the panel. Due to the size of the panel, no more than MAXTRHEADS threads can
// be created.
//-----------------------------------------------------------------------------
int CVICALLBACK NewThread (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
static int top = 24, left = 8;
static int panelWidth = 0;
char threadName[50];
int ctrlID;
int error = 0;
switch (event) {
case EVENT_COMMIT:
// Hide text message
if (numThreads == 0)
SetCtrlAttribute (panel, PANEL_TEXTMSG, ATTR_VISIBLE, 0);
if (panelWidth == 0)
GetPanelAttribute (panel, ATTR_WIDTH, &panelWidth);
Error:
if (error < 0) {
CmtGetErrorMessage (error, errorBuf);
MessagePopup ("Error:", errorBuf);
}
return 0;
}
//-----------------------------------------------------------------------------
// MyThreadFunction - Each started thread will execute this code until request to exit
//-----------------------------------------------------------------------------
static int CVICALLBACK MyThreadFunction (void *ctrlID)
{
int *threadCount;
while (!exiting) {
// Update the thread local value
(*threadCount)++;
SetCtrlVal (panelHandle, (int)ctrlID, *threadCount);
return 0;
}
//-----------------------------------------------------------------------------
// SetupApplication
//-----------------------------------------------------------------------------
static int SetupApplication (void)
{
int error = 0;
Error:
return error;
}
//-----------------------------------------------------------------------------
// ShutdownApplication
//-----------------------------------------------------------------------------
static int ShutdownApplication (void)
{
SetMouseCursor (VAL_HOUR_GLASS_CURSOR);
if (poolHandle != 0) {
exiting = 1;
CmtDiscardThreadPool (poolHandle);
}
if (tlvHandle != 0) {
52 FEKT Vysokého učení technického v Brně
CmtDiscardThreadLocalVar (tlvHandle);
}
SetMouseCursor (VAL_DEFAULT_CURSOR);
return 0;
}
4.2 LabVIEW
poslední verze z února 2002 má označení 6.1. I tzv. malé upgrady často poskytují dosti zásadní
změny a zdokonalení. Kompatibilita je zajištěna směrem nahoru o 1 verzi, směrem k nižším verzím
kompatibilita zajištěna není. Dokumentace byla původně výhradně „papírová“, nyní je jak
v papírové, tak i elektronické podobě a to jako součást dodávky, tak ji lze získat i na serveru
National Instruments. Existuje řada aplikačních zpráv a příkladů, případně knižní literatura třetích
autorů. Bohužel tato literatura dosti rychle zastarává, protože nové možnosti v nových verzích LV
dovolí efektivnější řešení, než uvádí dosti drahá knižní literatura. Velmi dobré jsou různé diskusní
skupiny (NEWS) na Internetu , zabývající se LV.
Přenositelnost mezi hw a sw platformami je užitečná pro práci ve velkých laboratořích nebo
pro celosvětovou výměnu. LV se stal určitým známým standardem (i když neoficiálním). Na
druhou stranu je už poněkud nepřehledný, od původního záměru intuitivního programování a
„samodokumentujících se“ programů se už vzdálil. Pro kvalitní využití je nutno LV studovat
podobně, jako jiné jazyky. LV je dosti oblíben u uživatelů netechnického charakterů (biologie,
medicína, chemie, psychologie).
Při tvorbě hotových produktů pro koncové uživatele, kteří sami program nebudou
modifikovat a upravovat, se výhody LV poněkud ztrácejí. Ve srovnání s řešením podobného
problému pomocí C++ nebo i LW/CVI vychází řešení podstatně delší. Hlavní výhoda je na straně
vývoje. LV je někdy vytýkána určitá nejasnost řešení, programátoři mají dojem, že systém nemají
pod kontrolou, protože nemohou přesně zjistit, co vestavěné funkce a hlavně jak řeší.
LV byl původně nepříliš otevřený. Dovoloval rozšiřování jen na bázi tzv. CIN, vytvářených
pomocí překladače WATCOM C. Teprve později byla přidána možnost v rámci Ms-Windows
pracovat s dll knihovnami. Na úrovni technických prostředků lze pracovat se všemi používanými
rozhraními, přímo přistupovat na V/V adresy a k paměti.
Všechny verze LV jsou 32 bitové a to i ty, které pracovaly na platformě Ms-Windows 3.1.
Poslední instalace jsou distribuovány na dvou CD, vyžadují následující vlastnosti (pro IBM-PC):
! Grafika: 800x600 bodů, 256 barev, lépe 16-bit barevná hloubka a 1024x768
! 32 MB RAM, lépe 64MB
! zvuková karta a možnost přehrávání .avi souborů (pro výukový program)
! Microsoft Explorer alespoň verze 4.0
! 65 MB diskového prostoru
! Pro NT 4.0 instalovaný Service Pack 3
! kvalitní myš (optická)
! mechanika CD-ROM
! síťová karta
Distribuce LV je k dispozici pro
! Ms-Windows (od W98 do XP)
! Power Macintosh – Systém 7.6.1 nebo novější
! UNIX vyžadují X Window System server, (OpenWindows, CDE, nebo X11R6)
! SPARC stations (SUN) se sytémem Solaris verze alespoň 2.5.1
! LINUX pro procesory x86 s jádrem verze alespoň 2.0 a větší distribuce jako RedHat,
Mandrake, SuSE, nebo Debian.
54 FEKT Vysokého učení technického v Brně
Celý systém je orientován graficky a to jak na úrovni ovládání prostředí, tak i tvorby
programů, tedy virtuálních přístrojů. Prostředí lze uživatelsky upravit formou uživatelských
nabídek, které mohou mít jak textovou, tak grafickou podobu (ikony). Vysloveňe grafická podoba
je pro začátečníky méně vhodná. Využívá se bohatý systém nabídek a ikon, myš se stává
nezbytností. Program se tvoří v grafickém jazyku, který je nazýván jazyk G. Ten je pak interně
kompilován a po jeho spuštění je jeho rychlost srovnatelná s řešením téhož problému v jazyce C.
Pro běh již odladěného programu v G je ale nutné buď celé prostředí LabVIEW, případně jeho Run-
Time modul a to verze stejné nebo vyšší, pod kterou byl program vytvořen. Program po překladu k
dispozici samozřejmě není v nějakém textovém jazyku. Jako placený doplněk je možno vytvořit
tvar EXE a provozovat jako aplikaci pod Microsoft WINDOWS. V tom případě můžeme vytvořit i
kompletní instalaci, kterou lze distribuovat na CD (není nutná licence). Kompletní virtuální přístroje
(Virtual Instruments - VI) jsou ukládány do diskových souborů s příponou vi. Ty jsou v binárním
proprietálním tvaru, formát se měnil pro různé verze LV. Kompletní aplikace většinou vyžadují ke
spuštění více VI, proto je možno potřebnou sadu VI uložit do knihoven LV (soubor s příponou
LLB) s vyznačením nejvyšší úrovně VI. Navíc jsou zde VI komprimovány, tak že zaujímají méně
místa na disku. Knihovny LLB jsou přenositelné mezi různými implementacemi LabVIEW a lze je
též editovat. V okamžiku načítání aplikace v LV jsou načteny do paměti a vyhledány potřebné
subVI a to jak z knihoven LLB, tak i ze systému. Stav prohledávání je zobrazen, pokud se určitý VI
nemůže v předvolených adresářích nalézt, je dotázána obsluha. Teprve po kompletním načtení lze
aplikaci spustit. Lze ale řešit i případ, že potřebné VI jsou načítány za běhu aplikace, případně že
určité subVI jsou spuštěny na vzdáleném počítači. Toto se týká jak spuštění v prostředí LV, tak i u
aplikací trvalých ve formě EXE.
Zápis algoritmu v LV se děje propojením uzlů (nodes) pomocí spojů (wires). Uzly jsou
výkonné části a jejich základní sada je dodávána se systémem. Některé jsou needitovatelné (tzv.
funkce - functions), jiné editovatelné (subVI). Spoje vlastně odpovídají proměnným v jiných
jazycích. Spoje mohou začínat v tzv. ukončujících bodech (Terminals). To je vazba na objekty
panelu.
Je podporováno modulární programování. Cílový program (tj. VI nejvyšší úrovně) může být
složen z objektů nižší úrovně (sub VI), což je obdoba procedur. Každému VI je přiřazeno jméno (v
jazyce G je to i grafická ikona, kterou lze vytvořit vestavěným grafickým editorem), vstupní a
výstupní proměnné - což je tvořeno grafickým ovládacím panelem a tělem procedury - zapsaným v
jazyce G. Parametry do VI jsou předány z vyšší úrovně pomocí konektoru (obdoba seznamu
parametrů) do grafického ovládacího panelu. Do VI nejvyšší úrovně zadává parametry obsluha
prostřednictvím klávesnice a myši, výstupy jsou zobrazovány zvoleným způsobem, případně
tištěny. Výhodou tohoto postupu je, že každý VI lze jednoduše odzkoušet a z ověřených VI skládat
složitější VI.
Pro tvorbu VI jsou k dispozici tzv. funkce, které jsou součástí systému LV. Nemají vlastní
panely, lze je pouze využít ke stavbě VI. Lze je přirovnat k operátorům a příkazům konvenčních
jazyků. Soubor funkcí není neměnný, lze je rozšiřovat o vlastní VI. Při spouštění systému
LabVIEW jsou tyto nové VI automaticky zahrnuty do grafických menu pro tvorbu VI v G. Tak jsou
vytvořeny i některé dodávané utility, prostředky pro zpracování signálů a práci se soubory dat. I z
dodávaných demonstračních příkladů lze "vyjmout" vhodné sub VI a ty použít ve vlastních
programech v G.
Řada funkcí je tzv. polymorfní, tj. např. funkce sčítání může sčítat jak skalární proměnné
(např. typu double), ale také pole libovolných dimenzí i komplexní čísla a to bez potřeby nějaké
volby. Poslední verze dovolují i tvorbu vlastních polymorfních subVI.
Systém LabVIEW je typový jazyk. Numerické datové typy jsou následující:
Numerický Délka v Přibližný počet
Rozsah
datový typ bitech dekadických míst
Nejmenší kladné číslo: 6.48e–4966
Extended-
od 15 do 33 dle Největší kladné číslo: 1.19e+4932
precision floating- 128
platformy Nejmenší záporné čís.:–6.48e–4966
point
Největší záporné číslo:–1.19e+4932
Nejmenší kladné číslo: 4.94e–324
Double-precision Největší kladné číslo: 1.79e+308
64 15
floating-point Nejmenší záporné čís.: 4.94e–324
Největší záporné číslo: 1.79e+308
Nejmenší kladné číslo: 1.40e–45
Single-precision Největší kladné číslo: 3.40e+38
32 6
floating-point Nejmenší záporné čís.: -1.40e–45
Největší záporné číslo: –3.40e+38
Long signed
32 9 –2,147,483,648 až 2,147,483,647
integer
Word signed
16 4 –32,768 až 32,767
integer
Byte signed
8 2 -128 až 127
integer
Long unsigned
32 9 0 až 4,294,967,295
integer
Použití počítačů v měřicí technice 57
! Operace se soubory
! Dialog s obsluhou a čas
! Dodatkové funkce
! Analýza
! GPIB
! DAQ
! Utility
Toto členění je v různých verzích různé a uživatel je může měnit dle svých potřeb. Zvláště
funkce analýzy jsou značně rozmanité.
LabVIEW využívá možností multiprogramování. Lze vytvořit i několik VI, které pracují
samostatně (tj. není mezi nimi datová vazba vyjádřená spoji v diagramu) a jimž je předáváno řízení
dle určených priorit. Jsou zde i známé prostředky asynchronního řízení jako semafory, fronty,
výskyty (occurrence) . Lze též mít spuštěn některý VI a současně editovat jiný. Programově lze
spouštět i jiné aplikace Ms-Windows, pomocí DDE nebo ActiveX je ovládat a vyměňovat navzájem
data. Tyto možnosti omezuje jen výkon počítače.
10
Podmínka
if(x>10)Vysledek=”Větší jak nula“; else Vysledek=”Menší nebo rovno nule“;
True False
Přepínač:
switch(a){
case 0: x=1; break;
case 1: x=3; break;
default: x=10; break;
}
0 1 2,Default
x
1 3 10
a
x
300
2
Použití počítačů v měřicí technice 61
M ATLAB Script
% convertrealvectorto string LorenzAttractor
Since M ATLAB doesn'texport
string through Active X server. pa = char(s); Y
W e have to do itin a hard way. % append search path According to the M ATLAB script,
path(path,pa); Y is a realmatrix.So Pop up on
s terminalY and setdata type to
examples\scriptnode RealM atrix
y= [1,1,1];
n = 30 / 0.05; Ifproblem occurs,check this
T = linspace(0,30,n); run time erroroutfordetailed
[t,Y]= ode23('LorenzEqs',T,y ); errormessage.
62 FEKT Vysokého učení technického v Brně
LabVIEW dovoluje řadu velmi zajímavých akcí a operací. Například program může být dynamicky
vytvořen až za chodu aplikace. Diagram ukazuje příklad „Plug-In“ řešení, kdy dostupné
programové moduly jsou zjištěny až po spuštění aplikace, nabídnuty obsluze (zde typy
transformací) a po výběru spuštěny. Lze též spustit subVI, který je na jiném síťovém počítači. Tyto
techniky jsou určeny pro pokročilé programátory
True
Transforms Transform Caption.Text
Transforms PutItem Name on Graph Caption
ItemNames Caption.Text -1 Transforms
ItemNames
-1
error
Transforms
Generate Transform
inputpattern
True
Trans.Pattern
0.00 inputpattern
inputpattern 0
-1 Transforms
VIDescription 100
Kromě vytváření datových vazeb mezi uzly pomocí spojů (wires) se používají tzv. lokální a
globální proměnné. Ty v diagramu poznáme podle zvláštních přípojných bodů. Lokální proměnné
dovolují přístup k objektům na panelu z více míst diagramu (jak pro čtení, tak i zápis dat). Globální
proměnné (tvořené skrytými objekty na panelu) dovolují přímé vazby mezi VI v různých úrovních
hierarchie.
Pro efektivní využívání vlastností LabVIEW je třeba vytvářet hierarchickou strukturu VI a
subVI. Při tom můžeme postupovat zdola nahoru – to ovšem vyžaduje dobrou analýzu problému a
rozvržení před vlastním programování. Novější verze dovolují postup i shora dolů- tento postup je
vhodný pro špatně analyzované projekty. Programovat se začne nejprve od nejvyšší úrovně VI a
opakující se části (nebo nepřehledné) se uzavřou do subVI. Větší projekty mohou mít i 100 subVI.
Použití počítačů v měřicí technice 63
LabVIEW je zajímavý prostředek pro tvorbu měřicích systémů na bázi PC. Poskytuje
poměrně značný komfort a to jak při tvorbě programu v G, tak i při ladění a tvorbě ovládacího
panelu. Vytvořené virtuální přístroje lze snadno modifikovat a mohou mít značnou "inteligenci".
Aplikace moderních algoritmů zpracování signálů nečiní problémy. Ovládací panely jsou graficky
na výši a poskytují dokonalou iluzi skutečného přístroje.
LabWINDOWS i LabVIEW má přibližně stejné nároky na technické prostředky Nespokojeni
ovšem budou ti, kteří tvoří měřicí aplikace na bázi klasického programovacího jazyka, kdy lze
dosáhnout podstatně menších nároků na technické prostředky a kde i takto vytvořené programy jsou
kratší. Oba prostředky však lze kombinovat.
uvedeno ve zprávě IEEE Standard 488-1975. Jiné označení bývá GP-IB, IEC 625, ale i IEEE 488.1,
v ČR jako IMS-2 (ČSN 35 6522). Rozšíření normy nese název IEEE 488.2 (1987). Navzájem se
tyto standardy liší jen velmi málo a lze je kombinovat.
Tento systém je v současné době nejrozšířenější soustavou pro automatizaci měřicích a
testovacích procesů. Jde o soustavu, která je určena pro sestavení flexibilních měřicích systémů v
rozsahu jedné či několika laboratoří či zkušeben. Systém se skládá z autonomních přístrojů (které
můžeme často použít i samostatně mimo měřicí systém), vzájemně jsou propojeny sběrnicí
liniového typu s tzv. řídičem (např. PC s příslušnou kartou). Maximální počet přístrojů je omezen
na 15.
Každá funkční jednotka (přístroj) připojovaná do systému musí být vybavena standardním
rozhraním (stykovou jednotkou). K řízení systému slouží systém přenášení zpráv. V určitém
okamžiku je v systému vždy jeden zdroj zpráv (mluvčí - Talker), příjemců může být i více
(posluchač - Listener). Zprávy se předávají sérioparalelně po bytech s maximální rychlostí
1Mbyte/s (nyní existují firemní úpravy, které při zkrácených délkách kabelů dovolí přenos až 7
Mbyte/s). Rychlost přenosu je přizpůsobena nejpomalejšímu posluchači. K tomu slouží třívodičová
sběrnice řízení přenosu dat (DAV-data platná, NRFD-nepřipraven pro data, NDAC-data nepřijata).
Zprávy jsou určeny pro řízení činnosti stykového systému (stykové zprávy - např. adresy) nebo pro
komunikaci s přístroji (přístrojové zprávy - např. volba rozsahu, naměřené hodnoty aj.). Zprávy jsou
převážně znakové v kódu ISO7. Kromě toho pro přenos tzv. jednovodičových zpráv se používá
skupina pěti vodičů (ATN, IFC, SRQ, REN, EOI). Celkem kabel obsahuje 16 signálních vodičů a 8
zpětných a zemnících.
Standardizovány jsou stykové zprávy, druh, vlastnosti a osazení konektorů a tzv. stykové
funkce. Konkrétní přístroj obsahuje jen ty funkce, které vyžaduje pro svou činnost (např. generátor
nemusí mít funkci mluvčího). Přístrojové zprávy jsou v zásadě jen doporučeny, dnes se výrobci řídí
standardem konsorcia SCPI (Standard Commands for Programmable Instruments). Přes to je při
Standard VXI (VMEbus Extension for Instrumentation) je výkonná stavebnice pro tvorbu
měřicích a testovacích systémů. Vychází ze standardu VMEbus (sběrnice MOTOROLA dle
standardu ANSI/IEEE STD1014-1987), doplněného o funkce specifické pro měřicí aplikace. Byl
vytvořen konsorciem světových firem (původně 5, v roce 1995 přes 100). Stavebnice specifikuje
rozměry zásuvných modulů, které mají funkci měřicích přístrojů, elektrické propojení i konektory.
Zásuvné moduly se vkládají do speciální vany (rámu-Main Frame), který zajišťuje propojení,
chlazení i napájení. Řízení systému zajišťuje řídící jednotka, která obsahuje vestavěný počítač
(IBM/PC kompatibilní nebo i jiný). Je však možné ovládání systému z externího počítače pomocí
GP-IB nebo sériového kanálu či MXI. Výhodou je kompaktnost a vysoký výkon (multiprocesorová
sběrnice dat 32 bitů, hodinový signál až 100 MHz…). Zásuvné moduly nejsou schopny samostatné
funkce. V systému lze použít i jednotek VMEbus. Ceny VXI komponentů jsou relativně vysoké
(jednotky až desítky tisíc $). Lze sice předpokládat, že jejich cena bude klesat, ale je jisté, že
VXIbus nebude nikdy patřit k levným měřicím systémům, což ovlivňuje jeho nasazení v praxi
(vojenský a letecký průmysl).
Měřicí systém PXI (PCI bus Extended for Instrumentation - Obr. 37) vznikl na bázi sběrnice
Karty, připojované na sběrnici počítače (měřicí karty, blokové schéma Obr. 38) jsou velmi
často používaným prostředkem. Jsou sériově vyráběny praktický více jak deset let.
Zesilovac Vzork+A/D
Paměť
D/A
Dig.vstupy/výstupy
je karta určena k převodu napěťového signálu na číslo. Bývá označována též jako laboratorní nebo
multifunkční. Jiné typy karet jsou specializovány na digitální signály, generování analogových nebo
číslicových signálů, přesné zdroje napětí a podobně. Těmi se zde nebudeme podrobně zabývat.
Měřicí karta má na svých vstupech před multiplexerem ochranné omezovací obvody, které ji chrání
před poškozením. Až na výjimky však karty nemají galvanicky oddělené vstupy, tak že připojení
libovolného signálu s úrovní nad 50V může kartu i počítač zničit. Proto je vhodné vstupní proudy
omezit rezistory.
Karta dále obsahuje přepínač napěťových vstupů. Tak je možno i s využitím jediného A/D
převodníku měřit více napětí, avšak nikoli současně. Pro případ, kdy je třeba současné vzorkování
musíme použít speciální typy, které mají dva i více A/D převodníků. Vstupy karet jsou zhruba tří
typů:
SE-G PC
SE PC
DIFF PC
• SE-G (single ended-grounded) – jedna svorka je pro všechny kanály společná a je spojená
se zemí počítače (tím i s ochranným vodičem sítě). Vhodné pro připojení k takovým
zdrojům napětí, které sami se zemí spojení nemají (např. izolované termočlánky)
Použití počítačů v měřicí technice 69
• SE (single ended) – jedna svorka je pro všechny kanály společná a proti zemi počítače i
ochrannému vodiči sítě může mít malý potenciál (řádově V). Vhodné pro připojení
k takovým zdrojům napětí, které sami se zemí spojení mají (např. termočlánky s jednou
svorkou uzemněnou).
• DIFF (differential) – každý kanál má dvě samostatné svorky a měří napětí mezi nimi.
Napětí svorek proti zemi nesmí převýšit několik V. Vhodné pro připojení tam, kde zdroje
nemají společnou svorku, případně u symetrických zdrojů.
Ukázky připojení jsou na Obr. 40.
Za přepínačem následuje zesilovač se zesílením 0,5-500. Jeho dynamické vlastnosti musí být
velmi dobré, protože při přepínání sousedních kanálů dochází k rychlým změnám. Zesílení 500, kdy
je na vstupech karty napětí řádově mV, vede na snížení přesnosti a i ke zhoršení frekvenční
charakteristiky. Proto je vhodné malá napětí nejprve externě zesílit před přivedením na měřicí kartu.
Vzorkovač a A/D převodník má vlastnosti uvedené ve specifikaci karty. Je však jen jednou ze
součástí a tak vlastnosti karty jsou horší než samotného převodníku. Převodník může mít
automatickou kalibraci. Paměť karty slouží k zachycení vzorků před jejich předáním do operační
paměti PC. Může být typu FIFO, někdy dovoluje cyklickou organizaci. Velikost má být taková, aby
v něm byly uloženy vzorky v časovém intervalu asi 0,1s.
Řídicí obvody karty realizují řízení přepínače, A/D převodníku a paměti. Obvykle obsahují
krystalem řízený generátor a několik programovatelných časovačů. Je třeba upozornit, že většinou
nelze nastavit libovolnou vzorkovací frekvenci, protože ta musí být celým podílem frekvence
krystalového oscilátoru. Například chceme-li vzorkovat signál o frekvenci 50 Hz, na periodu
odebrat 128 vzorků, dostaneme vzorkovací frekvenci 6400 Hz. Pro referenční generátor o frekvenci
1 MHz bychom potřebovali dělič 106/6400= 156,25, což není celé číslo a nelze tedy realizovat.
Interval přepínání nemusí být jednoznačně vázán na frekvenci vzorkování převodníku.
Analogové výstupy u tzv. multifunkčních měřicích karet jsou spíše statické, pro nastavení
podmínek měření. Jejich použití pro generování AC signálů je omezeno, protože nemají větší
vyrovnávací paměť. K tomu jsou určeny karty jiné (karty analogových výstupů).
Výše popsaná karta je určena pro kontinuální vzorkování, kdy vzorkovací signál není vázán
na měřený signál (ani frekvenčně, ani fázově). Pro rychlé děje, kdy nelze řešit problém softwarově,
mohou být karty vybaveny synchronizačními obvody podobně, jako osciloskop, případně musíme
vzorkovací signál generovat externě (většina karet dovoluje).
Rozhraní směrem k PC je dnes většinou typu PCI, což dovoluje vzorkování do frekvence 20
MHz. V praxi se stále můžeme setkat s rozhraním ISA u karet do 200 kHz.
Celkový přehled vlastností je značně rozsáhlý a je uveden ve výčtu dále. Nezanedbatelné ale
je to, zda ze zvoleným sw může karta jednoduše spolupracovat. Obvykle s malými problémy jsou
karty dodané (nebo vyráběné) přímo výrobcem sw. Je třeba upozornit na to, že ke kartě je nutno
(kromě velmi jednoduchých na úrovni DOS) instalovat potřebný ovladač, který je třeba
nakonfigurovat. Zvláště u karet v provedeni PC-CARD se musí přesně dodržet doporučený
instalační postup.
Vlastnosti karet neuvažují vliv připojovacího kabelu, který při nevhodném provedení a
umístění může vlastnosti značně zhoršit. Určitý obrázek o úrovni karty dá i to, zda obsahuje
manuálně nastavované prvky (trimry) a propojky, nebo zda je veškeré nastavování řešeno pomocí
sw a nastavení ukládáno do paměti EEPROM na kartě.
- vlastnosti analogové části : - rozsahy, připojení (SE,DIF), přepínač kanálů, zesilovač, vzorkovač
70 FEKT Vysokého učení technického v Brně
V oblasti technických prostředků se jedná o karty pro komunikaci se sběrnicí GP-IB a to dle
nejnovějších norem (IEEE 488.2, SCPI) a různé podpůrné prostředky (konvertory, expandery,
analyzátory), ale i pro systémy PXI, VXI a řadiče VXI. Pro jednodušší systémy je k dispozici řada
karet, které dovolují komunikaci přímo s reálným okolím (karty analogových i číslicových V/V) a
to opět pro různé řady počítačů. Pro tyto karty jsou vyráběny i pomocné podpůrné prostředky
(svorkovnice, kabely) i prostředky pro analogové předzpracování signálu (přepínače, zesilovače,
Použití počítačů v měřicí technice 71
vzorkovače). Pro komplikované aplikace je dodáván i pomocný systém SCXI, která obsahuje jak
mechanické díly, tak i řídicí prostředky pro toto předzpracování. Pro potřebu rychlého zpracování
dat jsou dodávány podpůrné karty se signálovým procesorem.
Dodávaná dokumentace poskytuje výklad k ovládání karet i způsob připojení k měřenému
objektu. Princip funkce je popisován jen na úrovni blokového schématu, schémata zapojení nejsou
dodávána. U karet pro řízení sběrnice GP-IB se předpokládá použití firemního software, tak že
ovládání na nižší úrovní popisováno není (není uváděn popis použití zákaznického obvodu NI).
Softwarová dokumentace je poměrně podrobná, i když někdy na úkor obecnějšího pohledu na
systém. Zde firma NI předpokládá účast na některém z firemních školení, kde je poskytnut výklad i
poměrně rozsáhlý textový materiál. Pro naši oblast je ovšem účast na těchto školeních nákladná.
Obecně lze tyto karty rozdělit do několika kategorií a to podle různých kriterií. Obvykle je
důležité členění dle parametrů karet na straně komunikace s okolím, i když někdy jsou ovlivněny i
stranou počítače (rychlost). Tyto karty dovolují vybudovat poměrně dobrý měřicí systém, i když je
třeba respektovat některá omezení. Maximální vzorkovací kmitočet je omezen na 200 kHz, pro
směrnici EISA na 1MHz, PCI na 20MHz (r.2002), rozsah vstupních signálů max. 10V, zesílení v
rozsahu 1 - 500, rozlišení 12 - 20 bitů. Při zpracování malých signálů je třeba uvážit, že rušení od
počítače do vstupních obvodů může být značné a že s rostoucím zesílením klesá povolený
vzorkovací kmitočet. Analogové V/V do těchto karet nejsou galvanicky oddělené jak od
ochranného vodiče sítě (počítače) i navzájem. Maximálně jsou poskytovány rozdílové
(diferenciální) vstupy, kde součtová složka nesmí překročit 11 V. Obdobně i případné číslicové V/V
nejsou na kartách galvanicky odděleny, mají společnou svorku spojenou s ochranným vodičem sítě.
Úrovně na těchto V/V jsou TTL. U dodávaných karet je třeba sledovat následující vlastnosti:
Analogové vstupy:
- Počet kanálů
- Typ vstupů
- single ended SE
- pseudodiferenciální
- diferenciální
- Typ A/D převodníku
- postupná aproximace
- paralelní (flash)
- integrační
- sigma-delta
- Rozlišení (počet bitů)
- Maximální vzorkovací frekvence
- Vstupní rozsah, zesílení
- Vazba (AC, DC)
- Maximální pracovní napětí
- Ochrana před přepětím
- Velikost napětí, která zničí vstupy
72 FEKT Vysokého učení technického v Brně
Přenosové vlastnosti:
Vlastnosti zesilovačů:
- Vstupní impedance
- Vstupní proud (v nA)
- Vstupní proudový offset
- Potlačení souhlasného signálu (CMRR)
- Výstupní rozsah
- Výstupní impedance
Dynamické vlastnosti:
Vlastnosti filtrů:
Stabilita:
Analogové výstupy:
- Počet kanálů
- Rozlišení (počet bitů)
74 FEKT Vysokého učení technického v Brně
- Počet kanálů
- Logické úrovně (parametry UH ,UL, IH, IL)
- Kapacita čítače (počet bitů)
- Parametry hodinového generátoru
- Maximální vstupní frekvence
Použití počítačů v měřicí technice 75
Pro analogovou úpravu signálu před přivedením na měřicí kartu je k dispozici řada stavebnic,
například systém SCXI fy National Instruments (Obr. 41).
Obr. 41 – Systém SCXI pro úpravu analogových signálů pro měřicí karty a PXI
S daty získanými měřicí kartou můžeme zacházet různými způsoby. Nejjednodušší je případ,
kdy zvolíme získání např. 1024 vzorků, po jejich obdržení je zpracujeme a zobrazíme výsledek. Po
té následuje získání dalších vzorků atd. Tento principielně jednoduchý způsob má nevýhodu při
sledování kontinuálně probíhajících dějů, protože data získáváme s přestávkami. U velmi pomalých
dějů lze zpracování a zobrazení provést i mezi vzorky. Rychlé kontinuální děje zpracováváme tzv.
metodou dvojitého bufferu. Ta dovoluje současně získávat data i je zpracovávat (pokud dostačuje
výkon počítače). Pochopitelně se výpočet zpomalí. Různé metody využití vyrovnávací paměti jsou
na obr. Poznamenejme, že v prostředí LabVIEW lze pracovat i s vícenásobným bufferem
(segmentací).
76 FEKT Vysokého učení technického v Brně
Vzorky
Výpočet
Výpočet
Vzorky
Výpočet
Plnění
Zpracování
6 Přístrojové ovladače
Všechny vývojové sw pro tvorbu měřicích systémů používají princip přístrojových ovladačů
(Instrument Driver - dále PO). Používají se pro vazbu aplikačního programu na konkrétní složitější
přístroj jako je multimetr, osciloskop atd. Tím se zjednoduší programování, autor programu nemusí
detailně studovat dokumentaci k přístroji i komunikační rozhraní. Nápovědní systém spolu
s možností ověřit či vyzkoušet si jednotlivé funkce přímo s přístrojem urychlují seznámení
s přístrojem. Usnadňují i řešení situace, kdy je nutno změnit komunikační rozhraní, vyměnit přístroj
za jiný téhož charakteru (např. od jiné firmy), přechodu na jinou platformu nebo i aktualizaci sw.
Přístrojový ovladač ale na druhou stranu není nezbytný – jde u jistý mezičlánek, který zvětšuje
rozsah sw, může ho i zpomalovat. Pokud není k dispozici, přináší jeho vývoj jisté zdržení. Pokud
ale předpokládáme použití přístroje i v budoucnu, stojí za to přístrojový ovladač vytvořit.
Přístrojové ovladače byly určitým způsobem sjednoceny, tak že je možné používat i pro různé
vývojové systémy. Bývají dostupné na INTERNETU u výrobců sw, výrobců měřicích přístrojů
nebo na různých výměnných stránkách uživatelů. PO se většinou šíří bezplatně. Někdy se setkáme
s PO otevřeným, je k dispozici zdrojový text a můžeme ho měnit nebo přizpůsobovat obdobným
typům přístrojů. Uzavřené přístrojové ovladače zase do jisté míry poskytují záruku, že jsou
skutečně funkční.
Přístrojový ovladač může ovšem i řešit problém, který nemá s fyzickým měřicím přístrojem
mnoho společného. Existuje řada doplňků, které rozšiřují systém o další funkce (toolbox), převádí
fyzikální jednotky atd. Různé nástavby jsou ve skutečnosti přístrojové ovladače.
Přístrojový ovladač lze vytvořit různými způsoby:
• s vazbou na knihovnu rozhraní (GPIB, RS232). Změna rozhraní i u téhož přístroje
vyžaduje jiný PO. Toto je nepříjemné u přístrojů, které mají více typů rozhraní.
• s vazbou na VISA knihovnu. Knihovna VISA (Virtual Instrument Standard Architecture)
je vlastně univerzální rozhraní, do jisté míry nezávislé i na platformě počítače a
překladači. Toto ovšem neřeší problém použití jiného typu přístroje i stejných vlastností
(např. od jiné firmy). Nelze také provádět zásahy v již hotové a sestavené aplikaci.
• s vazbou na IVI knihovnu. Ovladače s využitím prostředků IVI (Interchangeable Virtual
Instrumentation) jsou dokonce měnitelné i po sestavení aplikace. IVI instaluje vlastního
správce – IVI Engine, prostřednictvím kterého se přístroje ovládají. Došlo k oddělení
přístrojového ovladače od řídicího programu. Tyto ovladače mají řadu i dalších výhod,
jsou však poměrně rozsáhlé. Je k dispozici prostředek pro automatizaci tvorby IVI
ovladačů.
Parametry uvedené kurzívou souvisí s konfigurací rozhraní, parametry a texty v [] jsou nepovinné.
IVI používá adresování jako VISA. Další parametry rozhraní (parita, přenosová rychlost atd.)
určuje funkce inicializace s podmínkami.
Přístrojový ovladač je vlastně knihovna, někdy statická, často dynamická DLL. Pro zachování
určité jednotnosti se doporučuje její struktura. Porušení struktury sice nemusí znamenat
nefunkčnost, ale takové ovladač nemůže být certifikován (např. National Instruments ovladače
certifikuje pro své programové systémy). Ovladač obsahuje funkce povinné a volitelné, které závisí
na konkrétním druhu přístroje, ale i na autorovi. Povinné funkce jsou:
• Inicializace a inicializace s podmínkami
• Uzavření (Close)
• Nulování (Reset)
• Auto test (Self-test)
• Dotaz na číslo revize (Revision Query)
• Dotaz na chybu (Error Query)
• Chybová zpráva (Error Message)
• Vezmi/Zruš Informaci o chybě (Get/Clear Error Info)
• Vezmi další záznam o platné hodnotě
• Vezmi/Nastav atribut
• Nastav neplatné všechny atributy
• Zamkni/odemkni sezení (Lock/Unlock Session)
• Piš/čti data z/do přístroje
Vzájemnou vazbu modulů ovladače uvnitř i navenek charakterizuje model ovladače. Externí
model ovladače vyjadřuje vazby navenek (Obr. 44). V tomto modelu existuje aplikační rozhraní
API, kterým je navázán ovladač na uživatelský (aplikační) program, dále obsahuje interaktivní
rozhraní pro spolupráci s uživatelem v konverzačním režimu (uživatel může přes PO přímo přístroj
řídit a číst z něj data). Směrem k přístroji (tedy přes fyzické rozhraní) je PO navázán buď přes
knihovnu rozhraní (GPIB Library, RS232 Library atd.) nebo přes knihovnu VISA.
80 FEKT Vysokého učení technického v Brně
Interaktivní Programové
rozhraní rozhraní (API)
V případě ovladače IVI funkční tělo spolupracuje s IVI Engine. Vazby vyjadřuje Obr. 44.
Interní model popisuje funkční tělo ovladače. Konkrétní řešení závisí na přístroji i použité
technologii (VISA,IVI). Model je na Obr. 45.
Použití počítačů v měřicí technice 81
Funkční tělo
Aplikační funkce
Uzavření (Close)
Inicializace
Akce/Stav
Data
Utility
Konfigurace
Atributy
IVI Eng.
IVI ovladače jsou nejnovější „technologií“ ovladačů. Hlavním cílem bylo zajistit pružnost
navrhovaného sw vzhledem k technickým prostředkům (přístroji). Jde totiž o to, že konkrétní
vytvořená aplikace vyžaduje konkrétní typ přístroje (např. multimetru). Pokud např. dojde k jeho
poruše, musíme mít k dispozici náhradní téhož typu. Jiný typ multimetru týchž vlastností (přesnost,
funkce, rozsahy…) není možno použít bez zásahu do sw, nového překladu atd. I když existuje snaha
sjednotit ovládání přístrojů zavedením standardního jazyka SCPI, je tolik variant, že samotné SCPI
problém neřeší. Další smysl zavedení IVI bylo shrnout určité části ovladačů do jediné výkonné časti
a tím zmenšit opakování určitých modulů v každém ovladači samostatně. IVI je postaven na
objektové struktuře, kterou vyjadřuje Obr. 46. IVI Engine je samostatně instalovaný modul OS,
který spolupracuje se všemi aktivními přístrojovými ovladači. Tím má přehled o využití fyzické
sběrnice a může . organizovat práci všech přístrojů, i když jsou využívány různými aplikacemi.
Přístrojový ovladač pak samozřejmě bez IVI Engine není schopen samostatné práce. Obsahuje
funkce pro nastavování atributů (rozsahy, funkce přístroje, parametry přenosu, činnost IVI Engine),
82 FEKT Vysokého učení technického v Brně
rozsahové tabulky pro atributy (např. povolené měřicí rozsahy), funkce pro ovládání přístroje
formou callback funkcí. Ty zajišťují zaslání a příjem dat do/z přístroje a callback funkce pro zjištění
stavu přístroje. IVI Engine obsahuje paměť stavu přístrojů, tak že může eliminovat opakované
přenosy dat např. pro nastavení měřicího rozsahu, pokud tento rozsah již v přístroji je nastaven. IVI
dovoluje jednoduše nastavit režim simulace přístroje. Při vývoji sw by bylo příliš nákladné, aby
programátor měl k dispozici po celou dobu vývoje potřebné měřicí přístroje. V režimu simulace
přístrojový ovladač je sice funkční, ale fyzický přístroj nevyžaduje. Měřená data jsou generována
náhodně, výstupní data nejsou předávána. Bez použití IVI musíme mít pro simulaci prakticky
zvláštní („demo“) PO. Spolupráce ovladače s IVI Engine je na obr. 11. IVI používá čtyři třídy
(class) přístrojů:
! Multimetr
! Osciloskop
! Generátor
! Napájecí zdroj
Atributy mohou být členěny následujícím způsobem:
! společné pro všechny IVI ovladače (inherent)
! společné pro třídu (class)
! společné pro přístroj (instrument-specific)
! privátní/skryté (hidden)
! veřejné (public)
Atributy mají příznaky, k nim patří: jen ke čtení, nedostupné pro čtení uživatelem,
neexistující, neukládané do cache...
Vytvoření přístrojového ovladače je poměrně odpovědná práce, protože ovladač bude obvykle
využíván opakovaně. Optimální je, pokud PO vytváří firma, která je zároveň i výrobcem
příslušného přístroje. To bohužel z různých (i konkurenčních) důvodů není možné, tak že i tvůrce
aplikace musí k vytvoření ovladače přistoupit. Nevyplácí se ovladač příliš omezit, tím jenom
zvýšíme pravděpodobnost dodatečných zásahů. Tvůrce ovladače musí přístroj i metodu dobře znát,
musí znát ovládací posloupnosti přístroje, protokoly i formáty dat. Některé části tvorby PO mohou
být automatizovány, např. i tím, že přístroj je fyzicky připojen a průvodce generátoru ovladače si
potřebné zjistí sám (IVI). Velkou pozornost je třeba věnovat ošetření chybových stavů, kontrole
přípustných rozsahů parametrů a hlášení chyb volajícímu programu.
Vlastní postup lze popsat následujícími body:
1. Určit jméno ovladače
2. Definovat atributy (automatizováno průvodcem)
3. Definovat funkce a třídy funkcí (automatizováno průvodcem)
4. Vytvořit strom funkcí, vytvořit nápovědu na nejvyšší úrovni (automatizováno průvodcem)
5.Pro každou funkci
a) definovat parametry, typy, meze, chybové kódy (automatizováno průvodcem)
b) vytvořit funkční panel, nápovědu pro panel a „controls“ (tedy vytvořit interaktivní
rozhraní – je částečně automatizováno průvodcem)
c) vytvořit tělo funkce (program)
d) otestovat zdrojový kód
6. Vytvořit include soubor .h (automatizováno průvodcem)
84 FEKT Vysokého učení technického v Brně
7 Distribuované aplikace
Měřicí systém může být v jednoduchém případě realizován lokálně, tj. na jednom místě je jak
měřený objekt, tak PC na kterém probíhá vyhodnocení i prezentace. Můžeme však požadovat, aby
všechny části byly prostorově odděleny a propojeny datovou sítí. Tento případ je řešitelný a
prakticky všechny moderní sw prostředky toto řešení dovolují. V případě např. aplikace „měřicí“
karty máme tyto možnosti:
• PC s měřicí kartou umístit u měřeného objektu, ostatní (zapracování, prezentace) na
vzdáleném PC
Použití počítačů v měřicí technice 85
int CVICALLBACK zapsat (int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
{
char *ttime;
static double data[5]={1,2,3,4,5};
switch (event)
{
case EVENT_COMMIT: /* zápis dat do serveru DS */
DS_SetDataValue (dsH, CAVT_DOUBLE|CAVT_ARRAY, data, 5, 0);
ttime = TimeStr ();
/* atribut dat – čas */
DS_SetAttrValue (dsH, "cas", CAVT_CSTRING, ttime,StringLength (ttime) , 0);
data[4]++;
break;
}
return 0;
}
int CVICALLBACK konec (int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
DS_CloseConnection (dsH); /* konec spojení na DS server */
QuitUserInterface (0);
break;
}
return 0;
}
Je možno stanovit přístupová práva a označení dat. Pokud povolíme, může být i více zdrojů
dat.
K identifikaci dat používá DS URL (Universal Resource Locator), který je možno použít i pro
přístup k lokálním souborům různých formátů. Příklad:
dstp://pccejka.dame.fee.vutbr.cz/mydata.dat.
Lze přistupovat i k jiným zdrojům dat, např. ftp://ftp.SomeServer.com/mydata.dat. ,
k lokálnímu souboru file://myfile.txt. DataSocket lze využít i pro vytvoření studentského
experimentu s následující strukturou:
Internet
Pokud ale potřebujeme ovládat aplikaci vzdáleně, poskytuje LabVIEW ještě jiné možnosti, které
vůbec nevyžadují programování. Řídicí objekty na panelu aplikace (A1) můžeme přímo v menu
propojit na DS server. Pak vytvoříme druhou aplikaci, která má jen panel (uživatelské rozhraní).
Pokud i v druhé aplikaci (A2) nastavíme propojení na týž DS server, budou oba panely po spuštění
propojeny a nastavení z panelu A2 budou ovládat objekty na A1 a naopak. Při vhodném
nakonfigurování můžeme aplikaci A1 ovládat a sledovat i z více míst.
LabVIEW verze 6.1 poskytuje ještě jednodušší možnost. Jde o funkci tzv. Remote Panel,
která dovoluje přistupovat k aplikaci LabVIEW prostřednictvím internetového prohlížeče (Internet
Explorer, Netscape). LabVIEW obsahuje vestavěný WWW server, který dovoluje vzdálený přístup.
LV dovoluje poloautomaticky vygenerovat WWW stránku, která je na tento server navázána a
88 FEKT Vysokého učení technického v Brně
obsahuje povely pro navázání spojení s aplikací. Vlastní prohlížeč si instaluje potřebný Plug-in (ze
serveru National Instruments, velikost až 20 MB). Uživatel nejprve uvidí statický obrázek
vzdáleného rozhraní aplikace. Pravým tlačítkem myši požádá o připojení, které mu je potvrzeno.
Potom již aplikaci ovládá zcela stejně, jako na lokálním stroji. Podobným způsobem se může i
odhlásit.
Aplikace využívající Remote Panel může omezit přístup jen z některých IP a musí respektovat
určitá pravidla (nelze např. přistupovat k lokálním souborům vzdáleně, jiný systém hlášení chyb,
aplikace musí být vždy v paměti, měla by minimalizovat objem přenášených dat – grafy jsou
náročné). Počet současně vzdáleně přistupujících uživatelů k LV je omezen dle počtu zakoupených
a zaregistrovaných licencí. To se týká i přímo spustitelných aplikací vytvořených v LV (LV6.1
k tomu používá Licence Manager).
Vestavěného WWW serveru LabVIEW lze využít k sledování chodu aplikace. To lze provést
prohlížečem bez zvláštního Plug-In, jde o přenos obrázků panelu.
Další možnosti využití Internetu pro LV i LW poskytuje Internet Toolkit jako zvláštní
doplněk. K ovládání lze použít CGI Scriptu a Cookies, odesílat e-maily atd. Bohužel však chybí
aktualizace tohoto nástroje (r.2002).
Pro šíření hotových aplikací a jejich prohlížení slouží další prostředek – LVPlayer. Po stažení
souboru knihovny LLB pro LabVIEW ji může prohlížet a spouštět (je to podobné jako „stahování“
např. videoklipů). LVPlayer má omezené některé funkce – nelze editovat, je blokován HW přístup,
DS server, TCP a UDP, volání DLL a CIN, ActiveX a on-line help. Přenášený soubor LLB musí
být opatřen elektronickým podpisem (na to existuje nástroj do LV), aby ho bylo možno prohlížet a
spouštět pod LVPlayerem. LVPlayer je k volnému použití (free).
Jiný způsob vzdáleného přístupu spočívá ve využití objektů ActiveX (Component Works –
Measurement Studio) a jazyka Visual C (Visual Basic). S objekty ActiveX pak přímo pracuje
prohlížeč (Internet Explorer) na straně klienta.
Některé třetí firmy vytvořily vlastní nástroje pro zpřístupnění aplikací LV pomocí Internetu.
Na bázi Java appletů vznikl ApplerVIEW jako placený nástroj.
Firemní prostředky National Instruments poskytují možnost řešení aplikací typu Klient-
Server. Je na uživateli, aby posoudil nasazení takového řešení pro daný problém, případně se
rozhodl pro řešení „vše v jednom“ – jediný spustitelný soubor. Řešení pomocí knihovny TCP nebo
serveru DataSocket-u má výhodu v mnohem menším objemu dat, přenášených sítí, na druhé straně
uživatel musí řešit klientskou aplikaci. Prostředí LabVIEW 6.1 dovoluje editovat a vytvářet aplikaci
i na vzdáleném počítači a k Remote Panelu se lze připojit i přímo, bez internetového prohlížeče.
=========================================================
Použití počítačů v měřicí technice 89
7.1.1 Kapitola 1
Výsledky vstupního testu:
1) S postupnou aproximací, paralelní (Flash), integrační, integrační s dvojitou integrací, sigma-
delta…
2) Synchronous Dynamic Random Acces Memory
3) Nejmenší alokační jednotka dat, ke které může přistupovat operační systém
4) NTFS
5) Uvst=3,74 V.
90 FEKT Vysokého učení technického v Brně