问题描述:
斑马打印机(ZM400)打印客户订单的包裹标签时,偶尔会出现部分内容缺失或者出现黑块现象。有时打印1000单可能出现1单这种情况。有时A打印机出现,有时B打印机出现。问题随机不定时出现在不固定的打印机中……
因为问题出现机率不算太高,面单有问题后,重新打印即可解决。一线员工暂时也没有太强烈的要求必须马上修复。
但是这种情况就是跟眼里面有小沙子一样,不除不快。
漫长的解决过程:
- Firmware排查,观察并统计较长时间内没出现问题的打印机的Firmware版本,将问题涉及的打印机版本升级到对应的Firmware, 事后证实无效。该出问题还是出问题;
- 接口影响排查,因打印机支持并口和USB口连接方式。观察统计二种接口出现问题的情况,事后证实无效,不管使用什么接口,都有机率出现问题;
- 线缆干扰排查,Zebra中国提供了抗电磁干扰强的线缆,使用了一段时间,仍然出现这种问题;
- 软件代码排查,通过网络数据抓包排查,确认出现问题时,发往打印机的数据(ZPL打印指令的内容)完好无损;
- 经Zebra 中国的支持提示,协调公司的软件工程师进行改善优化代码,更新一些打印指令。更换Zebra逐渐弃用的旧指令,问题依旧;
- 因为打印数据是通过网络发送到瘦客户机的特定端口,然后瘦客户机里有特定的监听程序进行转发到USB或者并口,于是Zebra公司有理由认为数据是在瘦客机端往USB之间有所缺失,导致打印内容有缺有黑块现象;
- 于是考虑USB抓包的可能性,了解到市面上有USB复制的设备。考虑到这种设备价格不菲。尝试联系Zebra看是否能提供USB数据复制设备,Zebra中国区有一个这样的设备,几经周转拿到手了,抓包开始,经常一段时间的抓包,成功捕获到了出现打印问题期间的数据包,并对应了问题的面单。经仔细核对发现打印内容确实没在发送数据有所缺失,转发Zebra进一步确认问题;
- Zebra 方终于按捺不住了,有个技术方面的主管决定亲自来看看,另外带了个USB数据抓包软件及设备,他亲自上阵到我所在的运营中心进行抓包(当时是冬天,他穿得太少了,我们库房可是没空调的,冏)时间还有点紧,他还要赶飞机,天哪!抓包真不能保证在抓包期间正好能出现打印问题。因为这是有机率的随机性的。不过既然来了,那就全力配合了。但是抓包经历了一二个小时还没有出现打印问题,要不要换一个工位重新抓呢?抓不到包含有问题的数据包,他这趟就是白来了。马上又要离开现场去赶飞机了。这时附近一个工位说之前有出现问题。可是如果换过去了,也是不能保证就一定遇到的。换还是不换?最后我们做了个决定--换!接线接好一切准备就绪。离他要离开的时间也就剩半小时了,终于上天眷顾我们,在半小时内一个打印有问题的面单出现了!
- 值得庆幸的是,Zebra 也在它的实验室重现了我们的问题;
- 剩下的就是Zebra的事了,经过他们分析研究,发现了Firmware的Bug (大概是内存管理上的),于是针对我们的问题发布了一个修正的firmware;
- 更新Firmware并持续测试一段时间,该问题再无出现;
- Zebra 官方正式对外发布Firmware更新;
- 中国区的所有运营中心相关打印机统一更新Firmware, 困扰发货部门多年的奇葩问题终于得以解决!