online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

Online dokumentumok - kep
  

MÉRÉSEK ADATGYŰJTŐ KÁRTYÁKKAL ÉS SZEMÉLYI SZÁMÍTÓGÉPPEL

fizikai





felso sarok

egyéb tételek

jobb felso sarok
 
Az SI-mértékrendszer
AZ ÉLŐVILAG ÉS A MÉRNÖKÖK LEHETŐSÉGEI
Képlékenyalakítas alapfogalmai
Feszültségosztó. Áramosztó
A teljes aramkörre vonatkozó Ohm-törvény
A HIDEGFÚZIÓ TÖRTÉNETE DIÓHÉJBAN
AZ "ÖRÖKMOZGÓ"
ORFFYREUS TÖRTÉNETE
 
bal also sarok   jobb also sarok

Mérések adatgyűjtő kártyákkal és személyi számítógéppel

Számítógép és vezérlések

Számítógép:

ˇ     757i89h   logikai -aritmetikai egység - programtár - adattár  - külvilág (IO)

ˇ     757i89h   adatok is, parancsok is byte-okban vannak (k*8 vezeték + föld = busz)



ˇ     757i89h   belül párhuzamos adatátvitel (ISA, PCI)

ˇ     757i89h   külvilág felé rendszerint soros (pl egér, klaviatúra, modem, hálózat, USB); párhuzamos: printer (hagyományok miatt), GPIB, egyedi vezérlések

ˇ     757i89h   memória: volatilis:RAM, permanens:ROM, EEPROM, flash memória, kis fogyasztású: CMOS;

ˇ     757i89h   címek: bizonyos címeken rendszerparaméterek találhatók - táblázat; portcímek (IO célokra)


Mikroprocesszor:

ˇ     757i89h   A logikai-aritmetikai egység egyszerű műveletekre képes: byte-ok összehasonlítása, összeadás, fixpontos számok szorzása; lebegőpontos művelet: koprocesszor

ˇ     757i89h   timer: funkcionálisan 8254-es; ami 55 ms-onként a $46C-t megnöveli eggyel.

ˇ     757i89h   két mikroprocesszorcsalád van: Motorola 6800 és Intel 8080 utódai.


Vezérlések:

ˇ     757i89h   vezérlések elvégzéshez a logikai -aritmetikai egység - programtár - adattár  külvilág (IO) egységek össze vannak integrálva - ezek a mikrokontrollerek.

ˇ     757i89h   fejlesztőrendszer; program (1-2 kByte esetleg) beégetés, vagy letöltés

ˇ     757i89h   nem programozhatók - mikrokontroller: mosógép, fényképezőgép, pH mérő

ˇ     757i89h   programozható:PLC (bit ki, be, relés kapcsolások, ADC, DAC ) egyszerű, megbízható (közlekedési lámpa)

ˇ     757i89h   bonyolultabb: folyamatvezérlő számítógép - ujabban PC (ipari PC: üzembiztonság, megbízhatóság, egyszerűség, párhuzamos, tartalék, watchdog)


Mérőkártyák

ˇ     757i89h     információ: AD-DA, timer (analóg) DIO, léptetőmotor vezérlő (digitális), frame grabber (kép)

ˇ     757i89h     általános célu műszerek: sokcsatornás analizátor, oszcilloszkóp, spektrofotométer, potenciosztát

ˇ     757i89h     egyedi berendezések vezérléséhez: 8255 alapu kártyák

ˇ     757i89h     kommersz elektronikai megoldások felhasználhatók: DIO-ra a printerport, ellenállásmérésre a gameport, AD-DA (sajnos csak hangfrekvenciás AC alkalmazáshoz) hangkártyák

ˇ     757i89h     jelkondicionálás (mechanikai csatlakoztatás, erősítés, szűrés, galvanikus leválasztás, szimultán mintavételezés) rendszerint a felhasználó feladata

ˇ     757i89h     beállítandó (vagy plug&play beállítja): interrupt level, DMA channel, alapcím

Programozásuk

ˇ     757i89h   címkiosztás, példaprogramokkal;

ˇ     757i89h   driver - parancskészlet, (pascal,C), Labview driver

ˇ     757i89h   komplett virtuális műszer program


Programozási példák:

1. példa: egy polarográfiás függőcsepp elektródot egy PCL-812 PG típusú kártya vezérel. A kapilláris zárt, ha a DIO14 nevű IO byte 6. bitje 1, nyitott, ha 0.

procedure PSDropHalt(b:byte);

begin

if b>0 then b:=1;

DIO14:=(DIO14 and 191);

if b=1 then DIO14:=DIO14+64;


port[base_address+14]:=DIO14;



end;


2. példa: feszültségmérés:

function MeasV:integer;

var i:integer; hib,lob:byte;


begin

port[base_address+11]:=1;

hib:=port[base_address+5];

port[base_address+12]:=1;

i:=0;

repeat

hib:=port[base_address+5]; i:=i+1;

until (hib<16) or (i=100);

lob:=port[base_address+4];

mv:=hib shl 8 + lob;

if i=100 then MeasV:=9999 else MeasV:=mv;

end;


3. példa: feszültségmérés 20 ms-os integrálással

function measV20ms:real;

var i:integer; vl:longint; mv: real; vv:integer;

begin

i:=0; vl:=0;

StartTimer;

repeat

vv:=MeasV;

if not (vv=9999) then begin

i:=i+1; vl:=vl+vv;

end;

until ReadTimer>0.02;

if i>0 then MeasV20ms:=vl/i else MeasV20ms:=9999.0;

end;


4. példa: Leállás elleni védekezés: keretprogramból (Main.exe) exec-kel hajtjuk végre magát a mérőprogramot (Measure.exe) ami pl. esc megnyomással állítható le.


Program Measure;


procedure EscTest; begin KeyTest; if EscPressed then CloseAll; halt(27); end;


begin repeat Measurements; EscTest; until világvége; end.


Program Main;


repeat

exec('Measure.exe',''); i:=DosexitCode;

WriteDEClogFile(i);

until (i=27);

end.


Ezzel csak a runtime error-ok küszöbölhetők ki, a tényleges lefagyások csak resettel - watchdog.


Műszerek összekapcsolása, interface rendszerek

  • Analóg jelátvitel: jeladó (transducer, 10V, 20mA, 4-20mA)
  • Analóg adatátvitel: telefon, hangfrekvencián 48 V ac, modem

Soros adatátvitel: RS232 és társai

1. RS232C. Legegyszerűbb soros rendszer

Fizikailag:

ˇ     757i89h     3..12V; 0 (LO) = +3V..+15V; 1 (HI) = -15V..-3V

ˇ     757i89h     minimum 3 vezeték (jel oda, vissza, föld), legáltalánosabban 9 vezeték (TxD, RxD (transmit data, recieve data: jel oda , vissza); RTS, CTS (request to send, clear to send: küldj, küldök), DSR, DTR (data set ready, data terminal ready: adatpuffer üres/tele), DCD (data carrier detect, van telefonvonal), RI (ring indicator: telefon kicseng), GND: jelföld.

ˇ     757i89h     csatlakozó 9 pólusu, 25 pólusu (lásd még áramhurok)

ˇ     757i89h     műszerhez (Data Communication Equipmenthez: modemhez, printerhez, műszerhez) direkt vezetékek (pl RxD <-> RxD, TxD <--> TxD, GND <-> GND; a kábelen számítógépnél anya, műszernél apa)

ˇ     757i89h     másik számítógéphez (Data Terminal Equipmenthez) felcserélt vezetékek (pl RxD <-> TxD, TxD <--> RxD, GND <-> GND; anya-anya kábel)

ˇ     757i89h     Handshake: RTS/CTS; handshake vonalak földelhetők.


Adatátvitel protokollja: megadandó a

baud rate (bit/s) szokásosan 9600 baud, 38400 stb, maximum 115200 baud 10kbyte/s.



adatátvitel: 7 vagy 8 bit (klasszikus vagy ékezetes karakterek is)

paritásbit, stopbit

Tipikus bitsorozat (frame):


2. Modern soros vonalak:

ˇ     757i89h     RS 423A: 3.6 V; 2 koaxiális kábel (oda és vissza); 300kBaud 30m vezetékhossznál; efelett rohamosan lecsökken.

ˇ     757i89h     RS 422A: 2 V; 2 csavart érpár; 2MBaud 60m vezetékhossznál; efelett rohamosan lecsökken.

ˇ     757i89h     RS 485: ipari szabvány, csavart érpár, címezhető

ˇ     757i89h     Modern soros kommunikációs lehetőségek: Ethernet, USB, Firewire

ˇ     757i89h     Protokollok szerepe

3. Áramhurok (current loop, TTY interface)

20 mA (optocsatolt, zavarvédett); 4 vezeték (jel oda, jel vissza, + földek); max 1000 m távolságra használható.


Párhuzamos adatátvitel: GPIB

Printerport - szükség esetén DIO (digitális vezérlési) célokra felhasználható

GPIB: General Purpose Interface Bus; HPIB (1965), Hewlett-Packard Interface Bus, IEEE-488, IEC-625

Általános felépítés: vezérlő(k) (controller (számítógép)); + max. 31 műszer; kábelezés (összes hossz < 2 méter*készülékek száma<20 m; 24 pólusu piggyback, Amphenol késes, csillag v. lánc; 25 pólusu tűs csatlakozó, metrikus - amerikai rögzítés) - open collectoros meghajtások (negatív logika, zajvédettség)

Használat:

Vezérlő: manapság rendszerint PC + NI (National Instruments) kártya + pascal, C, Labview, Labwindows software

Konfigurálás: címek beállításával + konfigurálóprogrammal: címek, szimbolikus nevek, adattranszfer adatai (hány bit, hogyan végződjön az adatforgalom (tipikusan CRLF), EOI jelezzen, timeout)

Tesztprogramok: egyedi parancsok kiadhatók pl ibwrt r2; ibrd; ibspoll;

Általában, a küldött adatok lehetnek vezérlőparancsok és mérési adatok (számok). A GPIB kompatibilis műszerekhez tartozik egy, az adott típusra jellemző parancskészlet (stringek) amelyekkel az előlapi kezelőszervek hatását lehet programból elérni. Például, egy adott típusú feszültségmérőnek a GPIB-n keresztül elküldött "R2" ill. "R3" stringek a 2 V-os ill. 20V-os méréshatárba állítják a műszert, a műszer által mutatott feszültség értékét pedig általában egy stringként (tehát digitenként 1 byte-ként) lehet kiolvasni.

A műszerek kezeléséhez tehát mérőprogramokat kell írni (vagy venni); a programozás manapság nem bonyolult: író és olvasó utasítások sorozatát kell megszerkeszteni. Például, az alábbi pascal nyelvű programban a WriteGPIB(fra, 'IP1,1'); WriteGPIB(fra, 'FR10000'); procedurák azt eredményezik, hogy az fra azonosítóju műszer az 'IP1,1' utasítás hatására a hátlapi csatlakozókon az 'FR10000' stringnek megfelelően 10000Hz-es frekvenciáju jelet fog kibocsájtani. Az s:=ReadGPIB(fra) függvény meghívása pedig azt jelenti, hogy az fra azonosítóju műszerből az s a vezérlő számítógép az s stringet kiolvassa (ez több szám együttese, amit persze majd egyedi számokra szét kell bontani). Egyszerűsíti a programozást, hogy az utóbbi időben a készülékgyártók igyekeznek azonos hatásu utasításoknak azonos nevet adni - tehát szabványos parancskészletek alakulnak ki.

Modern grafikus programozási nyelv a LabView, amely tartalmazza a GPIB-vel kompatibilis műszerek meghajtóit (tehát a fenti stringkészleteket). E nyelv különösen alkalmas arra, hogy szemléletes működésű mérőrendszereket hozzunk létre.


Működés:

8 adatvezeték + 8 vezérlővezeték (címbusz nincs, ha ATN, akkor ami megy az adatbuszon, akkor az adat az éppen cím)

A 8 vezérlővezeték 3 handshake és 5 rendszeradminisztrációs vonal.

A vezérlő a címmel azonosított egyes készülékeket beszélőknek illetve hallgatóknak jelöli ki; ezután a beszélő adatot küld a hallgatónak. Az adatátvitel hardware handshake szinkronizálással megy (hiszen különböző sebességű készülékek lehetnek jelen). A handshake vonalak jele DAV (Data Valid), NDAC (Not Data Accepted), és NRFD (Not Ready For Data). Ezek negatív logikájuak, tehát ha DAV logikailag igaz, akkor fizikailag LO állapotban vannak; un. nyitott kollektoros kimenetek, vagyis a vezetéken áram folyik és kis feszültség van. Két vagy több nyitott kollektoros kimenet ÉS kapcsolatot jelent, vagyis a vonal akkor lesz csak HI állapotban, ha mindegyik kimenet HI. Pl. a NRFD vonal akkor lesz HI állapotu (logikailag: az összes készülék kész adatot fogadni, fizikailag HI állapotu) ha minden egyes készülék NRFD kapuja HI állapotu. A handshake a következő időzítés szerint megy:

1. A kijelölt hallgatók felengedik a NRFD vonalat, amikor mindegyik felengedik, akkor az HI állapotba kerül ("mindegyikünk kész az adatfogadásra").

2. A beszélő a jelvezetékekre kiteszi az adatot (bájtot) és lehuzza a DAV vonalat ("van érvényes adatom")

3. A hallgatók beolvassák az adatot, és amelyik kész van, felengedné a NDAC ("megkaptam") és lehuzza a NRFD vonalat ("további adatot most nem tudok fogadni, meg kell emésztenem a mostanit").Ám a NDAC vonal akkor lesz ténylegesen fent, ha már mindegyik hallgató bevette az adatot. Ezt a beszélő felismeri, és a DAV-ot felengedi, az adatot törli a buszról. Ezt érzékelvén a hallgatók is lehuzzák a NDAC vonalat; majd idővel az NRFD vonalat is felengedik.

4. Innentől a következő byte küldése ugyanebben a sorrendben az 1. pontban leirtaktól kezdve történik.


Vegyes lehetőségek:

Egyszerre több vezérlő is lehet jelen, de csak mindig egy lehet aktív, és az egyiknek ún. rendszervezérlőnek kell lennie (ő a főnök). A vezérlés tehát átadható.

Hibalekezelés:

Parallel poll: ATN és EOI hatására az első 8 készülék - egy bizonyos feltételrendszert (parallel poll mask) kielégülése esetén kitehet 1 bitet.

Serial poll: Az a készülék, amelyiknek valamilyen baja van (a status byte 6. bitje 1) az lehuzza ezt a vonalat. Ezzel megszakítást (interruptot) lehet generálni. Ezután egyesével végig kell kérdezni az egyes készülékeket, lekezelni a bajt.

Törlés: IFC - interface clear; (interface reset); DCL - device clear (készülék reset) - vezérlővezetékek; SDC: selective device clear - csak a megcimzett készülékeket reseteli

GET (group enable trigger) parancs

REN - van local, remote és local lockout állás

Parancskészlet: egy adott készüléknek nem kell az összes funkciót teljesíteni tudnia - pl egy GPIB printernek lehet listen only, egy voltmérő talk only (és akkor nem is kell vezérlő), van ami nem érti a GET-et stb.



: 1888







Felhasználási feltételek