專利名稱:基于集中溫控系統的溫度數據采集方法
技術領域:
本發明涉及智能化集中式溫控系統,尤其是基于集中溫控系統的溫度數據采集方法。
背景技術:
集中式溫控系統,的硬件系統結構參見圖1,最上層稱為上位機,是系統的中樞,所有的控制輸入和輸出在此完成;中層為巡檢儀,最多可接80臺,巡檢儀完成溫度曲線的下發、基表數據采集和基表控制;最下一層為基表(或稱溫度控制器:包括PID控制器及溫度傳感器\熱電偶),最多可接80臺,完成升溫、降溫、恒溫和報警等功能。這種結構的優點有;1)、系統規模可靈活擴充;2)、上位機可關機,基表的實時數據存儲于巡檢儀;3)、可大大簡化基表的設計復雜程度,大大降低系統成本。由于集中式溫控系統可接的溫控點理論值是80X80,即系統中巡檢儀的上限是80,溫控基表上限值也是80,這樣系統基表數的上限6400。巡檢儀按I毫秒、10毫秒、100毫秒和I秒采集數據一次,采集周期上限值分別為6.4秒、64秒、640秒和6400秒。在溫控精度要求不十分高的情況下,多數采用100毫秒和I秒采集數據一次,這時采集周期上限值分別為6.7分鐘和67分鐘。在實際的工業之中,這樣的時間段內溫度已經發生變化,采集的數據將是不連續的,繪制的溫度曲線會是斷斷續續的。也就是說按照溫控點理論最大值上位機采集數據時,會出現丟失數據的可能:1)、由于環境干擾等情況巡檢儀發給上位機的數據是錯誤的,上位機將丟掉該數據;2)、由于溫控點過多,上位機的采集周期錯過,讀不到數據造成數據丟失。
發明內容
為解決以上技術問題,本發明提供了基于集中溫控系統的溫度數據采集方法,該方法能將丟失的采集點的數據補充起來,使數據庫中的數據完整并且繪制實時溫度曲線使比較完整、連續和基本符合實際。本發明的技術方案為:基于集中溫控系統的溫度數據采集方法,其包括以下步驟:
步驟I)、系統上位機啟動上位機串口向巡檢儀發送溫控曲線;
步驟2)、巡檢儀向溫控基表按段發送溫控曲線;
步驟3)、上位機按照規定的取樣周期讀取巡檢儀存儲器中某一基表的實時溫度值;如巡檢儀存儲器中沒有采集到溫度數據則執行步驟4),如巡檢儀存儲器中有數據則進一步判斷該段數據采樣是否完成,如完成則將采集到的溫度數據曲線發送至數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值;
步驟4)、以巡檢儀號j和基表號i為查詢索引,遍歷檢索基表的全部歷史數據判斷上位機數據庫中有無與缺失數據匹配的溫度數據,如沒有則以設定溫度曲線值公式(I)來作為缺失時間點或段的溫度數據曲線公式計算并補充溫度曲線,然后判斷該段溫度數據采樣是否完成,如完成則將采集到的和補充完畢的溫度曲線發送至上位機數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值;
Y= (y2_yi) / (X2-Xi) X+ (γιχ2-γ2χι) / (χ2_χι)⑴
設X為時間,y為基表的溫度值,其中X1和χ2為溫度曲線某段的起始和終止時間,Y1和Y2為該曲線起始和終止的溫度值;
如數據庫中有與缺失數據匹配的數據,則再判斷數據精度要求,如數據精度要求高則以公式(2)來作為缺失時間點或段的溫度數據曲線公式來計算并補充溫度曲線,然后判斷該段溫度數據采樣是否完成,如完成則將采集到的和補充完畢的溫度曲線發送至上位機數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值;
如數據精度要求低則按公式(3)來作為缺失時間點或段的溫度數據曲線公式來計算并補充溫度曲線,然后判斷該段溫度數據采樣是否完成,如完成則將采集到的和補充完畢的溫度曲線發送至上位機數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值;
Uji=MinKYj1-VjiU1, (Yj1-Vji)A……(Yj1-Vji)211' (Yj1-Vji)2nI ⑵
Uji= Σ Vji/n(3)
Uji為丟失溫度數據值,^為數據庫中相同編號的巡檢儀j和相同基表號i在同一設定溫度曲線、同一溫控段、同一時刻的溫度值;Σ 為η個歷史數據之和;Υ 為同一基表根據設定溫度曲線值 公式(1)計算得到的值。本發明將丟失的采集點的數據補充起來,同時將此數據補充進數據庫中,使數據庫中的數據完整并且繪制實時溫度變化曲線使比較完整、連續和基本符合實際。
圖1為本發明實施例集中溫控系統的結構框 圖2為本發明實施例基于集中溫控系統的溫度數據采集方法的流程示意 圖3為本發明實施例溫控基表所在層的具體接線示意圖。
具體實施例方式參見圖1-圖3,本發明實施例基于集中溫控系統的溫度數據采集方法,其包括以下步驟:
步驟1)、系統上位機啟動上位機串口向巡檢儀發送溫控曲線;
步驟2)、巡檢儀向溫控基表按段發送溫控曲線;
步驟3)、上位機按照規定的取樣周期讀取巡檢儀存儲器中某一基表的實時溫度值;如巡檢儀存儲器中沒有采集到溫度數據則執行步驟4),如巡檢儀存儲器中有數據則進一步判斷該段數據采樣是否完成,如完成則將采集到的溫度數據曲線發送至數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值;步驟4)、以巡檢儀號j和基表號i為查詢索引,遍歷檢索基表的全部歷史數據判斷上位機數據庫中有無與缺失數據匹配的溫度數據,如沒有則以設定溫度曲線值公式(I)來作為缺失時間點或段的溫度數據曲線公式計算并補充溫度曲線,然后判斷該段溫度數據采樣是否完成,如完成則將采集到的和補充完畢的溫度曲線發送至上位機數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值;
Y= (y2_yi) / (X2-Xi) X+ (γιχ2-γ2χι) / (χ2_χι)⑴
設X為時間,y為基表的溫度值,其中X1和χ2為溫度曲線某段的起始和終止時間,Y1和Y2為該曲線起始和終止的溫度值;
如數據庫中有與缺失數據匹配的數據,則再判斷數據精度要求,如數據精度要求高則以公式(2)來作為缺失時間點或段的溫度數據曲線公式來計算并補充溫度曲線,然后判斷該段溫度數據采樣是否完成,如完成則將采集到的和補充完畢的溫度曲線發送至上位機數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值;
如數據精度要求低則按公式(3)來作為缺失時間點或段的溫度數據曲線公式來計算并補充溫度曲線,然后判斷該段溫度數據采樣是否完成,如完成則將采集到的和補充完畢的溫度曲線發送至上位機數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值;
Uji=MinKYj1-VjiU1, (Yj1-Vji)A……(Yj1-Vji)211' (Yj1-Vji)2nI ⑵
Uji= Σ Vji/n(3)
Uji為丟失溫度數據值,^為數據庫中相同編號的巡檢儀j和相同基表號i在同一設定溫度曲線、同一溫控段、同一時刻的溫度值;Σ ^為η個歷史數據之和;Υ 為同一基表根據設定溫度曲線值公式(I)計算得到的值。數據精度即采集溫度曲線與溫控曲線的差異度,差異度在正負3%之內屬于高精度,正負3%之外屬于低精度,數據精度大小可以設置,不限于正負3%。參見圖3,本發明實施例中的溫控基表可以采用溫度調節儀,該溫度調節儀的溫控線連接至熱電偶檢定爐。算法設計原理簡述約定每隔I分鐘就要了解一次基表的溫度變化,那么在采集周期上限值為6.7分鐘,每個基表分別就丟失了 6.7個數據。對這6.7個數據的采用如下公式計算得到。為簡單化,算法描述中基表的個數取[60,6400]區間的上限或下限,即60或6400。基表的個數小于60系統采集不會出現數據丟失,基表的個數大于6400系統無法處理.算法描述(Statistics Temperature Data Fitting Algorithm)
(I)補賞溫控數據采集算法的偽C語言描述如下:
STEDAFA (int ThermostatNu m , int j , int i)
{ float V[η], U, Y;
Int η;
If ThermostatNum〈60 then return; / 算法結束 else If ThermostatNum>6400 then{ infobox( “Exceeding the upper limit!,,)return/算法結束
}
Open database ;
Linking database;
If database==not empty then
{
V[l],……V[n]=Read_ database (j, i) ; /以巡檢儀號j和基表號i為查詢索弓I,遍歷檢索基表的全部歷史數據,設有η個值If精度要求不高thenUji= Σ Vji/n/用公式(3)計算
Else
U=Findmin (V [I],.....V [η], Y) ; / 用公式(2)計算
}
Else
Calculate U = (y2_yl)/(x2_xl)X+(ylx2_y2xl)/(x2_xl) ; /根據設置的曲線f(x)計算y,即用公式(I)遍歷 檢索bianReturn U;
}
(2)數據采樣算法
數據采樣算法是指系統的上位機按照規定的取樣周期讀取巡檢儀存儲器中某基表的實時溫度值,當巡檢儀無數據發送或發送的數據有錯誤時調用STEDAFA算法。其偽C語言代碼如下所示:
數據米樣算法(Temperature Data Collecting Algorithm)
TDCA (int j, int i)
{ float U;
Int m, n;
Start port 232;/啟動上位機串口
If當前時刻在采樣周期內then
{
U=Read-1nspection (j, i) ; /讀巡檢儀J上的I號基表溫度數據 If U is not empty or U not exists Error then
{
Send-database (X) ; /將采集到的數據發送至數據庫 Send-Mapping(X) ; /發送至溫度曲線繪制函數,并啟動繪圖過程
}
else {
Calculate n, j, i ;/計算出應該補充溫值點η的j和i
While m ^ η {Call STEDAFA (int ThermostatNum , j , i) — U; / 調用補賞算法 Send-database (U) ; /發送至數據庫 Send-Mapping(U) ; /發送至溫度曲線繪制函數,并啟動繪圖過程
}
}
}
以下進一步描述巡檢儀通信協議。(I)、上位機可能發送的指令如下:
校正時鐘:校正巡檢儀的實時鐘。(年月日時分秒)
讀取基表參數:讀取指定基表內指定的參數值。(基表地址,參數序號) 修改基表參數:修改指定基表內指定的參數值。(基表地址,參數序號,參數值) 下發曲線數據:下發各基表當前溫控曲線數據到巡檢儀。(基表號,曲線數據)
暫停/啟動:控制指定基表暫停或者啟動。(基表地址,命令)
采集記錄:從巡檢儀的數據存儲器中采集溫檢記錄。(2)、上位機向巡檢儀發送命令 上位機向巡檢儀發送命令包,格式如下:
地址,地址反碼,07,00,Cl,年,月,日,時,分,秒,校驗碼L,校驗碼H 巡檢儀執行命令后回送應答包格式如下:
地址,01, 00,結果碼,校驗碼L,校驗碼H。(3)、讀取基表參數
上位機向巡檢儀發送命令包,格式如下:
地址,地址反碼,03, 00, C2,基表地址,參數號,校驗碼L,校驗碼H 巡檢儀收到命令,從指定基表讀取相應參數數據后回送應答包格式如下:
地址,0B, 00,結果碼,基表地址,參數號,PV [2],SV [2],MV, B,參數值[2],校驗碼L,校驗碼H。(4)、修改基表參數
上位機向巡檢儀發送命令包,格式如下:
地址,地址反碼,05, 00, C3,基表地址,參數號,參數值[2],校驗碼L,校驗碼H 巡檢儀收到命令,向指定基表定入相應參數數據后回送應答包格式如下:
地址,0B, 00,結果碼,基表地址,參數號,PV [2],SV [2],MV, B,參數值[2],校驗碼L,校驗碼H。(5)、下發曲線數據
上位機向巡檢儀發送命令包,格式如下:
地址,地址反碼,53,00, C4,基表地址,包序號,曲線數據[80],校驗碼L,校驗碼H 包序號:01.(如果下發90段曲線則要分成9個包順序下發)
曲線數據:每次最多可發送10段曲線數據,每段數據占8字節,結構如下:
起始溫度[2],終止溫度[2],運行時間[2],控制符[1],標志[I]
巡檢儀執行命令后回送應答包格式如下:
地址,01,00,結果碼,校驗碼L,校驗碼H。
(6)、暫停/啟動控制
上位機向巡檢儀發送命令包,格式如下:
地址,地址反碼,03, 00, C5,基表地址,控制碼,校驗碼L,校驗碼H 基表地址值若為FF,則表示對所有基表進行控制 控制碼:00=暫停,01=啟動 巡檢儀執行命令后回送應答包格式如下:
地址,01, 00,結果碼,校驗碼L,校驗碼H。(7)、采集記錄
上位機向巡檢儀發送命令包,格式如下:
地址,地址反碼,05, 00, C6,包序號[4],校驗碼L,校驗碼H 包序號:CTxxxxxxx, (512字節/包)
巡檢儀回送應答包格式如下:
地址,01,02,結果碼,數據[512],校驗碼L,校驗碼H 溫檢記錄每條占16字節,格式如下:
標志[1],基表地址[1],溫度值[2],年月日時分秒[6],保留[6]。(8)、巡檢儀“實時”采集數據通信協議:
上位機向巡檢儀發送查詢命令包,格式如下:
地址,地址反碼,02, 00, C7, 01,校驗碼L,校驗碼H 巡檢儀回送應答包格式如下:
地址,15,00,結果碼,數據[20],校驗碼L,校驗碼H
無數據時,結果碼=00 有數據時,結果碼=01 數據[20]:格式如下:
記錄號[4字節,低字節在前]
標志[I字節:01=溫度記錄,02=報警記錄,03=報警解除記錄]
基表地址 [I字節]
溫度值[2字節,低字節在前]
年月日時分秒[6字節],
保留[6字節]
當結果碼=01時,上位機必須再向巡檢儀發送數據確認包,通知巡檢儀此條記錄已經收到,
如果巡檢儀沒有收到確認包就會一直應答同一條記錄。數據確認包格式如下:
地址,地址反碼,02, 00, C7, 02,校驗碼L,校驗碼 H
數據確認包無應答。實時采集步驟如下:步驟I)、上位機發查詢命令包;步驟2)、巡檢儀回送應答包;步驟3)、應答包中無數據,回到步驟I);步驟4)、上位機發數據確認包,回到步驟I)。
權利要求
1.基于集中溫控系統的溫度數據采集方法,其特征在于:其包括以下步驟: 步驟I)、系統上位機啟動上位機串口向巡檢儀發送溫控曲線; 步驟2)、巡檢儀向溫控基表按段發送溫控曲線; 步驟3)、上位機按照規定的取樣周期讀取巡檢儀存儲器中某一基表的實時溫度值;如巡檢儀存儲器中沒有采集到溫度數據則執行步驟4),如巡檢儀存儲器中有數據則進一步判斷該段數據采樣是否完成,如完成則將采集到的溫度數據曲線發送至數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值; 步驟4)、以巡檢儀號j和基表號 i為查詢索引,遍歷檢索基表的全部歷史數據判斷上位機數據庫中有無與缺失數據匹配的溫度數據,如沒有則以設定溫度曲線值公式(I)來作為缺失時間點或段的溫度數據曲線公式計算并補充溫度曲線,然后判斷該段溫度數據采樣是否完成,如完成則將采集到的和補充完畢的溫度曲線發送至上位機數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值; Y= (y2_yi) / (X2-Xi) X+ (γιχ2-γ2χι) / (χ2_χι)⑴ 設X為時間,y為基表的溫度值,其中X1和χ2為溫度曲線某段的起始和終止時間,Y1和Y2為該曲線起始和終止的溫度值; 如數據庫中有與缺失數據匹配的數據,則再判斷數據精度要求,如數據精度要求高則以公式(2)來作為缺失時間點或段的溫度數據曲線公式來計算并補充溫度曲線,然后判斷該段溫度數據采樣是否完成,如完成則將采集到的和補充完畢的溫度曲線發送至上位機數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值; 如數據精度要求低則按公式(3)來作為缺失時間點或段的溫度數據曲線公式來計算并補充溫度曲線,然后判斷該段溫度數據采樣是否完成,如完成則將采集到的和補充完畢的溫度曲線發送至上位機數據庫后再讀取下一段數據,如沒有完成則上位機按照規定的取樣周期繼續讀取巡檢儀存儲器中所述基表的實時溫度值;Uji=MinKYj1-VjiU1, (Yj1-Vji)A……(Yj1-Vji)211' (Yj1-Vji)2nI ⑵ Uji= Σ Vji/n(3) Uji為丟失溫度數據值,^為數據庫中相同編號的巡檢儀j和相同基表號i在同一設定溫度曲線、同一溫控段、同一時刻的溫度值;Σ 為η個歷史數據之和;Υ 為同一基表根據設定溫度曲線值公式(I)計算得到的值。
全文摘要
本發明涉及智能化集中式溫控系統,尤其是基于集中溫控系統的溫度數據采集方法,其方法的具體步驟為系統上位機按照規定的取樣周期讀取巡檢儀存儲器中某基表的實時溫度值,該方法能將丟失的采集點的數據補充起來,使數據庫中的數據完整并且繪制實時溫度曲線使比較完整、連續和基本符合實際。
文檔編號G05D23/30GK103116376SQ20131001216
公開日2013年5月22日 申請日期2013年1月14日 優先權日2013年1月14日
發明者李躍新, 劉建偉 申請人:湖北大學, 武漢亞星電子技術有限責任公司