痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 10258|回復: 26

溫控電烙鐵首部曲

  [複製鏈接]
發表於 2013-1-6 14:29:10 | 顯示全部樓層 |閱讀模式
就把溫度控制器拿來控制烙鐵手柄吧!!
設定 54度
控溫烙鐵B01.JPG

控溫烙鐵B02.JPG

溫度設在350度
控溫烙鐵B08.JPG

控溫烙鐵B09.JPG

控溫烙鐵B06.JPG

如何做:
電壓18V 給溫度控制器 RKC牌 SA200 把它的輸出1(繼電器接點)用來供應 936手柄的電壓, 936感溫線輸出到SA200的輸入,加溫數度太快了所以溫度跳的很大設定54度卻跑到8 90度近100度,加溫時電流約1.5A,設定 350度時候加溫的頻率增加,但是仍然會超溫許多,因為 PID 參數不熟,使用 AT模式其他先不管!!

效果&缺點: 因為是 RELAY 動作所以沒有細的 DUTY CYCLE可以調整,繼電器 動做若是頻繁容易故障吧!! 溫控變化過大!!
                後續可以使用 MOSFET 來驅動,可以的話要分段 全開(差異100度) 30%火力(差異50度) 10%火力(差異20度) 2%火力(5度差異) 全關(過溫)...待測試!!

評分

5

查看全部評分

發表於 2013-1-6 15:24:38 | 顯示全部樓層
有意思的應用n_116|
 樓主| 發表於 2013-1-6 23:35:56 | 顯示全部樓層
補上幾張 照片 控溫誤差範圍還算大,程式還沒修改!!

控溫烙鐵03.JPG

控溫烙鐵02.JPG

控溫烙鐵01.JPG

控溫烙鐵04.JPG

使用電壓 約12V MOSFET+光耦合 電阻調溫!!
發表於 2013-1-7 15:35:27 | 顯示全部樓層
看到這個,我心中的惡魔又燒起來了,
無奈,現在這個時間正好是工作最忙的時候啊!一直到元宵!
而且,上次買的那隻FZ-880B在使用上,還算順手,
但是,如果可以自製的話,我也很樂意學習。

阿乾兄,加油啊!

附上這個:
STC_89c控制936的恒温烙铁.zip (76.15 KB, 下載次數: 123)
可能沒什麼幫助!

要自製恆溫烙鐵,根據我爬文來的經驗:

一、電源輸入:
要使用dc18~24v約60~80w的輸入,所以大多都是使用notebook的變壓器來使用,輸入源比較穩,加熱較快些。
不是說使用大家都有的液晶變壓器不好,而是因為功率不足,加熱比較慢了些。
以我的經驗來說:HP的18.5v 65w的變壓器是較好取得的。

二、顯示端:
大都還是使用三位的七段顯示器來用一顆或二顆都有,比較能降低成本,壞了也不心疼!
以我的經驗來說:老大那有一堆,一個五元,我上次要買,買到忘了!

三、控制端:
不好意思,小弟的功力太淺了,看到這裡就有點力不從心了,
不過一般來說,使用單片機或是使用PWM晶片的都有。

四、輸出端:
目前恆溫烙鐵,我個人覺得,還是使用HAKKO 900M系列的烙鐵頭相容的發熱芯來作,最為合適,
因為成本低,好取得,烙鐵頭和發熱芯都是一把一把的在網路上有賣,以A1321為佳,
當然也有HAKKO T12系列的,發熱芯和烙鐵頭一體,也是方便更換使用,但是以網路上取得來說,
目前都是二手貨或是山寨貨比較多,成本也高了一些。

五、外觀:
因為已使用notebook的變壓器當成電源輸入了,所以整個控制電路可以作得很小,
大約都可以控制在2.5吋硬碟的大小,但是較厚些,當然也有更小的方案,方便使用和攜帶。

以上讀書心得報告完畢!

評分

2

查看全部評分

發表於 2013-1-7 16:28:06 | 顯示全部樓層
antlu 發表於 2013-1-6 11:35 PM static/image/common/back.gif
補上幾張 照片 控溫誤差範圍還算大,程式還沒修改!!

看到你們這樣幹,我寧可買零件來仿Hakko 936。n_095|
板子也不用洗,用拉線就行了。n_141|
 樓主| 發表於 2013-1-7 19:30:41 | 顯示全部樓層
fatzeros 發表於 2013-1-7 03:35 PM static/image/common/back.gif
看到這個,我心中的惡魔又燒起來了,
無奈,現在這個時間正好是工作最忙的時候啊!一直到元宵!
而且,上次 ...

fatzeros大:
    感謝您提供這麼詳盡的分析報告!! 今天花了幾個小時想要把我的電路"塞"進盒子裡,結果超乎我的想像的困難!!  原先手頭有一個 HP 40W的電源,後來發現她大了一點不好放進去,而原先的變壓器是 24V和10V 所以電路又要改裝(本來用 MOSFET 現在要改成 TRIAC) ....
   網路上有人用兩個OP做溫度控制來做恆溫犖鐵  http://wiki.dzsc.com/info/1517.html 這種ON/OFF 方式可能會有問題,因為加溫速度太快 反應速度會造成 差異過大!!
發表於 2013-1-7 22:02:46 | 顯示全部樓層
我那台真空溫控吸錫器要是搬家當時留下來
跟阿乾師一比,它就是老骨董
 樓主| 發表於 2013-1-8 00:02:42 | 顯示全部樓層
popcorn 發表於 2013-1-7 10:02 PM static/image/common/back.gif
我那台真空溫控吸錫器要是搬家當時留下來
跟阿乾師一比,它就是老骨董

你的古董還真不少!! 有一天在回收場 看到一個破爛的WELLER 沒顯示沒烙鐵只看了一眼!! 沒想到在去就不見了!! 我的那隻烙鐵還可以用,那天戶外接電鈴還用了它!!
發表於 2013-1-8 00:34:41 | 顯示全部樓層
控制也可以考慮使用固態接點(SSR等),進行PID控制會比用繼電器反應要快
 樓主| 發表於 2013-1-8 02:03:46 | 顯示全部樓層
港都狼仔 發表於 2013-1-8 12:34 AM static/image/common/back.gif
控制也可以考慮使用固態接點(SSR等),進行PID控制會比用繼電器反應要快

港都狼大:
   感謝建議!! 因為裝箱的關係,目前已經換成了 SSR ,原先的實驗電壓 12V 經過裝箱時原機箱的 24V AC感覺溫度升的更快,看樣子程式上面要好好修改,我想利用溫度差異來變更輸出的 佔空比 但這也只能算是 P 而已,至於 I 和 D 可能就沒辦法了,程式功力以及數學能力都不行!!
發表於 2013-1-8 04:29:58 | 顯示全部樓層
阿乾大:
越老越花俏,玩得越來越多 ... 繼續前進 ... n_163| ...
PID要做得好調得準並不容易 ... 等你領悟再收徒弟 ... :sam38  :sam14 :sam13
 樓主| 發表於 2013-1-8 11:58:20 | 顯示全部樓層
scottwang 發表於 2013-1-8 04:29 AM static/image/common/back.gif
阿乾大:
越老越花俏,玩得越來越多 ... 繼續前進 ...  ...
PID要做得好調得準並不容易 . ...

scottwang 師父在上,先受未進門的 徒兒一拜!!
發表於 2013-1-8 12:20:57 | 顯示全部樓層
antlu 發表於 2013-1-8 11:58 AM static/image/common/back.gif
scottwang 師父在上,先受未進門的 徒兒一拜!!

沒有啦,我來當你的徒弟 ... n_136|
發表於 2013-1-8 12:56:54 | 顯示全部樓層
謝謝大大分享
 樓主| 發表於 2013-1-8 22:07:22 | 顯示全部樓層
本帖最後由 antlu 於 2013-1-8 11:47 PM 編輯

SSR板

恆溫烙鐵SSR.png

實驗電路

控溫烙鐵.png



 樓主| 發表於 2013-1-8 23:58:10 | 顯示全部樓層
本帖最後由 antlu 於 2013-1-9 12:03 AM 編輯

把 撿到的無線電發射裝置拆了!!

控溫烙鐵C01.JPG

控溫烙鐵C02.JPG

控溫烙鐵C03.JPG

控溫烙鐵C04.JPG

控溫烙鐵C05.JPG

控溫烙鐵C06.JPG

逐步改裝 把電路板裝了進去,..
控溫烙鐵D01.JPG

控溫烙鐵D02.JPG

控溫烙鐵D03.JPG

控溫烙鐵D04.JPG

控溫烙鐵D05.JPG

控溫烙鐵D06.JPG

控溫烙鐵D07.JPG

控溫烙鐵D08.JPG

控溫烙鐵D09.JPG

控溫烙鐵D10.JPG

控溫烙鐵D11.JPG

可惜這 LCM沒有背光!!
先把硬體裝好"爽一陣子",接下來慢慢的改程式,ISP 線已經接在後面,到時候改了直接下載!!

評分

5

查看全部評分

發表於 2013-1-9 00:19:29 | 顯示全部樓層
antlu 發表於 2013-1-8 11:58 PM static/image/common/back.gif
把 撿到的無線電發射裝置拆了!!

不錯!
不過無線電拆掉...有點可惜阿!
 樓主| 發表於 2013-1-9 00:21:24 | 顯示全部樓層
forest162 發表於 2013-1-9 12:19 AM static/image/common/back.gif
不錯!
不過無線電拆掉...有點可惜阿!

除了變壓器與外殼之外其他都還在!! 可以送人玩!!
發表於 2013-1-9 00:56:58 | 顯示全部樓層
開始玩改裝了喔.
廢物利用越來越有心得了.
發表於 2013-1-9 23:15:24 | 顯示全部樓層
antlu 發表於 2013-1-8 11:58 PM static/image/common/back.gif
把 撿到的無線電發射裝置拆了!!

當師傅真的不容易,要好努力邁力的拼
我還是做徒弟掃地倒垃圾
那圓罐是松香助焊劑嗎? YES! 老闆訂一罐
 樓主| 發表於 2013-1-10 01:28:04 | 顯示全部樓層
popcorn 發表於 2013-1-9 11:15 PM static/image/common/back.gif
當師傅真的不容易,要好努力邁力的拼
我還是做徒弟掃地倒垃圾
那圓罐是松香助焊劑嗎? YES! 老闆訂一罐 ...

P大:
  那是水性助焊劑 一罐好像要80圓吧!! 一般材料店有賣!!
發表於 2013-1-10 22:42:07 | 顯示全部樓層
曾經用過松香膏,很麻煩~
水性助焊劑使用效果如何
 樓主| 發表於 2013-1-10 23:11:05 | 顯示全部樓層
popcorn 發表於 2013-1-10 10:42 PM static/image/common/back.gif
曾經用過松香膏,很麻煩~
水性助焊劑使用效果如何

當然超順手,只是有煙,好像容易腐蝕烙鐵頭!!
發表於 2013-1-12 13:33:42 | 顯示全部樓層
太複雜了 很實用 但是還是考慮買現成的
發表於 2013-1-23 16:13:53 | 顯示全部樓層
antlu 發表於 2013-1-8 11:58 PM static/image/common/back.gif
把 撿到的無線電發射裝置拆了!!

haha ....

你把這個無線電好物拆了........可惜啦

還好, 另外一個好物進駐

 樓主| 發表於 2013-1-24 23:08:38 | 顯示全部樓層
xiaolaba 發表於 2013-1-23 04:13 PM static/image/common/back.gif
haha ....

你把這個無線電好物拆了........可惜啦

xiaolaba大:
  無線電對我是"廢物"一個!! 有興趣嗎? 沒有CASE!!
 樓主| 發表於 2013-1-28 01:40:39 | 顯示全部樓層
/*20130124 更改程式防止過255計數問題不再LOCK著ROBOTAI 20130123更改 DA 讀取的技巧 有快速反應與減少重啟動現象 20130121 更改sprintf 功能 減肥 增加餵狗功能  3c 2.27秒 20130109修改增加相關功能變更 點火的時間比例但溫度不穩定,高溫會發生 latch 現象要把看門狗功能加入 20121224  P0 LCM display P1 DtoA convert mith R-2R+74LS373 P2^0 hi/lo active sent to LM4558 op amp volt ,34063 neg 5v generator LM393 comparator for P2^1 bit ,loop d/a must clear each cycle                         */
#define ADPortL P1//P1.0~P1.7 AD574 low 8bit
#include<reg52.h>
#include<stdio.h>
#include <intrins.h>
#define DataPort P0//P0.0~P0.7 1602 LCM顯示器
#define  _Nop()  _nop_()        //定义空指令
#define RS_CLR RS=0
#define RS_SET RS=1
#define RW_CLR RW=0
#define RW_SET RW=1
#define EN_CLR EN=0
#define EN_SET EN=1

sbit CMPDT= P2^1;//compare bit P2^1 for 設定溫度 0到3.3v temperature
sbit CMPD = P2^2;//compare bit P2^2 for 熱偶溫度 250度 2.9v
sbit LTH = P2^0;//74ls373 latch bit
sbit Fire = P2^3;//控制SSR動作 LO點火 HI 關斷
sbit RS = P2^4;//P1^0;//LCM指令Lo/資料Hi
sbit RW = P2^5;//P1^1;//讀出 Hi/寫入Lo
sbit EN = P2^6;//P1^2;//動作觸發 Hi>>Lo
//bit SHV_flag;// latch volt
//bit SHT_flag;//latch temp
bit SH_flag;//clean show flag
char DisplayWord[16];//顯示第一行工作的狀況
//char DisplayAWord[16];// 顯示第二行工作的狀況
unsigned char  counter;         //T0使用的1/100計數器.
unsigned char  TimeFlag;         //T0計數1秒的使用旗標.
unsigned int ADget(void);
unsigned char ADT,ADTT, AVOS;
unsigned char ADVL;//ADVL display AD data
void DelayMs(unsigned char);
void DelayUs2x(unsigned char);
void Init_Timer0(void);//定?器初始化
void LCD_Write_String(char x,char y, char *s);
void LCD_Write_Char(char x,char y,char Data);
void LCD_Clear(void);
unsigned int SV,AV;//換算後的設定溫度,換算後的熱偶溫度
unsigned char Lst_ADT,Lst_ADTT;//最後一次的ADT ADTT 最為下一次的ad轉換基底值

//********20130127 手動增加溫度+10-5 檢查此兩位若被按下,跳彈檢查若成立則增加或減少ASV設定
sbit T_inc = P3^2;//inc temp set 10 DEG
sbit T_dec = P3^4;//dec temp set 5 DEG
bit Pres;//inc dec 按鍵被按下
signed char ASV;//手動加減溫度
//************************************

//當差異50度時候輸出30% ----20130109
void fir30(void)
{
Fire=0;
DelayMs(10+AVOS);
Fire=1;
DelayMs(3);
}

//當差異20度時候輸出10%
void fir10(void)
{
Fire=0;
DelayMs(6+AVOS);
Fire=1;
DelayMs(6);
}

//當差異5度時候 輸出2%
void fir2(void)
{
Fire=0;
DelayMs(3+AVOS);
Fire=1;
DelayMs(10);
}

void Fireout (void)
{
signed int Difv;
Difv=SV-AV;
AVOS=SV/100;//temp offset compensator

if(Difv>50)
Fire=0;//全輸出
else if((Difv>20)&&(Difv<=50))
fir30();//30%
else if((Difv>5)&&(Difv<=20))
fir10();//10%
else if((Difv>0)&&(Difv<=5))
fir2();//5%
else
Fire=1;// 全關閉輸出
}



//-----------------DAO-------------------
void DAO(void)//DA converter DAO 熱偶溫度
{
unsigned char DA;
if(Lst_ADT>=30)
  DA=(Lst_ADT-30);
  else
  DA=0;
  while(!CMPD)//compare bit P2^2 取得熱偶溫度讀取的轉態最多256ms
  {
   ADPortL=DA;
   LTH=1;
   LTH=0;
   DelayMs(1);
   if(DA == 0xFF)
   break;  //reach max, break out
   DA++;
  }  
   ADT=DA;//ADVL display AD data
   Lst_ADT=ADT;//記憶最後一次ad讀值
   ADPortL=0;
   LTH=1;
   LTH=0;
   DelayMs(1);
   SH_flag=1;// show flag
}



//-------------DAO2--------------------
void DAO2(void)//DA converter DAO2設定溫度
{
  unsigned char DA;
  if(Lst_ADTT>=30)//若溫度讀值大於30
     DA=(Lst_ADTT-30);
    else
     DA=0;
  while(!CMPDT)//compare bit P2^1 取得溫度設定的轉態最多256ms
  {
   ADPortL=DA;
   LTH=1;
   LTH=0;
   DelayMs(1);
   if(DA == 0xFF)
   break;  //reach max, break out
   DA++;
  }  
   ADTT=DA;//ADVL display AD data
   Lst_ADTT=ADTT;//記憶最後一次ad讀值
   ADPortL=0;
   LTH=1;
   LTH=0;
   DelayMs(1);
   SH_flag=1;// show flag
}


/*------------      LCM 顯示相關程式--------*/
bit LCD_Check_Busy(void) //檢查是否為"忙碌"
{
DataPort= 0xFF;
RS_CLR; // 指令模式
RW_SET; //寫入模式
EN_CLR; //***特別**** 啟動由LO變成HI **************
_nop_();
EN_SET; //***特別**** 啟動由LO變成HI **************
return (bit)(DataPort & 0x80);//若 讀出的資料bit7 =0 可以寫資料
}


void LCD_Write_Com(char com) //命令寫入
{  
while(LCD_Check_Busy()); //忙则等待 1=while loop still;
RS_CLR; //指令功能
RW_CLR; //寫入
EN_SET; //下降緣 由HI變成LO
DataPort= com; // 指令設定
_nop_();
EN_CLR;//
}

void LCD_Write_Data(char Data) //資料寫入
{
while(LCD_Check_Busy()); //忙则等待
RS_SET; // 資料處理
RW_CLR;// 寫的動作
EN_SET; // 啟動下緣觸發
DataPort= Data; //輸入需要寫入的資料
_nop_();//延後一個時間
EN_CLR;//
}

void LCD_Clear(void)
{
LCD_Write_Com(0x01); //清屏指令
DelayMs(5);//時間延遲5ms.
}

void LCD_Write_String(char x,char y, char *s)
{     
if (y == 0) //y 表示第一行或是第二行
        {     
         LCD_Write_Com(0x80 + x);     //表示第一行bit4 Hi+ x position
        }
else
        {      
        LCD_Write_Com(0xC0 + x);      //表示第二行 bit4 Hi+40+x position
        }        
while (*s)
        {     
LCD_Write_Data( *s); // *s 和 s 不一樣,*s 應該是字串 s是字數   
s ++;     
        }
}

/*
void LCD_Write_Char(char x, char y, char Data)
{     
if (y == 0) //第一行
        {     
        LCD_Write_Com(0x80 + x); //第幾個字的位置   
        }   
else
        {     
        LCD_Write_Com(0xC0 + x);     
        }        
LCD_Write_Data( Data);  //字
}
*/
void LCD_Init(void)
{
   LCD_Write_Com(0x38);    /*显示模式设置*/
   DelayMs(5);
   LCD_Write_Com(0x38); //8bit data  2 line 5x7 character.
   DelayMs(5);
   LCD_Write_Com(0x38);
   DelayMs(5);
   LCD_Write_Com(0x38);  
   LCD_Write_Com(0x08);    /*显示关闭*/
   LCD_Write_Com(0x01);    /*显示清屏*/
   LCD_Write_Com(0x06);    /*显示光标移动设置*/
   DelayMs(5);
   LCD_Write_Com(0x0C);    /*显示开及光标设置*/
   }

void DelayUs2x(unsigned char t)
   {   
     while(t--);
   }
void DelayMs(unsigned char t)
{
      while(t--);
   {
     DelayUs2x(245);//from245>>45
         DelayUs2x(245);
   }
}

//--------------------------------------------------------------------------------------------
void Init_Timer0(void)
{
TMOD |= 0x01;          //使用模式1,16位定?器,使用"|"符?可以在使用多?定?器?不受影?                     
TH0= (65536-2000)/256; //        0x0D8 2ms if 12Mcristal
TL0= (65536-2000)%256;// 0x0F0
EA=1;           
ET0=1;         
TR0=1;         
}

//--------------------------------------------------------------------------------------------
void Timer0_isr(void) interrupt 1
{
TH0= (65536-2000)/256; //        0x0D8 2ms if 12Mcristal
TL0= (65536-2000)%256;// 0x0F0
    counter++;//counter is Global variable.
        if(counter==10)
     DAO2();//溫度設定可變電阻電壓 ADTT 255ms
        if(counter==40)
          DAO();//熱偶溫度讀取 ADT 255ms
//          ADTT=150;//**************************************
    if(counter==70)          //140ms更新一次
     {
            counter=0;
        TimeFlag=1;                //計數器中斷約1秒時設定旗標為1,
                //******************
                if(Pres==1)
                {
         if(T_inc==0)
                   {
                    Pres=0;
                        ASV=ASV+10;
                        if(ASV>100)
                          ASV=100;
                        }
                 if(T_dec==0)
                   {
                    ASV=ASV-5;
                        Pres=0;
                        if(ASV<0)
                        ASV=0;
                        }
                }
    WDT_CONTR = 0x3d;//餵狗
                //*************20130127*****
        }
}


void main(void)
{
Init_Timer0();//起始定時器
LCD_Init();// LCM 啟動
LCD_Clear();//LCM清屏
//sprintf(DisplayWord," AD data %5d",00000);//顯示AD為零
Fire=1;//OFF Power
WDT_CONTR = 0x3d;//餵狗2.27s
Lst_ADT=0;//清除基底避免干擾ad讀取
Lst_ADTT=0;
while(1)
{
     if(AV>505)
   {
     Fire=1;
   }

  if(TimeFlag==1)//每140Ms 更新一次
  {
    TimeFlag=0;//清除定時旗標
    if(SH_flag==1)// show flag
      {
       SH_flag=0;
        DisplayWord[0]=' ';
        DisplayWord[1]='S';//Tab[IRcord[0]/16];
        DisplayWord[2]='E';//Tab[IRcord[0]%16];
        DisplayWord[3]='T';
        DisplayWord[4]='=';//time_buf1[5]/10+'0';
        DisplayWord[5]= ADTT/100+'0';
        DisplayWord[6]= ADTT/10%10+'0';
        DisplayWord[7]= ADTT%10%10+'0';
        DisplayWord[8]= ' ';
        DisplayWord[9]= 'T';
        DisplayWord[10]='C';
        DisplayWord[11]=':';
        DisplayWord[12]= ADT/100+'0';;
        DisplayWord[13]= ADT/10%10+'0';
        DisplayWord[14]= ADT%10%10+'0';
        DisplayWord[15]=' ';
// ADT熱偶溫度 ADTT設定溫度顯示第一組的計數 第二組的計數
       LCD_Write_String(0,0, DisplayWord);//顯示在第一行
       SV=ADTT+200+ASV;AV=ADT*2;//20130109 設定值增加200度 設定VR 1COUNT 1度(最多365度) 溫度顯示值1COUNT 2度 增加一個VR調整溫度的 SPAN 最多360度
        DisplayWord[0]=' ';
        DisplayWord[1]='S';//Tab[IRcord[0]/16];
        DisplayWord[2]='E';//Tab[IRcord[0]%16];
        DisplayWord[3]='T';
        DisplayWord[4]='=';//time_buf1[5]/10+'0';
        DisplayWord[5]= SV/100+'0';
        DisplayWord[6]= SV/10%10+'0';
        DisplayWord[7]= SV%10%10+'0';
        DisplayWord[8]= ' ';
        DisplayWord[9]= 'T';
        DisplayWord[10]='C';
        DisplayWord[11]=':';
        DisplayWord[12]= AV/100+'0';;
        DisplayWord[13]= AV/10%10+'0';
        DisplayWord[14]= AV%10%10+'0';
        DisplayWord[15]=' ';
    LCD_Write_String(0,1, DisplayWord);//顯示在第二行
      }
  }

          Fireout();//改到外環
        if((!T_inc))//手動加溫剪溫
          {
           while(!T_inc);
           Pres=1;
           }
        if((!T_dec))
        {
        while(!T_dec);
        Pres=1;
        }

}      
}
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-12-24 07:24 AM , Processed in 0.099633 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.