Automatizované měření



Podobné dokumenty
Virtuální přístroje. Matlab a Instrument Control Toolbox. J.Tomek, A.Platil

LabView jako programovací jazyk II

ŘÍZENÍ FYZIKÁLNÍHO PROCESU POČÍTAČEM

karet Analogové výstupy (AO) (DIO) karty Zdroje informací

Vývojové (a relační) diagramy a obrázky

Měřicí automatizované systémy

SEMESTRÁLNÍ PROJEKT Y38PRO

Matlab-To-Can Toolbox

Stručný návod pro software dodávaný jako příslušenství k NetMini adaptéru. Komunikace UPS \ NetAgent Mini DK532, DP532. O.K.SERVIS Plus s.r.o.

Laboratorní cvičení z předmětu Elektrická měření 2. ročník KMT

Programovací prostředek AmexCLV-V2.0

Téma 5. Ovladače přístrojů Instrument Drivers (ID)

FVZ K13138-TACR-V004-G-TRIGGER_BOX

16. Číslicový měřicí systém se sběrnicí IEEE 488 (základní seznámení)

Systém řízení Autoklávu

PC - Controller Centrální jednotka s rozhraním RS-232 TECHNICKÝ MANUÁL ACC-RS. Pro jednotky FUJITSU split a multisplit

Inovované sylaby předmětů Číslicové měřicí systémy 1 4

4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

Temp-485-Pt100. Teplotní čidlo (senzor Pt100 nebo Pt1000) komunikující po sběrnici RS-485 s jednoduchým komunikačním protokolem. Temp-485-Pt100 Box2

ŘÍZENÍ FYZIKÁLNÍHO PROCESU POČÍTAČEM

PROGRAMOVATELNÉ AUTOMATY FATEK

MI Video rozhraní pro vozidla Renault. Přepínání mezi jednotlivými vstupy a ovládání přehrávání

Obr. 1. Grafické programovací prostředí LabVIEW

Spider. Šest 1-Wire senzorů na sběrnici RS-485 CZ

Dodatek k manuálu. Analyzátor vibrací Adash 4102/A

Systém řízení Autoklávu s PLC AMIT

Uživatelský manuál Revize RS

Přípravek pro demonstraci řízení pohonu MAXON prostřednictvím

Sestava kamery s mot. objektivem Tamron

Úloha č. 2: Měření voltampérových charakteristik elektrických prvků pomocí multifunkční karty

AirKIT TECHNICKÝ MANUÁL. TnG-AirKIT. Power. Run

AD4RS. měřící převodník. 4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

Měřicí systémy. Obsah. Systémy složené z autonomních měřicích přístrojů a modulů Sériová rozhraní. Sériová rozhraní - pokračování 1

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

TMU. USB teploměr. teploměr s rozhraním USB. měření teplot od -55 C do +125 C. 26. května 2006 w w w. p a p o u c h. c o m

5. A/Č převodník s postupnou aproximací

Komunikace modulu s procesorem SPI protokol

Regulace klimatizace v laboratoři Viničná

10. KATEDRA ELEKTRICKÝCH MĚŘENÍ CÍL MĚŘENÍ: ZADÁNÍ: POUŽITÉ PŘÍSTROJE:

SB485. Převodník rozhraní USB na linku RS485 nebo RS422. s galvanickým oddělením. Převodník SB485. RS485 nebo RS422 USB. přepínače PWR TXD RXD

1. GPIB komunikace s přístroji M1T330, M1T380 a BM595

MI1249. Video rozhraní pro vozidla Citroen C5 a Peugeot 508

Systémy pro měření, diagnostiku a testování prototypů II. Odůvodnění vymezení technických podmínek podle 156 odst. 1 písm. c) ZVZ

MIDAM Verze 1.1. Hlavní okno :

QTREE-DUMX4 Vícekanálový multiplexer pro připojení měřidel Mitutoyo na USB port PC Uživatelská příručka. Řízení jakosti podle norem ISO 9000

LabVIEW. Tvorba programů. Laboratory Virtual Instrument Engineering Workbench

2005 Mikrovlny s.r.o. IP/GSM Restarter

T-DIDACTIC. Motorová skupina Funkční generátor Modul Simatic S7-200 Modul Simatic S7-300 Třífázová soustava

Android TV Box UŽIVATELSKÝ MANUÁL

KOMUNIKACE PC DAT 400/500. přes USB programem INOVATION

Rychlý referenční průvodce

Seznámení s Quidy. vstupní a výstupní moduly řízené z PC. 2. srpna 2007 w w w. p a p o u c h. c o m

Česky Kapitola 1: Úvod TVGo A31 TVGo A Obsah balení

M133C/133Ci. Třífázový kalibrátor výkonu. Uživatelská příručka

Mikropočítačová vstupně/výstupní jednotka pro řízení tepelných modelů. Zdeněk Oborný

Komunikační protokol pro Fotometr 2008

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Uživatelská příručka

Programovací prostředek AmexCLV-V1.0

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

Elektronický přepínač rezistorů, řízený PC

Návod k regulátoru ZMC Univerzální modul vstupů a výstupů ZMC-DIO-485 v1.20

Základní uvedení do provozu frekvenčního měniče SD6/SI6 od firmy Stöber

Číslicové měřicí systémy. Téma 4

Technická data. Upozornění ohledně bezpečnosti

HP-2000E UŽIVATELSKÝ MANUÁL

Popis programu EnicomD

Modul TX OPEN RS232/485

Uživatelský modul. DF1 Ethernet

idrn-st Převodník pro tenzometry

Instalace programu C-on

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

D/A převodník se dvěma napěťovými nebo proudovými výstupy. (0 10 V, 0 5 V, ±10 V, ±5 V, 4 20 ma, 0 20 ma, 0 24 ma)

REG10 návod k instalaci a použití 2.část Univerzální časovač a čítač AVC/ 02

Externí zařízení. Uživatelská příručka

Vysílací modul ECT-16

DS-430DVRB. HD kamera s automatickým záznamem videa integrovaná do zpětného zrcátka. GPS modulem a zpětnou kamerou (včetně uložení záznamu)

AD4USB. měřící převodník. 4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace i napájení přes USB

DegaVisio III Návod k obsluze

MI Video rozhraní pro vozidla Rover a Jaguar (od roku 2011)

JUMO LOGOSCREEN 600. Dotyková budoucnost záznamu: Obrazovkový zapisovač

PXI (a PXIe) National Instruments: šasi s kontrolérem a několika moduly. (obr. National Instruments)

MODUL CAN DS 450 verze 2.0. Modul CAN BUS převodníku Uživatelský manuál

NÁVOD K OBSLUZE. Obj. č.: Zkrácený návod k obsluze

Stmívač LED svítidel s WiFi dálkovým ovládáním TM111. Uživatelský manuál

tohoto systému. Můžeme propojit Mathcad s dalšími aplikacemi, jako je Excel, MATLAB, Axum, nebo dokumenty jedné aplikace navzájem.

BASPELIN CPM. Popis obsluhy čtyřkanálového prostorového termostatu CPM CCU02

Systémy pro sběr a přenos dat

Obslužný software. PAP ISO 9001

MI1308 Video rozhraní pro vozidla Volvo s displejem 5

Dlouhodobé zkoušení spalovacích motorů v1.0

Software pro formování dielektrika kondenzátorů

SuperCom. Stavebnice PROMOS Line 2. Technický manuál

První použití notebooku GIGABYTE

Chytrý palubní displej OBD

Nový displej s dotykovou obrazovk 320 x 240 pixelů

Systém sběru dat z RS232 do MS Excel

Stručný postup k použití programu PL7 Junior (programování TSX Micro)

Převodník MM 6012 AC DC

Transkript:

Krátké doporučení pro tvorbu akademických prací Automatizované měření Pavel Pačes, 2010, Verze 1 1 Pavel Pačes, 2010, Verze 1

Obsah Předmluva... 3 Seznam změn... 3 Úvod... 4 Agilent IO Libraries a NI Measurement & Automation... 4 Základní příkazy... 6 Matlab Instrument Control Toolbox... 6 Měřicí zařízení - přístroje... 7 GPIB... 8 Sériová linka... 9 USB... 10 CANbus... 10 Ethernet... 10 Měření... 10 Inicializace spojení... 11 Čtení dat... 12 Uzavření spojení... 14 Group Trigger... 14 Příklady... 15 Tři multi-metry HP 34401A v měření analogových napětí... 15 Příklad komunikace s digitálním osciloskopem Tektronix MSO4034... 16 Rozsáhlé pracoviště s množstvím přístrojů a komunikačních rozhraní... 20 Ovládání regulátoru tlaků IVD... 20 Bibliografie... 23 2 Pavel Pačes, 2010, Verze 1

Předmluva V tomto dokumentu jsou prezentované možnosti přístrojů připojených do prostředí Matlab z důvodu jednoduché a rychlé možnosti automatického změření požadovaného jevu. Nejedná se o vyčerpávající dokument a například zajímavou možnost určitě poskytuje třeba prostředí kancelářského balíku MS Office a skriptovacího jazyka Visual Basic (1). Seznam změn 1. 1. 2010 První verze dokumentu 3 Pavel Pačes, 2010, Verze 1

Úvod Pro účely automatického sběru dat je možné využít několik softwarových balíků. Jednou z možností je například Octave, NI LabView, NI LabWindows CVI, Matlab, atd. Hned úvodem je třeba napsat, že v případě přípravy krátkého měření se nevyplatí vytvářet program s uživatelským rozhraním. Pro krátké měření je nejlepší vytvořit krátký skript (soubor příkazů), který umožní v rychlém sledu naměřit požadovaná data, případně měřicí skript rychle upravit data změřit znovu a data zpracovat. Což bohužel u prostředí typu NI LabWindows CVI možné není, jakkoliv se snaží práci programátora zjednodušit. Tato vývojová prostředí se hodí pro vývoj programů, které budou používány například pro testování prototypů ve výrobě po dobu např. deseti let, ale nehodí se pro požadavek rychlého změření souboru dat. Měřicí pracoviště Otevření přístrojů Uzavření komunikace Start Algoritmus měření Konec Skript: measinit.m measmeas.m Uložení dat measclose.m Obrázek 1 Obecný vývojový diagram pro automatizované měření. Příklady zde uváděných skriptů je možné stáhnout z (2). Agilent IO Libraries a NI Measurement & Automation Pro ověření funkčnosti spojení knihovny VISA a přístroje je nevýhodnější využít Agilen IO Libraries (3) nebo National Instruments Measurement & Automation Explorer (4). Jedná se o produkty, které umožňují otestovat funkčnost příkazů odesílaných na přístroj a přečíst navrácené hodnoty. Programy je možné nalézt v nabídce Start operačního systému MS Windows: Programy Agilent IO Libraries Suite Agilent Connection Expert, nebo Programy National Instruments Measurement & Automation (viz obr. 3). Obrázek 2 Přístup k Agilent Connection Expert přes ikonu v oznamovací oblasti. Obrázek 3 NI Measurement & Automation v nabídce Programy. 4 Pavel Pačes, 2010, Verze 1

Obrázek 2 pak zobrazuje roletové menu pro zpřístupnění nástroje Agilent Connection Expert, který je spuštěný na obrázku 4. Výhodou software je skutečnost, že dokáže připojené přístroje automaticky identifikovat a zobrazit adresovací řetězce, které je pak možné využít v dalších programech. Obdobnou službu pak poskytuje i nástroj Measurement & Automation, firmy NI (viz obr. 5). Obrázek 4 Přístup k Agilent Connection Expert přes ikonu v oznamovací oblasti. Obrázek 5 Přístup k Agilent Connection Expert přes ikonu v oznamovací oblasti. 5 Pavel Pačes, 2010, Verze 1

Oba nástroje umožňují jednoduchou komunikaci s přístrojem pomocí vestavěných utilit. Utilita Agilent Interactive IO je zobrazena na obrázku 6. Funkce je přístupná přes kontextové menu daného přístroje. Obrázek 6 Přístup k Agilent Connection Expert přes ikonu v oznamovací oblasti. Základní příkazy Mezi základní příkazy vhodné pro odladění komunikace s přístrojem patří následující: *IDN? *CLS SYSTem:ERRor? Identifikace přístroje. Smazání chybových flagů přístroje. Vrátí popis chyby, ke které došlo. Matlab Instrument Control Toolbox Základním prostředkem pro interakci prostředí Matlab s měřicím přístrojem je toolbox přidávaný k prostředí Matlab: Matlab Instrument Toolbox. Základní informace o nainstalovaných rozhraních, které je možné použít ke komunikaci, poskytuje funkce: >> instrhwinfo ans = MATLABVersion: '7.1 (R14SP3)' SupportedInterfaces: {'gpib' 'serial' 'tcpip' 'udp' 'visa'} SupportedDrivers: {'matlab' 'ivi' 'vxipnp'} ToolboxName: 'Instrument Control Toolbox' ToolboxVersion: '2.3 (R14SP3)' 6 Pavel Pačes, 2010, Verze 1

>> Textový výstup obsahuje informace o verzi toolboxu a rozhraních, které je možné využívat pro komunikaci. Pro přístup k přístrojům se z důvodu univerzálního přístupu používá knihovna VISA (Virtual Instrument Software Architecture). Více informací ohledně nainstalovaných rozhraní je možné získat příkazem: >> instrhwinfo( 'visa' ) ans = >> InstalledAdaptors: {'ni'} JarFileVersion: 'Version 2.3' Z této části výpisu je vidět, že v systému je nainstalované rozhraní knihovny VISA od firmy NI. V případě instalace balíku IO Libraries firmy Agilent by funkce vytiskla místo řetězce 'ni', řetězec 'agilent' - na základě těchto řetězců je možné přistupovat k měřicím přístrojům. Příkaz hwinstrinfo dále umožňuje: >> instrhwinfo( 'visa', 'ni' ) ans = >> AdaptorDllName: [1x74 char] AdaptorDllVersion: 'Version 2.3' AdaptorName: 'NI' AvailableChassis: [] AvailableSerialPorts: {2x1 cell} InstalledBoardIds: [] ObjectConstructorName: {2x1 cell} SerialPorts: {2x1 cell} VendorDllName: 'visa32.dll' VendorDriverDescription: 'National Instruments VISA Driver' VendorDriverVersion: 4.1000 Měřicí zařízení - přístroje Měřicí přístroje je možné připojit k počítači typu PC pomocí různých rozhraní typu GPIB, RS232, CAN, nebo Ethernet. Tradiční rozhraní jako GPIB je v současné době vytlačováno modernějším rozhraním USB nebo Ethernet. V následujícím textu budou uvedeny příklady připojení různých přístrojů, spolu s jejich adresovacím řetězcem, který je možné přečíst pomocí nástrojů Agilent Connection Expert, nebo National Instruments Measurement & Automation. Oba nástroje jsou popsány výše. 7 Pavel Pačes, 2010, Verze 1

GPIB GPIB, tak jak ho známe, patří k tradičním rozhraním pro připojení měřicích přístrojů. Jsou jím vybaveny například všechny přístroje firmy HewletPackard (Agilent). Velkou výhodou GPIB je funkce trigger pro synchronní odečet údajů z několika přístrojů. Příklad adresy: GPIB0::10::INSTR. Obrázek 7 Agilent 33220A Function/Arbitrary Waveform Generator. Pro sběr dat z několika zdrojů je možné místo rozsáhlého souboru přístrojů použít multifunkční měřicí přístroj Agilent 34970A, který umožňuje vložit několik vstupně výstupních modulů se šroubovacími konektory pro připojení senzorů fyzikálních veličin. Komunikace s přístroje začíná standardním otevřením zařízení a dále je třeba adresovat příslušné měřicí místo na příslušném vstupně výstupním modulu. Obrázek 8 HP 34970A Data Acquisition/Switch Unit. Obrázek 9 zobrazuje dvaceti kanálový měřicí modul HP 34901 s připojenými senzory, který byl použitý pro sběr dat ze zapojení měřicího pracoviště zobrazeného na obr. 16. Obrázek 9 Zásuvný modul HP34901 s dvacetikanálovým multiplexem. 8 Pavel Pačes, 2010, Verze 1

Sériová linka Sériová linky patří k pomalejším rozhraním. Sériovou linkou je vybaven například přístroj pro měření tlaku Druck DPI145. Příklad adresy: ASRL1::INSTR. Frekvence měření: 2 Hz (viz uživatelský manuál). Obrázek 10 Druck (GE) DPI145. Příklad otevření komunikačního kanálu s přístrojem: >> vs = visa('ni', 'ASRL1::INSTR') VISA-Serial Object Using NI Adaptor : VISA-Serial-ASRL1 Communication Settings Port: ASRL1 BaudRate: 9600 Terminator: 'LF' Communication State Status: RecordStatus: closed off Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0 >> get(vs,{'name','port','rsrcname','type'}) ans = 'VISA-Serial-ASRL1' 'ASRL1' 'ASRL1::INSTR' 'visa-serial' >> get(vs,{'baudrate','databits','parity','stopbits','terminator'}) ans = >> [9600] [8] 'none' [1] 'LF' Knihovnu VISA je možné použít pro komunikaci s jakýmkoliv zařízením připojeným přes RS232 (viz Pačes, Baťek.: Automatizované měření v prostředí MS Excel (1)). 9 Pavel Pačes, 2010, Verze 1

USB Přímé připojení na rozhraní USB podporuje v poslední době stále více přístrojů. Jedním z nich je Agilent 34410A. Příklad adresy: USB0::2391::1543::MY47005859::0::INSTR. Frekvence měření: 40 Hz (zjištěno při měření (5)) v zapojení se třemi multimetry. Obrázek 11 Agilent 34410A. CANbus Pro komunikaci po sběrnici CAN z prostředí Matlab doporučuji (6) a (7). Ethernet Knihovna VISA umožňuje komunikovat pomocí rozhraní ethernet, které je součástí například přístrojů Agilent 34410A, nebo osciloskopu Tektronix MSO řady 4000. Pro správnou funkci je třeba mít správně nastavenu ethernetovou sít a nakonfigurovány přístroje. Příklad adresy: TCPIP0::192.168.1.2::inst0::INSTR. Obrázek 12 Tektronix MSO4034. Měření Přístroje zapojené v měřicím pracovišti je nutné inicializovat, otevřít, provést měření a uzavřít. Pro interakci s přístrojem ve většině případů stačí inicializovat knihovnu VISA (příkaz visa). Otevřít objekt přístroje příkazem fopen, zapisovat na přístroj fprintf, číst fscanf a uzavřít spojení příkazem fclose. Příkazy pro měření jsou v detailech rozebrány v programátorské příručce k přístroji, která je ve většině případů dostupná na internetu. Příručka je označovaná jako Programmer s manual. Příklad komunikace s přístrojem je uveden zde: >> oinstrument = visa( 'ni', 'GPIB0::10::INSTR') % inicializace knihovny VISA 10 Pavel Pačes, 2010, Verze 1

VISA-GPIB Object Using NI Adaptor : VISA-GPIB0-10 Communication Address BoardIndex: 0 PrimaryAddress: 10 SecondaryAddress: 0 Communication State Status: RecordStatus: closed off Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0 >> fopen( oinstrument ) % otevření přístroje >> fprintf( oinstrument, '*CLS' ) % zaslání příkazu clear >> fprintf( oinstrument, '*IDN?' ) % zaslání dotazu na identifikaci >> fscanf( oinstrument ) % přečtení odpovědi ans = Agilent Technologies,33220A,MY44035748,2.02-2.02-22-2 >> fclose(oinstrument) % uzavření spojení >> V případě rozsáhlejšího měřicího systému je výhodnější vytvořit tři skripty, které budou plnit funkce popsané a vykreslené na obrázku 1. Jedná se o bloky inicializace spojení a otevření komunikačního kanálu, měření dat a uzavření spojení. Pro jednotlivé akce je výhodné vytvořit nezávislé skripty, které přistupují ke sdíleným proměnným ve tvaru struktur. Skripty je výhodné pojmenovat např. následujícím způsobem: Inicializace: Měření: Uzavření: measinit.m. measmeas.m. measclose.m. Inicializace spojení Soubor measinit.m přistupuje ke sdílené proměnné oinstr, která reprezentuje strukturu obsahující tzv. handle na jednotlivé přístroje. Z následujícího příkladu je patrné, že jsou inicializovány tři přístroje příkazem visa, které jsou následně otevřeny příkazem fopen a jsou identifikovány odesláním řetězce *IDN? pomocí příkazu fprintf a zobrazena navrácená hodnota pomocí příkazu fscanf. % OPEN MULTI-METER A oinstr.omultisensora = visa('ni', 'GPIB0::22::INSTR') 11 Pavel Pačes, 2010, Verze 1

fopen( oinstr.omultisensora ) % ID fprintf( oinstr.omultisensora, '*IDN?' ) fscanf( oinstr.omultisensora ) % OPEN MULTI-METER B oinstr.omultisensorb = gpib('agilent', 7, 22); fopen( oinstr.omultisensorb ) % ID fprintf( oinstr.omultisensorb, '*IDN?' ) fscanf( oinstr.omultisensorb ) % OPEN MULTI-METER Differential % 34410A oinstr.omultisensordiff=visa('ni','usb0::2391::1543::my47005859::0::instr'); fopen( oinstr. omultisensordiff ) % ID fprintf( oinstr. omultisensordiff, '*IDN?' ) fscanf( oinstr. omultisensordiff ) % END disp( 'Init End' ); Čtení dat Soubor measmeas.m provádí hlavní měřicí smyčku. Před jejím spuštěním je výhodné zaznamenat popis měření do proměnné odata.strdesc a na konci měření zaznamenat status měření (ok nebo failed) do proměnné odata.strstatus. Hladní smyčka se provede v iteracích od 1 do imaxcnt, což je proměnná, která se v každém průchodu kontroluje s aktuálním iteračním prvkem a v případě splněné podmínky pro opuštění smyčky použije příkaz break. Čtení a zápis dat z přístrojů probíhá pomocí standardních příkazů fprintf a fscanf. Příkaz clock vrací aktuální datum a čas. Tyto údaje jsou použity pro konstrukci unikátního jména souboru (viz proměnná filename) a pro uložení do souboru je pak výhodně použito příkazu save, jejímž jedním parametrem je struktura odata. disp( 'Measuring...' ); % Measurement clear odata; disp( sprintf('\n') ); odata.strdesc = input('measurement description :', 's'); 12 Pavel Pačes, 2010, Verze 1

i = 0; imaxcnt = 80; % Main Loop tic; while 1 disp( sprintf('%% { %d', i) ); i = i + 1; % Wait For User % safety break if i > imaxcnt disp( sprintf('safety break at %d', i ) ); break; end % % keyreply = input( 'Break the loop Y/N? [Enter = No]: ', 's' ); % if (~isempty(keyreply)) % disp( 'Breaking loop' ); % break; % end % Measurement odata.timea(i) = toc; fprintf(oinstr.omultisensora, 'MEAS:VOLT:DC? 10,MAX'); fdata = fscanf(oinstr.omultisensora, '%f'); odata.sensora(i) = fdata; odata.timeb(i) = toc; fprintf(oinstr.omultisensorb, 'MEAS:VOLT:DC? 10,MAX'); fdata = fscanf(oinstr.omultisensorb, '%f'); odata.sensorb(i) = fdata; odata.timediff(i) = toc; fprintf(oinstr. omultisensordiff, 'MEAS:VOLT:DC? 10,MAX'); fdata = fscanf(oinstr. omultisensordiff, '%f'); odata.sensoruin(i) = fdata; disp( sprintf( 'Ua = %f, Ub = %f, Udiff = %f',... odata.sensora(i), odata.sensorb(i), odata.sensordiff(i)) ); disp( sprintf('%% %d }\n', (i-1)) ); end % END while 1 odata.strstatus = input('status :', 's'); % Save Data 13 Pavel Pačes, 2010, Verze 1

otimestamp = fix(clock); filename = sprintf( 'Meas_%04d_%02d_%02d %02d_%02d_%02d.txt',... otimestamp(1), otimestamp(2), otimestamp(3), otimestamp(4),... otimestamp(5), otimestamp(6) ); % save without '-ASCII' option can safe structures like Meas. File can be % loade by commnad 'load' save( filename, 'odata', 'otimestamp' ); disp( sprintf( 'Data saved to: %s', filename ) ); Uzavření spojení Nejjednodušším skriptem je poslední skript measclose.m, kterým se jednotlivé otevřené spojení uzavírají. Součástí uzavření spojení by mělo být přepnutí přístroje zpět do lokálního ovládání, což je u některých přístrojů řešeno příkazem SYSTem:LOCal. disp( 'Closing...' ); % Close fclose( oinstr.omultisensora ) delete( oinstr.omultisensora ) fclose( oinstr.omultisensorb ) delete( oinstr.omultisensorb ) fclose( oinstr.omultisensordiff ) delete( oinstr.omultisensordiff ) % END disp( 'Close End' ); Group Trigger Ještě Matlab 2008b (příkaz trigger) neumí softwarové spouštění několika přístrojů připojených k jednomu rozhraní příkazem *TRG, nebo GET (Group Execute Trigger). Problém lze obejít využitím externího spouštění, které je paralelně připojené na konektory umístěné na zadní straně přístroje (např. 34401A). Pro generování spouštěcího signálu se dá použít buď zařízení vyvinuté vlastními silami, nebo např. signálový generátor (Agilent 33220A) přepnutý do režimu generování pulsů. 14 Pavel Pačes, 2010, Verze 1

Příklady Tři multi-metry HP 34401A v měření analogových napětí Na následujícím obrázku je vidět měřicí pracoviště, na kterém byly ověřovány akcelerometry firmy Crossbow s analogovým výstupem. Senzory jsou namontovány na otočné plošině (vyvinutá panem Ing. Petruchou na Katedře měření), která je postupně vystavuje různým vlivům gravitačního pole. Analogový výstup senzorů je snímán třemi multi-metry HP34401A, které jsou zobrazené v levé části obrázku. Pro měření byla využita PCI-GPIB karta v počítači a proto je formát adresovacího řetězce GPIB1::22::INSTR. Multi-metry jsou ovládány skripty, které lze nalézt ve složce 2009_MereniAkcelerometry, v zabaleném archivu příkladu zdrojových kódů. Obrázek 13 Meřicí pracoviště s měřeným objektem umístěným na otočné plošině. 15 Pavel Pačes, 2010, Verze 1

Příklad komunikace s digitálním osciloskopem Tektronix MSO4034 Následující příklad umožňuje automaticky přečíst rozdíly náběžných hran signálu mezi kanály 1-2, 1-3 a 1-4 pomocí digitálního osciloskopu Tektronix MSO4034 (8). Zdrojový kód byl použitý v (9) a video, které ilustruje provedené měření, je možné nalézt v seznamu literatury (10). Ve skriptu je využita komunikace s digitálním osciloskopem a také s množinou zařízení, které vzájemně, komunikují po sběrnici CANbus a posílají si synchronizační zprávy. Pro komunikaci po sběrnici CAN je použit MatlabToCan toolbox. Struktura měření je stejná, jak je popisováno v tomto dokumentu, ale skript byl uložen v jednom souboru. % % Open % cd 'E:\Skola\2009_PMT_Synchro\srcMatlab' % CAN sync messages clc; clear all; vs = visa('ni', 'TCPIP0::192.168.1.2::inst0::INSTR'); fopen(vs) fprintf(vs,'*idn?') IDN = fscanf(vs) CAN_Open( 0, 500 ) pause(1); SYNC_SyncFrame( 0, hex2dec('100'), 10*60*1000 ); % % Set trigger CH1 icnt = 0; tic while(1) %pause(rand) %SYNC_SyncFrame( 0, hex2dec('100'), 60*60*1000 ); %positions the Ch1 input signal 2 divisions above the center. fprintf(vs,'ch1:position 2') fprintf(vs,'ch2:position 0') fprintf(vs,'ch3:position -2') fprintf(vs,'ch4:position -4') %fprintf(vs,'horizontal:main:scale 1E-3') fprintf(vs,'trigger:a:mode NORMal') fprintf(vs,'trigger:a:edge:source CH1') fprintf(vs,'trigger:a:edge:slope RISe') 16 Pavel Pačes, 2010, Verze 1

end %sets the A edge trigger to TTL high level 1.4V. fprintf(vs,'trigger:a:level:ch1 TTL') %stop after single meas fprintf(vs,'acquire:stopafter SEQuence') % % Wait for trigger disp( 'Waiting for trigger' ); fprintf(vs,'acquire:state RUN') fprintf(vs,'busy?') busy = sscanf( fscanf(vs), '%s' ); pause(1) SYNC_SyncIn( 0, hex2dec('200'), 2000 ); while( busy == '1' ) fprintf(vs,'busy?') busy = sscanf( fscanf(vs), '%s' ); pause(0.3) end % % Measurement fprintf(vs,'measurement:immed:delay:edge2 RISe') fprintf(vs,'measurement:immed:type DELay') fprintf(vs,'measurement:immed:source CH1') fprintf(vs,'measurement:immed:source2 CH2') fprintf(vs,'measurement:immed:value?') d12 = fscanf(vs); fprintf(vs,'measurement:immed:source2 CH3') fprintf(vs,'measurement:immed:value?') d13 = fscanf(vs); fprintf(vs,'measurement:immed:source2 CH4') fprintf(vs,'measurement:immed:value?') d14 = fscanf(vs); icnt = icnt+1; odata.d12(icnt) = str2double(d12); odata.d13(icnt) = str2double(d13); odata.d14(icnt) = str2double(d14); disp(... sprintf(... 'Cnt = %d, time 12 = %e, 13 = %e, 14 = %e \n',... icnt, odata.d12(icnt), odata.d13(icnt), odata.d14(icnt)... )); if( icnt > 100 ) disp( 'Closing' ); break; end 17 Pavel Pačes, 2010, Verze 1

toc % % Save data oclock = fix(clock); filename = sprintf( 'File_%d_%d_%d %d_%d_%d.dat', oclock(1),oclock(2),oclock(3),oclock(4),oclock(5),oclock(6) ); save(filename, 'odata', 'oclock', '-mat'); % % Close CAN_Close(0) fclose(vs) delete(vs) clear vs Open and Init Wait for Trigger Read Data Wait for a command Flow chart Open Scope Object Set Channels Set Levels Set Edge... YES Trigger Fired Read Channel 1-2 Read Channel 1-3 Read Channel 1-4 Continue? NO START Wait for trigger Close used devices END NO YES A B Commands vs = visa('ni', 'TCPIP0::192.168.1.2::inst0::INSTR') fopen(vs) fprintf(vs,'ch1:position 2') fprintf(vs,'ch2:position 0') fprintf(vs,'ch3:position -2') fprintf(vs,'ch4:position -4') fprintf(vs,'trigger:a:mode NORMal') fprintf(vs,'trigger:a:edge:source CH1') fprintf(vs,'trigger:a:edge:slope RISe') fprintf(vs,'trigger:a:level:ch1 TTL') fprintf(vs,'acquire:stopafter SEQuence') fprintf(vs,'acquire:state RUN') fprintf(vs,'busy?') busy = sscanf( fscanf(vs), '%s' ); while( busy == '1' ) fprintf(vs,'busy?') busy = sscanf( fscanf(vs), '%s' ); end fprintf(vs,'measu:immed:delay:edge2 RISe') fprintf(vs,'measurement:immed:type DELay') fprintf(vs,'measurement:immed:source CH1') fprintf(vs,'measurement:immed:source2 CH2') fprintf(vs,'measurement:immed:value?') d12 = fscanf(vs);.. keyreply = input( 'Stop? [Enter = No]: ', 's' ); if (~isempty(keyreply)) disp( 'Closing' ); break; end end fclose(vs) delete(vs) clear vs Obrázek 14 Vývojový diagram skriptu měření (9). 18 Pavel Pačes, 2010, Verze 1

Obrázek 15 Meřicí pracoviště pro měření časové synchronizace množiny embedded systémů (9). 19 Pavel Pačes, 2010, Verze 1

Rozsáhlé pracoviště s množstvím přístrojů a komunikačních rozhraní Následující zapojení měřicího pracoviště bylo použito pro naměření charakteristik několika senzorů tlaku v závislosti na teplotě okolí (11). V zapojení byly použity následující přístroje: Měřicí ústředna HP 34097A, multimetr 34401A, Druck DPI145, přímé připojení přístroje přes RS232 a následně připojení několika přístrojů pomocí sběrnice CAN (6). PC CT MATLAB IT USB2CAN Converter USB2GPIB Converter RS232 Temperature Chamber CAN Bus SPI2CAN Converter IIC2CAN Converter Power Supply Power Supply Vacuum Pump Vacuum Druck DPI145 IVD Pressure Regulator =27V Voltage Stabilizer 3x115V 400Hz ±5V ±12V Constant Pressure S 1a S 1b ADC 1 ADC 2.. S na MB S nb HCR Support Platform (power distribution, signal wiring) Temperature sensor PT100 GPIB Agilent 34097A Agilent 34401 Obrázek 16 Zapojení měřicího pracoviště (11). Ovládání regulátoru tlaků IVD Při realizaci projektu (11) bylo nutné ovládat regulátor IVD, který je bohužel mechanický, ke kterému neexistuje kompletnější dokumentace v českém jazyce. Z důvodu usnadnění práce budoucím generacím je součástí tohoto dokumentu, který se zaměřuje hlavně na automatické měřící prostředky i krátký výlet do ruské historie. Přístroj IVD interaguje s uživatelem pomocí předního panelu, na kterém jsou v horní části 3 tlakoměry pro měření výšky (jsou cejchované v mmhg), ve střední části jsou dva tlakoměry pro měření dynamického tlaku a v dolní části jsou tři ovládací ventily. Dále přístroj požaduje dvojí napájecí napětí a to 3x115V/400Hz a 28V DC. Testované přístroje se připojují na pravé straně na svorky statického a dynamického tlaku. Zdrojem tlaku a přetlaku jsou externí zařízení (vývěva a kompresor). Zapojení systému je vidět na obrázku 17. 20 Pavel Pačes, 2010, Verze 1

Přední panel regulátoru IVD 3x115V/400Hz СБРОС P S /P С P D /P Д =28V Vakuum/ВАКУУМ Tlak/ДАВЛЕНИЕ P D Rychloměr P S Výškoměr a b a b Vývěva Ventil A Ventil B Ventil C Kompresor Obrázek 17 Zapojení regulátoru tlaku IVD. Pro ovládání přístroje je nutné pochopit, že ventily B a C jsou dvojité, kdy větší kolo ovládá ventil příslušného objemu k jeho zdroji (vývěva nebo kompresor), kdežto menší kolo otevírá příslušný vnitřní objem do okolní atmosféry. Aby přístroj IVD ještě chvíli sloužil, tak je nutné si uvědomit, že se jedná o jehlové ventily. Tj. NEPOUŽÍVAT SÍLU. V principu pracuje přístroj IVD podle následujícího obrázku 18. Přístroj obsahuje dva vnitřní objemy, které umožňují regulovat podtlak (výšku) a k danému podtlaku definovaný přetlak. Vývěva Objem pro výšku Ventil B Přední panel regulátoru IVD Ventil A Ventil A Ventil B Ventil C Ventil C Kompresor Objem pro rychlost Obrázek 18 Princip funkce regulátoru tlaku IVD. 21 Pavel Pačes, 2010, Verze 1

Postup zapnutí regulátoru Před zapnutím regulátoru je nutné provést následující kroky: Otočit ventil Ba vlevo a otevřít ventil Bb (otáčet vpravo). Otočit ventil A vlevo. Uzavřít ventil Ca a Cb (oba otočit vpravo). Zapnout oboje napájecí napětí a zapnout přístroj IVD pomocí přepínače na hlavním panelu. Tyto kroky budou mít za následek, že oba objemy (pro výšku a rychlost) budou propojeny. Kompresor i vývěva budou odpojeny od vnitřních objemů, kde bude tlak na úrovni tlaku místnosti a regulátor bude ukazovat hodnotu statického tlaku přibližně 740 mmhg a 0 mmhg pro dynamický tlak. Postup regulace výšky Atmosférický tlak ubývá exponenciálně s rostoucí výškou. K nastavení parametrů výšky tak, jak je měří měřicí přístroje, je nutné regulovat podtlak v tlakovém rozvodu. Podtlak se reguluje ventilem B, kdy předpokládáme, že je přístroj nastaven podle předcházejícího kroku. Stoupání => snižování tlaku: Uzavřeme malý ventil Bb (otočení doprava) a z objemu pro výšku začneme odčerpávat vzduch pomalým otevřením ventilu Ba (otočení dolava). Následně sledujeme změny tlaku na ukazatelích a před dosažením požadované hodnoty ventil Bb opět uzavřeme (otočení vpravo). Z důvodu netěsností tlakového vedení je možné, že se ručička tlakoměru bude stále pohybovat. Tyto změny je možné korigovat tak, že se ventil Ba trochu otevře (tj. nastaví se malá rychlost výstupu), která se následně zastaví řádným nastavením ventilu Bb. Klesání => zvyšování tlaku: V případě, že chceme přejít do nižší výšky, je nutné uzavřít ventil Ba (otočení doprava) a přiměřeně otevřít ventil Bb. Tím odstavíme funkci vývěvy a otevřeme vnitřní objem do okolního prostředí. Při manipulaci s přístrojem je třeba dát pozor na rychlost změny výšky, kdy rychlost jedné otáčky ručičky přístroje za sekundu je už rychlost vysoká. Zvláštní pozor je nutné věnovat přechodům při přepínání přístrojů mezi sebou, kdy jednotlivé hranice jsou na přístroji vyznačeny. Postup regulace rychlosti Po zapnutí přístroje a nastavení výšky podle předchozích kroků je možné začít regulovat rychlost pomocí regulace přetlaku v objemu pro rychlost, který je nutné od objemu pro výšku oddělit ventilem A (viz obr. 18), který uzavřeme (otočíme doprava). Při regulaci je třeba vzít v úvahu, že část mezi uzavřením a otevřením ventilu A je krátká (viz obr.). Zcela uzavřeno Otevření Zcela otevřeno Vlevo Poloha Vpravo 22 Pavel Pačes, 2010, Verze 1

Obrázek 19 Charakteristika ventilu A. Zvyšování rychlosti => zvyšování tlaku: Pro zvýšení rozdílu dynamického tlaku mezi objeme pro výšku a objemem pro rychlost je nutné do objemu pro rychlost napustit přetlak z kompresoru otočením ventilu Ca vlevo (otevření ventilu). Ale pozor: V případě, že je systém vytažený do výšky, tak stejnou funkci bude mít i ventil Cb, který otevírá komoru pro rychlost do okolní atmosféry! Tj. opět do přetlaku. Snižování rychlosti => snižování tlaku: Pro snížení rozdílu dynamického tlaku mezi objeme pro výšku a objemem pro rychlost je nutné otevřít propojení mezi komorami pomocí ventilu A, protože v tomto případě ventil Cb nepomůže. Postup vypnutí regulátoru Pro vypnutí regulátoru je nutné: Nastavit nulovou rychlost: otočit ventil Ca a Cb vpravo (odstavit kompresor), a následně citlivě otočit ventil A zcela vlevo (propojit komory). Odstavit vývěvu: otočit ventil Ba vpravo. Vypustit tlak z vnitřku přístroje: otevřít ventil Bb (otočit vlevo). Po zastavení pohybu ukazatele tlakoměru vypnout přístroj IVD pomocí přepínače na hlavním panelu. Bibliografie 1. Pačes, Pavel a Baťek, Miroslav. MS Excel jednoduchý prostředek pro sběr dat nejen na sběrnici GPIB. Automatizace s.r.o. [Online] 01. 11 2006. [Citace: 26. 01 2010.] http://www.automatizace.cz/article.php?a=1500. ISSN 0005-125X. 2. Pačes, Pavel. Automatizované měření - příklady v1.0. *Online+ 2009. www.pacespavel.net/download/index.php?soubor=pacesjaknaautomatizovanemereni_v10. 3. Agilent. Agilent IO Libraries Suite 15.5. Agilent Technologies - homepage. [Online] Agilent Technologies. http://www.home.agilent.com/agilent/product.jspx?nid=- 34466.907863.00&lc=eng&cc=CZ. 4. National Instruments. National Instruments - Homepage. [Online] National Instruments. http://www.ni.com/. 5. Pačes, Pavel a Vaško, Ondřej. Měření úhlu náběhu (případně vybočení). [Online] 2009. [Citace: 30. 01 2010.] www.pacespavel.net/download/index.php?soubor=2009 mereniangleofsideslip. 6. Pačes, Pavel. Matlab-To-Can Toolbox - Popis. [Online] 2010. www.pacespavel.net/download/index.php?soubor=pacescantbx. 7.. Matlab-To-Can Toolbox - Příklady. *Online+ 2010. www.pacespavel.net/download/index.php?soubor=pacescantbx_v12. 23 Pavel Pačes, 2010, Verze 1

8. Tektronix. MSO/DPO4000 Mixed Signal Oscilloscope Series. Tektronix - homepage. [Online] Tektronix. http://www.tek.com/products/oscilloscopes/mso4000/. 9. Pačes, Pavel, Šipoš, Matrin a Veselý, Milan. Verification of IEEE1588 Time Synchronization in NASA Agate Data Bus Standard. Beijing : IEEE, 2009. ISBN 978-1-4244-3862-4. 10. Pačes, Pavel a Veselý, Milan. Časová synchronizace vestavných systémů pomocí IEEE1588. [Online] 2010. www.pacespavel.net/download/index.php?soubor=2009_merenisynchroieee1588. 11. Pačes, Pavel a et_al. Sensors of Air Data Computers - Usability and Environmental Effects. Brno : Univerzita obrany, 2009. stránky 401-409, ICMT'09 - Proceedings of the International Conference on Military Technologies. ISBN 978-80-7231-649-6. 24 Pavel Pačes, 2010, Verze 1