本发明涉及计算机科学和自动化控制领域,特别是涉及一种基于哈希表的RFID数据在MES系统中的管理方法。
背景技术:
在自动化生产车间流水线中,MES系统(制造执行系统)是企业信息化系统中重要的一部分。MES系统接收ERP系统下发的订单数据,并对订单进行相应的生产,并把生产的结果返回ERP系统。MES系统包括MES客户端、MES网页端、MES电子看板和MES服务器。MES客户端安装在每个工位上,用于指导并记录工位中生产操作。MES网页端用于接收ERP中的订单并向MES客户端下发操作生产指令。同时ERP可以通过MES服务器知道这一批订单到底生产了多少进度如何等。MES电子看板显示总的生产进度各订单生产进度等。MES服务器提供数据支持。
现代化制造业MES是依靠信息管理的一个精确的执行过程,这必然要求对计划和执行进行精确的比对,数据都要准确记录,这需要过程中更多地进行数据采集自动识别,保证计划和执行相符合,并对不符合的及时采取措施调整。通过在工厂车间流水线采用RFID技术,可以无缝且不间断地集成从RFID捕获的信息,同时向制造执行系统MES发送准确、可靠的实时信息流,从而创造附加值,提高生产率和大幅度地节省投资。RFID技术利用无线射频方式在RFID读卡器和射频卡之间进行非接触双向数据传输,以达到目标识别和数据交换的目的。与传统的条码相比,RFID电子标签具有非接触、可重复读写、速度快、信息量大、不受环境影响、寿命长等优点,能同时处理多张卡片等优点。
在生产车间流水线上,每个工位都有一个RFID读卡器。在MES系统中为了方便工人操作及更好的自动化,一般默认为MES客户端第一次收到该工位的RFID读卡器发送的批号数据,表明工装板流入该工位,该批号开始进行生产操作。MES客户端第二次收到该工位的RFID读卡器发送的批号数据,则表明该工位工序操作完成,该工装板应流向下一个工位。因RFID读卡器侦听范围为一个扇形区域且在不停的进行侦听,故RFID电子标签跟随工装板经过该区域时会向MES客户端传入很多次相同信息,从而影响看板等数据不准确,就有可能会影响整个生产车间的调度。
技术实现要素:
本发明的目的在于针对现有技术的不足,提供一种基于哈希表的RFID数据在MES系统中的管理方法,使得MES客户端自动获得准确数据,自动进行工序开始、结束,提高生产线的自动化能力,减少生产成本。
本发明的目的是这样实现的:一种基于哈希表的RFID数据在MES系统中的管理方法,包括如下步骤:
1)在MES客户端中添加两个哈希表用来存放相关数据,哈希表1中存放数据时间戳,哈希表2中存放数据标记信息。MES客户端安装在每个工位上,用于指导并记录工位中生产操作。FALSE/TRUE标记用于表明工序是否已经操作完成。
2)MES客户端应用RFID技术进行数据采集,当MES客户端收到RFID读卡器发送的数据时,解析数据,然后判断哈希表2中是否存在该数据;
21)如果哈希表2中不存在该数据,继续判断哈希表1中是否存在该数据,如果哈希表1中也不存在该数据,则让该数据流入MES客户端,同时在哈希表1中为该数据添加上时间戳标记,在哈希表2中为该数据添加FALSE标记,表明该工序操作未完成;
22)如果哈希表2中已经存在该数据,继续判断哈希表2中数据标记值;
221)如果哈希表2中数据标记值为FALSE,继续判断哈希表1中时间戳与当前时间的时间差是否到达设定值,如果时间差大于或等于设定值(该设定值为该工序操作时间),则让数据就流入MES客户端,同时删除哈希表1中数据并修改哈希表2中数据标记为TRUE,如果时间差小于设定值,则丢弃数据,数据不流入MES客户端。允许流入MES系统的数据为该工序生产所需要的数据。
222)如果哈希表2中数据标记值为TRUE,表明该工序操作已经完成,数据不流入MES客户端。
在MES客户端中单独使用一个线程来清理哈希表中数据,该线程定期检查哈希表2中数据是否有效,发现无效就删除该数据。无效数据就是指在该工位中已经完成的批号数据。MES中一个工序中某一个批号操作完成后,该批号就会自动流入到下一个工序。
所述线程周期运行遍历哈希表2中数据,在运行周期中,如果哈希表2中数据标记值为TRUE,则在哈希表2中删除该数据;如果数据标记值为FALSE,就不做处理。运行周期一般以小时为单位,只是为了防止这个表中数据量越来越多,使得电脑内存占用量太大。
由于采用了上述方案,使得生产车间流水线上的一个工序只有两次数据可以流入MES客户端,允许流入MES客户端的一次数据表明工装板流入该工位,可以开始对工装板上产品进行相关操作,允许流入MES客户端的另一次数据表明该工位工序操作完成,该工装板应流向下一个工位,这样使得MES客户端自动获得准确数据,自动进行工序开始、结束,提高生产线的自动化能力,减少生产成本。本发明可以防止工人不按照正常的操作模式(MES客户端第一次收到数据在开始做,做完后才让MES客户端收到第二次数据),从而影响看板等数据不准确,就有可能会影响整个生产车间的调度。
且本发明使用哈希表来存储相关数据,使得在查找相应数据时有更快的访问速度,不会应为数据量过大而引起延迟。同时因为定时清理哈希表中数据,不会出现因哈希表中存放数据太大而引起程序性能下降。
下面结合附图和具体实施方式对本发明作进一步说明。
附图说明
图1为本发明的方法流程图;
图2位本发明的哈希表中数据清理的流程图。
具体实施方式
参见图1,一种基于哈希表的RFID数据在MES系统中的管理方法,包括如下步骤:
1)在MES客户端中添加两个哈希表用来存放相关数据,哈希表1中存放数据时间戳,哈希表2中存放数据标记信息。使用哈希表来存储相关数据,使得在查找相应数据时有更快的访问速度,不会应为数据量过大而引起延迟。定义False/TRUE标记用于表明工序是否已经操作完成。
2)MES客户端应用RFID技术进行数据采集,RFID读卡器对经过其侦听范围的工装板上的RFID电子标签进行侦听,并发送数据给MES客户端。当MES客户端收到RFID读卡器发送的数据时,解析数据,然后判断哈希表2中是否存在该数据;
21)如果哈希表2中不存在该数据,继续判断哈希表1中是否存在该数据,如果哈希表1中也不存在该数据,则让该数据流入MES客户端,同时在哈希表1中为该数据添加上时间戳标记,在哈希表2中为该数据添加FALSE标记,表明该工序操作未完成;
22)如果哈希表2中已经存在该数据,继续判断哈希表2中数据标记值;
221)如果哈希表2中数据标记值为FALSE,继续判断哈希表1中时间戳与当前时间的时间差是否到达设定值,如果时间差大于或等于设定值(该设定值为该工序操作时间),则让数据流入MES客户端,同时删除哈希表1中数据并修改哈希表2中数据标记为TRUE,如果时间差小于设定值,则丢弃数据,数据不流入MES客户端;
222)如果哈希表2中数据标记值为TRUE,表明该工序操作已经完成,数据不流入MES客户端。
参见图2,在MES客户端中单独使用一个线程来清理哈希表中数据。线程定期去检查哈希表2中数据是否有效,发现无效就删除该数据。该线程周期运行遍历哈希表2中数据。在运行周期中具体操作如图2,如果哈希表2中数据标记值为TRUE,则在哈希表2中删除该数据;如果数据标记值为FALSE,就不做处理。同时因为定时清理哈希表中数据,不会出现因哈希表中存放数据太大而引起程序性能下降。
采用上述步骤使得生产车间流水线上的一个工序只有两次数据可以流入MES客户端,允许流入MES客户端的一次数据表明工装板流入该工位,可以开始对工装板上产品进行相关操作,允许流入MES客户端的另一次数据表明该工位工序操作完成,该工装板应流向下一个工位,这样使得MES客户端自动获得准确数据,自动进行工序开始、结束,提高生产线的自动化能力,减少生产成本。
本发明不仅仅局限于上述实施例,在不背离本发明技术方案原则精神的情况下进行些许改动的技术方案,应落入本发明的保护范围。