複数のNI-DAQmxタスクまたはターミナルルートを使用する場合のエラー-89137が発生する

更新しました Jul 7, 2026

使用製品

ハードウェア

  • Multifunction I/O Device

ソフトウェア

  • LabVIEW

ドライバ

  • NI-DAQmx

問題

NI-DAQmxデバイスで複数のタスクをプログラミングしたり、複数の端末ルートを接続したりしていますが、次のエラーが発生します。

エラー-89137:他の経路によって現在使用されているリソースが必要なため、指定された経路を処理できません。

このエラーを修正するにはどうすればよいですか?

解決策

このエラーは、作成されたすべてのDAQmxタスクまたは指定されたルートに参照クロックをルーティングできないことが原因で発生します。 DAQmx接続端子VIを使用している場合は、 接続された端子にDAQmx端子切断VIも使用して、プログラムの別のDAQmxタスクまたはセクションで同じハードウェアリソースにアクセスしようとしたときにこのエラーが発生しないようにしてください。  NI MAXでデバイスをリセットすることにより、すべてのルートを手動で切断することもできます。

このエラーは、個別のタスクが共有リソースへのアクセスを必要とするときにいつでも発生する可能性があります。したがって、VIの実行/トラブルシューティング中に予期しないLabVIEWまたはDAQmxタスクが実行されていないことを確認することが重要です。

AI、AO、DIO、Counterなどの複数のサブシステムを同時に使用する場合は、NI-DAQmxタイミングプロパティのReference ClockRateReferenceClock Sourceを使用して、作成するすべてのタスクに同じ基準クロックを定義する必要があります。 、他のチャネル構成(トリガーやタイミングなど)の前に設定する必要があります。

これらのプロパティを設定するには、開発環境に基づいて適切なAPIを呼び出す必要があります。

  • LabVIEWでプログラミングしている場合は、次のことを行う必要があります。
  1. チャネル作成後にDAQmxタイミングプロパティノードを追加します
  2. プロパティノードを右クリックして、要素の追加を選択します
  3. 次の画像に示すように、 オプション:基準クロック:レートプロパティとオプション:基準クロック:ソースプロパティを選択します(例も添付されています)。
  1. RefClk.Srcを設定します。エラーメッセージで示されたソース端子値への入力、たとえばPXIe_Clk100 (したがって、この場合、 RefClkレート入力は100 MHzに設定する必要があります)
  • LabWindows™/ CVIでプログラミングしている場合は、チャネルの作成後、タスクのタイミングを構成する前に、コードに次の関数を追加する必要があります。
DAQmxErrChk(DAQmxSetTimingAttribute(TaskHandle、DAQmx_RefClk_Src、 "PXIe_Clk100"));
DAQmxErrChk(DAQmxSetTimingAttribute(TaskHandle、DAQmx_RefClk_Rate、100000000.0));
  • Cでプログラミングしている場合は、 DAQmxSetRefClkSrc関数を呼び出す必要があります

 

追加情報

基準クロックは、暗黙的または明示的に設定できます。 NI-DAQmxデバイスで基準クロックを使用する場合、そのデバイスのすべてのタスクに同じ基準クロックを設定する必要があります。基準クロックが明示的に設定されていない場合、コミットする最初のタスクは、カード全体の基準クロックを暗黙的に定義します。したがって、別のタスクが後で別の基準クロックを明示的に設定しようとすると、そのクロックは最初のタスクですでに使用されている基準クロック回路を使用しようとします。

これは、特定のDSA、Sシリーズでチャネル拡張を使用し、同時にXシリーズカードをサンプリングする場合にも発生する可能性があります。これは、チャネル拡張の同期がシャーシからの基準クロックを使用して完了するためです。