摘 要:介紹了以微控制器MSP430F149為核心設(shè)計(jì)的真空控制模塊,給出了在HIRFL-CSR真空控制系統(tǒng)中的硬件電路和軟件程序。通過RS485總線和Intranet實(shí)現(xiàn)了對模塊連接的各種真空設(shè)備的實(shí)時(shí)遠(yuǎn)程測控。
關(guān)鍵詞:MSP430; 真空設(shè)備; 控制系統(tǒng)
引言
國家“九五”重大科學(xué)工程項(xiàng)目HIRFL-CSR(蘭州重離子加速器冷卻儲(chǔ)存環(huán)工程)主環(huán)真空系統(tǒng)全線非標(biāo)部件和標(biāo)準(zhǔn)設(shè)備的安裝、檢漏在2004年初已經(jīng)完成,經(jīng)烘烤后真空度達(dá)到10-11mbar的超高真空環(huán)境。放置于加速器注入線和主環(huán)真空腔體和束運(yùn)線上的各類高/低真空泵達(dá)幾百個(gè), 需要檢測和控制的真空計(jì)和高真空電源也近百個(gè), 為了實(shí)現(xiàn)遠(yuǎn)程開/關(guān)各種真空計(jì)和高真空電源,定時(shí)檢測真空計(jì)讀數(shù)和狀態(tài),并需要為中央控制中心提供異常(定值點(diǎn)越界)報(bào)警和提示。運(yùn)行時(shí), 超高真空系統(tǒng)任何一處束流線發(fā)生真空故障就會(huì)造成束流丟失、儀器設(shè)備損壞、加速器停運(yùn)的嚴(yán)重后果。因此加速器必須具有響應(yīng)快速、安全可靠的真空保護(hù)與控制系統(tǒng)。
1 系統(tǒng)硬件組成
本控制系統(tǒng)的核心是自主設(shè)計(jì)的可以兼容各種真空計(jì),真空泵和高真空電源要求的基于MSP430F149的控制模塊VAC400。每個(gè)模塊連接一臺(tái)或多臺(tái)真空計(jì)或真空泵,用來采集它們的模擬/數(shù)字量和狀態(tài)碼,數(shù)據(jù)經(jīng)RS-485串行總線上傳到中央控制機(jī)進(jìn)行在線監(jiān)視/顯示,并把中央控制機(jī)發(fā)送來的測控命令直接作用于真空計(jì),電源或電磁閥,完成巡檢測控。每個(gè)VAC400都有一個(gè)唯一的標(biāo)識碼(或地址),每個(gè)RS-485線上最多可以連接32個(gè)VAC400模塊, 每次通信周期中,只容許一個(gè)下位機(jī)與上位機(jī)通訊,通訊連接采用握手方式, ADC采集的數(shù)據(jù)不斷自動(dòng)更新并發(fā)送給上位機(jī)讀出顯示。VAC400與真空計(jì)通信速率為 9600bps。INTRANET用戶通過訪問上位機(jī)來實(shí)現(xiàn)對特定真空計(jì)特定功能的操作。
2 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件的設(shè)計(jì)關(guān)鍵是要針對不同的控制對象真空計(jì)IM520,真空計(jì)IT23和真空泵GST-03L這些不同儀器設(shè)備自身的控制命令進(jìn)行設(shè)計(jì),而且需要輸出與被控儀器實(shí)際顯示的數(shù)據(jù)類型和單位相一致的結(jié)果。同時(shí)當(dāng)中央控制中心發(fā)出本設(shè)備其他操作命令或者其他設(shè)備的操作命令時(shí),需能產(chǎn)生中斷執(zhí)行,并獲取相應(yīng)的數(shù)據(jù)。針對不同的被控設(shè)備,我們改變相應(yīng)的主函數(shù)部分注入模塊,從而實(shí)現(xiàn)了復(fù)雜多變的系統(tǒng)任務(wù)。
2.1 真空計(jì)IM520控制部分程序
系統(tǒng)需獲取真空計(jì)IM520的真空值數(shù)據(jù),而真空值與電壓值成復(fù)雜的函數(shù)關(guān)系,由于MSP430無法實(shí)現(xiàn)復(fù)雜函數(shù)的計(jì)算,所以用 MSP430只顯示電壓值,后續(xù)轉(zhuǎn)換需要用其他軟件設(shè)計(jì)。MSP430的ADC寄存器可顯示十六進(jìn)制整數(shù),人機(jī)交互界面需要直觀的帶三位小數(shù)的十進(jìn)制浮點(diǎn)數(shù)的電壓值,下面的ADC函數(shù)就是實(shí)現(xiàn)這一功能:
void ADC(void)
{ unsigned tra[4]; int j;
TXBUF1=ADDRESS; //輸出模塊名稱并在其后加“;”和空格
while ((UTCTL1&0x01)==0);
TXBUF1=58;
while ((UTCTL1&0x01)==0);
TXBUF1=‘ ‘;
while ((UTCTL1&0x01)==0);
if(Buffer[2]==‘r‘)//判斷是否輸入讀取 ADC數(shù)據(jù)的命令
?。?
for(i=0;i<4;i++)
?。?ADC12CTL0 &=~ 0x02;//在進(jìn)行設(shè)置時(shí)首先復(fù)位ADC的轉(zhuǎn)換使能
ADvalue[i]=ADC12MEM[i]; //讀取數(shù)據(jù)
/*將讀取的十六進(jìn)制數(shù)轉(zhuǎn)換成輸出三位小數(shù)的十進(jìn)制浮點(diǎn)數(shù)*/
tra[i]=ADvalue[i]*10000.00/4095.00;
ADbit[0]=tra[i]%10;
ADbit[1]=(tra[i]/10)%10;
ADbit[2]=(tra[i]/100)%10;
ADbit[3]=22;
ADbit[4]=(tra[i]/1000)%10;
/*循環(huán)輸出ADC12MEMx里的數(shù)據(jù)*/
for(j=4;j>=0;j——)
{
TXBUF1=Hex2ASCII(ADbit[j]);
while ((UTCTL1&0x01)==0);
?。?
TXBUF1=‘ ‘; //輸出空格與下一組 ADC數(shù)據(jù)相間隔
while ((UTCTL1&0x01)==0);
?。?
TXBUF1=13; //顯示數(shù)據(jù)之后換行,執(zhí)行下一次循環(huán)顯示
while ((UTCTL1&0x01)==0);
ADC12CTL0 |= 0x02; } // 使能ADC轉(zhuǎn)換
?。?
真空計(jì)監(jiān)視的真空設(shè)備的數(shù)據(jù)需要自動(dòng)傳送給中央控制中心,以便實(shí)現(xiàn)實(shí)時(shí)監(jiān)控。下面程序部分實(shí)現(xiàn)以MSP430 F149為核心的控制模塊自動(dòng)將數(shù)據(jù)傳送給遠(yuǎn)控的計(jì)算機(jī)。
void main(void)
?。?int i=0,j=0;
WDTCTL=WDTPW+WDTHOLD; //停止看門狗
_EINT(); //開總中斷
Init(); //對ADC進(jìn)行初始化
ADC12CTL0 |= 0x01; //開始轉(zhuǎn)換
while(1)
?。?P4OUT &=~0xC0; //指示發(fā)光二極管熄滅
display: stop1=0; //goto 循環(huán)結(jié)構(gòu)入口
delay(0xFFFF); //延時(shí)程序調(diào)用
if(stop1==0)
?。?IE2 &= ~URXIE1; //停止USART1 RX中斷 P3OUT |=0x01;
ADC(); //調(diào)用ADC 函數(shù)
Buffer[2]=‘r‘; //真空計(jì)IM520讀取數(shù)據(jù)命令中一個(gè)區(qū)別于其他任務(wù)
命令的關(guān)鍵字符
delay(0x1FFF);
ADC();
Buffer[2]=‘r‘;
IE2 |= URXIE1; //使能USART1 RX中斷
P3OUT &=~0x01;
?。?
else goto display; }
}
2.2 真空計(jì)IT23控制部分程序
真空計(jì)COMBIVAC IT23型是三路真空規(guī)輸入,前面板或RS-232C(9芯D型口9600bps)接口控制與數(shù)據(jù)讀出。前面板LCD顯示四項(xiàng)內(nèi)容:Torr,Micron, Pa和mbar。并且需要遠(yuǎn)程控制機(jī)輸入“uni w mbar or Torr or Pa or Micron”操作命令進(jìn)行在線轉(zhuǎn)換讀出各種類型的數(shù)據(jù)內(nèi)容。
void main(void)
?。?char IT[4][15]={"uni w mbar\0","mes 1\0","mes 2\0","mes 3\0"}; //真空計(jì)IT23 操作命令
int i=0,j=0;
/…同真空計(jì)IM520控制部分程序…/
display: delay(0x1FFFF);
if(stop1==0)
?。?IE2 &= ~URXIE1;
P3OUT |=0x01;
for(j=0;j<5;j++) //循環(huán)執(zhí)行操作命令并顯示數(shù)據(jù)
{
for(i=0;IT[j][i]!=‘\0‘;i++)
?。?Buffer[2]=‘w‘;
OperateIT23();
TXBUF0 =IT[j][i];
while ((UTCTL0&0x01)==0);
}
/…同真空計(jì)IM520控制部分程序…/
else goto display; }
?。?
3 結(jié)語
運(yùn)行表明,基于MSP430F149的真空控制系統(tǒng)獲取的數(shù)據(jù)具有很好的精確度和穩(wěn)定性,較好地完成了真空設(shè)備的實(shí)時(shí)監(jiān)控和顯示任務(wù)。由于該系統(tǒng)低成本,高速度,低功耗,高精度等優(yōu)點(diǎn),同時(shí)可以應(yīng)用于安全防護(hù)檢測,門禁互鎖聯(lián)動(dòng)和水電檢測系統(tǒng)等領(lǐng)域。
參考文獻(xiàn)
[1]王彥瑜,等.基于MSP混合信號處理器的真空系統(tǒng)控制器研制-VAC400.第11屆全國計(jì)算機(jī)在現(xiàn)代科學(xué)技術(shù)領(lǐng)域應(yīng)用學(xué)術(shù)會(huì)議論文集,2003,216~221.
[2]郭玉輝,等.基于MSP430單片機(jī)的真空遠(yuǎn)程控制系統(tǒng)[J].儀表技術(shù)與傳感器,2004,(8):24~25.
[3]朱海君,等.基于MSC1210單片機(jī)的串口通訊設(shè)計(jì)[J]. 微計(jì)算機(jī)信息,2004,(4):48~36.