Utilizarea Labview cu Tcp Ip

Utilizarea LabVIEW cu TCP / IP

Transmission Control Protocol (TCP) și Internet Protocol (IP) sunt instrumentele de bază pentru comunicarea în rețea. Numele TCP / IP vine de la două dintre cele mai cunoscute protocoale ale suitei de protocol internet, Transmission Control Protocol și Internet Protocol.

Cu TCP / IP, puteți comunica prin intermediul rețelelor de o persoană sau de rețele interconectate (Internet). Rețelele individuale pot fi separate prin distanțe geografice mari. Rute TCP / IP de date de la o rețea sau computer Internet la altul. Deoarece TCP / IP sunt disponibile pe majoritatea calculatoarelor, se pot transfera informații între diversele sisteme.

Puteți utiliza protocoalele TCP / IP cu LabVIEW pe toate platformele. LabVIEW include funcții TCP pentru crearea client sau server VI.

TCP

TCP garantează o transmisie fiabilă prin rețele, oferind date secvențiale, fără erori, pierderi, sau duplicare. TCP vă retransmite datagrama până când primește o confirmare.

Setări

Înainte de a utiliza TCP / IP, confirmați că aveți o configurare corectă, care variază în funcție de platforma utilizată.

• Windows UNIX TCP / IP este construit . Nu aveți nevoie să utilizați un produs terț pentru a comunica folosind TCP / IP. Presupunând că rețeaua este configurată corect, nici o configurare suplimentară nu este necesară pentru LabVIEW.

• Rețelele Macintosh LabVIEW necesită Open Transport, inclus în Macintosh OS 7.5 și mai târziu. În LabVIEW care nu mai acceptă Mac TCP.

• UNIX TCP / IP este construit . Presupunând că rețeaua este configurată corect, nici o configurare suplimentară nu este necesară pentru LabVIEW.

Utilizarea TCP

TCP este un protocol bazat pe conexiune, ceea ce înseamnă că site-urile trebuie să stabilească o conexiune înainte de a transfera date. TCP permite mai multe conexiuni simultane.

Inițiați o conexiune, fie de așteptare pentru o conexiune de intrare sau de căutare în mod activ pentru o conexiune cu o adresa specificată. În stabilirea de conexiuni TCP, trebuie să specificați adresa și un port la acea adresa. Un număr între 0 și 65535 reprezintă un port. UNIX rezervă numere de port mai puțin de 1.024 de aplicații privilegiate. Diferite porturi de la o adresa de identificare dată diferă la adresa respectivă.

Utilizați funcția TCP Open Connection pentru a stabili în mod activ o legătură cu o anumită adresă și port. Dacă conexiunea este de succes, funcția returnează o TCP Network Connection refnum, rețea care identifică în mod unic această conexiune. Utilizați acest ID de conectare pentru a se referi la conexiunea funcției ulterior apelată.

Puteți utiliza următoarele metode pentru a aștepta o conexiune de intrare:

• Utilizați TCP Listen VI pentru a crea un ascultător și așteptați pentru o conexiune TCP acceptată într-un port specificat. Dacă conexiunea este de succes, VI returnează un ID de conectare și adresa și portul TCP la distanță.

• Utilizați funcția TCP Create Listener pentru a crea un ascultător și apoi utilizați funcția Wait on Listener pentru a accepta noi conexiuni Wait on Listener ce returnează același Listener ID care a fost trecut în funcție și în connection ID pentru o conexiune. Când ați terminat de aștept pentru noi conexiuni, utilizați TCP Close pentru a închide un ascultător. Nu puteți citi sau scrie la un ascultător.

Avantajul de a folosi a două metodă este că puteți anula o operație ascultă folosind TCP Close. Acest lucru este util atunci când doriți să ascultați o conexiune fără a utiliza un timeout, dar doriți să anulați ascultarea când o altă condiție devine adevărată. Puteți închide Listen VI oricând.

Când astabiliti o conexiune, utilizați TCP Read și funcțiile TCP Write pentru a citi și scrie date la cererea aplicației de la distanță.

Utilizați funcția TCP Close Connection pentru a închide conexiunea aplicației de la distanță. Dacă datele necitite rămân și conexiunea se închide, datele pot fi pierdute. Folosiți un protocol de nivel mai mare pentru computer pentru a determina când să închidă conexiunea. Odată ce o conexiune este închisă, nu puteți citi de la ea sau scrie din nou .

 IP
IP efectuează serviciul de nivel scăzut de mutarea datelor între calculatoare. Pachete de date aflate în componența IP-ului,sunt numite datagrame. O datagramă conține, printre altele, datele și un antet care indică sursa și destinațiile adreselor. IP determină calea corectă pentru datagrama în întreaga rețea sau internet și transmite datele la destinația specificată. IP nu poate garanta livrarea. De fapt, IP poate emite o singură datagramă de mai multe ori în cazul în care datagrama este duplicat în transmisie. Programele utilizeaza rar IP pentru că folosesc TCP sau UDP .

Exemplu TCP Client

Următorii pași sunt o descriere generalizată a modului de a crea un client TCP folosind funcțiile paletei  Communication TCP . 

1. Utilizați funcția de conectare TCP Open pentru a deschide o conexiune la un server. Trebuie să specificați adresa de internet a serverului și portul pentru serverul respectiv.

Adresa identifică un calculator din rețea. Portul identifică un canal de comunicare pe computerul pe care serverul îl utilizează pentru a asculta cererile de comunicare. Când creați un server TCP, specificați portul pe care doriți ca serverul sa-l utilizeze pentru comunicare.
2. Utilizați funcția TCP Write pentru a trimite comanda la un server. 
3. Utilizați funcția TCP Read pentru a citi rezultatele de la server.

Cu funcția TCP Read, trebuie să specificați numărul de caractere pe care doriți să-l citiți. 
Utilizați următoarele metode pentru a gestiona comenzile de dimensiuni diferite:

Înainte de comandă și rezultat trebuie stabilit un parametru de dimensiune fixa ce specifică mărimea comenzii sau rezultatul. În acest caz, citiți dimensiunea parametrului și apoi citiți numărul de caractere specificat de dimensiunea parametrului. Această metodă este cea mai flexibila.

Stabiliți pentru fiecare comandă și rezultat o dimensiune fixă. Atunci când o comandă este mai mică decât dimensiunea pe care o specificați, puteți sa-l aduceți la o dimensiunea fixă.Această opțiune este cea mai eficientă.

Fiecare comandă și rezultat are un caracter specific de terminare. Citiți date în unități mici, până când ajunge la caracterul de terminare.

4. Utilizați funcția TCP Close Connection pentru a închide conexiunea la server. 

Timeout și erori
Când proiectați o aplicație de rețea, analizați cu atenție ce ar trebui să se întâmple dacă ceva nu functionează. De exemplu, în cazul în care se blochează serverul, cum se descurcă fiecare dintre clienții VI-ului? 
O soluție este să vă asigurați că fiecare VI are un timeout. Dacă ceva nu produce rezultate, după o anumită perioadă de timp clientul continuă execuția. În continuare, clientul poate încerca să restabilească executarea sau sa întocmească un raport de eroare. Dacă este necesar, se poate închide aplicația client. 

Exemplul TCP Server
În următoarele etape avem descrierea modului de creare a unui server TCP, folosind funcțiile paletei Communication TCP . 

1. Utilizați TCP Listen VI să aștepte pentru o conexiune. Trebuie să specificați portul. Acest port trebuie să fie același port pe care clientul încearcă să-l acceseze. Pentru mai multe informații despre utilizarea TCP ListenVI vezi Exemplul TCP Client. 
2. Dacă se stabilește o conexiune, citiți de la port pentru a prelua o comandă. Așa cum s-a discutat în Exemplul TCP Client , trebuie să decideți formatul de comenzi. Dacă dimensiunea unui parametru precede comenzii, citiți lungimea domeniulului și apoi citiți cantitatea de date ce indica lungimea rămasă. 
3. Utilizați funcția TCP Write pentru returnarea rezultatelor. Așa cum s-a discutat în  Exemplul  TCP Client  , datele trebuie să fie într-o formă pe care clientul o poate accepta. 
4. Utilizați funcția TCP  Close Connection pentru a închide conexiunea.

Functii TCP/IP. Descriere

TCP/IP Listen care este ilustrat prin urmatoarea pictograma:

TCP / IP Listen ascultă prin rețea de un alt calculator si încearcă să se conecteze pe portul specificat la intrarea din partea stângă a pictogramei. Acest număr de port trebuie să fie un număr care nu este utilizat de către alte părți ale sistemului, și am folosit 2000, arbitrar.

În cazul în care TCP / IP Listen observa un alt computer care încearcă să se conecteze pe portul corect, stabilește o conexiune ID și un  semnal de eroare , iar aceste rezultate sunt utilizate mai târziu în blocuri TCP /IP VI.

Nu puteți folosi un alt TCIP / IP Listen cu același număr de port odată ce a fost stabilită conexiunea.

net address care specifică o adresă de rețea pentru a asculta. Specificarea unei adrese este utilă dacă aveți mai mult de un card de rețea, cum ar fi două carduri Ethernet, și doriți să ascultați doar pe cardul cu adresa specificată. Dacă nu specificați o adresă de rețea, LabVIEW ascultă pe toate adresele de rețea. Utilizați funcția String to IP pentru a obține adresa IP a calculatorului curent.

service name creează o referință cunoscută pentru numărul portului. Dacă specificați un nume de serviciu, LabVIEW înregistrează numele de serviciu și numărul de port cu NI Service Locator.

port este numărul de port pe care doriți să ascultați pentru o conexiune.

timeout ms specifică timpul, în milisecunde, cat așteaptă VI o conexiune. Dacă o conexiune nu este stabilită în timpul specificat, VI completează și returnează o eroare. Valoarea implicită este -1, ceea ce indică să aștepte la nesfârșit.

error in descrie condițiile de eroare care apar înainte de expirarea acestui nod. Această intrare oferă eroare standard în funcționalitate.

TCP/IP Write care este ilustrat prin urmatoarea pictograma:

TCP / IP Write folosește ID-ul de conectare, care trece, de asemenea la VI-ul următoar, iar semnalul de eroare care trece, de asemenea, si el la VI-ul următoar.

Intrarea este un șir . Este mult mai greu de a utiliza informații numerice direct, așa că va trebui să convertească datele într-un format șir.

Există și alte intrări și ieșiri pe care le-am ignorat, dar puteți specifica un timeout, și puteți obține informații cu privire la numărul de octeți scris în rețea cu acest VI.

error out conține informații de eroare.

TCP Open Connection care este ilustrat prin urmatoarea pictograma:

address  este adresa la care doriți să stabiliți o conexiune. Această adresă poate fi în notație punct IP sau poate fi un nume de gazdă. Dacă nu specificați o adresă, LabVIEW stabilește o conexiune la calculatorul local.

remote port or service name pot accepta un numeric sau o intrare de tip șir.  remote port or service name  este portul sau numele serviciului cu care doriți să stabiliți o conexiune. Dacă specificați un nume de serviciu, LabVIEW interoghează Ni Service Locator pentru numărul portului pe care serverul este înregistrat.

timeout ms  specifică timpul, în milisecunde, în care funcția așteaptă să completeze și să se întoarcă o eroare. Valoarea implicită este de 60.000 ms sau 1 minut. O valoare de -1 indică să aștepte la nesfârșit.

error in  descrie condițiile erorii care apar înainte de expirarea acestui nod. Această intrare oferă o eroare standard in funcționalitate.

local port este portul de conectare locală. Unele servere permit numai conexiuni la clienții care utilizează numere de port într-un interval specific, care este dependent de server. Dacă valoarea este 0, sistemul de operare selectează un port neutilizat. Valoarea implicită este 0.

connection ID  este o conexiune de rețea care identifică în mod unic conexiunea TCP. Utilizați această valoare pentru a face referire la această conexiune în apelurile VI ulterioare.

error out conține informații de eroare. Această ieșire oferă eroare standard în funcționalitate .

TCP/IP Read care este ilustrat prin urmatoarea pictograma:

TCP Create Listener care este ilustrat prin urmatoarea pictograma:

TCP Wait On Listener care este ilustrat prin urmatoarea pictograma:

TCP/IP Close Connection care este ilustrat prin urmatoarea pictograma:

Este utilizat pentru închiderea conexiunii.

Utilizarea LabVIEW cu DataSocket

Introducere

Internetul continuă să devină mai integrat în viața noastră de zi cu zi. Acest lucru este deosebit valabil pentru oamenii de știință și ingineri, pentru că designerii de sisteme de dezvoltare vizualizează Internetul ca un standard de cost-eficiențe la nivel mondial pentru distribuirea datelor. Astăzi, clienții National Instrument pot publica cu ușurință datele din programele lor pe Web folosind LabVIEW și LabWindows / CVI instrument Internet. Cu aceste instrumente pe Internet, programatorii pot crea aplicații care servesc ca imagini ale panourilor frontale ale cererilor lor ca pagini web cu foarte puțin sau nici o programare. Trecând imagini pe Internet este ușor, totuși mulți utilizatori sunt în căutarea pentru mai multe soluții interactive, în care utilizatorii pot controla de fapt experimente de la distanță utilizând un browser Web. Utilizatorii de asemenea, doresc pentru a maximiza performanța, care de multe ori înseamnă trecerea valorilor de date brute, mai degrabă decât de imagini de mari dimensiuni. Îmbunătățirea performanțelor de aplicații Web este posibilă, dar numai cu rețea de specialitate sau pe Internet, cu experiență în programare.

National Instruments oferă acum DataSocket, o noua tehnologie de programare Internet care simplifică schimbul de date între computere și aplicații. Cu DataSocket, programatorii pot trece eficient date brute pe Internet și pot raspunde la mai mulți utilizatori fără complexitatea low-level de programare TCP.

Avantajele folosirii DataSocket

Noțiunile de bază ale componentelor hardware și software legate împreună a avut întotdeauna câteva provocări. De exemplu, prinderea hardware necesită luarea în considerare a nivelurilor de semnal, impedanță, etc. Softwar-ul are propriul set de provocări. Un exemplu bun este portarea de date în și din aplicații. În primul rând, trebuie să măsoare datele brute, care se face cu ajutorul instrumentelor cum ar fi bibliotecile de înaltă performanță pentru controlul instrumentului și achiziție de date. În al doilea rând, trebuie să comunice între programe folosind un alt set de tehnologii. Unele aplicații pur și simplu salvează rezultatele într-un fișier, altele pot folosi TCP personalizat / soluții de rețea IP, DDE, sau activeX. Fiecare mecanism I / O are propriile sale probleme și necesită anumită expertiză pentru punerea în aplicare.

DataSocket este o tehnologie care face parte din suita de măsurare National Instruments, o interfață unică, ușor de utilizat, care oferă acces ușor la mai multe mecanisme I / O, fără încurcarerea utilizatorul final în detalii de nivel scăzut. Se pun împreună tehnologiile de comunicare pentru măsurare și automatizare în același fel cum un browser web pune împreună diferite tehnologii de Internet într-un instrument ușor de utilizat.

Broadcasting Data – un exemplu simplu

National Instruments face mai ușor de configurat un sistem de măsurare stand-alone.

Să presupunem că se dorește partajarea măsurătorilor cu mai multe instrumente. Un scenariu tipic este un laborator de colegiu în cazul în care o mașină controlează experimental în timp ce mai mulți studenți fac propriile lor analize în timp real de la stațiile de lucru individuale. Înainte, pentru a face acest lucru s-ar fi apelat la biblioteca TCP pentru a distribui datele. Aceste biblioteci pot rezolva problema prin mai multe etape:

• Alege un TCP / IP numărul portului (și sper că nu este folosit de alte aplicații de pe sistem)

• Definește protocolul (de exemplu, ce se trimite atunci )

• Configurează serverul de ascultare pe portul selectat și crează conexiunea când inițiați client-cerere.

• Configurați serverul pentru a aplatiza datele și pentru a scrie toate conexiunile.

• Gestionarea oricarei erori

• Configurați aplicațiile client pentru conectarea la portul selectat și afișare.

Atunci când faceți modificări la server, cum ar fi adăugarea unui nou element de date, va trebui să stabilească toți clienții la fel de bine. Cu un efort de lucru mai mare, puteți face o implementare foarte robustă, dar ați adăuga o mulțime de cod pentru simplitatea programului.

Pentru a efectua aceeași sarcină folosind tehnologia DataSocket efectuați etapele urmatoare:

• Deschideți o conexiune datasocket folosind un nume ales pentru a identifica datele.

•Scrieti datele conexiunii pentru a putea calcula noile rezultate.

În acest caz, programarea low-level TCP / IP a fost făcută pentru tine.

Specific măsurare

Tehnologia DataSocket a fost proiectată pentru a satisface nevoile de măsurare și automatizare ale inginerilor. De exemplu, cu TCP / IP trebuie să scrie cod pentru a converti datele de măsurare a unui flux de octeți nestructurat în cererea de radiodifuziune, precum și codul pentru a analiza fluxul de octeți înapoi în forma sa originală.

DataSocket, cu toate acestea,face transferuri de date într-un format de auto-descris care poate reprezenta date dintr-un număr nelimitat de formate, inclusiv coarde, mărimi scalare, booleene, și forme de undă.

DataSocket citește și scrie operațiunile, transformă transparent măsurătorile la și de la care stau la bază fluxurile de octeți , eliminând necesitatea de a scrie codul complicat . În plus, utilizând formatul de date DataSocket, puteți asocia, atribute cu date definite de utilizator. De exemplu, s-ar putea asocia o ștampilă de timp, cu o temperatură măsurată, sau o rată de eșantionare, cu o serie. DataSocket simplifică foarte mult lucrul cu datele de măsurare.

Un URL de orice sursă de date

Înainte de a putea merge mult mai departe, este important să se înțeleagă pe scurt cum DataSocket se conectează la diferite tehnologii I / O. Totul începe cu modul în care numești dispozitivul sau resursele transferate.

De obicei o bibliotecă I / O va avea un 'Open' ,funcția la care se trece un nume sau număr pentru a identifica sursa de la care doriți să citiți sau sa scrieți . Pentru fișierul I / O, numele de resurse este o cale de fișier, pentru TCP / IP sunt două părți numele – un nume de mașină si numarul de port. Cu DataSocket numele resursei este în forma unei adrese URL (uniform resource locator) la fel ca adresa de web familiar utilizat de un web browser. Luați în considerare modul în care un browser web ar interpreta adresa URL http://www.natinst.com/datasocket. Ea spune browser-ului sa utilizeze protocolul TCP / IP numit HTTP (Protocol de transfer de text hiper) pentru a conecta la aparat numit www.natinst.com și să-i aducă pe pagina web numita datasocket. URL-ul este diferit de numele folosite de cele mai multe tehnologii I / O în care nu definește doar ceea ce vă interesează , dar indica și cum să-l procurați. "How" codificat în prima parte a URL-ului este numită metodă de acces sau protocol.

Browserele web folosesc de obicei mai multe metode de acces, cum ar fi HTTP, HTTPS (HTTP criptat), FTP (file transfer protocol), și FILE (pentru citirea fișierelor pe mașina locală). Desigur, nu vă pasă cum, de obicei, este încărcată pagina,ci doar se dorește vizualizarea! DataSocket foloseste aceeași abordare pentru datele de măsurare. De exemplu, în datele de partajare din exemplul descris mai sus, DataSocket ar fi putut folosi următorul URL pentru conectarea la un articol de date: dstp: // mytestmachine / wave1 .

"Dstp" în față. spune ca DataSocket să deschidă o conexiune protocol de transfer de date socket la mașina de testare și aduce un semnal numit wave1.

DataSocket

DataSocket este o noua tehnologie de programare bazată pe standarde TCP / IP, care simplifică schimbul de date direct între diferite aplicații pe un singur calculator sau între calculatoare conectate printr-o rețea. Deși o varietate de diferite tehnologii există astăzi pentru a partaja date între aplicații, cum ar fi TCP / IP și DDE, cele mai multe dintre aceste instrumente nu sunt vizate pentru transferul de date direct. DataSocket implementeaza o programare ușor de utilizat de înaltă performanță ,interfață proiectată pentru partajarea și publicarea datelor în măsurare și aplicații de automatizare.

DataSocket constă din două piese :

API DataSocket

DataSocket Server.

DataSocket API prezintă o interfață unică pentru comunicarea cu mai multe tipuri de date din mai multe limbi. DataSocket Server simplifică comunicare pe Internet prin gestionarea TCP / IP-ului pentru tine.

Functii datasocket

DataSocket Read

Scoate următoarea valoare de date disponibile de la tamponul client-server asociate cu conexiunea pe care o specificați în legătură și returnează datele.

DataSocket Write

DataSocket Open

DataSocket Close

connection id este o conexiune care identifică în mod unic conexiunea.

ms timeout (0) specifică numărul de milisecunde în care funcția așteaptă operația în curs de finalizare. Valoarea implicită este 0, ceea ce înseamnă că funcția nu așteptă pentru a se finaliza operațiunea. Utilizați o valoare timeout de -1 pentru a face funcția aștepte până când operația se încheie.

error in  descrie condițiile eroarii care apar înainte de expirarea acestui nod. Cu următoarea excepție, această intrare oferă o eroare standard în funcționalitate.Acest nod rulează în mod normal , chiar dacă a apărut o eroare înaintea rularii acestui nod. 

timed out returnează FALSE dacă operațiunea realizată în intervalul timeout nu are erori. Dacă ms timeout este 0, timed out  este FALSE.

error out conține informații de eroare. Această ieșire oferă o eroare în standardul de funcționalitate.

DataSocket Select URL

Options  determină dacă un produs PSP, DataSocket, sau OPC sunt afișate în browser. Combină valori pentru a afișa mai multe tipuri de elemente. De exemplu, o intrare de 3 prezintă PSP si DataSocket și o intrare de 7 prezintă toate cele trei tipuri. Valoarea implicită este 0. 

StartURL  specifică URL-ul pentru a deschide caseta de dialog. StartURL poate fi gol, un protocol cum ar fi file:, sau un întreg URL.

Title este titlul din caseta de dialog.

error in descrie condițiile de eroare care apar înainte de rularea acestui nod. Această intrare oferă eroare în standardul de funcționalitate.

Filter  introduce valorile de filtrare în caseta de dialog utilizată. Filtru prezent este activ doar pentru fișiere.

URL Selected este TRUE dacă ați selectat o sursă de date validă.

URL oferă URL-ul sursei de date selectată. Această valoare este valabilă numai dacă URL Selected  este TRUE.

error out conține informații de eroare. Această ieșire oferă eroare în standardul  funcționalitate.

Descrierea aplicației

Se achizitionează un semnal de la o sursă externă(generator de semnal) .Acest semnal este transmis de catre server, și preluat de către client cu ajutorul protocolului TCP/IP . Se urmarește ca evoluția semnalului achiziționat în cadrul serverului să poată fi vizualizată și în cadrul clientului si totodată această achiziție -transmisie sa fie simultană.

Diagrama Client este reprezentată astfel:

Cu ajutorul acestei digrame se preia de la server un anumit șir de biți pe care îl convertește în semnalul inițial achiziționat de la un generator sau o sursă externă de semnal .

La rularea acestui program va aparea urmatoarea fereastră care conține datele corespunzatoare conectării client –server:

Aceste câmpuri sunt completate cu urmatoarele date :

Câmpul Adresa:

se completează cu ip-ul calculatorului pe care este construit serverul.În cazul de față am folosit IP 10.1.2.54.

Câmpul Port :

Se completează cu numarul portului pe care l-am ales (am utilizat portul 2000).

Campul Nume Utilizator și campul Parola Utilizator au fost create pentru o securitate sporită a conexiunii.Acestea sunt precizate în cadrul aplicației client ca și condiții pentru realizarea conexiunii, și anume Nume Utilizator:”student”, respectiv Parola Utilizator:”proiect”.

Diagrama server este ilustrată in urmatoarea figura:

În această diagramă sunt impuse condițiile de realizare a conexiunii clientului la server.Dacă aceste condiții sunt îndeplinite se va activa conexiunea, începând achiziția semnalului iar apoi tranmiterea acestuia de la server către client.

Similar Posts