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