![]() |
|
|
|
Polling
je jedan od metoda čitanja ili upisivanja podataka u akvizicioni
sistem. Vreme između dva prozvana čitanja se raspoređuje operativnim
sistemom na pr. Windows-ima.
Zbog toga ovo vreme nije deterministički, jednoznačno određeno, nego
zavisi od mnogo faktora u sistemu, kao što su brzina računara,
operativni sistem, programski jezik i optimizovanost vašeg koda. Rad u
pozadini, kao što su DMA transver podataka ili interaptom generisane
aktivnosti, je zadatak koji se obavlja pod kontrolom akvizicionog
hardvera, koji obaveštava aplikaciju kada je operacija kompletirana.
Vreme između dva čitanja koja se obavljaju u pozadini, kontrolisano je akvizicionim hardverom i nezavisno je od Windows tajminga. Tokom prenosa podataka koji se u pozadini
obavlja, akvizicioni hardver prekida CPU, a drajveri opslužuju te
prekide i prebacuju podatke u memorijski prostor aplikacije. Kada je
zahtevana operacija u pozadini završena, drajver prosleđuje Windows poruku ili događaj aplikaciji, koja može da odgovori na
taj događaj i da manipuliše podacima. |
|
|
|
Greška kvantizacije je razlika između analognog signala i najbliže
raspoložive digitalne vrednosti za svaki uzorak iz A/D konvertora. Greška
kvantizacije takođe unosi šum u semplovani signal koji nazivamo šumom
kvantizacije. Što je veća rezolucija A/D konvertora, to je manja greška
i šum kvantizacije. Relacija između rezolucije (u bitovima) i šuma
kvantizacije, za idealni A/D konvertor, može da se iskaže kao odnos
signala prema šumu (S/N) = -20*log (1/2^n),
gde n predstavlja rezoluciju
A/D konvertora izraženu u bitovima. |
|
|
|
Termoparovi su
najčešće primenjeni senzori za merenje temperature. Robusni i
jeftini, oni su idealni u aplikacijama u industriji i u nauci. Sastoje
se od dve žice od različitih metala, spojene na jednom kraju. Termopar
generiše napon, koji zavisi od temperature spoja metala (Seebeck-ov
efekat). Za različite temperaturne opsege, na raspolaganju su različite
vrste termoparova. Međutim, problem sa termoparovima je što napon koji
oni generišu nije linearan u odnosu na temperaturu. To je razlog što
se merenja pomoću termoparova moraju linearizovati. |
|
|
|
Uveliko su na raspolaganju gotovi aplikativni paketi koji obavljaju specifične zadatke, kao što je simulacija osciloskopa, strip-chart registracija i sl. Takođe, na raspolaganju su i brojni softverski paketi koji omogućavaju da dizajnirate sopstvenu aplikaciju uz pomoć grafičkih alata. Većina tih paketa, kao što su na primer Visual Designer ili LabVIEW, omogućavaju da lako dizajnirate korisnički interfejs. Mnogo su fleksibilniji nego namenski paketi koji obavljaju specifične zadatke, jer vam omogućavaju da dizajnirate široku lepezu projekata za vrlo kratko vreme. Ako ste iskusan programer, postoje određene prednosti za pisanje sopstvenog koda koji treba da upravlja vašom aplikacijom. Takav pristup čini vaš program manjim i često fleksibilnijim, pošto sadrži samo one funkcije koje su neophodne za rad vaše aplikacije. Brzina izvršenja koda je takođe bolja, što je važna karakteristika, ako je rad u realnom vremenu važan ili kritičan. Međutim, ako je vaša prvenstvena briga cena, nešto veća investicija u grafičke softverske alate pokazaće se isplativom, gledano dugoročno. Bez obzira na vaše programersko iskustvo, primena vizuelnih softverskih paketa, kao što na primer CONTROLpro, Visual Designer ili LabVIEW, dramatično će redukovati vreme razvoja i praktično eliminisati ponekad dug i zamoran proces debagiranja. Pored toga, ti paketi omogućavaju da mnogo lakše dokumentujete, održavate i modifikujete vaš sistem. |
|
|
|
Rad u realnom vremenu je relativan
pojam i zavisi od same aplikacije i korisničkih zahteva. U nekim
aplikacijama, korisnik smatra da je vreme odziva od 100 ms realno
vreme, dok u drugim primenama vreme odziva od nekoliko sekundi
zadovoljava zahteve rada u realnom vremenu. Uopšteno, Windows
nije baš odgovarajuće okruženje za determinističke aplikacije
u realnom vremenu, obzirom da Windondows
okruženje nema sposobnost determinističkog tajminga, odnosno
striktno i precizno kontrolisanog odmeravanja realnog vremena,
nezavisno od rada i aktivnosti operativnog sistema. Windondows
je operativni sistem opšte
namene, u kojem se mnogi zadaci i aktivnosti odvijaju u pozadini,
bez neposredne kontrole i znanja korisnika šta se događa i na
koji način se određena transakcija izvodi. Ove aktivnosti
uzimaju određen broj procesorskih ciklusa centralnog procesora
(CPU) i generišu zahteve za prekid, tako da na taj način dele
resurse računara sa korisničkom aplikacijom. |
|
|
|
Na ovo pitanje se najbolje može odgovoriti ako se uzmu u obzir specifične okolnosti, kao što su aktuelni zahtevi, budući ciljevi, programersko iskustvo i kvalitet podloga datog projekta. Aplikacija u akviziciji podataka obično određuje tip hardver, koji utiče na izbor softvera a ovaj na izbor operativnog sistema. Pre svega traba da se utvrdi da li su izabrani hardver i programsko okruženje potpuno kompatibilni i da li mogu da daju potrebne rezultate. Namenski paketi za akviziciju podataka, merenje i procesno upravljanje kao što su LabVIEW, TestPoint, Visual Designer i Labtech CONTROLpro predstavljaju “zatvorene arhitekture”. Istovremeno, ti paketi imaju najjednostavniji metod izrade softvera i gotova rešenja za komuniciranje sa hardverom, logovanje podataka, grafiku ili analizu. Međutim, oni su često hardverski specifični i nisu lako portabilni sa jednog operativnog sistema na drugi. S druge strane, paketi koji su zasnovani na nekom programskom jeziku su jednostavniji za upotrebu, sveobuhvatniji su i snažniji. Primetili smo poslednjih nekoliko godina, da većina korisnika sistema za akviziciju podataka preferira “otvorenu arhitekturu”, alate bazirane na Windows 95-2000/NT okruženju kao što su Visual BASIC ili Visual C/C++ koji postaju glavna okruženja za opštu akviziciju podataka, merenje i procesno upravljanje. Visual BASIC je jezik koji mnogi naši korisnici veoma cene, obzirom da je to jeftino okruženje, relativno lako za učenje, a ipak dovoljno snažno da zadovolji većinu zahteva u akvizicionim poslovima. Visual
C/C++ je mnogo napredniji jezik sa moćnim razvojnim alatima,
praktično neograničenih mogućnosti (svi softverski drajveri koji rade
pod Windows okruženjem su razvijeni na Visual C/C++ jeziku). Drugi popularni jezici visokog nivoa su Delphi
i C++
Builder. ED svoje aplikacije uglavnom bazira na C-u ali
naš drugi ogranak ima razvijenu objektno - orjentisano SCADA okruženje
u Delphi-u. Ovakva objektno
definisana SCADA na PC kontrolerima, daje performase koje sa PLC
sistemima uopšte nisu moguća. |
|
|
|
Softverska industrija nas brzo pomera u smeru arhitekture bazirane na instant komponentama. ActiveX je skup pravila koja nam objašnjavaju kako različite aplikacije ili softverske komponente treba da međudeluju i dele informacije u Windows okruženju. ActiveX kontrole (poznate kao OLE ili OCX kontrole) su elementi korisničkog interfejsa, kreirani standardima za razmenu informacija i funkcionalnu modularnost u aplikacijama baziranim na Windows okruženju. ActiveX kontrole su bazirane na Component Object Model (COM) tehnici, softverskoj arhitekturi koja omogućava da se aplikacije prave primenom softverskih komponenti. Component Object Model tehnika ima mnoge prednosti, kao što su: laka integracija, skalabilnost (scalability), simultanost, nezavisnost od programskog jezika, kompatibilnost između različitih platformi, kao i sistem help-a koji je zavisan od konteksta. Praktična korist ActiveX principa je primena jedinstvenog modela, koji se zasnova na prostim objektima, i koji omogućavaju programeru da kreira softverske kompomente koje mogu međusobno da se razmenjuju, bez potrebe da se modifikuje celokupna aplikacija. Ova zamenjivost može da redukuje cenu razvoja i produži vek aplikacije. Na primer, aplikacija koja je originalno napisana za upotrebu 12-bitne, analogne I/O akvizicione kartice, može da se koristi za 16-bitnu analognu karticu, jednostavnom zamenom ActiveX kontrole koja opisuje karakteristike i funkcionalnost modula za akviziciju podataka. ActiveX paket može da opravda i zaštiti ulaganja jer uz pomoć njega aplikacije su prenosive, a hardverska unapređenja su jednostavnija. ED za svoje aplikacije koristi a i vama preporučuje ComponentsWorks 32-bitni ActiveX od National Instruments-a. |
|
|
|
DMA
ili direktni memorijski pristup (Direct
Memory Access), je tehnika koja se koristi za povećanje propusne moći
sistema (throughput) u
ISA računarima. DMA daje mogućnost za smeštanje podataka
merenja direktno u memoriju, bez intervencije CPU-a, pomoću tzv.
“krađe ciklusa” procesora (cycle
stealing).
Dok je DMA u toku, akvizicioni modul komunicira direktno sa basom
podataka, koristeći specijalni set hardverskih handshake signala.
DMA
nije neophodan ako aplikacija koristi sporo uzorkovanje i/ili
upravljanje. To je obično slučaj kod merenja temperature ili
naprezanja, pošto se ti fizički parametri obično ne menjaju
brzo. Upotreba DMA u vašoj aplikaciji može biti teška, ako
nikada ranije niste programirali ovaj mod rada, pogotovo ako pišete
svoj sopstveni softver. Međutim, ako koristite softverske pakete
za akviziciju podataka koji podržavaju DMA, tada se upotreba DMA
preporučuje a i lakše se implementira u vaš aplikativni
softver. |
|
|
|
Burst
Mode (u daljem
tekstu Barst) je tehnika
semplovanja koja koristi veoma brzo skeniranje selektovanih kanala sa
specificiranim intervalom. Kada koristite
Windows okruženje, ovaj način rada je često neophodan, posebno kada se
zahtevaju brzine semplovanja od 100.000 ili više uzoraka u sekundi, ili ako
se zahteva procesiranje podataka. Brzina semplovanja u barst modu je precizna, pošto je barst (grupa određenog broja podataka, uzeta u jednom prolazu) uvek
sinhron. |
|
|
|
Sve
ED-ove kartice za akviziciju podataka ili analogni i digitalni
moduli za PC kontrolere se setuju u I/O prostoru ili memorijskoj
mapi. Ove principe adresiranja koriste svi proizvođači DAQ
sistema. |
|
|
|
Da bi svi ED-ovi memorijski mapirani sistemi za akviziciju podataka ispravno radili, potrebno je
da u memorijskom
menadžeru (EMM386) zabranite korišćenje dela memorije odnosno
da ovaj memorijski prostor rezervišete za sistem za akviziciju
koji želite da instalirate u vaš PC ili u industrijski PC
kontroler. To se radi tako što se u
fajlu CONFIG.SYS, memorijskom menadžeru pomoću njegove X opcije,
"kaže"
koji deo memorije ne sme da koristi. Znači, prve dve linije u
fajlu CONFIG.SYS treba da glase: |
|
|
|
Digitalni voltmetar koristi integrirajući ili
osrednjavajući metod konverzije, dok većina A/D modula uzima
jedan uzorak u jednom trenutku merenja. Digitalni voltmetar
osrednjava naponska očitavanja tokom određenog vremenskog
intervala. Pošto se veći deo šuma osrednji tokom vremena,
osrednjavanje čini DMM vrlo imunim na visokofrekventni šum. Većina
A/D ploča uzima naponsko očitavanje u trenutku kada je A/D modul
trigerovan. Ova dva metoda mogu dati isto naponsko očitavanje,
ali i vrlo različito, zavisno od trenutka kada je A/D modul
trigerovan i nivoa šuma koji je u tom trenutku prisutan. |
|
|
|
Jedan
od mogućih problema je da bazna adresa modula nije korektna.
Treba proveriti da li su svi prekidači na modulu postavljeni
pravilno i da li program prijavljuje istu baznu adresu. Ako je
bazna adresa postavljena korektno, treba proveriti da ni jedan
drugi modul ili uređaj u računaru ne koristi bilo koju I/O
lokaciju koja počinje sa specificiranom baznom adresom. |
|
|
|
Trebaju! Vaša 16-bitna Windows 3.1 aplikacija za akviziciju podataka uspešno će raditi u Windows 95, ali ne i u Windows NT okruženju, pošto Windows NT ne dopušta direktan pristup hardverskim I/O portovima ako takve koristite. Da bi radila pod Windows NT-om, aplikacija zahteva drajvere u kernel modu; vaša aplikacija mora da bude modifikovana da bi komunicirala sa takvim drajverima. Ako želite da modifikujete 16-bitnu aplikaciju u Windows 95 ili NT okruženje i da koristite 32-bitne kompajlere, kao što su Visual C, Visual C++ ili Visal Basic 5.0, potrebni su vam novi drajveri sa 32-bitnim DLL-ovima. Ovo je potrebno zbog toga što 32-bitni kompajleri nisu kompatibilni unazad, sa 16-bitnim kodom, i ne mogu praviti pozive ka 16-bitnim DLL-ovima. Za ovu svrhu preporučujemo ED-Link, 32-bitni drajver za popularne jezike. |
|
|
|
Većina
proizvođača opreme za akviziciju podataka podržava i Windows
95/98 i NT a
očekujemo i Windows 2000.
Međutim, na raspolaganju je mnogo više softverskih drajvera za Windows 95
nego za
NT. Iz iskustva znamo da je Windows NT
mnogo stabilnije okruženje nego Windows
95, ali ne mora da znači da će vaša aplikacija akvizicije
podataka bolje raditi pod NT-om.
Ako ste "stari" korisnik i ako ste vašu aplikaciju započeli
od DOS-a ili Windows 3.1
okruženja, ipak je nešto bolje da pređete na Windows 95/98,
pošto bi prelazak na NT zahtevao više modifikacija u vašoj aplikaciji. |
|
|
|
Pojam
“alias“
odnosi se na lažnu niskofrekventnu komponentu, koja se pojavljuje
u semplovanim podacima koji su prikupljeni sa presporom brzinom
semplovanja. Aliasing
greška se javlja kada su neke frekventne komponente signala više
od Nyquist-ove
frekvencije (Nyquist-ova
teorija ustanovljava da frekvencija semplovanja mora biti bar dva
puta viša od najviše frekventne komponente signala), odnosno od
jedne polovine brzine semplovanja. Na primer, ako prikupljate
podatke sa osam kanala brzinom od 100 Ksempla/sekundi, brzina
uzorkovanja za jedan kanal iznosi 100 Ksempla/sekundi / 8, a to je
12.5 Ksempla/sekundi po kanalu. U tom slučaju, bilo koja
komponenta signala sa frekvencijom iznad 6.25 KHz, izazvaće aliasing
grešku. Aliasing greška
se teško detektuje i najčešće ju je nemoguće otkloniti
softverskim putem. |
|
|
|
Važno
u primeni sistemima za akviziciju podataka je da korisnik uoči
razliku između maksimalne brzine semplovanja i propusnog opsega.
Maksimalna brzina semplovanja predstavlja “neto“
prousnu moć A/D konvertora, nakon što je uzet u obzir svaki
tajming procesa akvizicije podataka. Brzina sistema se može izračunati
ako se saberu vremena uključivanja multipleksera, vreme sample-and-hold
kola, vreme A/D konverzije, bilo koji digitalni handshaking (ciklus zahteva za DMA i sl.), kao i sva relevantna
vremena izvršenja softvera. Ta vremena se sabiraju i prave
"bruto" propusnu moć sistema. |
|
|
|
Common Mode napon (Common Mode Voltage ili CMV) je napon koji se pojavljuje između ulaznih priključaka PC akvizicione kartice i njenog uzemljenja. On predstavlja napon koji se javlja istovremeno na oba ulazna terminala A/D modula. CMV ograničava svaki računarski baziran sistem za akviziciju podataka u pogledu ukupnog ulaznog napona koji može da se meri. Većina A/D modula ne može da meri signale iznad ±10 do ±13 V, jer se ulazni pojačavači na akvizicionom modulu obično napajaju naponom od ±12 do ±15 V. Bilo koji merni signal koji se nalazi unutar dva volta u odnosu na napon napajanja, dovešće do zasićenja pojačavača i prouzrokovaće znatne greške u merenju. To znači da modul koja se napaja sa ±12 V i koja ima maksimalni signalni ulaz od ±10 V, u single- ended ulaznoj konfiguraciji, u kojoj je signal referisan u odnosu na masu, ne sme imati na ulazu ukupni signal veći od ±10 V. |
|
|
|
Kada je akviziciona kartica u konfliktu sa drugim karticama u PC-u (kartice za periferale i sl.), tipični simptomi su blokiranje PC-a, greške inicijalizacije, a ponekad i pogrešni rezultati. Svaka kartica u PC-u mora da ima jedinstvenu baznu adresu, lični IRQ i DMA kanal. Plug&Play BIOS Windows-a 95 je dizajniran da alocira i sortira te resurse automatski, eliminišući na taj način moguće konflikte. Međutim Plug&Play procedura ponekad ne uspeva da detektuje Plug-In module – posebno ISA-bas module, tako da se ponekad mogu javiti konflikti. Najbrži način da se ustanovi da li je vaša akviziciona kartica u konfliktu sa nekim drugim Plug-In modulom u PC-u, je da privremeno izvadite module (npr. mrežnu, zvučnu ili modemsku karticu) jedan po jedan, sve dok se konflikt ne izgubi odnosno sistem ne proradi. Tada, koristeći device manager, možete pregledati i dokumentovati resurse koje koristi svaki od modula i utvrditi koje od ploča se pozivaju na iste resurse. Da biste ispravili konflikt, moraćete modifikovati adresu na jednom modula od dva koja su u konfliktu. |
|
|
|
Problem ne potiče od konfiguracije ili konflikata u baznoj adresi, memoriji, IRQ, ili DMA; on je u izvornom kodu vaše aplikacije. Ponekad pojedini delovi koda mogu proizvesti različite efekte na računarima koji rade različitim brzinama – posebno ako taj deo koda komunicira sa periferijama i koristi metod polling-a. Pošto je polling zavisan od brzine CPU-a, greška se može javiti ako je računar brži od periferija sa kojima komunicira. Bilo bi dobro da se prilikom programiranja aplikacije uvek proveri handshaking softvera i hardvera. Ovo može da uspor programera ali će napraviti aplikaciju robusnijom i lakše nadgradivom. |
|
|
|
|
|
Electronic Design Makenzijeva b.b.- Pejton, Beograd |
Tel:
011/
308-50-30 Fax: 011/ 308-50-31 |
email:
edesign@eunet.yu http://www.ed.co.yu |
|
|