0

サンプル クロックと「サンプリング開始」トリガーを使用して 8 ビット入力をサンプリングしようとしています。タスクを構成する方法は次のとおりです。

DAQmxErrChk(DAQmxCreateTask("",&samplHandle));
DAQmxErrChk(DAQmxCreateDIChan(samplHandle,"Dev1/port1/line2:7,Dev1/port2/line0:1","",DAQmx_Val_ChanForAllLines));    // choose my 8 bit DI lines PFI2:PFI9
DAQmxErrChk(DAQmxCfgSampClkTiming(samplHandle,"/Dev1/PFI0",1000000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,length));
DAQmxErrChk(DAQmxCfgDigEdgeStartTrig(samplHandle,"/Dev1/PFI1",DAQmx_Val_Rising));
DAQmxErrChk(DAQmxRegisterEveryNSamplesEvent(samplHandle,DAQmx_Val_Acquired_Into_Buffer,length,0,Callback,this));
DAQmxErrChk(DAQmxTaskControl(samplHandle,DAQmx_Val_Task_Commit));

QT Creator で実行すると、次のエラーが表示されます。

DAQmx エラー: 指定されたプロパティはデバイスでサポートされていないか、タスクに適用できません。プロパティ: DAQmx_StartTrig_Type

タスク名: _unnamedTask<0>

ステータス コード: -200452 DAQmx エラー: 指定されたタスクが無効であるか、存在しません。ステータス コード: -200088

以前は、デジタルの代わりにアナログ入力を使用していたとき、問題はありませんでした。チャンネル構成の何が問題なのか、誰にもわかりませんか? PCI6259 と BNC2110 を使用しています。

4

1 に答える 1

1

PCI 6259を使用して説明したことを実行できますが、カードを少し異なる構成にする必要があります。あなたがやっているように、開始トリガー信号と端子を割り当てるのと同じくらい簡単だと思うかもしれませんが、M シリーズ デバイスは新しい X シリーズ デバイスほど柔軟ではありません。

まず、M シリーズ デバイスはデジタル タスクの開始トリガーをサポートしていません [1]。

M シリーズ デバイスには、デジタル波形の取得または生成用の独立した DI または DO 開始トリガがありません。

次に、M シリーズデバイスはポート 0 でのみデジタル波形を集録でき、ポート 1 または 2 では集録できません。プログラムを更新する前に、外部接続を再配線し、ポート 0 からのラインを使用する必要があります。デバイス、NI 6259には、デジタル波形測定用の 32 行があります [2]:

  • 波形特性 (ポート 0 のみ) -- NI 6254/6259: ポート 0 (P0.<0..31>)
  • PFI/ポート 1/ポート 2 機能 -- 静的デジタル入力、静的デジタル出力、タイミング入力、タイミング出力

ポート 0 に切り替えたら、次の 2 つの方法があります。

  1. カード上の別のサブシステムを使用して、トリガーとクロックを提供します。
  2. 「変化検出」を使用して、任意の行に遷移があるたびにサンプルを取得します。

別のサブシステムの使用

M シリーズ デバイスには、アナログ入力とカウンター/周波数出力サブシステムがあり、これらのいずれかを使用して、デジタル入力測定の開始トリガーとサンプル クロックを提供できます [1a]。

たとえば、AI サンプル クロックを DI サンプル クロックのソースとして使用している場合を考えてみます。AI サンプル クロック (したがって DI サンプル クロック) でパルスを開始するには、AI 開始トリガーを使用して AI 操作の開始をトリガーします。AI 開始トリガにより、M シリーズ デバイスは AI サンプル クロック パルスの生成を開始し、次に DI サンプル クロック パルスを生成します。

カウンター出力を DI サンプル クロックのソースとして使用している場合、カウンターの開始トリガーは、DI サンプル クロックを駆動するカウンターを有効にします。

NI-DAQmx は、API を使用してタスクを構成する方法を示す C サンプルをインストールします [3]。組み合わせてデザインを完成させることができるものはほとんどありません。

  • デジタル チャネルの連続読み取り - 外部クロック
    • これは、デジタル タスク設定の基礎となる可能性があります。
  • 電圧サンプルを連続的に取得 - 外部クロック - デジタルスタート
    • これは、デジタル タスクのサンプル クロックおよび開始トリガーとして 2 倍にすることができる、外部サンプル クロックおよび外部デジタル開始トリガーのアナログ タスクを構成する方法を示しています。
  • 連続アナログ入力および読み取りデジタルチャンネル
    • これは、アナログ サブシステムとデジタル サブシステムを同期させる方法です。
  • デジタル パルス列の生成 - 連続 - デジタル スタート
    • これは、カウンター タスクをサンプル クロックとして構成し、トリガーを開始する方法です。

例のディスク上のファイル名は省略されていることに注意してください。

変更検出の使用

M シリーズ デバイスは、各 DIO ラインで立ち上がりエッジ、立ち下がりエッジ、またはいずれかのエッジを個別に検出できます。変更が検出されるたびに割り込みを発生させるようにタスクを構成できます [1b]:

DAQ デバイスは、各 DI 信号を 80MHzTimebase に同期し、信号を変化検出器に送信します。この回路は、すべての DI 信号から有効になっているすべての変化検出器の出力を OR します。この OR の結果が変化検出イベント信号です。

入力信号の変化が遅い (100 Hz 以下) 限り、この手法を使用してデータを取得できます。それらがより速く変化しなければならない場合、プログラムが割り込みを十分に迅速に処理できる可能性は低いです。この制約のため、最初のアプローチを試すことをお勧めします。

このタイプの測定の DAQmx C の例 [3] は、Read Digital Channel - Change Detectionと呼ばれます。

参考文献

[1a] M シリーズ ユーザ マニュアル :: デジタル波形トリガ(ページ 99..100)
[1b] M シリーズ ユーザ マニュアル :: DI 変化検出(ページ 104..105)
http://digital.ni.com/manuals. nsf/websearch/2025C99AB0614F9E8625748000577B9A

[2] NI 625x 仕様 :: デジタル I/O/PFI
http://digital.ni.com/manuals.nsf/websearch/210C73CBF91128B9862572FF0076BE85

[3] テキストベースの NI-DAQmx データ集録の例 :: ANSI C
http://www.ni.com/white-paper/6999/en/#ANSIC

于 2014-10-04T19:45:53.730 に答える