- Code 128 is a very effective, high-density symbology which permits the encoding of alphanumeric data.
- The symbology includes a checksum digit for verification, and the bar code may also be verified character-by-character verifying the parity of each data byte.
- An example of alphanumeric encoding in a single Code 128 bar code is:
Structure of Code 128
- A Code 128 bar code has the following physical structure:
- Start code, which is the code 103, 104, or 105 from the encoding table below (Start-A, Start-B, Start-C).
- Each of the data bytes of the message, encoded with the encoding table below.
- The checksum byte, calculated as described above and encoded using the table below.
- Stop character of 11000111010.
- Termination bar of 11.
Encoding the symbol
- The number "1" represents a "dark" or "bar" section of the bar code whereas a "0" represents a "light" or "space" section of the bar code.
- Thus the numbers 1101 represents a double-wide bar (11), followed by a single-wide space (0), followed by a single-wide bar (1).
Check digit calculation
- It is calculated by summing the start code 'value' to the products of each character's 'value' multiplied by its position in the barcode string.
- For example, in the following table, the code 128 variant A checksum value is calculated for the alphanumeric string HI2345678HI:
Code | Value | Position | Value × Position |
---|---|---|---|
Start Code A | 103 | 1 | 103 |
H | 40 | 1 | 40 |
I | 41 | 2 | 82 |
3 | 19 | 3 | 57 |
4 | 20 | 4 | 80 |
5 | 21 | 5 | 105 |
6 | 22 | 6 | 132 |
7 | 23 | 7 | 161 |
8 | 24 | 8 | 192 |
H | 40 | 9 | 360 |
I | 41 | 10 | 410 |
Sum | 1722 | ||
Remainder is (1722 / 103) | 74 |
Code 128 Encoding table
- This table indicates how to encode each digit of a Code 128 bar code.
- Note that it is easiest to think of each character as a value between 0 and 105, inclusive, rather than thinking of them as characters.
Value | Represents in Character set | Encoding | Value | Represents in Character set | Encoding | ||||
---|---|---|---|---|---|---|---|---|---|
A | B | C | A | B | C | ||||
00 | SP | SP | 00 | 11011001100 | 53 | U | U | 53 | 11011101110 |
01 | ! | ! | 01 | 11001101100 | 54 | V | V | 54 | 11101011000 |
02 | " | " | 02 | 11001100110 | 55 | W | W | 55 | 11101000110 |
03 | # | # | 03 | 10010011000 | 56 | X | X | 56 | 11100010110 |
04 | $ | $ | 04 | 10010001100 | 57 | Y | Y | 57 | 11101101000 |
05 | % | % | 05 | 10001001100 | 58 | Z | Z | 58 | 11101100010 |
06 | & | & | 06 | 10011001000 | 59 | [ | [ | 59 | 11100011010 |
07 | ' | ' | 07 | 10011000100 | 60 | \ | \ | 60 | 11101111010 |
08 | ( | ( | 08 | 10001100100 | 61 | ] | ] | 61 | 11001000010 |
09 | ) | ) | 09 | 11001001000 | 62 | ^ | ^ | 62 | 11110001010 |
10 | * | * | 10 | 11001000100 | 63 | _ | _ | 63 | 10100110000 |
11 | + | + | 11 | 11000100100 | 64 | NUL | ` | 64 | 10100001100 |
12 | , | , | 12 | 10110011100 | 65 | SOH | a | 65 | 10010110000 |
13 | - | - | 13 | 10011011100 | 66 | STX | b | 66 | 10010000110 |
14 | . | . | 14 | 10011001110 | 67 | ETX | c | 67 | 10000101100 |
15 | / | / | 15 | 10111001100 | 68 | EOT | d | 68 | 10000100110 |
16 | 0 | 0 | 16 | 10011101100 | 69 | ENQ | e | 69 | 10110010000 |
17 | 1 | 1 | 17 | 10011100110 | 70 | ACK | f | 70 | 10110000100 |
18 | 2 | 2 | 18 | 11001110010 | 71 | BEL | g | 71 | 10011010000 |
19 | 3 | 3 | 19 | 11001011100 | 72 | BS | h | 72 | 10011000010 |
20 | 4 | 4 | 20 | 11001001110 | 73 | HT | i | 73 | 10000110100 |
21 | 5 | 5 | 21 | 11011100100 | 74 | LF | j | 74 | 10000110010 |
22 | 6 | 6 | 22 | 11001110100 | 75 | VT | k | 75 | 11000010010 |
23 | 7 | 7 | 23 | 11101101110 | 76 | FF | l | 76 | 11001010000 |
24 | 8 | 8 | 24 | 11101001100 | 77 | CR | m | 77 | 11110111010 |
25 | 9 | 9 | 25 | 11100101100 | 78 | SO | n | 78 | 11000010100 |
26 | : | : | 26 | 11100100110 | 79 | SI | o | 79 | 10001111010 |
27 | ; | ; | 27 | 11101100100 | 80 | DLE | p | 80 | 10100111100 |
28 | < | < | 28 | 11100110100 | 81 | DC1 | q | 81 | 10010111100 |
29 | = | = | 29 | 11100110010 | 82 | DC2 | r | 82 | 10010011110 |
30 | > | > | 30 | 11011011000 | 83 | DC3 | s | 83 | 10111100100 |
31 | ? | ? | 31 | 11011000110 | 84 | DC4 | t | 84 | 10011110100 |
32 | @ | @ | 32 | 11000110110 | 85 | NAK | u | 85 | 10011110010 |
33 | A | A | 33 | 10100011000 | 86 | SYN | v | 86 | 11110100100 |
34 | B | B | 34 | 10001011000 | 87 | ETB | w | 87 | 11110010100 |
35 | C | C | 35 | 10001000110 | 88 | CAN | x | 88 | 11110010010 |
36 | D | D | 36 | 10110001000 | 89 | EM | y | 89 | 11011011110 |
37 | E | E | 37 | 10001101000 | 90 | SUB | z | 90 | 11011110110 |
38 | F | F | 38 | 10001100010 | 91 | ESC | { | 91 | 11110110110 |
39 | G | G | 39 | 11010001000 | 92 | FS | | | 92 | 10101111000 |
40 | H | H | 40 | 11000101000 | 93 | GS | } | 93 | 10100011110 |
41 | I | I | 41 | 11000100010 | 94 | RS | ~ | 94 | 10001011110 |
42 | J | J | 42 | 10110111000 | 95 | US | DEL | 95 | 10111101000 |
43 | K | K | 43 | 10110001110 | 96 | FNC3 | FNC3 | 96 | 10111100010 |
44 | L | L | 44 | 10001101110 | 97 | FNC2 | FNC2 | 97 | 11110101000 |
45 | M | M | 45 | 10111011000 | 98 | SHIFT | SHIFT | 98 | 11110100010 |
46 | N | N | 46 | 10111000110 | 99 | Code C | Code C | 99 | 10111011110 |
47 | O | O | 47 | 10001110110 | 100 | Code B | FNC4 | Code B | 10111101110 |
48 | P | P | 48 | 11101110110 | 101 | FNC4 | Code A | Code A | 11101011110 |
49 | Q | Q | 49 | 11010001110 | 102 | FNC1 | FNC1 | FNC1 | 11110101110 |
50 | R | R | 50 | 11000101110 | 103 | START A | START A | START A | 11010000100 |
51 | S | S | 51 | 11011101000 | 104 | START B | START B | START B | 11010010000 |
52 | T | T | 52 | 11011100010 | 105 | START C | START C | START C | 11010011100 |
STOP | STOP | STOP | 11000111010 |
0 comments:
Post a Comment