朱 波
[摘要]總體設(shè)計階段是較為重要的階段,設(shè)計質(zhì)量的好壞直接影響到系統(tǒng)功能實現(xiàn)的好壞。此階段的主要工作包括硬件體系結(jié)構(gòu)的選擇和上下位機軟件各模塊的規(guī)劃及開發(fā)工具的選擇。
[關(guān)鍵詞]測井儀 硬件 軟件
中圖分類號:TE4文獻標識碼:A文章編號:1671-7597(2009)0920012-01
一、測井儀的硬件總體設(shè)計
本試井系統(tǒng)硬件電路由單片機多片系統(tǒng)及其外圍接口電路、傳感器信號調(diào)理電路兩大部分組成。單片機多片系統(tǒng)及其外圍接口電路是根據(jù)試井系統(tǒng)測量內(nèi)容、存儲容量、波形顯示方式等要求設(shè)計的,是硬件系統(tǒng)的核心部分;傳感器信號調(diào)理電路是根據(jù)傳感器信號特征和試井要求所設(shè)計,主要完成傳感器信號的極性轉(zhuǎn)換、放大濾波等任務(wù)。
測試系統(tǒng)主要由五個模塊組成:傳感器、傳感器信號調(diào)理電路、CPU最小系統(tǒng)、液晶顯示模塊和單片機-PC機通訊系統(tǒng)。
傳感器輸出信號經(jīng)過信號調(diào)理電路,由80C196單片機內(nèi)置的10位A/D轉(zhuǎn)換器進行數(shù)據(jù)采集,數(shù)據(jù)存儲在外部擴展的128KB的RAM中。
測試儀帶有LCD圖文顯示界面和鍵盤控制微型系統(tǒng),控制試井系統(tǒng)的數(shù)據(jù)采集存儲、濾波處理和圖形顯示和打印。測試儀通過MAX202電平轉(zhuǎn)換芯片與上位機連接,采用RS-232協(xié)議將測試儀數(shù)據(jù)上傳至PC機。上位機軟件對大量測井數(shù)據(jù)分類存檔、顯示打印。
二、測井儀軟件總體設(shè)計
總體設(shè)計是解決軟件系統(tǒng)“做什么”的問題,即將用戶要求轉(zhuǎn)化為能編程的施工藍圖。在總體設(shè)計階段要達到如下的目標:
首先,提高可維護性。軟件工程按階段進行,但各階段相互影響,由于軟件維護費用極高,因此在設(shè)計階段需要考慮設(shè)計一個可維護的軟件,它體現(xiàn)在可讀性、可擴充性和可修改性。
其次,提高可理解性。可理解性指結(jié)構(gòu)清晰,層次分明,結(jié)構(gòu)化程度高,文檔規(guī)范化、標準化。對軟件人員來說,要易讀易理解,對用戶來說要易使用。
再次,提高可靠性。可靠性包含正確性和健壯性兩個方面,正確性指軟件系統(tǒng)本身沒有錯誤,健壯性指在輸入數(shù)據(jù)不合理或異常時,軟件系統(tǒng)還能適當工作,不造成嚴重的損害,這必須在設(shè)計階段來考慮。軟件可靠性是一個重要的目標,它涉及到軟件系統(tǒng)能否投入使用,使用后效率是否好的問題。
總體設(shè)計要做的工作主要包括:進行模塊劃分,建立模塊層次結(jié)構(gòu)、調(diào)用關(guān)系,設(shè)計系統(tǒng)接口及人機界面等。
(一)下位機軟件總體設(shè)計。本試井軟件系統(tǒng)包含鍵盤操作、液晶屏幕顯示和主板控制的小型系統(tǒng),下面就本系統(tǒng)的模塊設(shè)計、液晶顯示界面設(shè)計、主程序的總體結(jié)構(gòu)設(shè)計和鍵盤接口程序設(shè)計分別加以介紹。
1.下位機軟件的模塊設(shè)計。本系統(tǒng)主要由六大模塊組成:測量、查詢、回放(上傳到PC機)、計算、標定和驅(qū)動大型打印機打印波形。
(1)測量模塊。測量部分主要完成對反射波和功圖信號(位移信號和載荷信號)的采集處理、顯示和存儲。為了測出正確的波形,應(yīng)當有一個合理的數(shù)據(jù)采集方法。數(shù)據(jù)處理部分也是本模塊的重要組成部分。測井深的反射波信號時外界干擾比較大,應(yīng)添加硬件模擬濾波器,同時軟件設(shè)計中也需進行采樣數(shù)據(jù)處理:而對于載荷和位移信號由于外界干擾小,為了輸出準確平滑的功圖曲線,在軟件設(shè)計中考慮了功圖數(shù)據(jù)的數(shù)字濾波算法。
(2)查詢模塊。通過查詢功能可以查詢最近所測的若干口井的反射波波形和功圖資料(根據(jù)井號調(diào)出顯示),并可查詢最近所計算過的液深數(shù)據(jù)(通過查詢液深列表)。
(3)回放模塊。將所存儲的反射波波形或功圖資料上傳到PC機,PC機的接收程序由高級語言VC編寫,可實現(xiàn)液面和功圖波形顯示、液深計算、打印輸出等功能。
(4)計算模塊。將測得的反射波波形通過接箍波法或音標法計算出油井的液面深度。接箍波法是通過在反射波上確定三條直線,其中前兩條直線用來確定兩個采樣點間對應(yīng)的實際距離,另外一條直線確定液面波的位置;音標法是通過在反射波上確定兩條直線,一條用來確定音標的位置(兩個采樣點間對應(yīng)的實際距離也就確定了),另一條確定液面的位置。
(5)標定模塊。為了保證測量的準確性,減小由于零漂等原因造成的誤差,應(yīng)該定期對儀器進行標定。以標定載荷為例說明標定的方法,輸入兩個標準的載荷,測得它們對應(yīng)的采樣值,由于所用器件均為線性器件,兩點確定一條直線,以后測得采樣值可直接代入直線求其對應(yīng)的實際載荷值。
(6)驅(qū)動大型打印機打印波形模塊。為了便于存檔,需要將波形打印出來。大型打印機總共有24針,這24針總共分成三部分,每一部分對應(yīng)一個字節(jié),每打印一次需向打印機輸入一次數(shù)(3字節(jié))指示打印機各打印針應(yīng)如何運作。因此,應(yīng)該設(shè)計一個合理的算法驅(qū)動打印機。要設(shè)計的各模塊確定了,要顯示的頁面也就確定了。
2.液晶顯示界面的總體設(shè)計。需要設(shè)計的界面眾多,既有文本顯示方式又有圖形顯示方式,工作量相當大??梢詫⒁恍╋@示相似的界面設(shè)計成通用的,例如可以將測量中的波形顯示界面與查詢、計算功能中的波形顯示界面共用。液晶界面顯示程序是根據(jù)界面設(shè)計要求,在液晶屏幕的對應(yīng)坐標位置上寫入字符(文本方式)或點(圖形方式)。液晶屏幕上寫字符的方法是:首先在液晶模塊內(nèi)部的RAM中建立所需字符的字模庫CGRAM,并分配一個代碼。計算字符在液晶屏幕上的具體地址,具體地址=首地址+縱坐標×屏幕寬度(字節(jié)寬度)+橫坐標,液晶首址在64K空間內(nèi)根據(jù)字模的大小可任意選取。將字符代碼寫入字符液晶屏幕地址,即可顯示。
3.主程序的總體結(jié)構(gòu)設(shè)計。系統(tǒng)上電后,首先初始化一些寄存器變量,然后進入主循環(huán)程序。主循環(huán)部分采用Windows消息循環(huán)原理,即有事件觸發(fā)才進入相應(yīng)的處理程序。主循環(huán)部分首先判斷上位機有無通訊測試請求,若有請求則發(fā)送應(yīng)答信號;否則進入下一部分。接下來需要判斷有無鍵按下,若有鍵按下則進入相應(yīng)的鍵盤處理程序;否則繼續(xù)循環(huán)。
4.鍵盤接口程序設(shè)計。界面及界面處理程序是程序的重要組成部分,而程序從一個界面進入另外一個界面以及對該界面進行相應(yīng)的處理,都需要用到鍵盤掃描程序。鍵盤掃描程序提供一個接口,即當某一個鍵按下時,都有一個相應(yīng)的值與之對應(yīng)。鍵盤掃描程序是主循環(huán)的一部分,也是整個程序的基礎(chǔ),因此,設(shè)計一個準確可靠的鍵盤掃描程序是必要的。
(二)上位機軟件總體設(shè)計。上位機程序采用VC編寫,接收下位機發(fā)送來的數(shù)據(jù)并保存,具有液面和功圖顯示、液深計算、打印輸出等功能。
1. 數(shù)據(jù)接收部分。采用VC提供的MSCOMM控件,首先進行通訊測試(以檢查線路連接是否完好),若通訊測試成功,則按照下位機發(fā)送數(shù)據(jù)的格式接收液面或功圖數(shù)據(jù),并將之存入文件。
2. 查詢部分。查詢接收到的功圖或液面數(shù)據(jù),可按井號或測量日期進行查詢,并將其波形顯示。
3. 顯示和打印波形部分。在顯示器或打印紙(不同的DC)上顯示或打印某口井的液面或功圖波形。
參考文獻:
[1]顧洪代、李智林、劉甲辰,測井數(shù)據(jù)采集中濾波方法和參數(shù)的選擇,測井技術(shù),1999年第5期第23卷.
[2]徐愛鈞,基于單片機的抽油井液面自動監(jiān)測儀的設(shè)計與應(yīng)用,測控技術(shù),2001年第20卷第4期.