王 斌,丁軍航,5,6,官 晟
(1.青島大學 自動化學院,青島266071;2.自然資源部 第一海洋研究所,青島266061;3.青島海洋科學與技術(shù)試點國家實驗室 區(qū)域海洋動力學與數(shù)值模擬功能實驗室,青島266237;4.自然資源部 海洋環(huán)境科學與數(shù)值模擬重點實驗室,青島266061;5.青島大學 山東省生態(tài)紡織協(xié)同創(chuàng)新中心,青島266071;6.山東省工業(yè)控制技術(shù)重點實驗室,青島266071)
在工業(yè)生產(chǎn)和控制中,電機經(jīng)過長時間運行易出現(xiàn)故障,從而導致整個關(guān)聯(lián)的系統(tǒng)不能正常運行,造成經(jīng)濟損失[1]。而通過振動信號往往能較為直觀地了解、掌握設(shè)備在運行中的狀態(tài),評價、預測設(shè)備的可靠性,及早發(fā)現(xiàn)故障。因此,設(shè)計一套振動信號采集監(jiān)測系統(tǒng),以采集電機的運行數(shù)據(jù),進行電機狀態(tài)監(jiān)測,對于保障電機正常運行、避免發(fā)生事故具有重要意義[2-3]。
如今數(shù)據(jù)采集技術(shù)飛速發(fā)展,用戶可以直接通過數(shù)據(jù)采集系統(tǒng)獲取外界硬件設(shè)備的數(shù)據(jù),并在計算機中進行數(shù)據(jù)顯示、分析與處理。傳統(tǒng)的基于單片機的數(shù)據(jù)采集系統(tǒng),雖然靈活性強,但硬件設(shè)計較復雜,且開發(fā)周期較長[4],因此通常選用使用方便、功能齊全的數(shù)據(jù)采集卡來獲取數(shù)據(jù)。
臺灣研華公司在數(shù)據(jù)采集技術(shù)上較為成熟,在工業(yè)控制中得到廣泛應(yīng)用[5]。而其提供的配套數(shù)據(jù)采集軟件安裝復雜,空間占用較大,且不能對異常的數(shù)據(jù)進行及時判斷,使用起來較為不便,故在此根據(jù)研華的相關(guān)驅(qū)動函數(shù)進行數(shù)據(jù)采集軟件的二次開發(fā)。
研華公司為采集卡配備的軟件DAQNavi 安裝繁瑣,啟動較慢;需要安裝并開啟子軟件DataLogger,操作不便;比較占用系統(tǒng)資源;軟件并不具備信號的異常報警提示功能,用戶并不能對設(shè)備異常進行及時發(fā)現(xiàn)處理。因此,需要對采集軟件進行重新開發(fā)設(shè)計,滿足用戶需求。
在此,電機故障監(jiān)測系統(tǒng)所用采集卡為研華USB系列采集卡,其具有2種采集模式:Instant AI和Buffered AI[6]。Instant AI為實時采樣,每個數(shù)據(jù)單獨傳輸,采樣間隔由軟件程序決定,采樣率相對不高;Buffered AI為緩存采樣,先將數(shù)據(jù)依次暫存在緩存中,儲存到指定數(shù)量后再批量傳輸,采樣率由硬件本身所支持的采樣率決定,可實現(xiàn)高速采集。這2種采集模式都有各自的優(yōu)缺點,并有著不同的實現(xiàn)方式。在此針對這2種不同的采集方式進行設(shè)計,以實現(xiàn)在不同需求下的數(shù)據(jù)采集。
軟件采用Windows 操作系統(tǒng),在Visual Studio 2019 環(huán)境的.net 平臺下使用C# 語言進行開發(fā),采用模塊化設(shè)計,其功能模塊如如圖1所示。
按照圖1所示振動信號采集監(jiān)測軟件功能模塊,在軟件開始運行時,需要選擇欲連接的采集設(shè)備,設(shè)置好采集參數(shù),選擇要采集的方式;在采集過程中觀察波形顯示,注意報警提示;在采集結(jié)束后,可查看本地保存的振動數(shù)據(jù)以及報警信息。上位機軟件的設(shè)計流程如圖2所示。
圖1 軟件功能模塊Fig.1 Software function module
圖2 軟件設(shè)計流程Fig.2 Flow chart of software design
2.1.1 實時采樣
瞬時電壓讀取需要采用Window 窗體(Win-Form)的定時器控件(Timer)定時觸發(fā)采集卡驅(qū)動提供的Read 方法。將方法置于Timer的觸發(fā)事件Tick中,每觸發(fā)1次Tick,便得到1個數(shù)值。Instant AI程序流程如圖3所示。
圖3 Instant AI 程序流程Fig.3 Program flow chart of instant AI
定時器Timer的Interval 屬性表示時間間隔,接受數(shù)值為int 整型,因此最小時間間隔可設(shè)為1 ms,相應(yīng)的最大采樣率能達到1000 Hz。在代碼運行測試時,單通道下,將Interval 設(shè)置為1,即理論上1 s內(nèi)Tick 事件會執(zhí)行1000次,得到1000個數(shù)值,但實際保存了幾組10 s的數(shù)據(jù),發(fā)現(xiàn)每組數(shù)據(jù)的數(shù)量都在640個左右,即每秒采樣約64個,精度為15 ms,與設(shè)置值相差較大。
后改用Windows 自身封裝的其他2種定時System.Timers.Timer 和System.Threading.Timer,發(fā)現(xiàn)精度和WinForm 下的差別不大。之后嘗試用Thread.Sleep 方法進行循環(huán)等待來實現(xiàn)定時,該方法最高精度同樣為1 ms,實際使用時也發(fā)現(xiàn)存在+1 ms的誤差。查閱相關(guān)資料后,發(fā)現(xiàn)在多媒體應(yīng)用上,對每一幀圖像的獲取精度要求都很高,因此通常使用一種多媒體定時器MmTimer,這是一個高精度且線程分離的定時器,不依賴消息機制,具有較高的優(yōu)先級[7-8]。在本文采集系統(tǒng)中實際應(yīng)用該定時器,發(fā)現(xiàn)確實也有著很好的效果。
因為Windows 系統(tǒng)不是實時操作系統(tǒng),任何方案都不能絕對保證定時器的精度,只能盡量地減少誤差。各種方式在1 ms 精度下測試采集1000個數(shù)據(jù)的耗時情況見表1,采用多媒體定時器能更好地保證Instant AI 采樣率的準確性。
表1 各定時器使用比較Tab.1 Comparison of timers
2.1.2 緩存采樣
Buffered AI 采用內(nèi)部時鐘采集數(shù)據(jù),不依賴外部定時器,采樣率可達上萬赫茲,數(shù)據(jù)通過設(shè)置緩沖區(qū)(Buffer)的大小進行批量傳輸。Buffer 緩沖區(qū)可被分為若干段(Section),當開始采集時,獲取的數(shù)據(jù)填入Buffer 中,每當Buffer 中的一段Section 被填滿,便會發(fā)出一個DataReady 事件,用戶可在該事件內(nèi)調(diào)用GetData 方法獲取這一段的數(shù)據(jù)。若Section個數(shù)設(shè)為0,為流式采集,需用Stop 方法停止;否則為有限采集,所有Section 填滿后會自動停止。Buffered AI 程序流程如圖4所示。
圖4 Buffered AI 程序流程Fig.4 Program flow chart of Buffered AI
Buffered AI的采樣率由硬件時鐘決定,舍棄實時性,可更快更多地進行數(shù)據(jù)傳輸,之后可統(tǒng)一對數(shù)據(jù)進行批量處理。在程序設(shè)計中,因數(shù)據(jù)傳輸量大,需注意Section 不能設(shè)置過小,或DataReady 事件處理代碼過于復雜,否則會使舊事件尚未完成就被新觸發(fā)的事件覆蓋,導致數(shù)據(jù)丟失;若采樣率設(shè)置過高,也會導致硬件緩存溢出,在丟失數(shù)據(jù)的同時也加重硬件負擔。
2.1.3 定時采樣
為方便使用,軟件在原有的采集功能上,加入了定時采集功能,不必人為控制采集的始停,用戶可通過設(shè)置當天的一個時間段,當系統(tǒng)時間到達指定開始時間后,會自動開始采集,到達設(shè)定結(jié)束時間后自動結(jié)束。該段時間內(nèi)采集到的數(shù)據(jù)也會自動保存到本地文本文檔txt 中,用戶可直接拿到進行后續(xù)分析。
軟件使用GDI+的Graphics類進行繪圖,完成動態(tài)波形顯示。因采集時會隨時獲得新的數(shù)據(jù),繪圖需實時循環(huán)更新,在此使用List 集合進行數(shù)據(jù)的傳輸存放,該集合是一個可以動態(tài)增減成員的數(shù)組,可自動擴展成員個數(shù)[9]。每次獲得數(shù)據(jù),便添加到List 集合中,并將數(shù)據(jù)轉(zhuǎn)位坐標點傳入繪圖方法DrawCurve 中,當滿3個點時開始畫曲線并實時更新顯示[10]。當集合中的數(shù)據(jù)個數(shù)大于屏幕顯示的最大寬度量時,刪除之前面顯示過數(shù)據(jù),重新繪制新的數(shù)據(jù),這樣既實現(xiàn)了波形動態(tài)移動的效果,又避免了數(shù)據(jù)不斷積累從而占用內(nèi)存。
程序啟動時,會先初始化顯示窗口為長寬十等分的網(wǎng)格,等開始采集時,采集到的振動數(shù)據(jù)會以波形顯示在窗口中;對于已有的數(shù)據(jù),也可以利用數(shù)據(jù)回放功能在回放窗口中重新進行波形繪圖顯示。
Buffered AI 能提供較高的采樣率,為防止在長時間持續(xù)高采樣率下因數(shù)據(jù)量過大而導致過高的內(nèi)存占用,采集到的數(shù)據(jù)不能一直存放在內(nèi)存中,若數(shù)據(jù)過多,需要及時轉(zhuǎn)移到本地,以釋放內(nèi)存。通過試驗測試,在10000 Hz 采樣率下,1 min 采集的數(shù)據(jù)占用了8 MB,如此換算2 h 后便可達到GB 級,若實際項目所需采樣率更高,采樣時間更長,則更需要考慮內(nèi)存溢出問題。本文所提方法是在數(shù)據(jù)用于圖像顯示之前,先保存為本地dat 文件寫入到程序目錄下的Data 文件夾中,在顯示時當波形滿屏后,刪除掉存放數(shù)據(jù)的集合中之前已顯示過的數(shù)據(jù),這樣既保存下了所有數(shù)據(jù),也不會造成過高的內(nèi)存占用。
每當一段采集結(jié)束,便會在本地生成一個dat文件,使用該文件可以進行數(shù)據(jù)回放,也可通過數(shù)據(jù)保存按鈕選擇需要提取的dat 文件及保存路徑,軟件會將其另存為txt,方便進行后續(xù)的數(shù)據(jù)查看與分析。
Buffered AI 方式由于數(shù)據(jù)量太大,相應(yīng)波形顯示的也快,因此很難用肉眼直接觀測到波形異常,只能拿到一段數(shù)據(jù)后通過后續(xù)分析來判斷該段時間內(nèi)是否存在異常情況。為了使用戶能夠在高速采集下也能及時捕捉到可能的異常,在此實現(xiàn)了一個Buffered AI 采集下的異常報警功能。
電機沿軸轉(zhuǎn)動,其產(chǎn)生的振動信號在時域上具有一定的周期性,當電機出現(xiàn)異常時,其振動信號在幅值上會有較為明顯的變化[11]。Buffered AI的數(shù)據(jù)是以一個Section為單位批量傳輸?shù)?。在此將Section 大小設(shè)置為一個周期的數(shù)據(jù)量,通過記錄每段Section 數(shù)據(jù)中的邊界值和平均值,同時設(shè)立一個閾值,當新來的一組數(shù)據(jù)邊界值超過該閾值時,則認為該段數(shù)據(jù)存在異常值,記錄該異常值以及出現(xiàn)時間,在報警提示窗口中記錄顯示并存入程序目錄Log 文件夾的log 文件中,之后再比較后續(xù)數(shù)據(jù)。若之后數(shù)據(jù)恢復到邊界之內(nèi),則可視為設(shè)備受到了臨時外界干擾;若異常一直持續(xù),則提示設(shè)備可能損壞,提醒用戶及時排查異常。
以三相異步電動機作為待測振動設(shè)備,將振動傳感器固定其上,連接數(shù)據(jù)采集卡,再連接個人電腦,通過軟件進行數(shù)據(jù)的采集測試。所用實驗平臺如圖5所示。
圖5 電機振動信號監(jiān)測實驗平臺Fig.5 Experiment platform for motor vibration signal monitoring
為測試采集功能,將采樣頻率調(diào)至采集卡最高支持的48 kHz,分別采集1×106,2×106,5×106,10×106個數(shù)據(jù)存入本地,并統(tǒng)計采集耗時得到試驗結(jié)果,見表2。由表可知,該軟件能夠在采集卡支持的最高采樣率下,較好地完成采集任務(wù)。
表2 采集試驗結(jié)果Tab.2 Result of acquisition experiment
使用Process Explorer,在同一臺電腦設(shè)備上測得的研華DataLogger 軟件與本文軟件在48 kHz 采樣率下,持續(xù)運行采樣的資源占用情況如圖6所示。由圖可見該軟件在CPU 占用和內(nèi)存占用上都有所降低。
為測試異常報警功能,在試驗時,先使電機正常運轉(zhuǎn)并監(jiān)測其波形,再用螺絲刀人為地將電機與實驗平臺之間的固定螺栓拆卸掉,電機失去固定,導致振動幅度增大,相對應(yīng)的波形也出現(xiàn)明顯變化。這一過程的波形顯示如圖7所示,此時信號的幅值相比原來有所增大。
圖6 兩種軟件CPU 與內(nèi)存占用情況比較Fig.6 Comparison of CPU and memory usage of the two software
圖7 振動采集信號波形顯示Fig.7 Display of vibration acquisition signal waveform
出現(xiàn)異常后軟件根據(jù)幅值閾值及時檢測出了異常值,并將各異常信息記錄在了報警信息窗口以及本地log 文件中。異常報警信息界面記錄了此次異常信息,如圖8所示。
圖8 異常報警信息界面Fig.8 Interface of abnormal alarm information
在此所述的振動信號采集監(jiān)測系統(tǒng),能夠?qū)σ桩a(chǎn)生故障的振動設(shè)備進行實時監(jiān)測,及時發(fā)現(xiàn)異常,進行修復更新。編寫的上位機軟件實現(xiàn)了數(shù)據(jù)采集卡的2種采集方式,在實時采集中采用多媒體定時器提高了采集速率;在高速采集下,設(shè)置了信號幅值閾值,對超出閾值的異常信號進行實時報警。通過試驗對各項功能進行了測試,軟件能夠良好運行,同時操作界面友好,簡單易用,用戶可方便地控制采集過程。該系統(tǒng)擴展性好,后續(xù)可實現(xiàn)數(shù)據(jù)的服務(wù)器上傳與下載,以及信號的濾波和時頻轉(zhuǎn)換等處理,可廣泛應(yīng)用到各種易損設(shè)備的異常檢測中。