エラー -201133: 複数のデジタルI/Oまたはカウンタタスクを実行するとNI 9401でNI-DAQmxエラーが発生する

更新しました Oct 23, 2023

使用製品

ハードウェア

  • NI-9401

ソフトウェア

  • LabVIEW

ドライバ

  • NI-DAQmx

問題

NI 9401の製品ページには、4ビット単位で入力または出力するための構成可能なデジタルI/Oインタフェースと記載されていますが、NI-DAQmxを使用してLabVIEWで複数のデジタルI/O(DIO)やカウンタを実行しようとすると 、下記のエラーが発生します。

 

エラーコード-201133
 

考えられる理由:
このデバイス上のラインや端子が別のタスクまたは経路により使用されているため、デバイスを入力や出力用に構成できません。この操作は、他のタスクまたは経路を干渉する通信に、すべてのラインおよび端子を一時的に予約する必要があります。

可能であればDAQmxタスク制御を使用し、このデバイスを使用するタスクをコミットする前に、このデバイスを使用するすべてのタスクを予約してください。それ以外の場合は、入力または出力用のデバイスの構成を試行する前に、他のタスクのコミット解除や予約解除を行うか、他の経路の接続解除を行ってください。



 
 

このエラーが発生するのはなぜですか?そして、複数のデジタル入出力やカウンタータスクを実行するためにNI 9401を設定するにはどうすればよいですか?

解決策

このエラーは、LabVIEWの実行タイミングにより、デバイス上のデジタルラインが不適切な順序で予約されているために発生します。NI-DAQmxで複数のDIOまたはカウンタタスク用にNI 9401を構成する際にエラー-201133が表示されないようにするには、1つを除くすべてのタスクを予約する必要があります。さらに、以下に示すように、予約されていないタスクを最初に開始する必要があります。


 

ハードウェアタイミング、またはその他の構成が必要な場合は、タスクを予約または開始する前にDAQmxタイミングVIを使用して設定できます。

追加情報

上記の例では、2つのデジタルタスクと1つのカウンタータスクが同時実行されるように設定されています。 DAQmxタスクを制御VIを使用して、2つのタスクを予約状態にします。その後、2つの予約済みタスクを開始する前に、1つ目の未予約タスクが開始されます。
 

NI 9401のラインは、個々のラインではなくニブル単位で入力または出力を設定する必要があります。つまり、カウンタタスクとDIOタスクのどちらを使用する場合でも、ライン0~3(ニブル0)はすべて入力または出力として一緒に構成し、ライン4~7(ニブル1)もすべて入力または出力として一緒に構成する必要があります。
 

カウンタ出力のデフォルトPFIラインがデジタル入力ニブルにある場合、ニブル0がすでにカウンタ出力タスク用に予約されているため、デジタル入力タスクのNI-DAQmxタスクを開始VIでエラーが発生します。これは、NI-DAQmxチャンネルプロパティノードを使用して、カウンタ出力にニブル1のPFIラインを指定することで回避できます。
 

双方向構成と各ニブルの実行タイミングを個別に制御する機能の例については、Configuring an NI 9401 for Bidirectional DI/O By Nibble with DAQmx を参照してください。
 

ニブル構成を利用してアナログタスクをトリガする例については、 Configuring Nibble DI/O Configuration for Triggering with NI 9401 を参照してください。


デジタル入出力におけるチャンネルを定義する名称は以下のとおりです。なお、1ラインのデータを1ビットとすると、8ライン分を合わせることで1バイト(8ビット)のデータとして扱えます。

1チャンネル = 1ライン
4チャンネル = 4ライン、または 1ニブル
8チャンネル = 8ライン、または 2ニブル、または1ポート