TDMSファイル形式は、NIが推奨する、時間ベースの測定データをディスクに保存するためのファイル形式です。NI-DAQmx 9.0では、TDMSファイル書き込みがNI-DAQmxドライバに直接統合され、最大1.2 GB/sの速度でデータをディスクにストリーミングする最も簡単かつ最速の方法が実現されました。
NI-DAQmx 9.0以降では、「DAQmxロギングを構成」VIが新たにインストールされ、DAQパレットの1つのVI内でTDMSファイルへのデータの書き込みを構成できるようになりました。 これにより、既存のデータ収集アプリケーションと簡単に統合できるだけでなく、フードの最適化により、データをディスクに最も速く書き込むことができます。
図1. 「DAQmxロギングを構成(TDMS)」VIを使用すると、タスクを開始する前にTDMSへのデータロギングを設定できます。
NI-DAQmxでは、Windows、LabVIEW、TDMSのバッファをバイパスして、デバイスバッファからハードディスクにデータを直接ストリーミングすることで、ファイルの書き込み速度を最適化することができます。Voltage -Continuos Input.viは、未処理データをTDMSファイルに書き込むことで、パフォーマンスが向上し、ディスクのフットプリントが改善されます。たとえば、TDMSファイルからスケール情報を独立して読み取ることができます。これらの最適化により、書き込み速度は最大1.2 GB/sになります。サンプルは、ヘルプ→サンプルを検索...を選択してNIサンプルファインダを開き、ハードウェア入力と出力→DAQmx→アナログ入力→電圧 - 連続入力.viを選択して開きます。
図2. NIサンプルファインダ
データがTDMSファイルに保存されたら、LabVIEW、DIAdem、TDMS Excelアドオン、またはその他のTDMS対応インタフェースでTDMSファイルAPIおよびTDMSファイルビューアを使用して、集録データの読み取りと表示を行います。TDMS書き込み/読み取りインタフェースの詳細を確認してください。
PCベースのデータ収集システムでディスクへの高速ストリーミングに影響する主な要素は、ディスクI/O帯域幅、CPU帯域幅、バス帯域幅です。ディスクI/Oとバスの両方に十分な帯域幅がある場合、NI-DAQmxデータ圧縮は、ディスクアプリケーションへの高速ストリーミングに対して優れたパフォーマンスを実現します。
NI-DAQmxは、デバイスで収集されたデータの移動時またはスケール時にCPU帯域幅を使用するため、主にディスクへのストリーミングの性能に影響を与えます。そのため、CPU帯域幅が制限要因となっているシステムでは、NI-DAQmxでCPUを効率的に使用することが重要になります。
NI-DAQmxでは、非常にシンプルな形式のデータ圧縮を実装しています。サンプルデータの最後のビットを破棄し、残ったサンプルをメモリに格納するという、極めてシンプルなデータ圧縮方式を採用しています。開発者は、NI-DAQmxを構成してサンプル内の1つ以上の最下位ビットを破棄できます。たとえば、20の最上位ビットのみを返すように、24ビット分解能と32ビットサンプルサイズでチャンネルを構成できます。合計で12ビット (未使用の8ビットを含む) が破棄され、必要なディスク容量が最大37.5パーセントまで減少します。すでにサンプルに未使用ビットが含まれているため、データのロスが生じないという場合もあります。たとえば、チャンネルで12ビットの分解能で16ビットのデータサイズを収集した場合には、使用されない最後の4ビット分の情報が含まれます。必要なディスク容量を最大25パーセントまで減らしながら、データを失わずにこの4つのビットを破棄することができます。NI-DAQmxでは、LZW、JPEGなどの可逆または非可逆圧縮アルゴリズムを実装していません。
図3. NI-DAQmxデータ圧縮でディスクへの高速ストリーミングのパフォーマンスを向上