Code128编码.docx

上传人:b****7 文档编号:24041542 上传时间:2023-05-23 格式:DOCX 页数:14 大小:64.66KB
下载 相关 举报
Code128编码.docx_第1页
第1页 / 共14页
Code128编码.docx_第2页
第2页 / 共14页
Code128编码.docx_第3页
第3页 / 共14页
Code128编码.docx_第4页
第4页 / 共14页
Code128编码.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Code128编码.docx

《Code128编码.docx》由会员分享,可在线阅读,更多相关《Code128编码.docx(14页珍藏版)》请在冰豆网上搜索。

Code128编码.docx

Code128编码

Code128码于1981年推出,是一种长度可变、连续性的字母数字条码。

与其他一维条码比较起来,相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用,因此其应用弹性也较大。

Code128特性:

1、具有A、B、C三种不同的编码类型,可提供标准ASCII中128个字元的编码使用;

2、允许双向扫描;

3、可自行决定是否加上检验位;

4、条码长度可调,但包括开始位和结束位在内,不可超过232个字元;

5、同一个128码,可以由A、B、C三种不同编码规则互换,既可扩大字元选择的范围,也可缩短编码的长度。

Code128各编码方式的编码范围:

1、Code128A:

标准数字和字母,控制符,特殊字符;

2、Code128B:

标准数字和字母,小写字母,特殊字符;

3、Code128C/EAN128:

[00]-[99]的数字对集合,共100个,即只能表示偶数位长度的数字。

Code128编码规则:

开始位 +[FNC1(为EAN128码时加)] +数据位 +检验位 +结束位

Code128检验位计算:

(开始位对应的ID值 +每位数据在整个数据中的位置×每位数据对应的ID值)%103

Code128编码表:

 

ID

Code128A

Code128B

Code128C

BandCode

编码值

0

SP 

SP

0

212222

bbsbbssbbss

1

!

!

1

222122

bbssbbsbbss

2

"

"

2

222221

bbssbbssbbs

3

#

#

3

121223

bssbssbbsss

4

$

$

4

121322

bssbsssbbss

5

%

%

5

131222

bsssbssbbss

6

&

&

6

122213

bssbbssbsss

7

'

'

7

122312

bssbbsssbss

8

8

132212

bsssbbssbss

9

9

221213

bbssbssbsss

10

*

*

10

221312

bbssbsssbss

11

+

+

11

231212

bbsssbssbss

12

12

112232

bsbbssbbbss

13

-

-

13

122132

bssbbsbbbss

14

.

.

14

122231

bssbbssbbbs

15

/

/

15

113222

bsbbbssbbss

16

0

0

16

123122

bssbbbsbbss

17

1

1

17

123221

bssbbbssbbs

18

2

2

18

223211

bbssbbbssbs

19

3

3

19

221132

bbssbsbbbss

20

4

4

20

221231

bbssbssbbbs

21

5

5

21

213212

bbsbbbssbss

22

6

6

22

223112

bbssbbbsbss

23

7

7

23

312131

bbbsbbsbbbs

24

8

8

24

311222

bbbsbssbbss

25

9

9

25

321122

bbbssbsbbss

26

:

:

26

321221

bbbssbssbbs

27

;

;

27

312212

bbbsbbssbss

28

<

<

28

322112

bbbssbbsbss

29

=

=

29

322211

bbbssbbssbs

30

>

>

30

212123

bbsbbsbbsss

31

?

?

31

212321

bbsbbsssbbs

32

@

@

32

232121

bbsssbbsbbs

33

A

A

33

111323

bsbsssbbsss

34

B

B

34

131123

bsssbsbbsss

35

C

C

35

131321

bsssbsssbbs

36

D

D

36

112313

bsbbsssbsss

37

E

E

37

132113

bsssbbsbsss

38

F

F

38

132311

bsssbbsssbs

39

G

G

39

211313

bbsbsssbsss

40

H

H

40

231113

bbsssbsbsss

41

I

I

41

231311

bbsssbsssbs

42

J

J

42

112133

bsbbsbbbsss

43

K

K

43

112331

bsbbsssbbbs

44

L

L

44

132131

bsssbbsbbbs

45

M

M

45

113123

bsbbbsbbsss

46

N

N

46

113321

bsbbbsssbbs

47

O

O

47

133121

bsssbbbsbbs

48

P

P

48

313121

bbbsbbbsbbs

49

Q

Q

49

211331

bbsbsssbbbs

50

R

R

50

231131

bbsssbsbbbs

51

S

S

51

213113

bbsbbbsbsss

52

T

T

52

213311

bbsbbbsssbs

53

U

U

53

213131

bbsbbbsbbbs

54

V

V

54

311123

bbbsbsbbsss

55

W

W

55

311321

bbbsbsssbbs

56

X

X

56

331121

bbbsssbsbbs

57

Y

Y

57

312113

bbbsbbsbsss

58

Z

Z

58

312311

bbbsbbsssbs

59

[

[

59

332111

bbbsssbbsbs

60

\

\

60

314111

bbbsbbbbsbs

61

]

]

61

221411

bbssbssssbs

62

^

^

62

431111

bbbbsssbsbs

63

_

_

63

111224

bsbssbbssss

64

NUL

`

64

111422

bsbssssbbss

65

SOH

a

65

121124

bssbsbbssss

66

STX

b

66

121421

bssbssssbbs

67

ETX

c

67

141122

bssssbsbbss

68

EOT

d

68

141221

bssssbssbbs

69

ENQ

e

69

112214

bsbbssbssss

70

ACK

f

70

112412

bsbbssssbss

71

BEL

g

71

122114

bssbbsbssss

72

BS

h

72

122411

bssbbssssbs

73

HT

i

73

142112

bssssbbsbss

74

LF

j

74

142211

bssssbbssbs

75

VT

k

75

241211

bbssssbssbs

76

FF

I

76

221114

bbssbsbssss

77

CR

m

77

413111

bbbbsbbbsbs

78

SO

n

78

241112

bbssssbsbss

79

SI

o

79

134111

bsssbbbbsbs

80

DLE

p

80

111242

bsbssbbbbss

81

DC1

q

81

121142

bssbsbbbbss

82

DC2

r

82

121241

bssbssbbbbs

83

DC3

s

83

114212

bsbbbbssbss

84

DC4

t

84

124112

bssbbbbsbss

85

NAK

u

85

124211

bssbbbbssbs

86

SYN

v

86

411212

bbbbsbssbss

87

ETB

w

87

421112

bbbbssbsbss

88

CAN

x

88

421211

bbbbssbssbs

89

EM

y

89

212141

bbsbbsbbbbs

90

SUB

z

90

214121

bbsbbbbsbbs

91

ESC

{

91

412121

bbbbsbbsbbs

92

FS

|

92

111143

bsbsbbbbsss

93

GS

}

93

111341

bsbsssbbbbs

94

RS

~

94

131141

bsssbsbbbbs

95

US

DEL

95

114113

bsbbbbsbsss

96

FNC3

FNC3

96

114311

bsbbbbsssbs

97

FNC2

FNC2

97

411113

bbbbsbsbsss

98

SHIFT

SHIFT

98

411311

bbbbsbsssbs

99

CODEC

CODEC

99

113141

bsbbbsbbbbs

100

CODEB

FNC4

CODEB

114131

bsbbbbsbbbs

101

FNC4

CODEA

CODEA

311141

bbbsbsbbbbs

102

FNC1

FNC1

FNC1

411131

bbbbsbsbbbs

103

StartA

StartA

StartA

211412

bbsbssssbss

104

StartB

StartB

StartB

211214

bbsbssbssss

105

StartC

StartC

StartC

211232

bbsbssbbbss

106

Stop

Stop

Stop

2331112

bbsssbbbsbsbb

Code128编码示例:

以 95270078 为例

Code128A,开始位对应的ID为103,第1位数据9对应的ID为25,第2位数据5对应的ID为21,依此类推,可以计算检验位=(103+1*25+2*21+3*18+4*23+5*16+6*16+7*23+8*24)%103=21,即检验位的ID为21。

对照编码表,95270078编码表示为:

开始位StartA(bbsbssssbss)+数据位[9(bbbssbsbbss)+  5(bbsbbbssbss)+ 2(bbssbbbssbs)+ 7(bbbsbbsbbbs)+  0(bssbbbsbbss)+ 0(bssbbbsbbss)+  7(bbbsbbsbbbs)+ 8(bbbsbssbbss)]+ 检验位21(bbsbbbssbss)+ 结束位Stop(bbsssbbbsbsbb),即:

bbsbssssbssbbbssbsbbssbbsbbbssbssbbssbbbssbsbbbsbbsbbbsbssbbbsbbssbssbbbsbbssbbbsbbsbbbsbbbsbssbbssbbsbbbssbssbbsssbbbsbsbb。

若要打印,只需将b用黑色线标出,s用白色线标出,一个简单的条形码生成程序就完成了!

128B与128A类似,128C只能对长度为偶数的数字串编码,每两个数字为一位,所以输出的信息压缩了一半,打印的条形码因此也就较短。

接上例,第1位数据95对应ID为95,第2位数据27对应ID为27,第3位数据00对应ID为0,第4位数据78对应ID为78,所以检验位=(105+1*95+2*27+3*0+4*78)%103=51

EAN128与Code128C相同,只是在开始位后加多一个控制位FNC1(ID为102),同时将FNC1做为第1位数据加入到检验位的计算。

各种方式的编码结果罗列如下:

 

 编码方式

 开始位

 FNC1

 数据位

 检验位

 结束位

 编码结果

 Code128A

 StartA

 无

 9+5+2+7+0+0+7+8

 (103+1*25+2*21+3*18+4*23+5*16+6*16+7*23+8*24)%103=21

 Stop

 bbsbssssbssbbbssbsbbssbbsbbbssbssbbssbbbssbsbbbsbbsbbbsbssbbbsbbssbssbbbsbbssbbbsbbsbbbsbbbsbssbbssbbsbbbssbssbbsssbbbsbsbb

 Code128B

 StartB

 无

 9+5+2+7+0+0+7+8

 (104+1*25+2*21+3*18+4*23+5*16+6*16+7*23+8*24)%103=22

 Stop

 bbsbssbssssbbbssbsbbssbbsbbbssbssbbssbbbssbsbbbsbbsbbbsbssbbbsbbssbssbbbsbbssbbbsbbsbbbsbbbsbssbbssbbssbbbsbssbbsssbbbsbsbb

 Code128C

 StartC

 无

 95+27+00+78

 (105+1*95+2*27+3*0+4*78)%103=51

 Stop

 bbsbssbbbssbsbbbbsbsssbbbsbbssbssbbsbbssbbssbbssssbsbssbbsbbbsbsssbbsssbbbsbsbb

 EAN128

 StartC

 FNC1

 95+27+00+78

 (105+1*102+2*95+3*27+4*0+5*78)%103=44

 Stop

 bbsbssbbbssbbbbsbsbbbsbsbbbbsbsssbbbsbbssbssbbsbbssbbssbbssssbsbssbsssbbsbbbsbbsssbbbsbsbb

 

 

Code128條碼

Code128編碼方式是屬於比較複雜的一種條碼,應用起來比較有彈性,在1981年開始流行起來。

Code128條碼主要特性有:

1.有A,B,C三種不同的編碼型態,可以提供128個標準的ASCIIcode字元.

   包括:

0~9的數字,英文大小寫,各種特殊符號,以及控制碼。

2.有一檢查碼,可自由決定是否要列印。

3.在可藉由A、B、C三種不同編碼型態交叉使用,以縮短條碼的長度。

4.可允許由左至右,或由右至左,雙向掃瞄。

Code128條碼基本結構

圖一

Code128條碼內容主要有四個部份:

1.起始碼(startcode)

2.資料碼(datacode)

3.結束碼(endcode)

4.檢查碼(checkcode):

可有可無

Code128條碼字元編碼方式

Code128每一字元條碼結構由3條Bar及3條Space所組成.又細分為11等分,組成不同粗細比。

字元最粗的線條最高可達最細的4倍。

例如:

起始碼CodeA

11010000100      條碼裡頭space最粗是最細線條的4倍

再舉個例子,我們以B型態中的特殊符號'/'說明

10111001100      最粗的bar是最細bar的3倍

起始碼與結束碼編碼方式

Code128條碼有A、B、C三種不同型態編碼的字元表,要選擇哪一種字元表取決於特殊控制碼CodeA,CodeB與CodeC。

起始碼也有三種編碼型態:

CodeA,CodeB,CodeC

當起始碼為CodeA時,後面的條碼資料則選擇A型態字元表編碼邏輯。

而起始碼為CodeB時,後面的條碼資料則選擇B型態字元表編碼邏輯。

若全部為數字時可選擇CodeC型態字元表編碼邏輯,以縮短條碼的列印長度。

每一類型的字元表內也有CodeA,CodeB,CodeC,但條碼編碼邏輯與起始碼不同,請參閱【Code128條碼字元表】

接下來我們看三種起始碼的條碼編碼方式

CodeA條碼資料為11010000100,條碼圖案為

 ,相對值為103。

CodeB條碼資料為11010010000,條碼圖案為

 ,相對值為104。

CodeC條碼資料為11010011100,條碼圖案為

 ,相對值為105。

結束碼編碼方式

A,B,C三種不同型態編碼方式,結束碼均固定為1100011101011,條碼圖案為

,相對值為106。

Code128條碼三種字元表型態編碼差異說明

1.A型態字元表,支援的資料碼包含:

標準ASCII=0~ASCII=95等字元及控制碼部份,以及7個Code128條碼專屬字元,共計103個字元,請參閱code128條碼字元表中的A型態。

(ASCII=0~31為控制碼,ASCII=32~95為可見字元。

2.B型態字元表包含:

標準ASCII=32~ASCII=127等字元,以及7個Code128條碼專屬字元,共計103個字元,請參閱code128條碼字元表中的B型態。

3.C型態字元表主要支援數字00~99的編碼使用,若使用長數字的資料時,可以用C型態編碼,可縮短條碼列印的長度。

數字00~99加上3個特殊控制字元,總共103個字元。

特殊控制字元說明

1.CodeA:

表示後面的字元編碼型態要使用Atable。

2.CodeB:

表示後面的字元編碼型態要使用Btable。

3.CodeC:

表示後面的字元編碼型態要使用Ctable。

4.Shift:

等於Shift鍵的作用。

5.FNC1:

等於F1鍵的作用。

6.FNC2:

等於F2鍵的作用。

7.FNC3:

等於F3鍵的作用。

8.FNC3:

等於F4鍵的作用。

Code128條碼應用實例說明

1.CodeC型態應用時機

我們舉以下例子,如果資料內如為數字0123456789,使用CodeA及CodeC條碼列印長度的差異,CodeC條碼列印出來的長度較短。

CodeA型態時的編碼如下圖

 

 

CodeC型態時的編碼如下圖

 

 

2.CodeA及CodeC型態混合應用時機

 

前面4個字元ABCB使用Atable編碼,所以起始碼以CodeA開始,然後在數字0123456789之前加上CodeC特殊控制碼,則後面的數字會轉換成Ctable編碼,如此就可以縮短條碼列印的長度。

Code128條碼檢查碼的計算方式

我們以起始碼CodeB編碼的Andy’s條碼來說明

 

步驟一.計算出S值

S=103+(d1*1)+(d2*2)+(d3*3)+(d4*4)+…

d1:

表示資料第1個字元

因為起始碼為CodeB,所以字元相對值使用Btable。

則S=103+(33*1)+(78*2)+(68*3)+(89*4)+(7*5)+(83*6)=103+33+156+204+356+35+498=1385

步驟二.將S值除以103,取其餘數M值。

1385/103=13…46?

取餘數M=46

步驟三.將M值46代入Btable找到相對值的字元為N,即檢查碼為N。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1