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