LabVIEW TDMストリーミングVI概要

内容

はじめ

独自のデータファイル形式の設計と維持の必要性を減らすため、ナショナルインスツルメンツは、TDMという柔軟性のあるデータモデルを作成しました。このデータモデルは、LabVIEW、LabWindows/CVI、およびDIAdemを使ってアクセスでき、Excelなど、他のアプリケーションに移植することができます。サードパーティのソフトウェアアプリケーションでTDMデータモデルにアクセスできる、TDM DLLもあります。TDMデータモデルには、特定のプロジェクト要件に合わせて拡張する機能など、独自のメリットが複数あります。また、データをディスクに転送する際、計測データに記述情報を簡単に付加することができます。TDMデータモデルは、TDMとTDMSという2種類のファイル形式に対応します。このホワイトペーパーの主題である、TDMストリーミングAPIは、TDMSファイルを記述し、十分な説明が付加されたデータをディスクに転送できるように最適化されています。データストレージVIと「計測ファイルに書き込む」Express VIによって記述された、TDMデータモデルのその他のファイル形式は、データの文書化に対して同様の柔軟性を持っていますが、データをディスクに転送できるように最適化はされていません。この新しいTDMストリーミングVIは、異なる使用例に幅広く対応しているため、TDMデータモデルとの連携手段として推奨されています。ただし、データストレージVIにも独自の機能があり、例えば、TDMSファイルの読み取り/書き込みを行ったり、ファイルからデータのクエリを行ったりする機能があります。TDMに関するホワイトペーパーでは、両方のAPIを含めた、NI TDMプラットフォームの概要を説明しています。

このホワイトペーパーでは、TDMデータモデルの詳細を紹介するとともに、LabVIEW TDMストリーミングVIによって、収集しているデータの価値を高めつつ、プログラミング時間を短縮する方法を説明します。

TDMデータモデルTDMSファイル形式

TDMデータモデルには、図1に示すように、ルート、グループ、チャンネルの3つの階層があります。各レベルは、顧客が定義した属性に無限に対応し、ファイルが「検索可能」な状態にします。


図1. LabVIEWで記述された各TDMSファイル には、ルート、グループ、およびチャンネルレベルの記述情報が含まれる。


要件の厳しいXMLベースのヘッダファイルがあるTDMファイルとは異なり、TDMSファイルには、「.TDMS_Index.」という拡張子がついたバイナリインデックスファイルがあります。TDMS_Indexファイルは、全ての属性情報とデータファイルへのポインタを統合した情報を提供するので、読み取りを行いながら、データへアクセスする速度が上がります。TDMS_Indexファイルは失われると、自動的に再生成されます。

TDMデータモデルファイルには複数のグループを含めることができ、各グループには複数のチャンネルを含めることができます。また、それぞれのレベルで、独自のカスタムプロパティを組み込むこともできます。

TDMSファイルに含められる属性情報こそがこの形式の主な特長であり、独自のヘッダストラクチャを設計することなく、簡単にデータを文書化することができます。文書化要件が増えても、アプリケーションを設計し直す必要はありません。特定のニーズに合わせてTDMSデータモデルを拡張するだけです。

LabVIEW TDMストリーミングAPIによるTDMファイル書き込み/読み取り

LabVIEWのその他のファイルI/O関数と同様、TDMストリーミングAPIを使って、ファイルを開き、ファイルに書き込み、ファイルを閉じる必要があります。パレットのTDMS VIを使用すれば、選択するプロパティを保存することもできるため、計測ファイルへの追加情報の書き込みに通常伴うファイル形式、データタイプの適合化などの作業について心配することがありません。次のセクションでは、書き込み/読み取り、プロパティの作成、TDMSファイルの共有の基本について説明します。

TDMSデータ書き込み基本

LabVIEW TDMストリーミングVIで計測データを書き込む最も簡単な形式を以下に示します。この例では、DAQアシスタントで計測値の配列を生成し、「TDMS書き込み」VIに渡します。


図2. チャンネルレベルでTDMSファイルにデータを書き込む


「TDMS書き込み」VIには信号入力の他に2つの入力があることに注目してください。上記の例では、DAQアシスタントからの全てのチャンネルには、同じグループおよびチャンネル名が与えられています。グループおよびチャンネル名の入力が配線されないままになっている場合、デフォルトで「名称未設定」になります。

TDMSデータ読み取り基本

図3は、TDMストリーミングVIを使ってデータを読み取る最も簡単な形式を示しています。ここでは、「TDMSを開く」VIが、「TDMS読み取り」VIにファイルリファレンスを渡すと、「メイングループ」グループの全てのデータがTDMSファイルからメモリに読み込まれて、波形グラフに表示されます。

 

図3. TDMSファイルからデータを読み取る

TDMS書き込みカスタムプロパテ

TDMSデータモデルは、特定のデータタイプが書き込まれると、自動的に特定のプロパティをを作成します。しかし、UUT、シリアル番号、テスト温度など、特定のニーズに合わせて固有のプロパティを作成したいという場合が多いかもしれません。この作業を行うには、図4に示したとおり、ファイル、グループ、またはチャンネルレベルでプロパティを記述できる「TDMSプロパティを設定」VIを使います。

プロパティのファイルレベルでは、配線する必要のある入力端子を決定します。例えば、グループプロパティを記述するには、グループ名端子だけを配線する必要があります。チャンネルプロパティを記述するには、グループ名とチャンネル名の両方の端子を配線する必要があります。しかし、ファイルプロパティを記述するには、グループ名とチャンネル名の端子を未配線にしておく必要があります。これらのケースは図5に示しました。

 



図4.異なる3つのレベルでカスタムプロパティを記述してから、ファイルをデータに書き込む。


「TDMSプロパティを設定」VIを使って、個々のプロパティをそれ自体で指定したり、配列を使って複数のプロパティを指定したりすることができます。図4では、ファイルレベルで2つのプロパティ(TestIDとPlant)を指定しています。これは、配列のサイズを大きくするだけで、より多くのプロパティを指定するように拡張できます。シリアル番号など、1つのプロパティだけが記述されるのであれば、配列は必ずしも必要ではありません。

プロパティの値は、異なるデータタイプになることもあります。図4では、文字列プロパティがファイルとグループレベルで記述されています。しかし、チャンネルレベルでは、2つの数値プロパティを記述して、最低と最高の温度を指定しています。

図5は、「TDMSプロパティを設定」VIを使って、ファイルレベルでの追加の記述情報を保存しています。この例では、テストの日付とユーザが配列に組み込まれてから、カスタムプロパティとして記述されています。

 



図5. 「プロパティを設定」VIを使って、ファイルレベルで追加の記述情報を保存する。

TDMS読み取りカスタムプロパテ

TDMSファイルに記述すると、そのプロパティは「TDMSプロパティを取得」VIを使って、LabVIEWに読み込むことができます。プロパティは、グループ名端子とチャンネル名端子を配線することで、指定されたレベルに対してだけ返されます。例えば、図6は、グループ名もチャンネル名も配線されていないため、ファイルレベルのプロパティの取得方法を示しています。特定のチャンネルのプロパティを取得するには、チャンネルグループ名とチャンネル名の両方をグループ名とチャンネル名の端子に配線する必要があります。このプロセスはプロパティの書き込みと大変似ています。図6に示したとおりです。


図6. データストレージモデルの3つのレベルからTDMSプロパティを読み取る


この構成においては、プロパティの値はバリアント配列として返されます。データが文字列、倍精度、ブールなど、様々であるためです。データはフロントパネルにバリアントとして表示したり、LabVIEWで適切なデータタイプに変換したりすることができます。プロパティ名とそのデータタイプが既知の場合、「TDMSプロパティを取得」VIに入力として配線したり、正しいデータタイプで直接読み込むことができます。

TDMSファイルビューア

TDMSファイルビューアは、TDMSアプリケーションの開発時に大変優れたツールとして活用できます。このツールを使えば、VIを1度呼び出すことで、TDMSファイルに記述したものが全て自動的に表示されます。大変柔軟性に優れており、非常に複雑なTDMSファイルを読み取ることが可能です。



図7. TDMSファイルを閉じた後、TDMSファイルビューアを配置して起動する。


このファイルビューアは他のTDMSストリーミングVIと同じ場所に含まれているため、プログラムに簡単に配置できます。図7のとおり、他のTDMSストリーミングVIとともに関数パレットに含まれています。 図8のとおり、ファイルを閉じた後に配置して使用できます。 TDMSファイル内のデータおよびプロパティを表示できる別のウィンドウが自動的に開きます。



図8. TDMSファイルを閉じた後、TDMSファイルビューアを配置して起動する。



図9は、ファイルビューアの外観サンプルです。ファイルビューアの左側にはツリー構造が表示されるので、グループやチャンネルなど、ファイル内の異なるデータレベルにアクセスすることができます。ウィンドウの右側には、左側のツリー構造から選択したレベルの中のプロパティとデータが表示されます。

ウィンドウの右側には、4つのタブが表示されます。プロパティタブは、特定のデータストレージレベルに関連付けられた全てのプロパティを表示します。値タブは、表形式で記述された全てのデータを表示します。アナログ値タブとデジタル値タブは、グラフィカル形式でデータを表示します。



図9. TDMSファイルビューアを使えば、簡単にTDMSデータファイルにアクセスできる。

TDMSファイル最適化TDMS更新

TDMストリーミングVIには、読み取り/書き込み操作を最適化するための、最適化/更新機能が含まれています。

「TDMS書き込み」VIの各呼び出しによって、データブロックがファイルに記録されます。これには複数のチャンネルが含まれる場合があります。この場合、複数の書き込みが行われた際には、1つのチャンネルのデータがファイルの連続した領域に書き込まれなくなります。「TDMSを最適化」VIは、チャンネルごとにファイルを再編成して、読み取り操作を最適化します。この方法を取れば、ユーザはTDMSファイルを毎回読み取る際に最適化するのではなく、「オフライン」で最適化するので、パフォーマンスペナルティはたった1度ですみます。例えば、ユーザはデータを非常にすばやくデータを収集および保存して、読み取り操作を実行する前にファイルを最適化できます。

「TDMSを更新」VIは、キャッシュしたデータを全て強制的にディスクに保存します。システムがクラッシュしたときにデータが失われることがない、便利な機能です。「TDMSを更新」VIを使うと、システムのパフォーマンスが多少下がります。

その他TDMS情報

LabVIEWのTDMストリーミングVIは、データをディスクに迅速かつ効率的に記述するものです。また、リアルタイムシステムで機能することを想定して設計されているため、確定的なシステムにすばやくデータを保存できます。したがって、TDMストリーミングVIを使えば、あらかじめ定義されたフレームワークなしで、バイナリ形式のデータを書き込むのではなく、リアルタイムシステム上の構造化された形式のデータを追跡できます。

TDMSファイルは、ナショナルインスツルメンツのLabVIEW、LabWindows/CVI、およびDIAdemソフトウェアに対応しています。DIAdemソフトウェアでは、データマイニング技術を使用して、データの関係性や相関関係を簡単に検索することができます。また、Microsoft ExcelにTDMSファイルをロードするためのアドインもご用意しています。こちらから、Excel TDMSアドインをダウンロードしていただけます。


まとめ

LabVIEWには、データの読み取りおよび書き込み用の様々なファイルI/Oオプションがあります。TDMストリーミングVIには、従来LabVIEWで行っていたファイル操作を超えるようなメリットが複数備わっています。そうしたメリットは次のとおりです。

1. データを構造化された形式でディスクに短時間でストリーミング
2. テストデータとともに記述的な情報を保存できるため、検索が容易
3. データをグループに分類して構造化(例:グループ1=温度センサ、グループ2=圧力センサ)
4. APIを簡単に使って、通常データの保存に関連する下位レベルファイルI/Oを抽象化
5. 後に解析を行う際データの記述に役立つプロパティを追加
6. リアルタイムシステムで使用

Was this information helpful?

Yes

No