新闻中心

如何实现RFID卷烟仓库系统数字化管理

如何实现RFID卷烟仓库系统数字化管理

发布日期:2020-08-24 09:53:39 作者:Ling 点击:12034

     在前面的系统分析与设计基础之上,本节对基于RFID的数字化卷烟仓库管理系统进行了部分模块的开发工作。下面将详细阐述数字化卷烟仓库管理系统中的服务器消息处理子系统、出库管理模块和叉车电子货位导航系统三个部分的开发。

1、系统开发工具
     本系统采用Java开发平台和Eclipse开发工具中提供的RCP框架设计,而数据库采用SQL Server 2005。
     Java编程语言是一个简单的、面向对象、分布式、健壮、安全与系统无关、可移植高性能、多线程和动态的语言。Java的跨平台性使得开发出的基于RFID的数字化卷烟仓库管理系统可以在不同的系统上使用,这样在以后可以方便地进行系统的扩展和二次开发。

     Eclipse是IBM公司开发的一款强大的Java开发工具。它倡导插件开发RCP(Rich Client Platform)的设计理念、采用客户端平台的思想,是基于ECLIPSE插件开发的一种应用。通过RCP可以快速构建应用程序,提高系统的稳定性。
     SQL Server 2005是运行于Windows操作系统的,面向分布式客户机/服务器结构的关系型数据库管理系统,是新一代电子商务、数据仓库和数据库解决方案。SQL Server 2005适合本系统的应用需求。
1.1、服务器消息处理子系统的实现
        服务器消息处理子系统采用Java网络编程方式来实现和客户端的交互,系统的整个通信过程为:
(1)客户端(主控机、叉车)向服务器发送请求,按照TCP协议连接到服务器上; 

(2)主控机客户端通过TCP协议向服务器端发送请求和指令;
(3)叉车客户端通过TCP协议向服务器端发送请求,查询指令;
(4)叉车客户端通过TCP协议向服务器端发送指令状态信息;
(5)服务器接收到叉车客户端传来的指令状态信息后,更改服务器上储存指令的状态,然后以组播的方式向各个客户端广播指令状态信息;
(6)主控机客户端和叉车客户端接收到组播后,更新本机界面上的状态。
       综上所述,服务器消息处理子系统具有客户端登录验证和消息储存转发两项基本功能。下面将分别实现这两项功能。

1.客户端登录验证功能

       服务器消息处理子系统客户端登录验证功能实现的界面,可以看见当前的一个IP为192.168.1.13的主控机正登录进来。
服务器消息处理子系统客户端登录验证功能实现的界面
客户端登录验证功能的代码如下:

 

    在上面的代码中,线程thread用于监听客户端的连接。当客户端连接服务器时,线程thread监听到请求后,验证登录客户端的用户名和密码,按照TCP协议建立连接线程talk用于客户端和服务器端的交互。线程talk在客户端和服务器建立TCP后启动,建立数据的输入和输出流,并和客户端进行一对一的TCP交互。

2.消息储存转发功能
   服务器消息处理子系统的消息储存转发功能有两种工作方式:当叉车发送查询请求时,将储存的客户端发来的指令发送给叉车;对叉车发来的指令状态信息或LED显示屏信息的消息进行组播,将其传递给各个客户端,客户端再按照指令状态信息或LED显示屏信息进行刷新指令,监控界面指令状态或更新LED显示屏信息。消息储存转发功能的代码如下:

    上述代码是executeMethods()方法中的部分代码,可实现消息的储存转发功能。这个方法会根据报头的不同而执行不同的动作。当报头为“1”时,表示叉车发送查询请求,这时服务器消息处理子系统将保存在服务器上的指令发送给叉车;当报头为“2”时,服务器消息处理子系统对叉车发来的指令状态信息或LED显示屏信息的消息进行组播。


2、出库管理模块的实现
     出库管理模块用来完成出库的各种操作,如出库单据的管理、出库货位的分配、出库指令的生成及监控。出库单据的管理功能主要是指完成单据的导入/手工录入,未处理单据的修改和删除。系统界面中会显示所有当日未处理的单据,并可以对显示单据进行修改。在完成单据的生成后,就需要使用出库货位分配功能。出库货位分配需要按照一定的规则进行。这些规则要实现优先出暂存区,防止暂存区堆积;货位的先进先出,防止货物积压;出库货位少,提高作业效率等目标。实现出库货位分配的界面如图所示。界面上矩形框标出来的地方是系统按照出库货位分配规则分配的货位。在库管认为货位不合理时,系统也提供手工修改分配货位的功能,由此可提高系统的灵活性。出库货位分配界面中分配的货位是按出库货位算法得出的。


 出库货位分配规则的核心有以下几个方面。

(1)出库货位分配规则是计算机自动分配的,把数据库存储过程写入数据库,在程序中只需提供出库的卷烟品牌规格和数量。这样会带来两方面的好处:一方面,存储过程在第一次被调用时由系统编译并存储在数据库中,编译后的存储过程经过优化处理,执行速度更快,可以提高系统的响应速度;另一方面,在需要修改出库货位分配规则时,只需要在数据库中修改存储过程即可。
(2)为保证出库托盘尽量少,该算法首先判断出库的是整托盘还是散托盘,若为整托盘出库,而暂存区没有该品牌的整托盘时,则直接从库区出库中减去出库托盘数。
(3)防止暂存区货物的积压。该算法在出库时,在满足出库托盘尽量少的前提下,优先出暂存区。

(4)出库指令的生成及监控功能:出库货位核对,生成作业指令和指令监控。主控机在开启时,便已和服务器端建立TCP连接,使用TCP协议将指令传到服务器上,便于叉车查询,指导叉车到指定的货位作业。系统保证了货物的先进先出,使用算法优先出同品牌的、入库时间早的卷烟。

     这个界面将实时接收服务器组播的指令状态,改变指令监控界面上的指令状态。当所有指令完成后,提交更新系统库存。用出库指令打开监控界面,系统将会开辟一个线程用于出库校对。在入库时,将扫描的RFID标签ID写入数据库,并和货位进行绑定,因此在出库时可通过扫描RFID标签ID解析货位地址,将其与出库指令进行核对。出库核对功能的代码如下:
     在上面的代码中,hashMap存放着 程序预先从数据库中获取的RFID标签ID和货位编码的对应关系。在出库时,通过RFID阅读器读取的RFID标签ID就可以获取货位编码,再与出库指令中的货位地址进行核对,若两者一致会将RFID标签ID写入出库指令监控界面中;而不一致则代表出错托盘,无法将RFID标签ID写入上面的界面中,并弹出“叉出货位出错,请将该托盘放回”的警告以提示叉车工,这时叉车工需将叉错的托盘放回原货架,再将正确的托盘取出。

4、 叉车电子货位导航子系统的实现

4、1.叉车客户端通信模块的实现叉车的客户端通信模块需要两种通信模式:和服务器一对一的交互;接收服务器组播的消息。

连接服务器时调用的函数代码如下:


     这段代码的功能是:在叉车电子货位导航子系统运行时,将建立与服务器的TCP连接,用于叉车客户端查询服务器消息处理系统储存的出/入库指令,以及向服务器发送指令状态和LED屏所需信息。同时开辟一个线程监听服务器组播的消息,用于更新指令状态。 

4、2.叉车电子货位导航模块的实现
   叉车电子货位导航模块的功能是指导叉车司机的作业,给叉车司机进行直观的电子货位图导航。叉车电子货位导航子系统导航模块的执行流程如图所示。

叉车司机打开叉车计算机后,叉车计算机会自动运行叉车电子货位导航子系统。单击“查询”后,叉车电子货位导航子系统会从服务器上查询出所有的指令。
叉车电子货位导航模块的核心问题有以下几个方面。
1)叉车指令树表中指令状态的互锁问题 

     在叉车电子货位导航的流程中,按照叉车指令优先级算法选中指令时,会立刻改变指令状态并将其发送出去。若选中其中一项作业并将其展开,则叉车上的自动指令算法将选中优先级最高的指令并将其状态改为“正在处理”,并用TCP协议将“正在处理”的指令状态发送到服务器上,服务器接收到改变的指令状态后进行组播,改变主控机上指令监控界面的指令状态和另外一个叉车的指令状态。在没单击“执行”就改变指令状态是为了保证在两台叉车协同作业(两台叉车执行同一项作业)时,当一台叉车选中作业将其展开自动选中指令时,立刻改变另外一台叉车上的指令状态,这样,当另一台叉车选中该项作业将其展开选中指令时,系统会正确地选中下一条指令,实现指令状态在选择上的互锁。

2)叉车指令优先级算法
     叉车指令选择界面如图所示,框中的指令即为在展开树形指令表时指令优先级算法自动选中的指令。 


     在选中一项作业后,叉车电子货位导航子系统的指令优先级算法会自动算出优先级最高的指令。叉车上查询到的指令是同出库货位分配的货位顺序相同;在出库货位分配时,分配的货位是按照货位地址降序排列的。因此,出库第一条状态为“未处理”的指令优先级最高。在选中一条指令时,会完成下列动作:将指令选择界面上的指令状态改为“正在处理”;将指令的背景颜色改为黄色;将“正在处理”的指令状态发送给服务器。叉车指令优先级算法的代码如下:

    上面的代码功能为:完成叉车指令表上的不同选择并产生相应的动作。叉车指令选择界面的选择方式有:当树形指令表都没有展开时,选中一项作业,则将树形指令表展开,选中该项作业中优先级最高的指令,并将改变的指令状态发送给服务器进行组播;当树形指令表中有一项展开时,若选中的是同一项作业,则将树形指令表收起,并将还原的指令状态发送给服务器组播,若选中的是不同作业,则将先选中的作业收起,并将还原的指令状态发送给服务器组播,再将当前选中的作业展开,选中新的指令,并将改变的指令状态发送给服务器组播。

    上述代码中的search()方法用于将树形指令表展开,查找第一条未完成的指令并选中,然后发送“正在处理”的指令状态给服务器组播并使选中的指令背景颜色为黄色。recover()方法用于还原指令状态,即把先前选中的指令状态改为“未处理”,并发送给服务器组播。在选中指令,单击“执行”后,会出现电子货位地图界面,如图所示。


在图所示界面中,长方形的框中的区域为作业区域,深色的货位是叉车当前指令作业货位,而下面的文字是对当前指令作业货位的解释。
3)LED屏控制信息算法
     叉车电子货位导航子系统上组合的LED屏控制信息是13位字符串。字符串的第一位是指令号;第二位是作业号;第三位是单据类型;第四位是品牌规格;第五位是作业库区入库数量(仅是某个库区,可能和单据上的入库数量不一致);第六位是作业库区已入库数量;第八位是指令状态;第九位是车牌号;第十位是销售去向;第十一位是出库总数;第十二位是已出库区数量; 
第十三位是单据号。

若是出库作业,则将字符串的第五位和第六位总数置为空;若是入库作业,则将字符串第九位、第十位、第十一位和第十二位置为空;若是货位调整作业,则不存入13位字符串的LED屏控制信息中。
字符串的第七位是控制LED如何刷新的标志位。
(1)S[6]=“1”:表示通道的第一条或库区的第一条,LED屏幕由静态库 存信息变成动态作业信息。

(2)S[6]=“2”:表示库区的最后一条,LED屏幕由动态作业信息变成静态库存信息。
(3)S[6]=“3”:表示中间的指令,LED屏幕由动态作业信息变成动态作业信息,刷新数量。
(4)S[6]=“4”:库区的最后一条,同时又是通道的第一条,也就是说该库区的该通道只有一条指令。S[6]的具体算法流程如图所示。 

如图=所示是基于RFID的数字化仓库管理系统在一号成品库的运行实景图。



该系统实现了以托盘为单位的可视化的电子货位管理、货物先进先出,自 动的出入库管理和实时库存信息查询,并通过电子显示屏显示库区货位信息及其产品信息。同时,它在数字化仓库管理系统的基础上,通过各种网络建立了实时的物流信息共享平台,可实现物流信息的共享。

本文网址:http://www.hysrfid.com/article/ruheshixianRFIDjuanyancangkuxitongshuzihuaguanli.html

关键词: 如何实现RFID卷烟仓库系统数字化管理RFID仓库管理系统rfidRFID系统

芯创益技术专注于RFID标签读写器设备生产厂家,所提供RFID解决方案集成RFID系统、RFID标签,RFID读写器等设备应用,为国内外企业提供完善高效的RFID技术应用。
服务热线  13691762133
服务热线  13691762133服务热线 13691762133
微信二维码
手机二维码
返回顶部
返回顶部返回顶部