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

时间:2019-05-14 03:38:15下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《毕业设计仓库管理系统的信息采集接口设计和实现》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《毕业设计仓库管理系统的信息采集接口设计和实现》。

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

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

摘要

近年来,物流业快速发展,处于物流中心环节的仓储系统,也随之加快了发展步伐.随着计算机技术和自动化技术的快速进步,仓储系统已向自动化、智能化方向发展.射频识别(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 association 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 process 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 Access 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 class 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为出库货品对应的条码号。

仓库管理原型系统的实现

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 < 42;i++){ int m = DrfReaderDll.writeOne(com, 20 + i, “00”);if(m < 0)m = DrfReaderDll.writeOne(com, 20 + i, “00”);} 此循环调用了写一个字节的函数,用来将RFID标签清空。清空的办法就是从地址20开始不断往里面写“0”。

之后即可对RFID标签写入之前封装好的信息,程序实现如下: for(int i = 0;i <(write.length())/ 2;i++){ r = DrfReaderDll.writeOne(com, 20 + i, write.substring(2 * i, 2 * i + 2));if(r < 0){ r = DrfReaderDll.writeOne(com, 20 + i, write.substring(2 * i, 2 * i + 2));} 由于一次写入两位,所以将写入信息的长度除以2作为写入次数,这样再通过String类中的substring方法实现一次写入两位,写入地址从20开始。写入不成功时r<0的,用一个if语句以确保信息肯定能写入。

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

5.2 出入库管理的实现

5.2.1 连接后台数据库的实现

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

Class.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 < 42;i++){ int m = DrfReaderDll.writeOne(com, 20 + i, “00”);if(m < 0)m = DrfReaderDll.writeOne(com, 20 + i, “00”);

} for(int i = 0;i <(write.length())/ 2;i++){ r = DrfReaderDll.writeOne(com, 20 + i, write.substring(2 * i, 2 * i + 2));if(r < 0){ r = DrfReaderDll.writeOne(com, 20 + i, write.substring(2 * i, 2 * i + 2));} 其中write为将条码和数量封装好的一个待写入标签的String型变量。

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

(3)基于RFID入库的实现

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

for(int i=0;i<2;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<2;i++){ e[i]= DrfReaderDll.read(com1, 20+8*i);if(e[i].equals(“Fail”)){ e[i]=DrfReaderDll.read(com1, 20+8*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 出库时输入托盘号有误

总结与展望

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/classroom/ [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

第二篇:信息采集系统设计说明书

信息采集系统概要设计

整体网络拓扑

信息采集系统的总体网络拓扑如下图所示:

工程师站服务器公网采集站1采集站2...网络结构说明

设备与采集站属于厂区内的同一个私有网络。

采集站/工程师站与公网直连,或者通过路由器间接地与公网连接。

终端状态管理

工程师站可以看到采集站的在线状态。选择采集站后,可以看到采集站下各个终端的在线状态。如果网络连接正常,所有采集站和终端都应该是在线的状态。采集站和终端注册

为了显示采集站和终端的在线状态,用户需要在工程师站上注册所有的采集站以及采集站下的终端信息。

用户在注册采集站时,需要填写采集站的标识符,该标识符不可重复,目的是让用户区分不同的采集站,且该标识符需要在采集站和工程师站上保持一致。

用户注册完采集站后,就可以在该采集站下添加终端信息。添加终端时需要填写终端的标识符和描述信息。其中,唯一标识符应当是终端内部可以取到的,可以区分同一个采集站下的不同终端;描述信息的目的是帮助用户区分不同的终端。

采集站和终端信息注册完成后,需要上传到服务器。当其他工程师站连接上服务器时,可以读取到这些信息,无需重复注册。

数据采集过程

本系统采集的数据有三种类型,分别是组态数据,运行数据和故障报警。其中,故障报警又分为实时故障和历史故障。下面分别阐述这三种类型数据的采集过程。

组态数据

每个终端都有一份组态数据,用户可以在终端上直接修改该组态。工程师站可以实时查看终端的最新组态信息,也可以修改并下发该组态信息。

查看终端组态

工程师站可以查询某个终端的最新组态。查询的详细过程如下:

1.2.3.4.5.6.工程师站发送查询命令给服务器

服务器从查询命令中解析出目的采集站,并将查询命令发送给采集站 采集站收到查询命令后向指定终端查询最新组态数据 终端回复最新组态数据

采集站将得到的组态数据回复给服务器

服务器将组态数据回复给发起查询的工程师站

数据流如下所示:

1.工程师站发送组态查询命令6.返回最新组态服务器工程师站2.服务器转发组态查询5.采集站返回最新组态采集站4.终端返回最新组态3.采集站向终端查询最新组态终端

修改终端组态

工程查询到终端的最新组态后,可以修改某些参数,然后将修改好的组态下发到终端设备。查询的详细过程如下:

1.工程师站发送写组态的消息给服务器,消息中需要包含组态和终端标识,可以有多个终端,这些终端的组态将更新为同一份组态。注意,多个终端必须属于同一个厂区,即由同一个采集站管理。

2.服务器从写组态消息中解析出目的采集站,并将写组态消息转发给采集站。3.采集站收到写组态的消息后,将组态下发给指定终端。4.终端回复组态更新结果给采集站。5.采集站将更新结果回复给服务器

6.服务器将组态更新结果转发给工程师站 数据流如下所示:

1.发送写组态消息6.返回组态更新结果服务器工程师站2.服务器转发写组态消息5.采集站返回写组态结果采集站3.采集站向终端写组态4.终端返回组态更新结果终端

运行数据

工程师站可以查询指定终端的当前运行数据,以了解终端的运行状态。查询过程与组态查询过程类似,此处不再赘述。

故障数据

终端运行过程中,如果发生故障,则需要将故障信息发送给采集站。采集站收到故障数据后,需要将此数据保存到本地数据库中。如果采集站此时能连接上服务器,则需要将故障信息发送给服务器。服务器接收到此故障报警后,需要将此故障报警推送给当前在线的工程师站。如果没有工程师站在线,则丢弃此条报警。

从上面的描述可知,工程师站被动接收到的故障报警都是实时故障报警。工程师站也可以通过历史报警功能查询历史报警信息。

实时故障

实时故障由终端主动上报给在线的工程师站,故障上报流程如下: 1.终端检测到故障,上报故障给采集站

2.采集站收到故障后,将故障信息发送给服务器

3.服务器查看是否有在线的工程师站,如果有,则将故障信息推送给工程师站,如果没有在线的工程师站,则丢弃该条故障报警。数据流如下图所示:

3.服务器推送故障报警服务器工程师站2.采集站上报该条故障报警采集站1.上报故障信息给采集站终端

历史故障

用户可以通过工程师站查询终端的历史故障信息,以了解终端的历史运行状态。历史故障查询时需要指定采集站和查询的时间范围,查询得到的结果为指定采集站下所有终端的某一时间段内的历史报警。

历史故障查询的详细过程如下:

1.工程师站向服务器发起历史故障查询,查询消息中包含了待查询的采集站和查询时间段。

2.服务器将查询消息转发到指定的采集站。

3.采集站根据查询消息中的时间范围查询本地数据库,采集站将查询到的结果返回给服务器

4.服务器将查询到的历史故障转发给发起查询的工程师站 数据流如下图所示:

2.将查询命令转发给采集站1.发起历史故障查询工程师站服务器3.服务器转发查询结果3.采集站返回查询结果采集站 各组件功能设计

工程师站

操作界面

需要展示的信息有:

1.已注册的采集站和终端的在线状态 2.终端的组态数据、运行数据和故障数据 需要编辑的数据有:

1.采集站和终端的注册信息 2.终端的组态数据

历史故障查询时需要指定时间范围,时间范围太长有可能会导致网络响应缓慢。

信息读写和接收

用户可以通过工程师站主动查询指定设备的各类数据,包括组态数据、运行数据和历史故障。可主动查询的信息有:

1.2.3.4.5.各采集站的在线状态

采集站下的终端的在线状态 指定终端的组态数据 指定终端的运行数据 指定采集站下的历史故障

实时故障由于对实时性要求比较高,需要由服务器主动推送给工程师站,工程师站接收到实时故障后,需要给用户提示,用户可以查看工程师站接收到的实时故障的详细信息。终端信息注册和组态修改

用户编辑好后终端和采集站的信息后,通过网络模块将组态保存到服务器上。组态修改完成后,通过网络模块将组态下发到各个终端上。

采集站

采集站标识符

采集站的功能生效之前,需要在界面上输入该采集站的标识符。该标识符需要与工程师站注册采集站时所用的标识符保持一致,这样工程师站才能将该采集站的信息正确的显示出来。

终端状态管理

采集站在启动后,需要根据采集站标识符从服务器上下载该采集站下面所有的终端信息。采集站监测各终端的在线状态,当状态发生变化时,需要将此状态更新到服务器,以便工程师站上可以实时反应出各终端的在线状态。

故障报警

采集站收到终端的故障报警时,需要将此条故障报警保存在本地数据库中,以备后续的历史故障查询。

组态模板

当工程师站向采集站下的某个终端发起过组态查询时,采集站需要将此终端的组态保存到本地数据库中,后续可能需要导出此组态信息,用于其他厂区的组态模板信息。

查询响应

采集站需要响应服务器的查询和下发命令。查询的信息类型有:组态数据、运行数据和历史故障。如果是组态数据和运行数据,采集站需要从终端中取得最新的结果,然后返回。历史故障数据从数据库中根据一定的条件返回。采集站还需要下发组态给终端。采集站与终端之间的交互接口

服务器

查询中转

工程师站查询终端信息时,需要服务器将这些查询指令转发给对应的采集站;采集站将结果返回给服务器时,服务器需要再将结果转发给工程师站。

报警推送

服务器接收到采集站的故障报警时,需要检查当前是否有在线的工程师站,如果有,则需要推送故障报警到工程师站。如果没有,则丢弃此条故障报警。

采集站注册信息管理

工程师站上注册好采集站和终端的信息后,需要保存到服务器中。当其他工程师站开启时,需要从服务器上获取到最新的采集站和终端注册信息。

采集站状态管理

每个厂区的采集站在上线时都要向中转服务器汇报在线状态,并开启保活机制,一段时间后,如果保活失败,则判定采集站的状态为离线。

采集站下的终端在线信息发生变化时,需要将此信息发送给服务器。

网络组件的接口

与工程师站之间的接口

工程师站的UI层通过网络组件来实现数据采集和下发。网络组件主要提供的功能包括终端在线状态管理、组态读写、运行数据查询、历史故障查询和实时故障接收这几个方面,下面是这几类功能的主要接口:

终端在线状态管理

1.增删采集站及终端信息 2.获取所有采集站的在线状态

3.获取指定采集站中所有终端的在线状态

组态读写

1.获取指定终端的组态

2.写入组态,可以指定采集站下的一个或者多个终端

运行数据查询

1.获取指定终端的运行数据

历史故障查询

1.获取指定采集站下的历史故障,查询条件是时间范围

实时故障接收

1.设置故障接收的回调对象(该回调对象有可能被频繁调用,需要确认终端的故障推送间隔时间)

与终端之间的接口

采集站与终端之间的通信有下面四种:

1.2.3.4.采集站向终端读取组态数据 采集站向终端写入组态数据 采集站向终端读取运行数据 终端推送故障报警给采集站

具体的通信协议待定。

第三篇:仓库管理系统 毕业设计_文献综述

文献综述

仓库管理系统设计与实现

学生姓名

xx

xxx

专业班级

网络工程(信息安全)xxxx班 学

54xxxxxxxxxx

院(系)

计算机与通信工程学院

指导教师(职称)

xx(讲师)

完成时间

2014年 5 月 12 日

仓库管理系统设计与实现

专业班级:网络工程(信息安xx班

姓名:xx 学号5xxx

仓库管理系统的设计与实现

1.引言

随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大[1],产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。面对庞大的产品信息量,如何有效地管理仓库产品,对这些企业来说是非常重要的,仓库管理的重点是销售信息能否及时反馈,从而确保企业运行效益[2]。而仓库管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由仓库管理系统来提高仓库管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。

储存产品信息是产品保障信息网络的重要组成部分,是做好产品供应保障工作的基础[3]。产品保障信息网是实现物资储运全过程可视化的前提。目前,有些仓库内部局域网已经建成并投入使用,并与业务主管部门实现了信息沟通,仓库保障信息网在日常航材保障工作中实现了信息沟通,仓库保障信息网在日常产品保障工作中的作用日趋明显[4]。条码技术在储存管理中的应用,可进一步完善系统各仓库之间及各仓库与作业主管部门之间的信息共享和交换功能,最终达到对产品的全程跟踪管理,充分发挥条码技术在整个流通中的作用。

同时,在软件系统的研发过程中,将会融入一种EPR的企业管理思想[5]。大量的研究与实践已经充分表明,ERP作为一种现代企业管理的思想和方法,将其大力地推广应用就是有效的促使我国企业管理朝着更加科学化、合理化和规范化方向发展的一种具体方法和途径。

另外,仓库管理的信息化和可视化,每个企业将会拥有两个仓库,一个是装满货物的仓库,还有一个就是管理系统里的数据库,对上万种货物分别编码,使其成为计算机可识别的语言,形象地说,货架上的号码就是货物的地址,从而避

仓库管理系统设计与实现

专业班级:网络工程(信息安xx班

姓名:xx 学号5xxx 免了货物的分拣和提取时的翻箱倒柜式的查找[6]。

2.目前研究状况

“仓库管理系统”(Warehouse Management System,简称WMS)是用来管理仓库内部的人员、库存、工作时间、定单和设备的软件实施工具[7]。这里所称的“仓库”包括生产和供应领域中各种类型的储存仓库和配送中心。其主要作用是管理和控制仓库所有人出库动态,统计分析库存数据,使决策人员及早发现问题,采取相应措施,调整库存结构,缩短储备周期,加速资金周转,从而保证企业生产中畅通的物流。同时最大限度地降低库存占用,及时补救管理中的漏洞,使库存管理系统实时地反映企业中各个仓库的现时情况,为各类管理人员从不同侧面提供所需信息,以便协调企业经营收到更大效益[8]。

如今,仓库管理系统已经在世界各发达国家广泛应用了,而且应用范围越来越广功能越来越全面,操作越来越简便,成本越来越低廉。主要应用于大中小型企业,工厂,物流公司,超市以及一些科研单位。

3.仓库管理系统的基础内容

仓库管理系统是随着现代计算机技术的发展而产生的,它充分利用计算机程序制定生产系统优化运行方案,可及时调整企业生产过程内外的各种关系。仓库管理系统的基本模块,简单的说,主要包括两大部分,即前台管理系统和后台仓储系统。前台管理系统 对于一个仓库来说其核心就是通过提供科学的进销方式和库存管理来取得高经济效益[9]。一般需求包括:以材料销售为中心,全面支持仓库的产、供、销、存的管理;实现全公司信息资源的共享一计算机自动完成进、销、存情况的分析处理,并自动产生相关执行计划,仓库各部门之间信息的相互传递与处理,实现仓库经营财务的计算机管理一完成材料销售情况数据的集中管理及处理,实现仓库人、财、物信息管理的计算机化,支持材料的经济核算。

仓储系统虽貌似整个仓库管理系统的主要功能,实现起来却相对简单,共分为:货品分配入库、退库(材料物品返回到厂家)、库存调整、价格调整、出库及出库审批、销售汇总、库存盘点。货品分配入库主要是靠物品字典里的物品去进行维护的。

使用WMS会在下列四方面给仓库带来切实的效果:为仓库作业全过程提供

仓库管理系统设计与实现

专业班级:网络工程(信息安xx班

姓名:xx 学号5xxx 自动化和全面纪录的途径,改变传统上的固定货位,实现全库随机储存[10]。从而最大限度利用仓库,提高发货的质量和正确性,减少断档和退货,从而提高顾客的满意程度。为仓库的所有活动、资源和库存水平提供即时的正确信息。以上这些效果无疑会带给仓库明显的效益,据估算,配进能力一般可提高20~30%,库存和发货正确率超过99%[11]。仓库空间利用率提高,数据输入误差减少,库存和短缺损耗减少,劳动、设备、消耗等费用降低。这些最终将为仓库带来巨大的经济效益。

但是,对于一个企业或单位是否要安装一个适合其自身规模的仓库管理系统,应当首先考虑其成本投入是否在自身负担能力以内。其次考虑回收成本的时间是否远远短于其带来效益的时间,也就是说,考虑成本投入是否可在短期内被其经济效益所补偿并迅速达到盈利,尤其是对于那些资金周转较慢的企业,是否马上应用仓库管理系统,应当谨慎考虑[12]。一般来说,一个仓库管理系统的成本核算除软件开发和硬件安装本身的费用外还应包括以下费用:设备占用面积的租金、税费、水电冷气、消防设备、运转养护成本、人工成本和供增值服务的费用(如礼品化包装或增加个性化问候卡等)。同时,由于这些支出有的是一次性支出的,有的是分期支付的,我们要确切衡量每一种方案的运营支出,可根据设备的折旧年限和期望的报酬率进行折现,比较每种方案的折现现金流出。把一次性或周期性的成本支出换算成一定年限内的平均支出。

当然,除考虑成本本身外,我们还应:着眼于实际业务需要,而不是为自动化而自动化,进行技术评估,根据库房吞吐量和存储需要,确定是否需要自动化和自动化要达到的程度,确定实施自动化后,对设备的性能进行详细审视。据英国某杂志报导,某洁具生产厂使用WMS后仓储费用年节约39.3万英镑,其全部总投资在14个月内完成回收。美国一些杂志认为一个WMS一般能在2年内获得回报,还有人估计3500平方米以上仓库用户,可望在1年内回收成本[13]。由于经济效益的驱动,WMS的用户日益增多,并从大企业向中小企业发展。据资料显示,1998年WMS垒球销售6.1亿美元,用户中大户占41%,中户占42.2%,小户占16.8%,2003年小户比重几近增加一倍[14]。同时,由于市场竞争和电子技术的降价,WMS价格太幅下降,从1993年到1998下跌46%,从而为中小企业使用WMS创造更多的条件。当然,一个企业如果不能确认在几年或 3

仓库管理系统设计与实现

专业班级:网络工程(信息安xx班

姓名:xx 学号5xxx 更短时间内能回收投资,还应谨慎考虑,如果回收有望,则不必犹豫等待。WMS的应用需与许多电子技术相配合,如条码、射频通信等等,达就提醒我国在引进应用时,更应结合国情,适当改进,以切实用。

总之,先进的企业需要一套先进的仓库管理系统。通过运用世界领先的IT技术和专业化的物流运作经验能够使信息集合商业运作以及客户服务向着专业化、国际化的方向发展,并最终给企业带来实际的利益,相信企业能够因此实现更大的飞跃。

仓库管理系统目的是为了完善仓库管理,提高工作效率[15]。完善的仓库管理系统可以实现仓库的精细化管理:对货物存储和出货进行动态安排,对仓库作业流程的全过程进行电子化操作,达到投入少,产出多的结果,使企业取得最佳的经济效益。

4.参考文献

[1](美)Robert A.Schultheis.Management Information System(FOURTH EDITION).北京:机械工业出版社(影印),1998 [2]Sarah E.Hutchinson, Stacey C.Sawyer COMPUTERS,COMMUNICATIONS,AND INFORMATION(Seventh Edition).Boston:McGraw-Hill Companies,2001 [3](美)Jeffrey L.Whitten,Lonnie D.Bentley,Kevin C.Dittman.SYSTEM ANALYSIS AND DESIGN METHODS(Fifth Edition).Boston:McGraw-Hill Companies,2001 [4]H.S.ACKLEY.A PDF417 TUTORIAL.INTERMEC CORPORATION, 1992 [5]E.R.Berlekamp.Algebruic Coding Theory.Mc-Graw-Hill,1968 [6] 数据库概论/王珊等编著。高等教育出版社, 2003.2 [7] Visual Basic 6.0程序设计工程师/网冠科技编著。机械工业出版社 2001.2 [8] 薛华成主编.管理信息系统.北京:清华大学出版社,1999 [9] 黄梯云主编.管理信息系统.北京:高等教育出版社,1999 [10] 张国锋主编.管理信息系统.北京:机械工业出版社,2001 [11] 龚沛曾等编.Visual Basic程序设计教程.北京:高等教育出版社,1998 [12]邓凤祥.现代物流成本管理.经济管理出版社, 2004, 91-92.[13丁言立.•现代物流中心信息系统的构建.物流技术, 2005, 11(6): 67-68.[14]邬星根, 李莅.仓储与配送管理.复旦大学出版社, 2005, 85-87.[15]胡宜男.仓库管理的新技术与运用.物流, 2006,(3): 80-81.

第四篇:毕业设计 C#仓库管理系统摘要

渔阳建业有限公司仓库管理信息系统设计

与实现

摘要

在传统仓库管理过程中,表单填写与查询管理都非常的耗费人力物力,最后需要盘点或统计十分耗费时间和人力。同时由于采用手工操作,不可避免造成一些的错误。现在许多公司都采用计算机来管理仓库信息,避免了手工操作的不足。采用仓库管理信息对物资的出入情况进行管理,可以很方便地完成各类统计,为生产销售人员及时提供相关信息。

本系统主要实现仓库管理的自动化,包括货物的入库、出库、调库等操作,及货物有关信息的管理,如仓库单位管理、货物类别管理、供货商信息管理、客户档案管理和仓库管事操作员信息管理等。本系统采用sql 2005作为后台的数据管理系统,以visual studio 2005作为前端开发工具,对数据进行添加、修改、保存、删除等处理,具有很强的实用性。

本系统主要功能是以管理员身份登录能够完成对库存等诸多信息进行实时管理功能。系统以提供操作简单、方便、易懂易用为开发目标,用户界面友好,及具有高效的数据处理能力。

关键词:仓库管理信息管理系统自动化

The Design and Implementation ofYuyang Warehouse Management

Information System

ABSTRACT

In the traditional warehouse management process, it is very costly to

第五篇:课程设计--基于FPGA的指纹采集接口设计与实现

基于FPGA的指纹采集接口设计与实现

一、引言

相对于密码、证件等传统身份认证技术和诸如语音、虹膜、脸形、签名等其他生物特征识别认证技术而言,指纹识别认证是一种更为理想的身份认证技术。其优点体现在:

1.广泛性——每个人的每一跟手指都具有指纹;

2.唯一性——每个人的指纹都不相同,极难进行复制;

3.稳定性——指纹不会随着年龄的增长而改变;

4.易采集性——指纹图像可运用专业的指纹传感器获取,易于开发识别认证系统。

随着电子商务的发展和消费类电子的普及,越来越多的领域需要指纹识别系统。目前,基于、的独立式指纹识别系统已经成功应用于考勤、门禁、安检等领域。同时,随着微电子技术的进步,设计开发能应用在小型微型系统(如手机、PDA等)的ASIC资金资助:上海市科学技术委员会PDC计划项目(No.047062023)和AM 0403项目(专用集成电路)指纹识别认证系统,将具有很强的现实意义和广阔的市场空间。

由于FPGA(现场可编程门阵列)具有高集成度,低功耗,短开发周期等优点,本文选用FPGA作为指纹识别认证系统的核心器件,以控制其依次实现指 纹采集、指纹特征点提取、存储、比 对等等过程。可见,指纹识别认证系统的首要任务是如何采集到高质量指纹图像以保证后续任务的完成,而指纹图像质量不仅与指纹传感器自身的性能有关,也与数 据传输通信接口的性能密切相关。因此,如何设计性能优良的通信接口是实际系统设计的一个难点问题。于是本文针对这一问题进行了研究,介绍了一种基于 FPGA与滑动式指纹传感器的指纹采集接口的设计与实现方法。

二、简介指纹采集接口器件

本指纹采集接口的核心控制器件为Xilinx公司SpartanIII系列的XC3S400型FPGA芯片,它的封装形式为PQ208。这款芯片采用先进的90ns工艺,最大容量40万门,工作频率高达200M,足以完成系统需要。

另外,本文选用的指纹采集传感器为富士通公司的MBF300滑动式电容指纹采集传感器。这款指纹传感器采用标准CMOS技术,含有8位A/D变换 器,能在2.8V~5V的宽电压范围内工作,能自动检测到是否有指纹到达传感器,并实现在线采集。而它与以往采用的面积式指纹传感器相比最大的优点在于,在保证指纹图像高分辨率(500dpi)的同时大大减小了传感器的尺寸(13.3×3.6)。

MBF300支持3种通信接口:8位微处理器总线接口(microprocessor bus interface)、集成的USB全速接口(Integrated USB Full-Speed Interface)和集成SPI接口(Integrated Serial Peripheral Interface)。其中本文选用SPI接口,并将详细讲述基于MBF300和FPGA的SPI设计与实现方法。

MBF300的SPI接口需要时钟信号线SCK、主进从出信号线MISO、主出从进信号线MOSI和使能信号线,共4根信号线。其中,传感器的时钟 源可以从外部输人,也可以外接一个晶体振荡器后,利用MBF300内部的振荡电路来获得时钟源。在选择了SPI模式后,MBF300的其他两种模式将自动 禁止。在本系统中,MBF300在SPI工作模式下相当于一个从设备,XC3S400作为主设备。XC3S400通过读写MBF300内部的寄存器实现对 它的控制,以完成指纹采集的任务。

另外,MBF300在SPI的从设备状态下,它的通信协议的具体内容包括:

MOSI线上的数据在SCK的上升沿被采样;

MISO线上的数据在SCK的下降沿发生改变;

SCK在空闲状态时,可以为高电平,也可以为低电平;

串行传输过程中,高位在前(最先被移出)。具体时序见图1。

三、指纹采集接口的设计与实现

本文中指纹传感器MBF300的主要任务是采集指纹图像,并自动A/D转换,并把转换后的图像数据通过SPI接口传送到FPGA芯片XC3S400 中,以进行指纹登记或者指纹识别比对。由此可见,指纹采集是整个指纹识别系统的第一步,采集质量的好坏将直接影响系统的性能与准确度的高低,因此,接下来 将重点介绍指纹采集接口——SPI接口的设计,在此过程中,XC3S400为SPI主设备,MBF300为SPI从设备。

1、指纹采集电路

由于FPGA内部采用的SRAM存储器结构,所以需要外置一个PROM在上电时对FPGA进行程序配置。同时,还扩展了一个SRAM和Flash分 别用作存储指纹程序运行时的临时数据和指纹数据信息。另外,为了实现与PC机通信,指纹采集部分还设计一个RS232接口,整个的硬件电路如图2所示。由 图中可以看出,整个指纹采集的核心部件就是FPGA芯片XC3S400,它相当于常见的嵌入系统中的DSP或者ARM,控制着整个指纹采集,以及指纹登 记,指纹比对,结果输出等过程。

2、指纹采集接口硬件设计与实现

本文的SPI接口主设备为FPGA芯片XC3S400,从设备为指纹传感器MBF200。由于FPGA没有特定管脚的要求,本文任意选用XC3S400的4个I/O口137—140,分别与指纹传感器MBF300的相应管脚连接,见图3所示。

3、指纹采集接口软件设计与实现

接口时钟采用传感器内部的12M时钟,整个采集指纹图像流程如图4所示,主要有初始化,调整参数,指纹采集,指纹存储几部分组成。

3.1 初始化XC3S400和MBF300

XC3S400为FPGA器件,因此在系统上电后先要对其进行初始化,即从PROM中读取配置数据,以完成后面的指纹采集、特征点提取、存储、比对等工作;初始化XC3S400之后,接着初始化指纹传感器MBF300,其中部分VHDL源程序如下:

……

ENTITY ini_mbf300 IS

PORT(......pgc : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

dtr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

dcr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

thr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

ctrlb : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

isr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

icr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

......);--定义需要初始化的MBF300寄存器;

END ini_mbf300;

ARCHITECTURE ini_mbf300 OF ini_mbf300 IS

BEGIN

pgc <= “00000110 ”;--初始设置图像增益为1.5;

dtr <= “00111111”;

dcr <= “00000001”;

thr <= “00101100”;

ctrlb <= “00000001”;--使能阵列,AD及时钟;

isr <= “00000011”;--清空中断;

icr <= “01011001”;--使能自动检测;…...END ini_mbf300;......3.2 调整MBF300参数

调整MBF300参数,也就是调整PGC、DTR、DCR三个寄存器的值来调整放电时间、放电电流速率和图像的放大增益,直到获得最佳质量的图像。

3.3 采集指纹图像

XC3S400按照MBF300的SPI时序要求,在MOSI信号线上发送一系列读写MBF300寄存器的指令,并由MBF300在MISO信号线上发送A/D转换后的指纹数据,直到一幅完整的256*32的指纹图像传输完毕。

3.4 存储指纹图像

采集到的原始指纹图像保存到片外SRAM中,地址空间为0000 0000 0000 0000~FFFF FFFF FFFF FFFF。实验调试与结论

指纹采集接口的整个程序的VHDL源代码已经通过调试,在ModelSim SE 6.1b中成功仿真,FPGA的SPI时序与MBF300一致,完全能达到指纹采集的目的。于是将MBF300设置为DTR=0x15,DCR= 0x20,PGC=0x01,通过SPI接口采集到的原始指纹数据通过图2中的RS232接口传送给PC机,然后利用Matlab工具数据转化得到指纹图 像,它足以满足后续的指纹特征点提取、比对等要求。

四、小结

这种基于FPGA芯片XC3S400与固体指纹传感器MBF300的SPI接口具有设计实现简单,传输速率高的特点,完 全能胜任指纹采集的任务。而MBF300的高精度更能保证采集到的指纹图像的质量,这有利于简化后续的指纹图像增强、二值化等算法。总之,基于FPGA与 指纹传感器的指纹采集系统的SPI接口的成功实现,为指纹识别技术的SOC片上集成打开一个良好的开端。

本文作者创新点:

虽然基于DSP或者ARM的指纹识别认证系统已经在考勤,门禁等领域实现商品化,但这样的嵌入式系统很难实现小型化集成化,更无法SOC,所以本文 采用FPGA来实现指纹识别认证系统,利用FPGA高集成度,低功耗,短开发周期等优点,并以实现系统的ASIC为研究背景,具有很强的现实意义和广阔的 市场空间。

只有保证高质量的指纹采集才会保证高质量的指纹识别认证,因此本文主要介绍了基于FPGA的指纹识别系统的指纹采集接口部分的设计与实现方案,经实验研究证实该接口完全能满足实际需要,这为指纹识别系统的片上集成打开了一个良好的开端。

参考文献:

[1]谢健阳,李铁才,唐降龙等.指纹识别系统的设计与实现.微计算机信息.2006;22(3-2):156-157;

[2]周宁婕,付宇卓,周煜.基于DSP的指纹识别系统硬件平台设计.计算机仿真.2005;22(1):241-243;

[3]黄林波,杜坤梅,谢建阳等.基于ARM的指纹识别算法的研究与开发.哈尔滨商业大学学报(自然科学版).2005;21(2):179-181;[4]沈小丰, 李小贝.便携式指纹识别系统的设计.自动化技术与应用.2005;24(4):55-58

[5] MBF300 Solid State Fingerprint Sweep Sensor,Data Sheet[Z].2002 [6] Spartan-3 FPGA Family: Complete Data Sheet [Z].2005

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

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    嵌入式系统数字图像采集接口电路设计经验总结

    摘要:本文介绍了两种用于嵌入式系统的数字图像采集接口方法,I/O接口和内存直接写入。在对采集速度要求不高的应用中,I/O接口方法可以简化接口电路设计,减少系统资源。对于要求实......

    仓库出库入库管理系统毕业设计(五篇)

    1 1概述1.1 摘要 某供应部门管理多个仓库,仓库主要管理物资的入库、出库、库存和采购等事项。建立一个数据库,实现其先进快速的功能。 1.2 1.2 1.2 1.2 可行性分析可行性分析......

    基于VB技术的仓库管理系统的设计与实现

    摘要 库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性......

    移动基站用电信息采集管理系统

    类 别 内 容 关 键 词 GPRS 移动基站 用电 采集 管理 摘 要 本文讲述如何应用RS5011G组建移动基站用电信息采集管理系统 一、概述: 一直以来对移动通信基站的用电管理普遍不......

    基于ARM的视频采集系统的设计与实现

    基于ARM的视频采集系统的设计与实现 摘要 本文根据家庭视频采集系统的要求,提出一种基于ARM的网络视频采集方案。方案要求视频的实时传输、实时监控。本系统以Intel Xscale......

    仓库管理系统

    · 用Visual C++设计的仓库管理系统 摘要 本文主要介绍了采用Visual Studio 2005的一个仓库管理系统。该系统基于MFC集成开发环境,利用ADO控件实现基本信息管理、商品信息管......

    图书仓库管理系统的设计

    图书仓库管理系统的设计 摘 要 本系统主要完成对图书仓库的库存管理,包括图书入库、出库、库存,员工信息,供应商信息以及密码管理等六个方面。系统可以完成对各类信息的浏览、......

    图书仓库管理系统的设计

    图书仓库管理系统的设计 摘 要 本系统主要完成对图书仓库的库存管理,包括图书入库、出库、库存,员工信息,供应商信息以及密码管理等六个方面。系统可以完成对各类信息的浏览......