陳莉
( 威海市技術(shù)學(xué)院,山東 威海 264210 )
以單片機(jī)為核心的線(xiàn)切割高頻電源設(shè)計(jì)
陳莉
( 威海市技術(shù)學(xué)院,山東 威海 264210 )
采用STC89C52RC單片機(jī)對(duì)傳統(tǒng)的線(xiàn)切割機(jī)床高頻電源進(jìn)行設(shè)計(jì)改造,并加以控制,改進(jìn)后的電路簡(jiǎn)單,控制靈活、操作方便,加工速度獲得較大幅度提升。
線(xiàn)切割;脈沖信號(hào);功能參數(shù);動(dòng)態(tài)顯示;光耦;C語(yǔ)言
傳統(tǒng)線(xiàn)切割機(jī)床的高頻電源信號(hào),通常來(lái)源于由NE555組成的振蕩電路,或來(lái)源于單片機(jī),某些線(xiàn)切割高頻電源信號(hào)更是采用兩片單片機(jī)。本文探討的電路以STC89C52RC產(chǎn)生高頻電源,并加以控制,促使電路簡(jiǎn)單,控制靈活方便,加工速度較大幅度提升。
本文所述線(xiàn)切割高頻電源的單片機(jī)控制電路原理如圖1所示。
在單片機(jī)控制程序控制下產(chǎn)生的脈沖信號(hào),由單片機(jī)P1.4、P1.5、P1.6輸出。輸出功率的大小由P1.4、P1.5、P1.6輸出情況和其脈沖寬度控制。在輸出功率較小時(shí),P1.4端有脈沖輸出,P1.5、P1.6端無(wú)脈沖輸出,僅有1枚對(duì)應(yīng)的功率輸出管工作;要求輸出功率增大,P1.5端有脈沖信號(hào)輸出對(duì)應(yīng)控制2枚功率管工作;功率持續(xù)加大,則P1.6端輸出控制信號(hào),對(duì)應(yīng)控制3枚功率管工作。即:P1.4輸出,1枚功率管工作,P1.4、P1.5輸出,3枚功率管工作,P1.4、P1.5、P1.6同時(shí)輸出信號(hào),則6枚功率管全部工作。
參數(shù)顯示電路由5枚LED數(shù)碼管組成,分別由單片機(jī)的P0口P2口輸出控制LED數(shù)碼管的段碼信號(hào)和位碼信號(hào)。
參數(shù)顯示電路顯示,第一位顯示功率管的電源電壓,第二位和第三位用以顯示輸出脈沖寬度,第四位顯示脈間的時(shí)間長(zhǎng)短,第五位顯示動(dòng)率輸出管工作數(shù)量。電源電壓高低由電壓選擇開(kāi)關(guān)選定;脈沖的寬度為九個(gè)等級(jí),可通過(guò)選擇開(kāi)關(guān)選定。脈間同樣具有九個(gè)等級(jí),由脈間選擇開(kāi)關(guān)選定。上述四個(gè)參數(shù)的初始值由系統(tǒng)自動(dòng)設(shè)定為常用值。需改變時(shí),操作者可通過(guò)相應(yīng)的選擇開(kāi)關(guān)自行設(shè)定。
驅(qū)動(dòng)電路由三塊TLP250光耦合集成電路組成,TLP250的⑤腳接地,⑧腳接12 V電源。當(dāng)TLP250光耦的③腳存在低電平脈沖信號(hào)時(shí),其⑥、⑦腳輸出高電平脈沖,直接驅(qū)動(dòng)功率場(chǎng)效應(yīng)管IRFP450的柵極。其中IC2(TLP250)的輸出(⑥、⑦腳)控制VT1的柵極, IC3(TLP250)的輸出同時(shí)控制VT2和VT3的柵極,IC4(TLP250)的輸出同時(shí)控制VT4、VT5和VT6的柵極。由單片機(jī)P1.4、P1.5、P1.6端子輸出脈沖信號(hào),分別加載至三塊TLP250光耦的③腳。
由VT1~VT6功率場(chǎng)效應(yīng)管組成功率輸出電路,由單片機(jī)的P1.4、P1.5、P1.6端輸出的脈沖信號(hào),通過(guò)光耦I(lǐng)C2、IC3、IC4驅(qū)動(dòng)功率場(chǎng)效應(yīng)管,以控制相應(yīng)的功率管工作。
圖1 線(xiàn)切割高頻電源的單片機(jī)控制電路原理
單片機(jī)程序采用C語(yǔ)言編程。
001 #include
002 unsigned char display_code[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
003 0x6f,0x77,0x38,0x76,0x5e,0x79,0x71};
004 unsigned char gong_neng[9]={0,11,40,0 x00,6,0,0x00,0,3};
005 unsigned char i=1;
006 unsigned char guan_shu;
007 unsigned int data nai_kuan;
008 void disptim()
009 {unsigned char k;
010 for (k=0;k<100;k++){;}
011 }
012 void display1 ()
013 { p0=display_code [gong_neng[1]];
014 p2=0x01;
015 disptim();disptim();
016 p0=display_code [gong_neng[2]/10];
017 p2=0x02;
018 disptim();disptim();
019 p0=display_code [gong_neng[2]%10];
020 p2=0x04;
021 disptim();disptim();
022 p0=display_code [gong_neng[4]];
023 p2=0x08;
024 disptim();disptim();
025 p0=display_code [gong_neng[8]];
026 p2=0x10;
027 disptim();disptim();
028 }
029 void gongneng ()
030 { unsigned char gongnengs;
031 gongnengs=p1;
032 gongnengs=~ gongnengs;
033 gongnengs&=0x0f;
034 if(gongnengs!=0x00)
035 { disptim();
036 p1=0xff;
037 gongnengs=p1;
038 gongnengs=~ gongnengs;
039 gongnengs&=0x0f;
040 if(gongnengs!=0x00)
041 while(p1==0xff);
042 switch(gongnengs)
043 { case 1: { gong_neng[1]= gong_neng[1]
+1;
if(gong_neng[1]>12) gong_
neng[1]=11;}; break;
044 case 2: { gong_neng[2]= gong_neng[2]
+10;
if(gong_neng[2]>90) gong_
neng[2]=10;}; break;
045 case 4: { gong_neng[4]= gong_neng[4]
+1;
if(gong_neng[4]>9) gong_
neng[4]=1;}; break;
046 case 8: { gong_neng[8]= gong_neng[8]
+1;
if(gong_neng[8]>6) gong_
neng[8]=1;}; break;
047 }
048 }
049 mai_kuan=gong_neng[2];
050 switch(gong_neng[8])
051 { case 1:{casn_shu=0xef;}; break;
052 case 2:{casn_shu=0xdf;}; break;
053 case 3:{casn_shu=0xbf;}; break;
054 case 4:{casn_shu=0xaf;}; break;
055 case 5:{casn_shu=0x9f;}; break;
056 case 6:{casn_shu=0x8f;}; break;
057 }
058 }
059 void main ()
060 { TMOD =0x15;
061 TH1=(65536-10*221184/120000)/256;
062 TL1=(65536-10*221184/120000)%256;
063 ET1=1; EA=1; TR1=1;
064 while(1)
065 {gongneng (); display1();
066 }}
067 void time1() interrupt 3
068 { switch(i)
069 {case 1: { i=1; p1=guan_shu;
070 switch(gong_neng[2]/10)
071 { case 1:{ TH1=(65536-3*221184/
120000)/256;
072
TL1=(65536-3*221184/
120000)%256;}; break;
073 case 2:{ TH1=(65536-10*221184/
120000)/256;
074
TL1=(65536-10*221184/
120000)%256;}; break;
075 case 3:{ TH1=(65536-25*221184/
120000)/256;
076
TL1=(65536-25*221184/
120000)%256;}; break;
077 case 4:{ TH1=(65536-30*221184/
120000)/256;
078
TL1=(65536-30*221184/
120000)%256;}; break;
079 case 5:{ TH1=(65536-48*221184/
120000)/256;
080
TL1=(65536-48*221184/
120000)%256;}; break;
081 case 6:{ TH1=(65536-65*221184/
120000)/256;
082
TL1=(65536-65*221184/
120000)%256;}; break;
083 case 7:{ TH1=(65536-80*221184/
120000)/256;
084
TL1=(65536-80*221184/
120000)%256;}; break;
085 case 8:{ TH1=(65536-95*221184/
120000)/256;
086
TL1=(65536-95*221184/
120000)%256;}; break;
087 case 9:{ TH1=(65536-110*221184/
120000)/256;
088
TL1=(65536-110*221184/
120000)%256;}; break;
089 } }; break;
090 case 2: { i=1; p1=0xff;
091 switch(gong_neng[4])
092 { case 1:{ TH1=(65536-150*221184/
120000)/256;
093
TL1=(65536-150*221184/
120000)%256;}; break;
094 case 2:{ TH1=(65536-160*221184/
120000)/256;
095
TL1=(65536-160*221184/
120000)%256;}; break;
096 case 3:{ TH1=(65536-170*221184/
120000)/256;
097
TL1=(65536-170*221184/
120000)%256;}; break;
098 case 4:{ TH1=(65536-180*221184/
120000)/256;
099
TL1=(65536-180*221184/
120000)%256;}; break;
100 case 5:{ TH1=(65536-200*221184/
120000)/256;
101
TL1=(65536-200*221184/
120000)%256;}; break;
102 case 6:{ TH1=(65536-230*221184/
120000)/256;
103
TL1=(65536-230*221184/
120000)%256;}; break;
104 case 7:{ TH1=(65536-250*221184/
120000)/256;
105
TL1=(65536-250*221184/
120000)%256;}; break;
106 case 8:{ TH1=(65536-270*221184/
120000)/256;
107
TL1=(65536-270*221184/
120000)%256;}; break;
108 case 9:{ TH1=(65536-290*221184/
120000)/256;
109
TL1=(65536-290*221184/
120000)%256;}; break;
110 } }; break;
111 } }
程序中,001為頭文件。002為七段數(shù)碼管功能參數(shù)顯示的段碼代碼。004為功能參數(shù)初始值。012~028為功能參數(shù)的顯示控制程序。P0口設(shè)置為七段數(shù)碼管段碼輸出端口,P2口設(shè)置為五個(gè)數(shù)碼管的位碼輸出端口。
013~015為五位數(shù)碼管的第一位顯示控制程序,016~018為五位數(shù)碼管的第二位顯示控制程序,019~021為五位數(shù)碼管的第三位顯示控制程序,022~024為五位數(shù)碼管的第四位顯示控制程序,025~027為五位數(shù)碼管的第五位顯示控制程序。
029~058為功能控制程序。其中,031~048為功能選擇按鈕的參數(shù)讀入程序,051為控制P1.4端子輸出脈沖信號(hào),以控制一枚功率管VT1工作。052為控制P1.5端子輸出脈沖信號(hào),以控制兩枚功率管VT2、VT3工作。053為控制P1.6端子輸出脈沖信號(hào),以控制功率管VT4、VT5、VT6工作。054為控制P1.4、P1.6端子同時(shí)輸出脈沖信號(hào),以控制四枚功率管同時(shí)工作。055為控制P1.5、P1.6端子同時(shí)輸出脈沖信號(hào),以控制五枚功率管同時(shí)工作。056為控制P1.4、P1.5、P1.6三個(gè)端子同時(shí)輸出脈沖信號(hào),以控制六枚功率管同時(shí)工作,此時(shí)輸出功率最大,切割速度最快。
059~066為主程序。其中,060~063為定義定時(shí)器1的功能及模式。065為調(diào)用功能按鈕掃描程序和功能顯示程序。
069為向P1端口相應(yīng)端子(P1.4、P1.5、P1.6),輸出脈沖信號(hào)。070~089為根據(jù)脈沖寬度要求不同,確定輸出脈沖相應(yīng)的寬度。090為P1端口輸出高電平(即脈間),091~110為根據(jù)脈間要求,以確定輸出脈間的時(shí)間長(zhǎng)短。
對(duì)傳統(tǒng)線(xiàn)切割機(jī)床的高頻電源采用MCU控制方式改造后,呈現(xiàn)電路簡(jiǎn)單,故障減少,操作方便的優(yōu)點(diǎn),同時(shí)促使加工速度得到了大幅提高,經(jīng)過(guò)近一年多時(shí)間的運(yùn)行,工作穩(wěn)定,效率提高。
[1]劉峰.電力電子技術(shù)[M].大連:大連理工大學(xué)出版社,2009.
[2]朱永金.單片機(jī)應(yīng)用技術(shù)(C語(yǔ)言)[M].北京:中國(guó)勞動(dòng)社會(huì)保障出版社,2009.
Design of High Frequency Power Supply for Wire Cutting with MCU as the Core
Chen Li
( Weihai Technical College, Weihai 264210, Shandong )
The design and transformation of the high frequency power supply of the traditional WEDM is carried out by using STC89C52RC single chip microcomputer while controlling is performed. The improved circuit is simple, flexible and easy to operate, which leads to the great improvement of the processing speed.
Wire cutting; Pulse signal; Functional parameters; Dynamic display; Optocoupler; C language
TM 341
A
1674-2796(2017)06-0021-04
2017-08-07
陳莉(1973—)女,大學(xué)本科,講師,主要從事機(jī)電一體化、電工電子技術(shù)專(zhuān)業(yè)的理論與實(shí)訓(xùn)教學(xué)工作。