Cíl a užitek z ID: Téma 5 Ovladače přístrojů Instrument Drivers (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
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
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
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
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 IVI SCOPE class driver IVI gener class driver DMM simulation driver HP 34401 specific 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
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
Ovladače přístrojů v LabVIEW Téma 5 Ovladče přístr. str. 7
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