Tipi di codici a barre

Code 128: come funziona, set di caratteri, cifra di controllo e cosa arriva al PC

Il Code 128 è il codice lineare più versatile: codifica tutti i 128 caratteri ASCII, è compatto e include sempre una cifra di controllo mod 103 che il lettore verifica e non trasmette. È lo standard per etichette di magazzino, spedizioni e codici interni. Lo leggono tutti i lettori ed è quasi sempre abilitato di fabbrica.

Come è fatto un Code 128

Un simbolo Code 128 è composto da:

  1. Zona di rispetto a sinistra, almeno 10 moduli.
  2. Carattere di start, che stabilisce il set di partenza: Start A, Start B o Start C.
  3. Caratteri dati: ognuno è largo 11 moduli e formato da 3 barre e 3 spazi, con larghezze da 1 a 4 moduli.
  4. Carattere di controllo mod 103.
  5. Stop (13 moduli) e zona di rispetto finale.

Il testo leggibile sotto il codice non contiene start, stop né cifra di controllo: mostra solo i dati.

I tre set di caratteri

Set di codifica del Code 128
SetContenutoUso tipico
AMaiuscole, cifre, punteggiatura e caratteri di controllo ASCII 0-31Dati con caratteri di controllo (Tab, CR) incorporati
BMaiuscole, minuscole, cifre e punteggiatura (ASCII 32-127)Testo misto, codici articolo alfanumerici
CCoppie di cifre da 00 a 99, una coppia per carattereLunghe sequenze numeriche: dimezza la lunghezza

Il generatore passa automaticamente da un set all'altro con i caratteri speciali CODE A/B/C e SHIFT, scegliendo la combinazione più corta. Per questo un codice di 12 cifre in Code 128 è molto più corto dello stesso in Code 39. I caratteri ASCII oltre il 127 (lettere accentate) si codificano con FNC4, ma il supporto è disomogeneo tra lettori e software: per etichette interne evita gli accenti.

Cifra di controllo mod 103

La cifra di controllo è obbligatoria e viene calcolata automaticamente dal software che genera il codice. Si sommano il valore dello start e i valori di ogni carattere moltiplicati per la loro posizione (1, 2, 3...), poi si prende il resto della divisione per 103.

Esempio in set B con il testo ABC: Start B vale 104; in set B il valore di un carattere è il suo codice ASCII meno 32, quindi A = 33, B = 34, C = 35. Somma: 104 + 33×1 + 34×2 + 35×3 = 104 + 33 + 68 + 105 = 310. 310 mod 103 = 1. Il carattere di controllo è quello di valore 1.

Il lettore verifica il controllo e poi lo scarta: non viene mai trasmesso e non esiste un'opzione per farlo arrivare. Se nel gestionale ti serve una cifra di controllo (per esempio quella di un GTIN o di un SSCC), deve far parte dei dati codificati, come avviene nel GS1-128. Le altre cifre di controllo sono spiegate nella pagina sulla cifra di controllo.

FNC1 e la differenza con GS1-128

Il Code 128 dispone di quattro caratteri funzione (FNC1-FNC4) che non corrispondono a caratteri ASCII. Il più importante è FNC1: se è il primo carattere dopo lo start, il codice diventa un GS1-128 e i dati seguono la sintassi degli Application Identifier. Se compare più avanti, fa da separatore tra campi a lunghezza variabile e il lettore lo trasmette come carattere GS (ASCII 29). In emulazione tastiera questo carattere crea spesso problemi: vedi carattere GS e FNC1.

Lettori compatibili e impostazioni

Il Code 128 si legge con laser, imager lineari, imager 2D e smartphone. È di solito abilitato di fabbrica; il GS1-128 a volte ha un'opzione separata. Impostazioni da conoscere:

Opzioni tipiche del Code 128 sui lettori
OpzioneDefault frequenteQuando cambiarla
Lunghezza minima e massimaAmpia (per esempio da 1 a 80 caratteri, varia per modello)Se compaiono letture parziali, restringi l'intervallo alle lunghezze reali
GS1-128 (UCC/EAN-128)Spesso abilitatoDisabilitalo se non usi codici GS1 e vuoi escluderli
Trasmissione FNC1 / carattere GSVariaSe il separatore non arriva o produce caratteri strani
Concatenazione (append)DisabilitataQuasi mai: unisce più codici in uno
ISBT 128DisabilitatoSolo per centri trasfusionali

I nomi esatti e i valori predefiniti sono nel manuale del tuo modello; la procedura generale è nella guida su come abilitare le simbologie.

Cosa riceve il PC

Arrivano solo i dati, seguiti dal suffisso (di solito Invio). Se attivi l'identificatore AIM, il Code 128 standard è preceduto da ]C0, il GS1-128 da ]C1.

Etichetta ubicazione:          MAG-A12-03<CR>
Stessa, con AIM ID:            ]C0MAG-A12-03<CR>
Stessa, lettore US su PC IT:   MAG'A12'03<CR>

L'ultima riga mostra l'errore più frequente in Italia: il trattino diventa apostrofo perché il lettore usa il layout tastiera US. Le lettere e le cifre restano corrette, quindi il problema si nota solo sui codici con simboli. Soluzione in il lettore scrive caratteri sbagliati.

Problemi di lettura comuni

  • Codici molto lunghi stampati su etichette strette diventano ad alta densità: un laser economico o un lettore con campo stretto fatica. Usa caratteri numerici in coppia (set C), riduci i dati o passa a un 2D. Vedi codici piccoli e alta densità.
  • Margini tagliati: molte stampanti di etichette mettono il codice a filo del bordo. Senza i 10 moduli di zona di rispetto la lettura diventa intermittente.
  • Stampa termica con testina usurata: le righe bianche verticali spezzano le barre. Il lettore legge "a tratti" o non legge. Controlla la testina.
  • Lettere minuscole che arrivano maiuscole (o il contrario): il PC ha il Blocco Maiuscole attivo. Vedi maiuscole, minuscole e blocco maiuscole.

Per stampare un'etichetta di prova Code 128 e verificare che il lettore trasmetta esattamente quello che ti aspetti, usa il generatore di codici a barre e poi il test del lettore: inserisci un trattino, una barra e una minuscola nel testo, così verifichi in un colpo solo layout tastiera e maiuscole.

Domande frequenti

Code 128 o Code 39 per le etichette interne?

Code 128, salvo vincoli di compatibilità con vecchi sistemi. È più compatto, gestisce minuscole e simboli e ha un controllo obbligatorio. Il confronto è nella pagina Code 39.

Qual è la lunghezza massima di un Code 128?

Lo standard non fissa un limite rigido; il vincolo pratico è la larghezza fisica e la capacità del lettore. Oltre 30-40 caratteri conviene un codice 2D. Il GS1-128 invece ha un massimo di 48 caratteri dati.

Perché la cifra di controllo non compare nei dati letti?

Perché nel Code 128 serve solo al lettore per validare la lettura: viene sempre rimossa prima della trasmissione.

Fonti e riferimenti

  • ISO/IEC 15417, specifica della simbologia Code 128, ISO
  • GS1 General Specifications, sezione GS1-128, GS1
  • Product Reference Guide del lettore in uso, sezione Code 128 (lunghezze, GS1-128, ISBT 128)

Altro in Tipi di codici a barre

Tutta la sezione Tipi di codici a barre