毕业设计仓库管理系统的信息采集接口设计和实现_毕业设计信息管理系统

其他范文 时间:2020-02-28 00:15:28 收藏本文下载本文
【www.daodoc.com - 其他范文】

毕业设计仓库管理系统的信息采集接口设计和实现由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“毕业设计信息管理系统”。

仓库管理系统的信息采集接口设计和实现

摘要

近年来,物流业快速发展,处于物流中心环节的仓储系统,也随之加快了发展步伐.随着计算机技术和自动化技术的快速进步,仓储系统已向自动化、智能化方向发展.射频识别(Radio Frequency Identification,RFID)技术作为新一代自动识别技术,其具有的显著优势,在仓储管理中的应用得到了广泛的关注。

无线射频识别技术(RFID)在数据采集、数据传递方面,具有独到的优势。在仓库中采用RFID作为信息传递的载体, 可以有效避免人工输入可能出现的失误,大大提高入库、出库、验货、盘点、补货等工作的效率。推广RFID技术,让该技术尽快发挥其对物流行业强大推动作用,是国际物流企业技术应用的大趋势。

本文在对射频识别系统的结构和工作原理的深入学习基础上,将RFID技术应用于仓库信息采集接口中,实现了一个基于RFID自动出入库的仓库管理原型系统。其中研究的重点是RFID标签与条码信息的关联以及基于RFID出入库的实现。

本文通过使用深圳当代读写器,RFID标签等硬件设备,以及Eclipse,SQL Server等软件系统,实现了软硬件的良好结合。在数据采集方面实现了条码信息与RFID标签的关联,而在出入库过程中屏蔽掉了条码录入的不确定性以及低精确性,实现了基于RFID的自动出入库管理。

在仓库管理系统的信息采集中应用RFID技术,实现货品的动态出入库管理,极大地提高了对出入库产品信息记录采集准确性,同时使货品跟踪,实时查询更为高效。

关键词:RFID,关联,自动出入库

I

The design and implement of the interface of information-collection in warehouse management

Abstract Recently,with the rapid development of logistic,the storage system,in the central tache of the logistic developed quickly.With the fast development of computer technology and automatic technology,the storage system became automated and intelligentized.Radio Frequency Identification(RFID)technology as a newly Auto-ID technology,it has distinct advantages,and its application in storage system draws widely attention.RFID has special predominance in data-collection and data transfer.Apply RFID as the carrier of information transfer,we could avoid the mistake by manual work in input efficiently,and enhance the efficiency of en-warehouse,ex-warehouse,check and complementarity.To promote RFID technology,and to make full use of its impetus to logistic,is a trend in the application of international logistic corporation.After studying the configuration and working principle of RFID System,the paper apply RFID technology to the interface of information-collection in warehouse,and make a warehouse management prototype system based on RFID in en-warehouse and ex-warehouse come true.The paper play emphasis on the aociation of RFID transponder and barcode and the implement of en-warehouse and ex-warehouse based on RFID.In this thesis,using Shenzhen Drf Reader,RFID transponder and software Eclipse,SQL Server,we make the combination of hardware and software come true.In data-collection,we combine RFID transponder and barcode,and in the proce of en-warehouse and ex-warehouse,we avoid the uncertainty and low accuracy caused by barcode input,and implement automated en-warehouse and ex-warehouse based on RFID.Apply RFID technology in the information-collection of warehouse management system,we could make the goods en-warehouse and ex-warehouse automated,and enhance the accuracy of the record of the goods.Meanwhile,we could make the track of the goods and real-time query more efficiently.Keywords: RFID,combination,automated en-warehouse and ex-warehouse

II

目录

摘要....................................................I ABSTRACT...............................................II 1 绪论..................................................1 1.1 课题背景...........................................................................................1 1.2 目的及意义.......................................................................................1 1.3 射频识别技术的国内外应用现状...................................................2 1.4 全文内容和章节安排.......................................................................5 2 射频识别技术简介......................................7 2.1 典型的RFID系统............................................................................7 2.2 射频识别系统基本模型...................................................................7 2.3 无线射频识别技术的分类...............................................................8 2.4 射频识别系统的工作原理.............................................................10 2.5 仓库管理系统中应用射频技术的好处.........................................11 3 开发环境及语言简介...................................12 3.1 软硬件环境.....................................................................................12 3.2 ECLIPSE开发环境............................................................................12 3.2.1 Eclipse平台简介.......................................................................12 3.2.2 Eclipse环境特点.......................................................................13 3.3 JAVA语言及相关技术.....................................................................13

III 3.3.1 Java编程语言...........................................................................13 3.3.2 JDBC技术.................................................................................14 4 仓库管理原型系统的设计................................15 4.1 需求分析.........................................................................................15 4.2 设计目标.........................................................................................16 4.3 设计流程.........................................................................................16 4.3.1 系统总体框架..........................................................................16 5 仓库管理原型系统的实现................................23 5.1 信息采集接口的实现.....................................................................23 5.2 出入库管理的实现.........................................................................25 5.2.1 连接后台数据库的实现..........................................................25 5.2.2 入库管理的实现......................................................................25 5.2.3 出库管理...................................................................................31 6 总结与展望...........................................37 6.1 全文总结.........................................................................................37 6.2 不足及展望.....................................................................................37 致谢...................................错误!未定义书签。参考文献...............................................39

IV 绪论

1.1 课题背景

目前,仓库管理主要是基于相应规范的手工作业及电脑半自动化管理,其弊病显而易见,它需要投入大量人力进行规范物品的放置、定期整理盘点以及出入库登记等工作,这使得仓库管理工作十分繁琐,浪费时间。因此,把射频识别技术应用于仓库管理比较理想,这也是RFID技术一个新的应用领域。

建立一个基于RFID的数字化仓库,支持成品及原辅料仓库数字化管理,包括出入库管理、电子货位管理、温湿度监测等功能。为充分利用仓库的存储空间并提高货物出入库的效率和准确性,以托盘为电子货位管理的基本单位,通过在每个托盘上应用RFID电子标签实现可视化的电子货位管理,并通过货位优化分配规则,实现货物先进先出管理。能对库区温湿度信息进行实时监测,并能通过电子显示牌进行显示。

RFID技术是构建数字化仓库最为关键的技术。通过建立数字化仓库管理系统,可以实现仓储管理信息自动化,促进生产过程的规范化、标准化、数据化,提高生产效率,降低库存和资金占用,增强市场竞争力。

1.2 目的及意义

信息采集作为仓库管理的重要组成部分,关键所在。信息采集的准确性不仅影响到仓库的出入库管理,而且对整个仓库系统的库存管理的自动化和智能化程度。目前,国内物流中心大多采用的是条码扫描技术作为仓库管理中货物流和信息流同步的主要载体。条码技术是一个无论在技术上还是标准上都趋于成熟的非接触式识别技术。但是随着企业对信息化要求的不断提高,条码技术在应用中也存在许多无法克服的缺点。

电子标签作为一种新兴的自动识别技术,它的出现使仓库管理焕然一新。电 1 子标签是用来标识各种物品的一种新的识别技术,这种标签根据无线射频识别原理(RFID,Radio Frequency Identification System)而生产,它与读写器通过无线射频信号交换信息[2][3]。电子标签最大的优点就在于:(1)可以实现非接触、无视觉识别,因此完成产品识别工作时无须人工干预,便于实现自动化;(2)阅读距离远,识别速度快,可实现远距离监测货物快速出入仓库;(3)可进行多目标同时读取,便于监测大量货物同时出入仓库[4][5]。上述优点使电子标签完全实现自动化的信息采集,最大限度地降低了人工干预,为自动化仓库管理的实现提供了坚实的技术保障。电子标签识别技术已经成为目前最具前景的物流信息采集技术,受到很多国际知名厂商和研究机构的青睐。正是基于上述原因,本次课题采用基于电子标签的射频识别技术替代应用已经较为成熟的二维条码识别技术,应用到仓库信息采集系统中。

目前仓储管理系统中应用RFID技术主要有两种模式,一种模式是用电子标签全部替代条形码;另一种模式是将电子标签和条形码结合使用[6]。本课题将电子标签与条形码关联,并没有完全摒弃传统条形码技术,而是把条码信息作为产品的标识信息写入到电子标签中。通过对RFID标签号和写入信息的读取实现基于RFID的自动出入库,这是自动化立体仓库重要的一步。实现了基于RFID的信息采集后,对仓库的生产运作过程都通过标签化的方式进行实时的追踪,便可以实时地监控库存货品状态以及出入库管理,实现对仓库的可视化管理。

在强大的市场导向下,RFID技术在世界范围内必将引起一场重大的变革,它将成为一个新的经济增长点。在现今激烈的市场竞争中,快速、准确、实时的信息获取及处理将成为企业获得竞争优势的关键。RFID技术的应用对于以信息化为基础的现代物流管理来说尤为重要。相信在不久的将来,RFID技术将逐步深入到现代物流管理的方方面面[7][8]。

1.3 射频识别技术的国内外应用现状

射频识别技术在国外发展得很快,RFID产品种类也较多。如德州仪器公司(MI)、Motorola、Phillips、EM、iPico、Alien等世界著名厂家都生产RFID产品,并且它们得产品各有特点,自成系列。下面举几个RFID应用的例子:高速公路自动收费系统是RFID技术最成功得应用之一。目前中国的高速公路发展非常快,地区经济发展的先决条件就是有便利的交通条件。而高速公路收费却存在一些问题,一是交通堵塞,二是少数不法收费员贪污路费,使国家损失了相当的财政收入。RFID技术应用在高速公路自动收费上,能够充分体现它费接触识别的优势,让车辆高速通过收费站的同时自动完成收费。

一般来说,对于公路收费系统,根据车辆的大小和形状不同,需要大约4m的读写距离和很快的读写速度,也就是要求系统的频率应该在900MHz以上,射频标签一般在车的挡风玻璃后面。现在最现实的方案是将多车道的收费口分为两个部分:自动收费口和人工收费口。将天线架设在道路的上方,在局收费口约50~100m处,当车辆经过天线时,车上的射频标签被头顶上的天线收到,以判别车辆是否带有有效的射频标签。如果没带标签,读写器指示灯指示车辆进入不同车道,人工收费口仍维持现有的操作方式。进入自动收费口的车辆,养路费款被自动从用户账户上扣除,且用指示等及蜂鸣器告诉司机收费是否完成,不用停车就可通过。挡车器将拦下恶意闯入的车辆。香港“驾易通”采用的就是射频识别技术。装有射频标签的汽车能被自动识别,无须停车缴费,大大提高了行车速度和效率[9]。

在生产流水线上用RFID技术,可以实现自动控制、监视、提高生产率,改进生产方式,节约成本。

德国宝马汽车公司在装配流水线上应用射频标签,以便大量地生产用户定制地汽车。宝马汽车的生产是基于用户提出的要求式样而生产的。用户可以从上万种内部和外部选项种选定自己所需要的颜色、引擎型号还有轮胎式样。这样一来,汽车装配流水线上就得装配上百种式样的宝马汽车,如果没有一个高度组织的、复杂的控制系统,就很难完成这样复杂的任务。宝马公司就在其装配流水线上配有RFID系统,他们值用可重复使用的射频标签,该射频标签上带有详细的汽车所需的所有要求,在每个工作电处都有读写器,这样可以保证汽车在各个流水线位置处能毫不出错的完成装配任务[10]。

几家著名的集成电路制造商在竞争激烈的半导体工业中采用加入了射频识别技术的自动识别工序控制系统。半导体生产对于超净的特殊需要,使得在此应 3 用RFID非常理想;而其他自动识别系统,如条形码在如此苛刻的化学条件和超净要求下就不适用。

晶片是集成电路生产的关键。一片8英寸(一英寸_2.54cm)的晶片可以制造出100~1000个。假如每片芯片零售价为100美元,那么一个晶片商所包含的芯片价便至少就是10000美元。一个晶片容器可装25个晶片,4个晶片容器可同时进行处理。那么一次误操作造成的损失就达1000000美元。显然,跟踪每个晶片容器并消除误操作是非常必要的。

在一个超净车间里,通常能有800个位点。晶片容器要从一个位点移动到下一位点。有时,晶片会因进入了错误的堆而造成损失。射频识别系统将核查晶片堆、设备、工序和操作人员。如果其中任何一项的身份不对,设备将不能开始工作,同时向操作人员给出提示[10]。

利用电子物品监视系统(Electronic Article Surveillance,EAS)的目的是防止商品被盗窃。系统是基本配置的RFID,内存容量仅为1比特,即开或管。它是基于从1930年就已知道的磁性物质的特性,有四种主要技术:微波、磁场、声磁、射频。系统包括贴在物体上的射频标签和商品出口处的扫描器。射频标签在安装时被激活,它在激活状态时接近扫描器将会被探测到,这样就会报警。EAS系统已被广泛使用,据估计每年消耗约60亿套。

在货物的跟踪、管理及监控方面,澳大利亚和英国的西思罗机场将射频识别技术应用于旅客行李管理中,大大提高了分拣效率,降低了出错率。在几年前,欧共体就要求从1997年开始生产的新车型必须具有基于射频识别技术的防盗系统。而我国铁路行包自动追踪管理系统还只是在计划推广之中,真正应用还要假以时日。

在射频卡应用方面,1996年1月韩国就在汉城的600辆公共汽车上安装射频识别系统用于电子月票,实现了非现金结算,方便了市民出行。而德国汉莎航空公司则开始试用射频卡作为飞机票,改变了传统的机票购销方式,简化了机场人关的手续。在我国,射频卡主要应用于公共交通、地铁、校园、社会保障等方面。上海、深圳、北京等地陆续采用了射频公交卡。在未来的一、两年,我国射频卡应用最大的项目将是第二代公民身份证。我国政府在1993年制定的金卡工程实施计划及全国范围的金融卡网络系统的10年规划,使一个旨在加速推动我国国民经济信息化进程的重大国家级工程,由此各种自动识别技术的发展及应用十分迅猛。现在,射频识别技术作为一种新兴的自动识别技术,也将在中国很快地普及,可以说,我国射频识别产品的市场是十分巨大的。国内已经有几家公司在引进国外的新进技术,开发自己的RFID系统。目前,在我国射频识别技术主要应用于公共交通、地铁、校园、社会保障等方面。不久的将来,我国射频识别技术应用将在生产线自动化、仓储管理、电子物品监视系统、货运集装箱的识别以及畜牧管理等方面有所突破。

MIT1999年在RFID和Internet的基础上提出电子产品编码(Electronic Product Code,EPC)研讨会上首次公开展示其研发了近五年的EPC网络——物联网。物联网是在计算机互联网的基础上,利用RFID、无线通信等技术,构造一个覆盖世界上万事万物的实物物联网“Internet of Things”,旨在提高现代物流、供应链管理水平、降低成本。2003年11月1日,国际物品编码协会(EAN/UCC)成立了EPCglobal,正式接管了EPC在全球的推广应用工作。中国物品编码中心在取得了国际物品编码协会的唯一授权后,于2004年4月22日在北京成立了EPCglobal China。而作为物联网象征的RFID技术有“得RFID者得天下”之势,因此在EPC系统的推动下RFID必将迎来更大的发展空间[11]。

1.4 全文内容和章节安排

本文主要内容由四个部分组成:第一部分概述课题背景、课题研究的目的及意义、射频识别技术的应用现状;第二部分详细介绍了射频识别系统的组成,结构,分类,工作原理以及应用于仓库领域的好处;第三部分简要介绍了系统的开发环境以及相关语言,技术;第四部分详细介绍了系统的设计和实现过程,用实际的软硬件实现了一个完整的仓库管理原型系统。

全文分为六个章节,具体安排为:

第一章绪论,简介课题的研究背景,目的及意义,射频识别技术的应用现状; 第二章详细描述了射频识别系统的结构,分类,工作原理,以及应用于仓库管理的好处;第三章对本系统所使用的开发环境、语言以及相关技术做了简要介绍; 第四章详细介绍了仓库管理原型系统的设计,包括需求分析,设计目标,设计流程;

第五章详细介绍了仓库管理原型系统的实现过程,包括信息采集,入库,出库的实现;

第六章对全文进行总结回顾,提出本文中的不足之处。其中第二、四、五章为全文的重点部分。射频识别技术简介

2.1 典型的RFID系统

射频识别(即Radio Frequency Identification,简称RFID)技术是从90年代兴起的一项自动识别技术。它利用无线射频方式进行非接触双向通信,以达到识别目的并交换数据[12]。

与磁卡、IC卡等接触式识别技术不同, RFID系统的电子标签和读写器之间无须物理接触就可完成识别,因此它可实现多目标识别和运动目标识别,可在更广泛的场合中应用。典型的RFID系统由电子标签(Tag),读写器(Read /Write Device)以及数据交换、管理系统等组成。电子标签也称射频卡,它具有智能读写及加密通信的能力。读写器由无线收发模块、天线、控制模块及接口电路等组成。无源RFID系统,即电子标签内不含电池,电子标签工作的能量是由读写器发出的射频脉冲提供。电子标签接收射频脉冲,整流并给电容充电。电容电压经过稳压后作为工作电压。数据解调部分从接收到的射频脉冲中解调出数据并送到控制逻辑。控制逻辑接受指令,完成存储、发送数据或其它操作[13]。EEPROM用来存储电子标签的识别号及其它用户数据。有源RFID系统中的电子标签由电池供电,可以在较高频段工作,识别距离较长,与读写器之间的通信速率也较高。RFID系统还可以根据工作频率的不同分为低频、中频及高频系统。低频系统一般工作在100KHz~500KHz,中频系统工作在10MHz~15MHz左右,它们主要适用于识别距离短和成本低的应用中;而高频系统则可达850MHz~950MHz及2.4GHz~5GHz的微波段,适用于识别距离长和读写数据率高的场合。RFID系统最大的特点是非接触识别,因此可以同时识别多个电子标签及高速运动的电子标签并且它的电触点无须外露,所以它可以抵抗恶劣环境[14]。

2.2 射频识别系统基本模型

射频识别系统的基本模型如图2.1所示。其中,电子标签又称为射频标签、应答器、数据载体;阅读器又称为读出装置、扫描器、读头、通信器、读写器(取决于电子标签是否可以无线改写数据)。本文所采用的电子标签是可读写的,所以阅读装置可以称为读写器。电子标签与阅读器之间通过耦合元件实现射频信号的空间(无接触)耦合;在耦合通道内,根据时序关系,实现能量的传递和数据的交换[15]。

图2.1 射频识别系统的基本模型图

2.3 无线射频识别技术的分类

无线射频识别技术的分类有几种[15]:

1、根据标签的供电方式分为有源和无源系统。

射频标签可分为有源的和无源的两种。有源射频标签使用标签内电池的能量,识别距离较长,可达几十米甚至上百米,但是它的寿命有限并且价格较高;标签由于带有电池,因此,有源标签的体积比较达,无法制作成薄卡(比如信用卡标签)。无源射频标签不含有电池,利用耦合的读写器发射的电磁场能量作为自己的能量,它的重量轻,体积小,寿命可以非常长,很便宜,可制成各种各样的薄卡或挂扣卡;但它的发射距离受限制,一般是几十厘米到几十米,且需要有较大的读写器发射功率。

2、按工作方式分类可分为主动式系统和被动式系统。

一般来讲,无源系统为被动式,有源系统为主动式。主动式的射频系统用自身的射频能量主动地发送数据给读写器(读头),调制方式可为调幅、调频或调 8 相。被动式的射频系统,使用调制散射方式发射数据,它必须利用读写器的载波来调制自己的信号,在门禁或交通的应用中适宜,因为读写器可以确保只激活一定范围内的射频系统,在有障碍物的情况下,采用调制散射方式,读写器的能量必须来去穿过障碍物两次。而主动方式的射频标签发射的信号仅穿过障碍物一次,因此主动方式工作的射频标签主要用于有障碍物的应用中,距离更远。

3、根据标签的可读写性分为只读、读写和一次写入多次读出卡。按读写方式将射频卡分为三种:可读写(RW)、一次写入多次读出(WORM)和只读(RO)RW卡成本比WORM卡和RO卡高,WORM卡是用户可以一次写入的卡,写入后数据不能改变。RO卡存有唯一的号码,不能更改,这样具有较高的安全性。

只读标签内部只有只读存储器(Read Only Memory,ROM)和随即存储器(Random Acce Merror,RAM)。ROM用于存储发射器操作系统程序和安全性要求较高的数据,它与内部的处理器或逻辑处理单元完成内部的操作控制功能,如响应延迟时间控制、电源开关控制等。另外,只读标签的ROM中还存储有标签的标识信息,这些信息可以在标签制造过程中由制造商写入ROM中,也可以在标签开始使用时由使用者根据特定的应用目的写入特殊的编码信息。这种信息可以只简单地代表二进制中的“0”或“1”,也可以像二维条码那样,包含复杂的相当丰富的信息。但这种信息只能是一次写入,多次读出。只读标签中的RAM用于存储标签反应和数据传输过程中临时产生的数据。另外,只读标签中除了ROM和RAM外,一般还有缓冲存储器,用于暂时存储调制后等待天线发送的信息。

4、根据工作频率可以分为低频、高频及超高频和微波系统

读头发送无线信号时所使用的频率被称为RFID系统的工作频率,基本上划分为五个主要范围:低频(30~300kHz)、高频(3~30MHz)和超高频(300MHz~3GHz)以及微波(2.45GHz以上)。低频系统一般工作在100~500kHz,常见的工作频率有125kHz、134.2kHz;高频系统工作在10~15MHz左右,常见的高频工作频率为13.56MHz;超高频工作频率为850~960MHz,常见的工作频率为915MHz;微波工作在2.4~5GHz的微波频段。低频系统用于短距离、低成 9 本的应用中,如多数的门禁控制、动物监管、货物跟踪;高频系统用于门禁控制和需传送大量数据的应用;超高频系统应用于需要较长的读写距离和较高的读写速度的场合,如火车监控、告诉公路收费等系统。

5、根据工作距离分为远程、近程和超近程系统。

按工作距离分为远程、近程和超近程系统。识别距离在100cm以上的系统称远程系统;识别距离lOcm至100cm的系统称近程系统;识别距离在0.2cm至lOcm的系统统称超近程系统。

6、根据电子标签种类不同。

根据电子标签种类的不同,标签与读头组成了四种系统,分别为:只读被动标签与读头系统,只读主动标签与读头系统,可读写被动标签与读头系统,可读写主动标签与读头系统。

2.4 射频识别系统的工作原理

用图2.2来说明RFID系统的工作过程,这个例子是无源系统,即电子标签为被动电子标签,标签内不含电源,电子标签的工作能量由读写器发出的射频脉冲提供[15]。

2.2 读写器和电子标签的内部结构图

1.读写器天线发射能量形成电磁场,区域大小取决于发射功率、工作频率和天线尺寸。2.电子标签进入这个区域时,接收到读写器的射频脉冲,经过整流后给电容充电。电容电压经过稳压后作为工作电压。

3.数据解调部分从接收到的射频脉冲中解调出命令和数据并送到控制逻辑部分,逻辑控制部分接收指令并完成存储、发送数据或其他操作。

4.如需要发送数据,则将数据调制后从收发模块发送出去。

5.读写器接受到返回的数据后,解码并进行错误校验来决定数据的有效性,然后通过RS232,RS422,RS485或无线接口将数据传送到计算机的数据采集 Middleware中。读写器发送的射频信号除提供能量外,通常还提供时钟信号,使数据同步,从而简化了系统的设计。

有源RFID系统的工作原理同上述的过程基本相似,只是其工作能量是由电池提供的。

2.5 仓库管理系统中应用射频技术的好处

将RFID应用于智能仓库货物管理。RFID完全有效地解决了仓库里与货物流动有关的信息管理。它不但增加了一天内处理货物的件数,还能及时掌控这些货物的一切信息;射频标签贴在货物所通过的仓库大门边上,读写器和天线都放在叉车上,每个货物都贴有条码,所有条码信息都被存储在仓库的中心计算机里,该货物的有关信息都能在计算机里查到。当货物被装走运往别地时,由另一读写器识别并告知计算中心它被放在哪个拖车上。这样管理中心可以实时地了解到已经生产了多少产品和发送了多少产品,并可自动识别货物,确定货物的位置。与传统的仓库管理系统相比,射频技术的引入使得仓库管理的面貌焕然一新。仓库管理的效率,准确性都能得到显著提高。另一方面,使得仓库的自动化程度提升,减少了人工介入的环节。总之,射频识别技术应用于仓库益处多多,目前正得到业内的普遍关注与重视[15][16][17]。开发环境及语言简介

3.1 软硬件环境

为了进行本课题的实验研究,需要配置以下环境: 硬件环境:微型计算机,内存大小:512M。

软件环境:操作系统:windowsXP,开发平台:Eclipse,SQL Server 语言:Java语言及JDBC

3.2 Eclipse开发环境

3.2.1 Eclipse平台简介

Eclipse最初是作为IBM内部的一个辅助项目而诞生的,旨在为IBM提供一个在常用软件基础上集成其桌面工具的手段。自从加01年秋以开放资源的形式发布以来,Eclipse取得了出乎意料的成功。目前,它已经拥有了自己忠实的拥夏者,固定的社区,以及不断扩充的强大应用功能[18]。

Eclipse采用了不同的视角,即一种“以平台为中心”而非“开发工具为主”的思考方式。Eclipse平台的骨干主要就是一个“通用”的IDE(Integrated Development Environment),即集成开发环境。它既面向所有工具,又不针对任何一个特定工具,一切开发工具都可以同时被使用。

作为一个集成开发环境,Eclipse是一个工具集成的平台,可以想象成一个各种工具友好共存的大家庭。它使得用户的建模、设计、编码以及测试工具有机地结合起来,以一种更高效、更便捷的方式完成开发任务。Eclipse为开发团队成员提供了一种更方便的手段,去创建、控制,以及管理一套软件产品。团队成员可以访问彼此的工作产品,它们是由与Eclipse通过存储中性接口集成在一起的源码管理系统SCM(Source Code Management)来进行管理的。以此避免了数据的导入、导出及其导致的错误通信。基于Eclipse的所有工具因此能够以持久、一致的方式进行工作[18]。3.2.2 Eclipse环境特点

Eclipse提供了一种体系结构和一套Java框架集合来实现以上目标,从而使得编写集成工具更加容易。用户可以通过Eclipse集成其执行任务所正在使用的现有工具,并随着其经验的积累,使用Eclipse建造额外的工具。该框架结构还为所有工具提供了一个一致的方式,去实现用户界面、软件包,部署新功能,提供在线帮助等.用户可根据JDT(Java Development Tool)的强大功能和扩展性,去开发新的Java工具,扩展Java模型和访问Java模型的API(Application Programming Interface)集,这些特点作为JDT的一部分,为Eclipse增添了更强的竞争优势[18]。

Eclipse支持多种模型。Eclipse与开发模型是分离开来的。无论是传统的爆布式开发模型,还是迭代式开发方法,用户都可以享受到Java工具、调试环境及平台提供的紧密集成。

3.3 Java语言及相关技术

3.3.1 Java编程语言

目前面向对象的编程语言应用得相当广泛,己经取代传统的过程性语言成为程序开发的主流。Java是一种完全的面向对象语言,它衍生于C++语言,但又剔除了C++的复杂、易错的一些语言元素,功能强大又极易于使用。Java编程语言产生于1990年,那时SUN公司利用C++语言为消费类家电设备编写人机控制代码,受到了代码不能移植的困扰。SUN公司因此而提出了解释型的语言Java,该名称来源于印尼的一个岛屿“爪哇”,此岛盛产咖啡。Java语言开发的窗口程序左上角的小图标是一杯热气腾腾的咖啡,这就是Java程序的标志。

Java是目前使用最广泛的网络编程语言之一,它具有简单、面向对象、稳定、与平台无关、解释型、多线程、动态等特点。它的程序运行需要一个解释器,也就是所谓的“虚拟机”。虚拟机以某种高速算法解释执行Java的面向对象代码。Java从Java1.0版本到现在已发展成Java2.0版本,版本的升级意味着程序的修正和类库的增长。从Java2.0开始,Java分为3个版本J2ME(微型版本)、13 J2SE(标准版本)和J2EE(企业级版本),分别用于支持消费类电子设备、标准个人电脑以及企业级应用的开发,版本之间的区别不仅在于所支持的类库的大小不同,也在于各版本都对应着不同的Java虚拟机。也正是由于虚拟机的使用,使得Java与其他的面向对象语言相比较,具备了一个突出的优点:Java成为跨平台的语言,不仅可在Windows平台上运行,也可以在UNIX平台及一些家电设备、通信设备上运行[19]。3.3.2 JDBC技术

JDBC(Java DataBase Connectivity)是Sun公司开发的、用于Java数据库连接的应用程序编程接口API,需要使用支持ANSI SQL(Structured Query Language,即结构化查询语言)作为查询语言的数据库。它具备以下三个特点:JDBC是SQL级别的API;JDBC借鉴了现存数据库API的经验;JDBC简单易行[20]。

JDBC是SQL级别的API,意味着在JDBC接口中,允许SQL语句作为参数嵌入到方法中。但JDBC可以在数据库和Java应用程序之间进行平稳的转换。为了在独立于特定数据库的模式下完成这项工作,JDBC需要那些数据库厂商提供其接口的运行时实现。这些实现能够以所有可识别的方式把SQL调用发送到数据库中。

JDBC在设计上与开放数据库连接ODBC(Open DataBase Connectivity)很相似。JDBC和数据库建立连接的一种方式是首先建立一个JDBC-ODBC桥接器。由于ODBC驱动程序被广泛使用,建立这种桥接器后,使得JDBC有能力访问几乎所有类型的数据库。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。仓库管理原型系统的设计

4.1 需求分析

本文设计一个基于RFID出入库的仓库管理原型系统,可以有效提高仓库管理的效率和自动化程度,和应用条码技术相比,应用RFID电子标签主要有以下优势:

1.出入库速度快

应用条形码时,以仓库为例,根据应用实际,在托盘上应用电子标签,读写一个托盘上货物的时间大概在2~3 s之间(包括完成写信息地所有时间),采集数据时操作员不需要下车。而如果应用条形码,一般需要采集三次数据(产品编号、生产批次、托盘编号),加上操作员上下车的时间,大概在10~15 s之间.综合考虑叉车从生产部到仓库的运行时间(大概在5~10 s之间),仓储系统在托盘上应用电子标签比应用条形码效率要提高2~3倍。

2.货物出库准确

托盘使用电子标签后,在货物出库时,电子标签存储的托盘货物和货位信息要和系统出库的信息进行比较,只有两者数据一致后才允许出库。通过现场使用,在应用电子标签后,系统地出库准确性能达到100%。

3.操作方便

系统应用条形码时,托盘货物信息的采集需要叉车工下车操作,货物出库时,叉车工既要操作条码扫描设备,又要操作叉车触摸屏,整个过程操作不太方便。应用电子标签后,除拣选出库外,入库和整盘出库都不需要叉车工下车操作,叉车工只需要在叉车上操作触摸屏。对于叉车工来说,应用电子标签后,操作十分方便,省时省力。

因此,在仓库管理中应用RFID系统,可以有效的提高货物的出入库速度和货物出库的准确性,使出入库操作更加方便快捷。同时,从长远考虑,可以节省仓库管理的运行成本。4.2 设计目标

本课题基于软硬件结合的思想,旨在建构一个仓库管理原型系统,能实现简单的出入库管理以及数据采集的功能。预达到的目标如下:

1.RFID标签的读写

基于电子标签技术的射频识别系统有电子标签、电子标签读写器以及数据交换、管理系统等组成。电子标签技术是课题中的关键技术,要设计完成并实现对电子标签的读写功能。其中写入的信息主要是货品的条码及数量信息,以实现条码与RFID的关联。这其中需要对读写器等硬件进行学习,同时能利用软件,利用面向对象语言实现与硬件的连接交互。RFID标签读写是实现基于RFID自动出入库的关键所在,因此这一部分的设计是整个仓库管理最重要的部分之一。

2.基于RFID的出入库的实现

这一部分要实现货品的出入库管理,它是基于信息采集的基础上实现的,因为本系统的出入库管理不是传统概念上的出入库管理,而是基于RFID的出入库原型系统的实现。因此在信息采集设计完成的基础上,出入库的管理是相对容易实现的。

4.3 设计流程

4.3.1 系统总体框架

本系统主要由三个部分构成,信息采集系统,入库管理,出库管理(如图2.1所示)。其中出入库是作为信息采集的验证部分来设计的。信息采集系统主要是PC机与RFID读写器之间的信息交互,出入库部分则为前台操作和后台数据库之间的关联。下面对具体方案进行描述。

图4.1 系统总体框架示意图

1.构建基于RFID技术的信息采集系统(1)硬件部分

本采集系统采用的是深圳当代DRF系列读写器,SDK以动态链接库文件形式提供给用户使用。

深圳当代通信技术有限公司开发的射频识别系统是由该公司完全独立自主开发,采用当今最先进的技术设计方案设计,通讯协议兼容ISO18000-6B、EPC双协议,适用于多种电子标签的新款读写器产品。针对无源射频标签,成功解决了远距离、高速移动目标标识物的识别难题。读写器设计有Wiegand口、RS485口和RS232输出接口,丰富的接口给用户在外接设备中以较大的选择。产品在确保高技术指标性能的基础上,同时也极大满足低发射功率的绿色环保标准。其各项技术指标在同类产品中均处于同行业领先地位。

DRF系列读写器,采用内部高度集成化、模块化和外部一体化的设计,性能优越、产品外形美观大方,具有读写距离远、速度快、数据准确和抗干扰能力强等特点,使产品的功能、性能、应用、安全和稳定性较行业内同类产品都有很好的体现。用户可根据SDK开发指南进行二次开发。(2)软件部分

使用已封装好的一个类DrfReaderdll,此类是按照读写器的通讯协议编写的。其中有开关串口函数,读标签函数,写标签函数等。根据实际操作情况调用所需函数完成对电子标签的读写工作,实现信息采集的功能。下面对此动态链接库接口做一简要介绍: public cla DrfReaderDll {

public static native int openPort(String strComm);

public static native int closePort(int portHnd);

public static native int resetDrf(int portHnd);

public static native String getUid(int portHnd);

public static native String read(int portHnd, int addr);

public static native int writeOne(int portHnd, int addr, String values);

public static native int writeFour(int portHnd, int addr, String values);

public static native String getGen2Epc(int portHnd);

public static native int writeGen2(int portHnd, int addr, String values);

public static native int initGen2(int portHnd, int bitCount);

public static native String getTag(int portHnd);

public static native String readTag(int portHnd);

public static native int writeTag(int portHnd, String values);

static

{

} } 函数System.loadLibrary告诉系统需要加载DrfReaderDll.Dll文件。由于此类中的函数均为静态函数,故可以直接调用。下面对这些函数作简要介绍。

openPort(String strComm)函数:打开串口,其中String strComm为串口号,即“COM1”或“COM2”。成功返回串口句柄。System.loadLibrary(“DrfReaderDll”);18 closePort(int portHnd)函数:关闭串口,portHnd为串口句柄。成功返回0。resetDrf(int portHnd)函数:读写器复位。portHnd为串口句柄,成功返回0。getUid(int portHnd)函数:获取多个标签的UID号,portHnd为串口句柄,返回格式为”03”+”Uid1”+”Uid2”+”Uid3”;“03”为标签数量。

read(int portHnd, int addr)函数:从指定地址读取多个标签的编码信息,portHnd为串口句柄,addr为地址,地址范围为0~255,前面八位保存标点的ID号(即标签个数)。

writeOne(int portHnd, int addr, String values)函数:向标签中写入编码信息,一次写一个字节,地址范围“18~255”,前18位为厂家写入用于标识标签号的,故调用此函数时写地址必须至少从18开始。Values为写入的内容。

writeFour(int portHnd, int addr, String values)函数:向标签中写入编码信息,一次写四个字节,起始地址必须是4的倍数。在实际测试中此函数调用是有错的,固不可用。

getGen2Epc(int portHnd)函数:获取Gen2标签的EPC号,返回标签数量”03”+”epc1”+epc2”+”epc3”。

writeGen2(int portHnd, int addr, String values)函数:向标签中写入编码信息,一次写2个字节,地址范围 “0-5”;高位写入高地址,地位写入低地址。

initGen2(int portHnd, int bitCount)函数:初始化Gen2标签,初始化位数默认值为96位。

getTag(int portHnd)函数:读托盘标签UID号。readTag(int portHnd)函数:读托盘标签编码信息。

writeTag(int portHnd, String values)函数:往托盘标签写编码。

因此,在对上述函数有了一定了解后,信息采集接口部分的设计只需要调用上述DrfReaderDll类中的相应函数即可实现。2.货物自动出入库

这一部分包括入库单的管理与查询,条码的捕获,RFID标签的读写,出库单的管理与查询,现有库存的管理与查询,其中还涉及到JDBC处理后台数据库的操作。后台数据库中存有入库单信息,现有库存信息,出库单信息,条码及对应货品名称的信息。货物在入库时查询入库单,若经检测为未处理的入库单,则扫货入库,将扫入的货物信息写入电子标签即实现电子标签的写入操作,同时更新后台数据库的现有库存信息;出库时根据出库单查看现有库存,并有人工输入需要出库的托盘号及数量,同时改写电子标签的信息以及数据库中现有库存信息。

因此货物的自动出入库部分涉及到软件部分。在入库设计方面,设计步骤需按照下述进行:入库单的查询操作,条码扫货操作,将条码及相关的数量信息写入RFID电子标签,读RFID入库。

出库操作则与入库操作相反,同时出库操作不像入库那样需涉及RFID标签的读写,而只是在出库时对相应的托盘标签予以改写即可。有关出库设计方面,其步骤为:出库单的查询,根据出库单有关信息查看现有库存,根据现有库存来决定具体出库的货品。

出入库部分均涉及到了数据库的操作,下面对具体的数据库设计做一简要介绍:

本系统使用的是武烟项目所使用的数据库,本系统新建了四个表作为实现本课题任务的专用表:条码-物品名称对应表EAN_NAME(如表5.1 所示),现有库存表CURRENT(如表5.2 所示),入库单表ENT_LIST(如表5.3 所示),出库表OUT_LIST(如表5.4 所示)。本数据库的表全为方便调试而设计。

表5.1 条码-物品名称对应表

在此表中,EAN_13为条码号,NAME为条码号所对应的货品名称。凡是涉及到入库,出库,查看现有库存等跟条码有关的都需查询此表,以确定条码所对应的货品名称。

表5.2 现有库存表

在此表中,BARCODE为库存货品对应的条码号,AMOUNT为托盘中所含货品的数量,RFID为货品所在托盘的标签号,DATETIME为货品的入库时间。现有库存表是用来查询现有库存的,在出库时,选择完出库单后,根据出库单上的条码信息查询现有库存是否有相关货品。此表中的RFID项对应RFID标签号。

表5.3 入库单表

入库单表是用来存放入库单信息的。ENT_ID为入库单据号,BARCODE为入库单上货品对应的条码号,AMOUNT为入库单据上要求的入库货品数量,WORK_STATUS为入库单状态标志,标志为“1”时表示此入库单已处理,标志为“0”时表示此入库单未处理。

表5.4 出库单表

出库单表是用来储存出库单信息的,其中OUT_ID为出库单据号,AMOUNT为所需出库货品的数量,BARCODE为出库货品对应的条码号。

22仓库管理原型系统的实现

5.1 信息采集接口的实现

在上一部分中,已对DrfReaderDll这一类中的函数做了简要介绍,下面为信息采集接口的实现。

在信息采集接口设计中,DrfReaderDll类中的函数是不需要全部用到的。在系统的实现过程中中,只用了openPort,closePort,read,writeOne,getTag这几个函数。

在入库读标签的实现时,本系统设计一个RFID只写入一种条码。写入信息设为16位,条码占13位,数量占3位。根据数量的位数设置写入信息的格式,若数量在10以下,可将写入信息设置为”条码”+”00”+”数量”。以此类推,若数量是两位数,则写入信息设置为”条码”+”0”+”数量”。程序见下方: int length=String.valueOf(tiaomabb.rtable.getValueAt(1, 0)).length();String write;if(length==1){ write=String.valueOf(tiaomabb.rtable.getValueAt(1,0))+“00”+String.valueOf(tiaomabb.rtable.getValueAt(1,1));} else if(length==2){ write=String.valueOf(tiaomabb.rtable.getValueAt(1,0))+“0”+String.valueOf(tiaomabb.rtable.getValueAt(1,1));} else { write=String.valueOf(tiaomabb.rtable.getValueAt(1,0))+String.valueOf(tiaomabb.rtable.getValueAt(1,1));} 其中,条码号和数量都来自与表中,故调用函数tiaomabb.rtable.getValueAt(i,j);从表中取得所需信息后还需调用String.valueOf()将它们转换为字符串型,以便对写入信息进行封装。

写入信息封装完毕以后即可调用DrfReaderDll类中的函数了。com=DrfReaderDll.openPort(“COM2”);打开串口“COM2”; for(int i = 0;i

之后即可对RFID标签写入之前封装好的信息,程序实现如下: for(int i = 0;i

这样以来,便实现了RFID标签与条码的关联,这里本系统设计的的是一个标签关联一个条码,标签里面含有条码号以及数量。这样便完成了信息采集。5.2 出入库管理的实现

5.2.1 连接后台数据库的实现

在出入库的实现过程中,都涉及到一个Java连接数据库的技术,即JDBC技术,通过搭建一个JDBC-ODBC桥,即可用在Java语言中用SQL语言进行有关的查询,删除或插入操作。下面为连接部分涉及到的程序块:

Cla.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);程序

加载驱动con=DriverManager.getConnection(“jdbc:microsoft:sqlserver://localhost:1433”,CONNET_USER,CONNET_PASSWORD);创建连结,其中CONNET_USER和CONNET_PASSWORD 分别为数据库的用户名和密码

sm=con.createStatement();创建数据库表格

rs=sm.executeQuery(“sql”);sql可以为一个任意的SQL指令.这样一来,有关对后台数据库的处理都可参照上述的程序语言进行。5.2.2 入库管理的实现

(1)入库单的查询与相关信息的获取

在入库流程中,首先输入入库单号进行查询,这一部分涉及到一个数据库的查询问题。根据输入的单据号在入库单表中进行相关信息的查询。首先需查询此单据的状态,即WORK_STATUS,即确定此入库单是否处理。查询部分的程序语句如下:

rs=sm.executeQuery(“select*from DWMSDB2.dbo.ENT_LIST where ENT_ID='”+getid+“'”);

查询数据库中是否有键入的出库单据号 if(rs.next()==false)

不含有此出库单则弹出一个出错提示框 { JOptionPane uncontainpane=new JOptionPane(“对不起,数据库中不存在此入库单据号,请重新输入!”,JOptionPane.ERROR_MESSAGE);25 JDialog uncontaindialog=uncontainpane.createDialog(this,“Warning!”);uncontaindialog.setVisible(true);danju.setText(null);} else

含有此出库单,则将数据库中相应信息赋给相应变量 { rs=sm.executeQuery(“select*from DWMSDB2.dbo.ENT_LIST where ENT_ID='”+getid+“'”);while(rs.next()){ ent_id=rs.getString(“ENT_ID”);amount=rs.getString(“AMOUNT”);work_status=rs.getString(“WORK_STATUS”);barcode=rs.getString(“BARCODE”);} } getid为Java程序中的一个变量名,用来存放由用户键入的入库单据号。

入库单查询界面见图5.1 所示。

图5.1 入库单查询界面若为已处理的入库单,即所查的ENT_ID为“0”,则系统会弹出提示入库单已处理。若为未处理的入库单,则查询到的条码号还需在条码-物品名称对应表中查询条码号对应的货品名称。接着,将上述查到的信息用程序写入到入库单信息列表中。

将有关信息列入入库单信息列表只需涉及一个JTable组件的setValueAt的方法,写入的详细过程见程序部分。

这里举一个例子,当键入入库单据号为2(注:此入库单为未处理的入库单),则查询结果显示如图5.2 所示:

5.2 查询到未处理的入库单

此时,有关入库单的查询工作即完成,即可进入下一步的扫码。

(2)条码采集以及条码与RFID标签信息的关联

本系统采用由键盘键入13位数据以模拟条码扫描枪的形式,同时还需键入数量。当输入信息不完整以及条码格式不正确时,系统都会提示操作员输入有误。当确定输入无误时,系统才进行数据库的查询,这一查询主要是为了完成条码与货品名称的对应。于是,将查到的货品名称以及键入的条码号与数量列于表中。由于本系统设置了一个托盘只存放一种物品,所以当第二次键入的条码与第一次键入条码号不同时,系统也会有错误提示。同时托盘限定了承载货品的数量为三十,所以在进行条码扫货时当超过托盘限制也会有错误提示。条码扫描组盘入库界面图见图5.3。

图5.3 条码采集图

限于篇幅,这里只举一个差错提示的例子。当第一次键入一个条码号为1234567890122,而数量为10的条目,假设第二次再键入一个同种条码而数量为25的条目,则系统会有超过组盘数量的提示,如图5.4 所示。

图5.4 超过组盘数量的错误提示

当完成了条码扫描入库组盘后即可将有关信息写入到RFID标签中。写入的信息主要是条码采集列表中的条码号以及数量。写入格式及方法在5.1 信息采集接口实现中已介绍过,这里不再赘述。以下为写入部分的程序代码: for(int i = 0;i

m = DrfReaderDll.writeOne(com, 20 + i, “00”);

} for(int i = 0;i

在实际运行中,RFID读写器的写入速度比较慢,从写入到写入成功需要一定的时间,由于一个条码只关联一个RFID标签,所以写入速度不会影响到系统的效率。

(3)基于RFID入库的实现

当条码信息与RFID标签关联成功后,即可执行入库操作。关联成功如图5.5所示。此时系统会弹出对话框以列表的形式提示操作人员已关联的条码与RFID信息。这一过程涉及到RFID读写器的读出。下面来介绍一下它的具体实现: 由于在写标签时我们是从标签的第20位开始写入的,因此将标签信息读出也需从第二十位开始。

for(int i=0;i

e[i]= DrfReaderDll.read(com1, 20+8*i);

if(e[i].equals(“Fail”)){

e[i]=DrfReaderDll.read(com1, 20+8*i);} com1为打开串口返回的句柄,由于只写入了一个条码及其数量,因此我们设置一个含有三个数据的String型数组足以用来存放从读写器读到的信息。由于读标签函数每次能读到8位,因此第二次读取数据时就从隔第一次读取时位置的八位即可。If语句用来不断读标签直到读到信息为止。

读到的信息通过String类的substring方法进行适当的截取及封装,即可将读到的信息分成条码部分和数量部分列于条码RFID关联表中。另外,还需要调用DrfReaderDll的getTag函数用来获取RFID标签号以存入信息表中。具体操作如下:

String[] e=new String[3];29 int com1=DrfReaderDll.openPort(“COM2”);

打开串口 for(int i=0;i

读RFID信息 } String getTag = DrfReaderDll.getTag(com1);

读RFID号 DrfReaderDll.closePort(com1);

关闭串口 String total;rukulast last=new rukulast();total=e[0]+e[1];

将读取到的信息连接起来 Integer m=Integer.valueOf(total.substring(15,17));截取信息的数量部分部分并将

其转换为Integer型以便写入表格中

last.tianjia(total.substring(2,15),m,getTag);调用表格的添加函数,将条码,数量

以及RFID号写入表格

这样一来条码RFID关联表信息就包括条码号,数量以及RFID号,当操作人员选择了将此记录写入数据库,则系统会将列表中相关信息加入数据库的现有库存列表CURRENT中。

图5.5 条码与RFID关联表5.2.3 出库管理

出库界面全部设计在一个JFrame中,出库过程相对简单而不必像入库那样需要弹出多个对话框来实现入库过程的时序关系。出库界面见图5.6所示。出库过程与入库过程有一定的相关性,只是少了信息采集这一环节,下面对出库过程的实现做一简要介绍。

图5.6出库界面图

(1)出库单查询

由键盘键入出库单据号,然后系统在数据库中执行相应的查询工作,查询在OUT_LIST表中是否有所键入的出库单号。若有,还需进行另一查询,即条码名称关联表的查询,根据出库单上的条码号信息在条码名称对应表中查询条码对应的名字。之后将这些信息由程序写入出库单据相关信息列表中,这一过程与入库单查询较为类似。

rs=sm.executeQuery(“select*from DWMSDB2.dbo.OUT_LIST where OUT_ID='”+getid+“'”);查询数据库出库单表中是否有用户键入的出库单 if(rs.next()==false)

不含用户键入的出库单则弹出出错提示窗口 {

JOptionPane uncontainpane=new JOptionPane(“对不起,数据库中不存在此出库单!”,JOptionPane.ERROR_MESSAGE);JDialog uncontaindialog=uncontainpane.createDialog(this,“Warning!”);uncontaindialog.setVisible(true);forName.setText(null);} else

含有此出库单则将相应的出库单信息赋给相应变量

{ rs=sm.executeQuery(“select*from DWMSDB2.dbo.OUT_LIST where OUT_ID='”+getid+“'”);while(rs.next()){ barcode=rs.getString(“BARCODE”);outid=rs.getString(“OUT_ID”);amount=rs.getString(“AMOUNT”);} } 此时,若键入一个有效的出库单,则出库单列表如图5.7所示。

图5.7 出库单查询成功

(2)现有库存查询

当出库单列表生成后,查看现有库存则需根据出库单列表中的条码号在CURRENT表中进行查询。之后,关于此货品的信息都会列在现有库存表中,包括货品所在的托盘号,数量,入库日期等都会一一列出。

rs2=sm2.executeQuery(“select*from DWMSDB2.dbo.NEW_CURRENT where BARCODE='”+m+“'”);

根据出库单中的条码号查询现有库存表 if(rs2.next()==false)

没有查到则提示出错框,数据库中不存在此物品 { JOptionPane uncontainpanel=new JOptionPane(“对不起,数据库中不存在此物品,无法执行此出库单!”,JOptionPane.ERROR_MESSAGE);JDialog uncontaindialog1=uncontainpanel.createDialog(this,“Warning!”);uncontaindialog1.setVisible(true);ckbiao.cktable.setValueAt(null,1,0);ckbiao.cktable.setValueAt(null,1,1);ckbiao.cktable.setValueAt(null,1,2);33 ckbiao.cktable.setValueAt(null,1,3);} else

查找到相关货品,则将相关货品信息列入现有库存表中 { rs2=sm2.executeQuery(“select*from DWMSDB2.dbo.NEW_CURRENT where BARCODE='”+m+“'”);while(rs2.next()){ barcode2=rs2.getString(“BARCODE”);amount2=rs2.getString(“AMOUNT”);RFID=rs2.getString(“RFID”);datetime=rs2.getString(“DATETIME”);cbiao.tianjia(barcode2,RFID,name,amount2,datetime);} }

在出库单查询的基础上,点击查看现有库存,则现有库存则会列入相应表中,见图5.8 所示。

图5.8 列出现有库存

(3)出库操作

出库过程,本系统设计的是根据现有库存列表由操作员键入需要出库的托盘号及数量,当键入托盘号不在列表中,系统会提示错误,如图5.9 所示。这样以来,由操作员选择出库托盘号和数量,出库时根据操作员键入的托盘号和数量,对RFID标签进行改写,同时对后台数据库中的现有库存表进行更改。对RFID标签的改写要看操作员键入的标签号,若选择了某一托盘物品全部出库,则只需将标签清零,同时执行JDBC的删除操作对数据库中有关该托盘的货品进行删除。当操作员只选择出库某一托盘的部分货品,则只需,将标签上的信息调减,同时删除数据库中的有关信息。这样就完成了出库操作。有关RFID标签的写入以及数据库操作在上述部分都有较多解释,在此部分不再赘述。

图5.9 出库时输入托盘号有误

36总结与展望

6.1 全文总结

经过前面各章的详细论述,对本次设计的全局和细节已经进行详细的介绍。下面将通过系统的回顾,对本次设计进行总结,并得出设计结论。

本次课题通过设计一个仓库管理系统,将RFID这一近年来新兴的技术应用于仓库领域。根据目前仓储管理系统中应用RFID技术的情况,主要有两种模式,一是用电子标签全部替代条形码;另一种是将电子标签和条形码结合使用.本文所设计的仓储管理系统中应用RFID技术。本文所设计的系统将电子标签和条形码结合使用,托盘上使用电子标签,产品包装上仍然使用条形码。

通过在信息采集接口,将RFID技术与条码关联,实现了条码和RFID的良好结合,使得读写RFID标签即可获得出入库货品的相关信息。并且在这一基础上,实现了基于RFID的自动出入库设计。本系统所设计的出入库都根据数据库表中所存的出库入库单信息作为仓库货品的出入库凭证。同时,基于RFID出入库管理均涉及到一个RFID标签的写入或读出。因此本课题与硬件结合较为紧密。

通过本次课题的研究,在完成了课题任务的基础上,关联条码信息与RFID标签,实现基于RFID的自动出入库这一仓库管理原型系统。另一方面,对Eclipse这一开发平台以及Java语言都有了初步理解与掌握,另外对Java中连接数据库的技术JDBC也有了一定研究和学习。本次课题的完成,收获颇丰。

6.2 不足及展望

近年来,RFID技术应用于仓库领域受到了广泛关注。而信息采集是RFID应用在仓库领域的关键,它涉及到程序的编写,同时又涉及到与硬件的交互通信。本文在对Java语言及读写器认真学习的基础上,实现了课题的基本任务,但受限于时间、研究水平和实验设备等条件的限制,存在的问题也不少,主要集中在 以下几个方面:

(1)DrfReaderDll类中的函数很多都没有用到,在实际的仓库系统中,信息

采集,对读写器的操作还是比较复杂的,所以应该充分利用动态链接库所封装的函数,将信息采集,读写标签设计地更加适用于实际情况。

(2)在界面设计时主要应用了Java中的Swing,而实际的Eclipse中也有专门设计界面的SWT。而且第一次用Java做界面,界面设计不够美观。而且入库过程弹出对话框过多,影响界面的美观,使得入库程序显得过分繁杂。

(3)由于Java学习还在起步阶段,所以在编写程序时不够得心应手。程序编写的也比较冗杂,不够简洁。对Eclipse这一开发平台也是第一次使用,所以它强大的功能还没有充分利用。

(4)本系统的自动出入库设计限于时间设计的较为简单,只是涉及到出入库单,现有库存的查询,而对入库货位分配等冗杂信息均未作考虑。所以本课题所设计系统有待进一步完善。

射频识别(RFID)作为一门新兴技术,由于其相对于其他自动识别方式固有的优势,在今天的自动识别和数据采集(AIDC)领域受到了极大的关注。随着相关软硬件技术的不断发展和成熟,射频识别技术将在自动识别领域中有着美好的前途。

参考文献

[1] 自动识别技术简介.无线射频在线.http://www.rfidonline.net/claroom/ [2] 邱小勇,刘凯,冯春.RFID与现代物流管理发展的探讨[J].物流技术.2004.2:45-47 [3] 朱博,孙运强.基于RFID的便携式仓库管理终端设计.应用科技.2007.7:15-17.[4] 刘宝杰,许勇,李柏.RFID技术在仓储管理中的应用.高科技产业技术与创新管理.2007:90-92.[5] 王晓东.射频识别技术在仓库管理中的应用.物流技术.2006.9:45-46.[6] 季全忠,冯彦辉,冯金富,左燕军.射频识别技术在仓库管理中的应用.航空计算技术.2006.7:81-82.[7] 吕志彤,姚智刚.基于射频识别技术的船维修器材仓库管理系统的研究.中国修船.2005(6):38-39 [8] 李建军,刘建中,朗为民.射频识别技术在物流管理领域中的应用.电脑与信息技术.2006.10:15-18.[9] 孟小宁,刘凯.基于RFID技术的准自动化仓库管理.物流科技.2006.5:29-31.[10] 张纲,马庆容,沈磊等.射频识别技术的现状和发展研究.半导体技术,2004,29(4):6-9 [11] 魏二有.RFID技术在数字化仓库的应用.设施与设备.2007:177-179.[12] 张殿东.无线射频识别(RFID)技术.电信技术,2005,02:86-88 [13] 沈宇超,沈树群.射频识别技术及其发展现状[[J].电子技术应用.1999(1):4-5.[14] 张益强,郑铭,张其善.远距离射频识别系统及其应用前景.中国数据通信.2004.1:95-98.[15] 游战清,李苏剑等编著.无线射频识别技术(RFID)理论与应用[M].北京,电子工业出版社.2004.[16] 朱茗.基于射频识别的自动立体仓库信息管理系统:[硕士学位论文] 北京工商大学.2006.6.[17] 秦虎.基于射频识别技术的数据采集和处理的研究及应用:[硕士学位论文]

华中科技大学.2005.5.[18] 陈刚.ECLIPSE从入门到精通.北京,清华大学出版社,2007.7.[19] 林建铭,高明扬编著.精通Java 2.北京,科学出版社.2001.3.[20] 孙一林,彭波.Java数据库编程实例.北京,清华大学出版社,2003.7.[21](美)Jeff Friesen著,钟萍等译.用实例学Java 2.北京,电子工业出版社,2002.7.[22](美)戴特(Deitel,H.M.)等著,钱方等译.高级Java 2大学教程.北京,电子工业出版社,2003.2 40

下载毕业设计仓库管理系统的信息采集接口设计和实现word格式文档
下载毕业设计仓库管理系统的信息采集接口设计和实现.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文