第三节 条码码制"大爆炸"
条码在早期,曾有过各式各样的形式,以满足不同的环境及用途。20世纪50—60年代,一大批条码码制出现在人们的视野中。条码码制"大爆炸"就发生在这个时期,当时,对条码产生浓厚兴趣的发明家不止伍德兰和西尔弗。
1959年,吉拉德·费伊赛尔(Girad Feissel)等人申请的一项专利中,出现了"七段平行线"条码,即数字"0~9"中每个数字可由七段平行条组成的条码。但是依靠机器难以识读这种条码,也并不便于人工识读,所以没有得到广泛应用。不过,这一构想促进了条码码制的产生与发展。不久后,E.F.布林克尔(E.F.Brinker)申请了将条码标识在有轨电车上的专利。20世纪60年代后期,西尔韦尼亚(Sylvania)发明了一种被北美铁路系统所采纳的条码系统。
"七段平行线"条码
机器难以识读这种条码,人们读起来也不方便,不过这一构想的确促进了后来条码的发展。
目前已知的世界上正在使用的条码有260多种。这些类型的条码依据编码结构和性质可分为定长和非定长条码、连续型和非连续型条码、自校验和非自校验型条码等。
所谓自校验,是指条码字符本身仅出现一个错误时具有校验错误的特性,比如在印刷缺陷时(如出现一个污点把窄条错认为宽条,相邻宽空错认为窄空等情况)不会导致替代错误。对于自校验功能的条码,一般不需要加入校验位,但为了满足特定场合数据安全性的要求,可在条码数据符的后面加一位校验符。对于一些非自校验的条码,可以通过增加校验位来实现条码校验的功能,比如EAN/UPC条码采用从代码位置序号第二位开始,所有的偶(奇)数的数字代码进行数学运算的方法来校验条码的正确性。
25码(二五码)是最简单的条码,它研制于20世纪60年代后期,到1990年由美国正式提出。这种条码只含数字0~9,应用比较方便。由于25码是一种只有条表示信息的非连续型条码,每一个条码字符由规则排列的5个条组成,其中有两个条为宽单元,其余的条和空,字符间隔是窄单元,故称之为"25码"。当时25码主要用于各种类型文件处理、仓库的分类管理、标识胶卷包装及机票的连续号等。但25码不能有效地利用空间,人们在25码的启迪下,将条表示信息,扩展到用空也表示信息。因此在25码的基础上又研制出了条、空均表示信息的交插25码。
表示"123458"的25码
交插25码(交插二五码)是由美国Intermec公司于1972年发明的,初期广泛应用于仓储及中控领域,于1981年开始将其应用于运输包装领域。1987年日本引入后,用于储运单元的识别与管理。交插25码是一种长度可变的连续型自校验数字式码制,其字符集为数字0~9。采用两种单元宽度,每个条和空是宽或窄单元。编码字符个数为偶数,所有奇数位置上的数据以条编码,偶数位置上的数据以空编码。如果为奇数个数据编码,则在数据前补一位0,以使数据为偶数个数位。目前在运输中应用比较广泛的ITF-14条码采用的就是交插25码码制,主要用于运输包装,是印刷条件较差、不允许印刷EAN-13和UPC-A条码时选用的一种条码,比如在瓦楞纸箱等商品运输包装上就可以印刷这种条码。
采用交插25码码制的ITF-14条码
表示"3185"的交插25条码
在其他领域,条码的研制也在积极探索。库德巴(Codabar)码是1972年由蒙那奇·马金等人研制,广泛应用于医疗卫生和图书馆行业,也用于邮政快件上。当时美国输血协会还将库德巴码规定为血袋标识的条码,以确保操作准确,保护人们的生命安全。库德巴码是一种长度可变的连续型自校验数字式码制。其字符集为数字0~9和6个特殊字符(-、:、/、。、+、¥),共16个字符。左侧空白区、起始符、数据符、终止符及右侧空白区构成。它的每一个字符由7个单元组成(4个条单元和3个空单元),其中2个或3个是宽单元(用二进制"1"表示),其余是窄单元(用二进制"0"表示)。库德巴码字符集中的字母A、B、C、D只用于起始字符和终止字符,其选择可任意组合。当A、B、C、D用作终止字符时,亦可分别用T、N、#、E来代替。
标识A12345678B的库德巴码
随着条码技术的应用领域不断拓展,简单的数字式码制已经无法满足人们的需求。Code 39(39码)是1975年由美国的Intermec公司研制的一种条码,能够对数字、英文字母及其他字符等43个字符进行编码,是第一个字母数字式码制。由于它具有自检验功能,使得39码具有误读率低等优点,首先为美国国防部所用。目前广泛应用在汽车制造、材料管理、经济管理、医疗卫生和邮政、储运单元等领域。我国于1991年研究制定了39条码标准(GB/T 12908-2002),推荐在运输、仓储、工业生产线、图书情报、医疗卫生等领域应用。
39码是一种条、空均表示信息的非连续型、非定长、具有自校验功能的双向条码,其字符集为数字0~9、26个大写字母和7个特殊字符(-、。、Space、/、%、¥),共43个字符。每个字符由9个单元组成,其中有5个条(2个宽条、3个窄条)和4个空(1个宽空、3个窄空)。
标识"B2C3"的39条码
从80年代初,人们围绕提高条码符号的信息密度,开展了许多研究。128码(一二八码)和93码(九三码)就是其中的研究成果。相较于39码,1981年推出的128码是一种长度可变、连续性的字母数字条码。128码可表示从ASCII 0(美国标准信息交换代码)到ASCII 127共128个字符(其中包含数字,字母,符号),故称128码。与其他一维条码比较起来,128码是较为复杂的条码系统,而其所能支持的字符比其他一维条码多,又有不同的编码方式可供交互运用,因此其使用弹性也较大。GS1-128码是普通128码的子集,由GS1和国际自动识别制造协会合作设计而成,并将128码符号起始符后面的第一个字符值的功能符1(FNC1)专门留给GS1系统使用。
GS1-128码字符集属于字母/数字字符集,由左侧空白区、双字符起始符、数据字符、校验符、右侧空白区组成,每个条码字符(终止符除外)由6个单元11个模块组成,包括3个条、3个空,每个条或空的宽度为1~4个模块。终止符由4个条、3个空共7个单元13个模块组成。在条码字符中条的模块数为偶数,空的模块数为奇数,这一奇偶特性使每个条码字符都具有自校验功能。
由于GS1-128码是连续非定长条码,字符的个数可以根据需要确定,但是符号的物理长度和数据字符的个数有一定限制,每个符号的最大物理长度为165mm,字符个数最多为48个。
在货运包装箱上应用的GS1-128码
GS1-128码符号基本格式
所有使用GS1应用标识符的GS1条码允许多个单元数据串编码在一个条码符号中,这种编码方式称为链接。链接的编码方式比分别对每个字符串进行编码节省空间,因为只使用一次符号控制字符。同时,一次扫描也比多次扫描的准确性更高,不同的元素串可以以一个完整的字符串供条码扫描器传送。在供人识别字符中,应该用圆括号把应用标识符括起来,以便于识读,在把多个单元数据编码于一个GS1-128码中时,要遵循"先预定义长度单元数据串,后可变长度单元数据串"的原则。所谓预定义长度单元数据串,是指那些预先设定了数据串长度且长度不变的单元数据串,如贸易项目标识、生产日期等单元数据串。预定义长度单元数据串的后面不需要插入分隔符(FNC1字符);非预定义长度单元数据中(即可变长度单元数据中)的后面则必须插入分隔符,但GS1-128条码中最后一个单元数据中的后面不需要插入分隔符。"先预定义长度单元数据中"的目的就是为了要减少分隔符的用量。
预定义长度指示符表
预定义长度指示符表,所列的字符数是限定的字符长度,并且不变。括号中的数字是预留的尚未分配的应用标识符。
GS1-128码除了可表示贸易项目的标识(如全球贸易项目代码GTIN)外,还可用于表示批号,生产日期,贸易计量(重量、尺寸、体积等),保质期等各种附加信息,从而广泛用于非零售贸易项目、物流单元、资产、位置的标识,如贸易项目标识、批号、生产日期等单元数据串。每个单元数据串由一个标识部分(前缀码或应用标识符)和一个数据部分组成。例如,"(01)06901234567892"是表示定量贸易项目标识的单元数据串;"(11)060818"是表示生产日期的单元数据串。其中圆括号中的数字是应用标识符,圆括号后的数据是数据部分。
而由Intermec公司于1982年开发的93码密度更高,安全性更强。93码采用的是双校验符,也就是说,条码里有两个校验码,以降低条码扫描器读取条码的错误率。93码的打印长度较39码短,相同的字符集下,比39码要窄。而且93码的字符表与39码相容,在印刷面积不足的情况下,可以适当地使用93码代替39码。
不同码制的技术参数
此外,Charecogn公司的旭日码、Scanner公司的406码、美国邮政服务部门使用的Postnet的代码,以及PDF417、Datamatrix、Code 6等,在汽车、交通运输、化学和电子行业中都非常流行。
市面上曾出现过的各式各样条码,例如Codabar、旭日码、406码
美国邮政系统使用的条码
自条码诞生至今,经过一代代研究者的不断发明与探索,出现了不同码制的条码,有一些条码已经不再使用,但还有一些条码如EAN/UPC码、25码、交插25码、GS1-128码等时至今日仍在大规模应用。随着技术的不断进步,条码技术彻底改变了人们的工作和生活方式,并推动人们体验更加优质和便捷的生活。