11.2 Tipuri de VI-uri parser

VI-urile din biblioteca Parser acționează ca interfața dintre utilizator și VI-urile din celelalte biblioteci. Formulele introduse pe panoul frontal pot avea orice număr de variabile. Mai întâi, formulele sunt analizate pentru a determina variabilele și valorile care le vor fi atribuite. Apoi sunt evaluate la un număr prin înlocuirea valorilor numerice pentru variabile.

Forme directe și indirecte

Deoarece există în principiu două etape implicate în acest proces (analiză și apoi evaluare), există două forme de VI-uri parser: forma directă și forma indirectă. În forma directă, atât analizarea cât și evaluarea se fac în același VI. În forma indirectă, analizarea și evaluarea se fac în VI-uri separate.

Ca exemplu, versiunea directă a VI-ului Eval Formula Node poate fi reprezentată ca în următoarea diagramă bloc.

Pe de altă parte, formele indirecte împart VI-ul în două subVI-uri, după cum se arată în ilustrația următoare. Puteți utiliza forma indirectă în aplicații mai mari, unde un proces în două etape (analizarea și apoi evaluarea) este mai eficient.

Următorul tabel rezumă diferitele tipuri de VI parser.

Notă: Panoul frontal al fiecărui VI parser are un exemplu care arată cum se introduc valori în intrările control.

Forma directă a VI-urilor parser este mult mai utilizată decât forma indirectă. Următoarea diagramă de flux vă ghidează prin selectarea unui anumit VI parser din forma directă.

Comparație cu Formula Node

Un VI parser scanează un șir de intrare și interpretează acest șir ca o colecție de formule. Apoi, VI-ul parser înlocuiește formulele cu calcule numerice și scoate rezultatele. Rutinele VI-ului parser se ocupă doar de numere reale. Există unele diferențe între analizorul din G Math Toolkit și Formula Node găsite în pachetul original LabVIEW (sau BridgeVIEW). Următorul tabel prezintă aceste diferențe.

Prioritatea operatorilor este aceeași pentru VI-urile parser G Math Toolkit ca cele ale nodurilor formulă din LabVIEW și BridgeVIEW.

Structura de eroare

VI-urile parser utilizează următoarea structură de gestionare a erorilor. Această structură constă dintr-un buton de stare booleană, un indicator de cod numeric, întreg de 32 de biți cu semn și un indicator sursă șir. Aceste componente de gestionare a erorilor sunt explicate mai jos:

status este TRUE dacă a apărut o eroare. Dacă status este TRUE, acest VI nu efectuează nicio operațiune.

code este numărul codului de eroare care identifică eroarea.

source explică eroarea mai detaliat.

Starea implicită a structurii error in este FALSE (fără eroare), indicată printr-un cod de eroare 0.

Cu această structură, o aplicație poate decide programatic exactitatea formulelor și poate controla fluxul de date în caz de erori. Aplicația folosește câmpul source al structurii de gestionare a erorilor ca stocare pentru o introducere greșită a formulei. Acest câmp afișează o descriere limitată a erorii dacă este detectată o eroare în programul dvs. Consultați anexa Coduri de eroare pentru codurile de eroare și mesajele rutinelor VI parser.

Funcții disponibile pentru utilizare cu VI-uri parser

Majoritatea funcțiilor pe care le puteți utiliza în nodul formulă pot fi utilizate și în VI-urile parser. Totuși, există unele diferențe. Pentru o listă completă de funcții pe care le puteți utiliza cu VI-uri parser, consultați anexa.

VI-urile parser sunt extrem de puternice și pot fi utilizate într-o mare varietate de aplicații. Exercițiile din această lecție acoperă construirea unui generator de forme de undă arbitrare care folosește câteva dintre rutinele parser și înțelegerea funcționalității acestora.

Exercițiul 11-1

Obiectiv: Construirea unui generator de forme de undă arbitrare folosind VI-ul Eval Single-Variable Array.

În acest exercițiu, veți construi un generator de formă de undă arbitrară folosind VI-uri parser. Veți introduce formula pentru forma de undă pe panoul frontal și veți vedea forma de undă de ieșire pe un indicator grafic.

Selectarea VI-ului parser forma directă sau indirectă

În primul rând, trebuie să decideți dacă folosiți forma directă sau indirectă a VI-urilor parser. Deoarece vă interesează doar afișarea rezultatului evaluării pe un grafic și nu sunteți preocupați de rezultatele analizei, veți utiliza forma directă a VI-ului parser.

Selectarea VI-ului parser

Privind tabelul de mai sus, în funcție de numărul de variabile din formula dvs., trebuie să alegeți VI-ul corespunzător dintre mai multe opțiuni disponibile de VI-uri ale formei directe. Deoarece veți trasa o funcție 1D, aveți nevoie de un VI care să poată gestiona funcții de cel puțin o variabilă. Și pentru că doriți să evaluați această funcție în mai mult de un punct, alegeți VI-ul Eval Single-Variable Array (subpaleta G Matrix »Parser). Intrările și ieșirile acestui VI sunt prezentate mai jos.

formula: un control pentru specificarea formulei matematice constând dintr-o variabilă.

X Values: valori ale variabilei la care este evaluată formula.

Y Values: rezultate numerice ale evaluării formulei în formulă la valorile specificate în X Values.

Trebuie să specificați cel puțin intrările formula și X Values. Pentru introducerea formulei, veți introduce un control pe panoul frontal. Cu acest control, puteți să introduceți în intrarea formula. Pentru X Values, veți construi o For Loop pe diagrama bloc care va genera 1000 de puncte la care să evaluați ecuația pe care o veți introduce în controlul formula. Mai jos sunt afișate panoul frontal și diagrama bloc. Rețineți că For Loop generează X Values de la 0 la 10 în pași de 0,01.

1. Construiți panoul frontal și diagrama bloc ale VI-ului prezentate mai jos.

Panoul frontal

Controlul șir formula este locul în care introduceți formula.

Indicatorul Y Values arată rezultatul calculului formulei la puncte discrete specificate.

Graficul Waveform vă arată o diagramă a funcției pe care ați tastat-o ​​în controlul formula.

Diagrama bloc

VI-ul Eval Single-Variable Array (subpaleta G Math » Parser) evaluează o funcție de o singură variabilă în mai multe puncte.

For Loop generează setul discret de puncte la care va fi evaluată formula din controlul formula. Aceste puncte variază de la 0 la 9,99 în pași de 0,01.

2. După construirea VI-ului de mai sus, reveniți la panoul frontal.

3. Tastați ecuația sin(x) în controlul formula și rulați VI-ul. Consultați rezultatul afișat pe indicatorul grafic.

Rețineți că sin(x) are o singură variabilă, numită x. De asemenea, puteți apela variabila y sau z sau orice altceva. Anexa enumeră regulile pentru nume variabile.

4. Schimbați ecuația cu sin(x) + cos(x/2) și executați VI-ul.

5. Schimbați ecuația cu step(y-1) + sinc(y-2) + sin(y*10) și rulați VI-ul. Rețineți că acum ați modificat variabila în y.

6. Introduceți orice altă ecuație în controlul formula și executați VI-ul. Anexa conține o listă de funcții disponibile pe care le puteți utiliza în ecuație.

Notă: Dacă primiți o eroare, consultați anexa pentru o listă de coduri de eroare.

7. Salvați VI-ul ca EvalSVA.vi în biblioteca Lvspcex.llb.

8. Închideți VI-ul.

Ați văzut acum cât de ușor este construirea generatorului de forme de undă în care utilizatorul poate specifica formula pentru o formă de undă arbitrară pe panoul frontal. În următorul exercițiu, veți modifica acest generator de forme de undă pentru a avea funcționalitatea de a specifica cu ușurință forme de undă chiar mai complexe.

Sfârșitul exercițiului 11-1

Exercițiul 11-2

Obiectiv: generarea de forme de undă și mai complexe prin încorporarea VI-ului Substitute Variables în generatorul de funcții.

Un alt VI util în biblioteca parser este Substitute Variables VI (G Math » Parser subpalette). Conexiunile la acest VI sunt prezentate în figura de mai jos. Este utilizat pentru a substitui formulele pentru parametrii care sunt deja definiți în formule.

original formula: formula principală pe care o introduceți.

Substitution Rules: specificați înlocuirile care trebuie realizate pentru parametrii din original formula.

formula after substitution: formula rezultată după substituțiile de parametri specificate în Substitution Rules.

Acum veți modifica generatorul de forme de undă pe care l-ați construit în exercițiul precedent pentru a utiliza Substitute Variables VI. Să presupunem că doriți să generați o formă de undă „generică” care să fie de forma sin(A)+cos(B), unde A și B pot fi ele însele funcții precum sin(x), cos(x), pătrat(x), sinc(x), ln(x), etc. Dar doriți să utilizați funcții diferite pentru A și B de fiecare dată când executați VI-ul. Acest lucru se realizează după cum se arată în panoul frontal și în diagramele blocurilor de mai jos.

VI-ul Substitute Variables (G Math » Parser subpalette) substituie parametrii definiți în formule. Înlocuirea se face conform regulilor specificate în tabloul cluster Substitution Rule.

VI-ul Eval Single-Variable Array (G Math »Parser) evaluează o funcție de o variabilă la mai multe puncte specificate.

For Loop generează o mie de puncte, cuprinse între 0 și 9,99 în pași de 0,01, pentru a evalua formula specificată de utilizator.

Controlul string original formula este locul în care introduceți formula de o variabilă. Formula poate avea unul sau mai mulți parametri.

Fiecare element (cluster) din tabloul Substitution Rules specifică un parametru și substituirea corespunzătoare lui.

Y Values ​​este un indicator digital array care arată rezultatul calculării formulei la punctele specificate.

1. Construiți VI-ul așa cum se arată în figurile de mai sus. Ieșirea formula after substitution a VI-ului Substitute Variables se duce la intrarea formula a VI-ului Eval Single-Variable Array.

Sugestie: Construiți mai întâi diagrama bloc, apăsați (pop up) pentru a crea controale și indicatoare, apoi adăugați graficul waveform.

2. În controlul original formula, introduceți formula sin(A)+cos(B).

Aceasta va fi formula „generică”. În controlul Substitution Rules, veți oferi utilizatorului capacitatea de a specifica funcțiile care trebuie înlocuite pentru A și B.

3. În elementul 0 al controlului Substitution Rules, introduceți text

parameter name: A
parameter content: sin(x)

În elementul 1, tastați

parameter name: B
parameter content: cos(x)

Rețineți că aceasta este aceeași ca și când ați tastat sin(sin(x)) + cos(cos(x)) în controlul formula din exercițiul 11-1.

4. Rulați VI-ul și vedeți forma de undă pe afișajul graficului.

5. Modificați valorile din controlul Substitution Rules în

elementul 0 parameter name: A
parameter content: sin(x)

elementul 1 parameter name: B
parameter content: square(x)

Execută VI-ul. Ecuația rezultată este aceeași ca și cum ai fi tastat sin(sin (x)) + cos(square(x)) în controlul formula din exercițiul 1-1.

6. Acum schimbați controlul la

elementul 0 parameter name: A
parameter content: step(x-5)

elementul 1 parameter name: B
parameter content: square(x)

Execută VI-ul.

Cu acest simplu VI pe care l-ați creat, acum puteți genera orice tip de formă de undă pe care o doriți, cu funcțiile date în anexă.

7. Salvați VI-ul ca ESVA_SV.vi în biblioteca Lvspcex.llb.

8. Închideți VI-ul.

Sfârșitul exercițiului 11-2

11.3 Rezolvarea ecuațiilor diferențiale