【基于RFID的智能仓储管理系统设计13000字(论文)】_第1页
【基于RFID的智能仓储管理系统设计13000字(论文)】_第2页
【基于RFID的智能仓储管理系统设计13000字(论文)】_第3页
【基于RFID的智能仓储管理系统设计13000字(论文)】_第4页
【基于RFID的智能仓储管理系统设计13000字(论文)】_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第页基于RFID的智能仓储管理系统设计摘要在近些年里,物流行业的发展速度令人感叹不已,已经成为了国家制定的十大产业振兴规划中重要的一员。随着物流行业的发展,其庞大的货物流动量使得仓储管理成为关键的一环。而传统的仓储管理效率较低、人工成本较高、数据更新慢以及有一定数据错误风险,难以满足物流行业的发展要求。射频识别技术(RFID)是物联网重要的一部分,其主要通过无线射频方式来进行非接触式且可以实现双向通信的优点,被认为是21世纪最具有发展潜力的信息技术之一,对物品专属电子标签进行读写,应用广泛。当射频识别技术实际应用到仓储管理,搭配相应的智能管理系统,便能有效推动仓储管理的信息化和智能化发展。本毕业设计便是以RFID与仓储相结合所开发的智能仓储管理系统。关键词:仓储管理;射频识别技术;物联网目录摘要 3Abstract 4目录 5第1章绪论 71.1背景与意义 71.2国内外发展现状 81.3系统实现的预期 81.4本论文的主要内容 81.5系统完成程度 8第2章开发准备 102.1系统要求 102.2系统环境与工具 102.3RFID介绍 102.4技术介绍 112.4.1R200硬件介绍 112.4.2软件技术介绍 11第3章系统总体设计 133.1系统需求分析 133.2系统结构图 143.3数据库设计 163.4系统设计与折衷 19第4章系统详细设计 234.1功能流程设计 234.1.1RFID读取器 234.1.2仓储管理系统 254.2代码设计 294.2.1RFID读取器 294.2.2智能仓储管理系统 30第5章系统测试 325.1测试规划 325.2测试设计 325.2.1单元测试 325.2.2集成测试 35第6章实物展示 366.1RFID读取器 366.2智能仓储管理系统 39第7章开发总结与展望 497.1开发总结 497.2未来展望 49参考文献 51

第1章绪论1.1背景与意义全球信息技术的发展以无法预计的方式影响着人类的生活。在近些年来,不断发展的物流行业影响着整个社会,我国十大产业振兴规划也将物流行业列入重要部分。日益增长的物流规模促使一批又一批的中小型物流企业如春笋般涌出。根据前瞻产业研究院发布的《中国仓储行业市场前瞻与投资战略规划分析报告》[1]统计,从2010年到2018年,中国社会物流总额从125.5万亿元增长到了283.2万亿元,仓储类企业数量也从1.67万家增长到了6万家,年复合增长率达到了17.2%[1]。尽管物流市场在不断扩大,但物流行业的发展速度还是带来了企业之间市场的竞争,不仅仅是在资源、技术和人才方面,企业的管理方式与水平也成为了重要的竞争力。仓储管理是物流服务中的核心环节之一,它通过一定方式对仓库与物资进行出库、入库和盘点等等方面处理。传统的仓储管理主要通过人工操作进行管理,适用于规模不大的仓库。对于如今规模不断扩大的物流行业,传统管理方式普遍存在:效率低下、成本过高、信息交互率低等问题。更加需要通过物联网技术实现低成本、高精度的智能仓储管理。射频识别技术(RadioFrequencyIdentification,RFID),也称为无线射频识别,是一种能够进行自动识别的技术,能够进行无线射频,从而实现非接触双向数据通信。RFID相对应的记录媒体为电子标签或射频卡,通过无线射频对其记录媒体进行读写,能够对其媒体进行识别和数据交换。对于实现现代化智能仓储管理有着举足轻重的作用。在2016年工信部早已发布的《物联网“十三五”行业发展规划》[6]中指出:通过RFID技术的应用,以信息化、智能化、细致化为生产制造和经营管理为发展趋势。由于RFID本身技术优势:速度快、识别距离远、隔物识别等等,RFID有望在工业生产、零售、供应链等领域全面取代传统的自动识别技术。有助于各个领域降低生产和人工成本。是我们社会发展的必要技术。1.2国内外发展现状西方发达国家率先研究发展RFID技术,最早获益。国内的RFID技术开始较晚,但发展速度惊人。早在2012年京东已经运用RFID技术,实现智能化、信息化的仓库管理,大大提高了仓库管理的效率。在当今竞争激烈的全球环境下,各个企业和组织都在强调资产回报率。在搜集相关资料中,有数据表明,仓储成本大概占企业销售总成本的3%到6%左右,可见仓储管理的重要性。RFID技术的出现和应用,有效降低了仓储管理的运营成本。和传统仓储管理方式相比,其效率和准确性有着显著的提高。但由于当下RFID技术成本相对较高,国内大部分中小企业还是传统仓储管理方式。其作为物联网的核心技术之一,RFID技术迫切需要得到推广和应用,而它的发展必将推动企业全面自动化时代的到来。研究与开发的基于RFID的智能仓储管理系统,能够顺应时代发展的潮流,实现传统仓储管理方式向信息自动化管理方式的转换。1.3系统实现的预期RFID是当代物联网的核心技术之一,也是本次智能仓储管理系统的技术基础之一。紧紧围绕“基于RFID”这一方向实现一个信息化管理仓储的系统。相对于传统的人工进行仓储管理,本系统只需要使用RFID技术而不需要人工劳动便可进行货物记录。利用RFID读取器与电子标签的数据交互,远距离数据提取或写入,从而实现一个智能化信息化的新仓储管理模式。1.4本论文的主要内容本论文是在已经完成开发的“基于RFID的智能仓储管理系统”的实物基础上,对其详细功能与技术进行综述与介绍。本系统有硬件与软件两部分:RFID相关硬件设备与后台管理系统。本论文将通过以下六个方面进行对整个系统详细介绍:1.开发准备;2.系统总体设计;3.系统详细设计;4.系统测试;5.实物展示;6.开发总结与展望1.5系统完成程度本系统已经成功运行,能够利用RFID读取器持续扫描一个或多个电子标签且能够读取有效信息,通过串行接口提取到读取程序中,并能输出excel表格将数据提取到后台管理程序中,进行数据管理,并进行可视化处理。第2章开发准备2.1系统要求本仓储管理系统分为硬件和软件两部分。硬件:能够远距离读取多个电子标签的数据并提取。软件:仓储管理系统分为两个功能模块。其中一方面面向业务管理,另一方面面向仓储管理。能够有效实现数据可视化,实现高效的RFID管理系统。2.2系统环境与工具开发工具:VisualStudio2012;IntelliJidea2020;PyCharm2020.3;Navicat;环境版本:MySQL8.0;jdk1.8.0;python3.9.2;cp210x串行接口驱动硬件:UHF-R200-C50RFID读写模块+天线H47标签2.3RFID介绍射频识别技术(RadioFrequencyIdentification,RFID)是物联网的关键技术之一。是一种基于无线通信的非接触自动识别技术,它能够通过电磁耦合或方向散射的方式来实现能量交换和双向通信[6]。通常包含是三个组成部分:服务器、阅读器、标签。可以将系统分为数据感知、处理、传输三个部分[12]。标签是RFID系统中的数据载体,通常包含标签天线、处理芯片等通信必要组件。信号的编码、解码以及阅读器命令的解析和处理都是有处理芯片完成;天线负责无线射频信号的收发工作,每一个标签的EPCID编码都是唯一的[17]。阅读器是RFID的核心组件,能够为电子标签提供能量,并从标签的存储器中读取EPC编码以及其他的用户储存数据。阅读器发出的电磁波,在标签处返回,并携带标签的信息。阅读器包含:处理芯片和天线两个模块。用户可以通过更换不同性能的天线来扩大增强读取范围。服务器是RFID系统中的逻辑模块,负责从阅读器收集信息并处理和挖掘。并向上级应用提供数据支撑。虽然近些年RFID技术才逐渐被人知晓,但RFID技术其实并不是一项新颖的技术,已经有很长的发展历程。第一代RFID系统的甚至可以追溯到二战时期。在1935年的苏格兰物理学家Watson-Watt发现,飞机在进行不同的动作指令时,雷达收到的波就会改变,利用该特性可以识别我方飞机,这项技术便是最早的RFID系统原型。1948年科学家和发明家HarryStockman发表了里程碑式论文“CommunicationbyMeansofReflectedPower”,提出了反射能量进行通信的想法,这篇论文奠定了RFID技术的理论基础。在之后的25年里,RFID技术得到广泛的研究与应用,在图书馆、商场、道路收费(ETC)等多方面生活领域得到推广与应用。在二十世纪九十年代初,得到两大商业巨头IBM和沃尔玛的关注。2003年,EPCglobal的成立,促使RFID信息的标准化,极大地推动了RFID技术的发展。然而由于技术原因与专利原因,RFID标签成本始终较高,难以推广。但在2010年后,RFID成本大幅度下降,RFID在全球普及的趋势已不可阻挡。RFID不断渗透入我们的生活中,可以说我们的生活已经离不开RFID。2.4技术介绍2.4.1R200硬件介绍超高频模块R200高度集成了UHF读写器芯片,是一款的远距离读写模块,主要适用于处理读距离在0-30m以内的应用。该读写模块具有功耗低、尺寸小、距离远的特征,是进行低成本RFID系统开发的优先选择方案之一。。模块采用多标签防冲突算法架构,支持符合EPCglobalUHFClass1Gen2/ISO18000-6C协议的标签,用户通过其接口上的TTL管脚即可与自己的设备进行串口通信、匹配不同增益不同接口的超高频天线,实现不同需求的读卡距离。2.4.2软件技术介绍软件系统开发分为两个部分:RFID读取器以及相搭配的智能管理系统。读取器采用c#进行系统开发,引进RFID指令包:RFID_Reader_Cmds与RFID_Reader_Com,通过cp210x串行接口驱动与RFID读写模块信息交互。C#读写器实现了RFID标签的数据提取,能够实现多标签读取与单标签数据交互。多标签读取能够显示所有范围内读取到的标签,并能够导出excel数据表格;也可以选择单标签读取,此时能够进行数据修改,主要是标签的EPC码存储的信息,也可进行灭活处理。智能管理系统选择的是数据库为MYSQL,java作为系统开发语言,通过swing技术进行Gui设计。以MVC框架模式为系统开发模式。MVC中:1.M指的是model模型,表示业务规则。在MVC的中主要充当数据的处理的角色,定义数据库中各个表数据类,且在表数据类的基础上设计DAO(DataAccessObject,数据访问接口),在模型model中,会进行最多的处理任务,且每个模型总的接口返回的数据是与数据格式无关的,也因为这个特性,一个模型可以向多个视图提供数据服务,减少系统开发的代码量,有效地减少了代码重复性。2.V指的是view视图,是用户看到的界面,并且能够与用户进行交互,也就是用户界面。在这次智能仓储系统中则是用swing技术进行GUI设计的用户界面,是软件客户端界面。在view视图中,并不会涉及数据处理操作,而是进行一种数据输出且允许用户进行操作。3.C即controller控制器便是响应用户的各种请求进行交互,当控制器接收到了用户的输入时,便会调用模型与视图去完成用户的请求。和视图一样,控制器并不会对数据进行处理,只会产生接受请求和决定调用两个操作。在智能管理系统中,将所有功能实现代码分为4个部分:数据模型、服务类、工具类以及视图。有部分控制器在写在视图中,响应用户请求。

第3章系统总体设计3.1系统需求分析基于RFID的智能仓储管理系统主要体现三个功能:出库、入库与查看仓库。为实现这三个功能需要一些功能作为基础:标签读取与标签数据修改。同样在实现必要功能时,一些面向用户的基础功能也是必要的:用户登录、管理员管理、标签数据查看、订单查看等等。在功能实现时要注意它们的先后完成顺序,不然会增加功能实现难度。通过对系统功能分析,设计功能分析表,将主要功能以功能名称、功能介绍、优先级与前置功能四个方面展现出来表3-1功能分析表功能名称功能介绍优先级前置功能1.读取器界面设计(c#)读取器用户界面T0-2.标签读取(c#)实现对RFID读取模块传输的标签数据提取T073.读取数据展示(c#)对提取数据进行展示T124.标签数据写入(c#)对标签EPC码修改,输入有效信息T025.读取数据提取Excel(c#)将扫描的标签输出到excelT11、3、46.读取数据清除(c#)将读取的标签信息表清除T337.串口连接(c#)连接RFID模块T0-8.界面设计(java)智能管理系统界面T0-9.登录(java)用户登录,可区别管理员与普通用户T18续表功能名称功能介绍优先级前置功能10.用户管理(java)管理员对用户管理,可修改用户权限T2911.入库管理(java)可取出读取的excel表中标签有效信息,并入库更新数据库T0512.出库管理(java)可取出读取的excel表中标签有效信息,并出库更新数据库T0513.商品展示(java)显示所有商品id名称价格T4914.查看具体信息(java)对扫描的单个标签读取,并查看其货物信息T3915.看出具体信息二维码(java)在查看具体信息是=时,能够生产二维码T41416.查看订单(java)将订单表信息处理显示T5917.订单配货(java)对订单进行配货T51618.查看仓库(java)对仓库表信息处理显示T5919.仓库查询(java)通过仓库名对仓库库存查询T518以上便是对整个系统的功能分析与总结,通过将优先级与前值功能相结合起来,规划系统功能实现的先后顺序。3.2系统结构图已经对系统功能需求有所了解,那对于系统的结构也有了初步的认知,系统总共分为两个部分:RFID读取器与智能仓储管理,两部分程序共同实现完整的系统功能。C#开发的系统较为简单,主要是对RFID读取并进行数据处理的操作,在功能模块上较少:图3-1RFID读取器结构图Java开发的系统主要面向用户和管理员,也就是企业的实际工作人员。除了必要的功能以外,还需要基础的管理功能和数据可视化,方便仓储管理:图3-2仓储管理系统结构图3.3数据库设计本系统使用的是MySQL数据库,利用工具NavicatforMySQL进行数据库设计。对于数据库表主要分为是四个方面:用户、订单、产品、仓库、批次,共使用9张数据库表:batch(批次表)、goods(产品表)、od(订单表)、og(订单内容表)、op(订单-提单交汇表)、product(产品信息表)、pu(提单表),user(用户表)、wh(仓库表)。表3-2Batch批次表:名类型描述IsNullbatch_idInt(11)IdNbatch_goodsIdInt(11)产品idYbatch_numberInt(11)数量Nbatch_datedatetime日期Nbatch_restInt(11)剩余Y表3-3goods产品表名类型描述IsNullGoods_idInt(11)IdNGoods_nameVarchar(40)商品名NGoods_priceDouble价格Y表3-4od订单表名类型描述IsNullOd_idInt(11)IdNOd_datedatetime日期NOd_statusInt(11)状态N对于od_status数值,如果是0则表示未完成,如果是1则表示已经完成订单。表3-5op订单-提单交汇表名类型描述IsNullOp_idInt(11)IdNOp_orderIdInt(11)订单IDYOp_puIdInt(11)提单IDY表3-6og订单内容表名类型描述IsNullOg_idInt(11)IDNOg_orderIdInt(11)订单IDYOg_goodsIdInt(11)产品IDYOg_numberInt(11)数量Y表3-7product产品信息表名类型描述IsNullProduct_idInt(11)IDNProduct_batchIdInt(11)批次IDYProduct_whIdInt(11)仓库IDYProduct_statusInt(11)状态YProduct_puIdInt(11)提单IDYProduct_lrestInt(11)仓库剩余YProduct_locationVarchar(80)位置YProduct是最为关键的一张表,集合了另外三张表,是在系统开发中,主要功能依赖的数据表。其中product_status当为0已经出库,当为1则已入库。表3-8pu提单表名类型描述IsNullPu_idInt(11)IDNPu_dateDatetime日期YPu_vanVarchar(40)车辆Y表3-9user用户表名类型描述IsNullUser_idInt(11)IDNUser_nameVarchar(40)姓名NUser_emailVarchar(40)邮箱YUser_passwordVarchar(40)密码NUser_permissionVarchar(40)权限NUser_typeInt(11)用户类型N对于user_permission用户权限主要有6个部分:权限管理、批次录入、货物查看、仓储管理、订单管理、仓库库存。User_type数据当为0则为管理员、当为1则为普通用户。只有管理员有权限对其他用户进行权限管理。表3.10wh仓库表名类型描述IsNullWh_idInt(11)IDNWh_nameVarchar(40)名字YWh_locationVarchar(40)地点Y这九张数据表通过关键字相互关联,通过sql语句对其进行增删查改完成对系统的数据支持。在开发过程中,原先表的数量较少,对数据了解与实践不充分,在后续的系统开发中,出现了表无法满足对数据记录的要求,同时也会出现一定的数据冗余。于是对数据库进行重新设计,添加的几张表解决的遇到的问题。同时也会在表内添加字段,以实现新的功能。通过数据关系图,能更好的观察表与表之间的关联:图3-3数据表关系图外键的建立:表3-11Batch表外键字段连接表连接表字段Batch_goodsIdGoods产品表Goods_id表3-12og表外键字段连接表连接表字段Og_orderIdOd订单表Order_idOg_goodsIdGoods产品表Goods_id表3-13op表外键字段连接表连接表字段Op_orderIdOd订单表Order_idOp_puIdPu提单表Pu_id表3-14od表外键字段连接表连接表字段Od_userIdUser用户表User_id表3-15product表外键字段连接表连接表字段Product_batchIdBatch批次表Batch_idProduct_whIdWh仓库表Wh_idProduct_puIdPu提单表Pu_id在完成数据库的基础上,在接下来便可以进行系统各个模块的详细设计。通过表3-1功能分析表,开始对各个功能进行规划,依次实现。3.4系统设计与折衷这部分主要讲述从选题到实物验收以来,对系统设计与代码设计的总体规划过程。正如威斯康星州大学的RoyCarlson说过“开发的越早,程序花费你的时间越长”。作为一名软件工程的合格学生,对这句的都表示由衷的认可。软件项目的开发不是平时的作业任务,是有需求和系统构架的。也因此,我们花了大量时间学习了软件项目管理,尤其是需求分析与功能分析。在选题到实物验收,这大约五个月的时间里,前期的准备要远远超过真正开始系统开发的时间。盲目的进行着手开发,也只会增加后期调试的负担。时常浏览编程交流网站,甚至会看到反讽的话“数周的编程会省掉你几个小时的计划时间”,这些都在告知每次开发前都一定要做好足够的计划安排。本次毕业设计中,前期的准备主要包括:需求分析、功能设计、数据库设计还有技术准备着四个方面。由于对于硬件芯片相关了解并不多,我花了一段时间进行硬件技术学习,主要是对指令的学习,加深了解。我购买了UHF-R200-C50RFID读写模块+天线H47标签,系统也拥有cp210x串行接口驱动,初次尝试连接电脑,可以成功连接,这样不用着重于硬件的选择与购买。与读写模块相配的c#指令包,我只需学习其中类与方法,便能开发RFID读写器。在完成RFID读写器后,我着重于智能仓储的开发,且将java作为系统开发语言。Java近些年发展迅速,我对其也了解较多。在这时,我没有准备,直接进行系统开发,完成一个智能仓储管理的软件,为后期的功能完善埋下了不好的种子。虽然RFID读取器与智能仓储管理两个软件都已经开发完成,也都进行过测试,但还需要重要的一环,将两个不同语言开发的系统进行数据交换。起初,在学习python脚本来完成这一功能时,成功完成部分功能,但没有完全熟悉python前,我急于完成毕设,误认为它能够完成两个软件的对接。在接下来的一周里,我的所学发现无法是实现两个软件的数据交流。我在接下来的几周里,急于寻找方法,起初总结出三种方法:1.导入jni4net这是一种调用c#类包的方法,主要通过建立一个文件夹导入jni4net将jni4netlib目录中的jni4net.n.w32.v20-.dll、jni4net.j-.jar、jni4net.n.w32.v40-.dll、jni4net.n.w64.v20-.dll、jni4net.n.w64.v40-.dll、jni4net.n-.dll拷贝进来,同时也把自己需要导入的c#类.dll文件拷贝到该文件夹下,完成在java中调用c#,但之中方法无法满足调用整个c#系统,调用后RFID读取器的功能变得无法实现。于是这种方法很快被我放弃。2.java与c#通信(socket)(1)socket概念Socket支持TCP/IP协议,是网络通信中基本操作单元。在网络通讯过程中可理解为端点,其包含的五种信息:1.连接使用的协议、2.本地主机的IP地址、3.本地进程的协议端口、4.外来主机的IP、5.外来进程的协议端口,是进行网络通信的比要信息。应用层开始数据通信,在通过传输层时,TCP经常会遇到一类情况:会有多个应用程序产生多个TCP连接来传输数据时,会需要同一个TCP协议端口。为了应对这一情况,计算机操作系统会为TCP/IP协议与应用程序交互提供了socket接口,这样便能区别不同应用程序的进程与连接。通过socket接口便能实现数据传输的并发服务。(2)建立socket连接建立socket连接往往不止一对socket,其中一个运行在客户端,称为clientSocket,另一个运行在服务器端,称为serverSocket。这个很好理解,在RFID读取器与智能仓储管理系统中,便是将RFID作为服务器端,把智能仓储管理系统作为客户端。socket之间的连接过程可以分为三个步骤:服务器监听客户端,客户端请求服务端以及客户端与服务端连接确认。服务器监听客户端:服务器端SOCKET当空闲时会处于等待连接的状态,而不会寻找客户端socket。会一直实时进行监控网络状态,直到有客户端的连接请求。客户端请求服务端:客户端是通信过程的主动方,通过发送连接请求,并在请求对需要服务器进行描述,包含服务器的地址与端口号。并在请求后等待空闲的服务器进行响应。客户端与服务端连接确认:等待连接的服务器端中socket监听到了客户端socket发出的连接请求,就会响应客户端的请求,通过建立一个线程发出服务器端socket的描述。当客户端接收到了服务器端的描述,双方正式建立连接。但服务器端不会退出监听状态,而是会继续监听其他客户端SOCKET的连接请求。此方法可以成功从RFID读取器中提取到有效标签数据进入智能仓储管理系统,所以我将其暂时保留。3.通过导出excel数据表在前期准备中,我主要学习了python的部分实际运用,虽然无法满足系统的需求,但可以转变思路,通过已学的部分达成所需要的效果。可以通过将标签读取的数据导出一个excel表格,在通过python脚本读取所需要的信息并进行一定的加工返回到java系统中。在Java中调用python脚本较为简单,在网络中教程很多,很快便能够学会应用。所需要的是如何在c#中将数据导出excel。在查阅资料后,了解到微软的一个官方包可以满足系统的需求:erop.excel.dll[15]。将其引用到读取器中,调用其中的方法便成功完成excel的导出。相对于方法2与方法3,我选择了导出excel的方法,两个方法都是数据导出,但方法2需要操作繁杂,等待周期长,而方法3确能够满足开题中的系统功能目标:离线出库/入库,只需要临时导出excel表,等待拥有网络条件时,再更新表中的内容。

第4章系统详细设计4.1功能流程设计4.1.1RFID读取器对于RFID读取器整个程序,可以总体规划是三个主要功能模块:RFID读取;RFID修改,导出excel表。1.RFID读取其主要操作步骤为:连接外接设备而》连接串口》扫描电子标签》读取EPC码图4-1读取流程图图4-2读取用例图2.RFID修改主要步骤:连接串口》单标签读取》选取标签》选取标签EPC码地址》输入EPC码》设置成功图4-3EPC码修改流程图图4-4EPC码修改用例图3.导出excel表其主要步骤:连接串口》标签读取》导出excel》设置excel路径与excel名称》导出成功图4-5导出excel流程图图4-6导出excel用例图4.1.2仓储管理系统对于仓储管理系统,虽然功能校多,但可以根据功能分类,总体规划出7个主要功能:用户登录、用户管理、出库管理、入库管理、订单管理、查看仓库、查看产品1.用户登入主要步骤:输入用户名密码》密码正确》系统判断是用户还是管理员》登入图4-7用户登入流程图2.用户管理主要步骤:登入》身份为管理员》点击用户管理界面》选择用户》开始修改》结束修改图4-8用户管理流程图图4-9用户管理用例图3.出库管理主要步骤:登入》出库/入库管理界面》选择出库》开始扫描》选择扫描结果》完成出库图4-10出库管理流程图图4-11出库管理用例图4.入库管理主要步骤:登入》出库/入库管理界面》选择入库》开始扫描》显示扫描结果》选择入库仓库》完成入库图4-12入库管理流程图图4-13入库管理用例图5.订单管理主要步骤:登入》订单管理界面》查看订单》选择订单》选择库存》完成配送图4-14订单管理流程图图4-15订单管理用例图6.查看仓库主要步骤:登入》仓库管理界面》显示仓库库存》输入仓库号》显示指定仓库图4-16仓库管理流程图图4-17仓库管理用例图7.查看产品主要步骤:登入》商品信息》查看产品基础信息;登入》查看具体信息》开始扫描》显示具体信息与二维码》手机扫描二维码。图4-18查看产品图4-19查看产品用例图通过流程图与用例图,更加直观地反映系统的结构与各个功能模块设计流程。为接下来的代码设计提供设计思路与规划,可以一定程度上避免系统bug。4.2代码设计4.2.1RFID读取器RFID读取器只需要完成对电子标签的读取功能,能够向智能仓储管理系统传入有效的标签EPC码便实现的起初对其的规划。在功能上比较简易。1.引进的包总共引进8个包,其中有五个是系统包:外引进包:erop.excel.dll、RFID_Reader_Cmds、RFID_Reader_Com系统包:System、System.Date、System.Drawing、System.Windows.Forms、System.XML2.主要代码文件(1)Form该代码文件实现了读取器的主要功能。该代码文件分为前端与后端。前端负责GUI设计,提供软件界面布局、控件还有数据显示。后端负责逻辑显示以及功能实现。(2)WindowsMsg定义一个WindowsMsg类,实现了用户通过鼠标对界面的指令操作。(3)Program是整个系统的入口,放有主函数Main()。4.2.2智能仓储管理系统这是主要的软件系统,直接面向用户,也实现了大部分仓储管理的功能规划。采用MVC的系统开发框架模式,代码文件主要分为四类:model(数据模型类)、service(服务类)、util(工具类)还有view(视图)。在服务类中含有python脚本用于提取RFID传输数据。1.引用的jar包由于连接MySQL数据库,因此需要引进必要的MySQL连接包:mysql-connect-java-8.0.jar。还有网络包google.zxing,实现了二维码的生成。其他皆为系统包2.主要代码文件(1)model(数据模型类)在这个文件夹里,主要是对数据库中的数据处理,定义相关数据接口,返回有效实现功能的数据。其中代码文件分三类:第一类class文件:Batch、Goods、Order、PickUp、Product、Stock、User、Warehouse。他们对应相应的数据库表,建立数据库表类,只提供get-set方法。第二类interface文件:IBatchDAO、IGoodsDAO、IOrderDAO、IPickUpDAO、IProductDAO、IStockDAO、IUserDAO、IWarehouseDAO。定义了相应数据列表与方法,用于被实现类继承。第三类class文件:BatchDAOImpI、GoodsDAOImpI、OrderDAOImpI、PickUpDAOImpI、ProductDAOImpI、StockDAOImpI、UserDAOImpI、WarehouseDAOImpI。主要继承前两类,并实现对应接口文件的方法,该类也是被view中调用的文件。(2)service(服务类)该类有两种文件,python脚本(Read.py与Write.py)与服务类实现class文件(service.java)。python脚本通过读取从RFID读取器中获取的excel文件,提取EPC码列数据并加工输出。Service通过引用包java.io从终端获取python脚本读取的数据,定义方法返回有效数据。(3)util(工具类)工具类实现了商品具体信息的图片生成,还有相应的二维码生成,能用过扫描二维码读取货物的相关数据。该工具类主要定义方法被查看具体信息功能模块中被调用。(4)view(视图类)视图类中主要是数据展示与界面布局设计。通过swing方法进行GUI设计。视图类可分为四个主要操作:设计界面框架、定义容器、定义按钮、调用model、service、util中的方法返回的数据放入容器。

第5章系统测试5.1测试规划系统测试是软件开发中必不可少的重要部分,正如贝尔实验室的面向对象编程专家TomCargill所说“最初90%的开发工作将会用去你最初90%的开发时间。剩下的10%的测试量将会用去你另外一个90%的开发时间。”揭示了后期软件测试的重要性。在进行软件测试时,则需要编写对应的软件测试用例。在编写测试用例前,先要准备列出功能点,尽量细化功能点,然后再逐个补充成为用例;其次,在设计测试用例时,先不应该考虑其能否进行测试,而是要尽可能提高测试的覆盖全面性;最后,应该构思可能出现的使用场景,考虑异常情况[7]。利用功能测试完成对系统的测试。功能测试也可以称为黑盒测试,是软件测试的主要方法之一,是不考虑或不知道软件内部代码结构逻辑的情况下,通过软件说明书的功能介绍进行测试。功能测试的需要考虑的几个方面:功能的完整性;功能能否成功运行;系统界面的显示错误;预期输入与预期输出数据差异问题;数据库访问过多;系统性能检测;系统数据初始化、中断错误等[8]。5.2测试设计5.2.1单元测试1.RFID读取器表5-1标签扫描测试编号前置条件测试内容内容类型预期结果测试结果RTest1硬件连接成功扫描出标签数据标签读取成功读取成功RTest2硬件连接成功输入EPC码修改标签内容标签数据输入修改成功修改成功表5-2导出excel测试编号前置条件测试内容内容类型预期结果测试结果RTest3成功读取数据将数据输出excel输出excel获得excel成功RTest4-空表导出excel输出excel无excel成功2.智能仓储管理系统表5-3登入测试测试编号前置条件测试内容内容类型预期结果测试结果MTest5-输入正确用户名密码登入登入模块成功登入成功MTest6-输入错误用户名密码登入模块无法登入成功表5-4用户模块测试编号前置条件测试内容内容类型预期结果测试结果MTest7管理员身份修改用户权限用户模块成功修改成功MTest8非管理员身份普通用户无法查看修改用户模块无法查看成功表5-5出库/入库模块测试编号前置条件测试内容内容类型预期结果测试结果续表MTest9-出库与入库按钮出库入库模块出库入库不同界面成功MTest10入库扫描信息并入库出库入库模块入库成功成功MTest11出库选择出库扫描信息出库入库模块显示扫描信息成功MTest12出库选择信息出库出库入库模块成功出库成功表5.6产品信息模块测试编号前置条件测试内容内容类型预期结果测试结果MTest13-查看产品基础信息产品信息模块显示信息成功MTest14-标签扫描显示产品具体信息产品信息模块显示具体信息成功MTest15扫描成功显示具体信息二维码产品信息模块显示二维码成功MTest16扫描成功扫描二维码显示具体信息产品信息模块二维码信息准确成功表5.7订单管理模块测试编号前置条件测试内容内容类型预期结果测试结果MTest17-显示订单订单管理模块显示订单信息成功MTest18-选择订单点击配送显示库存订单管理模块显示库存成功续表MTest19MTest18配送订单订单管理模块完成订单配送成功表5.8仓库管理模块测试编号前置条件测试内容内容类型预期结果测试结果MTest20-查看仓库仓库管理模块显示信息成功MTest21-查看指定仓库仓库管理模块显示指定仓库信息成功5.2.2集成测试集成测试主要将RFID读取器与智能仓储管理系统数据传输时,将其连接部分进行测试。测试编号前置条件测试内容预期结果测试结果UTest22-多次导出excel表,包含不同数量的数据在仓储管理系统中读出不同结果成功UTest23-跟换EPC数据格式导出excel读取错误成功以上是最终的测试结果,但在测试过程中,总会发现大大小小的bug,有界面布局失效,也有代码逻辑错误等等。正如一句名言“一开始就怀疑是否能找出错误是制定不出测试计划的。”制定测试计划与测试用例,就是在系统交付前,找出系统的缺陷,找不出缺陷的测试是一次失败的测试。

第6章实物展示6.1RFID读取器1.RFID硬件设备图6-1硬件设备图6-2电子标签2.RFID读取器(1)RFID读取器界面:图6.3读取器界面(2)将电子标签放在RFID读取模块的天线边(0-80cm)可以读出所有标签的数据,其中EPC部分就是我们所需要的数据:图6.4读取标签显示(3)修改标签EPC数据,先选取某一标签,点击后其背景显示蓝色表示选中,再将访问区域更改为EPC码。此时需要注意,因为电子标签码中,PC码在前,EPC码在后,因此EPC码的数值区域是从第二的字符开始也就是起始地址为0002,再将数据填入数据框,点击“写”,会显示修改信息完成。图6-5修改界面(4)导出excel。当已经读取到数据时,点击导出excel,会显示如下画面:图6-6excel保存此时选择路径,输入excel名称,便得到excel表格,表格的内容如下:图6-7表格6.2智能仓储管理系统(1)运行智能仓储管理系统,显示如下登入界面:图6-8登入界面(2)输入管理员账户工号:1;密码:123456当密码与工号错误时:图6-9密码错误warning当工号与密码正确成功进入系统时:图6-10登入成功(3)进入用户管理界面,管理员可以管理其他非管理员账户,以下是所有非管理员账户信息:图6-11用户管理模块界面如果管理员需要对用户的信息进行修改,包括:姓名、邮箱已经用户权限。其中用户权限可以通过下方的6个功能模块权限按钮直观的进行权限修改。想要修改信息,点击某一用户再点击开始修改按钮进入信息修改模式。当没有选择用户时:图6-12warning选择用户当选择了其中编号为2,姓名为wwj的用户时,修改其权限,全部都取消,再点击结束修改按钮:图6-13权限修改可以看出wwj账户的权限全部取消。(4)商品信息查看:图6-14产品基础信息当要查看具体信息时,点击具体信息模块:图6-15产品具体信息界面点击开始扫描,便会读取获取到的标签EPC码信息,生成专属信息图以及二维码:图6-16产品具体信息图片展示扫描二维码可以看到该产品的具体信息,下面是手机扫描二维码后显示的数据:图6-17手机扫码图(5)出库/入库管理模块。以下是出库入库管理模块的基本界面:图6-19出库入库界面当需要进行入库处理时,在功能选择下拉框中,选择批量入库的字段,然后点击开始扫描按钮,当扫描后该产品已经入库成功了便会显示:图6-20入库物品已存在如果该货物没有存在仓库中,那么便可以进行入库处理,需要先输入准备进入那一个仓库,在输入框中输入id,再进行提交:图6-21入库处理图当选择批量出库时,点击开始扫描,得到出库货物信息,点击提交便完成出库。图6-22出库处理(6)订单管理模块点击订单管理模块,显示所有订单信息:图6-23订单界面当要对某一订单进行配送时,则需要点击某一订单,然后点击开始扫描按钮,会显示相关产品的所有库存,然后对库存的配货数量进行选择,最终完成配货:图6-24订单选择图6-25订单配送图6-26对配送仓库选择图6-27对订单配送仓库中的数量选择当配送数量满足订单需求后,可点击完成配送按钮,订单的状态显示则由0变为1,显示订单已完成:图6-28订单完成(7)仓库库存查看:图6-29仓库库存查看以上便是对整个系统的主要功能展示。每个数据展示都是装载在表容器之中。每30行数据为一页,可通过翻页按钮来进行查看。该系统面向企业内部,更加注重是功能的简介明了,易操作,因此并没有加入过多的操作特效与华丽的界面设计。

第7章开发总结与展望7.1开发总结RFID是一种非接触式自动识别的技术,主要通过无线电磁波进行数据传输。其作为物联网的关键技术之一,充当着物理世界与网络世界的桥梁。将物理时间的信息带入网络中标记、存储。因为RFID的多种优势,其在生活中的应用也会越来越多,规模也会越来越大[9]。RFID之所以在仓储中发展迅猛,更是因为RFID支持信息自动化核对,通过信息动态更新,为库存管理决策制定提供依据,从而满足现时代对仓储便捷高效率高信息化的要求。本系统采用三种开发语言:java、c#、python。数据库采用MySQL。运用多种开发工具与辅助工具完成毕业设计。开发了整个系统有两个部分,一部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论