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