毕业设计基于rfid的射频识别应用演示系统设计论文与实现基于cs架构的仓储管理系统.doc
-
资源ID:87909117
资源大小:533.50KB
全文页数:31页
- 资源格式: DOC
下载积分:10金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
毕业设计基于rfid的射频识别应用演示系统设计论文与实现基于cs架构的仓储管理系统.doc
基于RFID的射频识别应用演示系统设计与实现基于C/S架构的仓储管理系统基于RFID的射频识别应用演示系统设计与实现基于C/S架构的仓储管理系统周 侗 201371060139 13级物联网工程(1)班摘要近年来,随着计算机网络的普及和物联网技术的广泛应用,大多数企业的仓库管理数据资料已开始采用计算机数据系统管理,但数据还是采用先纸张记录、再手工输入计算机的方式进行采集和统计整理。这样不仅费时费力,而且由于人为的因素,数据录入速度慢、准确率低。RFID技术作为新一代自动识别技术在自动化、智能化仓储管理中得到了广泛的应用。基于RFID的仓储管理技术采用无线电技术实现对静止或移动的物体进行识别,以达到识别物体的身份、特征等信息的目的,并通过计算机无线通信网络把它们自动采集到中央信息系统,进而实现信息交换和共享,实现对物品的“透明”管理。本文详细介绍了“基于RFID的智能仓储管理演示系统”使用 SQL Server 2005设计实现了数据库的基本需求,采用visual studio 2008开发了C/S架构的可视化管理界面,对仓库管理的入库、出库、库存、盘点等各个作业环节的数据进行自动化数据采集,保证仓库管理各个环节数据输入的速度和准确性,还可对物品的批次、保质期等进行管理,有效提高了仓库管理的工作效率。关键词:RFID;数据库;自动化;智能化;仓储管理系统;目录摘要2目录3第一章 绪论51.1研究背景51.2研究课题意义5第二章 系统开发环境及基本思路62.1 系统开发环境62.1.1 Visual Studio 2008介绍62.1.2 SQL Server 2005介绍72.2 系统设计思路82.2.1 仓库管理演示系统的主要工作82.2.2 系统主要的工作流程8第三章 无线射频识别技术93.1 RFID 系统基本组成93.2 硬件组件103.2.1 阅读器103.2.2 天线103.2.3 高频段电子标签103.2.4 中间件113.3 元件清单11第四章 智能仓储管理演示系统设计114.1 系统需求分析114.2 系统功能模块详细流程124.2.1 入库业务流程124.2.2 出库业务流程134.2.3 盘点业务流程154.2.4 库存业务流程164.2.5 信息管理业务流程164.3 仓储管理系统整体流程164.3.1 系统总体功能模块图164.3.2 系统界面分析164.3.3 系统总体流程分析214.4 数据库设计分析244.4.1数据需求分析244.4.2 数据库逻辑设计244.4.3 数据库物理设计254.5 关键程序代码284.5.1 C#连接数据库的代码284.5.2 读取UID的核心代码28第五章 关键问题的解决305.1 串口开关控制305.2 串口通信设置305.3 读写器读卡时,防碰撞305.4 数据库表字段命名305.5 主键设置31第六章 总结316.1 需要讨论解决的问题316.2 本学期的学习总结316.3 对教师的教学建议32参考文献32第一章 绪论1.1研究背景 传统的企业仓储是以人工笔录或者使用条形码对仓库物品进行识别记录,随着市场经济的快速发展,销售产品种类多样化,更新速度快,加上承包仓库场地成本的提高,这种依靠笔录或者条形码对仓储产品进行管理的方式已经无法满足现实市场高速运转的需要,因此,建立一个能够快速识别及定位库存物品,物品存储量与仓库管理员三者紧密联合的智能仓储系统是市场发展的新需求。 目前,市场竞争日益激烈,提高生产效率,降低运营成本对整个企业的发展有十分重要的作用。智能仓储管理及库存精确定位在整个企业仓库的管理流程中起着十分重要的作用,若不能保证入库、出库、库存、盘点等各个作业环节数据的采集效率,将可能会给企业带来巨大的损失。这样不仅导致企业各项管理费用增加,而且还会使得客户服务质量很难得到保证,而最终影响到企业的市场竞争力。现有的仓储管理数据还是采用先纸张记录、再手工输入计算机的方式进行采集和统计整理。这样不仅费时费力,而且由于人为的因素,数据录入速度慢、准确率低。所以本文提出了全新的基于RFID的智能仓储管理系统来解决传统仓储管理中出现的问题。1.2研究课题意义传统的企业仓储相当部分数据的处理都是通过人工手工录入,这样不仅数据量十分庞大,劳动强度大,而且由于人为的因素,数据录入速度慢、准确率低,同样也失去了时代的意义。为了解决这些问题,人们就研究和发展了各种各样的自动识别技术,提高了系统信息的实时性和准确性。因为,物流过程比其他任何环节更接近于现实的"物",物流过程产生的数据比其他任何情况都要密集,数据量都要庞大。在计算机网络和物联网技术发展的今天,传统企业逐步走向信息化、智能化。仓库管理的自动化,大大提高了入库管理、出库管理和库存管理等各个作业环节数据的采集效率,可以节约不少管理开支,增加企业收入。仓库管理的操作自动化和信息的电子化,全面提高了仓库的管理水平。仓储管理系统在我国的应用还处于起步阶段。国内的大部分企业还停留在传统的人工管理仓库阶段或者条形码的使用阶段。传统的人工管理仓库既费时又费力,而且容易造成混乱,严重时会影响商城、企业的正常运作,造成恶劣的后果。条形码自出现以来就得到了人们的普遍关注,极大地提高了数据采集和信息处理的速度,提高了工作效率。随着经济的飞速发展,条形码的易复制,不妨污,不防潮等特点和人工写单据的繁琐性,易于造成损失,使的国内的仓储管理模式始终不能得到突破。为了跟上时代的步伐,加快仓储管理的自动化步伐,减轻企业员工的工作负担,提高仓库管理业务的处理效率,拥有适合自己的仓库管理系统已经变得十分必要。本文详细介绍的“基于RFID的智能仓储管理演示系统”是对各企业的仓储管理进行分析后设计的。并基于 SQL Server 2005数据库和Visual studio 2008开发环境开发了C/S架构的可视化管理界面,对仓库管理的基本入库、出库、库存、盘点等各个作业环节的数据进行自动化数据采集,保证仓库管理各个环节数据输入的速度和准确性,还可对物品的批次、保质期等进行管理,同时利用系统的库位管理功能,更可以及时掌握所有库存物资当前所在位置,有利于提高仓储管理的工作效率。第二章 系统开发环境及基本思路2.1 系统开发环境系统的开发环境采用Microsoft公司的可视化开发环境Visual studio 2008作为主要的开发工具。系统主要是用C#语言编写了基于C/S架构的可视化管理界面。数据库采用SQL Server 2005管理系统数据。2.1.1 Visual Studio 2008介绍Microsoft Visual Studio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,代号“Orcas”,是对Visual Studio 2005 一次全面的升级。使用Visual Studio 2008可以高效开发软件,设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了AJAX 1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。(1) VS 2008中对C#编译器做了显著的改进。a、函数式编程b、自动属性c、对象初始化器,集合初始化器 d、隐式本地变量(2)编译器性能改进 a、重新生成一个C#项目并运行一个后台编译器的速度提高到了原来的3倍,使用的内存却只有原来的1/3。b、在编辑器里滚动较大的 C# 文件的速度比原来快了一倍,键入新文本的速度是原来的1.5倍c、对C# 中庞大类型的智能感应响应时间提高了10倍2.1.2 SQL Server 2005介绍Microsoft SQL Server 2005 是一个数据库平台,SQL Server 2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。SQL Server2005特点(1).NET框架主机使用SQL Server2005,开发人员通过使用相似的语言,例如微软的Visual C#将能够创立数据库对象(2)增强的安全性SQL Server 2005中的新安全模式将用户和对象分开,允许对数据存取进行更大的控制。另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。(3)Transact-SQL的增强性能SQL Server 2005为开发可升级的数据库应用软件,提供了新的语言功能。这些增强的性能包括处理错误、递归查询功能、关系运算符和其他数据列排行功能,等等。(4)SQL服务中介SQL服务中介将为大型、营业范围内的应用软件,提供一个分布式的、异步应用框架。(5)报表服务利用SQL Server 2005,报表服务可以提供报表控制,可以通过Visual Studio 2005发行。(6)全文搜索功能的增强SQL Server 2005将支持丰富的全文应用软件。服务器的编目功能将得到增强,对编目的对象提供更大的灵活性。查询性能和可升级性将大幅得到改进,同时新的管理工具将为有关全文功能的运行,提供更深入的了解。2.2 系统设计思路2.2.1 仓库管理演示系统的主要工作(1)信息管理设计:完成系统用户的权限设置和显示用户信息(2)智能叉车设计:完成托盘的出入库和定位(3)入库系统设计:完成物品和托盘信息的对应和绑定(4)出库系统设计:完成托盘出库时对应出库货物的核对和显示产品的详细信息(5)盘点系统设计:完成对货物的质检和盘查2.2.2 系统主要的工作流程 a、货物入库工作流程 入库时,先通过网络系统将存货指令发到叉车车载系统,并获取货位信息,以便叉车按照指令要求存放到相应货位。a、录入入库单 b、入库指令生成c、货位自动分配d、智能叉车导航e、货物定位确认 f、货物扫码入库b、货物出库工作流程出库时,叉车接到出货指令,按指示到指定货位取货物,然后到相应货位读取RFID标签中货物编号并捕获货物信息,完成以托盘为单位的出库扫码,从而大大提高出库的工作效率。a、录入出库单b、出库指令生成c、获取货位信息d、智能叉车导航e、读取货物信息f、货物扫码出库c、货物盘点工作流程a、录入盘点单 b、盘点指令生成 c、获取货位信息d、盘点货位相应货物e、盘点数量确认第三章 无线射频识别技术3.1 RFID 系统基本组成基本的RFID系统主要有三部分组成-标签、阅读器、天线和应用系统软件组成,系统结构如图3-1所示 读写器 天线图3-1 RFID系统结构3.2 硬件组件3.2.1 阅读器 阅读器(Reader)又称读写器。阅读器主要负责与电子标签的双向通信,同时接收来自主机系统的控制指令。阅读器的频率决定了 RFID 系统工作的频段,其功率决定了射频识别的有效距离。阅读器根据使用的结构和技术的不同可以是读或读/写装置,它是 RFID 系统信息控制和处理中心。阅读器通常由射频接口、逻辑控制单元和天线三部分组成。图3-2 无线龙试验箱3.2.2 天线 天线是一种能将接收到的电磁波转换为电流信号,或者将电流信号转换成电磁波发射出去的装置。在 RFID 系统中,阅读器必须发射天线以形成电磁场,通过电子标签识别电磁领域通过能源。因此,阅读器天线所形成的电磁场范围即为阅读器的可读区域。3.2.3 高频段电子标签高频的RFID电子标签主要是由天线合成,通过腐蚀或者印刷的方式制作天线,与高频卡的区别在于,它的读写距离较远,性能稳定,读写速度快,信号反应灵敏;可设计任意规格尺寸卷标,满足用户不同需求;标签材质多样、质地柔软,可任意封装;可同时多个读取,具备防冲撞功能。国际标准有:ISO14443、ISO15693、ISO18000-3等。射频标签天线设计相对简单,标签一般制成标准卡片形状。3.2.4 中间件 中间件是一种独立的系统软件或服务程序。分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机、服务器的操作系统之上,管理计算机资源和网络通信。3.3 元件清单 元件名称元件数量元件功能RFID无线龙试验箱1读写HF ISO15693标签HF ISO15693标签若干RFID超高频标签USB 数据线1数据传输上位机1可视化控制第四章 智能仓储管理演示系统设计4.1 系统需求分析仓储管理系统作为企业的核心业务,基于RFID的仓储管理系统其综合性要求达到简明实用,以提高仓储管理的质量和效率为目的,应满足一下几个方面:(1) 建立一个能够快速识别及定位库存物品,物品存储量与仓库管理员三者紧密联合的智能仓储系统及市场的需求(2) 实现出入库、出库、库存、盘点等各个作业环节采集数据的自动化,提高采集效率是仓储管理的需求。加快入出库速度,增大仓库货物的吞吐量,保证物品的批次、保质期等进行有效管理,及时掌握所有库存货物当前所在位置。从而保障畅通的业务流程,是提高仓储管理的工作效率的基础。(3) 货物储存空间利用的最大化,劳动力和设备达到最大程度和最有效地利用,货物能够方便的存取,能够做到快速定位。确保高效的完成货物种类和数量上的统计和管理存储空间与货物对应关系是仓储管理中必不可少的环节。因此,我们设计了如下图4-1所示的仓储管理系统架构图图4-1 仓储管理系统架构图4.2 系统功能模块详细流程4.2.1 入库业务流程l 货物准备阶段入库管理部管理员通过仓储管理系统获取到货物要入库的指令及入库单,了解相关业务流程(如:入库时间,入库库位等),并给工作人员发送指令。l 货物入库阶段入库工作人员收到管理员所发的货物要入库的指令,将货物打包装到箱子里,然后将每个箱子中的货物信息写入箱子上的RFID的电子标签中。入库信息包括产品编号,批次号,货物名称,货物规格,货物数量,过期日期等。l 入库待检阶段在入库口,入库门口的固定式的 RFID 读写器读取货物电子标签中的信息,对比预入库信息和实际入库信息。如无误,系统自动分配空闲的库位,并把具体位置通过无线数据终端通知叉车司机;若出现错误,则由系统输出提示信息,并由相关业务部门的工作人员解决。l 货物入位阶段货物待检无误后,叉车司机收到指令,入库物品被叉车司机运到指定的货位,通过车载终端应用程序发出扫描指令后,控制车前固定式RFID阅读器读取货位标签信息,此时货位Id和产品信息会显示在车载终端上,若产品已经过待检阶段,确认无误后点击入库,货物信息和货位信息会绑定在一起送到数据库。同时反馈回入库信息及入库表。重复上述操作,直到货物全部入库。图4-2 入库业务流程图4.2.2 出库业务流程l 出库准备阶段出库管理部管理员通过仓储管理系统获取到要出库的指令及出库单,了解相关业务流程(如:出库时间,出库库位,出库货物等),并给工作人员发送指令。l 货物出库阶段叉车司机管理员所发的货物要出库的指令。通过车载终端下载出库单并获得出库信息及出库货位,叉车司机到指定货位,通过车载终端应用程序扫描货位标签,若货物出库数量大于入库数,系统会提示错误。若系统比对成功后,工作人员从库位上取出指定的货物。l 出库待检阶段在出库口,出库门口的固定式的 RFID 读写器读取货物电子标签中的信息,对比预出库信息和货物标签信息。若系统比对成功后。出库数量小于入库数量,系统自动更新货物数量,若货物全部出库,则系统将货位信息和货物信息解绑;若出现错误,则由系统输出提示信息,并由相关业务部门的工作人员解决。l 出库完成阶段出库信息待检无误后,确认出库操作和装车。并反馈会出库信息和出库表。重复以上操作,直到出库完毕。图4-3 出库业务流程图4.2.3 盘点业务流程l 盘点准备阶段盘点管理部管理员通过仓储管理系统获取到要盘点货物的指令及盘点单后,获取到相关的盘点信息(如:盘点时间,盘点库位,盘点货物等),并给工作人员发送指令。l 货物盘点阶段 相关工作人员根据管理员指令到指定的货位进行盘点货物。工作人员通过手持式读写器扫描货物标签,获取到货物标签信息。通过无线网络,RFID读写器将盘点数据送到信息系统,信息系统核对每个货位上的货物数量。同时确认货物是否过期,货物是否损坏等。l 盘点确认阶段盘点完成后,确认盘点操作,同时对货位货物数据进行更新。并反馈回盘点信息和盘点单。图4-4 盘点业务流程图4.2.4 库存业务流程库存管理主要是完成盘点作业、出库作业,同时还可以进行库存调整管理、库存浏览、货物库存分布查询和储位货物分析等。4.2.5 信息管理业务流程信息管理主要是完成用户和供货商的信息注册,删除,修改等操作,同时可以查看每个员工的信息以及对每个员工的权限设置。4.3 仓储管理系统整体流程4.3.1 系统总体功能模块图 本系统共分为4个部门,信息管理部、出库管理部、入库管理部、盘点管理部。图4-5 系统总体功能模块图4.3.2 系统界面分析根据列出的各部分功能模块图,我们设计了如下所示的界面:(1) 登录界面(2) 系统首页(3) 信息管理(4) 入库管理(5) 出库管理(6) 盘点管理(7) 库存查询4.3.3 系统总体流程分析 由于本系统操作流程过多,而且大多都是重复的上面已给出了一部分,所以只给了关键的流程图。(1)登录流程图4-6 系统登录流程模块图用户打开系统,首先看到登录界面,输入用户工号,用户密码,点击登录按钮。系统比对工号和密码。若用户工号和密码比对成功后系统自动跳转到主界面,系统自动匹配用户的权限和部门,进入相应的操作界面。若登录失败,则会弹出找回密码的对话框,若用户只是填错了工号或是密码,关闭找回密码的对话框,重新填写正确的信息登录。若用户忘记密码则需要填写其他信息找回密码后重新登录。(2) 信息管理流程图4-7 系统信息管理流程图 信息管理部主要负责用户和供货商的信息管理。当有员工信息变动的时候,管理员拿到用户的变更信息申请表,管理员把变动信息的用户工号和变动信息发给员工,员工根据信息进行变更。(3)入库处理流程图4-8 系统入库处理流程图入库管理部主要负责货物信息的核对,填写和入库等环节。当有货物要入库时,管理员通过仓库管理系统获取到入库单,然后让员工进行入库操作。入库成功后反馈会入库信息和入表单,入库失败则找相关负责人调解。(4)出库处理流程图4-9 系统出库处理流程图出库管理部主要负责货物出库信息的核对,填写和出库,查看出库记录等环节。当有货物要出库时,管理员通过仓库管理系统获取到出库单,然后让员工进行出库操作。出库成功后反馈会出院库和出库表,出库失败则找相关负责人调解。(5)盘点处理流程图4-9 系统盘点处理流程图4.4 数据库设计分析4.4.1数据需求分析通过上网查阅相关资料和实地调查,对仓储管理中每个部门的职责,主要业务活动以及工作流程有了一定的了解。对每个职能部门的业务,包括每个部门使用那些数据、这数据的来源、数据的格式、处理之后数据的格式及流向等。从而确定数据库中存储那些数据。系统通过供应商信息平台发送的货物订单,确定入库货物的相关信息。由检验人员进行货物检测,以及仓库管理人员进行信息核对工作,以及对没有标签的货物设置条码,相关的物品进行扫码产生入库单,然后货物入库操作。仓储管理系统根据入库单信息,根据仓库当前存货情况,为即将入库的货物指派货位完成上架操作。同时完成入库表的填写,所有的相关信息都由仓储管理系统写入到数据库中,通过对数据库的操作保证信息的准确性。在收到客户的订货信息后,仓储管理系统根据从数据库里获取的货物货位信息,一方面由仓储管理系统通过对数据库的操作进行货物存储信息的核对与检查,若存货满足要求,则根据相应的出库单,仓库工作人员进行出库操作,并准备包装或者配送等工作。另一方面利用此信息快速完成货物下架操作。完成各个操作之后进行出库核对并填写完成入库表并记录历史。4.4.2 数据库逻辑设计数据库逻辑结构设计是在概念结构设计的基础上,按照一定原则将概念模式的E-R图转换成具体的数据库管理系统支持的逻辑结构。数据库逻辑设计决定了数据库及其应用的整体性能,调优性能。如果数据库逻辑设计不好,则所有调优方法对于提高数据库性能的效果都是有限的。E-R图转换成关系模式用户信息表(用户ID、用户姓名、用户电话、用户邮编、用户性别、用户部门、用户密码、权限类型)供货商信息表(供货商ID、供货商名称、所供货物、供货商电话、供货商邮箱)入库信息表(货物UID、货物名称、货物规格、入库批次、入库数量、入库时间、入库单价、过期日期、供货商名称、货位标签、执行状态)出库信息表(货物UID、货物名称、货物规格、出库数量、出库时间、出库价格、货位编号、执行状态)盘点信息表(盘点人员、货物UID、货物名称、货物规格、货物数量、盘点时间、货位编号、损坏数量、过期数量)货物信息表(货物UID、货物名称、货物规格、货物数量、货物价格)库存信息表(货物UID、货物名称、货物数量、货物规格、库存批次、货物单价、货位编号、供货商名称、在库状态)仓储管理系统表清单表 名表 用 途用户信息表记录仓库员工的资料信息供货商信息表记录供货商的资料信息入库信息表入库操作货物标签的记录出库信息表对货物出库操作的记录盘点信息表对货物盘点操作的记录货物信息表记录仓库货物的标签信息库存信息表记录仓库货物流动的记录4.4.3 数据库物理设计 数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,根据逻辑设计出的逻辑模式、仓储管理系统的特点和处理的要求,进行物理存储安排,建立索引,形成数据库内模式,为逻辑数据结构选取一个最合适应用环境的物理结构。数据库名:13IOT仓储管理数据库表结构如下:UserInfo 用户信息表数据库字段名称字段名称数据类型允许为空说明UserId用户IDnvarchar(50)N主键UserName用户姓名nvarchar(50)NUserPhone用户电话nvarchar(50)NUserEmail用户邮编nvarchar(50)YUserSex用户性别nvarchar(50)NUserDepartmet用户部门nvarchar(50)NUserPassword用户密码nvarchar(50)NAdministratorType权限类型nvarchar(50)NSupplierInfo 供货商信息表数据库字段名称字段名称数据类型允许为空说明SupplierId供货商IDnvarchar(50)N主键SupplierName供货商名称nvarchar(50)NSuppliedGoods所供货物nvarchar(50)YSupplierPhone供货商电话nvarchar(50)NSupplierEmail供货商邮箱nvarchar(50)YStorageInfo 入库信息表 数据库字段名称字段名称数据类型允许为空说明GoodsUID货物UIDnvarchar(50)N主键GoodsName货物名称nvarchar(50)NGoodsNorms货物规格nvarchar(50)YGoods_AllocationId货位标签nvarchar(50)NOverdueDate过期日期datetimeNStorageBatch入库批次nvarchar(50)NStorageQuantity入库数量nvarchar(50)NStorageTime入库时间datetimeNStoragePrice入库单价moneyNSuperlierName供货商名称nvarchar(50)NStorageState执行状态nvarchar(50)NDeliveryInfo 出库信息表数据库字段名称字段名称数据类型允许为空说明GoodsUID货物UIDnvarchar(50)NGoodsName货物名称nvarchar(50)NGoodsNorms货物规格nvarchar(50)YDeliveryQuantity出库数量nvarchar(50)NDeliveryTime出库时间datetimeNDeliveryPrice出库价格moneyNGoods_AllocationId货位编号nvarchar(50)NStockingState执行状态nvarchar(50)NCheckingInfo 盘点信息表数据库字段名称字段名称数据类型允许为空说明GoodsUID货物UIDnvarchar(50)N主键GoodsName货物名称nvarchar(50)NGoodsNorms货物规格nvarchar(50)YGoodsQuantity货物数量nvarchar(50)NCheckTime盘点时间datetimeNCheckingStaff盘点人员nvarchar(50)NGoods_AllocationId货位编号nvarchar(50)NDamageQuantity损坏数量nvarchar(50)YOverdueQuantity过期数量nvarchar(50)YGoodsInfo 货物信息表数据库字段名称字段名称数据类型允许为空说明GoodsUID货物UIDnvarchar(50)N主键GoodsName货物名称nvarchar(50)NGoodsNorms货物规格nvarchar(50)YGoodsQuantity货物数量nvarchar(50)NGoodsPrice货物价格moneyNStockingInfo 库存信息表数据库字段名称字段名称数据类型允许为空说明StorageBatch入库批次nvarchar(50)YStoragePrice入库单价moneyNGoodsUID货物UIDnvarchar(50)NGoodsName货物名称nvarchar(50)NGoodsQuantity货物数量nvarchar(50)NGoodsNorms货物规格nvarchar(50)NGoods_AllocationId货位编号nvarchar(50)NSupplierName供货商名称nvarchar(50)YStockingState在库状态nvarchar(50)N4.5 关键程序代码4.5.1 C#连接数据库的代码private string connString = "Server=210.26.96.51; DATABASE=13IOT仓储管理; UID=sa; PWD = 95069506"SqlConnection conn = new SqlConnection(connString); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = new SqlCommand(sql, conn);conn.Open();4.5.2 读取UID的核心代码 try serialPort1.PortName = "COM4" /选择端口号 serialPort1.BaudRate = 115200; /设置波特率 serialPort1.Open(); /打开串口 catch (Exception ex) MessageBox.Show(ex.Message); return; textGoodsUID.Text = "" if (serialPort1.IsOpen) string data = " " string data2 = "" try serialPort1.WriteLine("010B000304140401000000"); string data1 = serialPort1.ReadLine(); Thread.Sleep(800); /设置读卡时间 serialPort1.WriteLine("010B000304140401000000"); int i; for (i = 0; i < 15; i+) data = serialPort1.ReadLine(); /将读到的数赋值给data if (data.Length = 22) /判断data长度是否等于22 data2 = data; catch (Exception ex) MessageBox.Show(ex.Message); MessageBox.Show("卡号获取失败!", "提示框"); return; finally if (data2.Length >= 16) string data_tmp = data2.Substring(1, 16); /截取从1开始的16个字符; char a = new char20; a = data_tmp.ToCharArray(); /定义一个字符型数组 textGoodsUID.Text = "" int i; for (i = 15; i >= 0; i -= 2) /处理UID的顺序 textGoodsUID.Text += ai - 1.ToString(); textGoodsUID.Text += ai.ToString(); else MessageBox.Show("端口未打开!", "提示框"); serialPort1.Close(); /关闭串口第五章 关键问题的解决 5.1 串口开关控制问题描述:由于端口通信过程中需要将端口打开或者关闭,进而会导致端口未能打开或者未能及时关闭。解决方法:目前是在读卡过程中设置串口打开或者关闭。5.2 串口通信设置问题描述:由