振弦式傳感器電子標(biāo)簽管理系統(tǒng)的設(shè)計與實現(xiàn)
0 引 言
在土木工程中,經(jīng)常要用振弦式傳感器測量各種指標(biāo)參數(shù),包括拉力、壓力、應(yīng)力、位移等。而振弦式傳感器因制造工藝所致,其產(chǎn)品性能參數(shù)離散性很大,每個傳感器都必須單獨(dú)標(biāo)定,得出一組基本上是惟一的性能參數(shù)(重復(fù)的概率極低)。在使用時,必須分清每一個傳感器及其所對應(yīng)的測量值,然后將每個傳感器的特性參數(shù)和測量值代人其標(biāo)定公式進(jìn)行計算,才能得到所需的物理量。如果所測傳感器不是一個型號,則所用公式也不一樣。
目前,在實際應(yīng)用中,每個傳感器的編號(ID號)寫在一個套管上作為標(biāo)簽,然后將標(biāo)簽套在傳感器引出的電纜上。測量人員在現(xiàn)場完成測量后,根據(jù)標(biāo)簽上的編號可以從產(chǎn)品出廠手冊上查出該傳感器的指標(biāo)參數(shù),即可進(jìn)行物理量的計算。然而由于人為因素以及受周圍施工環(huán)境的影響,傳感器標(biāo)簽很容易磨損或丟失,這樣就導(dǎo)致傳感器因參數(shù)不可知(身份不明)而成為廢品。為此,設(shè)計一個傳感器電子標(biāo)簽管理系統(tǒng),用存儲器充當(dāng)電子標(biāo)簽,將傳感器編號(ID)和相關(guān)參數(shù)固化在存儲器中,然后將存儲器置入傳感器內(nèi)部。這樣,即使外套標(biāo)簽丟失或磨損,依然可以利用手持設(shè)備從電子標(biāo)簽中讀出傳感器編號和參數(shù),從而解決了應(yīng)用中的這一難題。
1 設(shè)計與實現(xiàn)
1.1 系統(tǒng)構(gòu)成與工作原理
系統(tǒng)主要由四部分組成:后臺計算機(jī)(上位機(jī))、通信電路、前臺單片機(jī)(下位機(jī))和存儲器(電子標(biāo)簽),見圖1。其工作流程為:
(1)傳感器參數(shù)的錄入。PC機(jī)進(jìn)入“電子標(biāo)簽管理系統(tǒng)”環(huán)境,接收鍵盤鍵入的傳感器參數(shù)數(shù)據(jù),并將數(shù)據(jù)存人數(shù)據(jù)庫中。完成傳感器參數(shù)的錄入功能。
(2)PC機(jī)與單片機(jī)串行通信。通過通信電路中的MAX232電平轉(zhuǎn)換器實現(xiàn)。RS 232電平與TTL電平之間的轉(zhuǎn)換,通過自定通信協(xié)議實現(xiàn)通信數(shù)據(jù)傳輸格式的一致,完成PC機(jī)與單片機(jī)之間的通信任務(wù)。
(3)存儲器的數(shù)據(jù)讀寫。單片機(jī)與存儲芯片之間采用I2C總線連接。單片機(jī)可將從PC機(jī)接收到的傳感器數(shù)據(jù)通過I2C總線寫入存儲器芯片,完成電子標(biāo)簽的制作工作;還可能把存到存儲器芯片中的數(shù)據(jù)讀出并回傳給PC機(jī),完成電子標(biāo)簽的讀出與檢驗。
1.2 后臺PC機(jī)程序設(shè)計
“電子標(biāo)簽管理系統(tǒng)”是以傳感器參數(shù)為應(yīng)用對象,結(jié)合當(dāng)前和未來管理的發(fā)展需求進(jìn)行設(shè)計的。系統(tǒng)的后臺采用目前流行的面向?qū)ο缶幊陶Z言Visual C++6.0開發(fā),并掛接Access數(shù)據(jù)庫。廠家除了可以為每個傳感器制作電子標(biāo)簽外,還可以對出廠產(chǎn)品進(jìn)行信息管理,包括產(chǎn)品的查詢、品種的增加、刪除,每日或每月的產(chǎn)量統(tǒng)計等。程序主要由用戶登錄界面、文件、基本信息管理、歷史記錄、用戶管理、數(shù)據(jù)通信、幫助、退出等模塊組成。程序功能結(jié)構(gòu)圖如圖2所示。
系統(tǒng)數(shù)據(jù)庫中共包含6個表:用戶信息表、傳感器型號表、傳感器參數(shù)表、已錄入傳感器參數(shù)表、型號名稱對應(yīng)表、保存文件表等,其中保存文件表作為數(shù)據(jù)文件存儲表,型號名稱對應(yīng)表是為了避免重復(fù)輸入而建立的一個特定數(shù)據(jù)庫表。
VC與數(shù)據(jù)庫的接口有多種方式,本系統(tǒng)采用活動數(shù)據(jù)對象(Active Data Object,ADO)技術(shù)訪問數(shù)據(jù)庫。ADO實際上是一種基于COM(組件對象模型)的自動化接口(IDispatch)技術(shù),并以O(shè)LEDB(對象連接和嵌入的數(shù)據(jù)庫)為基礎(chǔ),經(jīng)過OLEDB精心包裝后的數(shù)據(jù)庫訪問技術(shù)。利用它可以快速地創(chuàng)建數(shù)據(jù)庫應(yīng)用程序。
在VC中使用ADO的步驟如下:
(1)在頭文件中引入相應(yīng)的ADO庫文件
這行語句聲明在工程中使用ADO,但不使用ADO的名字空間,并且為了避免常數(shù)沖突,將常數(shù)EOF改名為adoEOF。
(2)初始化OLE/COM庫環(huán)境
::CoInitialize(NULL);
放在所有ADO調(diào)用的前面,一般放在函數(shù)BOOLCTheApp::InitInstance()里面。
(3)關(guān)于數(shù)據(jù)類型轉(zhuǎn)換
由于COM對象是跨平臺的,它使用了一種通用的方法來處理各種類型的數(shù)據(jù),因此CString類和COM對象是不兼容的,需要一組API來轉(zhuǎn)換COM對象和C++類型的數(shù)據(jù)。_variant_t和_bstr_t就是這樣兩種對象。它們提供了通用的方法轉(zhuǎn)換COM對象和C++類型的數(shù)據(jù)。
系統(tǒng)采用Win32 API函數(shù)實現(xiàn)后臺與前臺的串行數(shù)據(jù)傳送。
1.3 前臺單片機(jī)程序設(shè)計
前臺單片機(jī)(下位機(jī))主要完成兩個功能:一是與后臺PC機(jī)(上位機(jī))的串行通信;二是對電子標(biāo)簽(存儲器芯片)的讀寫操作。單片機(jī)選用51系列即可。在與PC機(jī)的通信中,采用定時器T1,定時器工作于方式2,串行口工作于方式1,波特率設(shè)為2 400 b/s。串行E2PROM是近幾年出現(xiàn)的一種新型的電可擦除存儲器。與以往的并行存儲器相比,其優(yōu)點(diǎn)是體積小、占用硬件資源少、價格低;缺點(diǎn)是存取數(shù)據(jù)速度較慢。該類器件采用I2C總線進(jìn)行通信,擦寫次數(shù)達(dá)100萬次,數(shù)據(jù)保存時間100年,非常適合做電子標(biāo)簽。由于所要存儲的傳感器數(shù)據(jù)量少于256個字節(jié),所以選用ATMEL公司的串行E2PROM存儲器AT24C02作為電子標(biāo)簽。系統(tǒng)采用單字節(jié)寫、隨機(jī)讀方式,對存儲器芯片AT24C02進(jìn)行讀寫操作。
2 結(jié) 語
振弦式傳感器是土木工程中必不可少的質(zhì)量監(jiān)測器件,因其制造和應(yīng)用場合的特殊性,在使用中有不少特殊問題。本文介紹的電子標(biāo)簽可以有效地解決因人為和環(huán)境因素造成的標(biāo)簽信息丟失問題,掃除了振弦式傳感器在工程應(yīng)用中的一個障礙。具有電子標(biāo)簽的傳感器其引出電纜共有五根線。除原來的信號線和地線外,多了三根線,即電源線、I2C總線的SCL和SDA線。使用時,只需將手持儀接到上述三根線上即可讀出傳感器數(shù)據(jù)。顯然,該系統(tǒng)只要稍加修改就可應(yīng)用于其他電子或非電子產(chǎn)品中,因此,系統(tǒng)具有廣泛的應(yīng)用場合和較高的應(yīng)用價值。