饒臻浩, 張翱龍, 金澤淏, 王俊杰, 武新軍, 何嶺松
(華中科技大學 機械科學與工程學院,湖北 武漢 430074)
大型鋼結構件在建筑、倉儲、化工等行業得到廣泛應用,由于受到制造水平、加工工藝、使用環境等因素的影響,容易出現疲勞、腐蝕、大面積減薄等多種失效形式,因此需要對鋼結構件進行定期檢測和維護[1-4]。電磁檢測具有非接觸、效率高的優勢,在鐵磁構件檢測中得到廣泛應用。目前,國外的商業化電磁檢測系統如加拿大Eddyfi公司的Floormap3D型儲罐底板漏磁檢測軟件系統,可在檢測過程中接收并處理漏磁檢測(Magnetic Fluxleakage Testing,MFL)信號,生成缺陷分布圖,便于操作人員觀察,具有響應快、直觀的優點[5];帝國理工大學開發的WavePro4導波檢測軟件系統可實現A掃并自動生成檢測報告,還能拓展試件仿真和缺陷定位的功能,具有很好的可拓展性[6]。以上均是專用型檢測系統,不能實現多種檢測方式。國內多所高校也進行了電磁檢測系統的開發,大連理工大學材料工程系利用LabVIEW開發了高溫爐管無損檢測系統[7],可同時進行爐管蠕變損傷的超聲檢測和管壁蠕脹情況的連續檢測,提升了軟件操作的便捷性和友好性;華中科技大學儀器系研制了漏磁與電磁超聲復合檢測系統[8],該軟件系統使用了瀑布模型,實現了漏磁與電磁超聲檢測功能的一體化設計。這些檢測軟件系統的功能性較強,但是比較依賴于開發平臺,不利于拓展且開發周期長。
隨著電磁無損檢測技術不斷發展,現有一種電磁檢測儀器可實現漏磁檢測、電磁超聲檢測和導波檢測,通過集成多種檢測方式以提升適用性和檢測效率[9]。同時該儀器對軟件系統提出了新要求,檢測軟件不但需要具備較好的穩定性和便捷性,還要提高可重用能力,縮短軟件開發周期。基于該電磁檢測儀器提出了一種軟件可復用結構設計方法,以實現功能模塊的獨立開發,提高系統的復用性和可維護性,并在Windows環境下的VS2013 MFC(Microsoft Foundation Classes)開發了電磁檢測軟件,通過測試驗證了該設計方法的可行性。
按圖1所示的電磁檢測硬件系統進行軟件開發。電磁檢測硬件系統包括電磁檢測儀器、通信線纜和上位機,其中電磁檢測儀器由檢測探頭、主控電路和運動裝置組成。檢測探頭包括漏磁傳感器、電磁超聲傳感器和導波傳感器。儀器工作時,首先進行導波掃查,初步判斷構件損傷情況,如發現嚴重損傷部位,軟件發送命令控制檢測儀器運動至損傷位置,再使用電磁超聲和漏磁進行連續檢測,并實時顯示信號波形圖,檢測完畢后回到初始位置按照規劃的軌跡繼續進行導波掃查,不斷循環,直到完成整個構件的檢測。

圖1 電磁檢測系統硬件系統圖
電磁檢測軟件采用如圖2所示的“模塊化層次結構”進行設計[10]。頂層包括漏磁檢測、電磁超聲檢測、導波檢測等,中間層包括通信模塊、數據處理模塊、波形顯示模塊等,底層由實現各模塊功能的單元組成。其中通信模塊用于控制通信連接、選擇采集方式、發送檢測命令和接收檢測數據;數據處理模塊用于解析數據包,提取數據并進行分析處理;波形顯示模塊包括繪圖算法和圖形設備接口(Graphics Device Interface,GDI)繪圖,用于實現波形圖繪制及顯示。

圖2 電磁檢測軟件模塊化層次結構
各模塊通過自身的標準接口進行數據通信,可獨立進行開發,下面論述其模型設計。
保障軟件與硬件之間正常通信是完成電磁檢測的重要前提,通信方式有USB、TCP等。軟件的通信功能主要包括連接檢測儀器、發送檢測命令和采集檢測數據。檢測命令能夠完成對電磁檢測儀器的控制和初始化操作,包括參數設置命令、開始采集命令、停止采集命令和運動控制命令。檢測數據包括不同檢測方式采集的信號。
結合C++面向對象特性,對通信功能函數和數據對象進行封裝,UML類結構如表1所示。當設計完通信類結構后,使用前首先需要創建通信設備句柄,然后初始化通信參數,例如ID、IP地址或端口號等。等待建立連接成功后,即可使用標準化接口sendCmd(UCHAR * cmd)對下位機發送采集命令,使用recvData(unsigned short * data)接收數據。

表1 通信模塊類結構
數據處理功能主要包括數據包解析和數據后處理操作,流程如圖3所示。首先將采集的數據包內容放入unsigned char類型數組中;然后將數組指針按序移位對數組的值逐一解析轉換為unsigned short類型,提取出版本號、序列號、信號數據量和數據值,其數據包結構如圖4所示;再使用if語句對數據進行逐個驗證,例如:判斷版本號是否匹配;判斷序列號是否溢出;判斷數據包中的數據值是否出現錯位或丟失;最后通過判斷結果舍棄錯誤的數據包,對正確的數據包進行后處理操作,再把序列號、數據量和數據值放入新的unsigned short類型數組中,使用標準化接口getData(unsigned short * data)輸出。

圖3 數據處理流程

圖4 數據包結構
MFC可以支持GDI繪圖,提供了兩個重要的類:繪圖對象類和設備環境DC類。其中前者封裝了各種GDI繪圖對象,包括畫筆、顏色和繪圖區域等,可以用于設置波形圖線條屬性;后者用于設置繪圖屬性和圖形類型,可實現波形連續繪制。
通過結合使用GDI繪圖方法和雙緩存繪圖模式,實現波形圖實時繪制及顯示。波形顯示模型主要分為三部分:
① 在ShowZone(unsigned int mode)函數中通過顯示范圍參數和采集頻率計算橫坐標像素點數量。當使用等時間采集方式時,橫坐標像素點數量span的計算式如下:
span=timeSpan×sampleFrequency
(1)
當使用等空間采集方式時:
(2)
式中:timeSpan為每屏的顯示時間;sampleFrequency為采集頻率;showSpan為每屏的顯示距離;singleDis為采集間隔。
按檢測儀器的通道數將屏幕按比例劃分區間,確定縱坐標軸及各通道區間的縱向像素范圍。在DrawCoord(bool bRedraw)函數中根據計算的橫縱坐標像素值繪制坐標軸Bitmap圖像。
② 在GetDataY(UINT value)函數中將采集得到的數據值按比例轉換縱向像素坐標值y,在GetDataX(UINT value)函數中將序號位按比例轉換為橫向像素坐標值x,進而可以確定每個數據在屏幕的像素坐標(x,y):
希拉克自以為賣弄“幽默”的一番話,沒想到被法國《解放報》公開刊登,這加重了峰會舉辦地、蘇格蘭愛丁堡人的怒火。在針對峰會舉行的示威活動中,街頭抗議者與警察發生了激烈沖突,造成20人受傷,90人被捕。緊接著,《泰晤士報》以“希拉克嘲弄英國,街頭沖突爆發”為題,大做文章;其他英國媒體也評論認為,希拉克的話是對英國的侮辱。
x=(w-1)·(vx-x0)/(x1-x0)+0.5
(3)
y=(h-1)·(vy-y0)/(y1-y0)+0.5
(4)
式中:w為橫坐標軸的像素寬度;vx為當前采集點的時刻或距離;x0為橫軸坐標范圍的極小值;x1為橫軸坐標范圍的極大值;h為縱坐標軸的像素高度;vy為當前采集點的信號值;y0為縱軸坐標范圍的極小值;y1為縱軸坐標范圍的極大值。
在DrawData(bool bRedraw)函數中,將每個像素點繪制出來,再進行連接,形成信號波形圖Bitmap圖像。
③在OnPaint()函數中將坐標軸和信號波形圖Bitmap圖像復制到臨時的CDC變量中,最后對CPaintDC類型變量使用BitBlt()函數對指定的源設備環境區域中的像素進行位塊轉換,再傳送到屏幕顯示器,實現波形顯示。
在硬件層面,總線由導線組成,作為CPU、內存、輸入、輸出設備傳遞信息的公用通道,是計算機各種功能部件的公共通信干線。
在軟件層面,軟件總線結構用于實現不同模塊的數據通信[11-13],是實現檢測軟件模塊化設計的關鍵。該總線是虛擬存在的,可假想軟件內部有一根數據總線,其中檢測參數、檢測命令和檢測數據在總線內部傳輸,各功能模塊與總線通過接口進行連接,另外調度控制器作為總線的控制中心負責模塊的連接和卸載,其結構如圖5所示。

圖5 基于軟件總線的檢測軟件結構
對于該檢測系統,各功能模塊需要按一定順序進行工作,屬于串并行復合系統。其中串行工作模式采用數據流驅動模型[14],并行工作模式采用消息傳遞的雙線程模型,如圖6所示。首先軟件系統讀取用戶輸入的檢測參數并與下位機建立連接,進入檢測線程后,向下位機發送檢測命令并接收檢測數據;然后通過數據流驅動的方式進入繪圖線程,實現信號波形圖的繪制;最后通過線程循環和消息傳遞的形式實時顯示信號波形圖,同時進行數據采集和處理工作。

圖6 基于軟件總線結構的工作模式
根據該軟件總線結構和工作模式,調度控制器需要執行的任務是連接或卸載功能模塊、為各模塊分配空間、切換檢測方式和控制檢測狀態。首先將軟件總線的接口排序編號,并為每個功能模塊提供連接接口空指針;然后控制器再通過軟件界面輸入參數確定模塊連接順序,將空指針指向軟件總線地址,模塊與總線建立連接;最后控制器根據軟件界面選擇的檢測方式設定該模式對應的檢測數據類型、檢測命令格式和繪圖模式。
根據上述方法,采用MFC開發了一套電磁檢測軟件,界面如圖7所示。其中軟件界面包含菜單欄、檢測功能目錄、檢測功能對話框、波形圖顯示區域和狀態欄。單擊檢測目錄其中一項,界面左側將展開檢測功能對話框,其中包括參數輸入編輯框、參數選擇下拉框和控制按鈕等基礎功能。
① 單擊軟件界面左側目錄項,選擇一項檢測功能;
② 等待功能對話框展開后,選擇一種通信連接方式,再編輯采集參數、激勵參數和顯示參數等;

圖7 復合電磁檢測軟件界面
③ 參數設定完成后,單擊“連接設備”按鈕,等待狀態欄顯示“采集卡已連接”后,再單擊“開始檢測”按鈕;
④ 檢測完成后,按順序單擊“停止檢測”和“斷開連接”按鈕,以完成整個檢測流程。
為滿足該電磁檢測儀器的多種檢測功能需求,該軟件可以通過USB和TCP通信方式分別實現漏磁、電磁超聲和導波3種不同信號的檢測。選用Q235鋼板作為檢測對象,其尺寸參數為1530 mm×800 mm×20 mm,待檢測的缺陷孔尺寸分別為Φ180×8 mm、Φ150×8 mm、Φ100×12 mm,如圖8所示;電磁檢測儀器如圖9所示。電磁檢測儀器通過平移運動對鋼板進行掃查,檢測路線如圖8虛線所示。首先對鋼板進行導波檢測,確定缺陷位置后;然后切換成漏磁檢測模式,判斷缺陷的大小;最后切換成電磁超聲檢測模式,對鋼板厚度進行檢測,檢測信號結果如圖10所示。

圖8 Q235鋼板檢測對象

圖9 檢測裝置

圖10 復合檢測波形圖繪制結果
圖10(a)展示了測得的Φ180×8 mm缺陷孔的導波信號,缺陷信號比較明顯。圖10(b)展示了測得的3處缺陷孔的漏磁信號,漏磁信號幅值是通過先標定后取差值的方式計算得到的,根據幅值變化規律可進一步判斷缺陷情況。圖10(c)展示了3處缺陷孔的厚度值,厚度值是通過電磁超聲信號的回波時差和傳播速度計算得到的,另外觀察各通道的檢測結果可以發現,當電磁超聲傳感器檢測靠近缺陷孔邊緣時,由于邊緣效應的影響,測厚波形會出現一定的波動。
試驗結果表明,當電磁檢測軟件使用不同檢測方法進行檢測時,都能正常工作,說明該電磁檢測軟件具有可行性。
軟件的實時性反映了從數據傳輸過程到波形顯示過程的延遲情況。當延遲越小時,用戶對缺陷的定位越準確;反之,難以精準定位。
由于電磁超聲和導波檢測的采集頻率遠低于漏磁檢測,因此為驗證該電磁檢測軟件的實時性,統計了1000組漏磁檢測過程中記錄的數據包傳輸延時和信號波形圖繪制時間,并對其進行分析,結果如表2所示。

表2 數據包傳輸延時和信號波形圖繪制時間分析 單位:ms
試驗結果表明,數據包傳輸的平均延時小于1 ms,信號波形圖繪制的平均時間在16 ms左右,總延遲時間控制在17 ms以內,說明該電磁檢測軟件具有較好的實時性。
本文給出了一種適用于漏磁、電磁超聲和導波集成的電磁檢測儀器軟件系統的可復用結構設計方法。首先在論述模塊化思路的基礎上,給出各功能模塊的設計模型;然后采用軟件總線結構實現模塊間的數據通信,再使用調度控制器實現模塊與總線的連接或卸載、切換檢測模式或控制檢測狀態;最后基于MFC開發了電磁檢測軟件,實現了多種電磁檢測功能。實際測試表明,用戶在檢測過程中可使用3種檢測方式進行檢測并實時觀察信號波形圖。提出的設計方法對提升電磁檢測儀器軟件系統的便捷性和縮短檢測軟件開發周期具有一定的意義。