本文介紹用數(shù)據(jù)采集的冗余設計實現(xiàn)深圳市民中心的實現(xiàn)實時監(jiān)控、預警的功能。
1、引言
隨著我國政治、經(jīng)濟的高速發(fā)展,橋梁、高樓、礦井、油田等對人們生命構成威脅的場所的安全性日益受到關注。國內外普遍的解決辦法就是對現(xiàn)場環(huán)境進行實時監(jiān)控、預報、預警。深圳市民中心是深圳市政府首腦的辦公大樓,狀似雄鷹展翅,由兩根柱體支撐5000噸以上的力。臺風對整個大樓構成了極大的威脅。本設計就是為其實現(xiàn)實時監(jiān)控、預警,保證整個大樓政府工作人員和市民的人身安全。
2、功能原理
“冗余”就是將相同功能的設備設計為2個或2個以上,如果一個設備有問題,另外一個設備就會自動承擔起有問題設備的任務,使網(wǎng)絡繼續(xù)暢通無阻。具體說來就是備份出另一套服務。一般情況下是某一套系統(tǒng)運行,而第二個系統(tǒng)處于待命狀態(tài),可以通過人工方式監(jiān)視第一套系統(tǒng),當發(fā)現(xiàn)有故障時,便激活第二套系統(tǒng)。也可以用控制器對2個模塊同時進行掃描,當其中一塊停止回應時,系統(tǒng)從另一個模塊中獲取數(shù)據(jù)。由此可見,冗余的目的保證了系統(tǒng)工作的連續(xù)性(基本不會出現(xiàn)系統(tǒng)不工作的情況)、穩(wěn)定性。
冗余設計需要考慮的幾個問題:
冗余策略的實現(xiàn)應當盡可能的降低成本;
冗余策略的實現(xiàn)的設計周期應當盡可能短;
冗余策略的實現(xiàn)要真正的實現(xiàn)高穩(wěn)定性。
力學專家在屋頂牛腿的著力點上安置了128個傳感器,測控壓力信號到主控機房,進行信號處理分析,實時監(jiān)控大樓的“健康”狀況。因此實時、可靠地采集傳感器發(fā)出的壓力信號(百萬數(shù)量級)就成為“健康監(jiān)測”系統(tǒng)的關鍵。
在臺風等惡劣環(huán)境下,數(shù)據(jù)采集極容易出現(xiàn)干擾故障,由于信號處理系統(tǒng)的高可靠性和連續(xù)不間斷的工作要求,國內外的大多數(shù)設計冗余系統(tǒng),以避免危險發(fā)生造成巨大損失。因此,我們須需要設計一套通用的、可靠的、經(jīng)濟的數(shù)據(jù)采集的冗余系統(tǒng),信號采集冗余策略如圖1所示。

圖1 信號采集冗余策略
3、硬件設計
3.1 同步卡的設計
同步卡的設計是本設計冗余數(shù)據(jù)采集處理的基礎,而且需要滿足冗余的要求。因此我們設計適合于本套系統(tǒng)的低成本、實用的同步卡。該同步卡的硬件組成分為電源穩(wěn)壓器、運算放大、采樣保持三大功能部分。LM7912進行線性穩(wěn)壓,為板卡提供穩(wěn)壓電源。采用LF353 BI-FETLF353高速集成運放組成信號緩沖放大器,分兩級放大現(xiàn)場信號。LF398作為采樣保持器,提供2個標準的25針并口,1個接LPT控制信號,1個和PCI-1713數(shù)據(jù)互連。
根據(jù)空間和實際的需要,每塊板卡上載8路信號。IPC可以分別控制每路信號的采樣時間;為了簡約系統(tǒng)設計以及與采集卡配置,本設計同時并聯(lián)四塊同步卡控制信號。
3.2 PCI-1713信號采集卡簡介與設計
PCI總線是一種非終端式傳輸總線,在全部讀寫傳送中可實現(xiàn)突發(fā)傳送,采用隱式仲裁,并行總線操作,訪問速度快;它也是兼容性最強、功能最全的計算機總線,可同時支持多組外圍設備,且不受制于處理器,為CPU及高速外圍設備提供高性能、高吞吐量、低延遲的數(shù)據(jù)通路。
PCI-1713是研華公司生產(chǎn)的一款經(jīng)濟型高速數(shù)據(jù)采集卡,精度較高,支持即插即用;內置PCI總線控制器與工控機PCI總線接口。使用方便、擴展、重入性強;軟件上調用API函數(shù)和相應數(shù)據(jù)結構實現(xiàn)也比較容易。
PCI-1713主要特性有:
32個單通道模擬信道輸入;
12 bit A/D轉換,采樣率高達100kHz;
可對每一通道分別可編程增益;
自動通道/增益掃描;
板載4K采樣FIFO緩沖,控制方便。
需要注意:采集卡的每個通道的模擬量采集都有1個輸入電壓范圍,超過了這一范圍會造成采集卡A/D轉換部分的燒毀,所以在采集模擬信號時,要保證被采集的信號在設定的量程范圍內。本項目中模擬量范圍為0~10V。
4、驅動程序的設計
結合VC++實現(xiàn)對同步卡的控制和采集、保存采樣數(shù)據(jù)三大功能模塊。程序流程框圖如圖2所示。

圖2 程序流程框圖
4.1 訪問并口,控制采樣數(shù)據(jù)周期
VC++是可視化編程方法,利用VC++開發(fā)人員可以十分方便的編寫程序完成用戶界面的設計、圖形顯示、數(shù)據(jù)存儲等功能。而并行端口的操作屬于計算機硬件的低級操作,使用可視化方法編制Windows 應用程序不具備這類操作。通常有以下幾種解決辦法:
(1) 利用Windows API 并行通信函數(shù)
主要功能模塊:
端口設置模塊;該模塊用于設置同步卡與IPC端口,端口類型通常為LPT1。利用函數(shù)strcpy(),賦予全局變量portType為指定的端口類型,例如strcpy(“LPT1”,portType);
初始化模塊,首先要創(chuàng)建打印設備文件句柄。通過指定要連接的打印機端口、讀寫端口的模式、數(shù)據(jù)共享模式等參數(shù);
從打印口發(fā)出控制信號,啟動同步卡數(shù)據(jù)輸出。
(2) 使用面向對象技術封裝Win32 API函數(shù),提供一個并行通信的類
優(yōu)點是若使用第三方提供的類,只要理解這種類的幾個成員函數(shù),就能方便地使用。缺點:若自己編寫類,則一般要求專業(yè)化程度太高,第三方提供的類普遍應用非常困難。
(3) 匯編語言從效率上和可靠性上講都是最優(yōu)的
在Windows程序中,使用匯編語言實現(xiàn)對并行端口的低級操作,是開發(fā)者首選之一。本設計解決的實際辦法就是使用Delphi可以嵌入?yún)R編語言的功能,編制并行數(shù)據(jù)傳輸、功能編號發(fā)送以及并口初始化函數(shù),形成動態(tài)連接庫(DLL)。這樣,利用了可視化編程的優(yōu)勢又發(fā)揮了匯編語言高效率,而且通過DLL調用使Windows操作與硬件的低級操作有機高效地結合在一起。值得一提的是,在數(shù)據(jù)通訊和功能編直接調用動態(tài)連接庫(DLL),非常方便、迅速的解決;而且類似的DLL在網(wǎng)上可以隨意的找到,就算對Delphi不熟悉的工作人員也可以直接調用。無疑這樣大大的提高了開發(fā)驅動程序的效率,可以讓開發(fā)者集中精力研究數(shù)據(jù)采集板卡。
在本設計中,作者先后嘗試過以上三種方法,都取得了良好的效果。甚至采用串口代替并口發(fā)送控制信號,效果是一樣的,能完全實現(xiàn)功能;那是因為本設計的特殊性:實時數(shù)據(jù)采集的要求并不高,而且有同步卡統(tǒng)一調配,因此從某種意義上說,利用串口實現(xiàn)了并口功能。
4.2 通過PCI總線訪問PCI-1713
研華公司為用戶提供了PCI-1713的庫函數(shù)和VC++語言例程,使用戶上手快,而且可以根據(jù)自己的實際情況編寫簡捷、完美、實用、快速的程序。
注意編程時一定要包含庫函數(shù)“driver.h”。
具體步驟如下:
(1) 打開PCI-1713采集卡并初始化;
(2) 獲取采集卡的板號,分別讀取每一塊PCI-1713的數(shù)據(jù);
(3) 顯示采集的數(shù)據(jù),寫入數(shù)據(jù)庫保存;
(4) 釋放采集卡,釋放PCI控制權。
4.3 ODBC(Open Database Connecting)技術
數(shù)據(jù)的錄入是數(shù)據(jù)庫用用程序的重要部分之一,是實現(xiàn)數(shù)據(jù)處理的關鍵。建立數(shù)據(jù)文件,保存實時接受的數(shù)據(jù),并實現(xiàn)以后的數(shù)據(jù)再現(xiàn)回放、處理、預警。因為數(shù)據(jù)的量極大(G數(shù)量級)而且要求隨時回放數(shù)據(jù),為了簡便起見,實時性要求不是太高。使用ODBC接口將數(shù)據(jù)存放到MS ACCESS數(shù)據(jù)庫中。步驟如下:
(1) 創(chuàng)建數(shù)據(jù)庫、表以及各個字段設置;
(2) 在控制面板中,創(chuàng)建并配置數(shù)據(jù)源;
(3) 程序中把數(shù)據(jù)寫入數(shù)據(jù)庫。
5、結束語
在本設計中還實際使用了InstallShield Professional 6 International多平臺安裝程序制作軟件對程序進行安裝和發(fā)布。制作完成之后,整個系統(tǒng)展現(xiàn)給用戶的是一個簡捷、明了的安裝程序。同時,這也極好的保護了軟件知識產(chǎn)權。
數(shù)據(jù)采集冗余設計成本低廉,大大地提高了系統(tǒng)的可靠性和工作的連續(xù)性,實際應用的效果也非常理想;并且整套系統(tǒng)極容易移植到其他的信號采集、處理系統(tǒng)中,比如:油田、核電站、水處理等,適應面相當廣。
參考文獻
[1] ACVAN TECHCO. LTD. PCI-1713 User s Manual.[Z].
[2] ArtBaker,JerryLozano, 施諾等譯. Windows2000設備驅動程序設計指南[M].北京:機械工業(yè)出版社,2001.
[3] InstallShield 6. x安裝程序設計與制作[M]. 北京:人民郵電出版社1998.
[4] Visual C++ 6.0技術內幕[M]. 北京:希望電子出版社,2000.