[原创]解决某物流企业二维码打印问题
以下文章是在解决客户问题时对二维码的感受,希望能给大家提供一些参考。
1问题背景
浙江某医药物流有限公司(以下简称:A物流公司)系某有限责任公司控股的全资子公司,现已投入使用的物流中心面积达6万平方米。多年来,A物流公司始终坚持“信息化是现代物流的灵魂”,自行设计开发了ERP、WMS、第三方物流系统、二维条码、办公自动化系统(OA)、物流网站,成功地应用了温湿度自动监测技术、无线射频技术(RF)、电子标签技术、消防安保红外监控报警技术、GPS监控、业务叫号系统等,引进了国际先进的托盘提升机、螺旋输送机、自动分拣系统等自动化物流设施,是一个集药品储存、验收养护、物流加工、装卸搬运、集中配送和信息服务等六大功能于一体的专业化医药物流基地。
我们从作业现场了解到,在发货前,需通过自动分拣系统对药品进行分拣,所以,仓管员在库房必须为每一箱药品打印一维码和二维码各一张标签,并粘贴在药品外包装上,然后通过螺旋输送机进入分拣系统。其中一维码标签用于药品在物流基地内部流通过程中的信息采集;而二维码标签用于药品在外部(如医院)流通过程中的信息采集。条码标签信息是自主开发的管理信息系统,仓管员通过手持终端远程访问部署在服务器的终端软件,终端软件调用我公司开发的打印组件程序驱动条码打印机打印条码标签。
我公司主要为A物流公司供应的设备主要有条码打印机、手持终端、无线路由等。其中条码打印机有两种类型:一种是移动打印机,型号为Zebra QL/420 Plus,另一种是台式打印机,型号为Zebra 888;手持终端采用的是Motorola MC50。二维码类型采用的是QR Code,包含近400至500个汉字,标签纸大小为80 * 40。
系统试运行时,台式打印机打印出来的标签上的二维码图像很清晰,手持终端对其识别率很高,扫描效果很好。但是移动式打印机打印出来的标签上的二维码图像很模糊,而且还会出现重影现象,手持终端对其识别率很低,省物品编码中心的专业仪器对其检测出来的参数未达到识别标准。试用期间,尽管我公司采取了一些措施,如放大二维码图像大小,调整打印机参数等,还邀请移动条码打印机厂商--斑马公司的工程师协助,二维码移动打印问题仍未得到圆满解决,直接导致A物流公司的条码系统的推广计划被迫搁置。
2二维码知识
在分析上述问题之前,我们先来了解二维码方面的重要知识。
2.1二维码简介
二维码就是在平面(二维方向)上按照一定规律通过显示黑白相间的图形来记录数据信息的媒介。它可以被图象输入设备或光电扫描设备自动识读以实现信息自动处理。
相对一维码来说,二维码的主要优点是:
1) 高密度编码,信息容量大,可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字;
2)编码范围广,可以把图片、声音、文字、签字、指纹等可以数字化的信息进行编码;
3)容错能力强,具有纠错功能,即使局部损坏的二维码也可以正确得到识读;
4)译码可靠性高,二维码的误码率不超过千万分之一;
5)可引入加密措施,使得条码信息具有很好的保密性和防伪性。
使用二维码,可以很好的解决如下问题:
1) 表示包含汉字在内的数据信息。
2) 在有限的面积上表示大量信息。
3) 对物品进行精确描述。
4) 防止各种证件、卡片及单证的伪造。
5) 在无法连接数据库和不便联网的地方实现数据采集。
2.2二维码分类
按照图形结构来分,常见的二维码可分为行排式二维码和矩阵式二维码。
行排式二维码建立在一维码基础上,按需要由两行或多行的一维码堆积而成。它在编码设计、检验原理、识读方式等方面继承了一维条码的特点,其识读设备、条码印刷与一维条码兼容。常见的行排式二维码主要有PDF417、Code 49、Code 16K等,如下图:
PDF417 |
Code 49 |
Code 16K |
1) PDF417可以表示 1100 个字节;
2) Code 49可以表示全部的 ASCⅡ字符;
3) Code 16K可以表示全字符集的 128个字符及扩展 ASC Ⅱ字符。
矩阵式二维码以矩阵的形式组成,在矩阵相应元素位置上,用点的出现表示二进制“1”,点的不出现表示二进制的“0”,一系列的点的排列组合确定了二维码所代表的意义。矩阵式二维码是建立在计算机图像处理技术、组合编码的基础上的一种新型图形符号自动识读处理码制。常见的的矩阵式二维码主要有QR Code、Date Matrix、 Maxicode 、Code one等,如下图:
QR Code |
Date Matrix |
Maxicode |
Code one |
|
|||
Grid Matrix |
Compact Matrix |
|
1) QR Code除外可以表示与PDF417相同的字符外,还可以表示有效表示中国汉字、日本汉字。
2) Data Matrix 能表示 128个字符及扩展 ASCⅡ字符;
3) Maxicode可表示 128个 ASCⅡ字符及扩展 ASCⅡ字符;
4) Code one可表示256个 ASCⅡ字符,另加 4个功能字符及一个填充字符。
5) Grid Matrix和Compact Matrix标准是中国信息产业部于2006年5月份,所颁布的两项国产行业推荐标准。
2.3二维码技术指标
二维码有最重要的两个技术指标,即单位面积的信息存储容量和信息纠错能力,这两个技术指标同时影响着二维码的识别率。有限的单位面积内信息存储容量越大,可供存储纠错信息越少,纠错能力越低,反之,单位面积的信息存储容量越小,可供存储纠错信息越多,纠错能力越强。
3问题分析
根据上述二维码的知识,我们可以分析出,影响二维码识别率的因素主要包括以下方面:
a) 不同的二维码类型;
b) 条码识别设备的能力;
c) 二维码图像的打印质量;
d) 二维码单位面积的信息存储容量;
e) 二维码图像生成算法。
由于A物流公司的药品信息中包含了汉字信息,所以其二维码必须采用QR Code。由于台式打印机打印的二维码能够被MC50很好识别,而移动打印机打印的二维码却识别率很低,所以可以排除上述a)和b)两个因素的影响。这样一来,我们就应该从上述c)、d)和e)三个因素入手解决问题。
4试验过程及解决方案
第一次试验:由于之前没有接触过二维码,对二维码的知识知之甚少。首先,我在网上到处查找资料,然后潜心研究二维码相关知识,最后,我们得出的结论是,识别率低主要是纠错能力差的原因造成的;纠错等级越高,图像密度越大,扫描效果越差;QR Code最适合存储汉字的。首次试验没有实质性结果。
第二次试验:采用QR Code,通过逐步调整图像大小来提高打印质量,经过测试后发现确实有些效果,能够略微提高识别率。第二次试验收效甚微。
第三次试验:一位专门研究打印机的专家提醒,可以通过调整打印机的速度和浓度来提高打印质量,但经过测试后发现效果依然不明显。
第四次试验:通过与条码事业部的沟通过程中得知,不同价格的标签纸质量不一样。在本次测试过程中,我用质量最差的标签纸打印出来的二维码根本无法识别,而用质量最好的标签纸(理光)打印出来的二维码质量明显提高。所以,打印纸的质量好坏严重影响打印质量。
第五次试验:经过与A物流公司的工程师讨论,确定把二维码得字符容量降到300个汉字左右,配合前四次试验的方案,识别率明显提升,但是又发现扫描距离在很小的范围,这对操作员太麻烦了。
第六次试验:通过研究资料发现,生成二维码图像的程序算法会影响条码打印质量。所以接下来,我们立即对扫描接口程序结构分析,发现我公司开发的打印接口程序PLable.dll调用了一个第三方二维码生成组件。为了验证程序算法的影响,我们从网上下载了一个二维码生成软件PtBarcodeEnc (试用版),在相同的移动打印机、相同的标签、相同的字符数的情况下,我们发现生成二维码的程序算法对扫描效果影响很大。
第七次试验:经过前面六次之后,基本上可以确定能解决问题,关键是能找到最优的状态。所以,我们在本次测试中,设定5种不同的图像大小,4种不同的字符容量,经过排列组合成20种情况,并且把20种组合的效果打印出来,最后得到最优的效果。
总结七次测试,我们主要从改变图像大小、更换二维码生成程序、提高纸张质量、调整打印机参数等四个方案结合起来,并对接口程序进行优化和完善,这样就大幅提升二维码的打印质量。
5实施效果
我们从改变图像大小、更换二维码生成程序、提高纸张质量、调整打印机参数,大幅提升二维码的打印质量,把包含600个字符容量的二维码在标签纸打印后,识别率基本上可以达到100%,扫描距离的有效范围在6CM至15CM之间,经过现场的真实测试后,二维码已经集成到管理信息系统系统。