電子表格、文字處理、數據庫、網絡瀏覽器、服務器、電子郵件、飛行模擬器、毀滅戰士?——在我們讓個人電腦做的所有工作中,沒有比高速、實時數據采集更能完成任務的了。沒有哪個應用程序能比多通道數據采集程序更快地揭示PC、軟件或兩者的弱點,以每通道超過1 kHz的速度將數據流式傳輸到磁盤,同時保持實時顯示。按照這些速度,看似表現良好的軟件可能會瓦解,PC本身可以模仿其曾祖父‘286的性能。
在高速數據采集問題破壞關鍵測試之前發現它是本文的主題。在其中,我們將探索軟件特性,這些特性不僅允許高速測量,而且可以在速度較慢的PC上進行。在此過程中,我們將涉及可執行文件大小和數據文件格式等主題。我們還將討論高級采樣技術,例如智能過采樣和每通道可選采樣率。我們將通過探索間隙檢測器例程及其對高速數據采集的重要性,探討軟件在出現問題時應如何反應。最后,我們將介紹波形審查軟件的重要性,該軟件可幫助您評估采集的數據。
為您的 PC 提供真正的工作
本文的前提是高速數據采集測試PC的性能。在走得太遠之前,最好先解釋一下為什么要增強您對本文中描述的概念的理解。讓我們首先跟蹤PC必須執行的操作才能獲取單個點。我們對“采集”的定義包括數據采集的所有常見元素,而不僅僅是模擬到數字(ADC)讀數的簡單傳輸。它們包括維護實時顯示、處理鍵盤和鼠標中斷、多任務處理等。如果您是PC,您將在高速數據采集應用中執行以下操作:
如果在所謂的即時模式下工作(不太可能用于高速數據采集),則輪詢數據采集設備以獲取ADC值。掃描列表更合適,允許將采集的數據連續流到內存中。在這種情況下,確定下一個讀數,然后獲取它。
將獲取的值存儲到磁盤緩沖區中,直到流式傳輸到磁盤為止。
將采集的數據繪制在實時顯示屏上。不要作弊!用線條連接各個樣本,以便您的用戶可以解釋正在發生的事情。此外,不要發呆。延遲幾秒鐘的顯示違反了實時的定義。確保你不會落后。
在這里,您將通過Microsoft和Windows提供的多層代碼進行工作。此過程的進展取決于您的時鐘速度和顯卡的智能性。它還取決于程序的編碼效率。程序員是采取了簡單的方法并使用系統調用,還是他是一個專業人士,他鉆到了你最基本的水平,并允許你使用節省時間的匯編代碼?
由于典型應用需要以ADC計數以外的單位縮放信息,因此必須將每個讀數乘以m縮放常數,然后添加b縮放常數。此操作將原始 ADC 計數轉換為顯示時有意義的值,如 psi 或伏特。
磁盤緩沖區已滿嗎?然后將數據塊流式傳輸到硬盤。并檢查以確保所有數據都成功了。硬盤驅動器似乎總是落后。執行這些操作,但不要中斷實時顯示或流入磁盤緩沖區的數據流。生澀的實時顯示太難解釋,緩沖區溢出意味著數據永遠丟失。
及時監控用戶的鼠標和鍵盤活動并做出反應(在幾百毫秒內)。在測試過程中,情況會發生變化,用戶可能希望用注釋注釋任何給定的事件,在X或Y方向上擴展或收縮實時顯示,更改顯示波形的數量或順序,甚至更改波形校準。
這是一個多任務Windows環境,(堅果!)用戶剛剛啟動Microsoft Excel。去加載Excel電子表格并在那里執行一些計算。是的,這是一個實時應用程序,用戶希望同時在屏幕上顯示Excel電子表格和數據采集實時。并且不要將任何數據丟棄到磁盤。這就是像這樣的實時應用程序中的死亡之吻。
現在,當ADC數據以每秒1,000、10,000、200,000甚至500,000個樣本的速度從數據采集設備飛向你時,執行所有這些操作。畢竟,你是奔騰。這應該不是問題。
考慮到所有這些細節(以及我遺漏的更多細節),真正的實時數據采集應用程序竟然能正常工作,真是令人驚訝。事實是,許多人沒有。
越大越好
我們生活在一個計算機軟件通常被稱為英國媒體報道軟件的時代。我們在PC上安裝了硬盤,其容量僅在五年前是不可想象的,但我們仍然需要定期升級。文字處理器和電子表格應用程序的規模正在爆炸式增長,數據采集軟件似乎正在遵循這一趨勢。雖然在文字處理等非實時應用程序中可能越大越好,但在實時數據采集的敏捷世界中,大小是一個障礙。因此,衡量實時數據采集程序速度的第一個標準是其數據文件大小。需要 500 KB 內存的應用程序應該比需要快速處理 5 MB 代碼的替代應用程序更有效。由于功能會消耗內存,因此您應該考慮這一點,并嘗試在口哨聲和鈴鐺與性能之間取得平衡。此外,許多應用程序將加載動態鏈接庫 (DLL)。確保數據文件大小的度量包括應用程序和關聯的 DLL。
更高級的語言產生更龐大的代碼
計算機編程語言遵循從非常困難到非常易于使用的層次結構。最低級別和最難使用的是機器代碼,即處理器為執行給定任務而執行的實際 1 和 0。我認識的沒有人以這種乏味和耗時的水平編寫現代 PC。
接下來是匯編代碼,它是機器代碼級別的一種簡寫。處理器操作由助記符和(通常)十六進制代碼表示。在此級別編寫的程序通過匯編程序以生成由處理器運行的機器代碼。匯編程序的構造和調試最復雜,但它們在執行時間和大小方面都能生成最有效的代碼。他們是編程層次結構的純種馬。
編程階梯的下一步,使我們離處理器更遠,是一個重要的步驟:高級語言。也許你聽說過C,BASIC,FORTRAN或Pascal。這些高級語言是最廣為人知的,C和BASIC(包括其基于Windows的Visual BASIC表親)成為最流行的語言。但兩者之間存在巨大差異。C 比 BASIC 更接近處理器,因此在執行時間和大小方面生成更有效的代碼。
階梯的最后一級是圖形編程語言,如TestPoint,HP VEE,Visual Designer和LabVIEW。在這里,匯編甚至高級編程的神秘性質讓位于高度可視化和不那么晦澀的環境中對功能塊的圖形操作。你為這種便利付出的代價是批量的,我之前描述的處理器在數兆字節的代碼中徘徊的圖像。不要指望在這個級別上會妨礙編程效率。
適當地配備了編程語言的細微差別,我們終于可以直奔主題:詢問使用哪種語言來編程您正在考慮的應用程序。一個用C編程的,在程序集級別編程的時間關鍵任務,在所有條件相同的情況下,將比用Visual BASIC或圖形編程語言編程的更有效的工具。
改變你的思維方式
我們是10進制和字母表的生物。知道我們的數據采集程序創建的文件可以像閱讀早報一樣輕松地顯示、打印和解釋,這讓我們感到欣慰。不幸的是,基數 10 不是您 PC 的數字系統,它不知道 A 和 Z 之間的區別。為了實現高速實時數據采集,您必須接受PC的本質并按照其條件使用它。這意味著一個以 2 為基數的數字系統和二進制編碼的文件。為了了解原因,讓我們看一下從12位數據采集設備采集的單個樣本。
計算機喜歡在 8 的倍數(一個字節)的位組中工作。表示樣本值的 12 位二進制數非常適合 16 位字(僅 2 個字節),PC 以這種形式將其寫入磁盤是有效的。但是,您希望PC在將值寫入磁盤之前將示例轉換為其ASCII等效項(我們可以讀取的)。這個看似合乎邏輯的簡單請求將寫入磁盤的字節數爆炸至少 2.5 倍。我們的 12 位 ADC 的范圍為 0 到 4095 計數。以 ASCII 可讀形式寫入磁盤計數每個字符占用一個字節,外加一個分隔符(如逗號),總共 5 個字節。在您希望以有意義的單位(如 psi)存儲數據的情況下,乘以m和b縮放常量會產生必須寫入磁盤的更多位數。單個樣本的 2 字節二進制表示形式很容易分解為 10 個或更多 ASCII 字符(字節)。由此產生的 5:1 負擔將使您的 PC 和硬盤驅動器不堪重負,并最終限制您的最大數據采集速率。
這里有一個硬性規定:將數據作為ASCII字符存儲到磁盤的實時數據采集程序不是高速解決方案。任何精心構思的程序不僅以二進制補碼或其他非文本二進制格式將數據存儲到磁盤,而且還提供在采集后將任何范圍的波形數據轉換為ASCII的能力。
先進的采樣技術
高速數據采集的第二大障礙,僅次于軟件本身,是硬盤驅動器的緩慢性。將現代處理器的速度與硬盤驅動器進行比較是徒勞的。這就像比較光速和聲速。鑒于這種對比,我們可以得出結論,隨著數據采集應用對硬盤驅動器的依賴性降低,速度的潛力也會增加。有兩種先進的采樣方法可以將這種潛力變為現實:智能過采樣和每通道可選采樣率。
我在1997年6月號的《傳感器》雜志上發表的一篇文章中詳細描述了智能過采樣(IOS)。我不會在這里再次討論相同的內容。但是,值得說明IOS的基本前提:任何高頻波形,當充分采樣時,都可以減少到單個最小值,最大值或平均值,該值以精確和相等的間隔計算。這些計算值可以以比波形采樣慢得多的速度記錄到磁盤上。我們已經在無數應用程序中應用了這種技術,不僅可以減輕系統占用磁盤的時間,還可以大大減少實際獲取到磁盤的數據量。后一種好處可以為后續波形分析增加更高的效率。
每通道可選采樣率是另一種旨在最小化磁盤訪問速率和采集數據量的技術。幾乎每個接觸高速數據采集的人都遇到過一個比其他信號慢得多的信號。它是在振動的同時采樣的熱電偶。或與噴油器信號同時采樣的油壓。每個通道的可選采樣率采用高級編程,允許您基于每個通道分配采樣率。沒有它,您將面臨每秒 10,000 個樣本的采樣溫度和油壓的毫無意義的替代方案。每個通道分配采樣率的優勢可以用數學來最好地描述。每個通道的可選采樣率(使用DATAQ Instruments的WinDaq/Pro+數據采集軟件模型)遵循以下一般等式:
有效吞吐量是數據流到磁盤的速率。采樣率除數是 1 到 255(含 1 和 255)的整數,可以按所示方式應用,以縮放特定通道的采樣率吞吐量。圖 1顯示了WinDaq/Pro+ 軟件中的一個對話框,其中可以為每個采集的通道輸入采樣速率除數。
讓我們將此公式應用于上述噴油器和機油壓力示例,假設有兩個噴油器信號和一個油壓信號。第一步確定必須對最高頻率信號進行采樣的速率。這是上面的值S。我們已經假設進樣器的這個值是每秒10,000個樣本。如果我們進一步假設進樣器和壓力信號的采樣率除數分別為 1 和 255,則磁盤的有效吞吐量為:
在沒有每個通道可選采樣率的情況下,我們將被迫以每個通道 10,000 Hz(30,000 Hz 吞吐量)對所有通道進行采樣。有了它,我們將吞吐量和由此產生的數據文件大小減少了 33%。這意味著高速數據采集鏈中最薄弱的環節——硬盤的壓力減少了33%。
最好的計劃?
即使您遵循上述所有準則,您仍然可能會發現自己面臨難以逾越的高速限制。它可能以每秒 10,000 或數十萬個樣本的速度發生。在這種情況下,數據采集軟件的反應方式是一個決定性特征,至少與速度本身一樣重要。也許您使用的軟件只是鎖定,顯示(充其量)臭名昭著的Windows消息“一般保護故障”,并向世界宣布Windows,應用程序或兩者都已經崩潰。雖然已經指出了這一點,但你很可能更喜歡拍拍肩膀而不是在腸道上打這一拳。輸入間隙檢測器,這是一個復雜的軟件例程,用于跟蹤磁盤緩沖區填充和清空的速率。如果前者超過后者,則根據定義,采集的數據流中就出現了差距。此事件直接顯示在實時顯示屏上,不會進一步中斷數據采集過程。圖2顯示了DATAQ Instruments的WinDaq/Pro+數據采集軟件中內置的間隙檢測器計數器。該例程顯示數據流中檢測到的間隙數,以便您可以判斷問題的嚴重性(在長時間測試中,只有少數間隙可能無關緊要)。此外,該軟件在每個檢測到的間隙點插入一個注釋事件標記,以便在回放和分析期間確定它們在數據流中的位置。
終局之戰
數據采集不是達到目的的手段。它只是為您的主要波形分析和解釋目標奠定了基礎。由于高速數據采集應用幾乎總是生成大型數據文件,有些文件大約為10或100兆字節,因此波形評估策略不應是事后輕率的想法。不要像許多人那樣計劃將這些大文件導入Microsoft Excel。Excel和其他電子表格主要用于數字數量非常少的會計應用程序。您的數據文件實際上將淹沒這些應用程序。您需要一個與數據采集應用程序相反的回放和查看應用程序。具體來說,反向磁盤流式傳輸。您的播放應用程序應處理任何數據文件大小,并允許您以正向或反向將數據從磁盤文件流式傳輸到顯示器。時間壓縮和擴展是其他優點。通過壓縮,您可以將數分鐘或數小時的采集數據壓縮到單個屏幕寬度上,以提供測試的鳥瞰圖。使用擴展,您可以選擇特定的波形區域并圍繞它展開以進行仔細查看。播放包的其他有用屬性包括基于光標的時間和幅度測量、一些統計和頻率評估,以及導出轉換器以將特定波形段帶到其他應用程序(如 Excel)進行進一步分析。
DATAQ Instruments提供了這樣一個稱為WinDaqWaveform Browser的播放包。可從我們的網站免費下載。
總結
成功的高速數據采集以效率為核心。您可以通過應用您能負擔得起的最快的計算機來獲取效率。但不要忽視編程和操作效率,軟件設計人員應該將其構建到任何聲稱具有高速功能的產品中。這些,比其他任何事情都重要,將決定高速應用的成功或失敗。
檢測三角洲運載火箭中的繼電器顫振
想象一下,當你被火箭發射到太空時,你會遇到什么樣的振動。現在想象一下這些振動如何影響板載控制電路。由于在發射過程中即使一個這樣的組件發生故障也可能既昂貴又悲慘,因此工程師們努力在地面上盡可能多地模擬任務。一個特別值得關注的領域是由飛行的巨大振動引起的中繼顫動。
進行了仿真,以確定板載繼電器組件在受到 70g、100 Hz 至 3 kHz 隨機振動時是否保持閉合狀態。工程師將最小采樣間隔定義為5 μs,總數據采集時間為3分鐘。這轉化為 200,000 Hz 的采樣率和大約 72 兆字節的數據文件大小。它還排除了使用最高采樣率為50,000 Hz的舊數據采集產品。取而代之的是,將小直流電流注入繼電器電路,并連接到在WinDaq/Pro實時軟件下運行的DATAQ Instruments型號DI-400數據采集卡(現已過時)。這種組合能夠達到 500,000 Hz 的采樣率。由振動引起的繼電器電路中的任何中斷都會立即在WinDaq/Pro的實時顯示屏上顯示為尖峰(圖3),從而可以即時判斷繼電器性能。測試結束后,WinDaq/Pro創建的數據文件可以使用WinDaq波形瀏覽器軟件進一步解釋。兩個軟件包的磁盤流功能允許獨立于數據文件大小進行數據采集和分析。
圖 1— 在 DATAQ InstrumentsWinDaq/Pro+ 軟件
中,通過為每個啟用的通道指定采樣速率除數來定義每個通道的采樣速率。
圖 2 — 當超過最大采集速率時,軟件應以文明的方式做出反應。
在這里,WinDaq/Pro 軟件內置的間隙檢測器顯示記錄到硬盤驅動器的數據流
中的中斷次數。間隙檢測器有助于定義問題的嚴重性,因為數據文件中只有少數間隙
可能無關緊要。
圖 3— 火箭發射期間的繼電器顫振,由 100 至 3kHz、70G 振動器模擬。
此文件以 200,000Hz 的頻率采集,并不間斷地流式傳輸到磁盤三分鐘。
結果是一個 72mb 的數據文件,其中一部分使用WinDaq波形瀏覽器
軟件顯示在此處。像這里顯示的那樣,中繼喋喋不休可能會使一項任務失敗,并帶來代價高昂和悲慘的后果。
審核編輯:郭婷
-
adc
+關注
關注
99文章
6635瀏覽量
548216 -
數據采集
+關注
關注
40文章
6929瀏覽量
115668 -
服務器
+關注
關注
12文章
9681瀏覽量
87261
發布評論請先 登錄
labview進行的數據采集
電機數據采集網關具有哪些特點?

高速脈沖數據采集如何實現

高速分切機數據采集監控告警系統解決方案

ADS869x 18位、高速、單電源、SAR ADC數據采集系統數據表

ADS867x 14位、高速、單電源、SAR ADC數據采集系統數據表

評論