GS1-128 校验码计算方法
GS1-128(原EAN-128)的校验码计算方式与 Code 128 相同,采用 Mod-103(模103)校验。校验码的计算基于条码中的所有数据字符(包括起始符、FNC1、AI、数据等),确保扫描的准确性。
1. 校验码计算步骤
(1)确定条码的完整数据
GS1-128 的校验计算包括:
- 起始符(Start Code,如 Start C = 105)
- FNC1(Function Code 1 = 102)
- AI + 数据(转换为Code 128字符值)
- 终止符(不参与计算)
(2)字符对应值
Code 128 字符集分为 A、B、C 三种模式,每个字符对应一个数值(0-105)。
- 数字模式(Code C):每2位数字对应1个字符值(00-99 → 0-99)
- 字母模式(Code B):每个字符对应固定值(如 `A=65`,`B=66`,但实际编码值不同)
> Code 128 字符值表(部分):
> | 字符 | 键值 | 字符 | 键值 |
> | Start C | 105 | 0-9 | 0-9 |
> | FNC1 | 102 | A-Z | 65-90 |
> | ( | 40 | ) | 41 |
(3)计算公式
校验码的计算公式为:
- 位置权重:第1个字符(Start之后)权重=1,第2个=2,依此类推。
2. 计算示例
示例1:纯数字数据(GTIN)
条码数据:`(01) 09506200000013`
编码结构(Code C模式):
1). Start C = 105
2). FNC1 = 102
3). AI `(01)` → `(`=40,`0`=16,`1`=17
4). GTIN `09506200000013` → `09`=9,`50`=50,`62`=62,`00`=0,`00`=0,`13`=13
计算过程:
字符 | 字符值 | 位置 | 权重 | 值×权重 |
Start C | 105 | - | - | 105 |
FNC1 | 102 | 1 | 1 | 102×1=102 |
( | 40 | 2 | 2 | 40×2=80 |
0 | 16 | 3 | 3 | 16×3=48 |
1 | 17 | 4 | 4 | 17×4=68 |
09 | 9 | 5 | 5 | 9×5=45 |
50 | 50 | 6 | 6 | 50×6=300 |
62 | 62 | 7 | 7 | 62×7=434 |
00 | 0 | 8 | 8 | 0×8=0 |
00 | 0 | 9 | 9 | 0×9=0 |
13 | 13 | 10 | 10 | 13×10=130 |
总和 = 105 + 102 + 80 + 48 + 68 + 45 + 300 + 434 + 0 + 0 + 130 = 1312
校验位 = 1312 ÷ 103 = 12 余 76 → 校验码=76
最终条码:
`Start C + FNC1 + (01) + 09506200000013 + 76 + Stop`
示例2:字母+数字数据(GTIN + 批号)
条码数据:`(01) 09506200000013 (10) ABC123`
编码结构(Code B模式):
1). Start B = 104
2). FNC1 = 102
3). AI `(01)` → `(`=40,`0`=16,`1`=17
4). GTIN `09506200000013` → 按数字编码
5). AI `(10)` → `(`=40,`1`=17,`0`=16
6). 批号 `ABC123` → `A`=33,`B`=34,`C`=35,`1`=17,`2`=18,`3`=19
计算过程(简化版):
- 计算所有字符值 × 权重
- 总和 = Start B + FNC1 + ( + 0 + 1 + ... + 3
- 校验位 = 总和 ÷ 103 的余数
最终校验码 取决于具体计算值(需逐字符计算)。
3. 注意事项
1). 起始符和FNC1参与计算,但终止符不算。
2). Code C(数字模式) 每2位算1个字符值,Code B(字母模式)每个字符单独计算。
3). AI括号 `(`, `)` 也要计算(如 `(01)` 包含 `(`, `0`,`1`,`)`)。
4). 校验码范围 0-102,部分值对应特殊字符(如 100=FNC4)。
4. 自动计算工具
由于手动计算复杂,推荐使用:
- GS1-128 条码生成器(如Zebra Designer、Bartender)
- 在线校验计算器(如GS1官方工具)
总结
GS1-128 校验码计算步骤:
1). 确定编码模式(Code B / Code C)
2). 列出所有字符及其Code 128值
3). 计算 `Start + FNC1 + AI + 数据` 的加权和
4). 总和 ÷ 103 取余数,得到校验码
5). 附加校验码并生成条码
正确计算校验码可确保条码可被扫描设备正确识别,避免物流或库存错误。