浅谈RFID系统的组态管理软件设计

时间:2011-08-26

  引言

  随着技术不断革新,RFID产业已进入了成长期。射频识别技术(Radio Frequency Identification,缩写RFID),射频识别技术是20世纪90年代开始兴起的一种自动识别技术,射频识别技术是一项利用射频信号通过空间耦合(交变磁场或电磁场)实现无接触信息传递并通过所传递的信息达到识别目的的技术。从信息传递的基本原理来说,射频识别技术在低频段基于变压器耦合模型(初级与次级之间的能量传递及信号传递),在高频段基于雷达探测目标的空间耦合模型(雷达发射电磁波信号碰到目标后携带目标信息返回雷达接收机)。1948年哈里斯托克曼发表的"利用反射功率的通信"奠定了射频识别技术的理论基础。

  本文参考了国内外几个着名的组态软件产品,采用ActiveX技术开发RFID组态管理软件,ActiveX是Microsoft提出的一组使用COM(ComponentObjectModel,部件对象模型)使得软件部件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。

  1 RFID技术

  射频识别即RFID(Radio Frequency IDentification)技术,又称电子标签、无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。近年来随着科学技术的进步,RFID在生产制造管理、物流配送管理、医药管理等领域得到广泛的应用。一般的RFID系统由硬件、软件和基本的数据格式与通信协议组成。硬件包含电子标签(Tag)、读写器(Reader)和天线三部分。RFID读写器通过天线与RFID电子标签进行无线通信,实现对标签识别码和内存数据的读出或写入操作。目前定义RFID产品的工作频率有低频、高频和甚高频的频率范围内的符合不同标准的不同的产品,而且不同频段的RFID产品会有不同的特性。其中感应器有无源和有源两种方式。

  2 RFID组态管理软件的功能分析

  (1)RFID组态管理软件的开发背景

  ,标签和读写器之间有多种通信协议,目前已确定的标准就有ISO14443、ISO15693、ISO18000等,这造成了当前各厂商的读写器的型号有很多,在RFID系统中对RFID读写器进行配置时很不方便;第二,许多公司的RFID读写器配置软件和业务过程监控软件是两套软件,软件的利用率低。

  (2)RFID组态管理软件的功能分析

  RFID组态管理软件基于Windows平台,通过人机交互,可快速构造和生成监控系统。它可支持不同型号RFID读写器的配置和管理,支持多个RFID读写器的同时访问。另外可提供生产流通过程的数据采集和信息管理。

  RFID组态管理软件的主要性能指标为:在中文Windows下运行;多任务,多线程;多配置RFID读写器的数目为1000;监控界面完整显示时间不大于2秒;支持语音报警;支持报表生成。

  3 RFID组态管理软件的开发工具

  目前组态软件的开发多用VisualC++、VisualBasic和Delphi。在RFID的组态管理软件中采用VC++6.0。VC++6.0是面向对象的编程语言,它提供的MFC类库很好地封装了WindowsAPI函数,充分利用类的继承性、封装性、多态性,用户可方便的设计自己需要的类。

  数据库采用SQLServer2000。SQLServer2000完全运行于Microsoft的Windows操作环境下,是一个高性能的数据管理系统。SQL功能强大且操作简单,能够提供安全可靠的存储功能。利用VC提供的ADO、ODBC等接口可方便实现对SQL数据库的操作。

  4 RFID组态管理软件的功能实现及其关键技术

  RFID组态管理软件采用模块化设计,模块与模块之间尽量独立,接口尽量简单。针对RFID组态管理软件的要求,将其划分为图形绘制模块、数据库管理模块、通信模块、其它模块(报警、报表等)。RFID技术首先在低频得到广泛的应用和推广。该频率主要是通过电感耦合的方式进行工作, 也就是在读写器线圈和感应器线圈间存在着变压器耦合作用。通过读写器交变场的作用在感应器天线中感应的电压被整流,可作供电电压使用。 磁场区域能够很好的被定义,但是场强下降的太快。

  图1 软件体系结构图

  (1) 图形界面模块

  GUI 是 Graphical User Interface 的简称,即图形用户接口,通常人机交互图形化用户界面设计经常读做“goo-ee”,准确来说 GUI 就是屏幕产品的视觉体验和互动操作部分。GUI 是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。   GUI 即人机交互图形化用户界面设计。纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际公司早已意识到 GUI 在产品方面产生的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事 GUI 的研究与设计,同业间也成立了若干机构,以互相交流 GUI 设计理论与经验为目的。随着中国 IT 产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用。

  图形界面的功能包括:①能够进行简单图形的绘制,如直线、任意形状的线条、文字等;②用户可设置图形的属性,如图形边线的颜色、线条的粗细、图形的填充色等;③用户对图形的操作,如移动位置、复制、任意缩放大小等;④可添加ActiveX控件;⑤完成所有的外部事件,如鼠标、键盘等的处理,可自动刷新屏幕来显示更新;⑥简单的动画处理。

  在RFID组态管理软件中,我们会经常对不同型号的RFID读写器进行配置,为了满足不同的需求,在图形界面模块中我们添加了RFID读写器控件的设计。ActiveX是基于组件对象模型的一种技术,将OLE技术和OCX技术融为一体。采用ActiveX技术开发RFID读写器控件,扩充了组态软件的功能,使配置读写器变得简单,软件升级更加方便。

  表1 RFID读写器控件的主要属性

  (2)数据库模块

  数据库是整个组态软件的部分。数据库模块提供对RFID读写器的数据的采集、存储和处理。为了提高数据库的读写速度,将数据库分为实时数据库和历史数据库两部分。实时数据库保存从RFID读写器读出的实时值,并定时将实时数据写入历史数据库中。历史数据库则完成历史报表的生成和历史信息的查询。

  在RFID组态管理软件中采用ADO标准数据库访问方式。ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。ADO被设计来继承微软早期的数据访问对象层,包括RDO (Remote Data Objects) 和DAO(Data Access Objects)。在VC++6.0中ADO接口的实现:

  pConn.CreateInstance(__uuidof(ADODB::Connection));//创建Connection对象

  pCommand.CreateInstance(__uuidof(ADODB::Command));

  pRecordset.CreateInstance(__uuidof(ADODB::Recordset));//创建记录集对象

  pConn->ConnectionTimeout=90;

  pConn->Mode=adModeReadWrite;//|adModeShareDenyNone;

  _bstr_tconn="DSN=product;UID=sa;PWD=123456";//设置连接字符串,

  DSN值为企业数据库名称

  pConn->Open(conn,"","",-1);

  (3)通信与数据处理模块

  由于人机界面要与多个RFID读写器及其它的I/O接口进行数据交换,提供实时监控的环境,所以对系统的并发能力有特别的要求。如果只采用单线程来进行处理,速度慢,会有明显的时间等待等问题,因此应采用多线程技术来满足实时监控的要求。

  在RFID组态管理软件中主要运用了三个线程:主线程、串行通信数据采集线程pRcvDataThread、数据存储线程pRcvBufThread。主线程为用户接口线程,由系统自动生成,负责系统的运行和信息的处理,使程序能迅速响应命令和其它事件。串行通信数据采集线程pRcvDataThread,为辅助线程,负责接收或发送数据,并按照通信协议对数据进行解析处理。

  intRFIDThread_ReceiveDevBuf(intnType);//当与RFID读写器通讯连接时,启动pRcvDataThread

  {

  if(nType==0)//启动

  {

  if(pRcvDataThread==NULL)

  {

  pRcvDataThread=AfxBeginThread(RFID_RcvThread,NULL);

  pRcvDataThread->m_bAutoDelete=true;

  }

  Sleep(500);

  }

  elseif(nType==1)//停止

  {

  for(inti=0;iTerminateThread(pRcvDataThread[i],0);

  }

  ……

  return0;

  }

  UINTRFID_RcvThread(LPVOIDlParam);//如果启动了pRcvDataThread,终端机上传数据,解析收到的数据

  UINTRFID_DealRcvBufThread(LPVOIDpParam);//如果启动了pRcvBufThread,存储收到的数据

  (4)其它模块

  报表生成模块、报警模块和权限设置模块,这些模块的设计与普通软件设计大同小异,在此不再赘述。

  5结束语

  本文作者创新点在于采用组态技术开发RFID系统管理软件,它将RFID读写器的配置软件和生产流通过程的监控软件合二为一,不仅能够方便地构建RFID系统现场,而且还能够将RFID技术与公司原有的信息系统进行无缝连接。另外采用ActiveX技术开发RFID读写器控件,能够方便的配置RFID读写器,使得公司的信息系统能够和新的RFID读写器连接起来,保证了软件的灵活性。


  
上一篇:Spantan FPGA在多路数字量采集模块设计的应用
下一篇:RFID技术在离散MES的设计和实现

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料