NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

DAQ収録データのサンプリングを1kHzで安定して収録する方法

解決済み
解決策を見る

現在リアルタイムモジュールで高速にデータを集録していくシステムを構築しています。

ファイルの保存形式としてTDMSを採用しようと考えております。

複数データをまとめて1行とし、リスト形式で保存していくことを考えており、データはターゲットからホストへDMA-FIFOを用いて送られてきております。その際、1行分のデータをインタリーブしてからFIFOに書き込み、ホストでデシメートして読み込んでいます。

 

TDMSはファイル、グループ、チャンネルの3つの階層に分かれているというのはわかりました。

ファイル作成→書き込み→ファイルクローズを行うような簡単なVIで動作を確認してみたところ、データには単体の数値定数などは渡せず、配列等しか渡せません。

 

例えば、

| 気温 | 湿度 | 気圧 | 

| 24.5 |   30  |  950 | 

| 25.5 |   40  |  970 | 

| 26.5 |   50  |  940 | 

| 21.3 |   25  |  998 | 

のように、「気温、湿度、気圧」を1セットで100us毎に記録していくというシステムを構築する場合、1つのチャンネルに相当するのは「気温、湿度、気圧」の1セットになるのでしょうか?

 

というのも最初、私はホスト側で「気温、湿度、気圧」をデシメートしてバラバラにした後、Forループ等で気温チャンネル、湿度チャンネル、気圧チャンネルに振り分けるのかなと考えておりました。つまり最初に3つのチャンネルを作成しておいて、そこに順次入れていく。

それとも、インサートされたデータ1組に対してチャンネルが一つ作られていく感じなのでしょうか。もしそうなら、私のシステムではチャンネル名やメタデータなんかはほとんど意味を成さなくなり、後からデータ処理するのも大変のような気がします。

0 件の賞賛
メッセージ1/3
2,221件の閲覧回数
解決策
トピック作成者yoshi-kが受理

例として挙げられた3種類のデータを保存される場合でも、1つのチャンネルに
相当するのはそれぞれのデータ(気温で1チャンネル、温度で1、気圧で1チャンネル)になります。
イメージとしては、以下のような結果となればよいでしょうか?

Result.PNG

 

 

下記のVIを実行すると上記のような形式でデータが書き込まれます。TDMS Write Example.png

 

 

 

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ2/3
2,202件の閲覧回数

ありがとうございます!

大変助かりました。

おかげさまで希望の動作を得ることができました。

0 件の賞賛
メッセージ3/3
2,192件の閲覧回数