基于LabWindows/CVI的通信電源系統(tǒng)自動(dòng)化測試的實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
通信電源系統(tǒng)是整個(gè)通信網(wǎng)絡(luò)的心臟和源動(dòng)力,在通信系統(tǒng)中的地位舉足輕重。為確保通信電源系統(tǒng)可以安全可靠的運(yùn)行,在生產(chǎn)過程中必須對它的各項(xiàng)性能參數(shù)進(jìn)行全面的檢測。
原有對通信電源系統(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)對話。該方法可以快速可靠地完成各個(gè)參數(shù)的測試,從而提高了效率,并且可對測量數(shù)據(jù)自動(dòng)存檔。
1 概 述
1 .1 LabWindows/CVI 簡介
LabWindows/CVI 是美國NI (National Instruments)公司推出的交互式C 語言開發(fā)平臺。它將功能強(qiáng)大﹑使用靈活的C 語言平臺與用于數(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ù)庫、信號處理函數(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ī)、電壓表、信號發(fā)生器、示波器等都可以通過GPIB 總線連接起來,組成一功能系統(tǒng)。
該系統(tǒng)的特點(diǎn)是:積木式結(jié)構(gòu),可拆卸、易于重建;控制器可以是計(jì)算機(jī)、微處理器或簡單的程序;數(shù)據(jù)傳送可靠,使用靈活,價(jià)格低廉。正是由于以上特點(diǎn),GPIB 廣泛應(yīng)用于對測試儀器進(jìn)行計(jì)算機(jī)控制、計(jì)算機(jī)與計(jì)算機(jī)之間的通訊,以及對其它電子設(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ā)送連接請求,并從服務(wù)器接收數(shù)據(jù)。服務(wù)器注冊后就等待客戶向它發(fā)出連接請求,而客戶只能向已經(jīng)存在的服務(wù)器發(fā)出連接請求。
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)測試的部件主要由一臺計(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)行自檢,對系統(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);//對所有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ù)器的端口號。
ConnectToTCPServer (&serverHandle ,server-PortNumber ,serverName ,ClientCallback,callback-Data ,timeout );//注冊TCP 服務(wù)器,參數(shù)serverHandle 表示得到的連接句柄。參數(shù)serverPortNumber 和server-Name 表示服務(wù)器的端口號和名稱,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ì)。