NI-DAQmxタイミング同期特性

概要

このドキュメントでは、LabVIEW ADEにおけるNI-DAQ™mxのタイミングと同期の基礎について説明します。  特に、ミックスドモード計測、アナログ機能の範囲を超えた同期、データ収集(DAQ)デバイス間のタイミング信号の共有について説明します。 

 

テキストベースのプログラミング環境におけるデータ収集は、LabVIEWを使用したNI-DAQmxプログラミングと非常に似ています。これは、関数の呼び出し方法がNI-DAQmx VIと同じであるためです。詳細については、 「テキストベースのプログラミング環境でNI-DAQmxを使用する」をご覧ください。

内容

タイミング同期必要理由

アプリケーションの多くは、タイミングの正確な制御と複数操作を同期させる機能を必要とします。たとえば、多数のダイナミック信号の計測と解析を行う必要があるとき、位相ミスマッチを許容できない場合があります。時間内に単一ポイントで1つの信号を計測する場合、決められた時間内に同じポイント別の信号を計測し、この収集にも同期操作が要求されます。NI-DAQmxおよびLabVIEWグラフィカルプログラミング環境には、これらのデータ収集システムを簡単に作成できるツールが用意されています。

画面表れないAPI

NI-DAQmxによって、タイミングと同期に必要な多くの強力なソリューションが提供されます。LabVIEWを使用した場合のネイティブ機能により、次世代のデータ収集プログラミングが可能になります。また、デバイス間の信号パス配線を具体的に定義する必要がなくなります。NI-DAQmxでは、必要な信号を取得する方法を自動的に検出します。検出後に必要な作業は、信号の送信先の指定だけです。この場合、ドライバによって画面に表れない部分の作業が効率的に行われ、複雑な構成操作を省くことができます。ただし、これはタイミングと同期に関する特徴のほんの一部にすぎません。

ミックスモード計測

ほどんどのEシリーズデータ収集デバイスは、アナログ入出力、カウンタ/タイマ、デジタル入出力の各機能を備えているため、一定の確実性が求められる同期で各計測タイプを使用する場合に、デバイスのプログラミング作業に手間取ることが多くあります。このような例の一部を以下に示します。

1) 同時に開始したアナログ入力とアナログ出力

操作を同時に開始したが、同期が行われなかった場合

アナログ入出力が同期された場合

操作を同時に開始して同じレートで実行を設定する場合

操作でサンプルクロックを共有する場合

2) トリガを使用して同期されたアナログ入出力

ハードウェアトリガとサンプルクロックを共有する場合

3) 同期されたアナログ操作とカウンタ操作

4) アナログ操作のクロックとしてカウンタでパルス列を作成

5) アナログクロックゲートでカウンタ操作を制御

NI-DAQmx APIでは、わずかな数のVIを使用するだけでタイミングと同期の操作を実行できます。特に、DAQmx Timing.viとDAQmx Trigger.viを使用すると、チャンネルをスキャンする間隔とこの操作を開始 (または停止) するタイミングを指定できます。これらの2つのVIは、LabVIEWの多態性VIであるため、アナログ入力信号のタイミングとトリガを定義するだけでなく、前述のアナログ出力、カウンタ/タイマ、デジタル入出力 (図1を参照) のタイミングとトリガも定義できます。

DAQmx Timing.viとDAQmx Trigger.vi

図1
 

同期アナログ入出力

同期に関する一般的な使用例として、同じクロックを使用してアナログ入出力を同期する場合を挙げることができます。この場合、図2のようにアナログ入力とアナログ出力の2つのコードチェーンが必要になります。各チェーンでは、「DAQmxタイミング」VIを使用して連続操作を指定します。アナログ出力タイミングについては、「ソース」入力をデフォルトのままにしてください。これは、アナログ出力操作が、内部クロックであるデフォルトのアナログ出力クロックに従って機能することを示します。アナログ入力側にある「DAQmxタイミング」VIでは、この「ソース」をアナログ出力のサンプルクロックに指定するだけです。これにより、アナログ入力とアナログ出力の両方の操作が、アナログ出力のタイミング信号で動作するように設定されます (図2を参照)。




図2

アナログ範囲同期

前の例では、アナログのタイミング信号を共有する方法を示しました。ここでは、アナログ信号とデジタル信号が混在する場合の処理方法について考えてみます。NI-DAQmxでは、混在する場合にも同様にシームレスな統合が可能と思われますか? 結論を言うと、可能です。

アナログ計測は、外部または非従来型クロック信号によって異なる条件で検証します (例: 1ミリ秒ごとにサンプルを1回取得します。これを10ミリ秒間行い、3ミリ秒待機して、また繰り返します)。この場合、Eシリーズデバイスのカウンタ機能を使用して、目的のタイミング信号を生成できます。アナログ側でも、クロックとしてこの機能を使用することができます。これには、再度「DAQmxタイミング」VIを使用します。「ソース」にカウンタの内部出力ピンを指定すると、カウンタ出力は、端子台でピンを接続するための外部ワイヤを使用しないアナログ入力クロックになります (図3を参照)。

端子台でピンを接続するための外部ワイヤを使用

図3


同期で実証された使い勝手の良さは、トリガにも活かされています。「DAQmxトリガ」VIを使用すると、内部トリガ信号または外部トリガ信号 (アナログまたはデジタル) のいずれかを待機するように、操作を簡単に設定できます。適切な例として、イベントトリガの処理が挙げられます。イベントトリガでは、デバイスは収集が開始される前に、最初のN個のトリガを無視します。これを行うには、カウンタを使用して、アナログ入力収集を開始するための単一パルスを作成します。カウンタは、最初のN個のトリガを使用してパルスの低い部分を作成し、有効なトリガを使用してパルスの高い部分を開始し、実際の収集をトリガします。以下の例では、2つの並列したコード (上部はアナログ入力操作の構成、下部はカウンタの構成) があります。トリガのソースはCounter 0の出力です。Counter 0は、入力が「n番目」のパルスになるとトリガパルスを出力するように構成されています。この場合、100 kHzの内部タイムベースが内部ソースとして選択されますが、ソースの外部位置を指定することもできるため、外部パルス列で遅延トリガを設定できます (図4を参照)。

外部パルス列で遅延トリガを設定
図4



メモ: 最後の2つの例では、Ctr0InternalOutputとCrt0Outが、クロック信号またはトリガ信号の位置として参照されています。Ctr0InternalOutputは、ボードへの内部経路設定に使用できる信号です。Crt0Outは、PFIとRTSIにカウンタ出力を経路設定する場合に使用されます。図4の例では、Ctr0Outの代わりにCtr0InternalOutputを使用できます。

信号経路設定オプション


前の例のようにデバイスのある場所から別の場所へ信号の経路設定を行うには、いくつかの点を考慮する必要があります。まず、NI-DAQmxがこれらの信号を経路設定するように構成されているかどうか確認します。次に、経路設定に使用できる信号を確認します。これらの信号を渡す機能は中間通信パスに依存するため、リアルタイムシステムインテグレーション (RTSI) バスを使用してください。

RTSIバス (PCIデバイスでは34ピンコネクタとして使用でき、PXIデバイスではバックプレーンコネクタに含まれています) には、あるデバイスから別のデバイスへ (またはデバイス内部で) タイミング信号を送るときの送信先となる7個のピンが搭載されています。この通信パスを使用する前に、システム内のデバイスがどのように接続されているかをドライバに認識させる必要があります。PCIデバイスの場合、RTSIケーブルで適切なデバイスを接続し、Measurement & Automation Explorer (MAX) でこの接続を登録します。これを行うには、MAX 3.0以降で、NI-DAQmxデバイスを右クリックして新規NI-DAQmxデバイスを作成→RTSIケーブルを選択します。これにより、RTSIケーブルがNI-DAQmxデバイスのリストに追加されます。PXIシステムの場合、PXIシステム→次のモデルとして識別を右クリックして、PXIシステムを認識させるだけです。RTSIバスはPXIシステムのPXIトリガバスとして参照されます。図5は、DAQデバイスに接続されたRTSIケーブルを示しています。


DAQデバイスに接続されたRTSIケーブル

図5


1つのDAQデバイスで経路設定できる信号を確認するには、MAXでデバイス経路タブを表示します。MAXでこのDAQデバイスをクリックすると、ツリー構図のの右側にあるウィンドウにデバイス属性が表示されます。そのウィンドウの下部でデバイス経路タブを選択すると、使用可能な各信号経路の一覧が表示されます。緑色の四角は直接設定できる経路、黄色の四角は作成するデバイスのサブシステムタイプを介して設定する経路を示します。黄色の四角にカーソルを合わせると、ルートを完成させるために必要な中間サブシステムが、使用されているサブシステムボックスに表示されます。これは、実行している他の操作に干渉する可能性がある間接経路を判別する際に役立ちます (図6を参照)。


実行している他の操作に干渉する可能性がある間接経路


図6

上級機能

「DAQmxタイミング」VIと「DAQmxトリガ」VIには、操作を設定するための高レベル機能が用意されていますが、低レベルの情報が重要になる場合があります。たとえば、アナログ出力操作を更新しているタイムベース、またはアナログエッジトリガが構成されているレベルを確認する必要があるとします。こうした情報はDAQmxタイミングプロパティノードとDAQmxトリガプロパティノードを介して公開されます (図7を参照)。これらのプロパティノードから、情報の設定や表示に関連するすべての構成値にアクセスできます。

DAQmxタイミングプロパティノードとDAQmxトリガプロパティノード

 

DAQmxタイミングプロパティノードとDAQmxトリガプロパティノード
図7



DAQmxトリガプロパティノードが複雑な機能を公開する例として、カウンタ用の再トリガ可能なオプションがあります。以前のAPIでは、カウンタを再トリガ可能にすると、カウンタ操作のコードが完全に変わってしまいました。NI-DAQmx APIでは、Start.Retriggerableに設定されたDAQmxトリガプロパティノードを含めるだけで、カウンターが単一トリガから再トリガ可能な操作に変更されます (図8を参照)。

Start.Retriggerableに設定

図8

複数デバイス同期

前の例では、(トリガまたはタイミングを介して) 同じデバイス上で操作をまとめる方法を示しました。しかし、1つのデバイスの機能では、システムの完全な特性評価ができない場合はどうでしょうか。システムのチャンネルカウントが多いと、場合によっては、複数のデバイスを組み合わせる必要があります。各デバイスにRTSI接続が搭載されていれば、単一デバイスの場合と同じ同期オプションを利用できます。

RTSI接続

図9


デバイス間の接続を表示するには、MAXでRTSIケーブルを右クリックし、「ケーブルにデバイスを追加」で適切なデバイスをそれぞれ選択します。各デバイスが追加されると、NI-DAQmxでは、デバイス間で使用可能なすべての経路設定パスが利用されます (同期がシームレスに行われます)。PCIデバイスの場合、物理的にデバイス間にRTSIケーブルを追加する必要があります。

これで、他のデバイスからの適切なタイミングピンまたはトリガピンを、「DAQmxタイミング」VIと「DAQmxトリガ」VIの「ソース」として参照することができます (デフォルトではRTSIバスの管理はユーザに表示されません。ただし、Export Signal.viを使用して、特定のRTSIピンに特定の信号を明示的に経路設定するオプションが用意されています)。 以下の例は、アナログ入力操作の場合に、あるデバイスから別のデバイスにタイミング信号を共有する方法を示しています (図10を参照)。



図10



2つの別のデバイスで行われる2つの別の操作があることに注目してください。デバイス1のサンプルクロックは、デバイス2のサンプルクロックとして構成されています。これは、Dev1/ai/SampleClockをデバイス2のサンプルクロックとして使用するようにNI-DAQmxに指示することによって行います。NI-DAQmxでは、両方のデータ収集デバイスでデータが同じレートで取得されるように、実際にそのルートを実現する方法が計算されます。

まとめ


NIのほとんどのDAQデバイスには、タイミングとトリガを共有できる機能が搭載されています。この機能を利用するために、NI-DAQmxには、計測が同じ時間領域で行われるようにするためのツールが用意されています。このツールには、NI-DAQmxの特徴である使いやすさ、簡素化された解析、パフォーマンスの向上が反映されています。

 

Was this information helpful?

Yes

No