GS1-128 e Application Identifier: come leggere lotto, scadenza, SSCC e peso con il lettore
Il GS1-128 è un Code 128 che inizia con il carattere FNC1 e contiene dati strutturati con gli Application Identifier (AI): prefissi numerici come (01) per il GTIN, (10) per il lotto, (17) per la scadenza. Le parentesi si vedono solo nel testo stampato, non nei dati letti. I campi variabili sono separati dal carattere GS (ASCII 29), che il lettore deve trasmettere correttamente.
Come funziona un codice GS1-128
Un GS1-128 non è una simbologia diversa dal Code 128: è un Code 128 con regole sui contenuti. Il primo carattere dopo lo start è FNC1, ed è questo che dice al lettore "i dati seguono la sintassi GS1". Poi si susseguono coppie AI + valore:
Testo stampato sotto il codice: (01)18001234567894(17)271231(10)L2405A Dati trasmessi dal lettore: 01180012345678941727123110L2405A
Ripulito: 01 + 18001234567894 (GTIN-14), 17 + 271231 (scadenza 31 dicembre 2027), 10 + L2405A (lotto). La stringa che arriva al PC è un'unica sequenza di caratteri: è il software che deve saperla scomporre. Per farlo a mano o per verificare un'etichetta usa il decodificatore GS1.
Gli Application Identifier più usati
| AI | Contenuto | Formato del valore | Lunghezza |
|---|---|---|---|
| (00) | SSCC, codice dell'unità logistica (pallet, collo) | 18 cifre | Fissa |
| (01) | GTIN dell'articolo | 14 cifre | Fissa |
| (02) | GTIN degli articoli contenuti (si usa con 37) | 14 cifre | Fissa |
| (10) | Lotto | Fino a 20 caratteri alfanumerici | Variabile |
| (11) | Data di produzione | AAMMGG | Fissa |
| (15) | Da consumarsi preferibilmente entro | AAMMGG | Fissa |
| (17) | Data di scadenza | AAMMGG | Fissa |
| (21) | Numero di serie | Fino a 20 caratteri alfanumerici | Variabile |
| (37) | Quantità di articoli contenuti | Fino a 8 cifre | Variabile |
| (3103) | Peso netto in kg con 3 decimali | 6 cifre | Fissa |
| (392n) | Prezzo da pagare, n = decimali | Fino a 15 cifre | Variabile |
| (400) | Numero d'ordine del cliente | Fino a 30 caratteri | Variabile |
Alcune regole da conoscere per interpretare i dati:
- Le date sono AAMMGG. Se il giorno è
00, la data indica il mese intero (si intende l'ultimo giorno del mese). - Il peso (310n): l'ultima cifra dell'AI indica quanti decimali.
3103+012500= 12,500 kg;3102+001250= 12,50 kg. - Il GTIN in (01) è sempre a 14 cifre: un EAN-13 diventa
0+ 13 cifre. Il gestionale che cerca l'EAN-13 deve togliere lo zero iniziale.
Campi variabili e separatore GS
Quando un campo ha lunghezza fissa, il software sa dove finisce. Quando è variabile (lotto, seriale, quantità) e non è l'ultimo, serve un separatore: nel simbolo è un FNC1, nei dati trasmessi diventa il carattere GS, codice ASCII 29 (esadecimale 1D). L'ultimo campo non ha bisogno di separatore.
Testo stampato: (01)18001234567894(10)L2405A(17)271231 Dati trasmessi: 011800123456789410L2405A<GS>17271231
Chi progetta le etichette mette di solito i campi a lunghezza fissa prima e un solo campo variabile in fondo, proprio per evitare il separatore. Ma non sempre è possibile, e le etichette dei fornitori le ricevi come sono.
La lunghezza fissa vale per un elenco di AI predefinito nelle GS1 General Specifications (tra cui 00, 01, 02, 11, 15, 17 e la famiglia 310n): il software lo conosce e non ha bisogno di separatori dopo questi campi.
Il problema del GS in emulazione tastiera
Il GS non è un tasto: in emulazione tastiera molti lettori lo inviano come combinazione Ctrl+], che a seconda del layout del PC e dell'applicazione produce un carattere strano, nulla, oppure un comando. Risultato: lotto e scadenza si "fondono" e il software non riesce a separarli. Le soluzioni (sostituire il GS con un carattere visibile, usare la modalità ALT, passare a porta COM virtuale) sono descritte in carattere GS e FNC1 e in modalità ALT e tastiera universale.
L'etichetta logistica con SSCC
Sul pallet trovi l'etichetta logistica GS1 con l'SSCC in (00): 18 cifre, composte da cifra di estensione, prefisso aziendale, numero seriale e cifra di controllo mod 10.
Testo stampato: (00)380012340000000012 Dati trasmessi: 00380012340000000012 Con AIM ID: ]C100380012340000000012
Il calcolo della cifra di controllo dell'SSCC è spiegato nella pagina sulla cifra di controllo. Per un quadro sull'uso in spedizione vedi logistica e spedizioni.
Lettori e impostazioni
Il GS1-128 si legge con qualsiasi lettore lineare o 2D; è spesso abilitato di fabbrica insieme al Code 128, a volte come opzione separata ("GS1-128" o "UCC/EAN-128"). Le etichette con molti AI diventano lunghe (lo standard ammette fino a 48 caratteri dati e una larghezza massima di 165 mm): un imager lineare o 2D con campo ampio le legge meglio di un laser economico.
Opzioni da verificare nel manuale:
- Trasmissione dell'identificatore AIM: con
]C1il software capisce che deve interpretare la stringa come GS1. Molti software GS1 lo richiedono. - Carattere con cui viene trasmesso FNC1/GS: alcuni lettori permettono di sostituirlo.
- Interpretazione con parentesi: alcuni modelli possono trasmettere il testo con gli AI tra parentesi, utile per la lettura umana ma da evitare se il software si aspetta il formato grezzo.
Caso tipico: un magazzino alimentare legge le etichette dei cartoni in un foglio Excel. Le righe mostrano 011800123456789410L2405A17271231: il GS si è perso e non si sa più se il lotto è L2405A o L2405A17. Impostando il lettore per sostituire il GS con un carattere visibile, per esempio |, i dati arrivano separabili e una formula li divide in colonne.
Errori comuni
- Stampare le parentesi nei dati. Le parentesi vanno solo nel testo leggibile; un generatore non GS1 le codifica come caratteri e il codice non è più un GS1-128 valido.
- Codice generato senza FNC1 iniziale: il lettore lo legge come Code 128 normale (
]C0) e i software GS1 lo rifiutano. - GTIN a 13 cifre in (01): va sempre completato a 14 con lo zero iniziale.
- Data in formato GGMMAA: il formato GS1 è AAMMGG.
Domande frequenti
Che differenza c'è tra GS1-128 ed EAN-128?
Nessuna: EAN-128 e UCC/EAN-128 sono i nomi precedenti della stessa simbologia. Nei manuali dei lettori trovi ancora spesso questi nomi.
Gli Application Identifier esistono anche nei codici 2D?
Sì: GS1 DataMatrix, GS1 QR Code e GS1 DataBar Expanded usano la stessa sintassi. I dati trasmessi sono identici, cambia solo l'identificatore AIM. Vedi Data Matrix.
Il mio gestionale vuole solo il GTIN: come lo estraggo?
Se il codice inizia con 01, le 14 cifre successive sono il GTIN. Puoi estrarlo nel software oppure, su molti lettori, con regole di formattazione dei dati.
Fonti e riferimenti
Altro in Tipi di codici a barre
- Tipi di codici a barre: tabella comparativa completa
- Cifra di controllo: calcolo EAN, UPC, GTIN e SSCC
- Code 39: caratteri, mod 43, Code 32 e impostazioni
- Codici lineari e codici 2D: differenze e lettori adatti
- EAN-13 ed EAN-8: struttura, prefissi e lettura
- GS1 DataBar: varianti, uso e impostazioni del lettore
- Interleaved 2 of 5 e ITF-14: struttura e lettura
- PDF417: struttura, capacità e lettori compatibili
- QR Code: struttura, capacità e lettura con lo scanner
- UPC-A e UPC-E: struttura, conversioni e lettura