文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.170986
中文引用格式: 楊志明,傅一帆,閔曉霜,等. 基于Qt的PLC板級工裝測試方法研究與實現[J].電子技術應用,2018,44(1):114-117.
英文引用格式: Yang Zhiming,Fu Yifan,Min Xiaoshuang,et al. Research and implementation of PLC board-level testing method based on Qt[J]. Application of Electronic Technique,2018,44(1):114-117.
0 引言
隨著“兩化融合”的深度發展,工業控制系統已經成為國家關鍵基礎設施的重要組成部分。數字電路板作為PLC(Programmable Logic Controller)的重要組成部分,其質量好壞直接關系到國家的戰略安全。因此,對于PLC電路板的工裝測試方法進行研究,保證電路板的質量具有重要意義[1]。
隨著微電子技術、封裝技術、印制板技術的不斷發展,印制電路板密度變得越來越大,復雜程度也越來越高,傳統的“探針”測試方法[2]使用萬用表、示波器測試芯片已經不能滿足要求。目前有一些利用IDE工具[3](例如SPE)進行工裝測試,這種方法存在需要人工參與、效率低、不能實現自動化測試[4-5]等問題。基于LabVIEW的自動化測試系統[6]成本較高,而且對于PLC的電路板部分測試不能滿足要求,所以開發一款成本低、操作簡單、測試覆蓋率高的電路板自動化測試軟件很有必要[7-8]。
1 PLC板級工裝測試軟件總體設計
板級工裝測試軟件主要為目標板的測試程序下裝以及測試提供人機界面,發送測試指令至目標板并接收返回的測試結果,為模塊的硬件連通性、各器件的基本功能好壞以及故障查找定位提供軟件支持與驗證。
圖1描述了板級工裝測試系統的外部輸入輸出。
1.1 模塊劃分
按照板級工裝測試軟件需求,軟件所需要實現的功能劃分為8個模塊,模塊劃分及模塊功能概述如表1所示。
1.2 模塊交互關系
板級工裝測試軟件各模塊之間的交互關系如圖2所示。
1.3 系統處理流程圖
系統主要處理流程如圖3所示。
2 測試方法研究與選取
PLC電路板測試的測試項包括:串口測試、網口測試、SDRAM測試、Flash測試、LED燈測試、撥碼測試、RTC時鐘測試、MAC_EEPROM測試、ComX測試、DI通道測試、DO通道測試、A/D轉換測試、D/A轉換測試等。以下對各個測試項的測試方法進行研究并選取最合適的測試方法。
2.1 串口測試
串口測試分為3項,分別對UART_1、USER、OS 3個通道進行測試,以下是3個通道的檢驗方法:將一根串口線一端連接在UART_1串口,另一端連在輔助測試模塊的串口1上;將一根串口線一端連接在USER串口,另一端連在輔助測試模塊的串口2上;再將一根串口線一端連接在OS串口,另一端連在輔助測試模塊的串口3上。輔助測試模塊將收到的待測串口的測試數據原樣返回給該串口,下位機接收數據后判斷返回數據是否與發送的數據相同。如果相同,則測試通過,如果不相同,或者在限定的超時時間內沒有接收到數據,則測試不通過。
2.2 網口測試
網口測試分為2項,分別對ETH0和ETH1兩個通道進行測試,以下是兩個通道的檢驗方法:將一根網線一端連接在ETH0,另一端連在輔助測試模塊的網口1上;將另一根網線一端連接在ETH1,另一端連在輔助測試模塊的網口2上。下位機首先初始化相應測試網口,然后發送目的IP為輔助測試模塊網口IP的ARP請求包,并等待輔助測試模塊發送的ARP返回包,判斷在限定的超時時間內是否接收到正確的ARP返回包。
2.3 SDRAM測試
SDRAM[9]常見的故障[10]通常有以下幾種:固定開路故障(Stuck open fault)、狀態轉換故障(Transition fault)、數據保持故障(Data maintaining fault)、狀態耦合故障(Coup-
lingfault)。目前對于SDRAM的測試大多采用March-C算法[11],這種方法對以上故障具有很高的故障覆蓋率[12],本文就采用這種方法。值得注意的是,由于測試程序也運行在SDRAM上,所以SDRAM測試起始地址預留1 M空間。
2.4 Flash測試
Flash測試[13]分兩步來執行,首先將Flash全擦除,往Flash的每一個地址空間寫數據,然后再讀出來與寫入的數據比較,看是否相同。如果測試地址空間的數據讀寫都正確,則測試通過。
2.5 LED燈測試
LED燈亮滅由相應GPIO口控制,測試時將相應GPIO口都配置為輸出,采用流水亮滅的形式來進行測試,最終點亮所有燈,觀察燈是否全亮。
2.6 撥碼測試
撥碼數據通過GPIO口來采集,相應的GPIO配置為輸入,通過撥動硬件撥碼來改變采集到的數據,然后通過通信口將數據發送到上位機,比對采集到的數據與硬件撥碼當前的碼值是否相同。
2.7 RTC時鐘測試
RTC時鐘芯片通過I2C總線來連接,首先需要初始化I2C相關寄存器,正確設置時鐘分頻值。然后給時鐘芯片設置一個時間,設置完成后芯片自動運行,同時開啟定時器,定時10 s后,再從時鐘芯片中讀取時間,查看讀取的時間是否比設置時間多10 s,以此判斷芯片走時是否正確。
2.8 ComX測試
Ethercat主站采用赫優訊工業以太網模塊ComX 100CN-RE,并下裝Ethercat Master主棧固件,將ComX 100CN-RE模塊與CPU相連,實現Ethercat主站功能主任務。由于ComX模塊中DPM結構由模塊自己的操作系統RCX控制,上電后自動維護,所以測試過程主要是通過讀取DPM中固定地址的一些常量值來驗證。
2.9 MAC_EEPROM測試
MAC_EEPROM測試首先需要初始化MAC控制器芯片,然后在EEPROM固定地址空間寫入一個MAC地址值,然后再讀出來,如果相同則測試通過。
2.10 DI通道測試
DI通道數據采集通過GPIO口控制,開始測試前,給每通道(DI0~DI7)輸入不同的高低電平,GPIO口采集到相應的數據后通過通信口將數據發送到上位機,比對采集到的數據與實際各通道輸入的電平高低是否吻合。
2.11 DO通道測試
DO通道數據輸出通過GPIO口控制,開始測試后,上位機往下位機發送一個輸出值,下位機控制相應GPIO口控制各通道(DO0~DO7)輸出,然后觀察DO通道電平指示燈,比對數據與各通道測量值是否吻合。
2.12 A/D模數轉換測試
使用輔助測試模塊的高精度AI/AO檢測模塊,對4路通道分別輸入4~20 mA恒定電流,A/D芯片采集到相應數據后進行轉換,然后將轉換數據通過串口發送給下位機,下位機計算采集誤差在±0.3%內則測試通過。
2.13 D/A數模轉換測試
通過上位機設定4路通道對外輸出的電流值(4~20 mA),然后轉換為相應的數字量數據并發送到下位機,下位機使用這個數據來設置D/A芯片,然后使用輔助測試模塊的高精度AI/AO檢測模塊測量每路信號輸出的電流值,通過串口返回給下位機,判斷是否符合要求,誤差在±0.1%內。
3 基于Qt的PLC板級工裝測試軟件實現
以CPU模塊為例介紹板級工裝測試軟件的測試過程,圖4是CPU模塊的測試連接關系示意圖。
按圖4所示連接搭建好測試環境后,從上位機上打開板級工裝測試軟件.exe程序。按照流程圖3進行測試,得到如圖5的測試結果畫面。其中,綠色(圖5中灰色圓形區域)表示測試通過,紅色(圖5測試全部通過,無紅色顯示)表示測試不通過。
4 結語
本文通過對PLC電路板上各器件的測試方法進行研究,并依據選取的測試方法設計了一種基于Qt的跨平臺板級工裝測試軟件。經過實際驗證,使用該軟件對PLC電路板進行測試,測試覆蓋率較高、測試時間短、故障定位準確率高。并且該軟件相對以往的測試工裝操作更加簡單方便,生產人員只要經過簡單培訓,就可以熟練使用本軟件,無需專業技術人員幫助就可以完成測試工作。本設計為開發電路板的工裝測試軟件提供了參考,可廣泛用于電路板工裝測試檢驗環節,對于提高產品質量與測試效率、節約人力物力成本具有很大促進作用。
參考文獻
[1] 尤東妹,徐靜.基于自動測試系統的數字電路板測試與故障診斷[J].SILICON VALLEY,2013(5):91-92.
[2] 劉杰,崔成旺.印刷電路板的功能檢測[J].煤炭技術,2012(4):76-77.
[3] 朱振軍,林明,宋月麗.基于邊界掃描技術的板級測試分析[J].電子設計工程,2012,20(9):127-129.
[4] 霍曉磊,康霞,譚業雙.電路板自動測試技術研究[J].測試技術學報,2013,27(5):411-414.
[5] 徐健茹.電路板通用自動測試系統設計與技術研究[D].西安:西北工業大學,2001.
[6] 王曉亮,謝朝輝,楊紅官.基于LabVIEW和FPGA的存儲器測試系統設計[J],計算機測量與控制,2012,20(7):33-35.
[7] 王秀霞,冉黎林,郭磊.基于故障診斷技術的電路板測試設備設計[J].計算機工程與應用,2015,51:295-299.
[8] 孫秀江.PCBA故障診斷系統的研究與開發[D].哈爾濱:哈爾濱工業大學,2006.
[9] 趙雪蓮,楊新濤.SDRAM的測試方法研究與實現[J].國外電子測量技術,2008,27(5):12-15.
[10] 雷靜.存儲器測試方法的研究與測試程序的實現[D].成都:電子科技大學.2009.
[11] 于文考,高成,張棟.基于March-C算法的單片機存儲器測試[J].現代電子技術,2010(6):19-21.
[12] 杜康保,王烈洋,魏愛香.基于SOPC的SDRAM測試技術研究[J].電子科技,2014(24):6-8.
[13] 柳玉波.SoC嵌入式Flash的內建自測試方法的研究與實現[D].成都:電子科技大學,2010.