基于80C196KB的遠程測控終端的設計
80C196KB單片機內部的A/D轉換器在采用8MHz晶體時,轉換周期約22μs,對A/D轉換器的啟動控制和轉換結果的讀取,都是通過寄存器操作完成,轉換結束判斷選擇采用查詢方式。RTU對所有支路采集一次電壓/電流的時間周期可以用軟件設置,默認為3min。
RTU現場采集的是交流信號,路燈支路的工作電壓和電流,只有有效值測量才具有實際意義。因此,采用了交流采樣的方法即在交流信號的一周期內,等間隔采樣N個瞬時值,用軟件計算電壓/電流的有效值。電壓/電流的有效值計算公式如下:
系統中,RTU分布在全市的各分控點上,環境條件比較復雜,存在著各種各樣的干擾,為了提高數據采集的可靠性和精確度,在軟件設計上采用了數字濾波的方法,連續采集5個周期的數據,計算出5個有效值,然后進行平滑濾波處理,即去掉最大值和最小值,對其余數據取算術平均值,作為實時有效值。
RTU的無線數傳模塊傳送速率為1200bps,工作在半雙工方式,除了響應監控中心的命令上傳數據或故障報警時處于發送狀態外,其它時間都處于接收狀態,準備接收監控中心的命令。實驗發現,數傳模塊由發送到接收狀態的可靠轉換需要一定的時間,所以,編程時在最后字節數據發送完畢后應先執行一段延時程序,然后再切換到接收狀態,否則最后字節數據無法正常傳輸,延時時間可以通過實驗確定。
為了提高數據傳輸的可靠性和準確性,一方面在數據傳送前,監控中心和通信站點RTU之間先進行呼叫聯絡,聯絡成功則傳送后續命令或參數。否則,若5s內無正確回應,重新呼叫,若連續3次聯絡失敗,就認為通信暫時失敗,記錄信息。另一方面,由于數據傳送命令類型多、數據長度不定,在傳送過程中,信息采用如下幀格式。
標識碼,表示信息幀的開始。
RTU地址及其反碼,用于RTU地址校驗及目標站點識別。
數據長度及其反碼,用于數據長度校驗,后續命令和參數按照長度字節來接收。
校驗碼,是對應于命令碼和參數字節的校驗,系統中采用了累加和的校驗方法。為了避免累加和字節與標識碼字節沖突,發送和接收時規定,當累加和字節等于標識碼時,累加和取其反碼,否則累加和字節正常傳送。
在數據尾加入的10字節數據“00H”無實際意義。它的作用在于避免通信過程中由于數據丟失致使RTU處于“長收”狀態。
RTU在接收數據過程中,三部分經校驗均無誤后,向監控中心回送接收正確聯絡碼,否則,認為此次數據無效,回送接收錯誤聯絡碼,要求監控中心重發,三次傳送均失敗后,認為該站點通信失敗,監控中心暫停與該站點的通信。
9 結束語
本文設計的遠程測控終端(RTU),采用80C196系列單片機作為控制核心,充分利用了單片機的資源,運行速度快A集成度高,集現場數據采集與處理、現場控制與工作狀態監測、遠程通信于一體,可靠性強,適合于現場運行。該RTU還可以應用于電力、石油、水利等領域的數據采集與控制,應用前景廣闊。
評論