常用一维条形码编码规则.docx
《常用一维条形码编码规则.docx》由会员分享,可在线阅读,更多相关《常用一维条形码编码规则.docx(24页珍藏版)》请在冰豆网上搜索。
常用一维条形码编码规则
常用一维条形码
139码(CODE39)
39码可以包含数字及英文字母。
除了超市、零售业的应用中使用UPC/EAN码外,几乎在其他饿应用环境中,都是使用39码。
39码是目前使用最广泛的条码规格,支持39码的软硬件设备也最齐全。
1.1特征
◆能表示44个字符,A-Z、0-9、SPACE、-、.、$、/、+、%、*
◆分散式,条码组之间使用细白条分隔
◆两种宽度
◆自我检查
◆有扩展模式《FullASCIIMode》
◆检查码字符可有可无,视需求而定
1.2组成
◆各个字符有9条黑白相间,粗细不同的线条组成,其中6条为黑白细条3条黑白粗条
◆一串字符必须在头尾加上起始字符和结束字符“*”
1.3校验方法
CODE39
字符
0
1
2
3
4
5
6
7
8
值
0
1
2
3
4
5
6
7
8
字符
9
A
B
C
D
E
F
G
H
值
9
10
11
12
13
14
15
16
17
字符
I
J
K
L
M
N
O
P
Q
值
18
19
20
21
22
23
24
25
26
字符
R
S
T
U
V
W
X
Y
Z
值
27
28
29
30
31
32
33
34
35
字符
-
.
SPACE
$
/
+
%
值
36
37
38
39
40
41
42
找到输入字符串每个字符对应值,求和,除以43,取余数。
1.4条码说明
1.5编码表
P.S.
在程序中可以使用“11”表示宽黑条,‘1’表示细黑条,“00”表示宽白条,“0”表示细白条。
那么字符1就可以表示为110100101011。
使用此方法建立一个编码表,每个字符可以长度为12的“01”字符串来表示。
1.6典型CODE39条码
1.7CODE39的扩展码
扩展码表同CODE93。
但是扩展方式不同,39码使用$,/,+.%与其26个大写字母组合,表示ASCII码表中的其他字符。
条空表示方式和校验方式与标准39码相同。
93码中使用的控制码与26个大写字母的组合。
293码(CODE93)
2.1组成
◆字母:
A-Z,数字:
0-9,符号:
SPACE,-,.,$,/,+,%,控制码:
$,/,+,%,起始结束码:
□
◆每个字由9个模组成,包括3条粗细黑条及3条粗细白条。
每一黑条或白条有可能为1.2.3.4模组成
2.2特征
◆用4个控制码$,%,/,+组合其他字母或符号,可编程FULLASCII字母,读码器读到上面4个控制码的组合时候,送出的字尾所对应的ASCII。
◆有2个检验码C和K。
2.3校验方法
◆先查出资料所对应值,对应值的表如下
字符
0
1
2
3
4
5
6
7
8
值
0
1
2
3
4
5
6
7
8
字符
9
A
B
C
D
E
F
G
H
值
9
10
11
12
13
14
15
16
17
字符
I
J
K
L
M
N
O
P
Q
值
18
19
20
21
22
23
24
25
26
字符
R
S
T
U
V
W
X
Y
Z
值
27
28
29
30
31
32
33
34
35
字符
-
.
SPACE
$
/
+
%
值
36
37
38
39
40
41
42
◆检查码C由资料的最右边一位用1-20顺序排列,若资料超过20位,在从1-20起算,顺序号作为权值,分别乘以对应值,求和,除以47,取余数
◆检查码K由C位用1-15顺序排列,若资料差偶偶15位,再从1-15起算,顺序号作为权值,分别乘以对应值,求和,除以47,取余数
◆举例:
资料CODESP93“C”“K”
资料对应值122413143893
C排列顺序7654321
K排列顺序87654321
(1x3)+(2x9)+(3x38)+(4x14)+(5x13)+(6x24)+(7x12)=484
C=484÷47=10……14(余数)
则C=14=E(对应值)
(1x14)+(2x3)+(3x9)+(4x38)+(5x14)+(6x13)+(7x24)+(8x12)
=611
K=611÷47=13……0(余数)
則K=0=0(对应值)
2.4条码说明
2.5编码表
P.S.程序编码中,结束符号模块比起始符号多一个“1”;
使用控制符组合字母所表示的字符,编码时需要分解成控制符和大写字母两个模块。
比如字符NUL可分解成控制符%和U,条空为“111011010和110010110
2.6典型CODE93条码
3128码(CODE128)
3.1特征
◆能表示106种字元
◆3个字符集
◆连续式
◆四种宽度
◆三种字符集可串联使用
◆使用检查码
3.2组成
◆提供128个ASCII的所有字符
◆有A、B、C三种不同模组
◆C组数字专用模组,可从00-99编码,缩短编码长度
◆A、B、C三种模组依资料结构,可混合编码
◆每个字由3条粗细黑条及3条粗细白条组成,但每个模组都是12各个单元宽度
◆三组模组起始码不同,但结束码相同。
3.3校验方法
◆首先为字符串标志条码(码字)
◆从起始符开始,自左向右为每个条码字符编号
◆为每一个字符分配权数,起始符和第一个字符的权数位1,以后依次增加
◆每个字符的权数与码值相乘
◆所有乘积求和
◆第5步的结果除以103求余数
◆码值等于余数的字符即为校验符;
3.4编码表
P.S.程序中可用“1“表示一个单元宽度的黑条,“0”表示一个单元宽度的白条。
则上图中的Value=0的条空可表示为110110011000。
终止符有13个模块宽度。
条空表示为1100011101011,末尾多两个“11”;
3.5典型CODE128码
3.6条码说明
◆例如,某128码的值为ROC12345,则其逻辑和条码如下
模块
数值
逻辑型态
B式
Start
11010010000
B式
R
11000101110
B式
O
10001110110
B式
C
10001000110
B式
I
10011100110
B式转C式
10111011110
C式
23
11101101110
C式
45
10111011000
C式
Stop
1100011101011
◆某一个128码的值为5418781,则其逻辑及条码如下
模块
数值
逻辑型态
C
Start
11010011100
C
54
11101011000
C
18
11001110010
C
78
11000010100
C
14
11000100010
C
Stop
1100011101011
4EAN-128
EAN-128码,现称GS1-128码,是专用于GS1系统中的条码,可以标注商品的附加信息,在山品信息的标志、茶品的跟踪与追溯中有广泛的用途。
EAN-128码来自于CODE-128码,在字符集、条空规则上与CODE-128完全一致。
4.1组成
◆EAN-128码组成同CODE-128
◆应用标识符使用分隔符码字FNC1表示
4.2特征
同CODE-128;
4.3条码说明
◆如果字符串起始的字符是超过4个的数字字符时,应该采用STARTC。
数据中间如果有4个或4个以上连续的数字也要变换为字符集C。
◆如果数据中的应用标识符使用的是预定义程度的AI,则可以省去数据后的分隔符。
◆例子
例1(01)16903128100250(13)091020(15)100420用条码可以表示为
|STARTC|FNC1|01|16|90|31|28|10|02|50|13|09|10|20|15|10|04|20|校验码|STOP|
例2(02)16903128100250(37)100(10)091000S
|STARTC|FNC1|02|16|90|31|28|10|02|50|37|10|CODEB|0|CODEC|FNC1|10|09|10|00|CODEB|S|校验符|STOP|
5标准2of5(INDUSTRY2OF5STANDARD)
5.1组成:
◆由5条黑条组成,其中有3条细黑条,2条宽黑条
◆黑条与黑条之间及字与字之间偶用一白条分隔,所以白细条不表示资料
◆起始及结束码不同
◆数字0~9
5.2特征
◆一串资料可以改变程度,但只有数字可编
◆粗细比例1:
3,允许误差±25%
◆分散式
◆无验证码
5.3编码表
P.S.程序中:
“1”表示1个黑条宽度单元,因为粗细比是1:
3,显然粗黑条表示为“111”,又因为每两个黑条使用细白条分隔,所以上表中数字1可以表示为:
“1110101010111”
6交错式25码(INTERLEAVED25)
6.1组成
◆由5条粗细黑条组成,其中3条细黑条,2条宽黑条
◆由5条粗细白条组成,其中3条西白条,2条宽白条
◆黑条置于奇数位,白条置于偶数位,故又称交错式2OF5
◆起始码和结束码不同
◆只能表示0~9
◆必须偶数位配对
6.2特性
◆资料程度一定是偶数
◆只能表示数字0~9
◆连续式
◆不一定使用检验码
◆粗细比1:
2或1:
3,误差10%
◆粗细印刷比例若误差太大,可能解错码
6.3校验方法
交叉25码的校验位计算方法依然是Mod10:
1.字符个数为偶数时为:
10的倍数-[(奇数位的数字之和<从左至右)+(偶数位数字之和)*3个位数]
2.字符个数为奇数时为:
10的倍数-[(偶数位的数字之和<从左至右)+(奇数位数字之和)*3个位数]
如:
514362的校验位为10*X-[(5+4+6)+3*(1+3+2)]=7(因加校验位后个数为奇数,故前面加0后为05143627。
76534的校验位为10*X-[(6+3)+3*(7+5+4)]=3
6.4条码说明
6.5编码表
P.S.程序中,可以’N’表示窄条,’W’表示宽条,因为黑条白条的相对位置固定,所以上表其实是一个pattern表。
比如字母1表示为WNNNW。
虽然粗细比允许1:
3,考虑到解错码的可能性,建议粗条使用2个单位宽度。
因为交错式25码必须是成对的数字,所以可以把相邻两个数字作为一个模块。
比如条码1234,可以分组为12|34;取“12”为例,1在奇数位置,为黑条,对应pattern为WNNNW,2在偶数位置,为白条,对应pattern为NWNNW,那么12合起来作为一个模块,混合pattern为WNNWNNNNWW,这个pattern里,奇数位的W表示粗黑条,奇数位的N表示细黑条,偶数位的W表示粗白条,偶数位的N表示细白条,因此12的条空表示为:
11010010101100
6.6典型交错式25码
7CODABAR码
7.1组成
◆由7条黑白相间、粗细不同的黑白条组成,其中包括4条黑条,3条白条
◆字与字之间为一细白条
◆4个起始和结束码,可互相配对,但一般都用相同。
◆数字:
0~9,特别符号:
-、$、=、/、.、+,起始/结束码:
A、B、C、D
7.2特征
◆四种不同的起始/结束码
◆分散式
◆18种宽度
◆不使用检查码
◆起始/结束码可以用来传递信息
7.3校验方法
对应值之和,MOD16
步骤一.假设条形码数据码为A37859B
步骤二.将各别字元相对值加总16+3+7+8+5+9+17=65
步骤三.用为基数来除以相对值加总65/16=4....1
步骤四.再以减掉余数,以求出相对值16-1=15
7.4编码表
S1-S4:
黑条L1-L3:
白条
0:
窄,1:
宽
7.5典型CODABAR码
8UPC-A(和EAN-8)
UPC-A与EAN-8的编码方式相同,资料长度不同
8.1特性
◆资料长度固定-12位
◆只能用来表示数字0~9
◆固定使用一位检查码
◆连续式
◆使用四种宽度
8.2组成
◆每一个字由7个ELEMENTS组成
◆有4中粗细黑白条混合编码
◆左护线101,中心弧线吗01010,右护线码101
8.3校验方法
X.3+Y=Z,10-Z=检查号码
X为奇数位之和,Y为偶数位之总和
Z为奇数+偶数之总和的个位数
8.4条码说明
8.5编码表
DECIMAL
LEFT(A)
互補
RIGHT(C)
(ODDPARITY–0)
(EVENPARITY)
0
0001101
1110010
1
0011001
1100110
2
0010011
1101100
3
0111101
1000010
4
0100011
1011100
5
0110001
1001110
6
0101111
1010000
7
0111011
1000100
8
0110111
1001000
9
0001011
1110100
8.6典型UPC-A和EAN-8码
9EAN-13
9.1特性
◆资料长度固定,13为
◆只能用来表示数字资源
◆固定使用一位检查码
◆连续式
◆使用四种宽度
◆左护线码101,中心护线码01010,右护线码101
9.2校验方法
X+Y•3=Z10-Z=檢查號碼
X为奇数位之和,Y为偶数位之总和
Z为奇数+偶数之总和的个位数
9.3编码表
◆EAN-13的右半部编码如下表
DECIMAL
RIGHT(C)
0
1110010
1
1100110
2
1101100
3
1000010
4
1011100
5
1001110
6
1010000
7
1000100
8
1001000
9
1110100
◆EAN-13的左半部编码步骤如下:
1.先查出EAN13最前面的国码数字
2.根据国码数字查下表,O代表ODDPARITY,E代表EVENPARITY
PARITYPATTERN
1
00E0EE
2
00EE0E
3
00EEE0
4
0E00EE
5
0EE00E
6
0EEE00
7
0E0E0E
8
0E0EE0
9
0EE0E0
3.上表的PARITYPATTERN也代表EAN左半部6为数中每位PARITYPATTERN
4.依照PARITYPATTERN对照下表壳得出左边的编码
CHARACTERVALUE
ODDPARITY(0)
EVENPARITY(E)
0
0001101
0100111
1
0011001
0110011
2
0010011
0011011
3
0111101
0100001
4
0100011
0011101
5
0110001
0111001
6
0101111
0000101
7
0111011
0010001
8
0110111
0001001
9
0001011
0010111
10UPC-E
10.1特性
◆资料长度固定,6位
◆只能用来表示数字
◆使用一位检查码
◆连续式
◆使用四种宽度
◆每个UPC-E码都有一个相对应的UPC-A吗存在
◆左护线码为101,有护线码为010101
10.2编码步骤
◆
1依下表把断码先变成原来的长码(UPC-A)
2由UPC-A算出检查码之值
3依检查码之值对照下表取得PATTERN
4依据上表的数字再对照下表即可得UPC-E的编码