Číslicové měřicí systémy
Téma 5 Ovladače přístrojů – Instrument Drivers (ID) Cíl a užitek z ID: ID jsou vrstvou nad tradičními příkazy pro ovládání přístrojů (SCPI) – message based obsahují vyšší (high level) softwarové funkce, které jsou přímo včlenitelné do uživatelského programu (C) umožňují podstatné zkrácení času na vývoj software (odpadá znalost IEEE 488.2 funkcí, znalost SCPI i rozebírání a formátování řetězců pro řízení přístrojů) Ovladače přístrojů je možno stáhnout z Internetu (viz. lit [8]). Pro programové prostředí LabWindows/CVI je k dispozici cca 500 ovladačů pro téměř všechny vyráběné přístroje!! Instrument Driver Je soubor vyšších funkcí s grafickými funkčními panely, které usnadňují programování. Zahrnují (zapouzdřují) mnoho nižších (low-level) funkcí jako komunikaci v GPIB, RS-232 a VXI, formátování dat do intuitivních vyšších funkcí. Složení ID v C jazyce: 1. funkční panel přístroje xxx.fp 2. hlavičkový (vkládaný) soubor xxx.h 3. ID program: zdrojový kód .c kompil. model .obj knihovní soubor .lib dyn. knihovna .dll 4. ASCII textový soubor xxx.doc
Vnější interfaceový model ovladače přístroje (komunikace ID se systémem)
Téma 5 Ovladče přístr. – str. 1
Číslicové měřicí systémy
Funkční tělo: knihovna C funkcí pro řízení přístroje (uživatel může měnit, optimalizovat) VISA I/O interface: oddělená – separátní vrstva software VISA (Virtual Instrument Software Architecture) Subroutine Interface (interface subrutýn): ID pro LW/CVI je psán v ANSI C – tedy subroutine interface je funkčním voláním Programový interface: k ovladači přístroje je mechanismus pro volání driveru z vyšších programů Interaktivní interface: interaktivní grafický interface sloužící vývojáři software pro pochopení funkcí driveru a jak je použít
Vnitřní struktura driveru (Design Model)
Složkové funkce (component f.) – softw. moduly, z nichž každý řídí specifickou oblast funkce přístroje Aplikační funkce (applic. f.) – ukazují, jak společně použít složkové funkce pro provádění testů a měření
Složkové funkce:
požadované (requiered) funkce - inicializace – inicializují softw. spojení s přístrojem - uzavření (close) – uzavírá softw. spojení s přístrojem - nulování (reset) - vlastní test (selftest) - dotaz na chybu (error query) - chybové hlášení (error mesage) - dotaz na revizi (revision query) specifické vývojové funkce - konfigurační funkce, datová funkce, funkce kontroly stavu (status) a spouštění (trigger)
Téma 5 Ovladče přístr. – str. 2
Číslicové měřicí systémy
inicializační funkce - inicializace softw. spojení k přístroji; volitelně dotaz na identifikaci, reset; možnost uvedení přístroje do základního (default) stavu konfigurační funkce - soubor softw. rutýn, které konfigurují přístroj pro provedení žádané operace. Různé v závislosti na druhu přístroje. akční / stavové funkce (Action / Status f.) - akční – čekání na spuštění, softw. spuštění, zrušení měření - stavové – současný stav přístroje datové funkce - funkce pro přenos dat z a do přístroje - čtení hodnot, čtení průběhů, vkládání průběhů, aj. funkce utilit - různé operace jako reset, self-test, dotazy (chyba, zpráva, identifikace) a další, které vyvine vývojář ID uzavírací funkce (Close f.) - ukončení spojení k přístroji a dealokoace systémových prostředků
Aplikační funkce Zkušební a měřicí rutýny v zdrojovém (.c) kódu. Pro speciální měření – high level funkční interface ke driveru – programy, které se konfigurují, startují a čtou z přístrojů. Nevolají inicializační a zavírací (close) funkce.
Téma 5 Ovladče přístr. – str. 3
Číslicové měřicí systémy
Použití přístrojových driverů – ID: -
interaktivně řídit přístroje vytvářet funkce, vložení do aplikovaného (měřicího) programu možnost vytvářet vlastní funkce v ID
Použití v Lab Windows/CVI Menu – Instrument
Load – zavede a zkompiluje ID (nemusí být v seznamu projektu) Pozn.: ve „File“ menu Function Panel je možno začlenit do projektu Add to Project stejný efekt – okno Project – Open Function Tree (*.fp) Unload – odejme zavedený ID Edit - Show Info - Attach and Edit Source (připoj a edituj zdroj *.c) - Detach Program - Reatach Program - Edit Function Tree - Done
Vytvoření DLL z existujícího ID (z existujícího ID je možno vytvořit 32 bit DLL, která může být volána externími kompilátory jako Visual C++, Borland C++, LabVIEW aj.) Postup: - Vytvořit Nový projekt z menu File - Otevřít ID Open, Function Tree (File menu) např. HP 34 401. fp - Ve fp.window (např.HP 34 401. fp) – Options, Create DLL Project - uložit projekt (stejné jméno jako ID, ID.proj) - prj. window, Built menu – Create Dynamic Link Library - vytvořit DLL - vybrat kompilátor - zkontrolovat zda je uveden příslušný .h file (Exports) jsou vytvořeny: x.dll x.lib a další .lib pro kompilátory (msvc, symantek, watcon, borland) Volání DLL: DLL může být volána jak z LW/CVI, tak z LabVIEW, Visual C++, Borland C++ projekt … .fp UNLOAD … .fp remove .fp file z EDIT přidat .lib z EDIT (Add Files to Project), vybrat příslušnou .lib
Téma 5 Ovladče přístr. – str. 4
Číslicové měřicí systémy
Interchangable Virtual Instrument – IVI – drivery IVI drivery (zaměnitelné inteligentní virtuální ovladače přístrojů) Nová technologie vývoje driverů – 1998
Nevýhody dosavadních VXI – Plug & Play driverů: -
volání funkcí nemusí být optimální některé funkce nemusí být zcela testované nemožnost záměny přístrojů
Architektura IVI Driverů: Zkušební (řídicí) program
IVI DMM class driver
DMM simulation driver
HP 34401 specific driver
IVI SCOPE class driver
IVI gener class driver
Fluke 45 specific driver
Class driver: soubor funkcí a atributů pro řízení přístrojů uvnitř specifické třídy 5 tříd – DMM, oscil., gener., zdroje, spínače Specific driver: informace pro řízení příslušného modelu, příkazové řetězce, parsování kódu, platné rozsahy aj. Simulation driver: „soft-front panely“, pro testování tříd, možnost simulace a odzkoušení před zakoupením vlastního přístroje
Hlavní charakteristiky architektury IVI ID: -
standardní definovaná struktura pro externí interface k ovladačům přístrojů standardní struktura pro interní implementaci ovladačů přístrojů model atributů (vlastností) pro reprezentaci nastavení přístroje standardní soubor Callback funkcí, které má ID definovat a instalovat pro implementaci atributů přístroje mechanismus state-caching (stavová paměť, udržuje a monitoruje stavy zařízení), zvyšující výkonnost aplikačních programů standardní interface pro ověření platnosti (validation) parametrů, které uživatel předává funkcím ID standardní interface pro umožnění a znemožnění dotazů na stav přístroje po operaci standardní interface pro použití ID v simulačním módu schopnost ID hlásit rozsáhlé informace o chybách definice standardních tříd pro běžné typy přístrojů definice standardních tříd umožňuje vytvoření přístrojového ovladače třídy (class instrument driver) Lab Windows/CVI wizard – umožňuje vytvářet a modifikovat IVI ID.
Téma 5 Ovladče přístr. – str. 5
Číslicové měřicí systémy
Vnitřní činnost driveru: IVI engine – řídí čtení a zápis atributů do a z přístroje - callback funkce čtou a zapisují nastavení přístroje - tabulky rozsahů specifikují platné rozsahy pro daný attribute Př.: Scope_ConfigureVertical - IVI_SetAttributeViReal64 - IVI_ATTR_RANGE_CHECK attribute = VI_TRUE - IVI_ATTR_CACHE_CHECK attribute = VI_TRUE - IVI_ATTR_SIMULATE volání Scope_VerticalRangeWriteCallback - IVI_ATTR_QUERY_INSTR_STATUS = VI_TRUE Diagram funkce driveru:
stavová cache (state cache) - udržuje stav zařízení, porovnává příkaz se stavem přístroje a je-li shodný, není příkaz poslán
Hlavní přednosti: - možnost záměny přístrojů - redukce údržby - redukce prostojů - optimalizace funkcí - vývojové prostředí pro budoucnost
Téma 5 Ovladče přístr. – str. 6
Číslicové měřicí systémy
Ovladače přístrojů v LabVIEW
Téma 5 Ovladče přístr. – str. 7
Číslicové měřicí systémy
Knihovna VISA Krokem ke kompatibilitě bylo vyvinuto I/O software Virtual Instrument System Architecture, neboli VISA. Specifikace VISA definuje další generaci I/O sotfwarové normy nejenom pro VXI ale také GPIB, sériové linky a další interfejsy. Se standardem VISA přijmutým více než 35 největšími společnostmi vyrábějící elektronické přístroje včetně HP, National Instruments, Tektronix VISA sjednocuje průmysl tak , že software je schopné spolupracovat, znovu použít a provést testování. Aliance také spojuje populární operační systémy, aplikační vývojové systémy a programovací jazyky do zřetelných rámců a definuje specifikace zaručující spolupráci komponentů uvnitř každého rámce. Každý jazyk – , LabVIEW, LabWindows/CVI má svůj manuál podporující daný jazyk a umožňující vytvoření programu [4].
Studijní pomůcky: 1. LW/CVI: Instrument Driver Developers Guide 2. R. Almgren: An Introduction to the LW Instrument Driver, Instrupedia 96 3. AN 022: Developing LW/CVI Instrument Driver, Instrupedia 97 4. NI-VISA User Manual / 1997, NI 5. AN 120, 121, 122, National Instruments 6. Using IVI drivers with LW/CVI, Dokumentace LW/CVI. 7. http://www.ni.com/devzone/idnet/
Téma 5 Ovladče přístr. – str. 8