Automatizované měření

Transkript

Automatizované měření
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
3
První verze dokumentu
Pavel Pačes, 2010, Verze 1
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
Ú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í
Start
přístrojů
Skript:
measInit.m
measMeas.m
Algoritmus
měření
Uzavření
komunikace
Konec
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
Programy
National Instruments
Agilent Connection Expert, nebo
Measurement & Automation (viz obr. 3).
Obrázek 3 NI Measurement & Automation v nabídce Programy.
Obrázek 2 Přístup k Agilent Connection
Expert přes ikonu v oznamovací oblasti.
4
Pavel Pačes, 2010, Verze 1
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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?
Identifikace přístroje.
*CLS
Smazání chybových flagů přístroje.
SYSTem:ERRor?
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:
SupportedInterfaces:
SupportedDrivers:
ToolboxName:
ToolboxVersion:
6
'7.1 (R14SP3)'
{'gpib' 'serial' 'tcpip' 'udp'
{'matlab' 'ivi' 'vxipnp'}
'Instrument Control Toolbox'
'2.3 (R14SP3)'
'visa'}
Pavel Pačes, 2010, Verze 1
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
>>
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:
AdaptorDllVersion:
AdaptorName:
AvailableChassis:
AvailableSerialPorts:
InstalledBoardIds:
ObjectConstructorName:
SerialPorts:
VendorDllName:
VendorDriverDescription:
VendorDriverVersion:
[1x74 char]
'Version 2.3'
'NI'
[]
{2x1 cell}
[]
{2x1 cell}
{2x1 cell}
'visa32.dll'
'National Instruments VISA Driver'
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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:
BytesAvailable:
ValuesReceived:
ValuesSent:
idle
0
0
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
VISA-GPIB Object Using NI Adaptor : VISA-GPIB0-10
>>
>>
>>
>>
Communication Address
BoardIndex:
PrimaryAddress:
SecondaryAddress:
0
10
0
Communication State
Status:
RecordStatus:
closed
off
Read/Write State
TransferStatus:
BytesAvailable:
ValuesReceived:
ValuesSent:
idle
0
0
0
fopen( oInstrument )
fprintf( oInstrument, '*CLS' )
fprintf( oInstrument, '*IDN?' )
fscanf( oInstrument )
%
%
%
%
otevření přístroje
zaslání příkazu clear
zaslání dotazu na identifikaci
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:
measInit.m.
Měření:
measMeas.m.
Uzavření:
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
fprintf(vs,'CH1:POSition
fprintf(vs,'CH2:POSition
fprintf(vs,'CH3:POSition
fprintf(vs,'CH4:POSition
signal 2 divisions above the center.
2')
0')
-2')
-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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
%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
end
17
Pavel Pačes, 2010, Verze 1
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Flow chart
Commands
START
vs = visa('ni', 'TCPIP0::192.168.1.2::inst0::INSTR')
fopen(vs)
fprintf(vs,'CH1:POSition
fprintf(vs,'CH2:POSition
fprintf(vs,'CH3:POSition
fprintf(vs,'CH4:POSition
Open and Init
Open Scope Object
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')
Set Channels
Set Levels
Set Edge
...
Read Data
Wait for Trigger
A
Wait for trigger
Trigger
Fired
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
NO
YES
fprintf(vs,'MEASU:IMMed:DELay:EDGE2 RISe')
fprintf(vs,'MEASUrement:IMMed:TYPe DELay')
fprintf(vs,'MEASUrement:IMMed:SOUrce CH1')
Read Channel 1-2
Read Channel 1-3
Read Channel 1-4
fprintf(vs,'MEASUrement:IMMed:SOUrce2 CH2')
fprintf(vs,'MEASUrement:IMMed:VALue?')
d12 = fscanf(vs);
…..
B
Wait for a
command
2')
0')
-2')
-4')
Continue?
YES
NO
Close used devices
keyReply = input( 'Stop? [Enter = No]: ', 's' );
if (~isempty(keyReply))
disp( 'Closing' );
break;
end
end
fclose(vs)
delete(vs)
clear vs
END
Obrázek 14 Vývojový diagram skriptu měření (9).
18
Pavel Pačes, 2010, Verze 1
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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).
CAN Bus
USB2CAN
Converter
PC
CT
RS232
MATLAB
USB2GPIB
Converter
IT
Vacuum
Pump
Temperature
Chamber
Constant
Pressure
Druck
DPI145
ADC1
IVD
Pressure
Regulator
Power
Supply
S1a
S1b
SPI2CAN
Converter
IIC2CAN
Converter
MB
HCR
ADC2
……..
Sna
Snb
Vacuum
3x115V
400Hz
=27V
Voltage
Stabilizer
Temperature
sensor PT100
±12V
GPIB
Power
Supply
Support Platform (power distribution, signal wiring)
±5V
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
Přední panel regulátoru IVD
СБРОС
≈3x115V/400Hz
PS/PС
PD/PД
=28V
Vakuum/ВАКУУМ
PD
Tlak/ДАВЛЕНИЕ
a
Ventil A
Rychloměr
PS
Výškoměr
a
b
b
Ventil B
Ventil C
Vývěva
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.
Objem pro
výšku
Vývěva
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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.).
Otevření
Zcela uzavřeno
Zcela otevřeno
Vlevo
Vpravo
Poloha
22
Pavel Pačes, 2010, Verze 1
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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
Krátké doporučení pro tvorbu akademických prací: Automatizované měření
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

Podobné dokumenty

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

Vývojové (a relační) diagramy a obrázky Draw je součástí volně dostupného balíku Open Office. Uživateli nabízí komfort jednoduchého ovládání a při správném nastavení se dá dosáhnout i pěkného vzhledu výsledné kresby. Nevýhodou je problem...

Více

Rodina Poseidon2

Rodina Poseidon2 (65..122). Čísla odpovídají ASCII hodnotě písmene, A=65, Z=90, a=97, z=122. Detaily o nastavení adresy viz manuál k čidlům.

Více

zde - Český metrologický institut

zde - Český metrologický institut Systém managementu kvality a mezinárodní uznávání výkonů ČMI Pro všechny prováděné kalibrace má ČMI zaveden jednotný systém managementu kvality, který splňuje požadavky normy ČSN EN ISO/IEC 17 025....

Více

Popis laboratoří (cz)

Popis laboratoří (cz) Základem kvalitního vzdělání je doplnit přednášky a semináře vhodnou experimentální výukou a praxí. Každé pracoviště na jednotlivých univerzitách vybudovalo během svého působení řadu laboratoří a ...

Více

APLIKACE POČÍTAČŮ V MĚŘÍCÍCH SYSTÉMECH PRO CHEMIKY

APLIKACE POČÍTAČŮ V MĚŘÍCÍCH SYSTÉMECH PRO CHEMIKY konektory. Síťová šňůra vede ke zdroji počítače, obdobný konektor lze využít k napájení monitoru. Konektory: PS/2 (PS je zkratka pro personal system) myš a PS/2 klávesnice (zpravidla odlišeny barev...

Více

CO-LA - Mundo Deportivo

CO-LA - Mundo Deportivo l)EI. MONO ROJO 5.33, can el 5. A. C. -Sordomudos todos

Více

UNIVERZITA PALACKÉHO V OLOMOUCI Přírodovědecká fakulta

UNIVERZITA PALACKÉHO V OLOMOUCI Přírodovědecká fakulta je zatížen vnitřním odporem měřidla). Vnitřní odpor měřidla proto musí být o hodně vyšší, než je vnitřní odpor senzoru, nemá-li dojít ke zkreslení měřené odezvy po zapojení měřidla (tj. má-li se od...

Více

Pavel Schauer Automatizace měření

Pavel Schauer Automatizace měření Seznam vybraných parametrů:...................................................................................................25 Příklady ..............................................................

Více

16. PLC KONFIGURACE A KONSTANTY

16. PLC KONFIGURACE A KONSTANTY - náveští u řetězce definovaného instrukcí "str". Přímé zadání textu s klíčovým slovem konfiguračního parametru v apostrofech Ukazatel na buffer pro defaultní hodnotu, z které se zkopírují data do ...

Více

1) Statická charakteristika bipolárního tranzistoru

1) Statická charakteristika bipolárního tranzistoru (přenastavení, odpojení či přeadresování přístroje, možnost zastavení měření, …). Součástí aplikace bude měřící vlákno které poběží paralelně s GUI. Výsledný graf je třeba vykreslit do GUI a případ...

Více