基于电子标签的仓储物流控制及管理系统
作者:廉小亲 翁贻方
来源:RFID世界网
日期:2007-09-24 17:03:16
摘要:给出了基于电子标签的仓储物流控制及管理系统的硬软件组成,阐述了系统方案的设计思路及实现方法。该系统通过电子标签读写器实现了对电子标签的读写;采用OPC技术与组态软件WinCC进行通信,通过PLC实现了对物流的控制;通过对数据库SQL Server访问,完成了物品信息、仓库信息等的自动存储、查询和删除多项功能。系统综合实现了物品单件/批量入库、出库及库内移动等操作。为电子标签技术、物流控制及物流管理的结合提供了应用实例。
0 引 言
电子标签是一种被称作“射频识别(radio frequency identification,RFID)”的技术。利用射频方式进行非接触双向通信,以达到识别目的并交换数据。在我国物流业飞速发展的今天,射频技术以其特有的优势,克服了条码识别需要光学可视、识别距离短、信息不可更改等缺点,成为物流自动识别领域一个耀眼的亮点[1] 。射频技术的出现,改变了传统的数据采集方法,它信息含量大,可以根据需要实时更改,简化物流的中间环节,缩短物流人工操作时间,其准确性和快速性越来越得到行业的认同。
电子标签作为数据载体,能起到标识识别、物品跟踪、信息采集的作用。虽然电子标签技术在国外已成功应用于物流业,大大提高了物流作业效率,但在国内的应用还处于起步阶段,目前在物流业还没有较大规模的应用案例。本文研究实现了基于INTERMEC公司电子标签的物流控制及管理系统。
1 仓储物流控制及管理系统的方案
I.1 物流控制及管理系统硬件组成
物流控制及管理系统由硬件和软件组成。其硬件如图1所示,主要由物流控制硬件平台、物流控制及管理计算机、电子标签及电子标签读写器组成。
物流控制硬件平台由堆垛机、机械手和辊道输送机3部分组成, 控制系统采用了3个西门子公司S7.200系列PLC(CPu226)并且相互之间通过EM277(扩展从站模块)连接到PROFIBuS.DP现场总线控制网。
物流控制及管理计算机:① 负责通过与电子标签读写器的通信完成与电子标签信息的交互,实现对物品进出库的识别;②通过PROFIBUS现场控制网完成与PLC控制器的数据交换,以控制两台辊道输送机、一台4自由度机械手、一台全自动堆垛机,实现货物的自动出、入库或库内移动等工作;③ 对货物、仓库、客户、管理人员等进行实时管理等。
1.2 物流控制及管理系统软件组成
物流控制及管理系统软件分为4部分:
①物流控制及管理系统与电子标签读写器的网络通信;
②物流控制及管理系统前台主界面及后台数据库。该部分主要包括:入库模块、出库模块、报表模块、储位查询模块、物品查询模块、客户信息查询模块、盘点模块、仓库管理模块、人员管理模块和帮助模块等;
③物流控制软件设计。采用西门子WinCC组态软件进行组态及PLC s7—200编程;
④ 物流控制及管理系统与PLC的通信。物流控制平台的组态软件采用了WinCC,系统与PLC通信工作实质上是通过系统与WinCC通信实现的。通信参数为当前入/出库命令、入出库货物的货位号(排、列、层),以及PLC入/出库动作完成与否的标志。
2 仓储物流控制及管理系统的设计及实现
2.1 电子标签、读写器的选择及物品编码的设计
电子标签芯片采用了INTERMEC公司的915 MHz芯片[2],通信数据速率为9 600 bps,具备防冲突机制,具备数据完整性及数据安全性。读写器采用美国INTERMEC公司的2100 915M读写器。该读写器支持串口及标准网口通信。读取距离可达3米,写入距离为读取距离的70%。
为实现真正的“一物一码”,编码原则采用了EPC(electron production code)码[3] 。由于EPC码是物品本身具有的属性,即物品在出厂时会由生产厂商对其进行EPC编码,写入到电子标签中。而EPC编码是在生产厂商加入EPC global组织后,由组织给生产厂商分配一个编码的空间以及一些编码规则,让企业自行编码。本系统为方便操作,只定义了12位二进制位的编码。编码规则如图2所示。
2.2 物流控制及管理系统与标签读写器通信实现
本文采用C#语言编程,通过调用基于COM 组件的In—terop.vtComRFID.d11动态库文件的5个主要接口函数实现物流控制及管理系统与读写器的通信,接口函数的主要功能如表1所示。通信内容为物品编码。
2.3 物流控制与管理系统数据库设计
2.3.1 数据库表的设计
根据系统功能要求进行数据库中表格的建立。通过对用户的需求分析,需要记录物品的基本信息、仓库的基本信息、仓库的操作信息。
(1)物品的基本信息表包括:物品的编号、名称、生产厂商、种类、规格、等级和物品所属的客户,其中物品的编号为主键。因此要建立一个物品列表,用以储存物品的信息。同时需要为物品基本信息中生产厂商、物品种类和客户建立单独的表。在物品的生产厂商表中包含生产厂商的名称和代号,生产厂商代号为主键;在物品种类表中包含物品种类的名称和代号,物品种类代号为主键;在客户表中包含客户的名称、联系人、和联系电话,客户代号为主键。这样的设计完全满足BCNF范式[4],表格之间的条理比较清晰。
各个表之间的外键关系如下:生产厂商表的主键与物品列表中的生产厂商代号相关联;物品种类表的主键与物品列表中的生产厂商代号相关联;客户表的主键与物品列表中的客户代号相关联。
(2)仓库的基本信息应包括用于记录职工基本信息的仓库人员管理表,及用于记录仓库库位信息的仓库信息表。仓库人员管理表中包括职工的代号、姓名、职位、联系电话、身份证号码和住址,职工代号为主键。仓库信息表中包括存放地点(相当于库位的标号)、仓库号、区域、货架号、层、行、列、是否为空几个属性,其中存放地点为主键。
(3)仓库的操作信息应包括用于储存入、出库及库内移动操作记录的入库表、出库表及库内移动表;用于储存当前仓库中物品记录的库存表;用于记录员工增删情况的人事变动表。入库表中应该记录物品的编码、入库的时间、经手人和存放地点,其中以物品编码和入库时间联合作为主键;出库表中应该记录物品的编码、出库时间和经手人,其中以物品编码和出库时间联合作为主键;库内移动表中应该记录物品的编码、移动时间、经手人、原存放地点和新存放地点,其中以物品编码和移动时间联合作为主键;库存表中应该包括物品的编码、入库时间、存放地点和经手人,其中以物品的编码作为主键。人事变动表中应该包括操作号、人事变动的内容、变动的时间、变动人员的代号和变动人员的姓名,其中操作号为主键。另外,系统中还需要有用户的登录信息表用于记录用户的登录信息。登录信息表中应该有登录的用户名和密码,其中登录名为主键。为安全起见,在设计登录界面密码及储存于数据库时,系统采用MD5加密算法[5.6] 。
2.3.2 数据库中表的关系
数据库中表的关系如图3所示。它描述了数据库中所有的表以及这些表之间的关系。对于表之间的触发器、为程序设计的存储过程、约束等具体内容这里没有详细列出。
2.4 物流控制与管理系统实现的功能
物流控制与管理系统功能结构如图4所示。
主要有:入库模块、出库模块、报表模块、储位查询模块、物品查询模块、客户信息查询模块、盘点模块、仓库管理模块、人员管理模块、帮助模块。所有的功能模块都需要与数据库相关联。主界面采用C#语言编程,数据库采用SQL Server2000。在与数据库连接的过程中,采用ADO.NET技术[7] 。
当有出入库或者库内移动操作时,系统要与电子标签读写器进行通信将相关信息写入标签, 并要实现与组态软件WinCC的通信,将操作命令、货物的货位号发送给WinCC,从而通过PLC控制辊道输送机、机械手、堆垛机执行相应的操作。同时把信息写入数据库,实现数据的动态更新。限于篇幅下面主要介绍出库模块和物品查询模块。
2.4.1 出 库
出库模块具有批量出库和单件出库两个功能。
批量出库中用户只需要输入要出库的货品信息及数量,该模块通过查询数据库,按一定策略选定所要的物品,从而确定物品所在的货位号(排,列,层),并将此信息连同出库命令通过OPC(OLE for process contro1)技术传给WinCC组态软件,以控制辊道输送机、堆垛机和机械手完成取货操作。当物品到达仓库出口处,系统接收到PLC出库动作完成信号后,要与标签读写器通信以修改物品标签的信息,同时采用ADO.NET技术,调用数据库中的存储过程修改数据库中相关信息。在实现此功能中,货位的选取,操作结果的判定,与读写器的数据交互,与组态软件的通信等这些工作需协同进行。
单件出库中用户可以根据货品信息和储位信息指定某个确定的物品,然后该模块选择这个货品出库,达到了精确出库的目的。单件出库系统只取出一个惟一确定的物品;而批量出库会顺序取出一些物品,是一个循环操作,直到要出库的物品都出库完毕为止。
2.4.2 物品查询
此模块支持本地查询及嘲络鱼询。可以查询所有物品信息,包括曾经存放过的和现在存放在仓库中的物品信息。为了查询数据的方便,本模块支持按物品名称查询、物品编码、生产厂商名称、生产厂商代码查询。数据动态实时更新。
2.5 系统与PLC的通信
物流控制平台在与WinCC通信中,采用了OPC通信方式[8] 。本文使用了opcrcw.comn.dll、opcrcw.da.dll两个动态连接库文件。在C 编程环境中引用这两个文件,调用了这两个动态连接库文件的接口函数。
2.6 物流控制平台及控制流程
物流控制平台的基本过程控制单元是PLC,包括供电单元、中央控制单元、数字输入/输出模块、模拟输入输出模块、PROFIBUS—DP扩展从站模块(EM277)。该平台使用s7—200系列PLC分别控制堆垛机、机械手、辊道3个部分,其中巷道堆垛机是物流仓储最主要的设备,它通过对货物进行存、取和转移,完成入库、出库等功能。堆垛机具有3大机构:运行机构、升降机构、货又伸缩机构。运行机构和升降机构使堆垛机到达指定货位。货又伸缩机构和升降机构组合完成存取作业。运行机构与丌降机构的速度控制通过两台步进电机进行控制,货叉伸缩机构采用一台直流电机进行控制。堆垛机具有自动认址与精确定位功能,从而实现高精度控制。
控制流程以入库为例说明。装在仓库出/入货台处的固定电子标签读写器在检测到有物品时,物流控制及管理计算机通过读写器和标签进行信息交互,根据标签的物品信息查询数据库,分配给物品一个货位号,并将货位号写入标签,进而将入库命令、当前入库货物的货位号(排,列,层)传送给物流控制平台。首先进库辊道上的入库继电器动作,辊道输送带动作,将物品传送至立体仓库前,机械手动作,将物品抓起送至堆垛机上,然后堆垛机将货物送到指定仓位。运行完成后,堆垛机和机械手均回到原位。物流控制平台将PLC入库动作完成信号反馈给系统,以进行下一次入库操作。出库操作流程类似。
3 结束语
本文以我校商业自动化物流重点实验室的物流实验设备为平台,设计了基于电子标签的物流控制与管理演示与验证系统,将管理和控制融于一体,发挥了电子标签技术具有可识别高速运动物体,操作快捷方便等特点,实现物流控制及管理的自动化,可以满足物流业信息流量不断增大和信息处理速度不断提高的需求,为电子标签技术、物流控制及物流管理的结合提供了应用实例。
参考文献:
[1] 吕杰.射频识别技术RFID及其应用(上)[J].智能建筑与城市信息,2004,(1 1):72—76
[2] 廉小亲,翁贻方.基于电子标签技术的物流自动化管理系统[J].微计算机信息,2006,22(5—3):137—138.
[3] 秦虎,王红卫,谢勇.基于电子标签的数据采集系统[J].物流技术,2004,(10):49—52
[4]丁智斌,石浩磊.关系数据库设计与规范化[J].计算机与数字工程,2005,33(2):114—116
[5] 李霞.MD5加密算法浅析及应用[J].运城学院学报,2005,23(5):56—57.
[6] 易红军,佘名高.MD5算法与数字签名IJJ.计算机与数字工程,2006,34(5):44—46.
[7] Ardestani K,Hofman K.高效掌握ADO.NET-C 编程篇[M].北京:清华大学出版社,2003.1-324
[8]赵明生,李爱梅.DDE技术及其在先进控制技术巾的应用计算机工程与设计,2005,26(9):2546—2549.
电子标签是一种被称作“射频识别(radio frequency identification,RFID)”的技术。利用射频方式进行非接触双向通信,以达到识别目的并交换数据。在我国物流业飞速发展的今天,射频技术以其特有的优势,克服了条码识别需要光学可视、识别距离短、信息不可更改等缺点,成为物流自动识别领域一个耀眼的亮点[1] 。射频技术的出现,改变了传统的数据采集方法,它信息含量大,可以根据需要实时更改,简化物流的中间环节,缩短物流人工操作时间,其准确性和快速性越来越得到行业的认同。
电子标签作为数据载体,能起到标识识别、物品跟踪、信息采集的作用。虽然电子标签技术在国外已成功应用于物流业,大大提高了物流作业效率,但在国内的应用还处于起步阶段,目前在物流业还没有较大规模的应用案例。本文研究实现了基于INTERMEC公司电子标签的物流控制及管理系统。
1 仓储物流控制及管理系统的方案
I.1 物流控制及管理系统硬件组成
物流控制及管理系统由硬件和软件组成。其硬件如图1所示,主要由物流控制硬件平台、物流控制及管理计算机、电子标签及电子标签读写器组成。
物流控制硬件平台由堆垛机、机械手和辊道输送机3部分组成, 控制系统采用了3个西门子公司S7.200系列PLC(CPu226)并且相互之间通过EM277(扩展从站模块)连接到PROFIBuS.DP现场总线控制网。
物流控制及管理计算机:① 负责通过与电子标签读写器的通信完成与电子标签信息的交互,实现对物品进出库的识别;②通过PROFIBUS现场控制网完成与PLC控制器的数据交换,以控制两台辊道输送机、一台4自由度机械手、一台全自动堆垛机,实现货物的自动出、入库或库内移动等工作;③ 对货物、仓库、客户、管理人员等进行实时管理等。
1.2 物流控制及管理系统软件组成
物流控制及管理系统软件分为4部分:
①物流控制及管理系统与电子标签读写器的网络通信;
②物流控制及管理系统前台主界面及后台数据库。该部分主要包括:入库模块、出库模块、报表模块、储位查询模块、物品查询模块、客户信息查询模块、盘点模块、仓库管理模块、人员管理模块和帮助模块等;
③物流控制软件设计。采用西门子WinCC组态软件进行组态及PLC s7—200编程;
④ 物流控制及管理系统与PLC的通信。物流控制平台的组态软件采用了WinCC,系统与PLC通信工作实质上是通过系统与WinCC通信实现的。通信参数为当前入/出库命令、入出库货物的货位号(排、列、层),以及PLC入/出库动作完成与否的标志。
2 仓储物流控制及管理系统的设计及实现
2.1 电子标签、读写器的选择及物品编码的设计
电子标签芯片采用了INTERMEC公司的915 MHz芯片[2],通信数据速率为9 600 bps,具备防冲突机制,具备数据完整性及数据安全性。读写器采用美国INTERMEC公司的2100 915M读写器。该读写器支持串口及标准网口通信。读取距离可达3米,写入距离为读取距离的70%。
为实现真正的“一物一码”,编码原则采用了EPC(electron production code)码[3] 。由于EPC码是物品本身具有的属性,即物品在出厂时会由生产厂商对其进行EPC编码,写入到电子标签中。而EPC编码是在生产厂商加入EPC global组织后,由组织给生产厂商分配一个编码的空间以及一些编码规则,让企业自行编码。本系统为方便操作,只定义了12位二进制位的编码。编码规则如图2所示。
2.2 物流控制及管理系统与标签读写器通信实现
本文采用C#语言编程,通过调用基于COM 组件的In—terop.vtComRFID.d11动态库文件的5个主要接口函数实现物流控制及管理系统与读写器的通信,接口函数的主要功能如表1所示。通信内容为物品编码。
2.3 物流控制与管理系统数据库设计
2.3.1 数据库表的设计
根据系统功能要求进行数据库中表格的建立。通过对用户的需求分析,需要记录物品的基本信息、仓库的基本信息、仓库的操作信息。
(1)物品的基本信息表包括:物品的编号、名称、生产厂商、种类、规格、等级和物品所属的客户,其中物品的编号为主键。因此要建立一个物品列表,用以储存物品的信息。同时需要为物品基本信息中生产厂商、物品种类和客户建立单独的表。在物品的生产厂商表中包含生产厂商的名称和代号,生产厂商代号为主键;在物品种类表中包含物品种类的名称和代号,物品种类代号为主键;在客户表中包含客户的名称、联系人、和联系电话,客户代号为主键。这样的设计完全满足BCNF范式[4],表格之间的条理比较清晰。
各个表之间的外键关系如下:生产厂商表的主键与物品列表中的生产厂商代号相关联;物品种类表的主键与物品列表中的生产厂商代号相关联;客户表的主键与物品列表中的客户代号相关联。
(2)仓库的基本信息应包括用于记录职工基本信息的仓库人员管理表,及用于记录仓库库位信息的仓库信息表。仓库人员管理表中包括职工的代号、姓名、职位、联系电话、身份证号码和住址,职工代号为主键。仓库信息表中包括存放地点(相当于库位的标号)、仓库号、区域、货架号、层、行、列、是否为空几个属性,其中存放地点为主键。
(3)仓库的操作信息应包括用于储存入、出库及库内移动操作记录的入库表、出库表及库内移动表;用于储存当前仓库中物品记录的库存表;用于记录员工增删情况的人事变动表。入库表中应该记录物品的编码、入库的时间、经手人和存放地点,其中以物品编码和入库时间联合作为主键;出库表中应该记录物品的编码、出库时间和经手人,其中以物品编码和出库时间联合作为主键;库内移动表中应该记录物品的编码、移动时间、经手人、原存放地点和新存放地点,其中以物品编码和移动时间联合作为主键;库存表中应该包括物品的编码、入库时间、存放地点和经手人,其中以物品的编码作为主键。人事变动表中应该包括操作号、人事变动的内容、变动的时间、变动人员的代号和变动人员的姓名,其中操作号为主键。另外,系统中还需要有用户的登录信息表用于记录用户的登录信息。登录信息表中应该有登录的用户名和密码,其中登录名为主键。为安全起见,在设计登录界面密码及储存于数据库时,系统采用MD5加密算法[5.6] 。
2.3.2 数据库中表的关系
数据库中表的关系如图3所示。它描述了数据库中所有的表以及这些表之间的关系。对于表之间的触发器、为程序设计的存储过程、约束等具体内容这里没有详细列出。
2.4 物流控制与管理系统实现的功能
物流控制与管理系统功能结构如图4所示。
主要有:入库模块、出库模块、报表模块、储位查询模块、物品查询模块、客户信息查询模块、盘点模块、仓库管理模块、人员管理模块、帮助模块。所有的功能模块都需要与数据库相关联。主界面采用C#语言编程,数据库采用SQL Server2000。在与数据库连接的过程中,采用ADO.NET技术[7] 。
当有出入库或者库内移动操作时,系统要与电子标签读写器进行通信将相关信息写入标签, 并要实现与组态软件WinCC的通信,将操作命令、货物的货位号发送给WinCC,从而通过PLC控制辊道输送机、机械手、堆垛机执行相应的操作。同时把信息写入数据库,实现数据的动态更新。限于篇幅下面主要介绍出库模块和物品查询模块。
2.4.1 出 库
出库模块具有批量出库和单件出库两个功能。
批量出库中用户只需要输入要出库的货品信息及数量,该模块通过查询数据库,按一定策略选定所要的物品,从而确定物品所在的货位号(排,列,层),并将此信息连同出库命令通过OPC(OLE for process contro1)技术传给WinCC组态软件,以控制辊道输送机、堆垛机和机械手完成取货操作。当物品到达仓库出口处,系统接收到PLC出库动作完成信号后,要与标签读写器通信以修改物品标签的信息,同时采用ADO.NET技术,调用数据库中的存储过程修改数据库中相关信息。在实现此功能中,货位的选取,操作结果的判定,与读写器的数据交互,与组态软件的通信等这些工作需协同进行。
单件出库中用户可以根据货品信息和储位信息指定某个确定的物品,然后该模块选择这个货品出库,达到了精确出库的目的。单件出库系统只取出一个惟一确定的物品;而批量出库会顺序取出一些物品,是一个循环操作,直到要出库的物品都出库完毕为止。
2.4.2 物品查询
此模块支持本地查询及嘲络鱼询。可以查询所有物品信息,包括曾经存放过的和现在存放在仓库中的物品信息。为了查询数据的方便,本模块支持按物品名称查询、物品编码、生产厂商名称、生产厂商代码查询。数据动态实时更新。
2.5 系统与PLC的通信
物流控制平台在与WinCC通信中,采用了OPC通信方式[8] 。本文使用了opcrcw.comn.dll、opcrcw.da.dll两个动态连接库文件。在C 编程环境中引用这两个文件,调用了这两个动态连接库文件的接口函数。
2.6 物流控制平台及控制流程
物流控制平台的基本过程控制单元是PLC,包括供电单元、中央控制单元、数字输入/输出模块、模拟输入输出模块、PROFIBUS—DP扩展从站模块(EM277)。该平台使用s7—200系列PLC分别控制堆垛机、机械手、辊道3个部分,其中巷道堆垛机是物流仓储最主要的设备,它通过对货物进行存、取和转移,完成入库、出库等功能。堆垛机具有3大机构:运行机构、升降机构、货又伸缩机构。运行机构和升降机构使堆垛机到达指定货位。货又伸缩机构和升降机构组合完成存取作业。运行机构与丌降机构的速度控制通过两台步进电机进行控制,货叉伸缩机构采用一台直流电机进行控制。堆垛机具有自动认址与精确定位功能,从而实现高精度控制。
控制流程以入库为例说明。装在仓库出/入货台处的固定电子标签读写器在检测到有物品时,物流控制及管理计算机通过读写器和标签进行信息交互,根据标签的物品信息查询数据库,分配给物品一个货位号,并将货位号写入标签,进而将入库命令、当前入库货物的货位号(排,列,层)传送给物流控制平台。首先进库辊道上的入库继电器动作,辊道输送带动作,将物品传送至立体仓库前,机械手动作,将物品抓起送至堆垛机上,然后堆垛机将货物送到指定仓位。运行完成后,堆垛机和机械手均回到原位。物流控制平台将PLC入库动作完成信号反馈给系统,以进行下一次入库操作。出库操作流程类似。
3 结束语
本文以我校商业自动化物流重点实验室的物流实验设备为平台,设计了基于电子标签的物流控制与管理演示与验证系统,将管理和控制融于一体,发挥了电子标签技术具有可识别高速运动物体,操作快捷方便等特点,实现物流控制及管理的自动化,可以满足物流业信息流量不断增大和信息处理速度不断提高的需求,为电子标签技术、物流控制及物流管理的结合提供了应用实例。
参考文献:
[1] 吕杰.射频识别技术RFID及其应用(上)[J].智能建筑与城市信息,2004,(1 1):72—76
[2] 廉小亲,翁贻方.基于电子标签技术的物流自动化管理系统[J].微计算机信息,2006,22(5—3):137—138.
[3] 秦虎,王红卫,谢勇.基于电子标签的数据采集系统[J].物流技术,2004,(10):49—52
[4]丁智斌,石浩磊.关系数据库设计与规范化[J].计算机与数字工程,2005,33(2):114—116
[5] 李霞.MD5加密算法浅析及应用[J].运城学院学报,2005,23(5):56—57.
[6] 易红军,佘名高.MD5算法与数字签名IJJ.计算机与数字工程,2006,34(5):44—46.
[7] Ardestani K,Hofman K.高效掌握ADO.NET-C 编程篇[M].北京:清华大学出版社,2003.1-324
[8]赵明生,李爱梅.DDE技术及其在先进控制技术巾的应用计算机工程与设计,2005,26(9):2546—2549.