生产线上条码打印软件的改进

2010-07-27 06:40罗军
中国新技术新产品 2010年15期
关键词:配置文件条码打印机

罗军

(湖南商务职业技术学院实训中心,湖南 长沙 410205)

引言

随着近几年国内信息化建设的大力普及,诸多企业对条码打印软件的需求越来越迫切。这些企业属防伪印刷、物流流通、工业生产 居多。国外条码打印软件由于语言文字(汉化软件很少)、操作习惯、功能需求差异等原因,让国内企业“望而生畏”。综上所述,国内条码打印软件社会需求环境已日益成熟;国内条码打印软件蓄势待发。

目前,由于国内的打印机随着价格的下降,已经开始逐渐普及,在国外,几乎所有的生产单位都配备有一台标签条码打印机(即LABELPRINTER 和 BARCODEPRINTER),应用在产品标识等方面,并且大部分公司都拥有条码阅读器(即SCANNER)和条码数据采集器(盘点机)等打印机的附属设备,形成了公司内部管理的条码管理自动化的管理模式。

1 开发背景

随着信息化技术的飞速发展,以及工厂生产数量的日益增加。过去打印机自带的软件产品,已无法满足现在生产的需要。一般最常见的就是打印流水号,按照企业自定义的规律递增编码,为了确保产品的唯一性,流水号不能重复,如果通过人员来记录,一是工作量大,二是操作人员容易疏忽,导致重码、错码。为了提高生产效率、减轻操作员负担、确保安全可靠,必须根据企业自身所需,量身定做一款新的条码打印软件。

2 条码打印机及相关软件简介

2.1 条码打印机

条码打印机和普通条码打印机不一样,它是通过打印头把碳带(相当于针打的色带)上的墨印在条码打印纸上(有一定标准大小的不干胶式的打印纸)。虽然可以当作普通打印机使用.但绝大多数时间还是被应用在打印商品条码上。条形码打印机的打印是以热为基础,以碳带为打印介质(或直接使用热敏纸)完成打印,这种打印方式相对于普通打印方式的最大优点在于它可以在无人看管的情况下实现连续高速打印。

2.2 条码打印软件

条码打印软件,顾名思义就是可以根据指定数据生成并打印条码的软件。业内最早成型的条码打印软件起于欧美发达国家,这与该地域工业自动化普及程度有着密不可分的关系。国外条码标签打印软件著名的有:Bartender、nicelabel、labelmartix 等,这些软件在国外条码标签打印业内长期居于霸主地位,与国外软件相比,国内条码打印软件数量少之甚少,且鲜有耳闻。

图1 条码样式

3 需求描述

3.1 条码尺寸大小及数量

尺寸大小为30*9.6mm2,每张打印三个条码。如图1。

3.2 编码规则定义

根据客户需求及给出的样式,其规则如下:

(1)第1位 P/S面

(2)第2-3位 产品型号两位缩写(如Nokia'NK)

(3)第4位 生产车间(0-9)

(4)第5-8位 流水号(同一产品不能重复,为节省排号,采用数字和字母混合的三十六进制编码,即0000-ZZZZ)

3.3 历史记录存储方式

在做打印输出的同时,当然也需要把打印记录存储起来,以便于后期的维护或查询。根据业务情况,此编码不需要和其它数据关联,无需存储到数据库中,可以脱机打印,存储到本地即可。为方便简单查询,存储介质采用Excel。

3.4 安全要求

在安全方面,最关键在于确保打印流水号的唯一性,如果重复,会导致大量条码纸张浪费。所以需要随时把记录保存到本地,并应对流水记录号做定期备份,以防丢失。

4 技术与实现

基于对界面操作的友好性,以及开发周期的要求。开发语言选用c#,winform技术。在缩短开发周期、访问Excel方面,C#占有优势,毕竟都是Microsoft产品。另外还需要应用一些相关的技术,如打印、操作Excel及文本、基本的算法等。

4.1 打印技术

在Winform中的打印主要可以通过三种方式来实现:一种是使用Winform提供的类,另一种是使用控件(如PrintDocument、Print-Dialog),还有一种就是利用水晶报表的打印。当然系统自带的打印主要是针对文字或图片,对于特殊的条码打印,需要在原有的打印类上进行二次开发。为了节约开发周期,在这里采用目的比较成熟的条码打印第三方控件CodeSoft。通过其留的各种接口,我们只需要通过程序在变量值中传入相应的数据即可操作。另外用户还可以通过CodeSoft调整条码模块的大小样式等,增强了软件的灵活性和可维护性。

在开发中,需要先加载一个CodeSoft自带的DLL应用程序集,通过自定义的打印模板对象对CodeSoft内的变量、公式、函数等进行操作。基本代码样例如下:

值得注意的是,在打印过程中,需要隐式打开模板,如果不及时关闭或者结束进程的话,会导致显式打不开模板,并且占用系统资源,为此需要在关闭软件,或者打印结束时杀掉进程,以防后患。在程序中可以通过遍历系统进程实现,找到名为LPPA的进程,结束进程。代码如下:

4.2 对Excel的写操作

Excel和开发语言C#都是微软的产品,所以它们之间互访性和操作性溶合得很好。在开发过程中,首先需要添加Excel引用,然后导入命名空间。主要应用其中的Application、WorkBook、WorkSheet等接口,操作比较方便。

同样,程序是隐式打开Excel文件,需要及时关闭应用进程。方法和结束LPPA进程一样,只不过可能会同时结束掉正常显式打开的Excel文件。所以在此处需要加一个判断,那就是只结束掉在程式中实例化一个Excel对象所产生的进程。那么需要为Excel对象添加时间属性,实例化对象时,构造方法自动为时间属性赋当前时间,杀掉进程时通过实例化的时间进行判断即可。

4.3 三十六进制的转换

根据客户要求,为了节省流水号位数,采用三十六进制编码。即10位数字和26位字母混合编码。这样我们需要自己编写十与三十六进制互换功能。如下为十转三十六进制的递归调用核心算法:

4.4 确保唯一性

为了让打印的条码不会出现重复,我们需要把当前打印数据存储到配置文件中,在C#中可以通过StreamReader和StreamWriter来进行读写操作。在单机打印的情况下,为了防止配置文件的修改和丢失,需要做好备分工作。

首先,在每次关闭软件的时候,软件自动对配置文件做备份,文件后缀改为.bat,然后在操作系统计划任务中,定期对配置文件进行备份。前者的备份位置是软件的当前目录下,后者用户可以自己设定。

5 结束语

条码打印是很多制造企业的主要生产步骤之一,可以发生在任何一个环节,所以对其编码的规则也五花八门。按维数可分为一维和二维条码,按编码规则可分为Code39,Code128等,像这样复杂的类型组合,如果通过开发语言自行编写,显然增加了开发的难度,也降低了软件的灵活性。通过使用第三方控件,很好的解决了这些问题。

[1]杨明,WinForms高级应用开发,科学技术文献出版社,2006,第1版.

[2]海杰尔斯伯格,C#编程语言详解,电子工业出版社,2007,第2版.

[3]秦开涌,胡业发,丁毓峰,条形码技术在生产信息采集系统中的应用[J],计算机工程与应用,2005年23期.

[4]Microsoft MSDN,http://msdn.microsoft.com/zh-cn/default.aspx

猜你喜欢
配置文件条码打印机
中国条码技术与应用协会
条码微站
热线互动
忘记ESXi主机root密码怎么办
另类3D打印机
打印机设置
打印机基板大型注塑模具设计
FDM型混色3D打印机的设计
复制粘贴打印机
基于固定条码与电子标签比对设备的设计