數(shù)據(jù)采集冗余策略的應(yīng)用
時間:2006-08-24 10:21:00來源:xuzj
導(dǎo)語:?本文介紹用數(shù)據(jù)采集的冗余設(shè)計實(shí)現(xiàn)深圳市民中心的實(shí)現(xiàn)實(shí)時監(jiān)控、預(yù)警的功能。
本文介紹用數(shù)據(jù)采集的冗余設(shè)計實(shí)現(xiàn)深圳市民中心的實(shí)現(xiàn)實(shí)時監(jiān)控、預(yù)警的功能。
1、引言
隨著我國政治、經(jīng)濟(jì)的高速發(fā)展,橋梁、高樓、礦井、油田等對人們生命構(gòu)成威脅的場所的安全性日益受到關(guān)注。國內(nèi)外普遍的解決辦法就是對現(xiàn)場環(huán)境進(jìn)行實(shí)時監(jiān)控、預(yù)報、預(yù)警。深圳市民中心是深圳市政府首腦的辦公大樓,狀似雄鷹展翅,由兩根柱體支撐5000噸以上的力。臺風(fēng)對整個大樓構(gòu)成了極大的威脅。本設(shè)計就是為其實(shí)現(xiàn)實(shí)時監(jiān)控、預(yù)警,保證整個大樓政府工作人員和市民的人身安全。
2、功能原理
“冗余”就是將相同功能的設(shè)備設(shè)計為2個或2個以上,如果一個設(shè)備有問題,另外一個設(shè)備就會自動承擔(dān)起有問題設(shè)備的任務(wù),使網(wǎng)絡(luò)繼續(xù)暢通無阻。具體說來就是備份出另一套服務(wù)。一般情況下是某一套系統(tǒng)運(yùn)行,而第二個系統(tǒng)處于待命狀態(tài),可以通過人工方式監(jiān)視第一套系統(tǒng),當(dāng)發(fā)現(xiàn)有故障時,便激活第二套系統(tǒng)。也可以用控制器對2個模塊同時進(jìn)行掃描,當(dāng)其中一塊停止回應(yīng)時,系統(tǒng)從另一個模塊中獲取數(shù)據(jù)。由此可見,冗余的目的保證了系統(tǒng)工作的連續(xù)性(基本不會出現(xiàn)系統(tǒng)不工作的情況)、穩(wěn)定性。
冗余設(shè)計需要考慮的幾個問題:
冗余策略的實(shí)現(xiàn)應(yīng)當(dāng)盡可能的降低成本;
冗余策略的實(shí)現(xiàn)的設(shè)計周期應(yīng)當(dāng)盡可能短;
冗余策略的實(shí)現(xiàn)要真正的實(shí)現(xiàn)高穩(wěn)定性。
力學(xué)專家在屋頂牛腿的著力點(diǎn)上安置了128個傳感器,測控壓力信號到主控機(jī)房,進(jìn)行信號處理分析,實(shí)時監(jiān)控大樓的“健康”狀況。因此實(shí)時、可靠地采集傳感器發(fā)出的壓力信號(百萬數(shù)量級)就成為“健康監(jiān)測”系統(tǒng)的關(guān)鍵。
在臺風(fēng)等惡劣環(huán)境下,數(shù)據(jù)采集極容易出現(xiàn)干擾故障,由于信號處理系統(tǒng)的高可靠性和連續(xù)不間斷的工作要求,國內(nèi)外的大多數(shù)設(shè)計冗余系統(tǒng),以避免危險發(fā)生造成巨大損失。因此,我們須需要設(shè)計一套通用的、可靠的、經(jīng)濟(jì)的數(shù)據(jù)采集的冗余系統(tǒng),信號采集冗余策略如圖1所示。
圖1 信號采集冗余策略
3、硬件設(shè)計
3.1 同步卡的設(shè)計
同步卡的設(shè)計是本設(shè)計冗余數(shù)據(jù)采集處理的基礎(chǔ),而且需要滿足冗余的要求。因此我們設(shè)計適合于本套系統(tǒng)的低成本、實(shí)用的同步卡。該同步卡的硬件組成分為電源穩(wěn)壓器、運(yùn)算放大、采樣保持三大功能部分。LM7912進(jìn)行線性穩(wěn)壓,為板卡提供穩(wěn)壓電源。采用LF353 BI-FETLF353高速集成運(yùn)放組成信號緩沖放大器,分兩級放大現(xiàn)場信號。LF398作為采樣保持器,提供2個標(biāo)準(zhǔn)的25針并口,1個接LPT控制信號,1個和PCI-1713數(shù)據(jù)互連。
根據(jù)空間和實(shí)際的需要,每塊板卡上載8路信號。IPC可以分別控制每路信號的采樣時間;為了簡約系統(tǒng)設(shè)計以及與采集卡配置,本設(shè)計同時并聯(lián)四塊同步卡控制信號。
3.2 PCI-1713信號采集卡簡介與設(shè)計
PCI總線是一種非終端式傳輸總線,在全部讀寫傳送中可實(shí)現(xiàn)突發(fā)傳送,采用隱式仲裁,并行總線操作,訪問速度快;它也是兼容性最強(qiáng)、功能最全的計算機(jī)總線,可同時支持多組外圍設(shè)備,且不受制于處理器,為CPU及高速外圍設(shè)備提供高性能、高吞吐量、低延遲的數(shù)據(jù)通路。
PCI-1713是研華公司生產(chǎn)的一款經(jīng)濟(jì)型高速數(shù)據(jù)采集卡,精度較高,支持即插即用;內(nèi)置PCI總線控制器與工控機(jī)PCI總線接口。使用方便、擴(kuò)展、重入性強(qiáng);軟件上調(diào)用API函數(shù)和相應(yīng)數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)也比較容易。
PCI-1713主要特性有:
32個單通道模擬信道輸入;
12 bit A/D轉(zhuǎn)換,采樣率高達(dá)100kHz;
可對每一通道分別可編程增益;
自動通道/增益掃描;
板載4K采樣FIFO緩沖,控制方便。
需要注意:采集卡的每個通道的模擬量采集都有1個輸入電壓范圍,超過了這一范圍會造成采集卡A/D轉(zhuǎn)換部分的燒毀,所以在采集模擬信號時,要保證被采集的信號在設(shè)定的量程范圍內(nèi)。本項目中模擬量范圍為0~10V。
4、驅(qū)動程序的設(shè)計
結(jié)合VC++實(shí)現(xiàn)對同步卡的控制和采集、保存采樣數(shù)據(jù)三大功能模塊。程序流程框圖如圖2所示。
圖2 程序流程框圖
4.1 訪問并口,控制采樣數(shù)據(jù)周期
VC++是可視化編程方法,利用VC++開發(fā)人員可以十分方便的編寫程序完成用戶界面的設(shè)計、圖形顯示、數(shù)據(jù)存儲等功能。而并行端口的操作屬于計算機(jī)硬件的低級操作,使用可視化方法編制Windows 應(yīng)用程序不具備這類操作。通常有以下幾種解決辦法:
(1) 利用Windows API 并行通信函數(shù)
主要功能模塊:
端口設(shè)置模塊;該模塊用于設(shè)置同步卡與IPC端口,端口類型通常為LPT1。利用函數(shù)strcpy(),賦予全局變量portType為指定的端口類型,例如strcpy(“LPT1”,portType);
初始化模塊,首先要創(chuàng)建打印設(shè)備文件句柄。通過指定要連接的打印機(jī)端口、讀寫端口的模式、數(shù)據(jù)共享模式等參數(shù);
從打印口發(fā)出控制信號,啟動同步卡數(shù)據(jù)輸出。
(2) 使用面向?qū)ο蠹夹g(shù)封裝Win32 API函數(shù),提供一個并行通信的類
優(yōu)點(diǎn)是若使用第三方提供的類,只要理解這種類的幾個成員函數(shù),就能方便地使用。缺點(diǎn):若自己編寫類,則一般要求專業(yè)化程度太高,第三方提供的類普遍應(yīng)用非常困難。
(3) 匯編語言從效率上和可靠性上講都是最優(yōu)的
在Windows程序中,使用匯編語言實(shí)現(xiàn)對并行端口的低級操作,是開發(fā)者首選之一。本設(shè)計解決的實(shí)際辦法就是使用Delphi可以嵌入?yún)R編語言的功能,編制并行數(shù)據(jù)傳輸、功能編號發(fā)送以及并口初始化函數(shù),形成動態(tài)連接庫(DLL)。這樣,利用了可視化編程的優(yōu)勢又發(fā)揮了匯編語言高效率,而且通過DLL調(diào)用使Windows操作與硬件的低級操作有機(jī)高效地結(jié)合在一起。值得一提的是,在數(shù)據(jù)通訊和功能編直接調(diào)用動態(tài)連接庫(DLL),非常方便、迅速的解決;而且類似的DLL在網(wǎng)上可以隨意的找到,就算對Delphi不熟悉的工作人員也可以直接調(diào)用。無疑這樣大大的提高了開發(fā)驅(qū)動程序的效率,可以讓開發(fā)者集中精力研究數(shù)據(jù)采集板卡。
在本設(shè)計中,作者先后嘗試過以上三種方法,都取得了良好的效果。甚至采用串口代替并口發(fā)送控制信號,效果是一樣的,能完全實(shí)現(xiàn)功能;那是因?yàn)楸驹O(shè)計的特殊性:實(shí)時數(shù)據(jù)采集的要求并不高,而且有同步卡統(tǒng)一調(diào)配,因此從某種意義上說,利用串口實(shí)現(xiàn)了并口功能。
4.2 通過PCI總線訪問PCI-1713
研華公司為用戶提供了PCI-1713的庫函數(shù)和VC++語言例程,使用戶上手快,而且可以根據(jù)自己的實(shí)際情況編寫簡捷、完美、實(shí)用、快速的程序。
注意編程時一定要包含庫函數(shù)“driver.h”。
具體步驟如下:
(1) 打開PCI-1713采集卡并初始化;
(2) 獲取采集卡的板號,分別讀取每一塊PCI-1713的數(shù)據(jù);
(3) 顯示采集的數(shù)據(jù),寫入數(shù)據(jù)庫保存;
(4) 釋放采集卡,釋放PCI控制權(quán)。
4.3 ODBC(Open Database Connecting)技術(shù)
數(shù)據(jù)的錄入是數(shù)據(jù)庫用用程序的重要部分之一,是實(shí)現(xiàn)數(shù)據(jù)處理的關(guān)鍵。建立數(shù)據(jù)文件,保存實(shí)時接受的數(shù)據(jù),并實(shí)現(xiàn)以后的數(shù)據(jù)再現(xiàn)回放、處理、預(yù)警。因?yàn)閿?shù)據(jù)的量極大(G數(shù)量級)而且要求隨時回放數(shù)據(jù),為了簡便起見,實(shí)時性要求不是太高。使用ODBC接口將數(shù)據(jù)存放到MS ACCESS數(shù)據(jù)庫中。步驟如下:
(1) 創(chuàng)建數(shù)據(jù)庫、表以及各個字段設(shè)置;
(2) 在控制面板中,創(chuàng)建并配置數(shù)據(jù)源;
(3) 程序中把數(shù)據(jù)寫入數(shù)據(jù)庫。
5、結(jié)束語
在本設(shè)計中還實(shí)際使用了InstallShield Professional 6 International多平臺安裝程序制作軟件對程序進(jìn)行安裝和發(fā)布。制作完成之后,整個系統(tǒng)展現(xiàn)給用戶的是一個簡捷、明了的安裝程序。同時,這也極好的保護(hù)了軟件知識產(chǎn)權(quán)。
數(shù)據(jù)采集冗余設(shè)計成本低廉,大大地提高了系統(tǒng)的可靠性和工作的連續(xù)性,實(shí)際應(yīng)用的效果也非常理想;并且整套系統(tǒng)極容易移植到其他的信號采集、處理系統(tǒng)中,比如:油田、核電站、水處理等,適應(yīng)面相當(dāng)廣。
參考文獻(xiàn)
[1] ACVAN TECHCO. LTD. PCI-1713 User s Manual.[Z].
[2] ArtBaker,JerryLozano, 施諾等譯. Windows2000設(shè)備驅(qū)動程序設(shè)計指南[M].北京:機(jī)械工業(yè)出版社,2001.
[3] InstallShield 6. x安裝程序設(shè)計與制作[M]. 北京:人民郵電出版社1998.
[4] Visual C++ 6.0技術(shù)內(nèi)幕[M]. 北京:希望電子出版社,2000.