RFID系統的組態(tài)管理軟件設計
引言
隨著(zhù)技術(shù)不斷革新,RFID產(chǎn)業(yè)已進(jìn)入了成長(cháng)期。如何將RFID技術(shù)同企業(yè)原有的信息系統進(jìn)行無(wú)縫連接,已成為許多企業(yè)考慮的問(wèn)題。組態(tài)軟件能將眾多常用功能組合在一起形成一個(gè)新的軟件平臺,用戶(hù)只需在這個(gè)平臺上進(jìn)行二次開(kāi)發(fā)即可,因此90年代以后,國內外推出了不少組態(tài)軟件產(chǎn)品,有FIX、WinCC、組態(tài)王、MCGS等。但這些軟件的通用性太強,不能滿(mǎn)足RFID系統的一些特殊要求,因此需要針對RFID的特點(diǎn)開(kāi)發(fā)專(zhuān)用于RFID系統的組態(tài)軟件。
本文參考了國內外幾個(gè)著(zhù)名的組態(tài)軟件產(chǎn)品,采用ActiveX技術(shù)開(kāi)發(fā)RFID組態(tài)管理軟件,不僅提高了軟件的開(kāi)發(fā)速度,也提高了軟件的可維護性和可擴展性。RFID組態(tài)管理軟件能夠將低層的RFID硬件和上層的應用軟件很好的結合起來(lái),通過(guò)人機交互,方便地構建RFID系統的監控現場(chǎng)和配置RFID讀寫(xiě)器,從而監測和控制生產(chǎn)和流通的各個(gè)環(huán)節。
1RFID技術(shù)
無(wú)線(xiàn)射頻識別(RadioFrequencyIdentification,RFID)是二十世紀九十年代興起的一項非接觸的自動(dòng)識別技術(shù),它利用射頻信號實(shí)現對靜止或移動(dòng)的物體或人員的自動(dòng)識別。RFID具有數據可讀寫(xiě)、信號穿透能力強、識別距離遠、非接觸、多標簽同時(shí)識別、信息存儲量大、保密性強等優(yōu)點(diǎn)。近年來(lái)隨著(zhù)科學(xué)技術(shù)的進(jìn)步,RFID在生產(chǎn)制造管理、物流配送管理、醫藥管理等領(lǐng)域得到廣泛的應用。一般的RFID系統由硬件、軟件和基本的數據格式與通信協(xié)議組成。硬件包含電子標簽(Tag)、讀寫(xiě)器(Reader)和天線(xiàn)三部分。RFID讀寫(xiě)器通過(guò)天線(xiàn)與RFID電子標簽進(jìn)行無(wú)線(xiàn)通信,實(shí)現對標簽識別碼和內存數據的讀出或寫(xiě)入操作。軟件主要包括中間件應用平臺和應用管理軟件。中間件可屏蔽不同廠(chǎng)家的RFID讀寫(xiě)器等硬件系統,實(shí)現不同硬件設備與不同應用軟件系統的連接。RFID的數據格式定義了電子標簽的數據存儲格式,通信協(xié)議則主要包含了電子標簽與讀寫(xiě)器的數據傳輸協(xié)議。
2RFID組態(tài)管理軟件的功能分析
(1)RFID組態(tài)管理軟件的開(kāi)發(fā)背景
第一,標簽和讀寫(xiě)器之間有多種通信協(xié)議,目前已確定的標準就有ISO14443、ISO15693、ISO18000等,這造成了當前各廠(chǎng)商的讀寫(xiě)器的型號有很多,在RFID系統中對RFID讀寫(xiě)器進(jìn)行配置時(shí)很不方便;第二,許多公司的RFID讀寫(xiě)器配置軟件和業(yè)務(wù)過(guò)程監控軟件是兩套軟件,軟件的利用率低。
(2)RFID組態(tài)管理軟件的功能分析
RFID組態(tài)管理軟件基于Windows平臺,通過(guò)人機交互,可快速構造和生成監控系統。它可支持不同型號RFID讀寫(xiě)器的配置和管理,支持多個(gè)RFID讀寫(xiě)器的同時(shí)訪(fǎng)問(wèn)。另外可提供生產(chǎn)流通過(guò)程的數據采集和信息管理。
RFID組態(tài)管理軟件的主要性能指標為:在中文Windows下運行;多任務(wù),多線(xiàn)程;最多配置RFID讀寫(xiě)器的數目為1000;監控界面完整顯示時(shí)間不大于2秒;支持語(yǔ)音報警;支持報表生成。
3RFID組態(tài)管理軟件的開(kāi)發(fā)工具
目前組態(tài)軟件的開(kāi)發(fā)多用VisualC++、VisualBasic和Delphi。在RFID的組態(tài)管理軟件中采用VC++6.0。VC++6.0是面向對象的編程語(yǔ)言,它提供的MFC類(lèi)庫很好地封裝了WindowsAPI函數,充分利用類(lèi)的繼承性、封裝性、多態(tài)性,用戶(hù)可方便的設計自己需要的類(lèi)。另外VC對內存和硬件的操作較容易。
數據庫采用SQLServer2000。SQLServer2000完全運行于Microsoft的Windows操作環(huán)境下,是一個(gè)高性能的數據管理系統。SQL功能強大且操作簡(jiǎn)單,能夠提供安全可靠的存儲功能。利用VC提供的ADO、ODBC等接口可方便實(shí)現對SQL數據庫的操作。
4RFID組態(tài)管理軟件的功能實(shí)現及其關(guān)鍵技術(shù)
RFID組態(tài)管理軟件采用模塊化設計,模塊與模塊之間盡量獨立,接口盡量簡(jiǎn)單。針對RFID組態(tài)管理軟件的要求,將其劃分為圖形繪制模塊、數據庫管理模塊、通信模塊、其它模塊(報警、報表等)。
圖1軟件體系結構圖
(1)圖形界面模塊
圖形界面是人機交互的渠道。圖形界面模塊完成所有組態(tài)畫(huà)面的繪制,是生成RFID讀寫(xiě)器網(wǎng)絡(luò )連接和業(yè)務(wù)過(guò)程監控畫(huà)面的設計工具。監控系統運行時(shí)的各種界面都是在圖形組態(tài)系統開(kāi)發(fā)環(huán)境下生成的。
圖形界面的功能包括:①能夠進(jìn)行簡(jiǎn)單圖形的繪制,如直線(xiàn)、任意形狀的線(xiàn)條、文字等;②用戶(hù)可設置圖形的屬性,如圖形邊線(xiàn)的顏色、線(xiàn)條的粗細、圖形的填充色等;③用戶(hù)對圖形的操作,如移動(dòng)位置、復制、任意縮放大小等;④可添加ActiveX控件;⑤完成所有的外部事件,如鼠標、鍵盤(pán)等的處理,可自動(dòng)刷新屏幕來(lái)顯示更新;⑥簡(jiǎn)單的動(dòng)畫(huà)處理。
在RFID組態(tài)管理軟件中,我們會(huì )經(jīng)常對不同型號的RFID讀寫(xiě)器進(jìn)行配置,為了滿(mǎn)足不同的需求,在圖形界面模塊中我們添加了RFID讀寫(xiě)器控件的設計。ActiveX是基于組件對象模型的一種技術(shù),將OLE技術(shù)和OCX技術(shù)融為一體。采用ActiveX技術(shù)開(kāi)發(fā)RFID讀寫(xiě)器控件,擴充了組態(tài)軟件的功能,使配置讀寫(xiě)器變得簡(jiǎn)單,軟件升級更加方便。
RFID讀寫(xiě)器控件需完成的功能:串口操作(打開(kāi)、關(guān)閉)、讀寫(xiě)器初始化、標簽操作(檢測多張、連續檢測單張、連續檢測多張)、讀取數據、寫(xiě)標簽數據、寫(xiě)入AFI、寫(xiě)入DSFID、鎖定AFI、鎖定DSFID。
表1RFID讀寫(xiě)器控件的主要屬性
(2)數據庫模塊
數據庫是整個(gè)組態(tài)軟件的核心部分。數據庫模塊提供對RFID讀寫(xiě)器的數據的采集、存儲和處理。為了提高數據庫的讀寫(xiě)速度,將數據庫分為實(shí)時(shí)數據庫和歷史數據庫兩部分。實(shí)時(shí)數據庫保存從RFID讀寫(xiě)器讀出的實(shí)時(shí)值,并定時(shí)將實(shí)時(shí)數據寫(xiě)入歷史數據庫中。歷史數據庫則完成歷史報表的生成和歷史信息的查詢(xún)。
在RFID組態(tài)管理軟件中采用ADO標準數據庫訪(fǎng)問(wèn)方式。ADO(ActiveXDataObjects,ActiveX數據對象)是Microsoft提出的應用程序接口(API),用以實(shí)現訪(fǎng)問(wèn)關(guān)系或非關(guān)系數據庫中的數據。ADO是一種面向對象的編程接口,是對當前微軟所支持的數據庫進(jìn)行操作的最有效和最簡(jiǎn)單直接的方法,是一種功能強大的數據訪(fǎng)問(wèn)編程模式。通過(guò)ADO接口,RFID組態(tài)管理軟件能夠很好地同企業(yè)的數據庫相連,實(shí)現與企業(yè)原有信息系統的無(wú)縫連接。在VC++6.0中ADO接口的實(shí)現:
pConn.CreateInstance(__uuidof(ADODB::Connection));//創(chuàng )建Connection對象
pCommand.CreateInstance(__uuidof(ADODB::Command));
pRecordset.CreateInstance(__uuidof(ADODB::Recordset));//創(chuàng )建記錄集對象
pConn->ConnectionTimeout=90;
pConn->Mode=adModeReadWrite;//|adModeShareDenyNone;
_bstr_tconn="DSN=product;UID=sa;PWD=123456";//設置連接字符串,DSN值為企業(yè)數據庫名稱(chēng)
pConn->Open(conn,"","",-1);
(3)通信與數據處理模塊
由于人機界面要與多個(gè)RFID讀寫(xiě)器及其它的I/O接口進(jìn)行數據交換,提供實(shí)時(shí)監控的環(huán)境,所以對系統的并發(fā)能力有特別的要求。如果只采用單線(xiàn)程來(lái)進(jìn)行處理,速度慢,會(huì )有明顯的時(shí)間等待等問(wèn)題,因此應采用多線(xiàn)程技術(shù)來(lái)滿(mǎn)足實(shí)時(shí)監控的要求。
在RFID組態(tài)管理軟件中主要運用了三個(gè)線(xiàn)程:主線(xiàn)程、串行通信數據采集線(xiàn)程pRcvDataThread、數據存儲線(xiàn)程pRcvBufThread。主線(xiàn)程為用戶(hù)接口線(xiàn)程,由系統自動(dòng)生成,負責系統的運行和信息的處理,使程序能迅速響應命令和其它事件。串行通信數據采集線(xiàn)程pRcvDataThread,為輔助線(xiàn)程,負責接收或發(fā)送數據,并按照通信協(xié)議對數據進(jìn)行解析處理。數據存儲線(xiàn)程RcvBufThread,為輔助線(xiàn)程,負責實(shí)時(shí)數據的存儲,并定時(shí)將采樣數據保存入庫。
intRFIDThread_ReceiveDevBuf(intnType);//當與RFID讀寫(xiě)器通訊連接時(shí),啟動(dòng)pRcvDataThread
{
if(nType==0)//啟動(dòng)
{
if(pRcvDataThread==NULL)
{
pRcvDataThread=AfxBeginThread(RFID_RcvThread,NULL);
pRcvDataThread->m_bAutoDelete=true;
}
Sleep(500);
}
elseif(nType==1)//停止
{
for(inti=0;im_nTotalDeviceNum;i++)
TerminateThread(pRcvDataThread[i],0);
}
……
return0;
}
UINTRFID_RcvThread(LPVOIDlParam);//如果啟動(dòng)了pRcvDataThread,終端機上傳數據,解析收到的數據
UINTRFID_DealRcvBufThread(LPVOIDpParam);//如果啟動(dòng)了pRcvBufThread,存儲收到的數據
(4)其它模塊
報表生成模塊、報警模塊和權限設置模塊,這些模塊的設計與普通軟件設計大同小異,在此不再贅述。
5結束語(yǔ)
本文作者創(chuàng )新點(diǎn)在于采用組態(tài)技術(shù)開(kāi)發(fā)RFID系統管理軟件,它將RFID讀寫(xiě)器的配置軟件和生產(chǎn)流通過(guò)程的監控軟件合二為一,不僅能夠方便地構建RFID系統現場(chǎng),而且還能夠將RFID技術(shù)與公司原有的信息系統進(jìn)行無(wú)縫連接。另外采用ActiveX技術(shù)開(kāi)發(fā)RFID讀寫(xiě)器控件,能夠方便的配置RFID讀寫(xiě)器,使得公司的信息系統能夠和新的RFID讀寫(xiě)器連接起來(lái),保證了軟件的靈活性。RFID組態(tài)管理軟件在存儲RFID標簽數據庫、RFID讀寫(xiě)器種類(lèi)改變等情況發(fā)生時(shí),只需少許修改便可完成設計軟件的更新,實(shí)現新的需求,具有較強的實(shí)用性。
參考文獻:
[1]王亞民,陳青,劉暢生,王水平編著(zhù).組態(tài)軟件設計與開(kāi)發(fā),西安電子科技大學(xué)出版社2003
[2]游戰清李蘇劍等編著(zhù).無(wú)線(xiàn)識別技術(shù)(RFID)理論與應用,電子工業(yè)出版社2004
[3]李耀,李超良.組態(tài)軟件架構的研究與設計.微計算機信息,2005,8:86-87
評論