管慧明 吳 陳
(江蘇科技大學 鎮江 212003)
振動實驗三維模擬系統對整個實驗過程進行模擬,而且還能實時監控被振動設備的當前狀態。現在的振動實驗大多使用曲線來描述實驗的振動過程,不夠直觀,而且需要工作人員進入噪聲環境特大、空間狹小的環境中去查詢設備狀態,對于已經發生故障的設備,如未及時查詢,往往導致振動實驗繼續的無意義性。對于包含多CAN節點的系統設備,實驗者需要耗費大量時間去定位并記住故障模塊并伴隨著定位錯誤的風險。同時,由于現在軟件的成熟性,二維的界面顯示已經越來越不能滿足人們對于審美觀的要求[1]。因此,本文設計的模擬監控系統無疑具有很大的應用市場。
該監控系統主要由顯示終端和監控終端組成,監控系統的總體框架如圖1所示。其中監控系統由STM32F103C8T6芯片、溫度傳感器、電壓采集電路、信號采集電路、CAN物理層電路組成。監控系統針對不適合人現場工作的惡劣環境,實時采集被監控設備當前溫度、工作電壓、重要模擬信號,并以CAN口發送出去。顯示終端以Cortex-A9處理器為核心[4],加載振動設備三維模型,根據ID號解析各個監控終端發來的實時數據,將實時數據在三維界面上體現[2]。

圖1 系統總體框架圖
顯示終端為實現界面操作流暢、三維模型加載、渲染等功能,對主控制器,尤其是3D處理方面提出了較高要求,系統采用Freescale公司推出的I.MX6 Quad處理器,其內核運行頻率高達1.2GHz,帶有1MB L2緩存和64位DDR3或2通道、32位LPDDR2、4個著色器和兩個2D圖形引擎,將節能高效的處理能力與尖端的2D、3D圖形,以及高清視頻功能相結合,將多媒體性能提升到全新的水平。支持2個LVDS輸出通道,兼容市場上絕大多數LVDS液晶屏,以便我們實現信息交互[3]。由于處理器內部沒有CAN收發器,故需要外接TJA1050[14],將CAN控制器的邏輯電平轉換為CAN總線的差分電平[15],在兩條有差分電壓的總線電纜上傳輸數據,如圖2所示。

圖2 TJA1050外圍電路
監控終端采用意法半導體推出的STM32F3系列單片機為主控制器,搭載Cortex-M3內核,具有高性能、低成本、低功耗、外設豐富的特點。由于STM32自帶的I2C模塊具有卡死的風險,故本系統采用通用GPIO口來模擬I2C協議,通過I2C接口連接MLX90614溫濕度傳感器[5],可以獲得當前設備的溫度。通過電池備份電路可以使得外部供電故障的情況下也可以正常和監控系統通信。如圖3所示。另外通過STM32自帶的AD0、AD1轉換,來獲得當前設備的電壓、模擬信號以確定當時設備是否正常。

圖3 MLX90614外圍電路及備用供電電路
該系統軟件的特色之一就是可以跨平臺運行。在PC平臺上開發環境為qt creator2.8+qt4.8.5[7]。利用Qt的跨平臺特性,經過不同平臺的編譯以后可以使得同一個程序在Linux、Windows、Android、IOS上運行。在顯示終端移植嵌入式Linux系統與Qt應用程序開發框架,通過修改文件/etc/rc.d/rc.local腳本文件,可以使得系統啟動后自動調用Qt程序,進入主界面,程序流程如圖4所示。上電后,系統初始化環境變量,并且加載使用3d max生成的OBJ和MTL文件,還原出3D模型以便交互。系統工作在兩種工作模式下面,分別為動畫模式和查詢模式,在動畫模式下面可以真實地模擬出當前振動臺的工作狀態,比如當前振動方向、振動速度、沖擊速度等[8]。在查詢狀態下,可以單擊模塊以拾取出當前需要查詢的模塊,從而可以進一步縮放、旋轉當前模塊,以便更好地觀察當前被監控模塊的狀態。當觀察結束后通過雙擊該模塊可以恢復初始化狀態,為進入動畫模式做準備[9]。

圖4 顯示終端程序設計流程圖
OBJ模型文件和MTL材質文件是可讀的文本文件,OBJ文件中存儲了三維模型的頂點、法線、紋理和材質使用情況。MTL文件是材質庫文件。存儲了模型的材質、顏色、光照、紋理貼圖、反射貼圖。該設計中將三維模型的解析過程以類的方式實現,在構造函數中只需要傳入OBJ和MTL路徑名即可,方便易用。OBJ文件中常見關鍵字和描述見表1所示,MTL文件中常見關鍵字和描述見表2所示。

表1 OBJ文件關鍵字及描述

表2 MTL文件關鍵字及描述


在Material類中申請了Ka、Kd、Ks三個數組用來存放MTL文件中相關信息,同時在Point3類中定義了頂點信息,用來保存OBJ文件中頂點信息,在完成OBJ和MTL文件相關數據獲取以后通過OpenGL相關函數glVertexPointer()、glNormalPointer()、glTexCoordPointe(r)、glDrawArrays()來獲取的數組信息還原出來,重新構造出三維模型,以便交互。
振動臺的振動過程中,分為X、Y、Z三個振動方向以檢測被檢測設備的在惡劣環境下是否可以正常工作。

以垂直X軸方向為例,在定時器中通過增減變量Golbal::x,來調整三維模型在世界坐標系中的位置,以實現模型的沿著Y軸上下振動。

圖5 測試結果
振動設備三維模擬系統在Windows7和Linux系統下進行了測試。測試根據實際生產制作過程中來完成,如OBJ模型的加載、振動臺的運動、被監控模塊的拾取、縮放、旋轉等[10]。通過CAN網絡通信,顯示終端的CAN節點通過解析CAN報文可以讀取當前拾取的模塊的狀態信息,如模塊內部溫度、關鍵模擬信號的有無、模塊供電電壓有無等。根據獲取的實際信息對被拾取的模型進行相應的改變,將故障信息直觀地體現出來。比如出現電壓故障時模塊對應電壓的綠燈變為紅燈、關鍵信號丟失時對應插頭分離等。測試依次展示了振動臺和振動設備、模塊的拾取、電壓故障、關鍵信號丟失和模塊放大、模塊旋轉、模塊縮小。測試結果如圖5所示。
該系統分為顯示終端和監控終端兩個部分。通過對各個節點數據的實時解析,使得顯示終端能夠實時獲取當前被監控各個設備模塊的狀態,可直觀地展示發生故障的通信節點。并且將異常數據存入本地數據庫當中,以供研發人員獲取歷史故障信息,為以后研發設計以及生產提供借鑒。實際運行表明,這種監控系統具有使用方便、可靠性高、界面炫酷逼真的優點,對于遠距離數據獲取、惡劣的工作環境、被監控設備多而雜的情況具有很大的應用價值。