keysight測試軟體除錯小結

2022-10-10 16:24:10 字數 2662 閱讀 8891

2023年年底,接到乙個任務,編寫乙個軟體,用於控制keysight237裝置進行半導體器件的電學測試。當時乙個指導我的老師給出的方案是使用labview做。但是,第一我不太會用labview程式設計,第二我發現python也可以實現同樣的功能,第三也是最重要的一點:python可以做介面。labview的介面太醜了。我始終認為顏值既是戰鬥力。

於是我使用了python中的pyvisa庫,它使得可以直接用python和gpib介面的裝置通訊(其他型別的介面應該也可以)。當然還需要nivisa和一些其他的支援。我應該是安裝了nivisa+labview+iolibsuite。最後乙個好像是是德科技公司的乙個io除錯助手。環境的搭建就斷斷續續花了兩個禮拜,很糟心。

接下來就是閱讀keysight236/237的手冊了,三百多頁的英文手冊列印出來的時候確實有點嚇人。不過還好,不需要全部閱讀。程式設計只需第三部分的指令說明就可以了。指令這一塊確實走了不少彎路。因為我不知道哪些指令組合起來才能讓裝置執行。當時已經可以和裝置通訊了,但是裝置怎麼也不開始掃瞄,最後花了很大的功夫才搞懂。需要設定f指令,q指令還有n1x和h0x指令類似這樣的組合才可以執行。

之後便遇到了一些奇怪的問題,後來才明白是由於量程導致的。大致來說就是測試的樣品是高阻樣品,電流非常小,以至於1000v的電壓下也幾乎測不到電流(na以下)。測試時間很長很長。開始以為是使用了s指令,也就是加積分時間減小誤差,導致了測試速度很慢。後來我用同乙個樣品,不同的量程(0-9)測試。其測試時間和量程有明顯的指數關係,如圖:

右圖是測量的iv結果曲線。量程越小,測試精度越高(手冊說最小電流能測到fa級別),所需要的時間越長。雖然我不知道具體是什麼機制導致的指數關係,但這個結論確實很有意思。

平時使用裝置的時候還需要知道在給定電壓下,電流和時間的關係,也就是it曲線,所以再次研究手冊,我完成了ivt功能。

其實很多時間花在了兩個介面的切換上,不同測試的引數不一樣,切換介面需要刪除舊的介面再建立新的介面。python 的全域性變數使用我沒學過,就遇到了不少bug。最後我採用的是乙個小介面用乙個函式,函式裡定義了輸入控制項按鍵控制項,放在乙個frame裡。使用三個全域性變數分別代表三個frame。切換介面的時候用destroy()方法刪掉所有介面,然後再新建乙個需要的frame,賦值為全域性變數。在函式中賦值全域性變數的時候一定要加global宣告!

後面接開始做介面了(其實當時我覺得介面還行,但是導師有一天突然跑過來和我說你哪個軟體介面太醜了,能不能改一下。然後就跑了,留下懵逼的我)。做介面的時候也遇到了乙個和全域性變數有關的問題,就是在載入的時候,如果這段**不放在主函式裡,這個就不能顯示。後來是通過將載入的變數在函式中宣告為全域性變數的方法才得以解決。據說是python的**機制會把剛載入的當做垃圾**了。

寒假前基本就完成了軟體的1.0版本。回去以後也是因為疫情吧,就一直想著公升級一下,乙個是介面要改,乙個是和裝置通訊的時候想用執行緒去做,不然裝置在執行的時候軟體也會卡住。新介面還是用tkinter完成的。我先用ppt+莫蘭迪色系去p了好幾張介面圖:

不得不說ppt用來p圖確實不錯。最後實在不知道怎麼去搭配顏色,就乾脆寫了乙個小程式,模擬了一下介面,然後在莫蘭迪色系中隨機顏色,看上哪個了就記下來,然後最終確定了各個部分的顏色。這裡也很感謝老媽的幫助。

最後的介面如下(後來還是有小改動):

然後我去問了同學,他們對這個軟體有什麼建議。我覺得有幾個說的比較好,介面切換的時候把當前所在介面標出來,我是將對應的iv測試按鍵顏色加深實現的。還有就是儲存資料的時候一帶儲存,我花了一些功夫,還是完成了這個功能。

最後的最後,我在那台測試用的古老台式電腦上跑了程式,結果發現它的顯示器解析度不夠,不能完全的顯示介面,於是又調介面大小,控制項位置等等。最後用pyinstaller打包成exe檔案,簡單寫了乙個操作說明和寫給下乙個開發者的文件。在那台古老的32位台式電腦上留下了源**。這個工作應該是告一段落了。

600多行的**前前後後也花了一些時間,從中也學到了不少東西,也留下了一些問題需要解決。比如還有幾個半導體電學的測試裝置需要用電腦軟體控制,還有乙個電腦通過一根線同時控制多個測試裝置的問題都還有待解決。如果這一套做下來確實很棒。因為一套光電或者電學的測試裝置+軟體很貴(我們實驗室有一套據說100w的電學測試裝置,有一次光換電源模組就花了5w),如果換裝置+自己寫控制軟體就會很便宜(我**上搜的這個裝置才10w)。雖然100w的裝置和10w的沒法比,但從某些功能上講它沒差太多,乙個是並不是所有時候都需要最高的精度進行測試,另乙個是自己的便宜裝置可以隨便用,貴的裝置需要和別人搶時間用。最後還是希望不論是我還是其他人繼續這個工作,都能把它好好的延續下去。

軟體測試小總結

1 為什麼要進行軟體測試 發現軟體的缺陷,有利於提高 軟體的質量 能舉例說明 2 什麼是軟體測試 通過手工或自動化手段來檢測軟體中存在缺陷的過程。3 什麼是軟體 軟體 程式 資料 庫 文件 4 軟體測試的 7個原則 1 顯示缺陷的存在 2 窮盡測試是不可能的 3 測試盡早介入 4 缺陷集群性 5 殺...

軟體測試基礎小知識(1)

程式崩潰後會顯示 id02 這樣的資訊,id 是idiosyncrasy的縮寫,後面的數字則是表示產品應該測試多少個月。描述軟體失敗的術語 1 缺點 defect 2 謬誤 fault 3 問題 problem 4 錯誤 error 5 事件 incident 6 異常 anomaly 7 偏差 v...

軟體測試 軟體測試

通用技能上 1.基本計算機知識 作業系統,資料庫,通訊協議原理,熟悉至少一門程式語言 2.基本軟體測試知識 各種測試理論,測試方 測試用例編寫,缺陷界定標準,軟體質量評估 3.簡單專案管理知識 產品 系統認知 1.熟悉所測產品功能,能夠將產品文件內描述的uc轉化成tc,這個最最基本 2.熟悉所測產品...