倉(cāng)儲(chǔ)管理中的RFID中間件設(shè)計(jì)
文章出處:http://bookmouse.cn 作者:狄菲 趙衛(wèi)東 周志平 彭瑞 季軍 人氣: 發(fā)表時(shí)間:2011年10月14日
0 引言
在一個(gè)典型的倉(cāng)庫(kù)里,卡車回到塢門卸下托盤(pán)上的貨物,該托盤(pán)或者集裝箱都有無(wú)線射頻識(shí)別(Radio Frequency Identification,RFID)標(biāo)簽(目前,低價(jià)商品還不能擁有自己的標(biāo)簽)。倉(cāng)庫(kù)內(nèi)被劃分為具有相應(yīng)識(shí)別電子碼的不同貨位,RFID閱讀器可安裝在倉(cāng)庫(kù)的出入門和倉(cāng)庫(kù)內(nèi)部。整個(gè)倉(cāng)庫(kù)內(nèi)及各出入門附近都由網(wǎng)絡(luò)(無(wú)線或有線)覆蓋,以實(shí)現(xiàn)信息共享。
一個(gè)典型的RFID系統(tǒng)由射頻電子標(biāo)簽(RFID Tag)、讀寫(xiě)器(RFID Reader)及應(yīng)用支撐軟件組成。電子標(biāo)簽由芯片與天線組成,每個(gè)芯片都有唯一的標(biāo)識(shí)碼。標(biāo)簽可附著在被標(biāo)識(shí)的物品上,當(dāng)帶有電子標(biāo)簽的被識(shí)別物品經(jīng)過(guò)讀寫(xiě)器的可識(shí)讀范圍內(nèi)時(shí),讀寫(xiě)器自動(dòng)識(shí)別該標(biāo)簽并將信息發(fā)送給后端軟件,從而實(shí)現(xiàn)自動(dòng)識(shí)別物品或自動(dòng)收集物品標(biāo)志信息的功能。
介于前端RFID讀寫(xiě)器硬件模塊和后端數(shù)據(jù)庫(kù)與應(yīng)用軟件之間的中介,稱為RFID 中間件(RFID Middhware)。應(yīng)用程序端使用中間件所提供的一組通用的應(yīng)用程序接口(API),即能連接到RFID讀寫(xiě)器,讀取RFID標(biāo)簽數(shù)據(jù)。中間件實(shí)現(xiàn)對(duì)底層設(shè)備的精確控制,實(shí)時(shí)采集原始數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行過(guò)濾,并在其中封裝典型的應(yīng)用邏輯,使系統(tǒng)接口簡(jiǎn)單透明,從而達(dá)到系統(tǒng)的協(xié)調(diào)工作。
1 模擬倉(cāng)庫(kù)環(huán)境
開(kāi)發(fā)中間件,首先要模擬倉(cāng)庫(kù)環(huán)境。由于標(biāo)簽的價(jià)格原因,我們不可能在每個(gè)貨物上都貼上標(biāo)簽,只能通過(guò)標(biāo)示托盤(pán)來(lái)追蹤貨物。如圖1所示,在每個(gè)托盤(pán)、叉車和出入庫(kù)人員上安裝和佩戴射頻標(biāo)簽卡,并在車間和倉(cāng)庫(kù)出入口安裝讀寫(xiě)器,通過(guò)讀寫(xiě)器獲取RFID標(biāo)簽經(jīng)過(guò)出入口的情況,從而將托盤(pán)上所屬倉(cāng)庫(kù)的信息與射頻卡捆綁輸入數(shù)據(jù)庫(kù),同時(shí)記錄叉車和人員的出入庫(kù)情況。在出入I:1安裝攝像頭,判斷通過(guò)出入口的貨物數(shù)量。
圖1 倉(cāng)庫(kù)環(huán)境
系統(tǒng)通過(guò)RFID標(biāo)簽的類別來(lái)區(qū)別出人庫(kù)對(duì)象,通過(guò)倉(cāng)庫(kù)管理人員及工作人員共同遵守的規(guī)則,在讀取RFID標(biāo)簽時(shí),判斷出人庫(kù)情況,并通過(guò)視頻圖像判斷托盤(pán)的狀態(tài)(空或滿及裝載貨物數(shù)量),從而計(jì)算產(chǎn)品出人庫(kù)數(shù)量。定期進(jìn)行統(tǒng)計(jì)分析,為管理人員提供決策支持,并在異常情況發(fā)生時(shí)進(jìn)行報(bào)警。
2 RFID中間件設(shè)計(jì)
RFID中間件位于企業(yè)應(yīng)用程序與底層設(shè)備之間,提供統(tǒng)一的應(yīng)用邏輯接口與設(shè)備接口,在實(shí)際應(yīng)用中起到讀寫(xiě)器的管理和數(shù)據(jù)的處理、傳遞功能。它的最終目的是數(shù)據(jù)為上層系統(tǒng)所用。如圖2所示,功能上可分為原始數(shù)據(jù)采集層和事件處理層。
圖2 中間件架構(gòu)
2.1 原始數(shù)據(jù)采集層
為屏蔽各類設(shè)備之間的差異,實(shí)現(xiàn)應(yīng)用對(duì)設(shè)備的透明操作。中間件將每個(gè)設(shè)備(RFID閱讀器,打印機(jī),傳感器等)用統(tǒng)一的代理來(lái)模擬,由代理和設(shè)備直接交互。不同的設(shè)備,代理處理的消息類型、處理的方法也不同。代理之間通過(guò)UDP/IP上的XML消息來(lái)交流信息。使用XML的優(yōu)點(diǎn)是它的異構(gòu)性、可擴(kuò)展性、靈活性,適用于松耦合特性的分布式系統(tǒng)。
2.1.1 代理
中間件為設(shè)備和應(yīng)用層提供了雙向接口,我們用代理來(lái)模擬設(shè)備接口。閱讀器代理負(fù)責(zé)控制閱讀器驅(qū)動(dòng)、狀態(tài)查詢、接收標(biāo)簽數(shù)據(jù)列表等工作,把設(shè)備傳進(jìn)來(lái)的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化格式。用戶可以根據(jù)傳感器類型的不同而擴(kuò)展它,這樣能更好地適應(yīng)客戶需要。打印機(jī)代理負(fù)責(zé)控制打印機(jī),用戶可根據(jù)需要添加其他類型 。
2.1.2 消息機(jī)制
RFID中間件是消息中間件的一種,它的消息傳遞模式支持點(diǎn)對(duì)點(diǎn)模式和發(fā)布/訂閱模式。代理和設(shè)備之間多用點(diǎn)對(duì)點(diǎn)模式,例如啟動(dòng)或關(guān)閉一個(gè)閱讀器時(shí),使用UDP套接字來(lái)處理點(diǎn)對(duì)點(diǎn)操作;若閱讀器被成功啟動(dòng),它也會(huì)廣播一個(gè)閱讀器狀態(tài)更新信息。
在事件處理層,應(yīng)用系統(tǒng)通過(guò)發(fā)布/訂閱機(jī)制獲得感興趣的信息,中間件為完成這一功能設(shè)置了訂閱解析器,提取定義文件的參數(shù)和方法,傳送到事件處理機(jī)制,對(duì)RFID數(shù)據(jù)進(jìn)行處理。
2.1.3 緩沖機(jī)制
RFID閱讀器每秒鐘會(huì)閱讀到成千上萬(wàn)的標(biāo)簽,為防止溢出,采用線程來(lái)加速包的卸載,并將數(shù)據(jù)保存在即時(shí)隊(duì)列中。這里線程和數(shù)據(jù)隊(duì)列構(gòu)成了一個(gè)緩沖機(jī)制,以滿足計(jì)算機(jī)的實(shí)時(shí)處理要求,它可以平滑從閱讀器接收到的大量簡(jiǎn)單重復(fù)無(wú)序數(shù)據(jù),按要求進(jìn)行處理。每個(gè)閱讀周期 (讀周期是和讀寫(xiě)器交互的最小單位)線程接收一組EPCs(標(biāo)簽EPC,閱讀器ID,時(shí)間戳)組合,將其發(fā)送到消息隊(duì)列,對(duì)其進(jìn)行事件有效性驗(yàn)證,檢查是否出現(xiàn)讀寫(xiě)錯(cuò)誤或漏讀,實(shí)現(xiàn)對(duì)數(shù)據(jù)的初步過(guò)濾。正確讀取的數(shù)據(jù)記錄在數(shù)據(jù)庫(kù)的Observation表中。
表1 Observation表
2.2 事件處理層
事件處理層位于原始數(shù)據(jù)采集層和業(yè)務(wù)邏輯之間。它根據(jù)上層系統(tǒng)發(fā)送的定義文件和回發(fā)地址,生成報(bào)告文件,按發(fā)布/訂閱機(jī)制將報(bào)告反饋給系統(tǒng) J。原始數(shù)據(jù)采集層提供了硬件的統(tǒng)一接口,事件處理層則定義了應(yīng)用系統(tǒng)對(duì)RFID中間件的標(biāo)準(zhǔn)訪問(wèn)方式。它對(duì)原始RFID數(shù)據(jù)進(jìn)一步處理,使數(shù)據(jù)轉(zhuǎn)化為上層系統(tǒng)需要的形式。圖3為RFID數(shù)據(jù)處理流程。
圖3 數(shù)據(jù)處理流程
數(shù)據(jù)流經(jīng)過(guò)緩沖機(jī)制后,還存在著大量的冗余信息,需要對(duì)其進(jìn)行過(guò)濾、聚合,提取出有意義的事件。我們按解析機(jī)制發(fā)來(lái)的事件周期T對(duì)數(shù)據(jù)流進(jìn)行操作,按上層定義的業(yè)務(wù)規(guī)則判斷事件類型,并存儲(chǔ)在相應(yīng)的表格中。
2.2.1 過(guò)濾機(jī)制
經(jīng)過(guò)緩沖機(jī)制后的數(shù)據(jù)流還存在著大量的重復(fù),即閱讀器重復(fù)和標(biāo)簽重復(fù)。標(biāo)簽位于一個(gè)閱讀器識(shí)讀范圍內(nèi)時(shí),閱讀器就會(huì)不斷地讀取標(biāo)簽數(shù)據(jù),直到標(biāo)簽離開(kāi)為止,稱為標(biāo)簽重復(fù);另外,當(dāng)標(biāo)簽同時(shí)處于多個(gè)閱讀器的識(shí)讀范圍內(nèi)時(shí),它的數(shù)據(jù)也會(huì)被不同的閱讀器重復(fù)讀取。圖4為閱讀器重復(fù)。
為解決上述問(wèn)題,對(duì)標(biāo)簽重復(fù),我們只記錄標(biāo)簽第一次出現(xiàn)和最后一次出現(xiàn)的時(shí)間;對(duì)閱讀器重復(fù),一是在布置閱讀器位置時(shí)考慮到交疊情況,盡量用最少的閱讀器數(shù)量覆蓋全部區(qū)域。但為了提高識(shí)讀率,往往不能避免交疊。這里采取的是虛擬閱讀器的方法,同一地區(qū)的多個(gè)閱讀器組成一個(gè)虛擬閱讀器。如圖4的R1,R2,R3,R4共同組成一個(gè)虛擬閱讀器V0。過(guò)濾后的數(shù)據(jù)存放在表2中,T—Start為V~Reader初次閱讀某標(biāo)簽的時(shí)間,以后再讀到該標(biāo)簽則更新T—End和Count值(Coum為標(biāo)簽讀取次數(shù),有時(shí)為簡(jiǎn)便起見(jiàn),可略去)。
表2 Filter表
圖4 閱讀器重復(fù)示例
對(duì)Filter表加上觸發(fā)器,當(dāng)有插入事件發(fā)生時(shí),則表示有新的標(biāo)簽出現(xiàn);當(dāng)某標(biāo)簽的T End(Count)在規(guī)定的時(shí)間內(nèi)都未發(fā)生變化時(shí),則引動(dòng)觸發(fā)器,認(rèn)為該標(biāo)簽消失。將消失的標(biāo)簽信息送入下一個(gè)機(jī)制。這樣只報(bào)告標(biāo)簽進(jìn)入和離開(kāi)的時(shí)間,大大減少了數(shù)據(jù)量。
2.2.2 事務(wù)處理機(jī)制
過(guò)濾后的數(shù)據(jù)流蘊(yùn)含大量的語(yǔ)義信息。事務(wù)處理機(jī)制根據(jù)訂閱機(jī)制提供的業(yè)務(wù)規(guī)則,對(duì)數(shù)據(jù)流進(jìn)行分析,提取出有意義的事件模式。
在本項(xiàng)目的倉(cāng)儲(chǔ)管理系統(tǒng)中,有三種基本的事件類型:移動(dòng)事件、警告事件和關(guān)聯(lián)事件。移動(dòng)事件包括出/入庫(kù)事件、移庫(kù)事件,是關(guān)于標(biāo)簽位置發(fā)生變化的事件。警告事件人員進(jìn)入禁區(qū)、操作錯(cuò)誤等。
關(guān)聯(lián)事件為了責(zé)任到戶,系統(tǒng)需要知道某批托盤(pán)貨物 是由哪個(gè)人員駕駛哪輛叉車運(yùn)載的,即人員一叉車一托盤(pán)關(guān)聯(lián)關(guān)系。
下面以出/入庫(kù)事件為例,闡述系統(tǒng)的處理流程。對(duì)接收的標(biāo)簽查詢其歷史信息,判斷其標(biāo)簽類型(托盤(pán)、人員、叉車)。對(duì)托盤(pán)標(biāo)簽來(lái)說(shuō),如果查詢歷史信息,該托盤(pán)原始位置為車間,且初始默認(rèn)為空托,入庫(kù)門閱讀器讀到該標(biāo)簽信息,則為入庫(kù)事件,于是將該事件插入到入庫(kù)表中。同理,出庫(kù)事件、轉(zhuǎn)庫(kù)事件和警告事件都會(huì)引起相應(yīng)的表格操作。
2.2.3 訂閱/解析器
訂閱/解析器使得系統(tǒng)有著更好的可擴(kuò)展性和可移植性。在原始數(shù)據(jù)采集層,代理兼容了不同的設(shè)備接口,使中間件與設(shè)備無(wú)關(guān)。而解析機(jī)制則將上層系統(tǒng)發(fā)來(lái)的定義文件轉(zhuǎn)化為中間件可以理解的方式。事件周期T和業(yè)務(wù)規(guī)則都是由上層定義的,中間件只需按要求進(jìn)行處理就可以了。報(bào)告文件由事務(wù)處理機(jī)制生成并發(fā)送到指定位置,同時(shí)在數(shù)據(jù)庫(kù)記錄。
2.2.4 數(shù)據(jù)庫(kù)支持
傳統(tǒng)的數(shù)據(jù)庫(kù)更新并不頻繁按設(shè)定的時(shí)間進(jìn)行。但RFID數(shù)據(jù)庫(kù)的更新非常頻繁。閱讀器不斷的讀入原始數(shù)據(jù),進(jìn)行過(guò)濾、聚合處理后的數(shù)據(jù)要進(jìn)行存儲(chǔ),上層應(yīng)用程序又不斷地進(jìn)行查詢,使得RHD數(shù)據(jù)庫(kù)的構(gòu)建和傳統(tǒng)數(shù)據(jù)庫(kù)不同,需要分層建立。如圖5所示:底層是原始RHD數(shù)據(jù)庫(kù),過(guò)濾聚合(清理)后的數(shù)據(jù)庫(kù)位于第二層,然后是業(yè)務(wù)邏輯層,為便于查詢,最上層由需要頻繁查詢的數(shù)據(jù)組成。這些層次對(duì)應(yīng)著中間件數(shù)據(jù)處理的不同階段。
圖5 數(shù)據(jù)庫(kù)層次示例
3 RFID技術(shù)在倉(cāng)儲(chǔ)管理中的應(yīng)用
廣東某公司的石化倉(cāng)儲(chǔ)計(jì)量控制系統(tǒng)應(yīng)用RFID技術(shù)有較好的效果,它可以實(shí)時(shí)顯示庫(kù)存狀態(tài),對(duì)貨物進(jìn)行準(zhǔn)確定位,積極支持上層查詢,對(duì)數(shù)據(jù)進(jìn)行有效采集、傳輸和記錄,實(shí)現(xiàn)對(duì)貨品的動(dòng)態(tài)管理,提高效率和安全性。
3.1 定位
標(biāo)簽的原始位置,出入庫(kù)記錄,轉(zhuǎn)庫(kù)記錄都被整合在History表中,顯示每個(gè)標(biāo)簽的歷史位置信息。為更精確地獲取貼標(biāo)簽的庫(kù)內(nèi)位置,需要在倉(cāng)庫(kù)內(nèi)部布置位置閱讀器,獲取標(biāo)簽信息。這部分的功能有待系統(tǒng)進(jìn)一步擴(kuò)展。
3.2 查詢監(jiān)控
系統(tǒng)要了解出庫(kù)物品和入庫(kù)物品是否與出庫(kù).單/入庫(kù)單一致,需要對(duì)貨品進(jìn)行跟蹤監(jiān)控,查詢是否有漏讀或不可靠閱讀;出/入庫(kù)貨品種類數(shù)量、人員叉車托盤(pán)是否按指定分配等。應(yīng)用程序可以直接查詢數(shù)據(jù)庫(kù),也可以用發(fā)送/訂閱模式從中間件獲得實(shí)時(shí)信息。當(dāng)發(fā)現(xiàn)庫(kù)存量、出/入庫(kù)計(jì)劃、計(jì)劃外出庫(kù)或操作不規(guī)范等情況,系統(tǒng)自動(dòng)報(bào)警。
3.3 顯示庫(kù)存狀態(tài)
為了即時(shí)獲取庫(kù)存數(shù)量,庫(kù)存量=原始庫(kù)存量+入庫(kù)量一出庫(kù)量。對(duì)入庫(kù)表、出庫(kù)表添加觸發(fā)器,一旦有插入操作,并且出入庫(kù)量不為0,即不為空托時(shí),會(huì)啟動(dòng)一個(gè)觸發(fā)器,對(duì)產(chǎn)品表的庫(kù)存量進(jìn)行修改。以下為對(duì)入庫(kù)表加上觸發(fā)器:
4 結(jié)語(yǔ)
本文主要介紹了RFID倉(cāng)庫(kù)管理系統(tǒng)中RFID中間件的設(shè)計(jì)問(wèn)題。應(yīng)用RFID標(biāo)簽和閱讀器實(shí)現(xiàn)對(duì)貨品的動(dòng)態(tài)管理,可提高效率和安全性。同時(shí)為了適應(yīng)不同的閱讀器和應(yīng)用系統(tǒng)要求,采用RFID中間件技術(shù),使RFID數(shù)據(jù)采集與應(yīng)用程序相分離,不僅適用于倉(cāng)儲(chǔ)管理系統(tǒng),稍作改進(jìn)后可推廣到其他的商業(yè)領(lǐng)域中去。
本文提出的中間件模型按功能分為兩層,針對(duì)數(shù)據(jù)處理的不同階段有相應(yīng)的機(jī)制進(jìn)行處理。在實(shí)際應(yīng)用中,一些系統(tǒng)只使用中間件完成數(shù)據(jù)采集功能,剩下的工作完全由應(yīng)用系統(tǒng)和數(shù)據(jù)庫(kù)交互完成。本文對(duì)中問(wèn)件的功能進(jìn)行了拓展,對(duì)數(shù)據(jù)庫(kù)進(jìn)行過(guò)濾、聚合、事件模式提取,使原始數(shù)據(jù)轉(zhuǎn)化為上層需要的形式,更好地適應(yīng)了系統(tǒng)需求。應(yīng)用代理和發(fā)布/訂閱技術(shù),使系統(tǒng)有良好的可擴(kuò)展性和移植性。
(企業(yè)數(shù)字化技術(shù)教育部工程研究中心;同濟(jì)大學(xué)CAD研究中心;中國(guó)石化股份有限公司茂名分公司,狄菲 ,趙衛(wèi)東 ,周志平 ,彭瑞 ,季軍)