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