Lettori di codici a barre seriali RS232: collegamento, parametri e alimentazione
Un lettore RS232 invia i dati come flusso seriale su un connettore DB9 (o simile): il dispositivo ricevente deve aprire la porta con gli stessi parametri del lettore, di solito velocità, bit di dati, parità e bit di stop (es. 9600 8N1). Molti lettori seriali non prendono corrente dalla porta e richiedono un alimentatore esterno o un cavo con presa di alimentazione.
Dove si usa ancora la seriale
L'RS232 sembra superata, ma resta comune in:
- registratori di cassa e bilance con ingresso seriale per il lettore;
- macchinari, PLC e sistemi industriali (vedi lettori industriali);
- software gestionali scritti per leggere da porta COM;
- terminali e sistemi embedded senza stack USB HID.
Sui PC moderni spesso la soluzione più semplice è un lettore USB in COM virtuale: il software vede una porta seriale senza cavi seriali veri.
I parametri da far coincidere
| Parametro | Valori comuni | Se non coincide |
|---|---|---|
| Velocità (baud rate) | 9600 (molto comune), 19200, 38400, 115200 | Caratteri casuali o nessun dato |
| Bit di dati | 8 (a volte 7) | Caratteri sbagliati |
| Parità | Nessuna (N), pari (E), dispari (O) | Errori o caratteri alterati |
| Bit di stop | 1 (a volte 2) | Errori sporadici |
| Controllo di flusso | Nessuno, RTS/CTS hardware, XON/XOFF | Il lettore non trasmette o si blocca |
| Terminatore | CR, CR+LF, nessuno | Il software non capisce dove finisce il codice |
La notazione "9600 8N1" significa 9600 baud, 8 bit di dati, nessuna parità, 1 bit di stop. I valori predefiniti del lettore sono nel Product Reference Guide, nella sezione RS232; quelli del ricevente nel suo manuale. Il terminatore si configura come suffisso: vedi aggiungere Invio o Tab e la tabella caratteri di controllo ASCII.
Cablaggio e alimentazione
Due aspetti causano la maggior parte dei problemi d'installazione:
Alimentazione
Una porta seriale standard non fornisce alimentazione. I lettori RS232 risolvono in tre modi: alimentatore esterno collegato al cavo, cavo con presa per prelevare alimentazione dalla tastiera o da USB, oppure alimentazione fornita su un pin del connettore da registratori e terminali che lo prevedono (non standard, dipende dal dispositivo). Se il lettore non si accende, prima di tutto verifica questo punto (vedi lettore che non si accende).
Non collegare un alimentatore "che ha lo stesso spinotto": tensione e polarità devono essere quelle indicate dal produttore del lettore. Un alimentatore sbagliato può danneggiare il lettore in modo permanente.
Cavo diritto o incrociato
Tra due dispositivi entrambi configurati come DTE può servire un cavo null modem (TX e RX incrociati). I cavi seriali dei lettori sono generalmente costruiti per collegarsi direttamente al PC; per registratori, bilance e PLC serve spesso un cavo specifico o un adattatore, indicato dal produttore del dispositivo ricevente. Approfondisci in cavi e interfacce.
Usare un lettore RS232 su un PC moderno
- Adattatore USB-seriale di buona qualità: Windows crea una porta COM, visibile in Gestione dispositivi sotto "Porte (COM e LPT)". Alcuni adattatori richiedono il driver del produttore del chip.
- Alimenta il lettore con il suo alimentatore: l'adattatore non lo fa.
- Apri un terminale seriale sulla COM creata, con i parametri del lettore.
- Leggi un codice di prova: se vedi i dati corretti, configura il software con gli stessi parametri. Se vedi simboli casuali, la velocità non coincide.
Un lettore RS232 non scrive nei programmi come una tastiera. Se ti serve inserire i dati in Excel o nel browser, servono un programma "wedge" che legga la seriale e simuli la tastiera, oppure un lettore USB HID.
Diagnosi rapida
| Sintomo | Possibili cause |
|---|---|
| Nessuna luce, nessun beep | Manca l'alimentazione |
| Beep ma nessun dato | Cavo non adatto, TX/RX invertiti, controllo di flusso RTS/CTS attivo su un lato solo, porta COM sbagliata |
| Dati illeggibili (simboli strani) | Baud rate, parità o bit di dati diversi |
| Codici attaccati tra loro | Manca il terminatore CR o CR+LF |
| Funziona a tratti | Connettore allentato, cavo danneggiato, adattatore USB economico |
Ricorda che sul lato lettore molti modelli usano connettori a innesto modulare simili a quelli di rete: sono interfacce proprietarie, non porte Ethernet. Il cavo seriale giusto è quello specifico per il modello e per l'interfaccia RS232.
Cosa vedi in un terminale seriale
Con parametri corretti e terminatore CR+LF, leggendo tre codici ottieni righe pulite:
8001234567897 ABC-1234 2301234003491
Con la velocità sbagliata (per esempio lettore a 9600 e terminale a 115200) vedi invece sequenze di simboli casuali o nessun carattere, anche se il lettore emette regolarmente il beep di lettura. Con la parità sbagliata alcune cifre possono uscire giuste e altre no: è il segnale tipico di un problema di parametri, non del cavo. Se il terminale mostra i codici tutti attaccati su una riga, manca il terminatore: aggiungilo come suffisso sul lettore.
Un terminale seriale è anche il modo più rapido per capire se il problema è del lettore o del software: se nel terminale i dati sono corretti, il lettore è a posto e va rivista la configurazione del programma ricevente.
Domande frequenti
Posso trasformare un lettore USB in RS232 cambiando cavo?
Su molti lettori professionali multi-interfaccia sì: si cambia cavo e si seleziona l'interfaccia RS232 con il codice del manuale. Sui lettori economici con cavo fisso in genere no.
Quale baud rate scegliere?
Quello richiesto dal dispositivo ricevente. Se puoi scegliere, 9600 è ampiamente supportato e più che sufficiente per codici lineari; per QR e codici 2D lunghi una velocità maggiore riduce il tempo di trasmissione.
Un registratore telematico accetta lettori seriali?
Alcuni modelli sì, con un cavo e una configurazione specifici. Vedi lettore e registratore telematico e controlla il manuale del registratore.
Fonti e riferimenti
- Standard TIA/EIA-232 per l'interfaccia seriale.
- Sezioni RS232 dei Product Reference Guide: Honeywell, Zebra, Datalogic, Newland.
- Supporto Microsoft su Gestione dispositivi e porte COM: support.microsoft.com.