Data acquisition (DAQ), pojednostavljeno reeno, je proces dobivanja podataka iz instrumenta ili ureaja. U vedini sluajeva, DAQ se izvodi koristedi plug-in ploice za prikupljanje podataka. Ove plug-in ploice proizvode brojni proizvoai, ukljuujudi i National Instruments. Te DAQ ploice obavljaju razne zadatke, ukljuujudi analogna mjerenja, digitalna mjerenja i timing I/O. Jedna pogodnost je mogudnost dobavljanja ploica za PC, Macintosh i Sun radne stanice. Jedna od prednosti koritenja National Instruments ploica je dostupnost NI-DAQ drivera za ploice. Iako su ploice drugih proizvoaa kompatibilne s LabVIEW-om, DAQ biblioteka najvjerojatnije nede biti kompatibilna s ploicom. Vedina proizvoaa ploica daju svoje drivere za svoju opremu; neki imaju ak i drivere pisane u LabVIEW-u. ak i ako kod nije pisan u LabVIEW-u, DLL-ovi se mogu implementirati koritenjem funkcije Call Library. Code Interface Nodes (CIN) se mogu koristiti za implementaciju drivera pisanih u C izvornom kodu.
SLIKA 5.1 1
Podizbornik Data Acquisition je dio izbornika Functions. Data Acquisition izbornik se sastoji od est podizbornika: Analog Input VIs, Analog Output VIs, Digital I/O VIs, Counter VIs, Calibration and Configuration VIs i Signal Conditioning VIs. Data Acquisition podizbornik prikazan je na slici 5.11. Svaki od podizbornika se sastoji od niza VI razliite sloenosti i funkcionalnosti. Postoje etiri razine DAQ VI. Oni su Easy VIs, Intermediate VIs, Utility VIs i Advanced VIs. U pravilu, Utility VI se nalaze u vlastitom podizborniku. Advanced DAQ VI se takoer nalaze u vlastitom podizborniku. Glavna razlika izmeu Easy i Intermediate VI je sposobnost Easy VI da se pokrenu kao samostalne funkcije. Ovi VI pozivaju vie razine VI za obavljanje zadatka. The Easy VIs allow you to pass in the device number and channel numbers. VI de takoer provoditi funkcije za rukovanje grekama te de vas obavijestiti ako se pojavi greka. Pogledajmo podizbornik Analog Input. Izbornik se sastoji od etiri tipa gore opisanih VI. Easy VI ukljuuju funkcije za dobivanje jednog ili vie valnih oblika iz analognog ulaza. Tu su i funkcije za dobivanje uzoraka na odreenim kanalima. Intermediate VI omoguduju vam da konfigurirate hardvera i pripadne postavke, startate prikupljanje, oitate podatke iz buffera, napravite prikupljanje iz jednog skeniranja i izbriete zadatak sa analognog ulaza. Analog Input izbornik sadri dva podizbornika. Prvi podizbornik sadri Utility VI. Ti VI ukljuuju funkcije za pokretanje jednog skeniranja, skeniranja valnog oblika, ili kontinuiranog skeniranja. Drugi izbornik sadri napredne funkcije. Izbornik Advanced functions sadri VI za konfiguracije, itanje buffera, postavljanje parametara i kontrolu zadataka sa analognih ulaza. Mogli bismo posvetiti brojna poglavlja DAQ funkcijama, ali DAQ funkcije su detaljno obraene u NI Data Acquisition Basic priruniku. Nedemo pokuati pokriti materijal koji je ved pokriven. 2
5.1.11 NI-DAQMX
Dok su se tradicionalni DAQ (Legacy) VI uspjeno koristili za automatizaciju aplikacija za prikupljanje podataka vie od jednog desetljeda, podrka novih mogudnosti i funkcionalnih poboljanja rezultirala je stvaranjem DAQmx-a. DAQmx je nadskup DAQ Legacy VI. Jo uvijek moete koristiti sve funkcije koje ste mogli koristili i prije, ali sada imate dodatne mogudnosti kao to su multithreaded izvrenja, dodatna funkcionalnost drivera i konfiguracijske aplikacije poput DAQ asistenta i express VI. DAQmx je dostupan za Windows i Linux operativne sustave. Kako bi osigurano podskup DAQmx funkcionalnosti za MAC OSX, RTX i Pocket PC operacijske sustave, stvoren je NI DAQmx Base. Prva korist DAQmx-a je podrka za novije ureaje. Novi ureaji za prikupljanje podataka neprestano se stvaraju s povedanom funkcionalnodu u odonosu na starije modele ureaja. U cilju podrke novih funkcionalnosti trebati de napraviti i nove drivere. Novi driveri de se kreirati samo za DAQmx. Iako de se podrka za tradicionalni NI-DAQ nastaviti, nede se stvarati novi driveri. Da bi se dalje nastavile razvijati aplikacije savjetuje se koritenje DAQmx-a kako bi bili sigurni da de se podrka za kod nastaviti. U vedini sluajeva DAQmx poboljava brzinu aplikacije. To je zbog nekoliko novih znaajki. Prvo, legacy driveri izvravaju se samo u single thread modu. DAQmx sada podrava multithreaded izvrenja ubrzavajudi aplikacije koje mogu obavljati dva ili vie zadataka prikupljanja paralelno. Drugo poboljanje u brzini postignuto je dizajnom aplikacija. Sada s vie kontrole nad operacijama kao to su rezerviranje resursa i konfiguracija, tako da korisnik moe dizajnirati aplikaciju za obavljanje tih operacija samo kada je to potrebno kako bi se smanjio pretek. Konano, DAQmx alati mogu olakati razvoj aplikacija. Sposobnost koritenja express VI za konfiguriranje zadataka prikupljanja moe skratiti vrijeme potrebno da se test izvede. To moe biti korisno kada se test program esto mijenja, pa ponovno rekodiranje VI svaki put kad se test program promijeni moe biti zamorno. DAQ Assistant je aplikacija koja moe olakati kodiranje vodedi vas kroz kreiranje zadatka prikupljanja korak po korak. Sada demo pokazati primjer s jednostavnim itanjem podataka s analognog naponskog ulaza DAQ kartica. Prvi korak za primjer je postavljanje hardvera. Postavljanje hardvera vri se u Measurement Automation Explorer-u (MAX). U mapi Devices and Interfaces trebao bi biti prikazan sav dostupan hardver. Svaka instalirana DAQ kartica bi trebala biti prikazana. Ako razvijate aplikaciju na vaem stolu prije instalacije na va sistem za prikupljanje, ureaj nede biti ovdje. Moete dodati ureaj s driverima za va hardver, ili moete stvoriti simulirani ureaj kako bi mogli razvijati i testirati svoje aplikacije. To moete napraviti desnim klikom na mapu i odabirom Create New. Ovdje moete odabrati odgovarajude drivere. Nakon to ste odabrali ureaj moete podesiti postavke kao to su poetne postavke i tip konektora. Za ovaj primjer smo stvorili simuliranu DAQ karticu (PCI-6220) na DEV1. Prozor MAX-a je prikazan na slici 5.12.
3
SLIKA 5.1 2
Sada demo na code diagram kratici odabrati DAQ Assistant iz izbornika input iz Express izbornika. Poetno DAQ Assistant suelje koje se automatski pokrede prikazano je na slici 5.13. Na ovom primjeru demo odabrati Voltage ispod Analog Input naslova. Nakon odabira vrste prikupljanja ulazni zaslon vam daje mogudnost postavljanja hardverskih kanala koji de se koristiti. Dostupni podaci ovise o tome to je ved postavljeno u MAX-u. Ovdje smo u mogudnosti odabrati odreene analogne ulazne linije na DEV1 (simuliranoj 6620 kartici). Sada kada ste zavrili poetnu instalaciju DAQ Assistant otvara prozor za konfiguriranje parametara kanala. To suelje je prikazano na slici 5.14. Ovdje moete dodavati, uklanjati i testirati kanale kako bi bili sigurni da imate sve dobro postavljeno. Postoji jo jedna kartica na donjem dijelu prozora. Ova kartica de pokazati dijagram prikljuka. Ovdje moete odabrati svaki kanal i vidjeti koje ice su prikljuene na temelju definiranog DEV1 prikljuka u MAX-u. Ovaj prozor je prikazan na slici 5.15. Nakon dovrenja konfiguracije rezultirajudi DAQ blok de biti na dijagramu koda. Blok je standardni Express VI blok s plavim rubom. Sada moete spojiti kontrole sve ulaze koje eliti modi kontrolirati. Valni izlaz moese spojiti na izlaz DAQ Assistant bloka. Pokretanje VI kreira graf ulaznih kanala. 4
SLIKA 5.1 3
SLIKA 5.1 4
5
Neki ljudi ne vole koristiti express VI jer je kod skriven od korisnika. Imate dvije opcije. Moete spojiti aplikaciju pomodu DAQmx subVI na isti nain na koji bi koristili Legacy DAQ VI ili moete konfigurirati aplikaciju s DAQ Assistant-om i desnim klikom na ikonu izabrati da generira DAQmx kod. Slika 5.16 prikazuje jednostavno jednokanalno analogno prikupljanje ulaza. Primjetite da su DAQmx VI polimorfni. Polimorfni VI je VI koji moe obavljati razliite funkcije na temelju ulaznih vrijednosti. U ovom sluaju postoji VI za stvaranje kanala. U ovom sluaju odabran je analogni ulaz, pa De VI stvoriti kanal za analogni ulaz napona. Ako programer promijeni donji tekst za itanje napona analognog izlaza (AO Voltage) stvorio bi se kanal za napon analognog izlaza. Ova postavka se moe mijenjati desnim klikom na tekst na dnu VI kao to je prikazano na slici 5.17. To je jo jedan nain da se programiranje olaka. Isti kod se moe koristiti za razliite aplikacije promjenom funkcionalnosti polimorfnih VI bez potrebe da se ubaci novi VI.
SLIKA 5.1 5
SLIKA 5.1 6 6
SLIKA 5.1 7
5.1.12 FILE I/O
File I/O je tip drivera kojeg se ljudi esto ne sjete. Sposobnost itanja podataka iz datoteke i pisanja podataka u datoteku na mnogo naina je slino itanju podataka iz i pisanju podataka na GPIB instrument. Trebate sredstva za identifikaciju datoteke s kojom elite komunicirati. Umjesto GPIB adrese imate put datoteke. Takoer trebate biti u mogudnosti prenositi podatake s jednog mjesta na drugo. Umjesto razmjene podataka izmeu raunala i GPIB instrumenta, razmjenjujete podatke izmeu LabVIEW programa i datoteke. File I/O funkcije su vrlo sline driverima instrumenta ili komunikacijskim driverima. File I/O VI mogu se nadi u File I/O dijelu Function izbornika. Ovaj podizbornik sadri brojne funkcije datoteka, kao i podizbornike koji sadre VI koji se odnose na binarne datoteke, datoteke konstanti, konfiguracijske datoteke i napredne funkcije datoteke. Standardne File I/O funkcije ukljuuju VI za otvaranje/stvaranja datoteke, itanje podataka iz datoteke, pisanje podataka u datoteku i zatvaranje datoteke. Osim ovih funkcija, postoje VI za pisanje i itanje podataka iz spreadsheet datoteke, pisanje ili itanje znakova iz datoteke i itanje linija iz datoteke. File I/O izbornik je prikazan na slici 5.18.
SLIKA 5.1 8 7
Postoje dvije preostale funkcije koje su ukljuene u standardne File I/O funkcije. Prvi VI omoguduje vam izgradnju puta datoteke. Taj VI stvara novi put datoteke dodavanjem naziva datoteke ili relativni put od ulaza stringa do osnovnog puta. Zadana vrijednost osnovnog puta je praza put. Rezultat je u kombinirani put datoteke. Ako postoji problem u jednom ili u oba ulaza, VI de vratiti poruku "not-a-path". Druga funkcija uzima put datoteke i razbija ga. Zadnji dio puta spojen je kao string ime datoteke. Ostatak puta je spojen kao put datoteke. VI de ispisati prazan string i "nit-a-path" ako je ulaz nevaljan. Binary file VI omoguduju vam itanje i pisanje 1- ili 2-D polja podataka na bajt stream datoteku. Bajt stream datoteka moe biti u signed word formatu ili single precision formatu. Configuration file izbornik sadrava VI koji se koriste za itanje i izmjenu informacija u konfiguracijskim datotekama. File Constants izbornik sadri VI koji vam omoguduju pristup trenutnim mapama, putevima ili mapama knjinice VI. Pored navedenih funkcija, postoje konstante koje se mogu koristiti za stvaranje ulaza za File I/O VI. Configuration Files izbornik sadri VI koji se koriste za itanje i pisanje u INI formatirane datoteke. Ti VI mogu biti vrlo korisni kada se od korisnika zahtjevaju informacije o konfiguraciji za postavljanje izvravanje koda. Koritenjem ovih VI moete spremiti postavke koje korisnik unio da se uitaju sljededi put kada se aplikacija pokrene tako da korisnik ne mora ponovno unositi sve informacije. Mogle bi ak postajiti i opcije za spremanje konfiguracija u sluaju da postoji vie potrebnih postavki. Advanced izbornik sadri VI koji obavljaju niz zadataka koji se odnose na datoteke. Advanced izbornik je prikazan na slici 5.19. File Dialog funkcija prikazuje dijaloki okvir koji korisniku nudi odabir datoteke. Izlaz je put odabrane datoteke. Open File VI vam omoguduje da odredite vrstu datalog-a. Tu je funkcija koja se koristi kako bi pronali pomak od kraja datoteke (EOF). Seek funkcija omoguduje vam da zaponete datoteku na nekom drugom poloaju osim na poetku datoteke. Postoje VI koij se koriste za postaviti prava pristupa za odreene datoteke, kao i za saznati informacije o datoteci, mapi ili volumen.
SLIKA 5.1 9
Tu je set od pet VI u Advanced izborniku koji obavljaju radnje na mapama. Postoji VI koji vam omoguduje da se presele datoteke ili mape. Tu su takoer VI koji vam omoguduju da kopirate datoteku ili mapu, kao i brisanje datoteke ili mape. New Directory funkcija vam omoguduje da stvorite mapu na odreenom putu. List Directory funkcija sadri popis svih imena datoteka i mapa koje se nalaze u putu mape. 8
Zavrni skup funkcija u Advanced izborniku su VI koji slue za pretvaranje izmeu stringova i puteva. Funkcije mogu obavljati operacije na jednom stringu ili na polju stringova. Tu je i VI koji pretvara refnum u put. Ti su VI korisni prilikom pretvaranja string puteva koje je stvorio korisnik u korisnikom suelju u put datoteke za obavljanje funkcija datoteka. Sada demo dati kratki primjer kako itati i pisati podatke koristedi datalog datoteke. Prvi korak je stvoriti tip podataka koji se koristi za pohranu podataka. U ovom primjeru demo snimati tri razliite vrijednosti po datalog vrijednosti. Prvi je indeks podataka. To je jednostavno vrijednost indeksa FOR petlje koji se koristi za stvoriti podatke. Druga stavka u klasteru podataka je podatak. Podaci za ovaj primjer su jednostavno generirani sluajni brojevi izmeu 0 i 10. Konani tip podataka koji se koristi za cluster je oznaka datuma i vremena. Ova vrijednost je napisana kao string. Ukratko, nai tipovi podataka se sastoje od jednog cijelog broja, realnog broja i stringa. Prvi korak je kreiranje koda koji de generirati podatake. FOR petlja izvrava 100 iteracija. Unutar For petlje, indeks petlje, test podaci i string vremena i datuma su grupirani u klaster. Taj klaster je prikljuen na izlaz FOR petlje, gdje je omogudeno automatsko indeksiranje. Kada su svi podaci prikupljeni, koristi se New File VI. Put datoteke sadri naziv i lokaciju datoteke u koju piete podatke i biti de potreban kada elite dohvatiti podatke. Put datoteke je jedini potrebni ulaz. Postoji niz drugih ulaza u VI koji se mogu prikljuiti ili ostaviti kao zadano. Za pisanje i itanje datalog datoteke, trebat dete spojiti kopiju formata podataka na datalog tip. To moete postidi spajanjem stvarnog podatka na ulaz, ili povezivanjem konstante istog tipa podataka. ostali ulazi su permissions, group, deny mode i overwrite. Overwrite ulazu za na primjer dodijeliti demo vrijednost "true". To omoguduje programu da prebrie postojedu datoteku s istim imenom, kao to je navedeno u ulaznom putu datoteke. Da se ulaz postavi "false" program bi javio greku kada bi pokuao stvoriti novu datoteku koja ved postoji. Nakon to je datoteka stvorena, sljededi korak je upisati podatke. Write VI koristi se za slanje prikupljenih podataka na datalog datoteku. Ulazi Write VI ukljuuju convert eol (end of line), header, refnum, positive mode, positive offset, error in i data. Jedini potrebni ulazi su refnum i data ulazi. Podaci iz FOR petlje su prikljueni na unos podataka. Zavrni korak ovog podVI je zatvoriti datoteku pomodu Close File VI. Sljededi korak je stvoriti VI za itanje podataka nazad iz datoteke. U ovom VI korisit se Open File funkcija za stvaranje veze s datotekom. File Path ulaz se koristi za usmjeravanje VI do datalog datoteke. Uz File Path prikljuen je i tip podataka na Datalog Type ulaz. Ovaj tip podataka mora odgovarati tipu podataka klastera kojega smo upisali u datoteku. To vam omoguduje da proitate informacije u odgovarajudem formatu. Osim datalog tipa i puta datoteke, moete postaviti open mode i deny mode za datoteku. To vam omoguduje da odredite dozvole za datoteku. Nakon otvaranja datoteke, morate koristiti funkciju Read File. Ovaj VI se koristi kako bi dobavili podatke iz datoteke i pisali podatke na pokazatelj. Opet, zavrni korak je zatvaranje datoteke. Code diagram za Datalog Write VI i Datalog Read VI je prikazan na slici 5.20.
9
SLIKA 5.2 0
5.1.13 CODE INTERFACE NODE I CALL LIBRRARY FUNKCIJA
LabVIEW ima sposobnost izvravanja koda napisanog u C-u, kao izvravanja funkcija spremljenih u DLL. Postoje dva naina za pozivanje vanjskog koda. Programer moe pozvati kod napisan u tekst-temeljenom jeziku poput C-a koristedi Code Interface Node (CIN). Programer takoer ima mogudnost pozvati funkcije iz DLL ili zajednike knjinice pomodu Call Librarry funkcije. Slijedi kratak opis svake. CIN je u nekim aspektima slian podVI. CIN je objekt na blok dijagramu VI. Programer moe unijeti ulazne podatke neophodne za izvravanje funkcija ispojiti izlaze iz CIN-a na ostatak programa. Glavna razlika je to je podVI kod napisan u G jeziku za obavljanje funkcije, dok CIN izvrava tekstualni kod za obavljanje funkcije. CIN je povezan na kompajlirani izvorni kod. Kad izvrenje blok dijagrama doe do CIN-a, LabVIEW poziva izvrni kod, vradajudi konane izlaze na VI. Postoje brojni razlozi za koritenje CIN-a. Jedna od prednost je mogudnost koritenja postojedeg koda u vaem LabVIEW programu. Ako je funkcija ved napisana u C-u, imate mogudnost integriranja koda u va LabVIEW program to de smanjiti vrijeme razvoja. Jo jedna korist koritenja CIN-a je proirivanje funkcionalnosti LabVIEW-a. Odreene funkcije sustava koje nemaju odgovarajude LabVIEW funkcije mogu se realizirati pomodu koda koji je napisan u C-u. To moe pomodi programeru u obavljanju low-level programiranja s LabVIEW-ovim grafikim sueljem. Konana prednost kod koritenja CIN-a je brzina. Dok je LabVIEW dovoljno brz za vedinu programskih zadataka, odreene vremenski kritine operacije, kao to su prikupljanje podataka i 10
manipulacija, moe biti uinjeno uinkovitije u programskom jeziku kao to je C. Koritenje CIN-a omoguduje programeru koritenje pravog alata za pravi posao. Sposobnost koritenja prethodno napisanog koda je klju za smanjenje vremena razvoja. Funkcije za obavljanje mnogih Windows funkcija ved su napisane. Te funkcije su obino napisane u C-u i spremljene su u Dynamic Link Libraries (DLL). LabVIEW moe pozvati ove Windows funkcije na dva naina. Prvi nain je pomodu CIN-a. Laki nain za pozivanje DLL funkcija je pomodu Call Libraryfunkcije. Glavna razlika izmeu pozivanja C koda pomodu CIN-a i koristedi Call Library funkciju za pozvati DLL je integracija izvornog koda. Kada koristite DLL, kod ostaje u svojoj knjinici; ne kopira se u izvrne datoteke programa. Druga oita razlika je injenica da su DLL-ovi Windows specifini, dok se CIN moe koristiti na svim platformama. Za vie informacija o Code Interface Node, moe se pronadi Code Interface Reference prirunik na National Instruments web stranici. PDF datoteka pokriva kako integrirati CIN na bilo kojoj platformi. Za vie informacija o koritenju DLL-ova, postoji Application note na NI web stranici. Application Note 087, "Writing Win32 Dynamic Link Libraries (DLLs) and calling them from LabVIEW", govori o metodama koritenja DLL-ova.
5.2 KLASIFIKACIJA DRIVERA
Tri su glavne funkcije drivera. Tri vrste odgovaraju tri glavne svrhe drivera: konfiguriranje instrumenta, uzimanje mjerenja ili provjea statusa. O te tri glavne vrste drivera de govoriti u nastavku. Kada se kreiraju driveri VI, National Instruments preporua standardni format kojeg driveri trebaju slijediti. Knjinice drivera trebaju sadravati sljedede funkcije: Initialize, Configure, Action/Status, Data, Utility i Close.