器材倉儲管理是裝備器材保障的重要組成部分, 是裝備技術性能充分發揮的重要保障, 也是影響部隊戰斗力的關鍵因素[1]。目前, 我軍器材倉庫中保障物資種類和數量繁多, 但倉儲管理手段卻比較落后, 大部分仍主要依賴人工方式, 信息化程度不高。雖然也有部分倉庫利用條碼化管理實現了信息采集的數字化, 但是條碼技術存在信息無法更改、存儲容量小以及讀取信息不方便等缺點, 不能適應新形勢下器材倉儲管理快速、有效獲取信息的要求[2]。RFID (Radio Frequency Identification) 無線射頻識別技術具備對多個高速移動目標進行非接觸識別、電子標簽可重復使用且存儲容量大等優勢[3], 正逐漸被廣泛應用于物流倉儲、交通以及軍事等多個領域。本文以“試點部隊射頻識別系統建設”項目為依托, 深入分析了RFID在器材倉儲管理中的應用需求, 設計并實現了基于RFID的器材倉儲管理信息系統, 實現器材倉儲信息的自動采集, 改善器材倉儲管理流程, 大大提高器材倉儲的管理效率, 有效實現了對器材的信息化、自動化管理。
器材倉儲管理主要指對器材庫中的物資、環境、人及其運行過程, 有目的地加以計劃、組織、指揮、監督和調節的工作行為, 其主要任務是完成器材出入庫、器材倉庫盤點、貨位管理等工作[2]。針對傳統器材倉儲管理存在的問題, 實現器材倉儲管理從手工方式到信息化的根本轉變, 首先需要對各類裝備器材進行數字化統一編碼, 完成器材倉儲管理中的入庫、出庫、盤點和貨位分配的規范化和自動化, 減少工作量, 全面提高了工作效率。根據對實際倉儲管理作業流程的分析, 得出具體需求分析如下:
(1) 器材出入庫自動化信息采集。結合RFID固定式讀寫器和手持式讀寫器正確獲取器材的RFID數據信息, 快速、準確地完成器材出入庫操作。
(2) 倉儲庫存盤點。通過手持讀寫器讀取器材標簽信息, 完成庫存盤點工作;或隨機抽取貨物獲取貨位信息, 進行進程抽查盤點工作。
(3) 動態貨位管理。通過貨位標簽標識倉庫貨位信息, 監控貨位使用情況, 根據貨位倉儲空間信息, 動態分配貨位, 最大限度地利用倉儲空間。
(4) 查詢追蹤貨物位置。通過查詢獲取貨物實際存儲位置, 將信息傳輸到手持終端, 實現貨物定位。
根據RFID系統的概念和工作原理, 結合器材倉儲管理的實際需要, 系統硬件拓撲結構如圖1所示。
系統主要由前端硬件設備、工作站及數據庫服務器三部分組成。系統前端硬件設備主要包括電子標簽、讀寫器和電子標簽打印機。通過電子標簽打印機和相應的標簽管理軟件自動完成標簽信息寫入和打印, 生成唯一的器材和貨位電子標簽。固定式和手持式讀寫器完成RFID標簽信息采集, 固定讀寫器安裝在器材倉庫出入口, 完成器材出入庫標簽信息的讀取, 數據通過交換機傳送到器材倉庫管理局域網上;手持式讀寫器主要在庫存盤點和貨位管理中使用, 數據通過無線方式發送給無線接收器, 再由交換機傳送到器材倉庫管理局域網上, 之后由工作站完成日常業務數據處理, 并實現數據庫服務器上的數據存儲和更新。
根據系統需要進行大量數據傳遞的特點, 利用客戶端快速處理和響應的優勢, 系統采用C/S模式進行開發, 基于.net平臺構建系統三層軟件架構, 即數據訪問層、業務邏輯層和表示層, 系統軟件架構如圖2所示。
表示層、業務邏輯層和數據訪問層形成了一個緊密的整體, 它們在邏輯上相對獨立, 在功能上相互依賴。業務邏輯層依賴于表示層顯示和傳送數據, 依賴數據訪問層提供和存儲數據, 數據訪問層依賴業務邏輯層調用相關接口來傳遞數據。其中, 數據訪問層也稱數據持久層, 主要用于訪問數據庫, 主要的操作有查詢 (Select) 、更新 (Update) 、添加 (Insert) 、刪除 (Delete) 等。
由于器材存在的形態和類別多種多樣, 因此對各類裝備器材進行數字化統一編碼就成為實現器材信息自動采集的關鍵問題。系統對主要涉及到的單件器材、集合體器材及貨位三類電子標簽進行了唯一編碼設計, 標簽編碼格式如圖3所示。
標簽編碼格式由TID區和唯一編碼區兩部分組成。TID區即標簽ID號, 是一組64 b的號碼, 是標簽芯片的生產商在生產芯片時就燒死在標簽芯片內的信息, 不可改寫, 具有全球唯一性。唯一編碼區針對三種情況有不同設計, 其中發行機構代碼是一組8位數字的編碼, 用于標識發行該標簽的組織, 可以使用部隊番號作為發行機構代碼。
單件標簽編碼是對單一器材、包裝箱進行的標簽編碼。其唯一編碼區采用“類別代碼+發行機構代碼+順序號”的方式進行編碼, “類別代碼”是一組18位數字的編碼, 用于標識管理對象的類別, 可采用軍用器材編碼進行標識。“順序號”規定為一組14位數字的號碼, 是該類器材的順序編號。三組號碼共計40位數字, 共同組成了某一單件器材、包裝箱的唯一標識。
貨位標簽編碼是對某一貨位進行唯一標識的標簽編碼, 其唯一編碼區采用“發行機構代碼+‘庫號+區號+架號+層號+位號'”的方式實現庫位信息的唯一編碼。“庫號+區號+架號+層號+位號”五組號位用于標識某一貨位的位置, 每組號位分別采用4位數字表示, 具體結構如圖4所示。
其中, 每組號位中的前三位數字‘ABC'表示貨位針對該號位的具體位置, 第四位‘D'是擴展數, 當庫位調整不超過9個位置時, 該位可用于標識增加的位置, 而無需調整其他貨位信息, 提高了系統的靈活性和擴展性。例如, 當3號庫12區需要在34架和35架間增加一個貨架時, 新增貨架可表示為“0341”, 其它號位可保持不變。
集合體編碼主要是對打包了多個或多種器材的集合體進行標識, 其唯一編碼區采用“發行機構代碼+順序號”進行編碼, 順序號規定為一組32位數字編碼, 是集合體的順序號。需要注意的是, 集合體在拆分或重組時, 需要重新建立新的集合體標簽編碼, 而不是在原有標簽編碼的基礎上進行修改, 避免造成系統數據混亂。
持久化是把內存中的對象永久保存到存儲設備中使其持久, 可以保存到關系型數據庫、磁盤文件或XML數據文件中。系統采用了ORM (Object/Relational Mapper) 對象-關系型數據映射持久化技術, 選用Entity Framework (EF) 實體框架在ADO.NET上層實現ORM封裝[4]。EF利用抽象化數據結構的方式, 將數據庫中的E/R模型完全轉成對象模型。在創建實體時采用DB-First的設計方式, 先設計數據庫, 再由EF自動生成模型, 通過EF自動創建一個類型為Object Context的上下文環境變量以及所有的實體類的定義, 由這個上下文環境變量完成對實體類的持久化操作。
MVVM模式由MVC模式演變而來, 是運用數據綁定和命令相結合的方法將顯示層和業務邏輯層完全分離, 具有非常良好的可擴展性[5]。標準MVVM模式分為三層, 即Model層、View層和View Model層, 如圖5所示。
Model層是MVVM模式架構的底層, 與EF密切相關, Model層中的類就是EF生成的實體, 可以通過訪問該層中的對象實現對數據庫的讀寫。View Model層介于Model層和View層之間, 實現多Model層的封裝和對View層的數據綁定。系統中選用Caliburn.Micro (CM) 實現基于WPF的MVVM模式。首先, 集成CM程序集, 通過加載器Bootstrapper啟動框架, 配置CM的加載策略, 重載Configure函數設置IOC (Inversion of Control) 控制反轉容器, 使用MEF (Managed Extensibility Framework) 作為默認的IOC實現, 通過Get Instance方法獲取IOC容器中的組件, 通過重載On Startup方法定義程序的入口-登錄界面, 通過配置App.xaml文件使其發揮作用。之后, 通過CM的Bind.Model屬性綁定View和View Model, 將所有與界面相關的業務邏輯都封裝在View Model中, 使界面設計與業務邏輯開發相分離, 從而提高開發效率, 便于測試。
系統實現后, 為驗證系統的效率及準確性, 對系統進行了實際部署及試運行, 并針對安裝于器材倉庫門口的固定讀寫器進行大批量電子標簽識別壓力測試。測試時, 將貼有RFID標簽不同數量的器材分批次經過固定讀寫器進行出入庫操作, 測試結果如表1所列。
表1中, 單位器材入庫數量是指單次進行出入庫操作的器材標簽數量, 每單位數量的讀取測試重復6次, 表中給出每次識別成功標簽數量以及該批次器材標簽平均讀取成功率。為最大限度測試器材出入庫操作讀取準確率, 測試時選取的單位讀取數量較大, 從測試結果可以看出, 單位器材出入庫數量越少識別成功率越高。當單位器材入庫數量過大時, 由于電磁干擾等多因素影響, 會導致識別時間過長、讀取率下降等問題, 但在該項目實際使用中, 單次出入庫器材數量不大, 即使固定讀寫器識別出現誤差, 也可以通過手持讀寫器予以確認, 該系統完全滿足用戶需要。
本系統目前已經在部隊某器材倉庫正式上線使用, 運行效果良好, 徹底改善了傳統的器材管理模式, 極大地提高了器材倉儲管理效率。RFID技術在器材倉儲管理中的應用是一項復雜的工程, 關于RFID的一些關鍵問題仍需得到進一步研究。目前, 全軍沒有形成系統性信息編碼體系, 各種RFID應用中的信息編碼都是基于各自的管理需求制定的, 難以滿足不同系統間的互聯互通;此外, 作為各類軍事信息系統的一種高效采集手段, RFID標簽會存有一些重要的信息, 其安全問題必須加強研究[6]。隨著全軍信息化建設的全面推進, 作為信息采集手段的RFID在軍事應用方面必將得到更廣泛的應用。
下一篇: 淺談現代煤礦企業的倉儲管理