基于C8051F930的管道溫度壓力遠(yuǎn)程監(jiān)測(cè)系統(tǒng)
2.2 遠(yuǎn)程終端RTU的硬件設(shè)計(jì)
遠(yuǎn)程終端RTU位于計(jì)量站中,協(xié)調(diào)多個(gè)現(xiàn)場(chǎng)儀表的工作,收集現(xiàn)場(chǎng)儀表所采集的數(shù)據(jù)轉(zhuǎn)發(fā)到中控室上位機(jī)系統(tǒng),同時(shí)接收上位機(jī)指令并回傳給現(xiàn)場(chǎng)儀表。RTU與現(xiàn)場(chǎng)儀表進(jìn)行一對(duì)多通信,并隨時(shí)準(zhǔn)備接收上位機(jī)指令,不可進(jìn)行休眠操作,故選擇計(jì)量站中電源供電。RTU與上位機(jī)通信使用Q2406A型號(hào)GPRS模塊,利用GPRS服務(wù),設(shè)備可采用互聯(lián)網(wǎng)Internet標(biāo)準(zhǔn)方式與互聯(lián)網(wǎng)上的服務(wù)器進(jìn)行數(shù)據(jù)交換,結(jié)構(gòu)圖如圖4所示。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 現(xiàn)場(chǎng)儀表的軟件設(shè)計(jì)
本設(shè)計(jì)采用低功耗軟件設(shè)計(jì)方法,優(yōu)化系統(tǒng)時(shí)鐘,外部接32 768 Hz晶振作為MCU休眠輔助時(shí)鐘;優(yōu)化工作時(shí)序,由于無(wú)線通信模塊SM41B待機(jī)時(shí)功耗遠(yuǎn)大于C8051F930正常工作功耗,所以采用非通信狀態(tài)下隨時(shí)關(guān)閉SM41B的方式來(lái)最大限度降低功耗?,F(xiàn)場(chǎng)儀表的軟件流程如圖5所示。
現(xiàn)場(chǎng)儀表在上電之后對(duì)系統(tǒng)進(jìn)行初始化,并檢測(cè)是否第1次使用,若為第1次使用,便請(qǐng)求遠(yuǎn)程終端RTU分配地址,待地址分配結(jié)束之后進(jìn)入正常工作流程。在儀表定時(shí)喚醒后,檢查信道是否繁忙,若繁忙則休眠一個(gè)隨機(jī)時(shí)間,若不繁忙,則通知RTU準(zhǔn)備接收數(shù)據(jù)。在一定時(shí)間內(nèi)得到RTU應(yīng)答信號(hào)后開(kāi)始采集數(shù)據(jù),經(jīng)打包處理后發(fā)送給RTU,發(fā)送結(jié)束得到RTU應(yīng)答后進(jìn)入休眠狀態(tài),等待定時(shí)喚醒。由于MCU僅帶有10位A/D轉(zhuǎn)換器,則采用過(guò)采樣技術(shù),將每4次采集的數(shù)據(jù)進(jìn)行疊加,產(chǎn)生與12位A/D轉(zhuǎn)換器數(shù)據(jù)采集相同效果。為防止休眠喚醒時(shí)電壓不穩(wěn)定造成數(shù)據(jù)采集誤差,連續(xù)100次A/D轉(zhuǎn)換采集數(shù)據(jù)取其平均。
3.2 遠(yuǎn)程終端RTU的軟件設(shè)計(jì)
遠(yuǎn)程終端RTU程序開(kāi)始運(yùn)行后首先進(jìn)行系統(tǒng)的初始化,之后等待接收上位機(jī)指令和現(xiàn)場(chǎng)儀表的請(qǐng)求。在接收到上位機(jī)指令后,對(duì)指令類型進(jìn)行判斷并向現(xiàn)場(chǎng)節(jié)點(diǎn)轉(zhuǎn)發(fā)。在接到現(xiàn)場(chǎng)儀表的請(qǐng)求后判斷請(qǐng)求類型并做響應(yīng),現(xiàn)場(chǎng)儀表第1次使用時(shí)為其分配地址;現(xiàn)場(chǎng)儀表請(qǐng)求發(fā)送數(shù)據(jù)時(shí)響應(yīng)其請(qǐng)求并接收其采集數(shù)據(jù),之后將數(shù)據(jù)打包轉(zhuǎn)發(fā)到上位機(jī)。遠(yuǎn)程終端RTU的程序流程如圖6所示。
3.3 上位機(jī)的軟件設(shè)計(jì)
上位機(jī)軟件開(kāi)發(fā)使用Delphi7環(huán)境。上位機(jī)與GPRS模塊通過(guò)網(wǎng)絡(luò)端口連接,在Delphi7環(huán)境中,通過(guò)SocketClient控件實(shí)現(xiàn)網(wǎng)絡(luò)訪問(wèn)和數(shù)據(jù)傳輸。在接收到GPRS中數(shù)據(jù)之后,對(duì)數(shù)據(jù)格式進(jìn)行校驗(yàn),若有誤碼則將數(shù)據(jù)包丟棄;校驗(yàn)正確后判斷所采集數(shù)據(jù)是否異常,出現(xiàn)異常則報(bào)警處理,之后存儲(chǔ)至SQLServer2000數(shù)據(jù)庫(kù)中并在圖形界面中繪圖顯示。在歷史數(shù)據(jù)查詢過(guò)程中,首先選擇查詢方式(按時(shí)間查詢、按現(xiàn)場(chǎng)儀表地址查詢或組合查詢)和查詢條件,在數(shù)據(jù)庫(kù)中篩選出符合條件的結(jié)果在DBGrid控件中顯示。可將查詢結(jié)果以Excel文件形式保存或者繪制歷史曲線。上位機(jī)軟件流程如圖7所示。
評(píng)論