標準と上級のTDMS関数の違い
- 更新日2025-08-27
- 4分で読める
TDMストリーミングパレットには、標準TDMS VI/関数と上級TMDS VI/関数が含まれます。.tdmsファイルでの高度なファイルI/O操作 (非同期の読み取りおよび書き込みなど) を実行するには、上級TDMS VIおよび関数を使用します。
メモ 上級TDMS VIおよび関数の機能が必要ない場合は、標準TDMS VIおよび関数を使用します。上級TDMS VIおよび関数を誤った方法で使用すると、.tdmsファイルが破損する可能性があります。上級TDMS VIおよび関数の使用時にバッファを無効にする場合は、読み書きするデータのサイズはハードディスクのセクタサイズの倍数でなければなりません。
上級TDMS VI/関数は、標準TDMS VI/関数と比較して以下のような利点があります。
- メタデータと未処理データの別々の書き込み―標準TDMS VIおよび関数は、メタデータと未処理データを同時に書き込みます。上級TDMS VIおよび関数は、メタデータと未処理データを個々に書き込むことができます。「TDMSチャンネル情報を設定」関数を使用してメタデータを.tdmsファイルに書き込み、その後「上級TDMS非同期書き込み」関数を使用して未処理データを.tdmsファイルに書き込みます。

メモ .tdmsファイルにデータを書き込む際、そのデータにはメタデータと未処理データが含まれます。.tdmsファイルのメタデータと未処理データの詳細については、以下のサポートドキュメント (ni.com) を参照してください。 - (Windows) データの非同期的な読み取りと書き込み―標準TDMS VIおよび関数は、データの同時読み取り/書き込みだけを行います。したがって、サイズの大きいデータの読み書きを行う際にバッファサイズが小さいと、パフォーマンスが低下する恐れがあります。上級TDMS VIおよび関数は、データを非同期的に読み書きできます。バッファを割り当て、バックグラウンドで複数の非同期読み取り/書き込みを実行するには、「TDMS非同期読み取りを構成」関数または「TDMS非同期書き込みを構成」関数を使用します。
- (Windows) データストリーミング性能を最適化するために外部データに直接アクセスする―上級TDMS VIおよび関数では、標準TDMS VIおよび関数とは異なり、たとえば、データストリーミングデバイスを制御するデバイスドライバのDMA (ダイレクトメモリアクセス) バッファのような、LabVIEW外部のコンポーネントが所有するデータと直接対話することができます。DMAバッファから.tdmsファイルにデータを直接、非同期で書き込んだり、.tdmsファイルからDMAバッファに読み込んだりすることができます。DMAバッファのデータに直接アクセスすることにより、大きなデータセットのコピーを削減し、データストリーミング性能を向上させることができます。

メモ この機能を使用するには、データストリーミングデバイスのドライバAPIから外部データ値リファレンスを受け取る必要があります。外部データと対話するには、外部データ値リファレンスを上級TDMS非同期読み取り (データリファレンス) 関数または「上級TDMS非同期書き込み (データリファレンス)」関数のデータリファレンス入力に配線します。 - 既存データの上書き―上級TDMS VIおよび関数では、標準TDMS VIおよび関数とは異なり、.tdmsファイルのデータのサブセットを上書きできます。「TDMS次の書き込み位置を設定」関数を使用して、既存データを上書きするオフセットを指定できます。
- データ書き込み前にファイルサイズを予約―上級TDMS VIおよび関数では、標準TDMS VIおよび関数とは異なり、書き込むデータのディスクスペースを事前に割り当てることができます。これにより、ファイルシステムレベルでの断片化を防ぐことができます。「TDMSファイルサイズを予約」関数を使用して、.tdmsファイルにデータを書き込む前にディスクスペースを事前に割り当てることができます。