基于LabWindows/CVI的通信電源系統(tǒng)自動(dòng)化測(cè)試的實(shí)現(xiàn)
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é)長(zhǎng)度,EOT_Mode 表示發(fā)送模式。
Receive (Board _Index,address ,buffer ,Byte _Count ,Termination);//接收地址,從GPIB 設(shè)備中讀取數(shù)據(jù)。Termination 表示數(shù)據(jù)傳輸終止符。
(2)TCP/IP 通信代碼
該電源系統(tǒng)可通過(guò)網(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 );//注冊(cè)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ù)器讀來(lái)的數(shù)據(jù)塊的緩沖區(qū)。
DisconnectFromTCPServer (serverRouteHandle);//注銷TCP 服務(wù)器。
(3)HP34970 控制代碼
由于HP34970 提供了程序的功能面板大大方便了編程,我們只需要調(diào)用其中的庫(kù)函數(shù)指令,即可實(shí)現(xiàn)測(cè)試中所需要的通道切換和量值。
hp34970_relay_Operate (1 ,6 ,ON);//控制繼電器6 閉合。
hp34970 _relay_Operate (1 ,6 ,OFF);//控制繼電器6 打開(kāi)。
meter _Measure (METER1);//讀取表1 的電壓值。
switch_lfmux_DMM (101);//切換測(cè)試通道至MUX101 。
4 總 結(jié)
在軟件調(diào)試過(guò)程中也曾出現(xiàn)了一些問(wèn)題,經(jīng)過(guò)分析,都得到了解決:
(1)將大量數(shù)值變量放置在C 文件中,導(dǎo)致程序的可讀性、可維護(hù)性較差。
解決方法:建立一個(gè)INI 配置文件,將所需要的測(cè)試數(shù)值和范圍存儲(chǔ)在該文件內(nèi),這樣一旦要修改數(shù)值,只需更改INI 文件中的數(shù)據(jù),無(wú)需重新編譯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)致,在字符串處理過(guò)程中,數(shù)據(jù)類型有整型、浮點(diǎn)型、字符型等,必須設(shè)置相符的數(shù)據(jù)類型,否則有可能導(dǎo)致誤碼甚至編譯不通過(guò)。
(3)提示操作員查看告警燈狀態(tài)的次數(shù)有8 次,明顯太多,不利于生產(chǎn)也不符合自動(dòng)化測(cè)試的理念。
解決方法:改變測(cè)試方法,由目測(cè)告警燈狀態(tài)的判斷方法,改為通過(guò)TCP/IP 通信讀取系統(tǒng)內(nèi)部告警信息來(lái)進(jìn)行自動(dòng)判斷。
實(shí)際檢測(cè)和使用表明,該測(cè)試方法操作簡(jiǎn)便,測(cè)試周期大大縮短,測(cè)試的穩(wěn)定性,精度都有了質(zhì)的提高,并且所有測(cè)試數(shù)據(jù)都自動(dòng)存檔,從而有效地提高了產(chǎn)品的品質(zhì)。
評(píng)論