專利名稱:一種微機遠距離多點測溫系統的制作方法
技術領域:
本發明主要用于為糧食安全儲藏而進行的微機遠距離多點測溫。具體說,是一種微機遠距離多點測溫系統。
原有的微機遠距離多點測溫系統使用的溫度傳感器是熱敏電阻,經多路轉換、AD轉換和單片機,把測量結果臨時存儲,再經串行接口遠距離傳至微機(PC機)。通過程序轉換把測量結果存儲。顯示、打印。這是一種分布式數據采集系統,或稱多處理機系統。熱敏電阻是一種低阻抗非線性器件,雖然價格低廉,但其穩定性、可靠性、一致性和精度都很差,不能保證長期使用,且極易受工作電壓波動、電磁干擾等隨機因素影響。使系統精度差、穩定性差,極易損壞,造成報廢。雖然傳感器是低檔次、低成本,但其由多路轉換、AD轉換、單片機和電源組成的“分機”成本較高,造成成本分配不合理。另外,該系統需要把220V市電引進倉內。給無人值守的糧倉造成火災隱患。在已使用該系統的糧食保管部門,普遍反映不好。
本發明的目的在于在不大幅度提高總成本的前提下,采用先進的溫度傳感器,以提高系統的穩定性、可靠性、一致性和測量精度,并且滿足糧食保管部門的特殊要求,適應糧倉的特殊環境,以達到長期可靠使用的目的。
本發明的目的可采用以下措施來實現它包括微機1、打印機2、AD轉換卡3、第二并口卡4,主控制器5和分控制器及其傳感器6;AD轉換卡3、第二并口卡4插在微機的擴展槽內;分控制器及其傳感器6安裝在糧倉內;主控制器5最多可連接32個分控制器,主控制器5與分控制器6的最大距離可達2KM;第二并口的引出線經重新定義,從主控制器5轉接至分控制器6,并從一個分控制器6向另一個分控制器6轉接,用于控制傳感器的多路轉換;每個分控制器6最多可連接64個傳感器;全系統最多可連2048個傳感器;分控制器6的輸出經主控制器5的電阻接地,AD轉換卡3在電阻上端進行電壓采樣,轉換成電壓數字,再經程序轉換成溫度。
本發明中的主控制器5是由模塊7、模塊8、模塊9構成;模塊7是一電源轉換裝置,其輸出供給分控制器6的Vdd;模塊9把模塊7的輸出、第二并口卡4的第16,14,1,4,3,2引腳用7芯屏蔽線轉接至分控制器6,最大距離≤2KM;引腳17在主控制器5的模塊9內備用;模塊8由32個固定電阻和32個精密微調電阻構成;把它們的電阻之和調至10KΩ,誤差不超過±1Ω;模塊8的輸入來自32個分控制器6的輸出;在32個電阻的上端連接AD轉換卡3的32個通道;分控制器6的輸出線也用屏蔽線;各分控制器6的輸出可以根據遠近合并成多芯屏蔽線進入主控制器5;所有屏蔽兩端均應接地;模塊7的地線也應與微機1的地線實行無阻抗連接;最遠的分控制器6的地線與主控制器5的地線的直流阻抗不應大于10Ω。
本發明中的分控制器及其傳感器6是由模塊10、模塊11、模塊12構成;模塊11由6組電壓放大器構成;其輸入與模塊9的16,14,1,4,3,2引腳線相連,其輸出分兩組16,14,1引腳線對應的輸出連接模塊10的S’2,S’1,S’0;另一組4,3,2引腳線對應的輸出連接模塊12的S2,S1,S0;模塊10由4051芯片構成;其輸入連接模塊12的8個輸出,其輸出按分控制器的編號連接模塊8的對應電阻;模塊12由8個4051芯片、8個4028芯片、8個HTS-2型溫度傳感器構成;8個溫度傳感器的電源端連接4028芯片的8個輸出端,8個溫度傳感器的信號端連接4051芯片的8個輸入端;4051芯片和4028芯片的3個控制端均連接模塊11的S2,S1,S0。分控制器6的所有器件均使用主控制器5引來的電源。
本發明中第二并口卡4使用操作指令OUT(N),M和OUT(N+2),M;其中N是第二并口卡4的首地址,M是操作數;當M按照12,13,14,15,8,9,10,11的順序變化時,OUT(N+2),M將按照附錄A的表-2的規律,在16,14,1的引腳上產生7,6,5,4,3,2,1,0的輸出;當M按照15,14,13,12,11,10,9,8的順序變化時,OUT(N),M將按照附錄A的表-1的規律,在4,3,2的引腳上產生7,6,5,4,3,2,1,0的輸出;經模塊11的反相放大,在模塊11的輸出端將分別產生兩組控制序列0,1,2,3,4,5,6,7,用于分別控制模塊10和模塊12。
本發明的微機遠距離多點測溫系統的基本算法是
(1)重復測量,取平均值為最終結果;(2)每次測量之間,要有1mS的時間間隔;(3)每對傳感器進行測量操作時,均應先進行一定數量的空測量,其測量結果棄之不用;(4)用計算方差的方法檢驗系統的穩定性;當方差≤1000時,測量的重復性可達±0.1℃之內;否則,應檢查線路連接質量或傳感器好壞;(5)基本算法程序在附錄B中;本發明的微機遠距離多點測溫系統的系統誤差的調整方法是(1)建立溫度文件,如附錄C;(2)把一個分控制器(6)的64個傳感器放入具有相同溫度的介質中;介質溫度調至低溫點附近;(3)用測試程序算法(附錄D),使每個傳感器低溫點的電壓數值逐步向全部傳感器溫度平均值的對應電壓數值靠近;(4)用文字編輯程序修改溫度文件中的每個傳感器的溫度項,使之與介質溫度一致。;(5)把介質溫度從接近低溫點升致接近高溫點,再進行(3)、(4);(6)在用戶程序中使用已調好的溫度文件,使用基本算法和直線兩點式方程,就可換算出準確的多點溫度。
本發明的優點是全系統最多可連2048個傳感器;最大傳輸距離可達2KM;程序采用特殊算法;在30℃~+50℃范圍內,可使每個傳感器周圍介質溫度與微機的屏幕上的對應點溫度的誤差≤0.5℃,重復性≤0.1℃;市電不進糧倉;節能;不必考慮散熱問題,就可對糧倉內電路實行全密封,以防止糧倉內有害氣體腐蝕。
附圖的圖面說明如下
圖1是全系統框圖;圖2是主控制器5的框圖;圖3是分控制器6的框圖;圖4是電壓放大器模塊11的電路圖;圖5是4051和4028芯片的管腳圖;圖6是模塊10的電路圖7是模塊12的電路圖;圖8是模塊8的電路圖;圖9是模塊8的簡化電路圖;圖10是本系統的簡化系統的原理圖;本發明以下將結合實施例(附圖)作以詳細的描述通用微機1可選用PC-486以上的任何一種。最小內存4MB,硬盤最小剩余空間20MB,VGA彩色顯示。軟件平臺為DOS6.2以上和UCDOS5.0以上。
打印機2可選用市場上的任意一種。它與通用微機1的主板上的第一并口,按照標準方法相連。
AD轉換卡3選用PS-2108型AD/DA卡。其主要技術參數如下▲AD部分轉換位數8位;模入通道32路;模入范圍0~+5V;轉換時間(114μS;系統誤差(0.4FSR;▲DA部分通道數; 4路;其余略;PS-2108卡插在通用微機1的主板上的EISA擴展槽內。通用微機1的機箱外露出一個37芯插座。用40芯扁平電纜把它引至主控制器5的模塊8中。其中只連1~37芯,其余38~40芯空,連接方法一對一,最大長度≤3米。PS-2108卡的首地址用卡上的DIP開關設定。出廠時的地址為100H(十進制256)。
第二并口卡可選用任意一種IO卡,即PC-386以下微機常用的接口卡。IO卡通常有兩個串行接口,一個并行接口,一個軟驅接口,一個硬盤接口。它插在通用微機1的EISA擴展槽內。機箱外露出的25芯插座,是并口插座。PC-486以上微機的第一并口通常在主板上。微機在開機時可進入SETUP程序(POST程序)。利用這個程序可把原配置的一個并口擴充為兩個并口。根據BIOS版本不同,第二并口的首地址可能是3BCH(十進制956),378H(十進制888),278H(十進制632)。請注意分清第一并口和第二并口,因為DOS的屏幕打印要求打印機連在第一并口上。
PS-2108卡上的4路DA、IO卡上的兩個串口、軟驅接口、硬盤接口為LQCK系統再擴充時備用。
本發明的微機遠距離多點測溫系統對第二并口的使用,并不采用標準并口的25芯引腳的定義。它重新定義了其中的16,14,1,4,3,2,17共七個引腳,并把它們用7芯屏蔽線引至主控制器5的模塊9。7芯屏蔽線的最大長度≤3米。
16號引腳定義為(S’2);14號引腳定義為(S’1);1號引腳定義為(S’0);4號引腳定義為(S2);3號引腳定義為(S1);2號引腳定義為(S0);17號引腳備用;主控制器5分為模塊7,模塊8,模塊9。
模塊7是電源轉換裝置,可按220V市電輸入,+17V輸出,30W功率設計。+17V在主控制器5內部從模塊7接至模塊9的一個端子。模塊7的地線必須與通用微機1的地線實行無阻抗連接(≤4Ω)。
模塊9由端子構成。最少有9個端子。其中一個端子接第二并口引來的7芯線的屏蔽、接模塊7的地線,屏蔽的另一端接通用微機1的地線。7個端子接第二并口的7芯。第九個端子接模塊7引來的+17V電源。
模塊9在向分控制器6引出時,也采用7芯屏蔽線。除第二并口的17引腳留在主控制器內備用外,其余已經定義的第二并口的6芯及+17V電源組成7芯,屏蔽接地。
分控制器6由“前置4051”模塊10、“電壓放大器”模塊11和“4051單元組”模塊12構成。
“電壓放大器”模塊11的電路圖見圖4。其中晶體管Q1,Q2,...,Q12采用小功率管9014;R1,R3,R5,R7,R9,R11為5KΩ;R2,R4,R6,R8,R10,R12為4.7MΩ。從主控制器5引出的7芯屏蔽線分別接模塊11的輸入端Vdd,(S’2),(S’1),(S’0),(S2),(S1),(S0)。其6路輸出端分兩組其中S’2,S’1,S’0接“前置4051”模塊10的S’2,S’1,S’0;S2,S1,S0接“4051單元組”的S2,S1,S0。
“前置4051”模塊10由一個4051芯片構成。其8路輸入X0,X1,X2,X3,X4,X5,X6,X7分別接8個“4051單元組”模塊12的輸出X。模塊10的輸出X遠距離(≤2KM)接主控制器5的模塊8中的某一通道Ti(i=1,2,...,32)。這里假定分控制器6的編號為T-i(i=1,2,...,32)。
模塊12由一個4051芯片、一個4028芯片、8個DIP型開關,8個HTS-2型溫度傳感器構成。
HTS-2型傳感器的技術參數如下工作溫度范圍-55℃~+150℃;工作電壓范圍+3V~+30V;輸出電流294.1μA(介質溫度為25℃時);溫度靈敏度 1μA/℃;線性度 優于0.5%;動態阻抗≥10MΩ;最大傳輸距離≤2KM;模塊11的數出端S2,S1,S0接至4051芯片和4028芯片的S2,S1,S0管腳。4028芯片的輸出端X0,X1,X2,X3,X4,X5,X6,X7分別接至傳感器C0,C1,C2,C3,C4,C5,C6,C7的電源端。傳感器的信號端接至4051芯片的輸入端X0,X1,X2,X3,X4,X5,X6,X7。DIP型開關SW0,SW1,SW2,SW3,SW4,SW5,SW6,SW7也分別接至4051芯片的輸入端X0,X1,X2,X3,X4,X5,X6,X7。另一端均接地。4051芯片的輸出端X按“4051單元組”的編號分別接至模塊10的輸入端X0,X1,X2,X3,X4,X5,X6,X7。
模塊10的輸出端X按分控制器6的編號6-i(i=1,2,...,32)分別接至主控制器5的模塊8的T-i(i=1,2,...,32)。
模塊8的電路圖見圖8和圖9。其中Ri(i=1,2,...,32)的阻值為9.1KΩ,ri(i=1,2,...,32)是0~2KΩ的精密微調電阻,SWi(i=1,2,...,32)是DIP型開關。分控制器6-i(i=1,2,...,32)的輸出端X經過不大于2KM的距離接至模塊8的Ti(i=1,2,...,32)。
通過調整ri(i=1,2,...,32),使Ri和ri(i=1,2,...,32)的阻值之和等于10KΩ,誤差不大于±1Ω。DIP型開關SWi(i=1,2,...,32)的接法見圖9。
系統所有的地線之間的最大直流阻抗必須≤10Ω,96×φ0.15的銅網屏蔽在不大于2KM的長度內,可保證這一點。
從主控制器5向分控制器6引出的7芯控制線,在連接時應先接最近的分控制器6,再從這個分控制器向別的分控制器轉接,以節約線材。
從分控制器6向主控制器5連接的模擬信號線也必須加屏蔽。但可根據分控制器所在的相對地理位置進行轉接合并,使進入主控制器的模擬信號線為多芯屏蔽線,以節約成本。
本發明的微機遠距離多點測溫系統最多可支持32個分控制器6,每個分控制器6最多可支持64個HTS-2型溫度傳感器。這樣,本發明的微機遠距離多點測溫系統最多可支持2048個HTS-2型溫度傳感器。
本發明的微機遠距離多點測溫系統的工作原理如下本發明的微機遠距離多點測溫系統是集中式數據采集系統的一種。
如果按照圖10接線,把+17V電壓送到HTS-2型傳感器的電源端,傳感器隨周圍介質溫度變化,產生線性電流信號,經不大于2KM的線路傳輸和10KΩ電阻接地,形成回路。采樣電壓送至AD卡的第i路通道(i=1,2,...,32),交微機1處理,就組成了一個較小的微機遠距離多點測溫系統。這個小系統最多可支持32個傳感器。
因HTS-2型傳感器要求的工作電壓為+3V~+30V,Vdd在+11V~+17V變化時,不會影響測量結果。又因HTS-2型傳感器的動態阻抗≥10MΩ,最多不超過2KM的傳輸線的動態阻抗不超過傳感器阻抗的萬分之一,也不會影響測量結果。
溫度的電流靈敏度1μA/℃;
溫度的電壓靈敏度10mV/℃;溫度的電壓數值靈敏度0.5/℃;根據糧倉保管的要求和實際情況,介質(糧食)溫度范圍為-30℃~+50℃。因此電流信號的范圍為239.1μA~319.1μA;采樣電壓的范圍為2.391V~3.191V;電壓數值的范圍為121.941~162.741;在此范圍外的數值均屬不正常。
現在,把系統擴充至本發明的微機遠距離多點測溫系統本身。即把圖10中的HTS-2型傳感器替換成分控制器6,并加上控制線(S’2),(S’1),(S’0),(S2),(S1),(S0)等。
信號組(S’2),(S’1),(S’0)和信號組(S2),(S1),(S0)是受程序控制的。其操作指令見附錄A的表-1和表-2。
根據表-1的真值表,按以下順序使用操作指令OUT(N),15OUT(N),14OUT(N),13OUT(N),12OUT(N),11OUT(N),10OUT(N),9OUT(N),8時,引腳4,3,2組成的控制序列就會順序產生7,6,5,4,3,2,1,0的數字控制信號。
根據表-2的真值表,按以下順序使用操作指令OUT(N+2),12OUT(N+2),13OUT(N+2),14OUT(N+2),15OUT(N+2),8
OUT(N+2),9OUT(N+2),10OUT(N+2),11時,引腳16,14,1的控制序列就會順序產生7,6,5,4,3,2,1,0的數字控制信號。
這里,N是第二并口的首地址。根據真值表,兩組操作指令是互相獨立的,互不影響。
亦即,信號組(S2),(S1),(S0)和信號組(S’2),(S’1),(S’0)會分別產生控制序列7,6,5,4,3,2,1,0。模塊11的6組電壓放大器的輸入和輸出是反相的,輸出信號組S2,S1,S0和輸出信號組S’2,S’1,S’0就分別產生控制序列0,1,2,3,4,5,6,7。
第二并口是正邏輯信號,高電平為+5V,低電平為0V。在經過長達2KM的距離后,高電平可能衰減至+3V以下。模塊11的電壓放大器可把高電平提高至+6V~+10V。低電平維持不變。在Vdd工作在+11V~+17V之間時,所有芯片均可正常工作。
當模塊12的信號組S2,S1,S0的控制信號為i(i=0,1,2,...,7)時,4028芯片的輸出Xi被選通,得到Vdd電壓,其余Xi(j≠i)均得到0V電壓。傳感器Ci(i=0,1,2,...,7)得到工作電壓,其余Cj(j≠i)只得到0V電壓。同時,4051芯片的輸入X1(i=0,1,2,...,7)與輸出X接通,其余Xi(j≠i)均未被接通。
當模塊10的信號組(S’2),(S’1),(S’0)的控制信號為i(i=0,1,2,...,7)時,編號為12-i(i=0,1,2,...,7)的模塊12的輸出X與“前置4051”模塊10的輸出X接通,經傳輸線、Ri、ri(i=0,1,2,...,7)接地,形成回路。于是,傳感器Ci(i=0,1,2,...,7)的介質溫度的電流信號,在Ti處被采樣。其余傳感器Cj(j≠i)均在模塊12-j(j≠i)的輸出端被阻斷。
這樣,分控制器的64個傳感器均能被輪詢。
當程序控制選通通道號k(k=1,2,...,32)時,32個分控制器6-k(k=1,2,...,32)均有機會被輪詢。亦即,2048個傳感器均有機會被輪詢。
模塊8的DIP型開關SWk(k=1,2,...,32)的作用是當Tk號通道未連接分控制器時,閉合SWk(K=1,2,...,32),使k號通道得到0V電壓。即使k號通道接有分控制器,它也將得到0V電壓,只是溫度信號不經過10KΩ電阻。
模塊10的DIP型開關SWi(i=0,1,2,...,7)的作用是當編號為i(i=0,1,2,...,7)的模塊12未接入電路時,閉合SWi(i=0,1,2,...,7),可以使“前置4051”的輸入端Xi(i=0,1,2,...,7)得到0V電壓,不被懸浮,從而可以長期可靠工作。
模塊12的DIP型開關SWi(i=0,1,2,...,7)的作用是當傳感器Ci(i=0,1,2,...,7)未接入電路時,閉合SWi(i=0,1,2,...,7),可以使“4051單元組”的輸入端Xi(i=0,1,2,...,7)得到0V電壓,不被懸浮,從而可以長期可靠工作。
本發明的微機遠距離多點測溫系統是一個電子測量溫度的產品,其測量的準確性是產品成敗的關鍵。本發明的微機遠距離多點測溫系統又是一個受微機程序控制的測溫產品,其誤差的控制在很大程度上受程序算法的制約。本發明的本發明的微機遠距離多點測溫系統的程序基本算法見附錄B。算法程序由C語言寫成。其要點是1、重復測量,取平均值為最終測量結果。綜合測量速度和精度兩方面因素,以重復測量80~100次為好。
2、每次重復測量之間,要有1mS的時間間隔。
3、在測量某一傳感器時,應先進行20次左右的“空測量”,把測量結果棄之不用。
4.應計算方差。方差應≤1000。否則,應檢查線路連接質量和傳感器好壞。
在把電壓數值轉換成溫度值時,采用兩點式直線方程。給定低溫點(例如Y1=15℃)和高溫點(例如Y2=35℃),理論計算其對應的電壓數值分別為X1=147.5和X2=152.5。當實測某傳感器的電壓數值為X時,其對應的溫度Y,可按下列公式計算y=(x-x1)*(y2-y1)/(x2-x1)+y1;但是,無論是傳感器還是電路,均可能產生不一致性。也就是說,理論計算的X1和X2,對于多個傳感器及其線路并不一定都是準確的,甚至可以說,大部份是不準確的。也就是說,雖然傳感器的線性和穩定性是好的,但其斜率和截距卻是千差萬別的。如果都按上述公式計算,會產生相當大的系統誤差。針對每個具體的傳感器及其對應電路,找出其準確的斜率和截距,才能調準溫度。
本發明的微機遠距離多點測溫系統,采用計算機輔助測試(CAT)技術,用特定的程序算法,找出每一路傳感器的斜率和截距。具體做法如下準備一個最少能盛60公升水的容器,內裝2KW防水電熱器。其保溫性能應達到在-30℃~+50℃范圍內,10分鐘內溫度增減不超過1℃。再準備一個能制冰的設備。使盛水容器內隨時能放冰水混合物。一個0.1℃刻度的水銀溫度計是必不可少的。
把連入系統的64個傳感器放入水中(傳感器及其引線必須防水放潮)。測出水的準確溫度。如果溫度較高,應加冰,使溫度在10℃左右。再準確測量水溫,記為Tmin℃。
在微機磁盤內建立一個溫度文件(記為WDWJ)。文件內應有以下信息▲傳感器所在通道號;▲傳感器所在“4051單元組”編號;▲傳感器本身編號;▲Y1和X1,X1為初始值;▲Y2和X2,X2為初始值;;▲每個傳感器的信息占一行;WDWJ的例子見附錄C。測試程序的基本算法(C語言編程)見附錄D。
算法要點如下1、鍵盤輸入水銀溫度計讀數(也可省略);2、用基本算法(附錄B)實測出傳感器的電壓數值Xi(i=0,1,2,...,63);3、用兩點式直線方程計算溫度Yi(i=0,1,2,...,63);
4、從64個傳感器中挑選出一個最大者Ymax和一個最小者Ymin,并記錄所在編號Kmax和Kmin;5、計算64個傳感器的平均溫度
6、計算(
),記為Cmin;7、計算(
)和(
),分別記為Dmax和Dmin;8.程序自動修改WDWJ中的X1的當前值,每次只修改編號為Kmax和Kmin的傳感器的X1的當前值,替換公式為X1′=X1+0.25*Dmax;(Kmax項);X1′=X1-0.25*Dmin;(Kmin項);9、回到2,直到最大值和最小值之差小于0.5;10、停止程序運行,進入文字編輯程序,對WDWJ進行編輯。把每個傳感器的15℃數據項全部改為Y1-Cmin的值;用電加熱把水溫提高到40℃左右,記下準確水溫Tmax。用上述算法修改X2。
至此,每個傳感器均經過“調姿”,WDWJ即可在用戶程序中使用。
功率估算每個傳感器耗電0.3mA×V=5.1mW。未被選通的傳感器,理論上不耗電,控制信號耗電很小。所以,每個分控制器及所屬傳感器耗電≤1W。全系統耗電≤32W。
頻率估算在線路上,溫度信號是直流信號,不產生頻率。控制信號因每次測量間隔要有1mS時間,所以,頻率≤1KHZ。微機的主頻對線路頻率影響很小。
專用于糧堆測溫時,還應注意以下事項糧堆經常進行磷化鋁熏蒸,產生強烈腐蝕性氣體,應對倉內電路進行全密封傳感器應做成測溫電纜形式,測溫電纜與延長線的接頭應密封,延長線進入分控制器處應密封,分控制器應全密封。
附錄A表-1并口指令OUT(N),M真值表
注N為并口首地址表-2 并口指令OUT(N+2),M真值表
注N為并口首地址附錄B 程序基本算法<pre listing-type="program-listing"><![CDATA[void main(){ intbingkou2={388};/*并口二的首地址*/ intic,k,m,n; intpport1[8]={15,14,13,12,11,10,9,8}; intpport2[8]={12,13,14,15,8,9,10,11}; float fb,fm,fy1[64]={0},fs1[64]={0}; float fb1[100]={0};outportb(256,0);/*選擇AD卡的0#通道,首地址是256*/delay(4),for(k=0;k<=7;k++){outportb(bingkou2+2,pport2[k]);delay(1);for(m=0;m<=7;m++){outportb(bingkou2,pport1[m]);for(n=0;n<=19;n++){ /*扔掉前20次測量結果*/ic=inportb(256);/*啟動AD轉換*/delay(1);ic=inportb(257);/*讀取AD轉換數據*/ }; fb=0; fm=0, for(n=0;n<=99;n++){ ic=inportb(256);go ic=inportb(258); delay(1); if(ic=0)goto go, ic=inportb(257); fb1[n]=(float)ic; fb=fb+fb1[n]; fm=fm+fb1[n]*fb1[n]; }; fb=fb/100; fy1[k*8+m]=fb,/*電壓數字*/ fs1[k*8+m]=fm-100*fb*fb; /*方差*/}; };}]]></pre>
附錄C 溫度文件WDWJ0 0 0 15.0 147.5 35.0 152.50 0 1 15.0 147.5 35.0 152.50 0 2 15.0 147.5 35.0 152.50 0 3 15.0 147.5 35.0 152.50 0 4 15.0 147.5 35.0 152.50 0 5 15.0 147.5 35.0 152.50 0 6 15.0 147.5 36.0 152.50 0 7 15.0 147.5 35.0 152.50 1 0 15.0 147.5 35.0 152.50 1 1 15.0 147.5 35.0 152.50 1 2 15.0 147.5 35 0 152.50 1 3 15.0 147.5 35.0 152.50 1 4 15.0 147.5 35.0 152.50 1 5 15.0 147.5 35.0 152.50 1 6 15.0 147.5 35.0 152.50 1 7 15.0 147.5 35.0 152.50 2 0 15.0 147.5 35.0 152.50 2 1 15.0 147.5 35.0 152.50 2 2 15.0 147.5 35.0 152.50 2 3 15.0 147.5 35.0 152.50 2 4 15.0 147.5 35.0 152.50 2 5 15.0 147.5 35.0 152.50 2 6 15.0 147.5 35.0 152.50 2 7 15.0 147.5 35.0 152.50 3 0 15.0 147.5 35.0 152.50 3 1 15.0 147.5 35.0 152.50 3 2 15.0 147.5 35.0 152.50 3 3 15.0 147.5 35.0 152.50 3 4 15.0 147.5 35.0 152.50 3 5 15.0 147.5 35.0 152.50 3 6 15.0 147.5 35.0 152 50 3 7 15.0 147.5 35.0 152.50 4 0 15.0 147.5 35.0 152.50 4 1 15.0 147.5 35.0 152.50 4 2 15.0 147.5 35.0 152.50 4 3 15.0 147.5 35.0 152.50 4 4 15.0 147.5 35.0 152.50 4 5 15.0 147.5 35.0 152.50 4 6 15.0 147.5 35.0 152.50 4 7 15.0 147.5 35.0 152.50 5 0 15.0 147.5 35.0 152.50 5 1 15.0 147.5 35.0 152.50 5 2 15.0 147.5 35.0 152.50 5 3 15.0 147.5 35.0 152.50 5 4 15.0 147.5 35.0 152.50 5 5 15.0 147.5 35 0 152.50 5 6 15.0 147.5 35.0 152.50 5 7 15.0 147.5 35.0 152.50 6 0 15.0 147.5 35.0 152.50 6 1 15.0 147.5 35.0 152.50 6 2 15.0 147.5 35.0 152.50 6 3 15.0 147.5 35.0 152 50 6 4 15.0 147.5 35.0 152.50 6 5 15.0 147.5 35.0 152.50 6 6 15.0 147.5 35.0 152.50 6 7 15.0 147.5 35.0 152.50 7 0 15.0 147.5 35.0 152.50 7 1 15.0 147.5 35.0 152.50 7 2 15.0 147.5 35.0 152.50 7 3 15.0 147.5 35.0 147.50 7 4 15.0 147.5 35.0 152.50 7 5 15.0 147.5 35.0 152.50 7 6 15.0 147.5 35.0 152.50 7 7 15.0 147.5 35.0 152.5
附錄D 測試程序算法<pre listing-type="program-listing"><![CDATA[struct wdwj{inttd,bb1,bh2,float wendu1[2];float wendu2[2]; }wdwj; struct wdwj far*pf0[64]; int bingkou2={888}; /*并口二的首地址*/ int adk={256}; /*AD卡的首地址*/ int pport1[8]={15,14,13,12,11,10,9,9}, int pport2[8]={12,13,14,15,8,9 10,11}, float fy[64],fy1[64]={0},fs[64]={0}; voidteat(); /**************min program********************/void main(){ FILE*fp; charche[8]; int ia1,ia2,ia3,kmax, kmin; float fa1,fa2,fa3,fa4,fb,fc,fd,ff; float fdmax,fdmin,fmax,fmin; pf0
=(struct wdwj*)malloc(sizeof(struct wdwj);, if(!pf0
){ exit(1); }; for(i=0;i<=63;i++){ pf0[i+1]=pf0[i]+1, }; strcpy(che,"wdwj"); if(!(fp=fopen(che,"r"))){exit(1); }; for(i=0;i<=63;i++){ fscanf(fp,"%i %i %i″,&a1,&ia2,&ia3); fscanf(fp,"%f %f %f %f",&fa1,&fa2,&fa3,&fa4); (*pf0[i]),td=ia1; (*pf0[i]),bb1=ia2; (*pf0[i]},bb2=ia3; (*pf0[i]),wendu1
=fa1;(*pf0[i]),wendu1[1]=fa2 (*pf0[i]),wendu2
=fa3; (*pf0[i]),wendu2[1]=fa4; };if(fclose(fp)){exit(1); };yn: test(); fb=0; for(i=0;i<=63;i++){ fa1=(*pf0[i]),wcndu1
; fa2=(*pf0[i]),wendu1[1]; fa3=(*pf0[i]),wendu2
; fa4=(*pf0[i]),wendu2[1]; ff=py1[i]); fy[i]=(ff-fa2)*(fa3-fa1)/(fa4-fa2)+fa1;/*溫度值*/ fb=fb+fy[i]; }; fb=fb/64; /*平均值*/ kmax=0; kmin=0; fmax=fy
; fmin=fy
; for(i=0;i<=63;i++){ if(fy[i]>fmax){fmax=fy[i];kmax=i; }; if(fy[i]<fmin){fmin=fy[i];kmin=i; }; }; fdmax=fmax-fb; /*替換*/ fdmin=fb-fmin; fc=(*pf0[kmax]),wendu1[1]; fc=fc+0.25*fdmax; (*pf0[kmax]),wendu1[1]=fc; fd=(*pf0[kmin]),wendu1[1]; fd=fd-0.25*fdmin;(*pf0[kmin])wendu1[1]=fd;if((fdmax-fdmin)>0.5){goto yn;};} /**************end main**********************/void test(){ intic,k,m,n; flout fb,fm; float fb1[100]={0};outportb(adk,0); /*選擇AD卡的0#通道*/delay(4);for(k=0;k<=7;k++){ ontportb(bingkou2+2,pport2[k]); delay(1); for(m=0;m<=7;m++){ outportb(bingkou2,pport1[m]); for(n=0;n<=19;n++){ /*扔掉前20次測量結果*/ ic=inportb(adk); /*啟動AD轉換*/ delay(1); ic=inportb(adk+1); /*讀取AD轉換數據*/ }; fb=0; fm=0; for(n=0;n\=99;n++){ ic=inportb(adk);go; ic=inportb(adk+2); dclay(1); if(ic==0)goto go; ic=inportb(adk+1); fb1[n]=(float)ic; fb=fb+fb1[n]; fm=fm+fb1[n]*fb1[n]; };fb=fb/100;fy1[k*8+m]=fb; /*電壓數字*/fs1[k*8+m]=fm-100*fb*fb;/*方差*/ };};}]]></pre>
權利要求
1.一種微機遠距離多點測溫系統,其特征在于它包括微機(1)、打印機(2)、AD轉換卡(3)、第二并口卡(4)、主控制器(5)和分控制器及其傳感器(6);AD轉換卡(3)、第二并口卡(4)插在微機的擴展槽內;分控制器及其傳感器(6)安裝在糧倉內;主控制器(5)最多可連接32個分控制器,主控制器(5)與分控制器(6)的最大距離可達2KM;第二并口的引出線經重新定義,從主控制器(5)轉接至分控制器(6),并從一個分控制器(6)向另一個分控制器(6)轉接,用于控制傳感器的多路轉換;每個分控制器(6)最多可連接64個傳感器;全系統最多可連2048個傳感器;分控制器(6)的輸出經主控制器(5)的電阻接地,AD轉換卡(3)在電阻上端進行電壓采樣,轉換成電壓數字,再經程序轉換成溫度。
2.根據權利要求1所述的微機遠距離多點測溫系統,其特征在于主空制器(5)是由模塊(7)、模塊(8)、模塊(9)構成;模塊(7)是一電源轉換裝置,其輸出供給分控制器(6)的Vdd;模塊(9)把模塊(7)的輸出、第二并口卡(4)的第16,14,1,4,3,2引腳用7芯屏蔽線轉接至分控制器(6),最大距離≤2KM;引腳17在主控制器(5)的模塊(9)內備用;模塊(8)由32個固定電阻和32個精密微調電阻構成;把它們的電阻之和調至10KΩ,誤差不超過±1Ω;模塊(8)的輸入來自32個分控制器(6)的輸出;在32個電阻的上端連接AD轉換卡(3)的32個通道;分控制器(6)的輸出線也用屏蔽線;各分控制器(6)的輸出可以根據遠近合并成多芯屏蔽線進入主控制器(5);所有屏蔽兩端均應接地;模塊(7)的地線也應與微機(1)的地線實行無阻抗連接;最遠的分控制器(6)的地線與主控制器(5)的地線的直流阻抗不應大于10Ω。
3.根據權利要求1所述的微機遠距離多點測溫系統,其特征在于分控制器(6)是由模塊(10)、模塊(11)、模塊(12)構成;模塊(11)由6組電壓放大器構成;其輸入與模塊(9)的16,14,1,4,3,2引腳線相連,其輸出分兩組16,14,1引腳線對應的輸出連接模塊(10)的S’2,S’1,S’0;另一組4,3,2引腳線對應的輸出連接模塊(12)的S2,S1,S0;模塊(10)由4051芯片構成;其輸入連接模塊(12)的8個輸出,其輸出按分控制器的編號連接模塊(8)的對應電阻;模塊(12)由8個4051芯片、8個4028芯片、8個HTS-2型溫度傳感器構成;8個溫度傳感器的電源端連接4028芯片的8個輸出端,8個溫度傳感器的信號端連接4051芯片的8個輸入端;4051芯片和4028芯片的3個控制端均連接模塊(11)的S2,S1,S0。分控制器(6)的所有器件均使用主控制器(5)引來的電源。
4.根據權利要求1所述的微機遠距離多點測溫系統,其特征在于第二并口卡(4)使用的操作指令為OUT(N),M和OUT(N+2),M;其中N是第二并口卡(4)的首地址,M是操作數;當M按照12,13,14,15,8,9,10,11的順序變化時,OUT(N+2),M將按照附錄A的表-2的規律,在16,14,1的引腳上產生7,6,5,4,3,2,1,0的輸出;當M按照15,14,13,12,11,10,9,8的順序變化時,OUT(N),M將按照附錄A的表-1的規律,在4,3,2的引腳上產生7,6,5,4,3,2,1,0的輸出;經模塊(11)的反相放大,在模塊(11)的輸出端將分別產生兩組控制序列0,1,2,3,4,5,6,7,用于分別控制模塊(10)和模塊(12)。
5.根據權利要求1所述的微機遠距離多點測溫系統,其特征在于基本算法是(1)重復測量,取平均值為最終結果;(2)每次測量之間,要有1mS的時間間隔;(3)每對傳感器進行測量操作時,均應先進行一定數量的空測量,其測量結果棄之不用;(4)用計算方差的方法檢驗系統的穩定性;當方差≤1000時,測量的重復性可達±0.1℃之內;否則,應檢查線路連接質量或傳感器好壞;(5)基本算法程序在附錄B中;
6.根據權利要求1所述的微機遠距離多點測溫系統,其特征在于系統誤差的調整方法如下(1)建立溫度文件,如附錄C;(2)把一個分控制器(6)的64個傳感器放入具有相同溫度的介質中;介質溫度調至低溫點附近;(3)用測試程序算法(附錄D),使每個傳感器低溫點的電壓數值逐步向全部傳感器溫度平均值的對應電壓數值靠近;(4)用文字編輯程序修改溫度文件中的每個傳感器的溫度項,使之與介質溫度一致;(5)把介質溫度從接近低溫點升致接近高溫點,再進行(3)、(4);(6)在用戶程序中使用已調好的溫度文件,使用基本算法和直線兩點式方程,就可換算出準確的多點溫度。
全文摘要
一種微機遠距離多點測溫系統,它包括微機1、打印機2、AD轉換卡3、第二并口卡4、主控制器5和分控制器及其傳感器6;主控制器5最多可連32個分控制器6,每個分控制器6最多可連64個傳感器;全系統最多可連2048個傳感器;最大傳輸距離可達2KM;程序采用特殊算法。其優點是在-30℃~+50℃范圍內,可使每個傳感器周圍介質溫度與微機1的屏幕上的對應點溫度的誤差≤0.5℃,重復性≤0.1℃;市電不進糧倉;節能;不必考慮散熱問題,就可對糧倉內電路實行全密封,以防止糧倉內有害氣體腐蝕。
文檔編號G01K3/00GK1239222SQ98113599
公開日1999年12月22日 申請日期1998年6月12日 優先權日1998年6月12日
發明者戴懷來 申請人:戴懷來