器材仓储管理是装备器材保障的重要组成部分, 是装备技术性能充分发挥的重要保障, 也是影响部队战斗力的关键因素[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在军事应用方面必将得到更广泛的应用。
下一篇: 浅谈现代煤矿企业的仓储管理