ob体育竞彩 _欧宝体育在线链接 學習網站
當前位置: ob体育竞彩 > 電氣自動化> 正文

溫控器上下限設置方法及程序源代碼

時間:2017-11-06 13:23 來源:ob体育竞彩

溫控器上下限設置方法及程序源代碼
將儀表連線接妥後,將開關撥至“下限設定”處,同時旋轉相對應的下限設定旋鈕,此時數字顯示的是所需的下限溫度值,將開關撥至“上限設定”處,同時旋轉相對應的上限設定旋鈕,此時數字顯示的是所需的上限溫度值;再將開關撥至“測量”處,數字顯示的是被測對象的實際溫度值。當實際溫度值低於下限設定值時,綠燈亮,上限繼電器均為總低通,總高斷;當實際值達到或超過下限設定值而仍低於上限設定值時,綠燈紅燈均熄滅、下限繼電器總低斷、總高通、上限繼電器為總低通,總高斷、當實際值達到或超過上限設定值時,紅燈亮,此處對上限繼電器均為總低斷、總高通。一般作溫度控製時可把下限繼電器輸出輔助加熱控製、上限作加熱控製,也可把下限繼電器輸出作溫度控製,而把上限繼電器輸出作超溫報警。後綴加“F”的儀表,上限所需溫度值必須調整到高於下限所需溫度高值。當實際值低於下限值時綠燈亮,繼電器總低通,升溫;當實際值高於下限值且低於上限值時仍為總低通,升溫;當實際值高於上限值時,紅燈亮,繼電器總高通、總低斷開,停止加溫,隻有當實際溫度值低於下限值時,綠燈亮,總低通,周而複始。整個過程隻有一個繼電器輸出,以便與負載方便地配接。


  怎樣設定溫度控製器信號輸出上下限?也就是測定值到達上限停小於設定值啟。

  1、下限偏差告警設置:按SET鍵選擇顯示“SLP”,綠色顯示屏顯示該項參數的數值,選擇移位、遞增、遞減鍵設置或修改該項參數。該參數表示告警點低於主控設定點的相差值。

  2、上限偏差告警設置:按SET鍵選擇顯示“SHP”,綠色顯示屏顯示該項參數的數值,選擇移位、遞增、遞減鍵設置或修改該項參數。該參數表示告警點高於主控設定點的相差值。

  3、比例範圍設置:按SET鍵選擇顯示“P”,綠色顯示屏顯示該項參數的數值,選擇移位、遞增、遞減鍵設置或修改該項參數。“P”值越大,溫控器的主控繼電器輸出的靈敏度越低,“P”值越小,溫控器的主控繼電器輸出的靈敏度越高。

  4、積分時間設置:按SET鍵選擇顯示“I”,綠色顯示屏顯示該項參數的數值,選擇移位、遞增、遞減鍵設置或修改該項參數。設定的積分時間越短,積分作用越強。

  5、微分時間設置:按SET鍵選擇顯示“D”,綠色顯示屏顯示該項參數的數值,選擇移位、遞增、遞減鍵設置或修改該項參數。儀表設定的微分時間越長,則以微分作用進行的修正越強。

  6、比例周期設置:按SET鍵選擇顯示“T”,綠色顯示屏顯示該項參數的數值,選擇移位、遞增、遞減鍵設置或修改該項參數。

  7、自整定設置:按SET鍵選擇顯示“Aτ”,綠色顯示屏顯示該項參數的數值,選擇移位、遞增、遞減鍵設置或修改該項參數;設置為“00”表示自整定關閉,設置為“01”表示自整定啟動。

  8、鎖參數設置:按SET鍵選擇顯示“LOK”,綠色顯示屏顯示鎖的狀態,選擇移位、遞增、遞減鍵設置或修改該項參數;設置為“00”表示不鎖,設置為“01”表示隻鎖主控以外的參數,設置為“02”表示所有參數全鎖定。參數被鎖定後,別人不能修改,需修改時要解鎖,即設置為“00”。

  9、主控溫度上限設置:按SET鍵選擇顯示“SOH”,綠色顯示屏顯示該項參數的數值,選擇移位、遞增、遞減鍵設置或修改該項參數;該參數表示主控繼電器動作溫度不能高於此值,否則,主控設定溫度無效

  10、溫度修正設置:按SET鍵選擇顯示“SC”,綠色顯示屏顯示該項參數的數值,選擇移位、遞增、遞減鍵設置或修改該項參數;當溫控器長時間運行後產生測量偏差時,就可使用該項功能修正誤差。如測量值偏小2℃時,即可設置該項參數為02,若測量值偏大2℃時,即可設置該項參數為-2。

  人工智能溫控器上麵不光有模似量輸出,固態繼電器低壓側就是模似量輸出,而且有常規狀態下有繼電器輸出就是,常開,常閉,公共端三個點,來控製接觸器的線圈,好多加熱控製回路,也有用接觸器的,如果原來的主控輸出是控製可控矽的想把它改成接觸器的,對於用戶來說不太可能,隻能利用儀表的上下限報警輸出來控製接觸器。

  根據工作環境的溫度變化,在開關內部發生物理形變,從而產生某些特殊效應,溫控器 溫控 開關,產生導通或者斷開動作的一係列自動控製元件,也叫溫控開關、溫度保護器、溫度控製器,簡稱溫控器。或是通過溫度傳感器器將溫度信號傳到溫度控製器,溫度控製器發出開關命令,從而控製設備的運行以達到理想的溫度及節能效果,其應用範圍非常廣泛,例如熱水係統,烤箱,蔬菜大棚,孵化箱,陶瓷窯等。 

  附上可設定上下限溫控程序源代碼,僅供參考!

  /*----------------------------------------------------------------

  段P0,位P2。接線從低端開始,段a--h對應P0.0--P0.7.位1,2.。。對應 P2.0--P2.7 ------------------------------------------------------------------*/ //單片機:89CS52 //晶振:12MH

  #include 《AT89X52.h》 #include “DS18B20.h” #define schar signed char #define uint unsigned int

  #define uchar unsigned char //宏定義

  sbit SET=P3^1; //定義調整鍵 sbit DEC=P3^2; //定義減少鍵 sbit ADD=P3^3; //定義增加鍵

  sbit jiawen=P3^6; //定義加溫

  bit shanshuo_st; //閃爍間隔標誌 bit beep_st; //加溫間隔標誌

  uchar x=0; //計數器

  schar m,PD; //溫度值全局變量 uchar n; //溫度值全局變量 uchar set_st=0; //狀態標誌

  schar shangxian=50; //上限報警溫度,默認值為50 schar xiaxian=25; //下限報警溫度,默認值為25 uchar

  code LEDData〔〕={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90}; //共陽碼 code LEDData1〔〕={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //共陽碼 /*****延時子程序*****/ void Delay(uint num) { while( --num ); }

  /*****初始化定時器0*****/ void InitTImer() { TMOD=0x1; TH0=0x3c; TL0=0xb0; //50ms(晶振12M) }

  /*****定時器0 中斷服務程序*****/ void TImer0(void) interrupt 1 {

  TH0=0x3c; TL0=0xb0; x++; }

  /*****外部中斷0 服務程序*****/ void int0(void) interrupt 0 { EX0=0; //關外部中斷0 if(DEC==0&&set_st==1) { if(DEC==0) Delay(80); //500

  if(DEC==0) { shangxian--;www.gdzxks.com

  do { while(DEC==0); Delay(80); // } while(DEC==0); if(shangxian《xiaxian)

  shangxian=xiaxian; } } else if(DEC==0&&set_st==2) { if(DEC==0) Delay(80); // if(DEC==0) { xiaxian--; do { while(DEC==0); Delay(80); // } while(DEC==0);

  if(xiaxian《0) xiaxian=0; } } }

  /*****外部中斷1 服務程序*****/ void int1(void) interrupt 2 { EX1=0; //關外部中斷1 if(ADD==0&&set_st==1) { if(ADD==0) Delay(80); //500 if(ADD==0) { shangxian++; do { while(ADD==0); Delay(80); //500 } while(ADD==0);

  if(shangxian》=99) shangxian=99; } } else if(ADD==0&&set_st==2) { if(ADD==0) Delay(80); // if(ADD==0) { xiaxian++; do { while(ADD==0); Delay(80); //500 } while(ADD==0); if(xiaxian》shangxian) xiaxian=shangxian; } } }

  /*****讀取溫度*****/ void check_wendu() {

  uint a,b,c; c=ReadTemperature()-5; //獲取溫度值並減去DS18B20 的溫漂誤差 a=c/100; //計算得到十位數字 b=c/10-a*10; //計算得到個位數字 m=c/10; //計算得到整數位 n=c-a*100-b*10; //計算得到小數位 if(m《0){m=0;n=0;} //設置溫度顯示下限 if(m》99){m=99;n=9;} //設置溫度顯示上限 }

  /*****顯示開機初始化等待畫麵*****/ Disp_init() { P0 = 0xbf; //顯示- P2 = 0xf7; Delay(200); P2 = 0xfb; Delay(200); P2 = 0xfd; Delay(200); P2 = 0xfe; Delay(200); P2 = 0xff; //關閉顯示 }

  /*****顯示溫度子程序*****/

  Disp_Temperature() //顯示溫度 { P0 =0xc6; //顯示C P2 = 0xfe; Delay(200); P0 =LEDData〔n〕; //顯示個位 P2 = 0xfd; Delay(200); P0 =LEDData1〔m%10〕; //顯示十位 P2 = 0xfb; Delay(200); P0 =LEDData〔m/10〕; //顯示百位 P2 = 0xf7; Delay(200); P2 = 0xff; //關閉顯示 }

  /*****顯示報警溫度子程序*****/ Disp_alarm(uchar baojing) {

  P0 =0xc6; //顯示C P2 = 0xfe; Delay(200); P0 =LEDData〔baojing%10〕; //顯示十位 P2 = 0xfd; Delay(200); P0 =LEDData〔baojing/10〕; //顯示百位 P2 = 0xfb; Delay(200); if(set_st==1)P0 =0x89; else if(set_st==2)P0 =0xc7; //上限H、下限L 標示 P2 = 0xf7; Delay(200); P2 = 0xff; //關閉顯示 }

  /*****加降溫子程序*****/ void Alarm() { if(x》=0) { beep_st=~beep_st; x=0; }

  // if((m》=shangxian&&beep_st==1)||(m《xiaxian&&beep_st==1)) // jiawen=0; // else //上下限兩頭加溫,中間不加溫 // jiawen=1; if(m》=shangxian) //大於上限停止 { jiawen=1; } if(m《=xiaxian) //當降到下限才加溫 { jiawen=0; } }

  /*****主函數*****/ void main() { uint z; InitTImer(); //初始化定時器 EA=1; //全局中斷開關

  TR0=1; //啟動定時器0

  IT0=1; //定時器0脈衝觸發方式,下降沿有效 IT1=1; //定時器1脈衝觸發方式,下降沿有效 check_wendu(); check_wendu(); for(z=0;z《300;z++) { Disp_init(); }

  while(1) {

  if(SET==0) { Delay(600); //2000 do{}while(SET==0); set_st++;x=0;shanshuo_st=1; if(set_st》2)set_st=0; } if(set_st==0) { EX0=0; //關閉外部中斷0 EX1=0; //關閉外部中斷1 check_wendu(); Disp_Temperature(); Alarm(); //加溫檢測 }

  else if(set_st==1) { jiawen=1; //關閉加溫 EX0=1; //開啟外部中斷0 EX1=1; //開啟外部中斷1 if(x》=10){shanshuo_st=~shanshuo_st;x=0;} if(shanshuo_st) {Disp_alarm(shangxian);} }

  else if(set_st==2) { jiawen=1; //關閉加溫

  EX0=1; //開啟外部中斷0

  EX1=1; //開啟外部中斷1 if(x》=10){shanshuo_st=~shanshuo_st;x=0;} if(shanshuo_st) {Disp_alarm(xiaxian);} } } }

  /*單片機89CS52*/

  #ifndef DS18B20_H #define DS18B20_H #include 《AT89X52.h》 #define uint unsigned int

  #define uchar unsigned char //宏定義

  sbit DQ=P3^7; //定義DS18B20 總線I/O /*****延時子程序*****/

  void Delay_DS18B20(int num) { while(num--) }

  /*****初始化DS18B20*****/ void Init_DS18B20(void) { uchar x=0; DQ = 1; //DQ 複位 Delay_DS18B20(8); //稍做延時8 DQ = 0; //單片機將DQ 拉低 Delay_DS18B20(32); //精確延時,大於480us 80 DQ = 1; //拉高總線 Delay_DS18B20(14); //14 x = DQ; //稍做延時後,如果x=0 則初始化成功,x=1 則初始化失敗 Delay_DS18B20(20); //20 }

  /*****讀一個字節*****/ uchar ReadOneChar(void) { uchar i=0; uchar dat = 0; for (i=8;i》0;i--) { DQ = 0; // 給脈衝信號 dat》》=1; DQ = 1; // 給脈衝信號

  if(DQ) dat|=0x80; Delay_DS18B20(4); //4 }

  return(dat); }

  /*****寫一個字節*****/ void WriteOneChar(uchar dat) { uchar i=0; for (i=8; i》0; i--) { DQ = 0; DQ = dat&0x01; Delay_DS18B20(5); //5 DQ = 1; dat》》=1; } }

  /*****讀取溫度*****/ uint ReadTemperature(void) { uchar a=0; uchar b=0; uint t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); //跳過讀序號列號的操作 WriteOneChar(0x44); //啟動溫度轉換 Init_DS18B20(); WriteOneChar(0xCC); //跳過讀序號列號的操作 WriteOneChar(0xBE); //讀取溫度寄存器 a=ReadOneChar(); //讀低8 位 b=ReadOneChar(); //讀高8 位 t=b; t《《=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; //放大10 倍輸出並四舍五入 return(t); }

  #endif

  /*****END*****/

    看過《溫控器上下限設置方法及程序源代碼》的人還看了以下文章
    智能PID控製參數調試重點參數值 智能PID控製參數調試重點參數值
    智能PID控製參數調試過程中,由於自整定得到的PID控製參數不一定是最佳值,所以自整定後儀表的控製效果不一定最理想,如不能滿足控製係統的精度要求,可以通過手動設定,微調這幾個參數的值,使係統達到滿意的控製效果。 (1)比例帶P的選取 由於P的大小直接影...
    模糊智能PID溫控器的參數意義 模糊智能PID溫控器的參數意義
    國內生產廠家的PID幾乎都是一樣的原理下麵就說一說模糊智能PID溫控器的參數意義: P:為比例帶,它在PID調節中,輸出控製量的大小與測量值和設定值之間的偏差成比例關係,偏差越大,輸出越大,儀表比例參數P的設定值越大,控製靈敏度越低,穩定性越高;P的設定值越小...
    比武考試題目兩台泵排水係統控製 比武考試題目兩台泵排水係統控製
    比武考試的題目,是兩台泵排水係統控製。 要求: 1、水到達中水位時,一個泵開始排水,一個泵排不急,水位上升到高水位時,另一台泵也開始排水,水位下降到中水位時,這台泵停。 2、當水位到達中水位時,一個泵開始排水,水位到達低水位時泵停,當水位再次到...
    行程開關和組合開關的區別 行程開關和組合開關的區別
    一、行程開關 1、行程開關又稱限位開關,是利用機械運動部件的碰撞或接近來控製其觸頭動作的主令電器,用來控製機械運動部件的行程和變換運動的方向、速度及程序控製。常用形式有按鈕式和轉臂式兩種。按鈕式行程開關與按鈕開關極其類似,不同之處是它依靠機...
    法蘭變送器比普通變送器精度低的原因 法蘭變送器比普通變送器精度低的原因
    普通變送器沒有遠傳密封裝置,被測介質通過導壓管進入測量室。 法蘭變送器在普通變送器基礎上增加遠程密封裝置,基本構成有法蘭膜盒、毛細管、毛細管內填充液。 如何工作?被測介質直接作用在法蘭膜盒上,此刻膜盒發生形變,毛細管內填充液將壓力傳遞到變送...
    Baidu
    map