Caratteri mancanti, letture doppie o cifre ripetute: come sistemare il lettore
Se il lettore perde caratteri in punti casuali, il programma non regge la velocità con cui il lettore "digita": si risolve con un piccolo ritardo tra caratteri. Se lo stesso codice viene registrato due volte, il timeout di rilettura dello stesso codice è troppo breve o la modalità di scansione è continua. Cifre ripetute decine di volte indicano invece un tasto rimasto "premuto", tipico del wireless.
Riconosci lo schema dell'errore
Scansiona lo stesso codice dieci volte nel test lettore codici a barre, che mostra anche i tempi tra un carattere e l'altro. Poi confronta con questi schemi. Codice letto: 8001234567890.
Schema A, caratteri persi a caso: 800124567890 80012345690 8001234567890 Schema B, lettura doppia: 8001234567890 8001234567890 Schema C, carattere ripetuto: 800123456777777777777777777 Schema D, sempre lo stesso pezzo mancante: 001234567890
| Schema | Causa probabile | Rimedio |
|---|---|---|
| A: caratteri persi in punti diversi | Programma lento, desktop remoto, web app pesante | Ritardo tra caratteri di qualche millisecondo |
| B: stesso codice due volte | Timeout di rilettura breve, modalità continua o da banco | Aumenta il timeout dello stesso codice |
| C: un carattere ripetuto a lungo | Rilascio del tasto perso (Bluetooth, hub USB) | Migliora il collegamento; vedi sotto |
| D: sempre gli stessi caratteri mancanti | Formattazione del dato (cifre eliminate di proposito) | Controlla le opzioni di trasmissione del lettore |
Caratteri persi: il ritardo tra caratteri
Un lettore in emulazione tastiera può inviare un codice di 13 cifre in pochi millisecondi, molto più velocemente di qualsiasi persona. La maggior parte dei programmi lo regge. Alcuni no:
- Desktop remoto e ambienti virtualizzati, dove ogni tasto viaggia in rete e può arrivare fuori tempo o essere scartato.
- Applicazioni web che a ogni tasto lanciano una ricerca o un completamento automatico e rallentano la pagina. Vedi lettore in applicazioni web.
- Vecchi gestionali o terminali emulati che leggono la tastiera a intervalli.
- Computer molto carichi nel momento della lettura.
- Cerca l'impostazione nel manuale. Le voci sono "Intercharacter Delay", "Inter-keystroke delay", "Character delay" o simili. Alcuni lettori hanno anche un ritardo dopo il codice o prima del suffisso.
- Parti da un valore basso. Imposta pochi millisecondi (molti manuali offrono valori prestabiliti come 5, 10, 20 ms; i valori disponibili dipendono dal modello).
- Prova nel programma reale. Scansiona venti volte. Se l'errore resta, aumenta un passo alla volta. Un ritardo eccessivo rallenta visibilmente la lettura dei codici lunghi, come QR e GS1.
Il funzionamento dei ritardi è spiegato in dettaglio in ritardo tra caratteri.
Se mancano solo i primi caratteri dopo un Invio, il problema può essere il programma che, dopo aver ricevuto il codice precedente, impiega un momento per pulire il campo. Un ritardo dopo il suffisso o un suffisso Tab invece di Invio può bastare.
Letture doppie: modalità e timeout
Nelle modalità a presentazione (lettore da banco) o continua, il lettore resta acceso e rilegge tutto quello che passa davanti. Per evitare di registrare due volte lo stesso prodotto usa un timeout per lo stesso codice (spesso "Same Symbol Timeout", "Reread Delay" o "Double Read Timeout"): per quel tempo lo stesso codice viene ignorato.
- Timeout troppo breve: un prodotto fermo davanti al lettore viene registrato due o tre volte.
- Timeout troppo lungo: in cassa non riesci a battere due confezioni identiche una dopo l'altra senza aspettare.
Con un lettore a pistola usato a grilletto, le letture doppie sono rare: se succedono, controlla che il lettore non sia stato messo in modalità continua o a presentazione. Le modalità sono descritte in modalità di scansione.
Caso tipico: in una cassa con lettore da banco, le bottiglie d'acqua vengono registrate due volte. L'operatore le passa lentamente e il lettore le rilegge dopo il timeout. Aumentare un poco il timeout dello stesso codice risolve senza impedire di battere più confezioni uguali con un movimento normale.
Caratteri ripetuti all'infinito
Un tasto premuto in emulazione tastiera è fatto di due messaggi: "premuto" e "rilasciato". Se il secondo va perso, il sistema operativo applica la ripetizione automatica come se tenessi premuto il tasto. Succede quasi solo con lettori senza fili al limite della portata, con batteria scarica o con hub USB difettosi.
- Avvicina il lettore alla base o al PC e ricarica la batteria.
- Collega il ricevitore direttamente al PC, senza hub.
- Controlla gli altri sintomi di instabilità in Bluetooth che si disconnette.
Pezzi mancanti sempre uguali
Se manca sempre lo stesso carattere (per esempio la prima o l'ultima cifra), non è un problema di velocità: il lettore è configurato per non trasmetterlo. Esempi frequenti:
- cifra di controllo esclusa per EAN, UPC, Code 39 o ITF;
- UPC-A trasmesso senza lo zero iniziale o, al contrario, convertito in EAN-13 con uno zero in più;
- regole di formattazione dei dati che tagliano una parte del codice.
Controlla le opzioni della simbologia in abilitare le simbologie e le regole in formattazione dei dati.
Prevenzione
- Quando introduci un nuovo programma o un desktop remoto, fai una prova di cinquanta letture consecutive prima di andare in produzione.
- Imposta il ritardo minimo che elimina l'errore, non un valore alto "per sicurezza".
- In cassa, regola il timeout dello stesso codice con gli operatori, sul flusso reale di lavoro.
Domande frequenti
Perché con il Blocco note funziona e con il gestionale perde cifre?
Il Blocco note riceve i tasti senza elaborazioni; il gestionale magari cerca l'articolo a ogni tasto o gira in sessione remota. È il segnale tipico che serve un ritardo tra caratteri.
Le letture doppie possono dipendere dal programma?
Sì, se il programma considera due Invio come due conferme. Controlla nel test lettore che arrivi un solo codice con un solo suffisso: se è così, la doppia registrazione nasce nel programma.
Il ritardo tra caratteri rallenta il lavoro?
Con pochi millisecondi la differenza non si percepisce sugli EAN. Su un QR di centinaia di caratteri il tempo di digitazione diventa visibile: valuta l'interfaccia seriale per codici molto lunghi.
Fonti e riferimenti
- USB Implementers Forum, HID Usage Tables e specifica della classe HID (report di pressione e rilascio dei tasti).
- Product Reference Guide dei produttori, sezioni Keyboard Wedge timing, Same Symbol Timeout e Data Formatting: Zebra, Honeywell, Datalogic.
- GS1 General Specifications, struttura di EAN-13 e UPC-A: gs1.org.
Altro in Problemi e risoluzione
- Lettore codici a barre non funziona: diagnosi e soluzioni
- Lettore fa beep ma non scrive: cause e soluzioni
- Lettore legge solo alcuni codici: simbologie e limiti
- Lettore non invia Invio dopo la lettura: come risolvere
- Lettore non riconosciuto dal PC: Windows, Mac e Linux
- Lettore non si accende o non fa beep: cosa controllare
- Lettore scrive caratteri sbagliati: layout tastiera
- Ripristino impostazioni di fabbrica del lettore: guida