商品条码的编码方法采用的是模块组配法。所谓模块组配法就是以一个标准宽度的单元为一个模块,每个条或空由若干个模块组成。
商品条码的编码规则:每个标准模块宽度为0.33毫米,每个字符由7个模块构成,这7个模块组成2条2空,每个条或空由1-4个模块构成。下图是商品条码从0到9的条码符号:
条码符号分为A子集和C子集两种编码,同一个字符的两个子集的符号恰好互补,A子集组成条的模块数都为奇数,称为奇排列,C子集组成条的模块数都为偶数,称为偶排列。我们把条对应二进制数字1,把空对应二进制数字0,就可以得到条码符号对应的二进制表示:
一、UPC-A条码
要搞清楚商品条码的来龙去脉,我觉得还是从UPC条码开始讲比较好。
UPC商品条码是定长条码,条码符号一共可以表示12个数字。如图:
起始符为3个模块,两条夹一空,用二进制记为101,中间分隔符占用5个模块,即中间的两条加左中右的三个空,记为01010,终止符也是两条夹一空,记为101。
起始符后到中间分隔符前为左数据区,表示6个数字,所以就有6组两条两空,中间分隔符后到终止符前为右数据区,也表示6个数字,也同样有6组两条两空。因为起始符以条结束,所以左数据区的符号均以空开始,以条结束,使用的是A子集。中间分隔符以空开始,空结束,所以右侧数据区的符号要以条开始,空
结束,因此右侧数据区的符号使用C子集。
条码的左、右空白区是为扫描器识别条码准备开始和结束的判断依据,因此必须保持一定的宽度,UPC-A条码规定左右空白区均为9个模块宽。
符号的长度:每个数字均由7个模块组成,数据区的模块数就是7*12=84,起始符是3个模块,中间分隔符是5个模块,终止符也是3个模块,因此符号总模块数就是84+3+5+3=95。
符号长度就是95*0.33=31.35毫米,如果算上两侧空白区则是37.29毫米。
商品条码的标准规定,条码符号可以在放大系数为0.8—2.0之间变化,因此
条码符号的实际大小就是在29.83-—74.58毫米之间(含左右空白区)。
二、EAN-13条码
EAN-13条码源于欧洲,是在UPC-A条码的基础上发展起来的一种条码。欧洲将美国的UPC条码引入后,由于需要区分不同的国家,因此原有的12位数字已不够用,便将数字位数增加为13位。但是如果另外设计一种码制,欧洲与美国的条码制式将会完全不同,不便于世界范围内的商品流通。科学家们经过反复研究试验,终于找到了一个两全其美的方法。
下面是一个EAN-13条码:
仔细观察可以发现,它的左数据区和右数据区的条码符号仍然是6组两条两空,也就是说它仍然表示的是12位数字,那么多出来的那一位数字是如何解决的呢?
其实,在设计商品条码的符号编排的时候,还有一个B子集,如图:
B子集的条空结构正好与C子集的条空结构左右对换。EAN-13的13位数字,我们只用条码符号表示右12位,左边一位放在起始符左侧,称为前置码,不用条码符号表示,而是将左侧数据区的6位数字采用不同的AB子集的排列来表示。不同前置码左数据区6位数字使用的AB子集排列见下表:(注:商品条码的数字位
数自右向左排列,所以前置码是第13位,后面的6位分别是第12位到第7位)
例如:条码数字6902890884910,前置码为6,按上表查出来左侧数据区的6位数字子集排列为ABBBAA,即6(前置码)9(A子集)0(B子集)2(B子集)8(B子集)9(A子集)0(A子集)。由于B子集与A子集一样,也是空开始,条结束。所以AB子集可以在左侧数据区混合使用。右侧数据区的条码符号仍然使用C子集。为了保持EAN-13条码与UPC-A条码兼容,将左侧数据区都为A子集排列的情况
定义为前置码0,因此,UPC-A条码也可以说是前置码为0的EAN-13条码。
如此就圆满地解决了多出来的一位数字,又保持了条码符号的统一。与UPC-A条码不同的是,EAN-13规定左空白区为11个模块宽,而右空白区为7个模块宽,左边多了两个,右边少了两个,条码符号的尺寸仍然与UPC-A保持一致。
注:1.本文转自bluesky老师的QQ空间
2.bluesky老师写的条码文章,通俗易懂,而且能学到知识,谢谢老师
[Bluesky老师专栏]相关教程:
《条码知识之一:商品上的黑白两道》:认识商品条码,商品条码类型,商品条码之国别码,常见问题
《条码知识之二:店内码》:店内码的形成及分类
《条码知识之三:条码中的秘密(上)》:如何判断条码类型,条码的编码规则
《条码知识之四:条码中的秘密(下)》:从起始符和终止符快速判断条码类型
《条码知识之五:校验》:条码的三种校验方法
《条码知识之六:校验码的计算》:几种条码的校验算法
《条码知识之七:商品条码详解(上)》:商品条码的编码规则,UPC-A,EAN-13编码规则
《条码知识之八:商品条码详解(下)》:EAN-8和UPC-E编码规则
《条码知识之九:EAN-128条码(上)》:Code 128 和EAN-128的关系,Code 128 和EAN-128字符集,Code128编码规则
《条码知识之十:EAN-128条码(下)》:EAN 128码编码规则,Code 128 和EAN-128常见问题
以上文章均转自Bluesky老师的QQ空间:http://26425753.qzone.qq.com/
Bluesky老师简介:
Bluesky老师,原名韩建飞,网名Bluesky,河南外贸学校成教部主任,教条码课程,精通条码知识及各种编码规则,为人热情,经常帮助网友解答各种条码问题,在条码界享有很高的声誉。
条码知识这一系列课程为Bluesky老师根据工作和日常生活中的条码问题总结而写,简单易懂,循序渐进,让一个不懂条码的人也能很快的找到想要的答案,对于条码初学者、准备上条码的工厂、条码制作者和条码教育者来说是本不可多得的教材。
感谢Bluesky老师的无私分享!