引言
國家“九五”重大科學工程項目HIRFL-CSR(蘭州重離子加速器冷卻儲存環工程)主環真空系統全線非標部件和標準設備的安裝、檢漏在2004年初已經完成,經烘烤后真空度達到10-11mbar的超高真空環境。放置于加速器注入線和主環真空腔體和束運線上的各類高/低真空泵達幾百個, 需要檢測和控制的真空計和高真空電源也近百個, 為了實現遠程開/關各種真空計和高真空電源,定時檢測真空計讀數和狀態,并需要為中央控制中心提供異常(定值點越界)報警和提示。運行時, 超高真空系統任何一處束流線發生真空故障就會造成束流丟失、儀器設備損壞、加速器停運的嚴重后果。因此加速器必須具有響應快速、安全可靠的真空保護與控制系統。
1 系統硬件組成
本控制系統的核心是自主設計的可以兼容各種真空計,真空泵和高真空電源要求的基于MSP430F149的控制模塊VAC400。每個模塊連接一臺或多臺真空計或真空泵,用來采集它們的模擬/數字量和狀態碼,數據經RS-485串行總線上傳到中央控制機進行在線監視/顯示,并把中央控制機發送來的測控命令直接作用于真空計,電源或電磁閥,完成巡檢測控。每個VAC400都有一個唯一的標識碼(或地址),每個RS-485線上最多可以連接32個VAC400模塊, 每次通信周期中,只容許一個下位機與上位機通訊,通訊連接采用握手方式, ADC采集的數據不斷自動更新并發送給上位機讀出顯示。VAC400與真空計通信速率為 9600bps。INTRANET用戶通過訪問上位機來實現對特定真空計特定功能的操作。
2 系統軟件設計
系統軟件的設計關鍵是要針對不同的控制對象真空計IM520,真空計IT23和真空泵GST-03L這些不同儀器設備自身的控制命令進行設計,而且需要輸出與被控儀器實際顯示的數據類型和單位相一致的結果。同時當中央控制中心發出本設備其他操作命令或者其他設備的操作命令時,需能產生中斷執行,并獲取相應的數據。針對不同的被控設備,我們改變相應的主函數部分注入模塊,從而實現了復雜多變的系統任務。
2.1 真空計IM520控制部分程序
系統需獲取真空計IM520的真空值數據,而真空值與電壓值成復雜的函數關系,由于MSP430無法實現復雜函數的計算,所以用 MSP430只顯示電壓值,后續轉換需要用其他軟件設計。MSP430的ADC寄存器可顯示十六進制整數,人機交互界面需要直觀的帶三位小數的十進制浮點數的電壓值,下面的ADC函數就是實現這一功能:
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數據的命令
{
for(i=0;i<4;i++)
{ ADC12CTL0 &=~ 0x02;//在進行設置時首先復位ADC的轉換使能
ADvalue[i]=ADC12MEM[i]; //讀取數據
/*將讀取的十六進制數轉換成輸出三位小數的十進制浮點數*/
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;
/*循環輸出ADC12MEMx里的數據*/
for(j=4;j>=0;j——)
{
TXBUF1=Hex2ASCII(ADbit[j]);
while ((UTCTL1&0x01)==0);
}
TXBUF1=‘ ‘; //輸出空格與下一組 ADC數據相間隔
while ((UTCTL1&0x01)==0);
}
TXBUF1=13; //顯示數據之后換行,執行下一次循環顯示
while ((UTCTL1&0x01)==0);
ADC12CTL0 |= 0x02; } // 使能ADC轉換
}
真空計監視的真空設備的數據需要自動傳送給中央控制中心,以便實現實時監控。下面程序部分實現以MSP430 F149為核心的控制模塊自動將數據傳送給遠控的計算機。
void main(void)
{ int i=0,j=0;
WDTCTL=WDTPW+WDTHOLD; //停止看門狗
_EINT(); //開總中斷
Init(); //對ADC進行初始化
ADC12CTL0 |= 0x01; //開始轉換
while(1)
{ P4OUT &=~0xC0; //指示發光二極管熄滅
display: stop1=0; //goto 循環結構入口
delay(0xFFFF); //延時程序調用
if(stop1==0)
{ IE2 &= ~URXIE1; //停止USART1 RX中斷 P3OUT |=0x01;
ADC(); //調用ADC 函數
Buffer[2]=‘r‘; //真空計IM520讀取數據命令中一個區別于其他任務
命令的關鍵字符
delay(0x1FFF);
ADC();
Buffer[2]=‘r‘;
IE2 |= URXIE1; //使能USART1 RX中斷
P3OUT &=~0x01;
}
else goto display; }
}
2.2 真空計IT23控制部分程序
真空計COMBIVAC IT23型是三路真空規輸入,前面板或RS-232C(9芯D型口9600bps)接口控制與數據讀出。前面板LCD顯示四項內容:Torr,Micron, Pa和mbar。并且需要遠程控制機輸入“uni w mbar or Torr or Pa or Micron”操作命令進行在線轉換讀出各種類型的數據內容。
void main(void)
{ char IT[4][15]={"uni w mbar\0","mes 1\0","mes 2\0","mes 3\0"}; //真空計IT23 操作命令
int i=0,j=0;
/…同真空計IM520控制部分程序…/
display: delay(0x1FFFF);
if(stop1==0)
{ IE2 &= ~URXIE1;
P3OUT |=0x01;
for(j=0;j<5;j++) //循環執行操作命令并顯示數據
{
for(i=0;IT[j][i]!=‘\0‘;i++)
{ Buffer[2]=‘w‘;
OperateIT23();
TXBUF0 =IT[j][i];
while ((UTCTL0&0x01)==0);
}
/…同真空計IM520控制部分程序…/
else goto display; }
}
3 結語
運行表明,基于MSP430F149的真空控制系統獲取的數據具有很好的精確度和穩定性,較好地完成了真空設備的實時監控和顯示任務。由于該系統低成本,高速度,低功耗,高精度等優點,同時可以應用于安全防護檢測,門禁互鎖聯動和水電檢測系統等領域。
-
電源
+關注
關注
184文章
17705瀏覽量
249968 -
寄存器
+關注
關注
31文章
5336瀏覽量
120235 -
adc
+關注
關注
98文章
6496瀏覽量
544473
發布評論請先 登錄
相關推薦
評論