APP下载

基于RFID的数字货架二维移动节点设计

2015-03-11孙首兵

关键词:货位读卡器货品

孙首兵, 陆 阳

(合肥工业大学 计算机与信息学院,安徽 合肥 230009)

0 引 言

数字货架是一种基于射频识别[1](radio frequency identification,RFID)技术的、可完成对货物的存储和自动识别的智能货架。随着RFID技术的不断成熟,基于RFID技术的数字货架广泛用于仓储系统中。但是,目前RFID技术在数字货架应用中存在严重不足,主要表现在货品信息读取依靠固定的RFID读卡器[2-3]进行、数字货架成本昂贵等。文献[2]提出的电子货架系统在每个货位上安装RFID读卡器用来读取货位中货品信息,不但增加了安装难度,而且大大增加了系统成本;文献[3]提出一种智能货架系统及其实现方法,在货架的每层上安装RFID读卡器,虽然一定程度上减少了RFID读卡器的数量,但是增加了对RIFD读卡的距离,同时无法完成对单个货位货品信息的读取,增加了工作量。

本文设计了一种基于RFID的数字货架二维移动节点[4],采用单片机控制、双伺服电机驱动的方法,使得数字货架货品信息读取只需单个RFID读卡器即可完成,同时可以实现对货品信息的定向读取,减少了数字货架成本;并重点讨论了复杂情况下节点路径规划问题,从而提供了一种通用的节点路径规划算法,使得信息读取时间缩短很多。

1 节点结构设计

二维移动节点是指可在货架垂直面内运动的RFID读卡器。RFID读卡器通过在平面内的运动,自动读取货架上货品的信息,实现对货品的盘点和定位。

二维移动节点主要由货架、节点导轨、移动控制模块、信息采集模块、无线收发模块、主控模块和数据管理模块构成。

(1)货架。货架根据放置货品的质量选取,并将货架每层都划分为若干货位,货位大小人为选择,以RFID读卡器发射功率所达范围为标准。

(2)节点导轨。在货架的侧立面上安装导轨,2根水平导轨(1根驱动导轨和1根从动导轨)分别安装在货架最高层和最底层上,1根垂直导轨安装在2根水平导轨上,可以在水平导轨上滑动。垂直导轨上安装有滑块,RFID读卡器固定在滑块上。

(3)移动控制模块。包括单片机、伺服电机、伺服电机驱动器和接近开关以及开关电源等。单片机通过无线模块接收上位机发送的指令,发出控制电机指令,2个伺服电机带动RFID读卡器运动,再通过无线模块将运动结果返回上位机。接近开关信号输出端与单片机I/O口相连,接近开关动作反映RFID读卡器运动至导轨端部,单片机需将相应电机反向。

(4)信息采集模块。包括RFID读卡器、电子标签等。RFID读卡器固定在垂直导轨滑块上,可实现在平面内的运动,从而用于读取和更新电子标签信息。电子标签贴在货品上,用于存储货品信息。

(5)无线收发模块。单片机、RFID读卡器和主控模块上都安装无线收发模块,用于收发控制指令和数据信息。

(6)主控模块。主要用于发送移动控制指令给节点移动模块并接收返回结果,发送电子标签读取指令给信息采集模块并接收返回结果。

(7)数据管理模块。用于存储和更新货品信息和存储信息。

二维移动节点结构外观如图1所示。

2 节点移动控制设计

2.1 硬件设计和伺服电机控制

节点移动控制模块[5]主要包括单片机、伺服电机、伺服电机驱动器、接近开关以及开关电源。节点移动控制主要是对水平方向和垂直方向电机的控制,电机由单片机控制。电机采用东元精电股份有限公司生产的交流伺服电机,型号为TSC06401C,驱动器型号为TSTA20C;单片机采用STC89C52单片机;接近开关采用SNOD05-N方形npn型接近开关。移动控制模块硬件连接图如图2所示。

由图2可知,单片机的P1.0和P1.1口分别控制X向电机的转速和方向,P1.2和P1.3口分别控制Z向电机的转速和方向,P1.4~P1.7口分别用来接收X向导轨正向、导轨反向和Z向导轨正向、导轨反向的接近开关动作信号。为了使得接近开关输出信号具有与单片机相同的电平,同时防止干扰,采用TLP521芯片进行隔离。

节点采用2个伺服电机,分别控制其在水平方向和垂直方向上的运动,2个方向电机独立运行,互不影响。X向电机和Z向电机转速分别通过单片机定时器T0和T2定时控制。下面以定时器T0为例,说明定时器装入初值的计算方法。

假设电机运行速度为r,每转需要脉冲个数为n,则每秒钟单片机需发送脉冲个数为:

由于1个脉冲分为正脉冲和0,所以单片机每秒钟中断次数为:

即中断时间为:

图2 移动控制模块硬件图

单片机采用12M的外部晶振提供时钟周期,所以机器周期时间为:

则有:

即每隔3×107/(nr)个机器周期,定时器需要中断1次。

T0定时器为16位定时器,工作在方式1,则初值为:

Z向电机采用定时器T2进行控制,初值计算方法同T0。通过对初值大小的改变,可以方便地控制节点运动的速度。系统共设置了2挡速度:① 低挡,用于采集信息;② 高挡,用于信息采集完成后节点迅速返回原点。

2.2 节点路径规划

为了方便对节点运动的控制,将货架人为地划分成若干相同的货位,并建立如图3所示的直角坐标系(图中虚线交叉点代表货位中间位置)。在每个货位里存放货品,调节RFID读卡器的功率,只要每次读取过程中RFID读卡器处于货位中心位置,就可以使读卡器只能读取到一个货位里货品的信息,从而防止相邻货位货品的干扰。

图3 货架划分图

由图3建立的直角坐标系可以看出,货架被划分成若干个标准的单位正方形,并且每个货位都有自己相应的坐标值。节点在初始状态下停在原点(0,0)处,在需要读取货品信息时,节点运动到相应货位的中间位置,打开RFID进行读取。

节点在二维平面内的运动主要可以分为以下3种。

(1)单个盘点。如果需要对单个货位的货品信息进行盘点,只需发送“单个盘点”指令。例如,需要盘点图3中右上角货位中的货品信息,节点运动方案如下:Z向电机正向启动,节点沿Z轴正向运动至坐标(0,3.5)处,Z 向电机停止,X 向电机正向启动,节点运动至坐标(4.5,3.5)处,开启RFID读卡器,进行信息读取;信息读取完成后,同时启动X向和Z向电机,节点以高挡返回原点,完成货位盘点。

(2)单排盘点。如果需要对货架某一排的所有货位的货品信息进行盘点,则需要发送“单排盘点”指令。例如,需要对图3中第1排的货位进行盘点,节点运动方案如下:Z向电机启动,节点沿Z轴正向运动至坐标(0,0.5)处,Z向电机停止,X向电机正向启动,节点运动至坐标(0.5,0.5)处,开启RFID读卡器,进行信息读取;信息读取完成后,X向电机继续正向启动,节点运动至下一货位位置,继续进行信息读取;重复以上过程,直到将所有货位读取完为止;同时启动X向和Z向电机,节点以高挡返回原点,完成单排盘点。

(3)多货位盘点。如果需要对多个而又无规律的货位进行盘点,为了叙述方便,图3中直角坐标系的位置相对于之前所述坐标向右上方平移了0.5,即图3中的实线交叉点代表货位的中间位置(之前所述代表货位轮廓),a0代表原点。例如,图3中 分 布 有a1、a2、a3、a4、a5、a66 个 待 盘 点 的 货位,现在需要节点从原点(a0处)开始,依次盘点各货位后再返回原点,并且要求整个盘点过程路径最短[6-9]。

2.3 多货位盘点算法

本文采用改进A*算法计算路径最短距离。A*算法是一种启发式搜索算法,用于图形平面上求解通过多个节点的最低成本,算法核心思想是在每次选择下一个当前搜索节点时,从所有已经探知的但未搜索过的节点中,选择f值最小的节点进行展开:f=g+h。f是A*算法的一个估值函数,表示可能试探点的估值,f由2部分组成:①g表示从起始搜索点到当前点的代价;②h表示当前节点到目标节点的估值,本文中h采用节点的曼哈顿距离。

本文对A*算法的改进主要包括以下几点:

(1)从某一节点出发到其他节点均可达(目标节点不在closelist中),即所有节点开始时均在openlist中。

(2)由于起点和终点都是a0,为了方便说明,将终点定义成a0′。a0′对于所有节点均可达,即a0′也在openlist中,但只有在所有的节点选择完后,才能选择a0′作为当前节点。

(3)如果当前节点的相邻节点在openlist中,并且经由当前节点到达该相邻节点的g值小于或者等于原来的g值,则将该相邻节点的父节点设为当前节点。

(4)保存当前节点父节点数量(节点深度),在进行g值比较时,如果g值相等,则选择深度较大的路径。

(5)对于被选择的当前节点(在openlist中f值最小),若经由该节点的相邻节点的g值均不小于其原来的g值,则将该当前节点继续放入openlist中,选择f值次小的节点继续。

(6)如果openlist中剩余节点均未出现(3)中所述的情况,则选择深度最大者作为当前节点继续。

多货位盘点算法步骤如下:

(1)假设有a0,a1,…,an个节点需要盘点,且节点坐标为(xn,yn),则每个节点与起点的曼哈顿距离为h=xn+yn,节点之间的曼哈顿距离为h(am,an)=|xm-xn|+|ym-yn|。

(2)将所有节点放入openlist中(起始节点的f值和g值均为0)。

(3)在openlist中计算节点f值,选择f值最小的节点作为当前节点。

(4)依次判断当前节点的每一个相邻节点,若该相邻节点位于closelist中,则继续检验下一节点;若该相邻节点位于openlist中,则判断经由当前节点到达该相邻节点的g值是否不大于原来的g值,若是,则将该相邻节点的父节点设为当前节点,并重新设置该相邻节点的g值和f值,且深度加1,转到步骤(3)。

(5)若经由当前节点的所有相邻节点的g值均不小于原来的g值,则将该节点继续放入openlist中,但不参与下一次的f值比较;否则,将该当前节点放入closelist中,并且深度加1。

(6)若openlist中剩余节点均不能使经由它的相邻节点的g值更小,则选择深度最大的节点作为当前节点。

(7)当openlist中只剩下a0′时,循环结束。

(8)从a0′开始沿父节点遍历,并保存整个遍历到的节点坐标,遍历所得节点即最后的路径。

在给定节点的情况下,算法执行时间与节点数量的关系如图4所示。

由图4可以看出,算法运行时间随着节点数量的增加而增加,在节点数量为120时,算法运行时间约为1s。由于导轨精度和安装误差的限制,节点的运动速度一般小于50cm/s,则盘点一个货架上所有物品的时间需几分钟,所以算法的执行时间满足使用要求。事实上,当仓库规模较小,节点数量较大时,节点分布成一定规律,往往可以采用单排盘点来完成部分货位盘点,再对剩下的少数货位实行多货位盘点。

图4 算法执行时间

3 节点工作流程

节点原理图如图5所示。

图5 节点原理图

由图5可知,二维移动节点包括3个组成部分:PC无线节点、单片机无线节点和阅读器无线节点。PC节点负责发送控制指令给单片机节点和阅读器节点;单片机控制通过发送指令给电机,从而控制阅读器的运动;阅读器读取电子标签信息。节点工作基本流程如下(以单个盘点为例):PC节点接收单个盘点指令,通过无线模块发送相应的运动控制指令给单片机,并设置等待时间wtime,若在等待时间内没有接收到应答信号,则表示通信失败,重新发送指令;如果单片机接收到指令,则会发送一个“接收成功”应答信号,表示已接收到指令,并对伺服电机发送相应的控制指令,控制节点移动;节点移动完成后,单片机发送“操作成功”指令给PC节点,表示阅读器已经运动到指定位置,可以开始读卡操作;PC节点通过无线模块发送信息读取指令给阅读器节点,如果在等待时间内未接收到应答信号,则重新发送指令;如果阅读器接收到指令,则发送“接收成功”应答信号,开始进行信息读取,读卡完成后,将读取结果发送给PC节点,PC节点对返回结果进行相应操作[10-11]。节点工作流程(主控模块)如图6所示。

图6 节点工作流程图

4 结 论

本文研究设计了一种基于RFID的数字货架的二维移动节点,通过引入RFID技术、ZigBee通信技术和自动控制技术,降低了货品信息获取的成本,主要表现在:

(1)货品信息读取的自动化。采用货品信息的自动读取代替固定RFID读卡器读取方式。

(2)货品定位,对货架进行划分。通过节点的坐标获取货品所在货位的坐标。

(3)货品信息的实时盘点和更新。只需设置一个时间间隔,节点即可随时对货品进行盘点,并对货品信息进行更新。

同时,在RFID读卡器读卡过程中,采用多次读取方案,加上RFID读卡器本身具有的防冲撞特性,使得读卡成功率在99%以上,满足实际应用要求。

[1] 王建维,谢 勇,吴计生.基于RFID的数字化仓库管理系统的设计与实现[J].物流技术,2009,28(4):130-132.

[2] 朱俊英.电子货架系统及物品监控方法:中国,10117504.3[P].2010-03-04.

[3] 柳健龙.一种智能货架系统及其实现方法:中国,10061936.0[P].2006-07-25.

[4] 汪鸿鹏,陆 阳,程运安,等.基于Zigbee网络的数字化仓库设计[J].合肥工业大学学报:自然科学版,2011,34(12):1830-1835.

[5] 蔡志祥,刘冬生,曾晓雁.基于单片机的交流伺服电机控制系统[J].机械与电子,2005(5):28-30.

[6] 邹 亮,徐建闽,朱玲湘.A*算法改进及其在动态最短路径问题中的应用[J].深圳大学学报:理工版,2007,24(1):24,32-36.

[7] 石为人,王 楷.基于Floyd算法的移动机器人最短路径规划研究[J].仪器仪表学报,2009,30(10):2088-2092.

[8] 梁德恒,姚国祥,宫金龙.基于路由最短路径树的动态多节点删除算法[J].计算机工程,2011,37(5):121-123.

[9] 陈楚南,孙未未,陈 翀.基于图嵌入框架的路网最优路径查询算法[J].计算机研究与发展,2011,48(Z2):351-356.

[10] 韩金鲁,孙同景.基于ZigBee技术的智能仓储系统的研究[D].济南:山东大学,2008.

[11] 戚剑超,魏 臻.ZigBee树型路由算法的改进[J].合肥工业大学学报:自然科学版,2010,33(4):529-532,537.

猜你喜欢

货位读卡器货品
多出/入口仓库的货位优化研究
化学品船适装货品的新要求及实船应用
与淘汰命运抗争 看懂笔记本的读卡器
货位指派和拣货路径协同优化及算法研究
基于蚁群算法的智能生产物流体系构建研究∗
基于EMV非接通信规范的非接触读卡器设计
为二维码识别的献礼之作——评测平治二维码门禁读卡器
基于萤火虫算法的自动化仓储货位优化分配研究
基于遗传算法的自动化立体仓库货位优化模型研究
MATLAB实现组态王中TCP/IP读卡器监控方法