解決策
このエラーは、作成されたすべてのDAQmxタスクまたは指定されたルートに参照クロックをルーティングできないことが原因で発生します。 DAQmx接続端子VIを使用している場合は、 接続された端子にDAQmx端子切断VIも使用して、プログラムの別のDAQmxタスクまたはセクションで同じハードウェアリソースにアクセスしようとしたときにこのエラーが発生しないようにしてください。 NI MAXでデバイスをリセットすることにより、すべてのルートを手動で切断することもできます。
このエラーは、個別のタスクが共有リソースへのアクセスを必要とするときにいつでも発生する可能性があります。したがって、VIの実行/トラブルシューティング中に予期しないLabVIEWまたはDAQmxタスクが実行されていないことを確認することが重要です。
AI、AO、DIO、Counterなどの複数のサブシステムを同時に使用する場合は、NI-DAQmxタイミングプロパティのReference ClockRateとReferenceClock Sourceを使用して、作成するすべてのタスクに同じ基準クロックを定義する必要があります。 、他のチャネル構成(トリガーやタイミングなど)の前に設定する必要があります。
これらのプロパティを設定するには、開発環境に基づいて適切なAPIを呼び出す必要があります。
- LabVIEWでプログラミングしている場合は、次のことを行う必要があります。
- チャネル作成後にDAQmxタイミングプロパティノードを追加します
- プロパティノードを右クリックして、要素の追加を選択します
- 次の画像に示すように、 オプション:基準クロック:レートプロパティとオプション:基準クロック:ソースプロパティを選択します(例も添付されています)。
- 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));