
常用一维条形码编码规则.doc
25页. . 常用一维条形码1 39码(CODE39)39码可以包含数字与英文字母除了超市、零售业的应用中使用UPC/EAN码外,几乎在其他饿应用环境中,都是使用39码39码是目前使用最广泛的条码规格,支持39码的软硬件设备也最齐全1.1 特征u 能表示44个字符,A-Z、0-9、SPACE、-、.、$、/、+、%、*u 分散式,条码组之间使用细白条分隔u 两种宽度u 自我检查u 有扩展模式 《Full ASCII Mode》u 检查码字符可有可无,视需求而定1.2 组成u 各个字符有9条黑白相间,粗细不同的线条组成,其中6条为黑白细条3条黑白粗条u 一串字符必须在头尾加上起始字符和完毕字符“*”1.3 校验方法CODE39字符012345678值012345678字符9ABCDEFGH值91011121314151617字符IJKLMNOPQ值181920212223242526字符RSTUVWXYZ值272829303132333435字符-.SPACE$/+%值36373839404142找到输入字符串每个字符对应值,求和,除以43, 取余数。
1.4 条码说明1.5 编码表P.S.在程序中可以使用“11”表示宽黑条,‘1’表示细黑条,“00”表示宽白条,“0”表示细白条那么字符1就可以表示为1使用此方法建立一个编码表,每个字符可以长度为12的“01”字符串来表示1.6 典型CODE39条码1.7 CODE39的扩展码扩展码表同CODE93但是扩展方式不同,39码使用$,/,+.%与其26个大写字母组合,表示ASCII码表中的其他字符条空表示方式和校验方式 与标准39码相同93码中使用的控制码与26个大写字母的组合2 93码(CODE93)2.1 组成u 字母:A-Z,数字:0-9,符号:SPACE, - , . , $ , / , +, %, 控制码:$ , / , +, %,起始完毕码:□u 每个字由9个模组成,包括3条粗细黑条与3条粗细白条每一黑条或白条有可能为1.2.3.4模组成2.2 特征u 用4个控制码 $, %, /, + 组合其他字母或符号,可编程FULL ASCII字母,读码器读到上面4个控制码的组合时候,送出的字尾所对应的ASCIIu 有2个检验码C和K2.3 校验方法u 先查出资料所对应值,对应值的表如下字符012345678值012345678字符9ABCDEFGH值91011121314151617字符IJKLMNOPQ值181920212223242526字符RSTUVWXYZ值272829303132333435字符-.SPACE$/+%值36373839404142u 检查码C由资料的最右边一位用1-20顺序排列,若资料超过20位,在从1-20起算,顺序号作为权值,分别乘以对应值,求和,除以47,取余数u 检查码K由C位用1-15顺序排列,若资料差偶偶15位,再从1-15起算,顺序号作为权值,分别乘以对应值,求和,除以47,取余数u 举例:资料C O D E SP 9 3 “C”“K”资料对应值12 24 13 14 38 9 3C 排列顺序7 6 5 4 3 2 1K 排列顺序8 7 6 5 4 3 2 1(1x3) + (2x9) + (3x38) + (4x14) + (5x13) + (6x24) + (7x12) = 484C = 484 ÷ 47 = 10…… 14 (余数)则 C = 14 = E (对应值)(1x14) + (2x3) + (3x9) + (4x38) + (5x14) + (6x13) + (7x24) + (8x12)= 611K = 611 ÷ 47 = 13…… 0 (余数)則 K = 0 = 0 (对应值)2.4 条码说明2.5 编码表P.S.程序编码中,完毕符号模块比起始符号多一个“1”;使用控制符组合字母所表示的字符,编码时需要分解成控制符和大写字母两个模块。
比如字符NUL可分解成控制符%和U,条空为“111011010 和 1100101102.6 典型CODE93条码3 128码(CODE128)3.1 特征u 能表示106种字元u 3个字符集u 连续式u 四种宽度u 三种字符集可串联使用u 使用检查码3.2 组成u 提供128个ASCII的所有字符u 有A、B、C三种不同模组u C组数字专用模组,可从00-99编码,缩短编码长度u A、B、C三种模组依资料结构,可混合编码u 每个字由3条粗细黑条与3条粗细白条组成,但每个模组都是12各个单元宽度u 三组模组起始码不同,但完毕码相同3.3 校验方法u 首先为字符串标志条码(码字)u 从起始符开始,自左向右为每个条码字符编号u 为每一个字符分配权数,起始符和第一个字符的权数位1, 以后依次增加u 每个字符的权数与码值相乘u 所有乘积求和u 第5步的结果除以103求余数u 码值等于余数的字符即为校验符;3.4 编码表P.S.程序中可用“1“表示一个单元宽度的黑条,“0”表示一个单元宽度的白条则上图中的Value=0的条空可表示为0终止符有13个模块宽度条空表示为11,末尾多两个“11”;3.5 典型CODE128码3.6 条码说明u 例如,某128码的值为ROC12345,则其逻辑和条码如下模块数值逻辑型态B 式StartB 式RB 式O B 式C B 式I B 式转 C 式C 式23 C 式45 C 式Stop 11 u 某一个128码的值为5418781,则其逻辑与条码如下模块数值逻辑型态C Start C 54 C 18 C 78 C 14 C Stop 11 4 EAN-128EAN-128码,现称GS1-128码,是专用于GS1系统中的条码,可以标注商品的附加信息,在山品信息的标志、茶品的跟踪与追溯中有广泛的用途。
EAN-128码来自于CODE-128码,在字符集、条空规则上与CODE-128完全一致4.1 组成u EAN-128码组成同CODE-128u 应用标识符使用分隔符码字FNC1表示4.2 特征同CODE-128;4.3 条码说明u 如果字符串起始的字符是超过4个的数字字符时,应该采用START C数据中间如果有4个或4个以上连续的数字也要变换为字符集Cu 如果数据中的应用标识符使用的是预定义程度的AI,则可以省去数据后的分隔符u 例子例1(01)250(13)091020(15)100420 用条码可以表示为 |START C|FNC1|01|16|90|31|28|10|02|50|13|09|10|20|15|10|04|20|校验码|STOP|例2(02)250(37)100(10)091000S|START C|FNC1|02|16|90|31|28|10|02|50|37|10|CODE B| 0 |CODE C|FNC1|10|09|10|00|CODE B|S|校验符|STOP|5 标准2 of 5 (INDUSTRY 2 OF 5 STANDARD)5.1 组成:u 由5条黑条组成,其中有3条细黑条,2条宽黑条u 黑条与黑条之间与字与字之间偶用一白条分隔,所以白细条不表示资料u 起始与完毕码不同u 数字0~95.2 特征u 一串资料可以改变程度,但只有数字可编u 粗细比例1: 3,允许误差±25%u 分散式u 无验证码5.3 编码表 P.S. 程序中:“1”表示1个黑条宽度单元,因为粗细比是1:3,显然粗黑条表示为“111”,又因为每两个黑条使用细白条分隔,所以上表中数字1可以表示为:“11”6 交错式25码(INTERLEAVED25)6.1 组成u 由5条粗细黑条组成,其中3条细黑条,2条宽黑条u 由5条粗细白条组成,其中3条西白条,2条宽白条u 黑条置于奇数位,白条置于偶数位,故又称交错式2OF5u 起始码和完毕码不同u 只能表示0~9u 必须偶数位配对6.2 特性u 资料程度一定是偶数u 只能表示数字0~9u 连续式u 不一定使用检验码u 粗细比1:2或1:3,误差10%u 粗细印刷比例若误差太大,可能解错码6.3 校验方法交叉25码的校验位计算方法依然是 Mod 10 :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)]=36.4 条码说明6.5 编码表P.S.程序中,可以’N’表示窄条,’W’表示宽条,因为黑条白条的相对位置固定,所以上表其实是一个pattern表比如字母1表示为W N N N W虽然粗细比允许1:3,考虑到解错码的可能性,建议粗条使用2个单位宽度 因为交错式25码必须是成对的数字,所以可以把相邻两个数字作为一个模块比如条码1234,可以分组为12 | 34; 取“12”为例,1在奇数位置,为黑条,对应pattern为WNNNW,2在偶数位置,为白条,对应pattern为NWNNW,那么12合起来作为一个模块,混合pattern为WNNWNNNNWW,这个pattern里,奇数位的W表示粗黑条,奇数位的N表示细黑条,偶数位的W表示粗白条,偶数位的N表示细白条,因此12的条空表示为:1006.6 典型交错式25码7 CODABAR码7.1 组成u 由7条黑白相间、粗细不同的黑白条组成,其中包括4条黑条,3条白条u 字与字之间为一细白条u 4个起始和完毕码,可互相配对,但一般都用相同u 数字:0~9, 特别符号:-、$、=、。












