通信電源系統(tǒng)是整個(gè)通信網(wǎng)絡(luò)的心臟和源動(dòng)力,在通信系統(tǒng)中的地位舉足輕重,。為確保通信電源系統(tǒng)可以安全可靠的運(yùn)行,,在生產(chǎn)過程中必須對(duì)它的各項(xiàng)性能參數(shù)進(jìn)行全面的檢測。
原有對(duì)通信電源系統(tǒng)的測試方法為手動(dòng)測試,,操作人員不僅要連接許多線纜和設(shè)備,,而且要人工判斷系統(tǒng)的各個(gè)量值。它的測試時(shí)間長,,重復(fù)測試結(jié)果的一致性差,,人為因素多,測試不穩(wěn)定,,測試數(shù)據(jù)不容易存檔,,等等。因此,,電源系統(tǒng)的性能得不到足夠的保障,。
本文提出的測試方法,,首先啟動(dòng)氣動(dòng)裝置實(shí)現(xiàn)測試端口的自動(dòng)連接,這便省去了人工連接線路;然后基于LabWindows/CVI 的開發(fā)環(huán)境,,利用GPIB 卡控制各種儀器和設(shè)備,,通過TCP/IP 通信的方式與電源系統(tǒng)對(duì)話。該方法可以快速可靠地完成各個(gè)參數(shù)的測試,,從而提高了效率,,并且可對(duì)測量數(shù)據(jù)自動(dòng)存檔。
1 概 述
1 .1 LabWindows/CVI 簡介
LabWindows/CVI 是美國NI (National Instruments)公司推出的交互式C 語言開發(fā)平臺(tái),。它將功能強(qiáng)大﹑使用靈活的C 語言平臺(tái)與用于數(shù)據(jù)采集分析和顯示的測控專業(yè)工具有機(jī)地結(jié)合起來,,利用它的集成化開發(fā)環(huán)境﹑交互式編程方法﹑函數(shù)面板和豐富的庫函數(shù)大大增強(qiáng)了C 語言的功能,為熟悉C 語言開發(fā)設(shè)計(jì)的人員編寫檢測系統(tǒng)﹑自動(dòng)測試環(huán)境﹑數(shù)據(jù)采集系統(tǒng)﹑過程監(jiān)控系統(tǒng)等應(yīng)用軟件提供了一個(gè)理想的軟件開發(fā)環(huán)境,。
虛擬儀器技術(shù)是近幾年發(fā)展起來的新一代儀器技術(shù),,它的實(shí)質(zhì)是利用計(jì)算機(jī)來模擬傳統(tǒng)儀器的各項(xiàng)功能。LabWindows/CVI 是開發(fā)虛擬儀器應(yīng)用程序的軟件工具中的佼佼者,,和其它虛擬儀器開發(fā)工具相比,,它的主要特點(diǎn)有:
(1)LabWindows/CVI 以功能強(qiáng)大、最為流行的C語言為基礎(chǔ),,一般程序員無須再花時(shí)間去學(xué)習(xí)其它計(jì)算機(jī)語言,,從而節(jié)省了開發(fā)時(shí)間。
(2)友好的界面編輯方式,,在程序設(shè)計(jì)中靈活地應(yīng)用各種工具可以方便程序設(shè)計(jì),,減輕程序員負(fù)擔(dān)。
(3)各種功能強(qiáng)大的軟件包大大增強(qiáng)了LabWindows/CVI 的性能,,這些軟件包括接口函數(shù)庫,、信號(hào)處理函數(shù)庫,、Windows SDK 等,。
1 .2 GPIB 總線技術(shù)
GPIB (General Purpose Interface Bus )被稱為通用接口總線,是最早由HP 公司提出的一種接口儀器標(biāo)準(zhǔn)(HP IB ),,1975 年被改進(jìn)為IEEE485 標(biāo)準(zhǔn),。目前的協(xié)議為488 .2 。GPIB 總線是廣泛用于自動(dòng)測試系統(tǒng)的一種并行外總線標(biāo)準(zhǔn),,是專為儀器控制應(yīng)用而設(shè)計(jì)的,。它是一種用于連接設(shè)備的總線,計(jì)算機(jī),、電壓表,、信號(hào)發(fā)生器、示波器等都可以通過GPIB 總線連接起來,,組成一功能系統(tǒng),。
該系統(tǒng)的特點(diǎn)是:積木式結(jié)構(gòu),,可拆卸、易于重建;控制器可以是計(jì)算機(jī),、微處理器或簡單的程序;數(shù)據(jù)傳送可靠,,使用靈活,價(jià)格低廉,。正是由于以上特點(diǎn),,GPIB 廣泛應(yīng)用于對(duì)測試儀器進(jìn)行計(jì)算機(jī)控制、計(jì)算機(jī)與計(jì)算機(jī)之間的通訊,,以及對(duì)其它電子設(shè)備的控制,。
LabWindows/CVI 中的GPIB 函數(shù)庫可以實(shí)現(xiàn)打開/關(guān)閉GPIB 設(shè)備、總線配置,、I/O 讀寫,、GPIB 設(shè)備控制、總線控制和板控制等功能,。
1 .3 TCP/IP 通信技術(shù)
Internet 中使用最為廣泛的網(wǎng)絡(luò)協(xié)議為TCP/IP協(xié)議集,。TCP 協(xié)議是TCP/IP 協(xié)議集中隸屬于傳輸層的傳輸控制協(xié)議。IP 協(xié)議是Internet 網(wǎng)絡(luò)中隸屬于網(wǎng)絡(luò)層的基礎(chǔ)協(xié)議,。IP 協(xié)議提供可靠的,、盡力的、無連接的數(shù)據(jù)投遞服務(wù),,構(gòu)成了Internet 網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)幕A(chǔ),。TCP 協(xié)議以此為基礎(chǔ)增加了連接管理和確認(rèn)重發(fā)等機(jī)制,向更高層的應(yīng)用程序提供面向連接的,、可靠的傳輸服務(wù),。
在LabWindows/CVI 中可利用TCP 函數(shù)庫進(jìn)行網(wǎng)絡(luò)傳輸,在每次連接中都涉及到服務(wù)器和客戶,。
其中TCP 服務(wù)器可以通過網(wǎng)絡(luò)向客戶應(yīng)用程序發(fā)送或從客戶應(yīng)用程序接收數(shù)據(jù),。TCP 客戶可以向TCP服務(wù)器應(yīng)用程序發(fā)送連接請(qǐng)求,并從服務(wù)器接收數(shù)據(jù),。服務(wù)器注冊后就等待客戶向它發(fā)出連接請(qǐng)求,,而客戶只能向已經(jīng)存在的服務(wù)器發(fā)出連接請(qǐng)求。
2 系統(tǒng)的硬件設(shè)計(jì)
通信設(shè)備直流供電系統(tǒng)的組成如圖1 ,。系統(tǒng)的輸入為交流220V,,整流器一方面給通信設(shè)備供電,另一方面又給蓄電池充電,,以補(bǔ)充蓄電池因局部放電而失去的電量,,控制器用于監(jiān)控系統(tǒng)的狀態(tài),直流配電架主要連接和轉(zhuǎn)換直流供電系統(tǒng)中整流器和蓄電池組向通信設(shè)備供電的電源設(shè)備。蓄電池組用于保證不間斷供電,。
圖1 直流供電系統(tǒng)的組成
該電源系統(tǒng)測試的部件主要由一臺(tái)計(jì)算機(jī),、一塊GPIB 卡、數(shù)據(jù)采集器,、直流電源,、負(fù)載測試治具和待測系統(tǒng)等組成,如圖2 ,。
圖2 電源系統(tǒng)測試的硬件結(jié)構(gòu)圖
數(shù)據(jù)采集器Agilent 34970A 可配置成20 至120個(gè)通道,,6 位半分辨率,250 通道/秒掃描速率,,50 000 個(gè)讀數(shù)存貯,,0。004 %基本直流精度,,可測量交直流電流,、電阻、頻率和周期,,以及由熱電耦,、熱電阻和熱敏電阻提供的溫度直流和交流電壓,標(biāo)準(zhǔn)GPIB 和RS232 接口,。在該測試系統(tǒng)中,,它主要用來控制繼電器,通道切換和量測電壓,。
直流電源Agilent 3645A,,主要用來模擬蓄電池的功能,實(shí)現(xiàn)電池的過壓,、欠壓和低壓斷電,。
測試治具內(nèi)部由繼電器組,告警指示燈和氣動(dòng)裝置組成,。氣動(dòng)裝置用于自動(dòng)連接測試端點(diǎn),。繼電器組主要用于切換不同的測試設(shè)備和開關(guān)。告警指示燈共有4 組紅綠燈,,用于查看不同的系統(tǒng)告警,,如斷路告警,、熔絲告警,、溫度告警等。
待測電源系統(tǒng)由兩個(gè)模塊,,一個(gè)控制器和一個(gè)直流配電架組成,。模塊用于整流,將220 V交流變?yōu)?4 V直流,??刂破饔糜谠O(shè)定系統(tǒng)的電壓,,監(jiān)控系統(tǒng)的狀態(tài)。直流配電架用于放置模塊和控制器,,它裝有自動(dòng)空氣斷路器,、接觸器、熔斷器等部件,,為不同容量的負(fù)載分配電能,,當(dāng)直流供電異常時(shí),產(chǎn)生告警起到保護(hù)作用,。
交流電220 VAC 用于模塊的輸入供電,。
負(fù)載用于模擬通信設(shè)備,用來提供AC 供電和電池供電時(shí)系統(tǒng)的負(fù)載,。該系統(tǒng)測試時(shí)負(fù)載設(shè)定為20 A,。
3 系統(tǒng)的軟件開發(fā)
系統(tǒng)軟件以Labwindows 8 。5 為編程語言,,可運(yùn)行在Windows XP,,Vista 和Windows7 之上。
3 .1 測試流程
根據(jù)測試要求,,首先制定一個(gè)合理的測試流程,,如圖3 所示,可分為三大部分,,第一部分為自檢,,第二部分為AC 交流部分,第三部分為DC 直流部分(即電池部分),。
(1)自檢,。操作人員將待測電源系統(tǒng)放置在治具上后,先進(jìn)行自檢,,對(duì)系統(tǒng)中所有設(shè)備進(jìn)行復(fù)位并初始化,,檢測系統(tǒng)供電的狀態(tài)是否正常。
(2 )AC 部分,。自檢通過后,, 先輸入交流電220 VAC,在這一部分,,先量測空載時(shí)系統(tǒng)輸出電壓,、電流、系統(tǒng)狀態(tài),,加載后量測系統(tǒng)電壓及電流,,并檢測模塊是否均流,接著將負(fù)載切換到電池端,量測電池電壓及電流,,然后執(zhí)行一些告警測試,,包括直流過壓、欠壓,、熔絲告警,、斷路器告警、溫度告警等,。
(3)DC 部分,。檢測電池供電后系統(tǒng)的輸出電壓、電流,、檢測AC 告警,、電池過壓告警、欠壓告警,,實(shí)現(xiàn)低壓關(guān)機(jī)功能,。
3 .2 核心代碼解析
下面列出幾個(gè)關(guān)鍵的測試代碼。
(1)GPIB 通信代碼
GPIB/GPIB-488 .2 函數(shù)庫一共包括10 個(gè)子類,,分別為Open/Close 子類,,Configuration 子類,I/O子類,,Device Control 子類,,Bus Control 子類,BoardControl 子類,,Callbacks 子類,,Locking 子類,Thread-Specific Status 子類,,GPIB-488 .2 子類,,該測試方法中主要應(yīng)用GPIB-488 .2 子類中的函數(shù)實(shí)現(xiàn)GPIB 通信。
圖3 測試流程圖
SendIFC (0);//對(duì)所有GPIB 設(shè)備初始化,。
Send (Board _Index,,address ,buffer ,,Byte _Count ,,EOT_Mode );//發(fā)送地址和寫數(shù)據(jù)。Board_Index 表示GPIB 名稱,,address 表示儀器地址,,buffer表示要發(fā)送的信息,Byte _Count 表示發(fā)送信息的字節(jié)長度,,EOT_Mode 表示發(fā)送模式,。
Receive (Board _Index,address ,,buffer ,,Byte _Count ,Termination);//接收地址,,從GPIB 設(shè)備中讀取數(shù)據(jù),。Termination 表示數(shù)據(jù)傳輸終止符。
(2)TCP/IP 通信代碼
該電源系統(tǒng)可通過網(wǎng)絡(luò)端口進(jìn)行網(wǎng)絡(luò)通信,,以讀取系統(tǒng)內(nèi)部信息,。
由于要讀取系統(tǒng)信息屬于客戶向服務(wù)器發(fā)出連接,因此先確定該通信屬于客戶程序,。與TCP 服務(wù)器連接時(shí),,我們必須獲得服務(wù)器的名稱或IP 地址和服務(wù)器的端口號(hào)。
ConnectToTCPServer (&serverHandle ,,server-PortNumber ,,serverName ,ClientCallback,,callback-Data ,,timeout );//注冊TCP 服務(wù)器,參數(shù)serverHandle 表示得到的連接句柄,。參數(shù)serverPortNumber 和server-Name 表示服務(wù)器的端口號(hào)和名稱,,ClientCallback 和callbackData 表示TCP 回調(diào)函數(shù)名和回調(diào)數(shù)據(jù)。參數(shù)timeout 表示超時(shí)限制,。
ClientTCPWrite (portHandle ,,writeData ,data-Size ,,timeout );//向服務(wù)器發(fā)送數(shù)據(jù),,參數(shù)writeData表示發(fā)送到服務(wù)器的數(shù)據(jù),dataSize 表示數(shù)據(jù)塊的大小,。
ClientTCPRead (portHandle ,,buffer ,dataSize ,,timeout );//從服務(wù)器讀取數(shù)據(jù),。參數(shù)buffer 表示存放從服務(wù)器讀來的數(shù)據(jù)塊的緩沖區(qū)。
DisconnectFromTCPServer (serverRouteHandle);//注銷TCP 服務(wù)器,。
(3)HP34970 控制代碼
由于HP34970 提供了程序的功能面板大大方便了編程,,我們只需要調(diào)用其中的庫函數(shù)指令,即可實(shí)現(xiàn)測試中所需要的通道切換和量值,。
hp34970_relay_Operate (1 ,,6 ,,ON);//控制繼電器6 閉合。
hp34970 _relay_Operate (1 ,,6 ,,OFF);//控制繼電器6 打開。
meter _Measure (METER1);//讀取表1 的電壓值,。
switch_lfmux_DMM (101);//切換測試通道至MUX101 ,。
4 總 結(jié)
在軟件調(diào)試過程中也曾出現(xiàn)了一些問題,經(jīng)過分析,,都得到了解決:
(1)將大量數(shù)值變量放置在C 文件中,,導(dǎo)致程序的可讀性、可維護(hù)性較差,。
解決方法:建立一個(gè)INI 配置文件,,將所需要的測試數(shù)值和范圍存儲(chǔ)在該文件內(nèi),這樣一旦要修改數(shù)值,,只需更改INI 文件中的數(shù)據(jù),,無需重新編譯C 文件。
(2 )TCP/IP 通信讀取數(shù)據(jù)不穩(wěn)定,,會(huì)出現(xiàn)誤碼或亂碼,。
解決方法:設(shè)置斷點(diǎn),單步運(yùn)行調(diào)試后發(fā)現(xiàn),,部分是由于不同指令輸入后讀取的數(shù)據(jù)大小不同,,一些數(shù)據(jù)超出了Buffer 的最大范圍,只需將Buffer 設(shè)定到合適數(shù)值范圍即可,。
另外,,也可能是由于數(shù)據(jù)類型設(shè)置錯(cuò)誤導(dǎo)致,在字符串處理過程中,,數(shù)據(jù)類型有整型,、浮點(diǎn)型、字符型等,,必須設(shè)置相符的數(shù)據(jù)類型,,否則有可能導(dǎo)致誤碼甚至編譯不通過。
(3)提示操作員查看告警燈狀態(tài)的次數(shù)有8 次,,明顯太多,,不利于生產(chǎn)也不符合自動(dòng)化測試的理念。
解決方法:改變測試方法,,由目測告警燈狀態(tài)的判斷方法,,改為通過TCP/IP 通信讀取系統(tǒng)內(nèi)部告警信息來進(jìn)行自動(dòng)判斷。
實(shí)際檢測和使用表明,,該測試方法操作簡便,,測試周期大大縮短,,測試的穩(wěn)定性,精度都有了質(zhì)的提高,,并且所有測試數(shù)據(jù)都自動(dòng)存檔,,從而有效地提高了產(chǎn)品的品質(zhì)。