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