閱讀 | 訂閱
閱讀 | 訂閱
工作臺(tái)

CAN總線(xiàn)實(shí)現(xiàn)工業(yè)網(wǎng)絡(luò)分布式測(cè)控系統(tǒng)(二)

星之球激光 來(lái)源:工控網(wǎng)2012-10-30 我要評(píng)論(0 )   

3 熱電阻智能節(jié)點(diǎn)軟件設(shè)計(jì) 3.1概述 單片機(jī)程序用mc9s12匯編語(yǔ)言編寫(xiě)。在主程序首先完成各寄存器和存儲(chǔ)單元的初始化,再通過(guò)調(diào)用讀取地址子程序,得到i/o板卡的地址和can...

        3 熱電阻智能節(jié)點(diǎn)軟件設(shè)計(jì)

  3.1概述

  單片機(jī)程序用mc9s12匯編語(yǔ)言編寫(xiě)。在主程序首先完成各寄存器和存儲(chǔ)單元的初始化,再通過(guò)調(diào)用讀取地址子程序,得到i/o板卡的地址和can通信波特率,再完成mscan模塊和ads1216初始化。隨后調(diào)用e2prom中組態(tài)信息,對(duì)每一路組態(tài)通道進(jìn)行信號(hào)轉(zhuǎn)換,數(shù)字濾波及溫度查表計(jì)算等,其主程序流程圖如圖5所示。

圖5 熱電阻智能節(jié)點(diǎn)主程序流程圖

  由于現(xiàn)場(chǎng)的各種干擾很容易使信號(hào)失真,從而使a/d轉(zhuǎn)換結(jié)果產(chǎn)生比較大的誤差。因此在對(duì)信號(hào)進(jìn)行有效的硬件濾波后還需進(jìn)行軟件濾波,本節(jié)點(diǎn)采用了數(shù)字中值濾波、算術(shù)平均、加權(quán)濾波等方式。

  3.2 節(jié)點(diǎn)與上位機(jī)的can通信

  智能節(jié)點(diǎn)與主控卡或上位機(jī)的通信主要基于can通信協(xié)議來(lái)完成,它的優(yōu)點(diǎn)是能夠?qū)崟r(shí)處理數(shù)據(jù)、在惡劣環(huán)境下正常工作、成本低且擁有比較高的帶寬。由于上位機(jī)內(nèi)部無(wú)can網(wǎng)絡(luò)適配器,因此需外接rs-232/can轉(zhuǎn)接卡,實(shí)現(xiàn)上位機(jī)與智能節(jié)點(diǎn)的通信。通過(guò)節(jié)點(diǎn)上的跳線(xiàn)設(shè)置節(jié)點(diǎn)地址,當(dāng)上位機(jī)發(fā)出命令時(shí),節(jié)點(diǎn)進(jìn)入can接收中斷,對(duì)數(shù)據(jù)解包放入接收緩沖區(qū)并調(diào)用數(shù)據(jù)處理函數(shù)。當(dāng)上位機(jī)發(fā)出組態(tài)命令時(shí),單片機(jī)會(huì)將收到的組態(tài)通道信息和信號(hào)類(lèi)型寫(xiě)入e2prom保存,并回送一幀數(shù)據(jù)通知上位機(jī)組態(tài)信息已成功接收。當(dāng)接收到上傳rtd值命令時(shí),單片機(jī)會(huì)將內(nèi)存中的4路rtd溫度值以多幀形式發(fā)送給上位機(jī)。

  3.3 rtd阻值變換算法

  軟件設(shè)計(jì)中關(guān)鍵算法在于rtd電壓阻值的轉(zhuǎn)化,刻度點(diǎn)間的線(xiàn)性化及標(biāo)度變換。以pt100熱電阻的溫度刻度表為例,

  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#分頁(yè)標(biāo)題#e#

  ……

  fcb 91h,84h,92h,0afh,93h,0d8h,95h,01h,96h,28h,

  fcb 97h,4eh,98h,72h,9ah,0cah

  分度表由-210℃開(kāi)始每間隔10℃作為一個(gè)刻度點(diǎn),每一個(gè)刻度點(diǎn)的電阻值擴(kuò)大100倍后轉(zhuǎn)換為十六進(jìn)制數(shù)即構(gòu)成上表??紤]到表格的一致性,cu100和cu50熱電阻的分度表也從-210℃開(kāi)始計(jì)算。

  當(dāng)?shù)玫叫U蟮腶d轉(zhuǎn)換數(shù)值后,需要將采樣到的電壓信號(hào)轉(zhuǎn)換為電阻值以便于查表。阻值計(jì)算公式如下:

  r即為實(shí)際熱電阻阻值,在這里將其擴(kuò)大100倍以便于查表。

  3.4 分段線(xiàn)性化查表

  得到的對(duì)應(yīng)阻值后,則從第0個(gè)刻度點(diǎn)開(kāi)始比較,如果該采樣值大于第0個(gè)刻度點(diǎn),則再與下一個(gè)刻度點(diǎn)比較,同時(shí)記錄小于該采樣值的刻度點(diǎn)的個(gè)數(shù)n,如果采樣值小于某一溫度刻度點(diǎn),則溫度位于該刻度點(diǎn)b與前一個(gè)刻度點(diǎn)a之間,溫度線(xiàn)性化在a、b兩刻度點(diǎn)之間進(jìn)行,線(xiàn)性化得到的溫度加上a點(diǎn)對(duì)應(yīng)的溫度(n×10)即為采樣溫度。

  以pt100熱電阻為例,某一通道得到校正后的采樣值為$9343,則前8個(gè)刻度點(diǎn)均小于$9343,第9個(gè)刻度點(diǎn)值大于$9343,記錄小于該采樣值的刻度點(diǎn)的個(gè)數(shù)n=101,此時(shí)a點(diǎn)(第101個(gè)刻度點(diǎn)$92af)對(duì)應(yīng)溫度為10×101=1010℃,b點(diǎn)(第9個(gè)刻度點(diǎn)$93d8)溫度為1020℃,線(xiàn)性化在a、b兩點(diǎn)間進(jìn)行,具體公式為:

  [($934-$92af)/($93d8-$92af)]×10=5℃

  所以$9343對(duì)應(yīng)的溫度為:

  a點(diǎn)(第101個(gè)刻度點(diǎn))對(duì)應(yīng)溫度1010℃+線(xiàn)性化溫度5℃-210℃=805℃

  其中,各表均以-210℃作為起始,故計(jì)算溫度時(shí)應(yīng)減去210℃。

 #p#分頁(yè)標(biāo)題#e# 4 結(jié)束語(yǔ)

  本智能測(cè)控節(jié)點(diǎn)經(jīng)過(guò)反復(fù)測(cè)試,溫度測(cè)量值均正確,并且誤差在±1%以?xún)?nèi)。另外在監(jiān)控程序的控制下,節(jié)點(diǎn)能夠有效配合上位機(jī)完成系統(tǒng)的組態(tài)、信號(hào)校正和上傳等功能,具有可靠、實(shí)時(shí)、靈活等特點(diǎn)。

 

轉(zhuǎn)載請(qǐng)注明出處。

暫無(wú)關(guān)鍵詞
免責(zé)聲明

① 凡本網(wǎng)未注明其他出處的作品,版權(quán)均屬于激光制造網(wǎng),未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用。獲本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使 用,并注明"來(lái)源:激光制造網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)責(zé)任。
② 凡本網(wǎng)注明其他來(lái)源的作品及圖片,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本媒贊同其觀(guān)點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系我們刪除。
③ 任何單位或個(gè)人認(rèn)為本網(wǎng)內(nèi)容可能涉嫌侵犯其合法權(quán)益,請(qǐng)及時(shí)向本網(wǎng)提出書(shū)面權(quán)利通知,并提供身份證明、權(quán)屬證明、具體鏈接(URL)及詳細(xì)侵權(quán)情況證明。本網(wǎng)在收到上述法律文件后,將會(huì)依法盡快移除相關(guān)涉嫌侵權(quán)的內(nèi)容。

網(wǎng)友點(diǎn)評(píng)
0相關(guān)評(píng)論
精彩導(dǎo)讀