3. ATALA
SARRERA ANALOGIKOA
Ikasgai honetan sarrerako seinale
analogiko baten laginketa egiteko hartu behar diren erabakiak adierazten dira.
Atxikitako gaiak:
1.
Sarrera
analogikoen gogoeta
2.
Anti-aliasing kontrako iragazkia
3. Nola erabili DAQmx Read VI
4. Puntu bakarreko eskursaketa
5. Buffer bidezko eskuraketa
6. Trigger bidezko eskuraketa
Seinale digitalen prozesaketaren abantailak direla eta, seinale analogikoak prozesatuak izan aurretik, bere izaera digitalera itzultzen dira. Seinale digitalak, aurretik definitutako aldagai kopuru independente eta menpekoak onartzeko sistemarik egokiena da. Aldagai independente ohikoena denbora izanik eta aldiz menpekoa anplitudea bezalako elementua.
Formatu digital honen abantailak ugariak dira analogikoekin konparatuz gero. Seinale digitalek zehaztasun eta doitasun nabariagoa dute, zarataren efektua murriztuagoa izan ohi da eta seinaleen prozesaketa ere errazagoa egiten da. Hortaz, datuen transmisioa erraza eta zabala izateagatik, mota honetako seinaleak, analogikoak baino garatuagoak daude eta erabiliagoak dira.
Seinale analogiko bat eskuratzeko, lehenengoz, seinale analogikoa, bere
errepresentazio digitalean irudikatu beharko da. Praktikan, eragiketa hau,
analogiko/digital bihurgailu baten bitartez egingo da. Seinale digitalekin lan
eginez, eragiketa eta laginketa prozesuak errazagoak baitira.
Kontsideratuz, seinale analogikoa x(t),
lagindua izaten dena Δt segunduro. Denbora tarte hori, laginketa periodoa
bezala ezagutzen da. Eta era berean 1/Δt, laginketa frekuentzia adieraziko
da, edo lagin unitate/segundo. x(t)-ren
balio diskretu bakoitza t-ren=0,Δt,
2Δt, 3Δt... lagin bezala ezagutzen da. x(t) seinalea irudikatua izan daiteke seinale diskretu bakoitzaren
laginketa balio ezberdinen bitartez, irudian aurkezten den moduan.
{ x(0), x(Δt),
x(2Δt),x(3Δt), ..., x(k Δt), ... }
Hurrengo irudian, seinale analogiko
baten laginketa bertsioa irudikatzen da. Laginketa periodoa Δt izanik, laginak denboran zehar
definitutako diskretuak bezala irudikatzen dira.
Beraz,
N lagin dituen seinaleak, x(t)
seinalea honela errepresentatzea ahalbidetuko du:
X = {x[0], x[1], x[2], x[3], ..., x[N – 1] }
Ekuazio hau beraz, x(t)-ren irudikapen digitala dela esango da. Onartu
baita, X sekuentzia indexatua dagoela i
aldagai integragarrian, eta ez duela laginketa abiadurari buruzko inolako
informaziorik ematen. Laginen balio hutsez ezin baita inolako informaziorik
lortu laginketa abiadura jakiteko.
Sarrera analogiko eta irteera
analogikoen neurketan elementurik garrantzitsuenen artean: neurriak hartzeko
sistemak, sarrera seinalearen laginketa egiteko eta irteerako seinale
sorkuntzen abiadura eta mota definitzen duen sistema izango da. Sistemak izango
duen laginketa abiadura, edo neurketa abiadura DAQ sisteman, adieraziko du zein
izango den ADC (analogiko-digital bihurgailu) edo DAC (digital-analogiko
bihurgailu) baten funtzionamendu frekuentzia. Elementu hau guztiz beharrezkoa
da, seinale analogikoak irakurriak izan baino lehen itxura digitalera pasa egin
behar baita. Abiadura handiko laginketak, neurketa gehiago egingo ditu denbora
finko batentzat eta jatorrizko itxura zehatzagoa bat irudikatu ahal izango du,
laginketa txikiagoak baino. Adibidez, 1 Hz-ko seinalea sortuz 1.000 puntu
zikloko erabiliz, hau da 1.000 S/s, irudikapen zehatzago bat sortuko du 10
puntu ziklokoak baino.
Laginketa astiroegi egiteak aliasing
efektu baten amaitu dezake, zein akatsez beteriko irudikapen bat lortzea
eragingo duen. Azpilaginketa bat egiteak, jatorrizko seinalea duen frekuentzia
baino frekuentzi txikiago bat itxuratzea eragingo du. Aliasing efektu hau saihesteko, jatorrizko seinalearen frekuentzi
balioa baino laginketa abiadura handiagoak erabiltzea beharrezkoa izango da.
Hurrengo irudian ikus daiteke aliasingaren
efektua seinale baten.
Frekuentzien neurketarako,
Nyquist-en teoremaren arabera, laginketa abiadura, jatorrizko seinale abiadura
edo frekuentzia, baino bi aldiz handiagoa izan beharko da. Era honetan ziurtatu
daiteke seinalearen irudikapen fidagarri eta zehatz bat lortuko dela.
Nyquist-en frekuentzia laginketa frekuentziaren balioaren erdia izango da
beraz.
Adibide
moduan, ikus daitezke hurrengo bi irudiak. Demagun sarrera seinale bat 25 Hz,70
Hz, 160 Hz eta 510 Hz balioz osatua. Aldi berean lagin frekuentziaren balioa, fs, 100 Hz dela. Hau ematen baldin bada, fs/2 balioko
frekuentziek egoki laginduak izango dira, aldiz, 70 Hz-tan, arazoak izango
ditu, eta 160 eta 510 Hz-tako frekuentziak aldiz, ezin izango dira lagindu.
LAGINKETA ABIADURA ZEHAZTEN
Posible litzateke datuen eskuraketa
ahalik eta frekuentzia balio edo eskuratze abiadura azkarrenean nahi izatea.
Hala ere, oso azkar eskuratzen baldin bada denbora luzean, izan liteke, memoria
nahiko ez izatea datu kantitate guztia hartu eta gordetzeko.
A
adibidean, sinu itxurako seinalea lagintzen da, non laginketa frekuentzia, fs, jatorrizko frekuentziaren balio
berbera da. Honen ondorioa, aliasinga
izango da, fs txikiegia izateagatik.
Hala ere, frekuentzi balioa igotzen den heinean, 2fs adibidez, lagindutako seinalea guztiz fidagarria izango da, nahiz
eta sinu itxura era triangeluarrean emango den. Era honetan, lortutako seinalea
behintzat jatorrizkoaren ziklo kopuru berdina izango du. Beste adibide
batzuetan, 4fs/3 esaterako,
frekuentzia ere Nyquist-ena baino txikiagoa izaten jarraituko du, ondorioz, aliasing efektuak frekuentzi eta
seinalearen itxuran akatsak eragingo ditu.
Nahiz eta Nyquist-en balioa nahiko
adierazgarria eta segurtasun neurri onartua bezala hartzen den, ez da beti saio
praktikoetan frekuentzia onargarria izango. Seinale errealak, ez dira beti ondo
laginduak izango, nahiz eta Nyquist-en teorema bete, laginketa neurketa
distortsionatu baitezakete. Era honetan, industri arloan, balizko frekuentzia
laginketa balioek, 5 edo 10 aldiz seinale frekuentziarenak izatea normaltzat
hartzen da.
Laginketa frekuentzi minimoa bi
aldiz jatorrizko frekuentziarena izan beharko da. Hala ere nola mugatu edo
erabaki frekuentziaren amaierako balioa? Nahiz eta ziur egon neurtzen den
seinalearen frekuentziaren balio limitea, posible da, beste gehiegizko frekuentzi
batzuez osatua egotea (indar seinaleek, irrati seinaleek... sortuak) eta
ondorioz, akatsen bat sortzea laginen neurketetan.
Guztiz ziur egoteko erabili behar den
seinalea egoki babestua egongo dela, behe-pausuko iragazki bat jarri daiteke (behe
mailako seinaleak pasatzen utziko dituena eta ez goi mailako frekuentzi
seinaleak) ADC aurretik gehituko dena.
Iragazki hau, anti-aliasing bezala
ezagutzen da, eta laginketa seinalea Nyquist-en 2f, baino balio handiagoak dituen seinaleetaz babestuko ditu.
Hurrengo irudian ikusi daiteke anti-alias
ideal baten funtzionamendua.
Anti-aliasing iragazki hauek, goi mailako frekuentzia balioak ebaki eta ez ditu pasatzen utziko, benetan balizkoak izango diren balioak pasatzen utziz. Praktikan, iragazki hauek f1-etik beherako frekuentziak pasatzen utziko ditu; eta f2-tik gorakoak moztu. Ondorioz f1 eta f2 tarteari, trantsizio banda esango zaio. Hortaz, nahiz eta f1 baino txikiagoak diren frekuentziak soilik pasatzea nahi, beti tarte horretako seinale balioren bat ere pasako da. Horregatik, gehiegizko seinale horiek saihesteko bi aldiz jatorrizko frekuentzia baino handiagoko laginketa frekuentziak erabiltzea gomendagarria da.
3.1 Ariketa: LAGINKETA ABIADURA ETA ALIASING
DAQmx Read
VI , DAQmx –Data Acquisition taulan aurkitu daiteke eta laginak
irakurri ditzake, adierazitako kanal edo eginkizunaren arabera. VI honek ematen
dituen aukeren artean, laginketen formatua aukeratzea, laginketa bakarra zein
laginketa anitzen irakurketa eskuratzea, edota kanal bat edo zenbaitetatik
irakurtzea izango da. VI honek beraz aukera ezberdin ugari emango ditu, nahi
edo beharko diren ekintzen arabera.
Lehenengo aukera taulan, hurrengo
sarrera motak aukeratu ahal izango dira:
·
Analogiko
·
Digital
·
Kontagailua
·
Gehiago
Bigarren aukera taulan, irakurriko diren kanal kopuruak, eta baita lortu behar deneko informazioa eskalatua dagoen edo ez definitzea aukeraketa izango da. Erabili 3. aukera taula, eskuratzea laginketa datu bakar edo anitzekoa izan dadin. Laginketa datu bakarra erabiliz, 4.taula erabili beharko da, aukeratzeko eskuratutako informazioa seinale itxura bezala ikustaraziko den edo, prezisio bikoitzaz definituko den array baten bitartez.
Izena ematen ari denean sarrera zein irteera analogikoentzat, posible izan
daiteke aldi berean kanal bat baino gehiago definitu nahi izatea. Kasu honetan,
kanalak, timing eta trimmer berdina badute, hobe izango da kanal guzti
hauek eginkizun talde baten biltzea.
·
Y- 1D, bat dimentsioko zenbakizko
informazio puntuez osatutako arraya
izango da, zein puntu bakarrekoa izan daitekeena edota ekintzaren araberako
seinale itxura izango duen. 1Dko irudikapena DBL
formatukoa izango da.
·
t0 - Denbora ordezkatuko duen balio eskalarra zein
erloju sistemari lotua egongo dena, Y arrayaren
lehenengo puntua eskuratzen denean. Elementu hau, hasieratze denbora bezala
ezagutzen da.
·
Δt – Y
arrayko informazio puntuen artean
dagoen denboraren balio eskalarraren ordezkapena.
·
Ezaugarriak – Aukera honek, string bat sortuko du zeinetan bundle baten
bitartez uhin itxura, gailu edo kanal zenbakiaren beste informazio bat
aurkeztea erraztuko duen.
Uhin itxura datuek, ohizko array
eskalatuak baino abantaila gehiago aurkezten dituzte.
·
t0-ren agerpena – Uhin
itxurako datu motak izan aurretik ezinezkoa zen datuaren neurketa edo jasotzea
noiz hasiko litzatekeen ezartzea. Horregatik, uhin itxurak automatikoki
itzultzen du t0 horren egun eta ordu zehatza. Era honetan
denbora errealean funtzionatzea eta erregistro zehatz bat mantentzea
ahalbidetzen du.
·
Irudikapen
errazagoa – Uhin itxura
datu mota, eskuratutako datuen grafikatzea asko errazten du. Nahikoa izango
baita, lortutako datuak zuzenki grafikora konektatzea.
·
Grafiko
anitzen irudikatze errazagoa – Aurreko elementua bezala, datuak grafikatzea errazagoa izango da uhin
itxura datu motaren bitartez eta, are gehiago, grafiko anitz eta ezberdinak
irudikatzeko.
3.2 Ariketa: VOLTIMETROA VI
Sistema baten arkitekturak,
seinalearen laginketa baldintzatuko du. DAQ gailuek bi sistema edo arkitektura
nagusitan banatzen dira, hurrengo irudian ikus daiteken moduan.
Interval and Round-Robin
deitutako laginketa arkitektura, sistemarik merkeena da eta multiplexore,
anplifikadore eta ADC (analogiko-digital bihurgailua) batez osatzen da. Layout
honen bitartez sarrera seinaleek bihurgailu bakar baten banatu beharko dira.
Honek sistema merkeagoa egiten badu ere, sistema motelagoa izango da. Bestalde,
aldi bereko laginketa arkitekturak, kanal bakoitzeko anplifikadore eta
bihurgailu propioa izango du. Kasu honetan, sistema garestiagoa izango da,
baina aldi bereko seinale anitzen laginketa ahalbidetzen ditu.
Laginketak kanaleko eta segundoko – Segundoro neurtu edo eskuratuko den laginketa kopurua.
Lagin Clocka – Laginketaren hasieratzea egiteko
erabiltzen den pultsu trena. Denbora bakoitzean laginketa erlojuak pultsu bat
sortzen du, lagin bat kanaleko eskuratu daiteke.
AI bihurgailu erlojua – A/D bihurketa sortzeko pultsu trena.
Laginketa iraupena – Laginketa multzo oso bat eskuratzeko daraman denbora
iraupena. Hurrengo formularen bitartez:
Laginketa iraupena= (kanal
kopurua -1) x AI bihurgailu erlojua
Seinaleen laginketan sistemarik
ohizkoena da laginketa bitartea, gailuko kanal guztietatik ADC bihurgailu
bakarra banatzen duelako. E Serieko gailu gehienetan aurkituko da.
Bitarte laginketa honek, laginketa
erlojua eta AI Bihurgailu Clocka
erabiltzen ditu multiplexorea kontrolatzeko. Erloju hauen funtzionamendua
ulertzeko, sinestu egin beharko da bi kanalen bitartezko laginketa ematen dela.
Laginketa erlojuak hasieratze seinalea
ematen duenean, multiplexoreak, lehenengo kanala konektatu egiten du ADC
bihurgailura, eta AI bihurgailu erloju bateko pultsua sortzen du. AI bihurgailu
erlojuak pultsua ematen duenean, ADC bihurgailuak lehenengo kanaleko puntu
baten eskuraketa egiten du. AI bihurgailu erlojuak beste pultsu bat eman baino
lehen, multiplexoreak bigarren kanala konektatzen du ADCra. Ondorioz, AI
bihurgailu erlojuak berriro pultsua ematen duenean bihurgailuak bigarren
kanaleko puntu bat eskuratzen du.
Laginketa iraupena amaitzerakoan,
laginketa erlojuak berriro ere, pultsu bat emango du eta ziklo osoa errepikatuko
da. Laginketa erloju sistemak laginen frekuentzia ezarriko du kanaleko. AI
bihurgailu erlojua laginketak hartzeaz arduratzen da.
ROUND–ROBIN LAGINKETA
Round–Robin laginketa sistemak ere
bihurgailu bakarra erabiltzen du laginketa aurrera eramateko. Hala ere, aurreko
laginketa sistemarekiko ezberdintasuna, scan erlojua da. Kanal erlojuak scan hasieratzen du eta honek laginketen
arteko iraupen edo denbora ezartzen du. Hurrengo irudian aurkezten den moduan.
Round–Robin laginketa sistema honek laginketa
bitarte sistemaren kontzeptu berdinaz lan egiten du. Hala ere, erloju bakar bat
baino ez dauka, ondorioz puntu guztiek banatu edo tartekatuak egon beharko
dira. Tartekatzeko modu bakarra, laginketa bat segundoko eta bi laginketa
kanaleko izango da. Segundoko mota, bi laginketa segundoko izango duen AI
bihurgailu erlojua erabiltzean datza. Kasu honetan laginketaren iraupena 0.5
segundukoa izango da 5μ segundu beharrean.
ALDI BEREKO LAGINKETA
Aldi bereko laginketa ADC bihurgailu
bat erabiltzen du kanaleko, era honetan kanal guztiak aldi berean lagindu
daitezke. Kanal guztiak banatuko direnez laginketa erloju bakarra erabili
beharko da.
Ikusi kasu guztien errendimendua
50KHz-tik 200kHz-ko mailara 4 seinale lagintzen direnean. Round–Robin
sistemarekin, laginketa guztiak tartekatuak izan behar dira, 15μs-ko
atzerapena eragingo duena, 0 eta 3. kanalen laginketa denbora artean. Hau 270
gradutako faseen arteko desfasea dela eta ematen da. Scannig tartean 5μs-ko atzerapena izango dela kanalen artean
onartzen da. Horregatik berriro ere, 0 eta 3. kanalaren arteko 15μs-ko
atzerapena gertatzen da. Aldi bereko laginketan aldiz, soilik 3 nanosegundoko
atzerapena egongo da 0 eta 3. kanalen artean. Beraz azken sistema honek,
kanalen arteko denborak asko murrizten ditu, baina sistema garestitu ere egiten
du.
3.3 Ariketa: BITARTEDUN LAGINKETA vs. ROUND-ROBIN LAGINKETA
Puntu anitz aldi berean eskuratzeko, aukeratu DAQmx Read VIko adibide bat, zein laginketa anitz irakurtzen dituen. DAQmx Read VIa erabili DAQmx Timing VIarekin batera, eta DAQmx Start Task VI, DAQmx Stop Task VI buffer bitartezko eskuraketa VI, sortzeko hardware-timed baten bitartez.
· Hardware-Timed eskuraketa – Hardware seinaleak lagin erlojua edota AI bihurgailu erlojua bezalakoak, eskuraketa mota eta denborak kontrolatzen dituzte. Hardware motako erloju seinaleak, softwareekoak baino bizkorrago lan egiten dute, era honetan, laginketa frekuentzi balio altuagoak eskuratu daitezke, aliasing efektua gertatu gabe. Honetaz gain, mota hauetako erloju seinaleak prezisio handiagoa aurkezten dute softwareloopak baino.
· Buffer bitartezko eskuraketa – Puntu askoren eskuraketa lortzen du gailuko deialdi bakar batekin. Puntu hauek gailutik bitarteko memoria, buffer batetara pasako da, LabVIEWk irakurri baino lehen.
DAQmx Timing VI
VI honek, laginketa maila itxuratu, eskuratu eta sortu beharreko laginketa kopurua eta buffera ere sortu dezake. VI honen izaera edo funtsa, adibide edo ariketan, diseinuan erabiliko den timed motaren programazioa izango da. Aukeran izango diren timing hauek, Laginketa Clocka, Handshaking, Implicit, eta Uhin Itxura erabiliz.
Sarrera analogikoentzat, Laginketa Clock mota aukeratu, DAQmx Timing VI pull-down menuaren bitartez. Mota honek beste aukera hauen aukeraketara eramango duelarik:
· Laginketa modua – Zeregina era jarraian edo puntu finitu batera arte exekutatuko den definituko du.
· Laginketak kanaleko – Laginketa modua era finituan dagoenean, sarrera/irteera laginketa kopurua zehaztuko du. Balio honek bitarteko buffer memoriaren tamaina zehaztuko du, gordeko diren datu kopurua mugatuko da, DAQ gailutik LabVIEWra bidaliak izan baino lehen.
· Maila – Laginketa maila zehaztuko du, baina laginketa kanaleko eta segundoko definituz. Kanpo iturri bat erabiltzen bada laginketa clockerako, zehaztu sarrera hau maila horrek eman ahal izango duen maila maximorako.
· Iturria – Laginketa clockaren iturri terminala zehazten du. Sarrera hau konektatu gabe utziz, gailuko clocka erabiliz.
· Ertz aktiboa – Aukera honek adieraziko du zein izango den laginketa eta neurketa hasieraziko duen pultsua.
· Sarrera Zeregin/kanala – Zereginari izena eman edo kanalen zerrenda birtual bat sortzen du eragiketak izendatzeko. Kanal zerrenda bat sortuz, NI-DAQmx-ri zeregin bat atxikitzen dio automatikoki.
DAQmx Timing VI baten Handshaking instance erabiliz, hartu
beharreko lagin edo seinaleen sorketa lagin kopurua definitzeko erabiliko da
digital Handshakinga erabiliz, gailu
eta gailuko periferikoaren artean.
Implicit kasuan DAQmx Timing VIa, eskuratu beharreko lagin kopurua edota seinalea sortzeko erabiliko den lagin kopurua definituko du, baina ez horretarako erabiliko den denbora balioa. Beraz eginkizun honek, erabilgarritasun handiagoak izango ditu erabiltzen diren eragiketa edo funtzioak, ez dutenean lagin denborarik behar. Hala, buffer frekuentzi neurketak, buffer periodo neurketak edo pultsu trenen sorkuntza zereginetarako.
Uhin Itxuran, DAQmx Timing VI bidez dt osagaiak zehaztuko du lagin erlojuaren maila. dt-k laginen arteko denbora zehaztuko du. Laginketa modu finitua bada, grafikan sortuko diren lagin kopurua emango du, baina irteerarik ez badu konektatuta DAQmx Write VIra laginak sortzeko. Honi buruz informazio gehiago 6. gaian, Irteera Analogikoen atalean.
BUFFER BITARTEZKO ESKURAKETA
DIAGRAMA
Hurrengo fluxu diagraman, buffer bitartezko eskuraketa bat erakusten da. Mota honetako eskuraketan, zehaztutako puntu kantitate batzuk hartzen ditu. DAQ Timing VIaren bitartez, eskuraketaren timinga eta buffera itxuratu egiten ditu. DAQmx Start Task VI, aldiz eskuraketa hasteko erabiliko da. Beste VI batzuen artean DAQ Read VIa aurkitzen da, kanal guztien laginak prest egon arte itxarongo duena datuak bufferera mugitu baino lehen. DAQmx Stop Task VIak aldiz, zeregina geldituko du eta laginketa hori egiteko erabilitako elementu guztiak askatuko ditu. Bestalde Error Handler VIak, prozesuan gerta daitekeen edozein akats edo arazoz ohartaraziko du.
BUFFER ESKURAKETA ADIBIDEA
Hurrengo fluxu diagraman ariketa estandar baten adibidea erakusten da, Buffered Acquisition VI alegia. Lehen azaldutako VI ezberdinen bitartez, adibide ariketa sortzen da.
· DAQmx Start Task VI – honen bitartez, eskuraketa hasiko da.
· DAQmx Read VI – prozesua etengo du buffer-a beteta egon arte. Beteta dagoenean, VI-ak datu guztiak itzuli egingo ditu bufferetik.
· DAQmx Stop Task VI – eskuraketa geldituko du eta Simple Error Handlera gertatutako edozein akatsetaz ohartuko da.
Erabiltzen diren kanal/datu erlazio kopurua dela eta DAQmx Read VI kableatu gabe agertzen da, inolako zalantza ager ez dadin. NI-DAQmx automatikoki timing-aren bitartez lagin kopuru finitu bat eskuratuko ditu. Ez hori bakarrik, kanal bakoitzak hartuko dituen laginketa kopurua ere automatikoki NI-DAQmx-ek administratuko ditu. DAQmx Read VI bi dimentsiotako array bat itzuliko du zuzenean konektatua izan daitekena grafiko batera. Array horrek ez du timing informaziorik izango, bai ostera uhin itxurako datuak.
Errore edo akats Clustera VI batetik bestera konektatu behar da beti. Era honetan VIaren baten akats bat gertatzen bada, prozesua gelditu eta ohar bat agertuko da.
BAINA ZER GERTATZEN ARI DA BENETAN?
Jakina da, seinale analogiko bat eskuratzen denean, seinale honek, instrumentazioko anplifikadoretik pasa behar du ADC bihurgailura pasatu baino lehen. Baina seinalea hortik pasa ondoren, FIFO (First In First Out) buffer batetik joango da eta datuak gorde egingo ditu gailuak ordenagailura transferitzeko aukera izan arte. Jarraian datuak bidali egiten dira gailutik PCra DMA (Direct Memory Access edo sarbide zuzeneko memoria) edo IRQ (Interrupt Request edo eten eskaera) bidez.
PCko buffera, memoria zati bat izango da eskuratze gailutik datorren datuak gordetzen dituena. Sarrerako laginketa kopurua kanaleko DAQmx Timing VIak emango du, PCko buffera itxuratuko du datuak gordetzen joango den DAQmx Read VIak datuak berreskuratzeko prest egon arte.
BUFFER TRANSFERENTZIA
Datuen transferentzia PC buffer eta LabVIEW buffera artean garrantzitsua izango da sarrera analogikoko eragiketetan. Lagin kopurua kanaleko sarreran DAQmx Timing VIak esango du PCko bufferean kokatzeko. Buffer horren bitartezko eskuraketa egiterakoan DAQmx Start task VI hasiko da. Eskuraketa hasten denetik aurrera PCko buffera informazioz betetzen hasten da, hau guztiz beterik gelditzen den arte. Buffera betetzen den abiadura, DAQmx Timing VIaren bitartez ezarriko delarik. Buffera beteta dagoenean DAQmx Read VI datuak transferituko ditu PCko bufferetik LabVIEWko bufferera. Era honetan, DAQmx Read VI, bufferaren informazio guztia batera irauliko du buffer bitartezko eskuraketan.
3.4 Ariketa: BUFFER FINITUKO ESKURAKETA
3.5 Ariketa: BUFFER BITARTEZKO ESKURAKETA, UHIN ITXURAKO ANALISIAS
G.
ESKURAKETA JARRAIKO DIAGRAMA
Eskuraketa finitu baten eta era jarraian definitutako eskuraketan hartzen diren lagin kopuruetan datza. Era finituan datu kopurua finkoa da, aldiz, modu jarraiko eskuraketan, datuak modu zehazgabe baten hartzen dira.
Eskuraketa jarraiaren fluxu diagraman parte hartzen duten lehenengo hiru VIak modu finituarenak dira, prozesu berdina jarraituz, DAQmx Timing, Star Task eta Read VI, alegia. Behin hiru VI hauek programatuak izan direnean, era jarraian irakurtzeko, DAQmx Read VIa loop edo begizta moduan konektatu beharko da. Begizta honen bitartez, eskuratzea gertatuko da, akats edo gelditzeko seinalea ematen zaion arte. Beraz, Read VI honek lan egiten duen bitartean, datuak itzuli egingo ditu, eta behin amaituta, ekintza guztiak amaitu egiten dira.
BUFFER BITARTEZKO ESKURAKETA
JARRAIA
Eskuraketa jarraia eta finituaren arteko antzekotasun handia dela-eta pausurik gehienak errepikatuak izango dira:
· DAQmx Read VI – begizta baten barnean egongo da.
· Kanaleko laginketa kopurua, erabiltzaileak definitu egingo ditu. Era finituan, NI-DAQmx-k automatikoki irakurriko ditu, baina aldiz, konektatu gabe uzten diren kanalak, ahal dituen lagin kopuru maximoa irakurriko ditu.
Esan bezala, prozesua hasteko, DAQmx Timing VIaren bitartez laginketa kopurua kanaleko eta eskuratze abiadura definituko da. Hortaz gainera, DAQmx Start VI erabiliko da ere prozesua hasteko eta DAQmx Read VI zein begizta baten barnean konektatuko den datuak irakurri ditzan.
Bufferaren gainkarga saihesteko, hartuko den datu kopurua kanaleko ezin izango da buffer tamainarena baino handiagoa izan. Gomendagarria izanik, lagin kopurua bufferaren ½ edo ¼-eko kapazitatera murriztea eskuraketa jarraietarako. Zeren LabVIEWk era jarrai baten bidaltzen ditu datuak bufferera, eta garrantzitsua izango da orduan bufferean sartzen diren datuak, kanporatzeko ahalmena ez duela murriztuko, eta beraz, datuz husteko denbora izango duela.
Kanal batek onartu ditzakeen lagin kopuruak igotzeko joera azaltzen baldin badu, sistemak overflow arazo bat azaltzeko posibilitate ugari izango ditu, errore mezu baten bitartez ohartaraziko dena. DAQmx Read VIko begizta edozein momentutan gelditu edo moztu ahal izango da, horretarako botoi bat konektatuz, era honetan sistema geldituz. Behin sistema gelditzen denean, elementu guztiak “garbitu” egiten dira automatikoki.
BUFFER ZIRKULARRA
Modu jarraiko eskuraketak zailak egiten dira, buffer bakar bat erabiliko delako eta gainera eskuratzen den datu kantitatea bufferaren ahalmenaz kanpo gelditzen delako. Horregatik posible den baino datu gehiago era seguruago baten eskuratzeko, buffer zirkular bat erabiliko da.
Buffer zirkularrean sistema gelditu ordez berriro ere datuak hartzen hasi edo jarraitzen du. Sistemaren izaera berdina izango da, DAQ Timing VIaren bitartez, datu kopurua kanaleko definituko da eta DAQmx Start VIak, eskuraketa hasiko du begiztaren barnean izanik.
Demagun datu eskuraketen abiadura,bufferaren ahalmenaren ½ edo ¼ ingurukoa dela. Gauza da, kanaleko lagin kopurua PCko bufferean irakurtzeko laginketa kopurua kanalekoaren berdinak direnean, DAQmx Read VIa PCko bufferean gordetako datu horiek, LabVIEWko bufferera mugituko ditu. DAQmx Read VIa beraz, flag edo bandera bat agertaraziko du irakurketa gelditu den puntua adieraziko duena, eta era honetan datuen irakurketak utzitako tokian jarraituko du.
Bitartean, PC zein LabVIEWko bufferak datuen eskuraketa eta transferentzi egiten jarraitzen dute. Datuen eskuratze prozesuaren amaitzearen marka edo pultsua ematen denean, PCko buffera gelditu egingo da, baina markaz geroztiko informazio zati bat gordeta geldituko zaio.
Era honetan gordetako datu kopuru hori, laginketa kopuru maximoa kanaleko eta prozesuaren gelditze markarena izango da alegia. Hala ere gertakari hau akats bihurtu daiteke, zeren bufferak informazio gehiegi hartzen badu eta ondorioz gelditze marka nahiko azkarra ez bada, datu baliagarriak ezabatu ditzazke.
OVERWRITE ERROREA
Buffer zirkular batekin lanean aritzean, beraz, izango den akatsik normalena, overwrite errorea izango da. Overwrite edo datu estaltze errorea, prozesuaren gelditze marka azkarregi batek, kanaleko lagin kopuruak eskuratutako datuak estaltzen dituenean ematen da. Hau da, gelditzeko denbora izan ez duen seinale batek bere aurrekoa hartu eta bere gainean idatzi balu bezala. Arazoa beraz, LabVIEWko bufferak PCko bufferaren datuak nahiko azkar irakurtzen ez dituenean ematen da. Badaude, hala ere arazoa konpontzeko zenbait era, baina bakoitza egoera ezberdinetarako izango dira.
· DAQmx Timing VIaren bitartez, kanaleko lagin kopuruaren balioa handitu daiteke bufferaren tamaina handitzeko. Bufferaren tamaina handitzeak, hala ere, ez du arazoa konponduko datuak nahiko azkar bidali edo kanporatzen ez badira. Beraz, gogoratu kanaleko laginketa kopurua ½ eta ¼ bufferaren tamainara mugatu, arazorik gerta ez daiten.
· Kanaleko lagin kopuruaren erritmoaren balio murriztuz, DAQmx Timing VIaren bitartez. Honela, buffer-ak irakurri beharreko datu kopurua txikiagoa izango da eta prozesua aurrera eraman ahal izango da, datuak egoki kanporatuz eta irakurriz.
· Begiztan egon daitezkeen gehiegizko analisi prozesua ezabatu prozesua arintzeko.
OVERFLOW ERROREA
Agertu daitekeen beste arazo bat overflowa izan daiteke zein FIFO motatako bufferetan ematen den. Overflow errorea, ez da aurreko overwrite errorea bezain arrunta, eta ondorioz konpontzeko zailagoa izango da. Arazoa gertatzen da FIFO bufferak datuak nahiko bizkor kanporatzen ez dituenean. Ondorioz, FIFOak DMA edo IRQaren esku uzten du datuen transferentzia, FIFOtik PCko bufferera datuak pasatzeko. Beraz, FIFOak ez badu bizkor lan egiten konponbide gutxi batzuk baino ez daude:
· Ziurtatu DMA erabiltzen gaudela datuen transferentzia egiteko, DMA eskuragarri edo erabiltzeko prest badago behintzat. DMAa IRQa baino bizkorragoa da eta eragiketak hobeto maneiatuko ditu.
· DAQmx Timing VIaren bitartez, kanaleko lagin kopuruaren balioa murriztuz.
· FIFOa aldatu eta kapazitate handiagoko bat jarri, nahiz eta arazoa luzatu baino ez duen egingo.
· Erabili bus kable handiago bat, datuen transferentzia bizkorragoa izateko.
3.6 Ariketa: BUFFER BITARTEZKO ESKURAKETA JARRAIA VI
3.7 Ariketa: ARTXIBO ANITZETAN DATUAK GORDETZEN
3.8 Ariketa: ERTZ DIGITALEAN, SARRERAKO DESARRA ANALOGIKOA
3.9 Ariketa: NI–DAQmx KODE SORKUNTZA