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