Code 128 è un codice a barre che permette di rappresentare tutti e 128 caratteri del codice ASCII (a 7 bit). Le specifiche di riferimento sono espresse dal ISO/IEC 15417:2007.

Prevede tre tipi di codifiche che possono coesistere contemporaneamente in un unico codice a barre: Code 128A, Code 128B, Code 128C.

Un'applicazione molto diffusa in ambito logistico del code 128 è il GS1-128.

Applicazioni Un sottoinsieme del Code 128, molto diffuso in ambito logistico (spedizioni e confezionamento), è il GS1-128 (conosciuto come UCC/EAN-128). È usato per l'identificazione dei container e dei pallet nella catena di distribuzione. Lo standard di riferimento è ISO/IEC 15417:2007.

Specifiche

Un codice a barre Code 128 prevede sei sezioni:

carattere di start codifica dei dati codice di controllo carattere di stop Quiet Zone ovvero l'area che intercorre tra il codice a barre e altre linee verticali

Il codice di controllo è calcolato da una produttoria (modulo 103) di tutti i caratteri.

Tipologie di Code 128 Code 128 prevede 107 simboli: 103 simboli per i dati, 3 simboli di start, 1 simbolo di stop. Per rappresentare tutti e 128 caratteri ASCII, ci sono tre set di caratteri (A, B, C), i quali possono essere fusi in un unico codice a barre (usando codici 98 e 99 tra i set di caratteri A e B, 100 tra i set di caratteri A e C, 101 tra i set di caratteri B e C): 128A (Code Set A) - codici ASCII da 00 a 95 (0-9, A-Z e codici di controllo), caratteri speciali, e FNC 1-4 128B (Code Set B) - codici ASCII da 32 a 127 (0-9, A-Z, a-z), caratteri speciali, e FNC 1-4 128C (Code Set C) - 00-99 (ciascuna coppia di numeri viene codificata con un solo codice) e FNC1

Quiet zone Per Quiet zone si intende l'area che intercorre tra il codice a barre e altre linee verticali. La Quiet zone dovrebbe essere almeno dieci volte la larghezza della barra più stretta / elemento spazio. È obbligatoria sul lato destro e sinistro del codice a barre. La quiet zone non deve essere inferiore a 6,4 millimetri di larghezza.

Bit di Start/Bit di stop e codifica dei dati Ogni carattere del codice a barre: è composto da tre barre e tre spazi. (il bit di stop possiede un'ulteriore barra aggiuntiva di lunghezza 2) ogni barra o spazio ha una larghezza di 1, 2, 3 o 4 unità di larghezza la somma delle larghezze delle barre deve essere pari la somma delle larghezze degli spazi deve essere dispari la somma totale di barre e spazi deve essere uguale a 11 unità di larghezza per carattere Per esempio, la codifica ASCII del valore 0 può essere vista come 10011101100, dove la cifra 1 (uno) è una barra e lo 0 è uno spazio. Una combinazione che contiene un singolo 1 sarebbe la linea più sottile del codice a barre. Una combinazione di tre 1 (111) in sequenza indica una barra tre volte più spessa rispetto ad una singola barra 1.

Calcolo del codice di controllo Il codice di controllo è un Modulo 103 checksum. Viene calcolato sommando il 'valore' del codice di start ai prodotti di ogni carattere moltiplicato per la sua posizione nella stringa del codice a barre. Il carattere di start e il primo valore codificato è in posizione 1. La somma del valore del codice di start ed i prodotti vengono poi divisi per 103. Il resto della divisione è la cifra di controllo del 'valore' che viene poi convertito in un carattere aggiunto alla fine del codice a barre.

Utilizzo FNC4 per codificare i caratteri Latin-1 (160-255) Funzione 4 (FNC4) può essere utilizzato per codificare, in un codice a barre Code 128, tutti i caratteri dello standard LATIN-1 (ISO-8859-1, ovvero una specifica dello ISO-8859). Nei codici a barre vengono memorizzati i 7 bit meno significativi del carattere da codificare; viene usato il delimitatore FNC4 (singolo o doppio) per indicare che i caratteri sono ASCII esteso e che per essere decodificati deve venir sommato 128 al valore ASCII. In fase di decodifica (da codice a barre a stringa), quando un singolo FNC4 è presente in una stringa, il carattere successivo sarà un carattere ASCII esteso (160-255). Per evitare di dover usare un FNC4 per ogni carattere ASCII esteso, è prevista una modalità per passare da ASCII standard ad ASCII esteso: tutto il testo in ASCII esteso dovrà essere delimitato da due coppie di FNC4. Un singolo FNC4 all'interno di due coppie FNC4, indica che il carattere successivo è un carattere ASCII standard. Larghezze delle barre e degli spazi Il Code128 prevede una combinazione di 6 barre e spazi per ogni carattere, tranne il carattere di stop, che ne utilizza 7. Così, ogni carattere inizia con una barra e termina con uno spazio (con l'eccezione del carattere di stop, che termina con una barra). Le seguenti tabelle dettagliano le larghezze associate a ciascuna barra e spazio per ciascun carattere. La larghezza di ciascuna barra o spazio può essere di 1, 2, 3 o 4 unità. Nelle tabelle seguenti, una 'A' sarà rappresentata con il pattern 10100011000, o 111323 come sequenza delle larghezze di barre e spazi.

+ Code 128 Valore 128A 128B 128C codice ASCII (Common/Barcodesoft) Caratteri (Common/Barcodesoft) Pattern delle Barre/Spazi Larghezza delle Barre/Spazi 0 spazio spazio 00 0032 o 0212 / 252 Spazio o Ô / ü 11011001100 212222 1 ! ! 01 33 ! 11001101100 222122 2 " " 02 34 " 11001100110 222221 3 # # 03 35 # 10010011000 121223 4 $ $ 04 36 $ 10010001100 121322 5 % % 05 37 % 10001001100 131222 6 & & 06 38 & 10011001000 122213 7 ' ' 07 39 ' 10011000100 122312 8 ( ( 08 40 ( 10001100100 132212 9 ) ) 09 41 ) 11001001000 221213 10 * * 10 42 * 11001000100 221312 11 + + 11 43 + 11000100100 231212 12 , , 12 44 , 10110011100 112232 13 - - 13 45 - 10011011100 122132 14 . . 14 46 . 10011001110 122231 15 / / 15 47 / 10111001100 113222 16 0 0 16 48 0 10011101100 123122 17 1 1 17 49 1 10011100110 123221 18 2 2 18 50 2 11001110010 223211 19 3 3 19 51 3 11001011100 221132 20 4 4 20 52 4 11001001110 221231 21 5 5 21 53 5 11011100100 213212 22 6 6 22 54 6 11001110100 223112 23 7 7 23 55 7 11101101110 312131 24 8 8 24 56 8 11101001100 311222 25 9 9 25 57 9 11100101100 321122 26 : : 26 58 : 11100100110 321221 27 ; ; 27 59 ; 11101100100 312212 28 < < 28 60 < 11100110100 322112 29 = = 29 61 = 11100110010 322211 30 > > 30 62 > 11011011000 212123 31 ? ? 31 63 ? 11011000110 212321 32 @ @ 32 64 @ 11000110110 232121 33 A A 33 65 A 10100011000 111323 34 B B 34 66 B 10001011000 131123 35 C C 35 67 C 10001000110 131321 36 D D 36 68 D 10110001000 112313 37 E E 37 69 E 10001101000 132113 38 F F 38 70 F 10001100010 132311 39 G G 39 71 G 11010001000 211313 40 H H 40 72 H 11000101000 231113 41 I I 41 73 I 11000100010 231311 42 J J 42 74 J 10110111000 112133 43 K K 43 75 K 10110001110 112331 44 L L 44 76 L 10001101110 132131 45 M M 45 77 M 10111011000 113123 46 N N 46 78 N 10111000110 113321 47 O O 47 79 O 10001110110 133121 48 P P 48 80 P 11101110110 313121 49 Q Q 49 81 Q 11010001110 211331 50 R R 50 82 R 11000101110 231131 51 S S 51 83 S 11011101000 213113 52 T T 52 84 T 11011100010 213311 53 U U 53 85 U 11011101110 213131 54 V V 54 86 V 11101011000 311123 55 W W 55 87 W 11101000110 311321 56 X X 56 88 X 11100010110 331121 57 Y Y 57 89 Y 11101101000 312113 58 Z Z 58 90 Z 11101100010 312311 59 [ [ 59 91 [ 11100011010 332111 60 \ \ 60 92 \ 11101111010 314111 61 ] ] 61 93 ] 11001000010 221411 62 ^ ^ 62 94 ^ 11110001010 431111 63 _ _ 63 95 _ 10100110000 111224 64 NUL ` 64 96 ` 10100001100 111422 65 SOH a 65 97 a 10010110000 121124 66 STX b 66 98 b 10010000110 121421 67 ETX c 67 99 c 10000101100 141122 68 EOT d 68 100 d 10000100110 141221 69 ENQ e 69 101 e 10110010000 112214 70 ACK f 70 102 f 10110000100 112412 71 BEL g 71 103 g 10011010000 122114 72 BS h 72 104 h 10011000010 122411 73 HT i 73 105 i 10000110100 142112 74 LF j 74 106 j 10000110010 142211 75 VT k 75 107 k 11000010010 241211 76 FF l 76 108 l 11001010000 221114 77 CR m 77 109 m 11110111010 413111 78 SO n 78 110 n 11000010100 241112 79 SI o 79 111 o 10001111010 134111 80 DLE p 80 112 p 10100111100 111242 81 DC1 q 81 113 q 10010111100 121142 82 DC2 r 82 114 r 10010011110 121241 83 DC3 s 83 115 s 10111100100 114212 84 DC4 t 84 116 t 10011110100 124112 85 NAK u 85 117 u 10011110010 124211 86 SYN v 86 118 v 11110100100 411212 87 ETB w 87 119 w 11110010100 421112 88 CAN x 88 120 x 11110010010 421211 89 EM y 89 121 y 11011011110 212141 90 SUB z 90 122 z 11011110110 214121 91 ESC { 91 123 { 11110110110 412121 92 FS | 92 124 | 10101111000 111143 93 GS } 93 125 } 10100011110 111341 94 RS ~ 94 126 ~ 10001011110 131141 95 US DEL 95 200 / 240 È / ð 10111101000 114113 96 FNC 3 FNC 3 96 201 / 241 É / ñ 10111100010 114311 97 FNC 2 FNC 2 97 202 / 242 Ê / ò 11110101000 411113 98 Shift B Shift A 98 203 / 243 Ë / ó 11110100010 411311 99 Code C Code C 99 204 / 244 Ì / ô 10111011110 113141 100 Code B FNC4 Code B 205 / 245 Í / õ 10111101110 114131 101 FNC 4 Code A Code A 206 / 246 Î / ö 11101011110 311141 102 FNC 1 FNC 1 FNC 1 207 / 247 Ï / ÷ 11110101110 411131 103 Codice di start A 208 / 248 Ð / ø 11010000100 211412 104 Codice di start B 209 / 249 Ñ / ù 11010010000 211214 105 Codice di start C 210 / 250 Ò / ú 11010011100 211232 106 Stop (7 barre/spazi) 211 / 251 Ó / û 1100011101011 2331112 — non usati per prevenire errori di lettura — — 11010111000 211133

Altri progetti

Collegamenti esterni

Categoria:Codici a barre