3 熱電阻智能節點軟件設計
3.1概述
單片機程序用mc9s12匯編語言編寫(xie) 。在主程序首先完成各寄存器和存儲(chu) 單元的初始化,再通過調用讀取地址子程序,得到i/o板卡的地址和can通信波特率,再完成mscan模塊和ads1216初始化。隨後調用e2prom中組態信息,對每一路組態通道進行信號轉換,數字濾波及溫度查表計算等,其主程序流程圖如圖5所示。

圖5 熱電阻智能節點主程序流程圖
由於(yu) 現場的各種幹擾很容易使信號失真,從(cong) 而使a/d轉換結果產(chan) 生比較大的誤差。因此在對信號進行有效的硬件濾波後還需進行軟件濾波,本節點采用了數字中值濾波、算術平均、加權濾波等方式。
3.2 節點與(yu) 上位機的can通信
智能節點與(yu) 主控卡或上位機的通信主要基於(yu) can通信協議來完成,它的優(you) 點是能夠實時處理數據、在惡劣環境下正常工作、成本低且擁有比較高的帶寬。由於(yu) 上位機內(nei) 部無can網絡適配器,因此需外接rs-232/can轉接卡,實現上位機與(yu) 智能節點的通信。通過節點上的跳線設置節點地址,當上位機發出命令時,節點進入can接收中斷,對數據解包放入接收緩衝(chong) 區並調用數據處理函數。當上位機發出組態命令時,單片機會(hui) 將收到的組態通道信息和信號類型寫(xie) 入e2prom保存,並回送一幀數據通知上位機組態信息已成功接收。當接收到上傳(chuan) rtd值命令時,單片機會(hui) 將內(nei) 存中的4路rtd溫度值以多幀形式發送給上位機。
3.3 rtd阻值變換算法
軟件設計中關(guan) 鍵算法在於(yu) rtd電壓阻值的轉化,刻度點間的線性化及標度變換。以pt100熱電阻的溫度刻度表為(wei) 例,
pt100tab:fcb 04h,00h,07h,39h,08h,0e8h,0ah,94h,0ch,3ch,
fcb 0dh,0e1h, 0fh,83h,11h,23h,12h,0c0h,14h,5bh,
fcb 15h,0f3h,17h,89h,19h,1eh,1ah,0b1h,1ch,41h,#p#分頁標題#e#
……
fcb 91h,84h,92h,0afh,93h,0d8h,95h,01h,96h,28h,
fcb 97h,4eh,98h,72h,9ah,0cah
分度表由-210℃開始每間隔10℃作為(wei) 一個(ge) 刻度點,每一個(ge) 刻度點的電阻值擴大100倍後轉換為(wei) 十六進製數即構成上表。考慮到表格的一致性,cu100和cu50熱電阻的分度表也從(cong) -210℃開始計算。
當得到校正後的ad轉換數值後,需要將采樣到的電壓信號轉換為(wei) 電阻值以便於(yu) 查表。阻值計算公式如下:
r即為(wei) 實際熱電阻阻值,在這裏將其擴大100倍以便於(yu) 查表。
3.4 分段線性化查表
得到的對應阻值後,則從(cong) 第0個(ge) 刻度點開始比較,如果該采樣值大於(yu) 第0個(ge) 刻度點,則再與(yu) 下一個(ge) 刻度點比較,同時記錄小於(yu) 該采樣值的刻度點的個(ge) 數n,如果采樣值小於(yu) 某一溫度刻度點,則溫度位於(yu) 該刻度點b與(yu) 前一個(ge) 刻度點a之間,溫度線性化在a、b兩(liang) 刻度點之間進行,線性化得到的溫度加上a點對應的溫度(n×10)即為(wei) 采樣溫度。
以pt100熱電阻為(wei) 例,某一通道得到校正後的采樣值為(wei) $9343,則前8個(ge) 刻度點均小於(yu) $9343,第9個(ge) 刻度點值大於(yu) $9343,記錄小於(yu) 該采樣值的刻度點的個(ge) 數n=101,此時a點(第101個(ge) 刻度點$92af)對應溫度為(wei) 10×101=1010℃,b點(第9個(ge) 刻度點$93d8)溫度為(wei) 1020℃,線性化在a、b兩(liang) 點間進行,具體(ti) 公式為(wei) :
[($934-$92af)/($93d8-$92af)]×10=5℃
所以$9343對應的溫度為(wei) :
a點(第101個(ge) 刻度點)對應溫度1010℃+線性化溫度5℃-210℃=805℃
其中,各表均以-210℃作為(wei) 起始,故計算溫度時應減去210℃。
#p#分頁標題#e# 4 結束語
本智能測控節點經過反複測試,溫度測量值均正確,並且誤差在±1%以內(nei) 。另外在監控程序的控製下,節點能夠有效配合上位機完成係統的組態、信號校正和上傳(chuan) 等功能,具有可靠、實時、靈活等特點。
轉載請注明出處。







相關文章
熱門資訊
精彩導讀



















關注我們

