Univerzita Karlova v Praze Matematicko-fyzikální fakulta ZÁVĚREČNÁ ZPRÁVA ZE STUDENTSKÉHO PROJEKTU Ondřej Theiner Testování křemíkových detektorů pro experiment ATLAS Upgrade Ústav částicové a jaderné fyziky Vedoucí školitel: RNDr. Peter Kodyš, CSc. Praha 2016
Obsah 1 Úvod 2 2 Experiment Atlas 2 3 Zadání úkolu 3 4 Výstup 4 4.1 Přístroj Keithley 2410................................ 4 4.1.1 Funkce KEY Monitor............................. 4 4.1.2 Funkce KEY SETSOUR........................... 5 4.1.3 Funkce KEY MEAS............................. 5 4.1.4 Funkce KEY OUTPSTAT.......................... 6 4.1.5 Funkce KEY SETOUTP........................... 6 4.1.6 Funkce KEY LIMITS............................. 6 4.1.7 Funkce KEY SETLIMITS.......................... 7 4.1.8 GPIB příkazy................................. 7 4.2 Přístroj Agilent E3646A............................... 8 4.2.1 Funkce AGI Monitor............................. 8 4.2.2 Funkce AGI SETSOUR........................... 9 4.2.3 Funkce AGI MEAS.............................. 9 4.2.4 Funkce AGI OUTPSTAT.......................... 9 4.2.5 Funkce AGI SETOUTP........................... 9 4.2.6 Funkce AGI LIMITS............................. 9 4.2.7 Funkce AGI SETLIMITS........................... 9 4.2.8 Funkce AGI SELECTOUTP......................... 10 4.2.9 Funkce AGI OUTPNo............................ 10 4.2.10 GPIB příkazy................................. 10 4.3 Přístroj TTi CPX400SP............................... 11 4.3.1 Funkce TTI Monitor............................. 11 4.3.2 Funkce TTI SETSOUR............................ 12 4.3.3 Funkce TTI MEAS.............................. 12 4.3.4 Funkce TTI OUTPSTAT........................... 12 4.3.5 Funkce TTI SETOUTP........................... 12 4.3.6 Funkce TTI LIMITS............................. 12 4.3.7 Funkce TTI SETLIMITS........................... 12 4.3.8 Funkce TTI GTL............................... 12 4.3.9 GPIB příkazy................................. 13 5 Závěr 13 6 Zdroje 14 1
1 Úvod Ústav částicové a jaderné fyziky se mimo jiné podílí na experimentu Atlas, který probíhá ve švýcarském CERNu. Konkrétně se jedná o testování stripových křemíkových detektorů, které by měly být umístěny ve vylepšené verzi tohoto experimentu. Jelikož takový test může probíhat delší dobu, je v laboratoři snaha tyto testy co nejvíce zautomatizovat tak, aby přímo v laboratoři nemusel být přítomný člověk, který průběžně kontroluje, zda měření probíhá správně. Cílem tohoto projektu bylo napsat program, respektive několik procedur, které budou schopny v zadaných časových intervalech vyčítat z některých zde používaných multimetrů (a zdrojů zároveň) vybrané informace 1, které měly být zapisovány do logovacího souboru. 2 Experiment Atlas LHC, neboli Large Hadron Colider je největší urychlovač částic na světě nacházející se na švýcarsko-francouzských hranicích. Jedná se o toroid s obvodem 27 kilometrů, který je tvořen supravodivými magnety a mechanismy, které mají za úkol urychlovat částice a udržovat je na požadované trajektorii uvnitř prstence. Po obvodu tohoto kruhového urychlovače jsou pak umístěny čtyři hlavní experimenty ATLAS, CMS, ALICE a LHCb. Právě u prvního jmenovaného experimentu se v dohledné době chystá vylepšení a Ústav částicové a jaderné fyziky se podílí na testování detektorů, které v něm mají být umístěny. ATLAS je spolu s CMS největší experiment na LHC. Experiment se snaží zodpovědět některé základní otázky ohledně toho, čím je tvořena hmota, proč je vesmír tvořen hlavně hmotou a ne antihmotou, nebo fundamentální otázky ohledně standardního modelu. Jedná se o válec dlouhý 46 metrů, jenž má v průměru 25 metrů, který se nachází 100 metrů pod zemským povrchem. Tento válec je vybaven obrovským detektorem skládajícím se ze čtyřech hlavních částí. Jsou jimi vnitřní detektor, který měří hybnosti a náboje částic; kalorimetr sloužící k určení energií detekovaných částic; mionový spektrometr, který slouží k měření hybnosti mionů a systém magnetů, které ohýbají trajektorie nabitých částic za účelem určení hybností těchto částic. Uvnitř ATLASu pak dochází ke srážce dvou svazků nabitých částic a detektor poté zaznamenává částice vzniklé touto srážkou. Vzniklých událostí je pozorováno tak obrovské množství, že je není možné uchovávat všechny. Za tím účelem je detektor vybaven speciálním systémem, který je okažitě schopný rozhodnout, zda je právě zaznamenaná událost zajímavá a má ji cenu uložit, nebo jestli má být zahozena. Díky tomuto systému je objem dat velmi redukován už na samém počátku, nicméně i přesto je množství uchovávaných informacích značné. Vnitřní detektor je první část experimentu ATLAS, která vůbec produkt srážky může zaregistrovat. Skládá se z pixelového detektoru, polovodičového trackeru (SCT) a detektoru přechodového záření (TRT). Právě součástí SCT jsou křemíkové stripové detektory, které se na ÚČJF testují. Díky těmto tenkým silikonovým proužkům je možné dostatečně rychlé vyčítání velkého množství informací o detekovaných částicích. 1 Konkrétně se jednalo o informace o měřeném napětí, proudu a nastavených proudových, respektive napět ových omezení na zdroji. Detailněji dále v sekcích Zadání úkolu a Výstup. 2
Obrázek 1: Pohled na experiment ATLAS. [4] 3 Zadání úkolu Zadáním úkolu bylo napsat několik funkcí v jazyce C++ a prostředí ROOT, které by byly schopny komunikovat přes GPIB rozhraní se třemi vybranými zdroji a mutimetry zároveň, kterými je vybavena laboratoř Ústavu částicové a jaderné fyziky. Přesněji se jednalo o zařízení Keithley 2410, Agilent E3646A a TTi CPX400SP. Primárně šlo o to napsat program, který bude schopen v předem určených časových intervalech po určitou dobu vyčítat informace z těchto zařízení. V první řadě šlo o následující údaje: stav výstupu zdroje (zapnuto/vypnuto) nastavené proudové a napět ové omezení měřený proud a napětí Kromě vyčítání výše uvedených informací bylo třeba napsat několik základních řídících sekvencí, které by byly schopny použitá zařízení, alespoň na základní úrovni, ovládat. Například zapnout, či vypnout zdroj, definovat nové proudové a napět ové omezení zdroje, či další příkazy, které byly specifické pro konkrétní přístroje. Pro upřesnění by bylo ještě dobré říci, že pro daný úkol jsem měl k dispozici již hotové funkce, které komunikaci přes GPIB umožňují a mým úkolem bylo napsat výše zmíněné ovládací a vyčítací sekvence. 3
4 Výstup Výstupem tohoto projektu jsou tři sady funkcí, pro každý přístroj jedna sada, které umožňují vyčítat z přístrojů požadované informace a které také obsahují několik základních ovládacích sekvencí. Mojí snahou též bylo, aby ačkoliv se jedná o různé přístroje, jejichž ovládací GPIB příkazy jsou odlišné, byly všechny napsané procedury podobné a uživatel, který je používá nemusel přemýšlet nad tím, který příkaz se používá pro jaký přístroj. Při zavolání jakékoliv z procedur je událost zaznamenána do logovacího souboru společně s časem a datumem, kdy byla akce provedena. Logovací soubor je umístěn v adresáři g:/electronicroom/loglibs. V názvu logovacího souboru je vždy uvedeno datum aktuálního dne a název přístroje. Tedy každý přístroj má vlastní logovací soubor a též každý den vzniká nový logovací soubor. Zdrojové kódy vzniklé v rámci tohoto studentského projektu jsou uloženy na počítači v laboratoři ÚČJF v adresáři g:/electronicroom/macros, nebo dostupné online k nahlédnutí na adrese http://www-ucjf.troja.mff.cuni.cz/kodys/works/uceni/cz/theiner_sourcecode.zip. Popis vytvořených funkcí je uveden pro každý přístroj zvlášt. 4.1 Přístroj Keithley 2410 Pro to, aby mohly být použity níže uvedené příkazy, může být přístroj jak v takzvaném remote režimu, tak i v lokálním režimu 2. Nicméně pokud je Keithley 2410 přepnutý do lokálního režimu a je mu odeslán příkaz z počítače, automaticky se přepne do remote režimu a je ho pak nemožné ovládat pomocí ovládacího panelu na měm umístěném. Pokud je potřeba přístroj ovládat z ovládacího panelu, musí být přepnutý do lokálního režimu. To lze udělat pomocí programu NI-MAX, nebo manálně přímo na ovládacím panelu přístroje. 4.1.1 Funkce KEY Monitor void KEY Monitor ( int idev, f loat meast, float i n t e r v a l, char u n i t s ) Hlavní funkcí je funkce KEY Monitor. Ta automaticky v zadaných časových intervalech po definovanou dobu zapisuje informace o stavu výstupu (zapnuto/vypnuto), o aktuálně nastavném napět ovém a proudovém omezení zdroje a v případě, že je výstup zdroje zapnutý, změří proud a napětí. Pokud není výstup zapnutý, není změřeno nic 3. Funkce nemá návratovou hodnotu. KEY Monitor má čtyři vstupní parametry. První parametrje typu integer a udává označení přístroje 4, druhý parametr je typu float a udává, po jakou dobu má být monitorovací cyklus opakován. Třetí parametr je též typu float a udává, po jaké době má být měření opakováno. Čtvrtý parametr je typu char a určuje jednotky, ve kterých jsou uvedeny dva předchozí časové údaje. Parametr může nabývat tří hodnot: s pro sekundy, m pro minuty a h pro hodiny. V 2 Lokální režim je mód, kdy je přístroj ovládán hardwarovými ovládacími tlačítky. Remote režim je ten, při kterém odesílá uživatel příkazy do zařízení skrz počítač. 3 Důvod proč je funkce napsaná takto je ten, že při měření napětí, nebo proudu se automaticky zapne výstup přístroje a nechtěně by tak mohlo dojít k poškození připojeného přístroje vysokými proudy. 4 Toto označení je zde z toho důvodu, že se v laboratoři může vyskytovat více přístrojů daného typu (v tomto případě Keithley2410), které mohou měřit najednou. Každé zařízení má pak vlastní konfigurační soubor, ve kterém je specifikována jeho primární adresa. V době odevzdání projektu byly v laboratoři dostupné tři přístroje Keithley2410, proto tento parametr mohl nabývat hodnot 1 až 3. 4
případě, že uživatel zadá jiný znak, než výše tři uvedené možnosti, program vypíše chybovou hlášku ERROR! Invalid units. Příklady volání funkce KEY Monitor: KEY Monitor (1, 42, 0. 5, s ) ; KEY Monitor (1, 42, 0. 5, m ) ; KEY Monitor (, 42, 0. 5, h ) ; Pokaždé jde o přístroj s označením 1. V prvním případě bude měření probíhat 42 vteřin s dobou opakování 0.5 vteřiny. V druhém případě bude měření probíhat po dobu 42 minut s periodou opakování 0.5 minuty a ve třetím případě bude monitorovací cyklus probíhat 42 hodin s opakováním po 0.5 hodině. Zápis zjištěných údajů se provede jako u všech ostatních funkcí do logovacího souboru, ale s tím rozdílem, že zde je sada zjištěných dat zapsána mezi dvěma vodorovnými čarami a uvedena textem Automatic measurement, aby bylo možné poznat, že šlo o měření provedené během automatického monitorovacího cyklu. 4.1.2 Funkce KEY SETSOUR void KEY SETSOUR( int idev, f loat value, char type ) KEY SETSOUR je funkce, která umožňuje nastavení napětí, nebo proudu, který dává zdroj. Funkce má tři parametry. První parametr je typu integer a obdobně jako u funkce KEY Monitor udává označení konkrétného přístroje. Jak již bylo napsáno výše, u přístroje Keithley může tento parametr nabývat hodnot od jedné do tří. Druhý parametr je typu float a je to hodnota, kterou chceme na zdroji nastavit. Pokud se jedná o hodnotu proudu (v ampérech) nabývá třetí parametr typu char hodnoty i. Jde-li hodnota druhého parametru číslo udávající, jaké má být na zdroji nastavené napětí, bude třetí parametr nabývat hodnoty u. Jiné hodnoty třetího parametru než ty, které byly uvedeny výše, nejsou přípustné. Pokud je zadána špatná hodnota, dostaneme chybovou hlášku ERROR! Incorect physical quantity for SETSOUR. Příklady volání funkce KEY SETSOUR: KEY SETSOUR(1, 4. 2, u ) ; KEY SETSOUR(1, 0. 4 2, i ) ; V obou případech posíláme příkaz přístroji s označením 1. V prvním volání nastavujeme napětí na zdroji na hodnotu 4.2 V a v druhém případě nastavujeme proud na hodnotu 0.42 A. 4.1.3 Funkce KEY MEAS f loat KEY MEAS( int idev, char type ) Tato funkce umožňuje změřit proud, napětí, či odpor. Funkce vrátí naměřenou hodnotu požadované veličiny jako typ float a plus navís jsou zjištěné hodnoty zapsány do logovacího souboru. KEY MEAS má dva parametry typu char. Přičemž první je opět typu integer a jde označení přístroje a u druhého jsou povolené pouze tři hodnoty a to u, i a r. Pokud uživatel zadá u je změřeno napětí (ve voltech), i je pro změření proudu (v ampérech) a r je pro odpor (ohm). Pokud uživatel zadá jinou hodnotu, než výše jmenované, program vypíše chybovou hlášku ERROR! Incorect physical quantity for measurement. 5
Příklady volání funkce KEY MEAS: KEY MEAS(1, u ) ; KEY MEAS(1, i ) ; KEY MEAS(1, r ) ; Například v případě měření proudu bude do logbooku spolu s časem měření zapsáno Current: *** A, kde místo třech hvězdiček bude měřená hodnota proudu. Analogicky pro napětí a odpor. 4.1.4 Funkce KEY OUTPSTAT bool KEY OUTPSTAT( int idev ) Funkce má jediný parametr typu integer, který udává označení přístroje. Návratová hodnota této funkce je boolovská hodnota, tedy 1 nebo 0 podle toho, zda je výstup zdroje zapnutý, nebo vypnutý. Funkce se volá bez parametrů. Příklady volání funkce KEY OUTPSTAT: KEY OUTPSTAT( 1 ) ; Zavolání této funkce mimo jiné způsobí, že do logbooku bude zapsána hláška Output state: 1, nebo Output state: 0 podle toho, zde je výstup zapnutý, či vypnutý. 4.1.5 Funkce KEY SETOUTP void KEY SETOUTP( int idev, bool s t a t e ) Tato funkce umožňuje zapnout, či vypnout výstup. Má dava parametry. První je typu integer, který označuje dané zařízení a druhý typu bool - 1 pro zapnutí a 0 pro vypnutí výstupu. Nemá návratovou hodnotu. Příklady volání funkce KEY SETOUTP: KEY SETOUTP(1, 1 ) ; KEY SETOUTP(1, 0 ) ; Do logbooku je logována hláška: Output ON, nebo Output OFF podle toho, do jakého stavu byl přístroj přepnut. 4.1.6 Funkce KEY LIMITS void KEY LIMITS( int idev, char type ) Slouží ke zjištění nastavených proudových, nebo napět ových omezení. Funkce má dva parametry. První parametr je opět typu integer a identifikuje konkrétní zařízení. Druhý parametr je typu char, který může nabývat hodnot u, nebo i podle toho, zda se chceme dotázat na napět ové, nebo proudové omezení. V případě, že zadáme jinou hodnotu, program vypíše hlášku ERROR! Incorect physical quantity for limits. Návratová hodnota je typu float a udává hodnotu toho omezení, na které se dotazujeme (ve voltech, nebo ampérech). 6
Příklady volání funkce KEY LIMITS: KEY LIMITS(1, u ) ; KEY LIMITS(1, i ) ; Po použití funkce bude do logbooku společně s datumem zalogováno Voltage upper limit: *** V, případně Current upper limit: *** A, kde místo třech hvězdiček bude aktuálně nastavená hodnota daného omezení. 4.1.7 Funkce KEY SETLIMITS void KEY SETLIMITS( int idev, f loat value, char type ) Funkce slouží k definování vlastních proudových, nebo napět ových omezení. Má dva parametry. První opět identifikuje konkrétní zařízení. Druhý je typu float a udává hodnotu daného omezení, druhý je pak typu char a určuje, zda se jedná o omezení proudu, nebo napětí. Jedná-li se o omezení napětí, je zadávaná hodnota ve voltech. Pokud jde o omezení proudu, je udaná hodnota v ampérech. Funkce nemá návratovou hodnotu. Pokud zadá uživatel jiný vstupní parametr než je uvedeno výše, dostane chybovou hlášku ERROR! Incorect physical quantity for limits. Příklady volání funkce KEY SETLIMITS: KEY SETLIMITS(1, 42, u ) ; KEY SETLIMITS(1, 0. 4 2, i ) ; V prvním případě bude nastaveno napět ové omezení na 42 voltů a v druhém případě bude proud omezen hodnotou 0.42 ampér. Do logfile bude spolu s časem a datumem události zapsáno Set voltage protection: 42 V a Set current protection: 0.42 A. Obrázek 2: Keithley 2410. [5] 4.1.8 GPIB příkazy V této sekci uvádím GPIB příkazy, které jsou většinou použity ve funkcích popsaných výše, nebot jejich znalost může být užitečná pro další práci s přístrojem. Vyskytují se zde ale i příkazy, které v žádné z funkcí nepoužívám, ale jejich znalost by mohla usnadnit práci. Všechny 7
z následujících příkazů musí být zakončeny sekvencí \n. Na místech, kde je uvedeno <val>, se doplňuje hodnota specifikovaná u příkazu. CURR:PROT:LEV? Dotaz na aktuálně nastavené omezení proudu (maximální hodnota) v [A]. CURR:PROT:LEV <val> Nastaví horní proudové omezení na hodnotu <val> [A]. DISP:WIND1:DATA? Vyčte horní řádek displeje. DISP:WIND1:DATA? Vyčte spodní řádek displeje. MEAS:CURR? Změří proud v ampérech. Vrátí řetězec, kde druhé číslo je požadovaná hodnota. MEAS:RES? Změří odpor v ohmech. Vrátí řetězec, kde třetí číslo je požadovaná hodnota. MEAS:VOLT? Změří napětí ve voltech. Vrátí řetězec, kde první číslo je požadovaná hodnota. OUTP:STAT? Zjistí, zda je výstup zdroje zapnutý, nebo vypnutý. Vrátí hodnotu 1, nebo 0. OUTP ON Zapne výstup zdroje. OUTP OFF Vypne výstup zdroje. SOUR:CURR <val> Nastaví proud dodávaný zdrojem na hodnotu <val> [A]. SOUR:VOLT <val> Nastaví napětí na zdroji na hodnotu <val> [V ]. VOLT:PROT:LEV? Dotaz na aktuálně nastavené omezení napětí (maximální hodnota) ve [V ]. VOLT:PROT:LEV <val> Nastaví horní napět ové omezení na hodnotu <val> ve [V ]. 4.2 Přístroj Agilent E3646A Jak již bylo uvedeno v úvodu této sekce, byla snaha, ačkoliv jsou zde popisované přístroje různé, aby funkce byly napsány podobně pro všechny zařízení a uživateli tak byla usnadněna práce. Tento přístroj se velmi podobá Keithley 2410 až na ten rozdíl, že disponuje dvěma výstupy (output 1 a output 2). Mezi těmito výstupy lze přepínat. V případě, že funkce bude, co se týče volání a návratových hodnot, identická s tou, která je u Keithley 2410, budu se odkazovat na ni. Obdobně jako u Keithley, musí přepínání z remote režimu do lokálního probíhat bohužel pomocí programu NI-MAX. 4.2.1 Funkce AGI Monitor void AGI Monitor ( int idev, f loat meast, float i n t e r v a l, char u n i t s ) Tato funkce se drobně liší od té u přístroje Keithley. Stejná je v tom, že má opět čtyři parametry, které jsou stejné jako u funkce KEY Monitor u přístroje Keithley a zapisuje nastavená omezení a měří proud a napětí. Chybové hlášky jsou též stejné. Pro příklady volání viz příslušnou sekci u přístroje Keithley. Nicméně první rozdíl spočívá v tom, že Agilent má dva výstupy, a tak monitorování probíhá pro každý výstup zvlášt. V logovacím souboru je zpráva o automatickém měření opět oddělena dvěma vodorovnými čarami a nadepsána Automatic measurement, aby šlo zpětně rozlišit, které informace byly naměřeny v automatickém monitorovacím cyklu. Mezi těmito vodorovnými čarami je pak uvedeno zda jsou výstupy zapnuty či vypnuty 5, dále pak který z výstupů je aktuálně vybraný a nakonec jsou pak separátně uvedeny informace o proudech a napětích pro každý výstup zvlášt. 5 Nelze zapnout pouze jeden výstup. Výstupy musí být zapnuty nebo vypnuty dohromady. 8
Druhý rozdíl je v tom, že měření napětí a proudu může být provedeno aniž by se zapnul výstup, a tudíž by nemělo hrozit poškození přístroje vysokými proudy. Proto je proud a napětí měřeno vždy narozdíl od Keithley, kde je kontrolováno zapnutí výstupu. Třetí rozdíl spočívá v tom, že u tohoto přístroje lze nastavit pouze napět ové omezení, a tak je zapisováno pouze omezení napětí. 4.2.2 Funkce AGI SETSOUR void AGI SETSOUR( int idev, f loat value, char type ) Funkce je, co se týče používání a volání naprosto totožná s funkcí KEY SETSOUR u přístroje Keithley. 4.2.3 Funkce AGI MEAS f loat AGI MEAS( int idev, char type ) Slouží k měření napětí a proudu. Přístroj Agilent E3646A nepodporuje měření odporu. Tato funkce se volá a funguje naprosto stejně, jako funkce KEY MEAS. Pro detailnější informace viz funkce KEY MEAS u Keithley. 4.2.4 Funkce AGI OUTPSTAT bool AGI OUTPSTAT( int idev ) Funkce na dotaz, zda jsou výstupy zapnuté, či vypnuté. Jak již bylo uvedeno výše, výstupy nelze zapínat nebo vypínat jednotlivě. Opět shodné s funkcí KEY OUTPSTAT u předchozího přístroje. 4.2.5 Funkce AGI SETOUTP void AGI SETOUTP( int idev, bool s t a t e ) Tato funkce slouží k zapnutí, nebo vypnutí výstupů. Použití je shodné s funkcí KEY SETOUTP u přístroje Keithley. 4.2.6 Funkce AGI LIMITS void AGI LIMITS( int idev, char type ) Funkce je více méně shodná s funkcí KEY LIMITS uvedenou výše. Jediný rozdíl spočívá v tom, že přístroj Agilent E3646A nepodporuje proudové omezení a z toho důvodu se lze dotazovat pouze na omezení napětí. Nicméně aby byly funkce pokud možno co nejvíce stejné, funkce má stále dva parametry - první typu integer a druhý typu char, přičemž ale na rozdíl od příslušné funkce u Keithley je povolena pouze jedna vstupní hodnota jíž je u. Pokud uživatel zadá i, stejně tak jako jakoukoliv jinou hodnotu, dostane hlášku ERROR! Incorect physical quantity for limits. 4.2.7 Funkce AGI SETLIMITS void AGI SETLIMITS( int idev, f loat value, char type ) Slouží k nastavení napět ového omezení. Jako u předchozí uvedené funkce AGI LIMITS 9
funguje i tato funkce stejně jako u přístroje Keithley s tím, že u třetího parametru, který je typu char, je jediná povolená (a nutná) hodnota hodnota u. Pro detailnější popis viz funkce KEY SETLIMITS u přístroje Keithley. 4.2.8 Funkce AGI SELECTOUTP void AGI SELECTOUTP( int idev, int num) Protože má přístroj Agilent E3646A dva výstupy, slouží tato funkce k výběru výstupu. Pokud vybereme některý výstup a přístroji pošleme příkaz (například aby provedl měření proudu), je toto měření provedeno na aktuálně vybraném výstupu. Funkce nemá návratovou hodnotu a má dva vstupní parametry. První parametr opět jako u funkcí výše identifikuje konkrétní zařízení a je typu integer. Výstupy jsou na přístroji označeny output 1 a output 2 a stejně tak 1 a 2 jsou jediné povolené vstupní hodnoty podle toho, jaký výstup chceme zvolit. V případě že je zadána jiná hodnota, dočká se uživatel chybové hlášky ERROR! Incorect number of output. Only 1 or 2 is allowed. Příklady volání funkce AGI SELECTOUTP: AGI SELECTOUTP(1, 1 ) ; AGI SELECTOUTP(1, 2 ) ; Po zavolání je do logfile zapsána hláška Output changed to ***., kde místo hvězdiček je uvedeno číslo právě vybraného výstupu. 4.2.9 Funkce AGI OUTPNo int AGI OUTPNo( int idev ) Pro zjištění, který z výstupů je aktuálně vybraný slouží funkce AGI OUTPNo. Funkce se volá s jedním parametrem identifikujícím konkrétní zařízení, její návratová hodnota je typu int a udává číslo aktuálně vybraného výstupu (tedy bud 1 nebo 2). Příklady volání funkce AGI OUTPNo: AGI OUTPNo ( 1 ) ; Do logovacího souboru je při volání této funkce zapsáno Output *** selected, kde místo hvězdiček je uvedeno číslo aktuálně používaného výstupu. 4.2.10 GPIB příkazy Obdobně jako u zařízení výše i zde jsou uvedeny použité a užitečné GPIB příkazy pro přístroj Agilent E3646A. Příkaz musí být ukončen sekvencí \n, případně středníkem. 10
MEAS:CURR? Změří proud v ampérech. MEAS:VOLT? Změří napětí ve voltech. CURR <val> Nastaví proud dodávaný zdrojem na hodnotu <val> [A]. INST:NSEL? Dotaz na aktuálně vybraný výstup. Vrátí 1 nebo 2, podle aktuálně vybraného výstupu. INST:NSEL <val> Vybere výstup 1 nebo 2, podle toho, zda je zadána hodnota 1 nebo 2. OUTP? Zjistí, zda je výstup zdroje zapnutý, nebo vypnutý. Vrátí hodnotu 1, nebo 0. OUTP ON Zapne výstup zdroje. OUTP OFF Vypne výstup zdroje. VOLT <val> Nastaví napětí na zdroji na hodnotu <val> [V ]. VOLT:PROT? Dotaz na aktuálně nastavené omezení napětí (maximální hodnota) ve voltech. VOLT:PROT <val> Nastaví horní napět ové omezení na hodnotu <val> ve voltech. Obrázek 3: Agilent E3646A. [6] 4.3 Přístroj TTi CPX400SP Přístroj TTi CPX400SP je v porovnání s Keithley, nebo přístrojem Agilent o trochu jednodušší, nicméně má jednu velkou výhodu. Na rozdíl od dvou výše uváděných zařízení podporuje GPIB příkaz Go To Local, tedy může být programově přepnutý do lokálního režimu. 4.3.1 Funkce TTI Monitor void TTI Monitor ( int idev, f loat meast, float i n t e r v a l, char u n i t s ) Funkce funguje obdobně jako funkce KEY Monitor u přístroje Keithley. Nemá návratovou hodnotu. Rozdíl je v tom, že u tohoto přístroje existuje pouze proudové omezení, a tak se vypisuje pouze aktuálně nastavené omezení na proud. Druhý rozdíl spočívá v tom, že se přístroj po každé sadě měření přepne do lokálního režimu a tedy může být ovládán hardwarovými tlačítky téměř po celou 6 dobu monitorovacího cyklu. Funkce se volá stejně jako u Keithley. Pro popis vstupních parametrů, chybových hlášek a příkladů volání viz funkci KEY Monitor u prvního přístroje. 6 Pokud zrovna neprobíhá sada automatických měření. Přístroj je programově přepínán do lokálního režimu až poté, co změří napětí, proud a zjistí proudové omezení. 11
4.3.2 Funkce TTI SETSOUR void TTI SETSOUR( int idev, f loat value, char type ) Funkce slouží k nastavení napětí na zdroji. Použití funkce je podobné jako u funkcí KEY SETSOUR a AGI SETSOUR u předchozích dvou přístrojů s tím rozdílem že je povolena pouze jedna hodnota parametru a to je u. 4.3.3 Funkce TTI MEAS f loat TTI MEAS( int idev, char type ) Slouží ke změření napětí, nebo proudu. Přístroj nepodporuje měření odporu. Volání, výstupní hodnota a chybové hlášky shodné s funkcí KEY MEAS u Keithley. 4.3.4 Funkce TTI OUTPSTAT bool TTI OUTPSTAT( int idev ) Funkce pro dotaz, zda je výstup přístroje zapnutý, nebo vypnutý. Použití je shodné s funkcí KEY OUTPSTAT u přístroje Keithley. 4.3.5 Funkce TTI SETOUTP void TTI SETOUTP( int idev, bool s t a t e ) Výstup přístroje se zapíná a vypíná pomocí funkce TTI SETOUTP, jejíž použití je shodné s funkcí KEY SETOUTP u Keithley. 4.3.6 Funkce TTI LIMITS void TTI LIMITS ( int idev, char type ) Jak již bylo výše napsáno, přístroj TTi CPX400SP podporuje pouze proudové omezení. Nicméně podobně jako u Agilentu se funkce volá se dvěma parametry. První je typu integer a opět identifikuje konkrétní zařízení a druhá je typu char, přičemž zde je jediná povolená hodnota i. Detailnější informace jsou uvedeny v příslušné sekci u přístroje Keithley. 4.3.7 Funkce TTI SETLIMITS void TTI SETLIMITS( int idev, f loat value, char type ) Pro nastavení proudového omezení slouží tato funkce. Stejně jako u Keithley má funkce tři vstupní parametry. První parametr typu integer identifikuje zařízení, druhý typu float udává hodnotu daného omezení a třetí parametr je typu char a jeho jediná povolená (a nutná) hodnota je hodnota i. Třetí parametr je tu opět z důvodu, aby funkce byla stejná pro všechny přístroje. Pro detailnější popis viz KEY SETLIMITS u přístroje Keithley. 4.3.8 Funkce TTI GTL void TTI GTL( int idev ) TTI GTL je funkce pro přepínání přístroje do lokálního režimu. Nemá návratovou hodnotu a volá se s jedním parametrem typu integer, který identifikuje zařízení. 12
Příklady volání funkce TTI GTL: TTI GTL ( 1 ) ; Po zavolání se do logfile zapíše zpráva Local mode activated. 4.3.9 GPIB příkazy V následující tabulce jsou uvedené GPIB příkazy používané ve funkcích popsaných výše, případně příkazy, které mohou být užitečné. Každý dotaz odeslaný do zařízení musí být ukončen sekvencí \n. ADRESS? Dotaz na primární adresu zařízení. I1 <val> Nastaví horní poudové omezení na hodnotu <val> [A]. I1? Vrátí hodnotu nastaveného proudového omezení v [A]. I1O? Změří napětí ve [V ]. LOCAL Přepne přístroj do lokálního režimu. OP1 <val> Zapne, nebo vypne výstup. Místo <val> se nastavuje 1 nebo 0. OP1? Dotaz na to, zda je výstup zdroje zapnutý, nebo vypnutý. Vrátí 1 nebo 0. V1 <val> Nastaví napětí na zdroji na hodnotu <val> [V ]. V1O? Změří napětí v [A]. Obrázek 4: TTi CPX400SP. [7] 5 Závěr V rámci studentského projektu byl splněn hlavní cíl jímž bylo napsat funkci, která by byla v definovaných intervalech po zadanou časovou periodu schopna monitorovat stav tří vybraných přístrojů 7. Druhým výsledkem bylo pak vytvoření několika funkcí, kterými lze tyto přístroje ovládat alespoň na základní úrovni dálkově přes počítač. 7 Keithley 2410, Agilent E3646A a TTi CPX400SP 13
Ke konci projektu navíc začalo vznikat grafické rozhraní, pomocí kterého bude možné výše zmíněné přístroje pohodlně dálkově ovládat. Toto rozhraní je postavené na použití funkcí, které byly napsány během studentského projektu. 6 Zdroje [1] The Large Hadron Collider. CERN [online]. [cit. 2016-08-06]. Dostupné z: http://home. cern/topics/large-hadron-collider [2] The Detector. CERN [online]. [cit. 2016-08-06]. Dostupné z: http://atlas.cern/ discover/detector [3] The Inner Detector. CERN [online]. [cit. 2016-08-06]. Dostupné z: http://atlas.cern/ discover/detector/inner-detector [4] Multimedia ATLAS. CERN [online]. [cit. 2016-08-06]. Dostupné z: http://atlas.cern/ resources/multimedia [5] Test and Measurement Equipment Tektronix. Test and Measurement Equipment Tektronix [online]. [cit. 2016-08-04]. Dostupné z: http://www.tek.com/ keithley-source-measure-units [6] Keysight E3646A, E3647A, E3648A, E3649A DC Power Supplies, Programmable - TestEquity. New and Used Test Equipment, Environmental Chambers, Test Equipment Rental and Lease - TestEquity [online]. [cit. 2016-08-04]. Dostupné z: http://www.testequity. com/products/1757/ [7] CPX Series single and dual ouput PowerFlex laboratory power supply from Aim-TTi. Aim- TTi - Advanced Test and Measurement Instruments and Power Supplies [online]. [cit. 2016-08-04]. Dostupné z: http://www.tti-test.com/go/cpx/ 14