Labview e la porta seriale

Attualmente ci sono molte strumentazioni dotati di porta seriale. Come possiamo comunicare con loro in un modo semplice? La risposta è Labview. In questo articolo analizzeremo un semplice programma che ci permetterà di comunicare con il dispositivo via RS232. In un prossimo articolo vedremo come comunicare da remoto con la porta seriale.

Innanzituto vediamo che cosè la porta seriale conosciuta anche come porta RS232 (figura 1).

Figura 1: piedinatura RS232.

Figura 1: piedinatura RS232.

La porta seriale permette lo scambio di informazioni digitali tra due dispositivi.  Il protocollo utilizzato è di tipo seriale, ovvero le informazioni sono trasmessi uno alla volta su un unico filo e asincrono, ovvero i dati sono trasmessi senza l’utilizzo di un clock.  La tensione di uscita da un trasmettitore RS232 deve essere compresa in valore assoluto tra 5V e 25V (quest’ultimo valore ridotto a 13V in alcune revisioni dello standard). A volte le tensioni in uscita sono intenzionalmente diminuite a +/- 6V anziché 12V per permettere minori emissioni EMC, peraltro sempre critiche, e favorire maggiori velocità di trasmissione. Il ricevitore deve funzionare correttamente con tensioni di ingresso comprese, sempre in modulo, tra i 3V ed i 25V. Molti ricevitori commerciali considerano semplicemente una tensione di soglia al valore di +2V (sopra viene riconosciuto un segnale alto, sotto uno basso) anche se ciò non è pienamente aderente alla norme. L’impedenza di uscita del trasmettitore deve in ogni situazione essere maggiore di 300 ohm; l’impedenza di ingresso deve essere compresa tra i 3 ed i 7 kohm, anche a dispositivo spento. La corrente prelevabile in uscita mantenendo  i corretti valori logici deve essere di almeno di 1.6 mA (potrebbe però essere maggiore, anche di un ordine di grandezza) e nel caso di corto circuito deve comunque essere minore di 100mA. Il  formato del pacchetto trasmesso via seriale è indicato da una sigla composta da numeri e cifre:

» La prima cifra indica quanti bit sono trasmessi

» La prima lettera il tipo di parità

» La seconda cifra il numero di bit stop. Oltre ai bit dei dati (in numero variabile tra 5 ed 9) viene inserito un bit di parità (opzionale) per verificare la correttezza del dato ricevuto. Esistono cinque tipi di parità:

» None: nessun tipo di parità, cioè nessun bit aggiunto.

» Pari (even):  il numero di mark (incluso il bit di parità) è sempre pari.

» Dispari (odd): il numero di mark (incluso il bit di parità) è sempre dispari.

» Mark: il bit di parità vale sempre mark.

» Space: il bit di parità vale sempre space. Nella comunicazione  seriale vengono utilizzati principalmente 6 segnali: RXD, TXD, RTS, CTS, DSR, DTR.
RXD: (Receveid data) dati ricevuti. Linea usata dal DTE per ricevere i dati inviati dal DCE.
TXD: (Trasmitted Data) dati trasmessi. Linea usata dal DTE per la trasmissione dei dati al DCE.
RTS: (Request to send) richiesta di invio. Linea attivata dal DTE per impegnare il DCE all’invio dei dati.
CTS: (Clear to send) disponibilità all’invio. Linea attivata dal DCE per notificare al DTE la propria disponibilità all’invio dei dati.
DTR: (Data terminal ready) terminale dei dati pronto.Linea attivata dal DTE quando vuol segnalare al DCE il proprio  stato di servizio attivo.
DSR: (Data set ready) apparecchiatura di connessione pronta. Linea attivata dal DCE, in risposta al DTR, quando vuol segnalare al DTE che la connessione con l’apparato remoto è attiva. Inoltre è presente anche il segnale relativo alla massa del dispositivo: SIGNAL GROUND.

Labview

LabVIEW (abbreviazione di Laboratory Virtual Instrumentation Engineering Workbench) è l’ambiente di sviluppo integrato per il linguaggio di programmazione visuale di National Instruments. Tale linguaggio grafico viene chiamato Linguaggio G. Originalmente realizzato per Apple Macintosh nel 1986, LabVIEW viene utilizzato principalmente per acquisizione e analisi dati, controllo di processi, generazione di rapporti, o più generalmente per tutto ciò che concerne l’automazione industriale su diverse piattaforme come Windows, Solaris, Linux, Mac OS, e controllori National Instruments.

Il programma

Come possiamo comunicare con il dispositivo via seriale per mezzo di Labview? Per fare questo dobbiamo innanzitutto creare un protocollo di operazioni; per poter comunicare con una porta seriale sono necessari le seguenti operazioni:

» Apertura  della porta seriale

» Scrittura sulla porta seriale

» Lettura della porta seriale

» Chiusura  porta seriale.

Ogni operazione (figure 2 e 3) è realizzata per mezzo di opportune librerie proprie di labview create appositamente per l’interfaccia seriale.

Figura 2: Open/Close RS232.

Figura 2: Open/Close RS232.

Figura 3: Read/Write RS232

Figura 3: Read/Write RS232

Con l’apertura della porta seriale (figura 4) vengono settati, tipici per ogni dispositivo,  i seguenti parametri:

» Bit dati,

» Bit di parità,

» Bit di stop,

» Baud Rate

Figura 4: tipico segnale seriale.

Figura 4: tipico segnale seriale.

Successivamente si realizza la vera connessione con la porta per mezzo della libreria “Write” (figura 3). Questa libreria ha il compito di predisporre il dispositivo in modo da ricevere i vari comandi. Ogni dispositivo dotato di porta seriale avrà un proprio linguaggio che permetterà all’utente di interagire molto facilmente. In seguito alla scrittura del comando via seriale è sufficiente un tempo di attesa per permettere al dispositivo di interpretare  il comando è rendere disponibile in uscita la risposta che sarà opportunamente letta per mezzo della libreria “Read” propria del Labview. Nella funzione “Read” è consigliabile inserire l’informazione relativa al numero di byte che devono essere letti; questa proprietà cambia da dispositivo a dispositivo. Come si può osservare Labview mette a disposizione librerie grafiche per la porta RS232; il programma completo (figura 7) è visualizzato in figura 5 e 6.

Figura 5: programma Seriale Labview.

Figura 5: programma Seriale Labview.

 

Figura 6: Front Panel del programma Seriale.

Figura 6: Front Panel del programma Seriale.

L’utente può ovviamente modificare il programma  a suo piacimento: una possibile modifica è quella di inserire un ciclo “While” per avere una lettura continua (si pensi ad un termometro comandato via seriale) e un “Graph” per visualizzare instante per instante il valore letto. Dall’analisi del programma si osserva come in linea di principio si stanno utilizzando solo due segnali seriali: trasmissione  e ricezione. Infatti la porta seriale, anche se dotata di 9 pin, è comunemente usata a 3 pin: massa, ricezione e trasmissione.

Figura 7: schema a blocchi del programma.

Figura 7: schema a blocchi del programma.

Il futuro

Questo programma è molto importante per applicazioni di acquisizione dati via seriale. E’ sufficiente avere una versione di Labview non troppo “vecchia”.  Adesso vogliamo però gestire tutto questo via remoto, come possiamo farlo? L’idea, che sarà sviluppata in uno dei prossimi articoli, consiste nel realizzare una comunicazione remota utilizzando librerie TCP/IP di labview che si interfacciano con la porta seriale (figura 8).

Figura 8: TCP/IP e RS232.

Figura 8: TCP/IP e RS232.

Seguirà un vero e proprio esempio di sistema di acquisizione dati per dispositivi seriali.

 

 

Una risposta

  1. Maurizio Di Paolo Emilio Maurizio Di Paolo Emilio 20 agosto 2018

Scrivi un commento

EOS-Academy

Ricevi GRATIS le pillole di Elettronica

Ricevi via EMAIL 10 articoli tecnici di approfondimento sulle ultime tecnologie