11. Sincronizare

Această lecție descrie tranziții de stare explicite, sincronizarea unui singur dispozitiv și sincronizarea mai multor dispozitive.

Cuprins:

11.1 Tranziții de stare explicite

11.2. Sincronizarea dispozitivului unic

11.3 Sincronizarea dispozitivelor multiple

11.1 TRANZIȚII DE STARE EXPLICITE

NI-DAQmx folosește un model de stare pentru a controla alocarea resurselor și fluxul de execuție a sarcinilor. Acest model de stare se numește modelul de stare a sarcinii. Modelul de stare a sarcinii este foarte flexibil și puteți alege să interacționați cu cât de puțin sau cu cât mai mult din modelul de stare a sarcinii cât necesită aplicația dvs. DAQmx Start VI, DAQmx Stop VI și DAQmx Control Task VI sunt utilizate pentru tranziția sarcinii de la o stare la alta. Puteți face tranziția în mod explicit între fiecare activitate utilizând DAQmx Control Task VI sau puteți permite NI-DAQmx să efectueze tranzițiile de stare implicit. Modelul de stare a sarcinii este format din cinci stări - Unverified, Verified, Reserved, Committed, și Running.

Neverificat Când se creează sau se încarcă o sarcină, starea implicită este neverificată. În această stare, configurați sincronizarea, declanșarea și proprietățile canalului pentru sarcină.

Verificat - Sincronizarea, declanșarea și proprietățile canalului pe care le setați sunt verificate pentru corectitudinea lor atunci când sarcina trece de la starea neverificată la starea verificată. Dacă toate setările sunt valide, sarcina se va verifica cu succes și va trece la starea verificată. Dacă oricare dintre setări nu reușește să verifice, sarcina va rămâne în starea neconfirmată. Pentru a efectua în mod explicit această tranziție, apelați DAQmx Control Task VI cu intrarea Action setată la Verify.

RezervatResursele pe care o sarcină le folosește pentru a efectua operația specificată sunt achiziționate exclusiv atunci când sarcina trece de la starea verificată la starea rezervată. Exemple de resurse care trebuie achiziționate includ ceasuri sau canale pe un dispozitiv sau memorie tampon în computer. Resursele trebuie rezervate pentru a împiedica utilizarea lor de către alte sarcini și, astfel, prima sarcină să eșueze sau să întâmpine probleme în timpul funcționării. Dacă sarcina dobândește cu succes toate resursele necesare, sarcina se mută în starea rezervată. În caz contrar, sarcina rămâne în starea verificată. Pentru a efectua în mod explicit această tranziție, apelați DAQmx Control Task VI cu intrarea Action setată la Reserve.

AngajatDupă ce au fost achiziționate resursele necesare, setările pentru aceste resurse trebuie apoi programate. Programarea cu succes a acestor setări determină trecerea sarcinii la starea angajată. Un exemplu de setare este dimensiunea memoriei tampon din computer. Dacă tranziția de stare eșuează, sarcina este întreruptă și va reveni la starea verificată. Pentru a efectua în mod explicit această tranziție, apelați DAQmx Control Task VI cu intrarea Action setată la Commit.

Când resursele pentru o anumită operațiune sunt eliberate, sarcina trece de la starea de angajare la starea verificată. Pentru a efectua în mod explicit această tranziție, apelați DAQmx Control Task VI cu intrarea Action setată la Unreserve. Când sarcina își eliberează cu succes toate resursele, va trece înapoi la starea verificată.

Rulare — Pentru a trece de la starea de angajare la starea de rulare, sarcina trebuie să înceapă efectuarea operației specificate. Apelarea DAQmx Start VI invocă această tranziție. Lansarea unei sarcini nu începe neapărat să achiziționeze eșantioane sau să genereze forme de undă. De exemplu, proprietățile de sincronizare și declanșare ar fi putut fi configurate astfel încât eșantionul să nu fie achiziționat până când nu apelați DAQmx Read VI sau că nu se generează o formă de undă până când nu este activat un declanșator (trigger). Dacă trecerea la starea de rulare eșuează, sarcina este abandonată și revenită la starea verificată.

Pentru a opri sarcina de a efectua operația specificată, apelați DAQmx Stop VI. Aceasta va face tranziția sarcinii de la starea de executare la starea angajată. Dacă această tranziție de oprire eșuează, sarcina este abandonată și revenită la starea verificată.

Următoarea ilustrație rezumă modelul stării sarcinii.

Tranziții de stare explicite

Pentru majoritatea nevoilor de achiziție a datelor, rareori trebuie să interacționați în mod explicit cu Modelul de stare a sarcinii și vă puteți baza pe sarcină pentru a efectua tranziții de stare implicite. Dar, există cazuri în care ar trebui să utilizați tranziții de stare explicite.

Verificare - Dacă utilizatorul aplicației dvs. configurează interactiv o sarcină prin setarea diferitelor proprietăți de canal, sincronizare și declanșare, poate fi benefic să verificați în mod explicit sarcina pentru a informa utilizatorul dacă acesta sau ea au setat o proprietate la o valoare nevalidă.

Rezervare Dacă aplicația dvs. conține mai multe sarcini diferite care utilizează același set de resurse, dacă una dintre aceste sarcini își efectuează în mod repetat operațiunea sau dacă doriți să vă asigurați că niciuna dintre celelalte sarcini nu dobândește aceste resurse după ce sarcina începe secvența de operațiuni, atunci ar trebui să rezervați în mod explicit o sarcină.

Deoarece rezervarea sarcinii dobândește exclusiv resursele utilizate de sarcină, acest lucru va asigura că alte sarcini nu pot dobândi aceste resurse. De exemplu, dacă aplicația dvs. conține două sarcini care efectuează fiecare o succesiune de măsurători și doriți să vă asigurați că fiecare secvență este finalizată înainte ca cealaltă secvență să înceapă, acest comportament poate fi aplicat prin rezervarea explicită a fiecărei sarcini înainte de a începe succesiunea de măsurători.

AngajarePoate fi benefic să angajați în mod explicit o sarcină dacă aplicația dvs. efectuează mai multe măsurători sau generări pornind și oprind în mod repetat o sarcină. Angajarea sarcinii dobândește exclusiv resursele pe care sarcina le folosește și programează unele dintre setările pentru aceste resurse. Prin angajarea explicită a sarcinii, aceste operații sunt efectuate o dată, nu de fiecare dată când sarcina este pornită, ceea ce poate reduce considerabil timpul necesar pentru a porni sarcina. De exemplu, dacă aplicația dvs. efectuează în mod repetat măsurători finite, sincronizate-hardware, timpul necesar pentru a porni sarcina poate fi redus dramatic dacă angajați sarcina în mod explicit înainte de a efectua în mod repetat aceste măsurători. Angajarea în mod explicit a unei sarcini este, de asemenea, necesară dacă trebuie să efectuați operații suplimentare de citire a eșantioanelor achiziționate de sarcină după oprirea sarcinii.

Start - Dacă aplicația dvs. efectuează în mod repetat operații de citire sau scriere, poate fi benefic pentru dvs. să porniți în mod explicit o sarcină. Pornirea sarcinii rezervă resursele pe care sarcina le folosește, programează unele dintre setările pentru aceste resurse și începe să efectueze operațiunea specificată. Aceste operații sunt efectuate o dată, nu de fiecare dată când se efectuează operația de citire sau scriere, pornind în mod explicit sarcina. Acest lucru poate reduce considerabil timpul necesar pentru a efectua fiecare operație de citire sau scriere.

De exemplu, dacă aplicația dvs. efectuează în mod repetat operații de citire un singur eșantion, sincronizate-software, timpul necesar pentru fiecare operație de citire poate fi redus dramatic dacă porniți în mod explicit sarcina înainte de a efectua în mod repetat aceste operații de citire.

Exercițiul 11-1 Tranziții explicite ale stării

Obiectiv: Construirea unui VI pentru tranziția explicită între diferitele stări ale modelului de stare a sarcinii NI-DAQmx.

Există momente în care doriți să faceți tranziția explicită între sarcini în modelul de stare a sarcinilor. În acest exercițiu, explorați cel mai frecvent caz în care acest lucru este necesar - intrarea necesară de către utilizator pentru crearea de canale virtuale.

Diagramă bloc

1. Deschideți un VI gol și construiți următoarea diagramă bloc.

a. Plasați Prompt User for Input Express VI, situat în paleta Functions»Input, pe diagrama bloc. Acest Express VI creează o casetă de dialog pentru a afișa un mesaj personalizat care îi solicită utilizatorului să introducă date. În caseta de dialog Configure Prompt User for Input care se afișează, utilizați setările prezentate în exemplul următor.

b. Plasați DAQmx Create Virtual Channel VI, situat în paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI creează un nou canal virtual. Selectați cazul Analog Input»Voltage din meniul derulant. Faceți clic dreapta pe intrarea physical channel și selectați CreatConstant din meniul de comenzi rapide. Selectați DevX/ai1, unde X corespunde numărului de dispozitiv al dispozitivului dvs. DAQ.

c. Plasați DAQmx Control Task VI, situat în Paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition» DAQmx Advanced Task Options, pe diagrama bloc. Acest VI modifică starea unei sarcini pe baza acțiunii pe care o specificați. Faceți clic dreapta pe intrarea action și selectați Create»Constant din meniul de comenzi rapide. Selectați verify din meniul derulant pentru a trece sarcina în starea Verificat atunci când toate setările de configurare sunt corecte.

d. Plasați Simple Error Handler VI, situat în paleta Functions»All Functions»Time & Dialog, pe diagrama bloc.

2. Rulați VI-ul. Se afișează o casetă de dialog pentru a vă solicita valorile maximă și minimă ale canalului. Introduceți 5 ca valoare maximă și 10 ca valoare minimă. Faceți clic pe butonul OK.

3. Ar trebui să se afișeze o fereastră de dialog pentru a indica faptul că valorile introduse sunt incorecte. Sarcina nu a trecut cu succes la starea Verificată.

4. Rulați VI-ul și introduceți valorile corespunzătoare pentru maxim și minim. Nu ar trebui să se afișeze nicio casetă de dialog de eroare.

5. Completați următoarea diagramă bloc.

6. Conectați unda sinusoidală la analog in 1 pe DAQ Signal Accessory.

7. Rulați VI-ul.

8. Finalizați următorii pași opționali sau închideți VI-ul.

Opțional

9. Folosind tehnicile învățate în curs, modificați diagrama bloc pentru a configura orice setări de sincronizare sau declanșare necesare pentru a reprezenta cu exactitate eșantionul.

10. Rulați VI-ul.

11. Salvați VI-ul ca Explicit Transitions.vi în directorul C:\Exercises\ LabVIEW DAQ.

12. Închideți VI-ul.

Sfârșitul exercițiului 11-1

11.2 SINCRONIZAREA UNUI SINGUR DISPOZITIV

Multe aplicații necesită efectuarea mai multor tipuri de măsurare în același timp. Măsurătorile simultane implică operații diferite care se întâmplă în același timp, cum ar fi achiziționarea de date pe canalele de intrare în timp ce se generează date pe canalele de ieșire. Însă, aceste operații nu sunt neapărat corelate între ele. De exemplu, puteți începe o operațiune de intrare în același timp în care începeți o operațiune de ieșire, dar de acolo, fiecare operațiune poate rula independent la ritmul său propriu.

O măsurare sincronizată este atunci când toate măsurătorile sunt luate toate în același timp. Când sincronizați măsurători, cum ar fi achiziționarea a o sută de măsurători de temperatură și viteză, trebuie să porniți toate măsurătorile în același timp. În plus, măsurătorile trebuie să aibă un ceas comun pentru blocarea datelor.

De exemplu, în aplicațiile cu buclă de control, trebuie să faceți mai multe măsurători la începutul buclei, să efectuați un calcul pe baza noilor măsurători și, în cele din urmă, să scoateți date pe baza acestui calcul. Acest tip de aplicație necesită să porniți toate măsurătorile în același timp și să le sincronizați printr-un semnal de ceas comun. În mod similar, dacă doriți să corelați măsurătorile, cum ar fi trasarea vitezei și temperatura plăcilor de frână în funcție de timp, va trebui mai întâi să sincronizați atât măsurătorile de viteză, cât și de temperatură.

Măsurători începute simultan

Pentru a porni simultan o operație de intrare și ieșire analogică, declanșați operația printr-un declanșator hardware sau un declanșator software. Pentru o operațiune declanșată de hardware, atât operațiunea de intrare analogică cât și de ieșire analogică se declanșează de pe același pin PFI sau RTSI. Consultați secțiunea Semnale de rutare și RTSI pentru mai multe informații despre RTSI.

Următoarea diagramă bloc arată cum să efectuați acest tip de operație declanșată hardware.

Pentru o operație declanșată de software, intrarea analogică este declanșată de pe un pin extern PFI sau RTSI, iar ieșirea analogică se declanșează de pe semnalul intern AI Start Trigger. AI Start Trigger este un semnal intern care este conectat direct atât la subsistemele de intrare analogică, cât și la cele de ieșire analogică. Metoda de declanșare software este puțin mai exactă decât metoda de declanșare hardware, deoarece semnalul extern trebuie să se propage doar printr-o cale principală pentru a ajunge la ambele subsisteme. Dar, această întârziere este aproape întotdeauna nesemnificativă la viteza la care funcționează dispozitivele MIO. Următoarea diagramă ilustrează această tehnică.

Exemplul de mai sus este configurat astfel încât operațiunea de intrare să răspundă la un declanșator digital de pornire pe PFI0, configurat cu DAQmx Trigger VI. Operațiunea de ieșire utilizează DAQmx Trigger VI pentru a declanșa AI Start Trigger intern. Observați că operațiunea de ieșire trebuie pornită înainte de operațiunea de intrare pentru a vă asigura că intrarea nu pornește și trimite declanșatorul AI Start Trigger intern înainte ca operațiunea de ieșire să fie configurată pentru a primi semnalul de pornire.

Un alt exemplu de pornire simultană bazată pe un declanșator software apare atunci când intrarea analogică este pornită cu un apel software în loc de un declanșator hardware. Ieșirea analogică este încă apelată utilizând semnalul intern AI Start Trigger. Următoarea diagramă ilustrează acest exemplu declanșare software completă.

Odată ce operațiile sunt pornite simultan, acestea nu sunt neapărat sincronizate. Operațiunile pot fi setate pentru a achiziționa și genera date independent de altele la rate diferite.

Exercițiul 11-2 Intrare și ieșire analogice pornite simultan

Obiectiv : Utilizarea a două metode diferite pentru a porni simultan o operație de intrare și ieșire analogică.

Prima metodă din acest exercițiu folosește un declanșator hardware pentru a începe operațiunea de intrare analogică și a doua metodă utilizează o apelare software pentru a porni intrarea analogică. Ambele metode folosesc DAQmx Timing VI pentru a declanșa ieșirea analogică a semnalului intern AI Start Trigger.

Metoda I - Declanșat Hardware

Panoul frontal

1. Deschideți un VI gol și construiți următorul panou frontal.

Nu creați comanda signal type pe panoul frontal. Creați acest control din diagrama bloc.

Diagrama bloc

2. Construiți următoarea diagramă bloc.

a. Plasați DAQmx Create Virtual Channel VI, situat în paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI creează un nou canal virtual. Folosiți două dintre aceste VI-uri. Selectați cazul Analog Input» Voltage din meniul derulant pentru prima utilizare a acestui VI. Selectați cazul Analog Ouput »Voltage din meniul derulant pentru a doua utilizare a acestui VI.

b. Plasați DAQmx Timing VI, situat în Paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI stabilește sincronizarea sarcinilor. Folosiți două dintre aceste VI-uri. Pentru ambele utilizări ale acestui VI, setați sampling mode la Continuous.

c. Plasați DAQmx Trigger VI, situat în Paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI setează configurația declanșatorului pentru o sarcină. Pentru sarcina de intrare analogică, setați sursa ca /DevX/PFI0. Pentru sarcina de ieșire analogică, setați sursa ca /DevX/ai/StartTrigger, unde X corespunde numărului de dispozitiv al dispozitivului dvs. DAQ în ambele cazuri.

d. Plasați Basic Function Generator VI, situat în Paleta Functions» All Functions»Waveform»Analog Waveform»Waveform Generation, pe diagrama bloc. Acest VI creează o formă de undă pe baza tipului de semnal. Faceți clic dreapta pe intrarea signal type și selectați Create»Control din meniul de comenzi rapide.

e. Plasați DAQmx Write VI, situat în Paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Selectați cazul Analog»Single Channel»Multiple Samples»Waveform din meniul derulant.

f. Plasați DAQmx Start Task VI, situat în Paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI pornește o sarcină.

g. Plasați DAQmx Read VI, situat în Paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Selectați cazul Analog»Multiple Channels»Multiple Samples» Waveform din meniul derulant.

h. Plasați DAQmx Is Task Done VI, aflat în Paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition» DAQmx Advanced Task Options, pe diagrama bloc. Acest VI interoghează starea sarcinii și returnează dacă se finalizează executarea. Utilizarea acestui VI se face pentru a interoga sarcina de ieșire analogică pentru orice eroare care ar putea apărea.

i. Plasați DAQmx Clear Task VI, aflat în paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI oprește sarcina și anulează toate resursele.

j. Plasați funcția Unbundle by Name, situată în paleta Functions» All Functions»Cluster, pe diagrama bloc.

k. Plasați funcția Or, situată în paleta Functions»Arithmetic & Comparison»Boolean, pe diagrama bloc.

l. Plasați Simple Error Handler VI, situat în paleta Functions»All Functions»Time & Dialog, pe diagrama bloc.

3. Salvați VI-ul ca Simultaneous AI AO Start - HW.vi în directorul C:\ Exercises\LabVIEW DAQ.

4. Pe DAQ Signal Accessory, conectați analog out 0 la analog in 1. Conectați sine wave a generatorului de funcții la analog in 2.

5. Pe panoul frontal, setați comenzile cu următoarele valori.

Input physical channels: DevX/ai1:2, unde X corespunde numărului de dispozitiv al dispozitivului dvs. DAQ
Input rate: 1000
Output physical channels: DevX/ao0, unde X corespunde numărului de dispozitiv al dispozitivului dvs. DAQ
Output rate: 1000
Signal type: Sine Wave
Frequency: 100

6. Rulați VI-ul. Apăsați butonul Digital Trigger de pe DAQ Signal Accessory pentru a începe operațiunile.

7. Opriți VI-ul.

1. Select File»Save As and save the VI from Method I as Simultaneous AI AO Start - SW.vi in the C:\Exercises\LabVIEW DAQ directory.

2. Modify the block diagram as shown in the following figure.

8. Modificați waveform chart pentru a afișa datele într-un mod mai prietenos.

9. Selectați un alt tip de semnal. Rulați VI-ul. Apăsați butonul Digital Trigger de pe DAQ Signal Accessory pentru a începe măsurarea.

10. Opriți VI-ul, dar nu îl închideți.

Metoda II - Declanșat Software

1. Selectați File»Save As și salvați VI-ul de la Metoda I ca Simultaneous AI AO Start - SW.vi în directorul C:\Exercises\LabVIEW DAQ.

2. Modificați diagrama bloc așa cum se arată în figura următoare.

Eliminați DAQmx Trigger VI din sarcina de intrare analogică. În loc să utilizați un declanșator hardware pentru a începe măsurarea intrării, măsurarea începe când faceți clic pe butonul Run. Ieșirea analogică continuă să declanșeze pornirea intrării analogice.

3. Pe DAQ Signal Accessory, conectați analog out 0 la analog in 1. Conectați unda sinusoidală a generatorului de funcții la analog in 2.

4. Pe panoul frontal, setați comenzile cu următoarele valori.

Input physical channels: DevX/ai1:2, unde X corespunde numărului de dispozitiv al dispozitivului dvs. DAQ
Input rate: 1000
Output physical channels: DevX/ao0, unde X corespunde numărului de dispozitiv al dispozitivului dvs. DAQ
Output rate: 1000
Signal type: Sine Wave
Frequency: 100

5. Rulați VI-ul.

6. Opriți VI-ul și selectați un alt tip de semnal. Rulați VI-ul.

7. Opriți VI-ul. Salvați și închideți toate VI-urile.

Sfârșitul exercițiului 11-2

Măsurători sincronizate

Când doriți să sincronizați complet operațiile de intrare și ieșire analogice, astfel încât fiecare eșantion de intrare pe canal să apară în același timp când fiecare eșantion de ieșire pe canal este actualizat, operațiile trebuie să utilizeze o sursă de ceas comună. La fel ca operațiunile de pornire simultane, există două metode principale utilizate pentru metodele de sincronizare.

Prima metodă utilizează AI Start Trigger intern pentru a declanșa ieșirea analogică pentru a porni în același timp cu achiziția de intrare. Spre deosebire de exemplul de pornire simultană, acum setăm ceasurile eșantioanelor de intrare și de ieșire să ruleze la aceeași rată, determinând sincronizarea operațiunilor pe un singur dispozitiv. Ambele ceasuri de intrare și de ieșire sunt derivate din baza de timp integrată a dispozitivului. Deoarece ambele ceasuri sunt derivate din aceeași bază de timp și pornite în același timp, ceasurile eșantioanelor vor fi sincronizate. Deoarece subsistemele de intrare și ieșire analogice au fiecare propriile circuite de divizare pentru a obține propriile ceasuri de eșantion, ar putea exista o mică diferență de fază între cele două ceasuri. Dar, aceste diferențe sunt nesemnificative cu ratele la care rulează dispozitivele din seria E.

O altă metodă de sincronizare a intrării și ieșirii analogice este de a face ca ambele operații să utilizeze fie ceasul eșantioanelor de intrare analogică, fie cel pentru ieșirea analogică.

Următoarea diagramă arată cum se sincronizează intrarea analogică și ieșirea analogică prin partajarea ceasului de eșantioane pentru ieșire analogică.

Pentru a efectua o operație de intrare și ieșire analogice sincronizată cu un declanșator de pornire hardware, utilizați una dintre metodele de sincronizare discutate anterior și pur și simplu adăugați un declanșator de pornire hardware la operația master, care în toate exemplele anterioare a fost operația de intrare analogică.

Semnalele de rutare și RTSI

Unele căi interne există între subsistemele unui dispozitiv care permit ca anumite semnale să fie dirijate intern între aceste subsisteme. Am discutat deja modul în care semnalul intern AI Start Trigger este conectat direct la ambele subsisteme de intrare cât și de ieșire analogică ale unui dispozitiv din seria E. Alte exemple de semnale care pot fi direcționate intern pe un dispozitiv din seria E includ ieșirea contorului 0 la AI Sample Clock, AI Start Trigger sau AI Reference Trigger. De asemenea, ieșirea contorului 1 poate fi direcționată direct la AO Sample Clock. Consultați NI-DAQmx Help pentru o listă completă a semnalelor rutabile. Toate celelalte rute de semnal trebuie făcute extern printr-un pin PFI sau RTSI.

NI-DAQmx gestionează majoritatea rutării între diferite subsisteme pentru dvs. În loc să trebuiască să direcționeze ieșirea ceasului de ieșire analogică către un pin PFI pentru a fi utilizat de sarcina de intrare analogică, NI-DAQmx vă va permite doar să specificați AO Sample Clock ca sursă AI Sample Clock. Rutarea se face în spatele scenei pentru dvs.

În MAX, selectați dispozitivul NI-DAQmx în secțiunea NI-DAQmx Devices. Tabelul de rutare din tab-ul Device Routes afișează rutele posibile care pot fi realizate în interiorul dispozitivului - atât direct, cât și indirect. Traseele care pot fi realizate direct, cum ar fi ruta internă între ieșirea contorului 0 și AI Sample Clock, sunt marcate cu verde. Traseele care pot fi realizate doar între două terminale trecând prin linii RTSI sau alte subsisteme sunt afișate în galben. Când driverul efectuează o rută, toate terminalele implicate în traseu sunt rezervate pentru acea rută.

Dacă țineți apăsată tasta <Shift> și faceți clic dreapta pe un traseu făcând clic dreapta pe pătratul galben sau verde, se afișează calea care compune ruta. Următoarea diagramă face parte din tabelul de rutare pentru un dispozitiv PCI-MIO-16E-4.

Următoarea figură arată calea dintre AO Sample Clock și AI Sample Clock.

Magistrala de integrare a sistemului în timp real (RTSI)

RTSI este o magistrală de sincronizare internă utilizată pentru partajarea și schimbul de semnale de temporizare și control între mai multe plăci prin utilizarea liniilor digitale paralele. Conectorul este de obicei situat în partea superioară a unui dispozitiv DAQ. Avantajul RTSI este că vă permite să transmiteți programat semnale digitale pe care să le utilizați pentru declanșare, ceas și alte sarcini între mai multe dispozitive DAQ sau module PXI. Pentru aplicațiile de sincronizare, magistrala RTSI poate fi utilizată pentru a permite unei plăci să genereze ceasul și semnalul de declanșare și să transmită acele semnale pe magistrală.

Pentru a vă înregistra cablul RTSI în MAX, faceți clic dreapta pe NI-DAQmx Devices, selectați Create New NI-DAQmx Device din meniul de comenzi rapide și selectați RTSI Cable. Un cablu RTSI ar trebui să apară sub dispozitivele dvs. NI-DAQmx. Faceți clic dreapta pe cablul RTSI și adăugați dispozitivele la care este conectat.

Exercițiul 11-3 Configurarea RTSI

Obiectiv : Configurarea unui cablu RTSI în MAX.

Un cablu RTSI este cel mai des folosit pentru a transfera semnale de la un dispozitiv DAQ la altul. Mai târziu în această lecție, veți afla mai multe despre sincronizarea dispozitivelor multiple. Dar, anumite semnale necesită configurarea și atribuirea unui cablu RTSI la un dispozitiv pentru a transfera semnalul la un singur dispozitiv DAQ. Două dintre aceste tipuri de semnale sunt AO Sample Clock și AI Sample Clock, pe care le veți folosi în Exercițiul 11-4 pentru a sincroniza o sarcină de intrare analogică și ieșire analogică. În pregătirea pentru acest exercițiu, veți configura mai întâi un cablu RTSI în MAX.

1. Lansați MAX făcând dublu clic pe pictograma de pe desktop sau selectând Tools»Measurement & Automation Explorer în LabVIEW.

2. Sub Devices and Interfaces, faceți clic dreapta pe NI-DAQmx Devices.

3. Selectați Create New NI-DAQmx Device»RTSI Cable din meniul de comenzi rapide.

Cablul RTSI ar trebui să apară acum sub NI-DAQmx Devices ca RTSI Cable: “RTSICable0. Faceți clic dreapta pe această listă și selectați Add Device to RTSI din meniul de comenzi rapide. Dispozitivul dvs. DAQ ar trebui să fie listat. Selectați dispozitivul DAQ.

De asemenea, puteți face clic dreapta pe dispozitivul dvs. NI-DAQmx, puteți selecta Properties din meniul de comenzi rapide și puteți selecta RTSI cable în tab-ul RTSI Configuration a casetei de dialog Device Properties așa cum se arată în figura următoare.

Sfârșitul exercițiului 11-3

Exercițiul 11-4 Intrare și ieșire analogice sincronizate

Obiectiv: Realizarea unei operații de intrare și ieșire analogice sincronizate prin partajarea ceasului AI Sample Clock.

Pentru a sincroniza generarea și măsurarea semnalelor analogice, partajați fie AO Sample Clock, fie AI Sample Clock între sarcinile de intrare analogică și ieșire analogică.

1. Deschideți Simultaneous AI AO Start - SW VI situat în directorul C:\Exercises\LabVIEW DAQ.

2. Selectați File»Save As și salvați VI-ul ca Synchronized AI and AO.vi în directorul C:\Exercises\LabVIEW DAQ.

Diagrama bloc

3. Modificați schema bloc așa cum se arată în figura următoare.

Rețineți că rate trebuie împărțită între sarcina de intrare analogică și cea de ieșire analogică pentru a sincroniza timing-ul dintre cele două sarcini. În plus, setați source lui analog input timing la /DevX/ao/SampleClock, unde X corespunde numărului de dispozitiv al dispozitivului dvs. DAQ.

4. Pe DAQ Signal Accessory, conectați analog out 0 la analog in 1. Conectați unda sinusoidală a generatorului de funcții la analog in 2.

5. Comutați la panoul frontal și setați comenzile cu următoarele valori:

Input physical channels: DevX/ai1:2, unde X corespunde numărului dispozitivului vostru DAQ
Output physical channels: DevX/ao0, unde X corespunde numărului dispozitivului vostru DAQ
Rate: 10000
Signal Type: Square Wave
Frequency: 100

6. Rulați VI-ul.
7. Opriți VI-ul. Salvați și închideți VI-ul.
Sfârșitul exercițiului 11-4

Utilizarea contoarelor externe

Există mai multe aplicații în care este necesar să efectuați operații de numărare simultan cu operații de intrare și/sau ieșire analogice. Unele dintre cazurile obișnuite implică utilizarea unui contor pentru a furniza un ceas de eșantionare extern, utilizarea unui contor pentru a efectua operații analogice redeclanșabile, utilizarea unui contor pentru a porni o operație analogică după apariția unui anumit număr de declanșatoare și pentru a corela măsurătorile de numărare a evenimentelor cu operația analogică.

Intrare analogică cu ceasul extern generat de un contor

Utilizați un contor pentru a genera un tren de impulsuri, fie finit, fie continuu, pentru a servi drept sample clock pentru operațiile de intrare sau ieșire analogice. Frecvența unui tren de impulsuri generat de un contor poate fi modificată din mers, permițându-vă să modificați corespunzător rata unei operații de intrare sau ieșire analogice. Configurați un contor pentru generarea continuă a trenurilor de impulsuri. Setați sursa sample clock pentru achiziția de intrare analogică la ieșirea internă a contorului.

Notă Frecvența AO Sample Clock poate fi modificată din mers. Prin urmare, nu este nevoie să utilizați un contor pentru a modifica rata unei generări de ieșire analogică în timpul rulării.

Exercițiul 11-5 Intrare analogică - Ceas extern generat de Contor

Obiectiv : Construirea unui VI care utilizează un contor pentru a genera un tren de impulsuri pentru a tacta o achiziție de intrare analogică.

În acest exercițiu, un contor creează un tren de impulsuri care acționează ca sample clock de intrare analogică. Deoarece puteți schimba frecvența trenului de impulsuri al contorului din mers, puteți schimba sample clock de intrare analogică în timpul rulării.

Diagramă bloc

1. Deschideți un VI gol și construiți următoarea diagramă bloc.

După ce creați constanta pe intrarea sursă a DAQmx Timing VI, faceți clic dreapta pe ea și selectați I/O Name Filtering din meniul de comenzi rapide. Plasați o bifă în caseta de selectare Include Advanced Terminals și faceți clic pe butonul OK pentru a închide caseta de dialog Filter Names. Aceasta vă permite să selectați /DevX/Ctr0InternalOutput, unde X corespunde numărului de dispozitiv al dispozitivului dvs. DAQ.

2. Salvați VI-ul ca AI - External Clock from Counter.vi în directorul C:\ Exercises\LabVIEW DAQ.

3. Conectați unda sinusoidală de pe generatorul de funcții al DAQ Signal Accessory la analog in 1.

4. Pe panoul frontal, setați comenzile după cum urmează:

Physical Channels: DevX/ai1, unde X corespunde numărului vostru de dispozitiv DAQ
Counter: DevX/ctr0, unde X corespunde numărului vostru de dispozitiv DAQ
Rate: 1000
Samples per channel: 200

5. Rulați VI-ul.

6. Măriți rata și rulați VI-ul. Acest lucru mărește numărul de eșantioane achiziționate în fiecare secundă.

7. Salvați și închideți VI-ul.
Sfârșitul exercițiului 11-5

Operații analogice redeclanșabile

Operațiile de intrare și ieșire analogice nu sunt redeclanșabile hardware. Numai contoarele sunt redeclanșabile hardware. Pentru a simula o operație analogică redeclanșabilă în software, setați sarcina să răspundă la un declanșator și apoi reconfigurați operațiunea în software după finalizare. Reconfigurarea sarcinii îi va permite să răspundă la următorul declanșator. Dar, timpul necesar reconfigurării operațiunii în software depinde complet de sistem și ar putea determina dispozitivul să rateze următorul declanșator, dacă nu se reconfigurează suficient de rapid.

Deoarece operațiile contorului sunt redeclanșabile, ele pot fi folosite pentru a implementa operații de intrare și ieșire analogice redeclanșabile. Două contoare sunt utilizate pentru a crea un tren de impulsuri finite redeclanșabil care să fie utilizat ca sample clock analogic. Primul contor este configurat pentru a crea un tren de impulsuri continuu, iar cel de-al doilea contor este configurat pentru a efectua generarea de impulsuri finite redeclanșabile (așa cum am făcut în exercițiul 10-5). Acest impuls este utilizat pentru a porni sau a întrerupe generarea trenului de impulsuri continuu al primului contor. Prin urmare, când apare declanșatorul, al doilea contor creează un impuls finit care permite generarea impulsurilor continue pe primul contor atâta timp cât impulsul finit este încă high.

Următorul exemplu demonstrează cum se realizează o achiziție de intrare analogică redeclanșabilă cu ajutorul contoarelor. Nu trebuie să setați în mod explicit un contor pentru generarea de impulsuri continue și altul pentru o generare de impulsuri finite redeclanșabile. NI-DAQmx va configura acest lucru pentru dvs. atunci când VI-ul dvs. configurează un contor pentru generarea trenului de impulsuri finite și folosește un nod de proprietate pentru a-l seta la redeclanșabil.

Declanșarea evenimentelor

Există cazuri în care poate doriți să săriți un anumit număr de impulsuri de declanșare înainte de a porni o achiziție sau o generare. Acest tip de declanșator este denumit „declanșator de eveniment”, deoarece declanșați evenimentul declanșator al N-lea (2 < N < Număr terminal). O astfel de aplicație poate fi implementată folosind contoare pe o placă DAQ serie E de la National Instruments. Următorul exemplu arată cum să vă configurați dispozitivul DAQmx pentru declanșarea evenimentelor.

Rândul de sus configurează sample clock și trigger. Rândul de jos configurează contorul pentru a împărți semnalul astfel încât acesta să emită impulsul „declanșator” atunci când își introduce impulsul „N”. Observați cazul lui DAQmx Create Virtual Channel VI - Counter Output»Pulse Generation» Ticks. Intrările high ticks și low ticks sunt utilizate pentru a determina impulsul „N”. source of ticks poate fi o linie PFI, o bază de timp internă sau orice altă sursă de semnal adecvată.

Utilizarea ceasului de eșantionare intrarea sau ieșirea analogică pentru a porni un contor

O altă aplicație obișnuită este de a utiliza AI Sample Clock sau AO Sample Clock pentru a porni o numărare de evenimente bufferate sau măsurarea perioadei. Pentru a seta această configurație, utilizați DAQmx Export Signal VI pentru a exporta AI sau AO Sample Clock pe o linie PFI. Contorul va folosi apoi linia PFI ca poartă.

11.3 SINCRONIZAREA MAI MULTOR DISPOZITIVE

Sincronizarea plăcilor corelează măsurătorile între mai multe plăci. Numeroase aplicații sunt ajutate de capacitatea unei plăci de a se sincroniza ea însăși. De exemplu, prin partajarea semnalelor de sincronizare, măsurătorile analogice pot fi luate împreună cu contoare prin direcționarea ceasului de eșantionare către contor pentru a-i spune când să blocheze o valoare.

Sincronizarea este deosebit de importantă în aplicațiile de mare viteză atunci când este nevoie de un număr mare de canale. Fiecare dintre plăci vor trebui să se sincronizeze cu un dispozitiv extern și/sau se stabilește o relație master/slave în care o placă controlează sincronizarea tuturor plăcilor din sistemul de măsurare.

Există mai multe metode disponibile pentru sincronizare. Metodele includ utilizarea unui ceas extern, utilizarea magistralei de sincronizare internă sau utilizarea unui circuit Phase-Lock-Loop. Această din urmă metodă depășește sfera acestui curs. Dar, efectul întârzierii și al jitterului devin considerente esențiale atunci când alegeți o metodă pentru sincronizarea plăcii.

Conexiuni de semnal extern

O metodă de sincronizare este utilizarea unui ceas extern care permite sincronizarea multiplelor plăci cu această sursă externă. Folosind această metodă, sincronizarea plăcilor pentru plăcile care primesc sursa externă iau acuratețea și stabilitatea sursei externe de ceas.

Folosind această metodă de sincronizare a plăcii, eroarea de sincronizare va rezulta din trei surse. Aceste surse includ lungimea traseului semnalului, sincronizarea individuală a plăcii și jitter-ul. Combinația acestor factori va face ca fiecare placă să vadă și să răspundă la semnalul extern în momente diferite.

Pentru frecvențe înalte, mai mulți factori fac ca această metodă să fie mai puțin ideală. Semnalul de ceas va începe să se deterioreze la frecvențe de aproximativ 5-10 MHz, în funcție de cablarea utilizată pentru a conecta între sursa de ceas externă și plăci. În plus, există o latență de transmisie care va introduce întârzieri de fază pronunțate la viteze mari, în funcție de lungimea traseului semnalului. Aceste întârzieri vor depinde de proprietățile capacitive, inductive și rezistive ale cablării. Toate sursele de sincronizare vor introduce jitter în sistem care ar putea deveni semnificativ atunci când se încearcă sincronizarea plăcilor.

O altă problemă cu această metodă apare atunci când se utilizează un declanșator de pornire pentru a începe simultan achiziționarea pe toate plăcile dintr-un sistem de măsurare. De obicei, fiecare placă se va declanșa la una sau două ticks ale ceasului plăcii la primirea declanșatorului de pornire. Acest lucru poate provoca întârzieri de fază între plăci.

Pentru a elimina întârzierile de fază din latențele de transmisie și din declanșare, utilizați magistrala RTSI pentru a transfera semnale. Magistrala RTSI îmbunătățește limitările utilizării cablării externe.

Magistrala RTSI

După cum s-a discutat mai devreme, magistrala RTSI este o magistrală digitală de mare viteză concepută pentru a facilita integrarea sistemelor prin comunicare în timp real de nivel scăzut, de mare viteză, între dispozitivele National Instruments. Folosind RTSI, vă puteți conecta dispozitivul DAQ la achiziție de mișcare, imagini sau dispozitive I/O digitale fără a consuma lățime de bandă pe magistrala gazdă, cum ar fi magistrala PCI. Magistrala RTSI are, de asemenea, comutare încorporată, astfel încât să puteți direcționa semnale către și dinspre magistrală din mers prin software.

Majoritatea dispozitivelor NI DAQ acceptă RTSI. În dispozitivele DAQ plug-in tradiționale, cum ar fi un dispozitiv PCI din seria E, conexiunea RTSI reală se realizează cu un cablu RTSI special care este conectat manual la pinii RTSI de pe fiecare dispozitiv. Interfața magistralei RTSI de pe un dispozitiv PCI DAQ este un conector intern cu 34 de pini, unde semnalele sunt partajate printr-un cablu ribbon în interiorul carcasei PC-ului. Cablurile RTSI sunt disponibile pentru înlănțuirea a două, trei, patru sau cinci dispozitive împreună. Funcționalitatea RTSI variază în funcție de tipul dispozitivului, deci verificați întotdeauna documentația dispozitivului înainte de a începe programarea cu RTSI.

Magistrala RTSI are opt linii disponibile utilizatorilor pentru partajarea semnalelor de sincronizare și declanșare. Pinii de la 0 la 6 sunt disponibili pentru semnalele utilizatorului, dar pinul 7, Ceasul RTSI, este rezervat pentru transmiterea semnalelor de ceas ale dispozitivului între dispozitive.

Consultați ni.com/catalog pentru mai multe informații despre cablul RTSI

Dacă utilizați un modul PXI, magistrala RTSI este integrată în șasiul PXI ca PXI Trigger Bus pe conectorul backplane J2. PXI Trigger Bus este standardizată de PXI Systems Alliance, acum susținută de o serie de lideri din industrie. Astfel, fiecare modul PXI DAQ pe care îl introduceți într-un șasiu PXI are aceleași conexiuni de sincronizare încorporate la orice alt modul PXI DAQ din acel șasiu. Nu este necesară o conexiune suplimentară. Consultați www.pxisa.org pentru mai multe informații despre PXI Systems Alliance.

Capabilă să transmită semnale de sincronizare de până la 20 MHz înainte de deteriorarea semnalului, RTSI reușește la aplicații de mare viteză. Însă, întârzierile de fază datorate latențelor de declanșare și transmisie vor deveni mai pronunțate la frecvențe înalte. Pentru a vă adapta la aceste probleme, utilizarea unui circuit Phase-Locked-Loop (PLL) permite sincronizarea adevărată a mai multor plăci. PLL este dincolo de sfera acestui curs.

Programare cu RTSI

NI-DAQmx gestionează majoritatea rutării semnalului prin magistrala RTSI. Însă, sunteți în continuare responsabil pentru a spune NI-DAQmx cum sunt conectate dispozitivele între ele prin magistrale interne. Pentru sistemele PCI, trebuie să înregistrați cablul RTSI în MAX, așa cum s-a făcut în Exercițiul 11-2. Pentru sistemele PXI, trebuie să identificați tipul de șasiu PXI utilizat.

Notă Pentru a ocoli gestionarea NI-DAQmx a semnalelor de rutare, puteți direcționa în mod explicit semnalele către liniile PFI sau RTSI folosind DAQmx Export Signal VI.

Dacă două aplicații diferite încearcă să comande aceeași linie RTSI, pot apărea defectări ale plăcii. Deoarece NI-DAQmx gestionează rutarea liniilor RTSI pentru dvs., nu se știe întotdeauna care RTSI sunt disponibile pentru utilizare. Dacă un alt driver, cum ar fi driverul tradițional NI-DAQ dintr-o altă aplicație, comandă o linie RTSI, NI-DAQmx nu va avea cunoștință despre acest lucru. Dacă ambele aplicații încearcă să comande aceeași linie RTSI, pot și vor apărea probleme.

Pentru a preveni problema comenzii duble a unei linii RTSI, puteți rezerva anumite linii RTSI în MAX pentru a împiedica NI-DAQmx să utilizeze acea linie atunci când direcționați automat semnalele. Pentru dispozitivele PCI, faceți clic dreapta pe cablul RTSI care vă conectează dispozitivele și selectați Properties. Apare următoarea fereastră RTSI Cable Properties, așa cum se arată în figura următoare.

Selectați care linii RTSI nu trebuie utilizate de NI-DAQmx. Pentru dispozitivele PXI, evidențiați șasiul sub sistemul PXI (șasiul trebuie identificat mai întâi) și selectați tab-ul Triggers.

Cu un dispozitiv din seria E, următoarele semnale pot fi direcționate prin RTSI pentru a fi partajate între mai multe dispozitive.

AI Start sau Reference Trigger
• AI Convert Clock
• AI Sample Clock
• AO Sample Clock
• AO Reference Trigger
• GPCTR0 Source, Gate,
sau Output

Cazuri de utilizare pe mai multe dispozitive

La fel ca dispozitivele individuale, cazurile de utilizare obișnuite pentru operațiuni simultane care implică mai multe dispozitive sunt de a porni simultan operațiuni pe mai multe dispozitive prin partajarea unui declanșator de pornire sau pentru a sincroniza complet operațiile pe mai multe dispozitive. Un al treilea caz de utilizare este pornirea operațiunilor sincronizate pe mai multe dispozitive cu un declanșator de pornire hardware. La sincronizarea măsurătorilor, ceasul de eșantionare a intrării analogice poate fi partajat între toate dispozitivele implicate pentru a sincroniza toate măsurătorile la același sample clock. Sau, unul dintre ceasurile de pe placa dispozitivului poate fi partajat pentru a sincroniza ceasurile de plăci ale tuturor dispozitivelor implicate.

Intrare analogică pentru mai multe dispozitive pornite simultan

Pentru a porni simultan operații de intrare analogică pe mai multe plăci, configurați dispozitivul master pentru a trimite semnalele sale interne AI Start Trigger prin magistrala RTSI pentru a porni toți slaves configurați pentru un declanșator de pornire digitală. Master-ul poate fi pornit printr-o apelare software sau configurat pentru un declanșator de pornire hardware însuși.

Spre deosebire de operațiile cu o singură placă, setarea tuturor ceasurilor de eșantionare la aceeași rată nu va sincroniza operațiunile. Fiecare placă își derivă sample clock din propriul ceas oscilator, care nu este garantat să fie în fază cu ceasurile oscilator ale celorlalte dispozitive.

Următorul exemplu arată cum să porniți simultan mai multe dispozitive pentru intrare analogică.

Dispozitivul slave utilizează AI Start Trigger al masterului pentru a porni în același timp cu dispozitivul master. Rețineți că dispozitivul master nu a trebuit să direcționeze în mod explicit declanșatorul său de pornire către RTSI. Această rută se face implicit atunci când slave folosește DAQmx Triggering VI pentru a declanșa digital acest semnal.

Sincronizarea intrării analogice a mai multor dispozitive utilizând un ceas partajat

O modalitate de sincronizare a intrării analogice a mai multor dispozitive este utilizarea sample clock de pe master pentru operații pe toate dispozitivele. Micile întârzieri de propagare, introduse între master și slave datorită direcționării ceasului pe RTSI, sunt neglijabile în raport cu ratele la care funcționează dispozitivele din seria E.

Dacă numai sample clock este partajat între plăci, fiecare dispozitiv își generează propriul ceas de conversie din ceasul său de placă. Ceasurile de placă care creează ceasul de conversie funcționează liber și nu sunt sincronizate între ele și, prin urmare, nu sunt garantate că sunt în fază între ele. Astfel, ceasurile convertite vor fi, de asemenea, defazate. Acest lucru este mai vizibil la rate mai mari de eșantionare.

Exemplul de mai jos demonstrează cum se sincronizează două operații de intrare analogică prin partajarea unui sample clock în NI-DAQmx. Rețineți că dispozitivul master nu trebuie să-și direcționeze în mod explicit sample clock către o linie RTSI. Atâta timp cât este configurat un cablu RTSI sau este identificat un șasiu PXI, NI-DAQmx va gestiona rutarea pentru dvs. Dispozitivul slave este configurat pentru a utiliza AI Sample Clock al masterului folosind DAQmx Timing VI. Slave trebuie pornit înaintea master-ului, așa cum se vede prin propagarea liniilor de eroare.

Pentru a sincroniza complet mai multe plăci, partajați atât sample clock, cât și ceasurile de conversie. Dar, o metodă mai bună ar fi sincronizarea tuturor dispozitivelor cu o bază de timp comună, setând fiecare dispozitiv să achiziționeze la aceeași rată și apoi pornirea lor simultană.

Sincronizarea intrării analogice a mai multor dispozitive utilizând o bază de timp partajată

Pentru a realiza sincronizarea adevărată a mai multor dispozitive, trebuie să sincronizați toate dispozitivele la o bază de timp comună, pe lângă furnizarea unui declanșator comun. Deoarece plăcile din seria E nu sunt capabile să blocheze faza la un ceas de referință comun, trebuie să utilizați linia de ceas RTSI pentru a transmite un ceas de referință comun tuturor dispozitivelor din seria E. Pentru mai multe operații de intrare analogică, toate dispozitivele slave își vor înlocui ceasurile plăcii cu ceasul plăcii master trimis prin RTSI 7. Fiecare dispozitiv își va seta sample clock la aceeași rată, iar masterul va trimite un declanșator pentru a porni simultan toate dispozitivele. Deoarece toate dispozitivele își derivă sample clock dintr-un ceas bază de timp comun și toate achizițiile sunt începute în același timp, ceasurile de eșantionare vor fi complet sincronizate între ele.

Următorul exemplu demonstrează cum se sincronizează două dispozitive care efectuează operații de intrare analogică prin partajarea unei baze de timp comune și declanșator de pornire. Pentru a partaja o bază de timp, dispozitivul slave utilizează DAQmx Timing property node pentru a înlocui sursa bazei de timp master cu baza de timp de 20 MHz a dispozitivului master. DAQmx Trigger VI este apoi utilizat pentru a porni slave atunci când masterul își generează AI Start Trigger intern. În acest exemplu, masterul este pornit cu o apelare software.

Sincronizarea utilizând un declanșator de pornire hardware

Puteți crea o operațiune de intrare analogică cu mai multe dispozitive sincronizate cu un declanșator de pornire hardware configurând dispozitivul master în oricare dintre cele două metode de sincronizare discutate anterior pentru un declanșator de pornire hardware.

Următorul exemplu demonstrează două operații de intrare analogice sincronizate cu un sample clock comun și pornite cu un declanșator de pornire hardware. Masterul este configurat pentru un declanșator de pornire hardware utilizând DAQmx Trigger VI, iar slave este configurat pentru a utiliza sample clock al masterului.

Sincronizare și interoperabilitate

Multe aplicații implică operații simultane ale dispozitivelor din diferite familii. Aceste cazuri de utilizare sunt similare celor pe care le-am explorat anterior și includ lucruri precum sincronizarea intrării sau ieșirii analogice a unui dispozitiv MIO cu intrare sau ieșire digitală, utilizarea unui contor pentru a crea un ceas pentru o operație analogică sau digitală, contor de sincronizare și altele. Când nu toate dispozitivele implicate sunt acceptate în NI-DAQmx, aveți două opțiuni de dezvoltare. Puteți dezvolta aplicația în întregime în NI-DAQ tradițional sau puteți utiliza NI-DAQ tradițional pentru a programa dispozitivele care nu sunt acceptate în NI-DAQmx și utilizați NI-DAQmx pentru a programa restul. Deoarece NI-DAQ tradițional și NI-DAQmx sunt două drivere și API-uri separate, ele pot fi utilizate side-by-side într-o aplicație la fel cum NI-Motion și NI-IMAQ pot fi utilizate side-by-side. Dar, nu puteți utiliza ambele drivere pentru a programa același dispozitiv în același timp.

Utilizarea driverelor împreună se numește mod de interoperabilitate.

Utilizarea NI-DAQ tradițională și NI-DAQmx împreună

Aplicațiile existente dezvoltate cu versiuni anterioare ale NI-DAQ vor rula sub NI-DAQ tradițional. Însă, versiunile anterioare ale NI-DAQ nu pot fi utilizate cu NI-DAQmx pe același computer. Puteți utiliza NI-DAQ tradițional și NI-DAQmx pe același computer cu următoarele restricții:

• Un singur API poate controla un anumit dispozitiv la un moment dat.
• După ce utilizați un dispozitiv în API-ul NI-DAQmx, trebuie să nu rezervați toate sarcinile NI-DAQmx care utilizează acel dispozitiv înainte de a putea utiliza acel dispozitiv prin intermediul API-ului NI-DAQ tradițional. Pentru a rezerva sarcinile NI-DAQmx, apelați DAQmx Stop Task VI sau DAQmx Clear Task VI.
• După ce utilizați un dispozitiv în API-ul NI-DAQ tradițional, trebuie să resetați dispozitivul înainte de a putea utiliza acel dispozitiv în API-ul NI-DAQmx. Pentru a face acest lucru, apelați Traditional NI-DAQ Device Reset VI. Pentru dispozitivele SCXI, trebuie să resetați dispozitivul comunicator apelând Traditional NI-DAQ Device Reset VI.
• Un alt mod de a reseta dispozitivul este să faceți clic dreapta pe dispozitiv în folderul Traditional NI-DAQ Devices din MAX și să selectați Reset.
• Pentru a reseta toate dispozitivele din NI-DAQ tradițional și a le face disponibile pentru utilizare în NI-DAQmx, faceți clic dreapta pe folderul Traditional NI-DAQ Devices din MAX și selectați Reset Driver for Traditional NI-DAQ

În orice moment, trebuie să utilizați toate dispozitivele SCXI în același șasiu sau în oricare șasiu care sunt legate între ele prin același API. Această restricție există deoarece modulele SCXI din același șasiu sau din același set de șasiuri înlănțuite sunt toate programate de un singur dispozitiv de comunicare SCXI. Acest dispozitiv poate fi operat doar printr-un singur API la un moment dat.

Următorul exemplu demonstrează cum se sincronizează o operație de intrare analogică și o operație de intrare model digital utilizând atât NI-DAQ tradițional, cât și NI-DAQmx. Dispozitivul NI 653x este master-ul, care își trimite ceasul REQ la placa MIO prin RTSI 0 utilizând RTSI Control VI. Dispozitivul MIO este configurat pentru un ceas extern pe RTSI 0 utilizând DAQmx Timing VI. Dispozitivul MIO este dispozitivul 4. Prin urmare, pentru a-și primi ceasul de la magistrala RTSI, trebuie doar să se conecteze la propria linie RTSI.

Rezumat

• Puteți porni simultan operațiuni folosind AI Start Trigger VI.

• Puteți sincroniza operațiunile rutând semnale interne.

• Utilizați RTSI pentru a transfera semnale între mai multe dispozitive.