Código 128
O código 128 é um código de barras que permite representar todos os 128 caracteres do código ASCII (7 bits). As especificações de referência são expressas pela ISO/IEC 15417: 2007.
Inclui três tipos de codificações que podem coexistir simultaneamente em um único código de barras: Código 128A, Código 128B, Código 128C.
Uma aplicação muito comum do código 128 na área de logística é o GS1-128 .
Aplicações
Um subconjunto do Código 128, muito comum na área de logística (expedição e embalagem), é o GS1-128 (conhecido como UCC/EAN-128). É utilizado para a identificação de contentores e paletes na cadeia de distribuição. A norma de referência é a ISO/IEC 15417: 2007.
Especificações
Um código de barras Code 128 tem seis seções:
- personagem inicial
- codificação de dados
- código de controle
- personagem de parada
- Zona de silêncio ou a área entre o código de barras e outras linhas verticais
O código de controle é calculado por um fabricante ( módulo 103) de todos os caracteres.
Tipos de Código 128
O código 128 tem 107 símbolos: 103 símbolos de dados, 3 símbolos de início, 1 símbolo de parada. Para representar todos os 128 caracteres ASCII , existem três conjuntos de caracteres (A, B, C), que podem ser mesclados em um único código de barras (usando os códigos 98 e 99 entre os conjuntos de caracteres A e B , 100 entre os conjuntos de caracteres A e C , 101 entre os conjuntos de caracteres B e C ):
- 128A (Conjunto de Códigos A) - códigos ASCII 00 a 95 (0-9, AZ e códigos de controle), caracteres especiais e FNC 1-4
- 128B (Conjunto de Códigos B) - códigos ASCII 32 a 127 (0-9, AZ, az), caracteres especiais e FNC 1-4
- 128C (Conjunto de Códigos C) - 00-99 (cada par de números é codificado com um único código) e FNC1
Zona calma
Zona de silêncio refere-se à área entre o código de barras e outras linhas verticais. A zona de silêncio deve ser pelo menos dez vezes a largura do elemento de barra/espaço mais estreito. É obrigatório no lado esquerdo e direito do código de barras. A zona silenciosa não deve ter menos de 6,4 mm de largura.
Bits de início / bits de parada e codificação de dados
Cada caractere do código de barras:
- é composto por três barras e três espaços. (o stop bit tem uma barra adicional adicional de comprimento 2)
- cada barra ou espaço tem uma largura de 1, 2, 3 ou 4 unidades de largura
- a soma das larguras das barras deve ser par
- a soma das larguras dos espaços deve ser ímpar
- a soma total de barras e espaços deve ser igual a 11 unidades de largura por caractere
Por exemplo, a codificação ASCII do valor 0 pode ser vista como 10011101100, onde o dígito 1 (um) é uma barra e o 0 é um espaço. Uma combinação que contém um único 1 seria a linha mais fina no código de barras. Uma combinação de três 1s (111) em sequência indica uma barra três vezes mais espessa do que uma única barra 1.
Cálculo do código de controle
O código de verificação é uma soma de verificação Módulo 103. Ele é calculado adicionando o 'valor' do código inicial aos produtos de cada caractere multiplicado por sua posição na sequência do código de barras. O caractere inicial e o primeiro valor codificado estão na posição 1. A soma do valor do código inicial e os produtos são divididos por 103. O restante da divisão é o dígito verificador do 'valor' que é então convertido em um caractere adicionado ao final do código de barras.
Eu uso FNC4 para codificar caracteres Latin-1 (160-255)
A função 4 (FNC4) pode ser usada para codificar, em um código de barras Code 128, todos os caracteres do padrão LATIN-1 ( ISO-8859-1 , ou seja, uma especificação de ISO-8859 ). Os 7 bits menos significativos do caractere a ser codificado são armazenados nos códigos de barras; o delimitador FNC4 (simples ou duplo) é usado para indicar que os caracteres são ASCII estendidos e que 128 devem ser adicionados ao valor ASCII a ser decodificado. Ao decodificar (código de barras para string), quando um único FNC4 estiver presente em uma string, o próximo caractere será um caractere ASCII estendido (160-255). Para evitar ter que usar um FNC4 para cada caractere ASCII estendido, existe uma maneira de alternar de ASCII padrão para ASCII estendido: todo texto em ASCII estendido deve ser delimitado por dois pares de FNC4. Um único FNC4 dentro de dois pares de FNC4 indica que o próximo caractere é um caractere ASCII padrão.
Larguras de barras e espaços
Code128 fornece uma combinação de 6 barras e espaços para cada caractere, exceto o caractere de parada, que usa 7. Assim, cada caractere começa com uma barra e termina com um espaço (com exceção do caractere de parada, que termina com uma barra) . As tabelas a seguir detalham as larguras associadas a cada barra e espaço para cada caractere. A largura de cada barra ou espaço pode ser de 1, 2, 3 ou 4 unidades. Nas tabelas a seguir, um 'A' será representado com o padrão 10100011000 ou 111323 como uma sequência de larguras de barras e espaços.
| Valor | 128A | 128B | 128C | Código ASCII (Comum / Barcodesoft) | Fontes (Comum / Barcodesoft) | Padrão das Barras/Espaços | Largura das Barras/Espaços |
|---|---|---|---|---|---|---|---|
| 0 | espaço | espaço | 00 | 0032 ou 0212/252 | Espaço ou Ô / ü | 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 | PARA | PARA | 33 | 65 | PARA | 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 | A | A | 41 | 73 | A | 11000100010 | 231311 |
| 42 | J | J | 42 | 74 | J | 10110111000 | 112133 |
| 43 | K. | K. | 43 | 75 | K. | 10110001110 | 112331 |
| 44 | eu | eu | 44 | 76 | eu | 10001101110 | 132131 |
| 45 | M. | M. | 45 | 77 | M. | 10111011000 | 113 123 |
| 46 | Não. | Não. | 46 | 78 | Não. | 10111000110 | 113321 |
| 47 | OU | OU | 47 | 79 | OU | 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 | você | você | 53 | 85 | você | 11011101110 | 213131 |
| 54 | V. | V. | 54 | 86 | V. | 11101011000 | 311123 |
| 55 | C | C | 55 | 87 | C | 11101000110 | 311321 |
| 56 | X | X | 56 | 88 | X | 11100010110 | 331121 |
| 57 | S | S | 57 | 89 | S | 11101101000 | 312113 |
| 58 | Z | Z | 58 | 90 | Z | 11101100010 | 312311 |
| 59 | [ | [ | 59 | 91 | [ | 11100011010 | 332111 |
| 60 | \ | \ | 60 | noventa e dois | \ | 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 | para | 65 | 97 | para | 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 | LEGAIS | g | 71 | 103 | g | 10011010000 | 122114 |
| 72 | BS | h | 72 | 104 | h | 10011000010 | 122411 |
| 73 | HT | a | 73 | 105 | a | 10000110100 | 142112 |
| 74 | LF | j | 74 | 106 | j | 10000110010 | 142211 |
| 75 | VT | k | 75 | 107 | k | 11000010010 | 241211 |
| 76 | FF | eu | 76 | 108 | eu | 11001010000 | 221114 |
| 77 | CR | m | 77 | 109 | m | 11110111010 | 413111 |
| 78 | ASSIM | n | 78 | 110 | n | 11000010100 | 241112 |
| 79 | SIM | ou | 79 | 111 | ou | 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 | você | 85 | 117 | você | 10011110010 | 124211 |
| 86 | SYN | v | 86 | 118 | v | 11110100100 | 411212 |
| 87 | ETB | W | 87 | 119 | W | 11110010100 | 421112 |
| 88 | POSSO | 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 |
| noventa e dois | FS | | | noventa e dois | 124 | | | 10101111000 | 111143 |
| 93 | GS | } | 93 | 125 | } | 10100011110 | 111341 |
| 94 | RS | ~ | 94 | 126 | ~ | 10001011110 | 131141 |
| 95 | NÓS | DO | 95 | 200/240 | E | 10111101000 | 114113 |
| 96 | FNC 3 | FNC 3 | 96 | 201/241 | É / ñ | 10111100010 | 114311 |
| 97 | FNC 2 | FNC 2 | 97 | 202/242 | Ê / ò | 11110101000 | 411113 |
| 98 | Turno B | Turno A | 98 | 203/243 | Ë / ó | 11110100010 | 411311 |
| 99 | Código C | Código C | 99 | 204/244 | o | 10111011110 | 113141 |
| 100 | Código B | FNC4 | Código B | 205/245 | o | 10111101110 | 114131 |
| 101 | FNC 4 | Código A | Código A | 206/246 | o | 11101011110 | 311141 |
| 102 | FNC 1 | FNC 1 | FNC 1 | 207/247 | Ï / ÷ | 11110101110 | 411131 |
| 103 | Iniciar código A | 208/248 | Fazer | 11010000100 | 211412 | ||
| 104 | Iniciar código B | 209/249 | Ñ / ù | 11010010000 | 211214 | ||
| 105 | Iniciar código C | 210/250 | Ò / u | 11010011100 | 211232 | ||
| 106 | Parar (7 barras/espaços) | 211/251 | Ó / û | 1100011101011 | 2331112 | ||
| - | não usado para evitar erros de leitura | - | - | 11010111000 | 211133 | ||
Outros projetos
Wikimedia Commons contém imagens ou outros arquivos no Código 128
Links externos
- ( PT ) Código 128/GS1-128 Código de Barras FAQ & Tutorial , em idautomation.com .