陈延文,陈旭文,管 永
(1.天水师范学院 电子信息与电气工程学院,甘肃 天水 741001;2.兰州达嘉喷码标识设备有限公司,甘肃 兰州 730050)
为了实现工业生产过程中对产品的跟踪和追溯,对产品内外包装进行赋码,并将内外包装的赋码结果和内外包装的关联结果保存到数据库。通过软件控制向打印机发送编码或二维编码,完成赋码功能;内外包装的关联由软件完成,并存储到数据库中,要求可靠、快速、稳定;便于企业后续利用本软件产生的数据,在ERP系统中开发更复杂的应用。
本软件主要解决食品饮料行业中包装的赋码与关联问题。系统工作模型如图1所示。
受兰州达嘉喷码标识设备有限公司委托,开发设计该公司代理销售产品的配套软件,该公司主要销售产品包括激光喷码打印机、条码打印机等产品,该公司还为相关企业提供产品集成服务,包括赋码控制、关联软件的开发。
向激光打印机和条码打印机发送编码,经打印机打印赋码,要求快速、准确、稳定;要求在赋码打印的同时,还要进行内、外包装码的相互关联,并将关联结果存入数据库,以备后续查询、跟踪及ERP应用开发。
图1 系统工作模型
(1)赋码。指将软件根据客户要求的格式生成的代码按照激光打印机和条码打印机的通讯协议要求,经过处理后,发送给激光打印机或者条码打印机,经过激光打印机和条码打印机雕刻或打印在产品的外包装上的过程。
(2)关联。指产品的外包装(箱)的条形码和产品的内包装(盒或瓶)的编码之间的对应关系。例如:如果对于6瓶(盒)/箱的包装形式,那么,1个箱码则对应6个瓶(盒)码,箱码和瓶(盒)码编码要求必须唯一,不能重复,防止内外包装码之间对应关系混乱,造成窜码。
(3)前关联。指在赋码前,由软件根据厂家设置的参数,形成内包装(盒或瓶)的编码与外包装(箱)的条形码之间的对应关系。
(1)要求计算机与激光打印机和条码打印机通讯协议采用RS232通讯。
(2)要求激光打印机和条码打印机在波特率为19 200和9 600的情况下,关联速度要达到最少2箱/s的速度。
(3)要求每个产品批次产品数量在10~200 000瓶之间。
(4)要求将赋码结果和关联结果存入数据库,便于数据查询和数据导出。
(5)要求对赋码出现失败的情况下,可以进行补救或重新打印赋码。
(6)要求用户界面友好、操作方便。
(1)硬件环境:X86 架构,主频4.5GHZ,1G 内存,天灿加密锁,研华PCI1761-I/O卡。
(2)软件环境:Windows XP、Windows 7、Windows 10平台,.NET Framework 3.5以上版本,研华PCI1761 I/O卡驱动程序DAQNavi_PCI1761_PCM3761I_MIC3761_4.0.3.0以上版本,Access2010数据库引擎。
软件设计中的功能模块包括:
(1)“新建任务”功能模块。本功能模块的功能是生成产品任务(实际就是生成Access 数据库文件),将产品生产日期、产品批次、班次、每箱瓶数、生产线编码、厂家编码等信息存入数据库,并根据瓶数产生瓶码数据库表(BottleTable)和箱码数据库表(BoxTable),BottleTable 表的记录条数等于瓶数,BoxTable表的记录条数等于瓶数/每箱瓶数。在每条记录中产生唯一的随机码,为在关联时产生盒(或瓶)码、箱码做准备。
(2)“产品信息设置”模块。本功能模块的功能是设置产品基本信息,信息包括:产品编码、产品名称、每箱瓶数、每垛箱数。将这些信息存入数据库的表BasicTable中。要求实现增、删、改的功能。
(3)“补印漏码”模块。本功能模块的功能是对打印机打印赋码过程中由于打印机故障或因打印质量原因,对瓶(盒)码及箱码需要重新打印时,通过查询箱码,实现对箱码和瓶(盒)码的查询和打印功能。要求通过输入箱码的后8位,然后查询出箱码以及与箱码关联的瓶码,然后选择打印。
(4)“系统参数设置”模块。本功能模块的功能是设置条码打印机(打印箱码)的通讯串行口及波特率、激光打印机(打印瓶(盒)码)的通讯串行口及波特率,厂家代码、生产线代码、导出文件夹、备份文件夹等。这些信息保存在系统配置文件sysconfig.ini文件中,以备使用。
(5)“导出关联数据”模块。本功能模块的功能是以文本文件格式(扩展名为TXT)导出数据库文件中的关联结果数据,并保存在“系统参数设置”中设置的“导出文件夹”的文件夹下,以备开发其他ERP应用时使用。
(6)“系统日志浏览”模块。本功能模块的功能是在对系统运行过程中产生的日志文件打开并进行浏览,通过浏览日志文件,对系统的运行过程中的错误进行处理,对系统运行性能进行评估。
(7)“开始生产”模块。本功能模块的功能是根据生成的产品任务,根据客户要求格式,产生瓶(盒)码和箱码,并发送给激光打印机和条码打印机,将瓶码存入数据库表BottleTable中,将箱码存入数据库表BoxTable 中,并且进行瓶(盒)码和箱码的关联,并将关联结果存入数据库的BoxTable 中,要求在向激光打印机发送瓶码时,通过研华的PCI1761 I/O卡,接受激光打印机的“Marking”应答信号的下降沿后,才发送,系统处理流程如图2所示。
图2 处理流程图
基于物流管理的防窜码前关联软件程序结构如图3所示。
系统功能需求与程序的关系见表1-表3。
表1 功能需求与程序的关系1
表2 功能需求与程序的关系2
表3 功能需求与程序的关系3
图3 基于物流管理的防窜码前关联软件程序结构图
在赋码过程中,如果打印机出现故障、人为造成内外包装关联错误、打印质量不理想的情况,需要人工处理。如果打印机出现故障,造成漏码,需要人工找出遗漏的码,然后用“补印漏码”的功能进行补打漏码。若打印质量不理想,也可以利用“补印漏码”的功能重新打印。
数据库读写速度优化的问题,用户要求在打印机波特率为19 200时,根据打印内容,赋码打印速率达到3 箱/s,当然这个速率和计算机配置有关系,与数据库的读写方法也有关系。目前在Pentium4 3.5G,1GB 内存配置下,能达到 3 箱/s 的速率,满足客户要求。这个速率越高越好。
(1)用户主界面,启动程序后,该界面首先显示,实现与用户总体交互,如图4所示。
(2)“系统配置设置”界面,完成软件系统运行环境的信息配置,如图5所示。
(3)“产品基本信息设置”界面,完成生产产品基本信息的设置,并存入数据库,如图6所示。
(4)“生产任务”界面,完成生产任务的生成,并把生成数据写入数据库,如图7所示。
图4 用户主界面
图5 “系统配置”设置界面
图6 “产品基本信息设置”界面
(5)“打开生产任务”界面,完成生产任务的打开(打开对应的数据库文件),如图8所示。
(6)“补印漏码”界面,完成在赋码过程中对漏码或质量不理想的码进行补打的对话框,如图9所示。
(7)“关联数据导出”界面,完成关联数据以文本文件导出,以备开发ERP应用,如图10所示。
(8)“浏览日志文件”界面,完成对日志文件的浏览功能,如图11所示。
图7 “生产任务”界面
图8 “打开生产任务”界面
图9 “补印漏码”界面
有四个外部硬件接口,分别为:
USB接口:利用第三方U盘加密锁(天灿加密锁)对软件实现加密,防止用户非法重复拷贝。与加密锁有关的软件包括:readPasswordDog 方法读密码,RegisterDeviceNotification()注册设备。
PCI IO接口卡:型号为研华PCI1761 IO卡,需要安装相应的驱动程序。
与激光打印机连接的串行口:波特率可以设置。
与条形码打印机连接的串行口:波特率可以设置。
外部软件接口:access2010数据库驱动引擎。
图10 “关联数据导出”界面
图11 “浏览日志文件”界面
软件中有一个类,是接口类,为串行通信提供统一接口,接口中有两个方法。一个是事件处理方法Datareceived,另一个是数据发送方法SendData()。
操作步骤:参考图2处理流程。
在图12所示的主界面中,点击“开始”按钮,程序开始运行,开始赋码并关联。在运行过程中,如果要停止系统,可以在图12所示的主界面中,点击“停止”按钮,使程序停止运行。
图12 系统主界面
用户要求在打印机波特率为19 200 时,根据打印内容,赋码打印速率达到3箱/s,经过测试,在生成任务为20万瓶时,赋码打印速率可以达到5箱/s。
(1)产品基本信息E-R图,如图13所示。
图13 产品基本信息E-R图
(2)瓶(盒)码信息E-R图,如图14所示。
图14 瓶(盒)码信息E-R图
(3)箱信息E-R图,如图15所示。
图15 箱信息E-R图
通过本软件系统的设计,实现了客户提出的要求和功能,并很好地利用C#提供的多线程并行运算功能解决了数据库的快速读写,提供了在C#中通过网口和串口与赋码设备的接口设计规范,为研华PCI卡在工控机中的工业应用提供了参考。