データ集録のエラー"200279"について | 您所在的位置:网站首页 › labview错误200279 › データ集録のエラー"200279"について |
横から失礼致します。
エラー:-200284が発生する理由は、Tomo.Tanakaが案内している通り、タイムアウトが発生しているためです。
現状、初めにアップロードされているVIからサンプリングレート、読み取り数以外に変更は加えられていますか? 特に変更がない場合、VIを開始後、211秒以内に開始トリガがかからないとタイムアウトエラーが発生するはずです。
現状、サンプリングレートを変更することでエラー:-200279は回避することができていますが、 何故回避できたのか論理的な説明をした方がよいと思いますので、説明させていただきます。
初めの質問であるエラー:-200279はPCバッファ(DAQデバイスからデータが転送されて、データをストレージするためのPC側メモリ領域)のオーバーフローが発生していることが原因です。
投稿されたコーディングですと、サンプリングレートが200 kS/sなので、5usに一点データを集録し、PC側に転送してます。
また、PC側で確保されるバッファ(メモリ)サイズは、以下のリンクの通り決められます。
○バッファサイズの決定 - NI-DAQmxヘルプ - National Instruments http://zone.ni.com/reference/ja-XX/help/370466AA-0112/mxcncpts/buffersize/
今回の場合、DAQmxタイミング関数のサンプル数/チャンネル端子には"211"という非常に小さい値が設定されているので、 バッファサイズはデフォルト通り100kSample分確保されます。
また、今回DAQmx読み取り関数では1サンプルしか取得しないモードで動いているので、呼び出されるたびに1Sampleしか取得しません。 DAQmx読み取りが実行される速度はCPUの最速の速度となるので、もちろんCPUの種類・他にどういうアプリケーションを実行しているかなどの環境に大きく依存しますが、数百us程度間隔でDAQmx読み取り関数は実行されていると思います。
つまり、100kSamples分設けられたPCバッファには、5usに1sampleの速度でデータが書き込まれているのに対し、そのデータは数百usに1sampleの速度で読み取られるような設定となっているということです。
容易に想像していただけると思いますが、明らかに書き込み速度に対して読み取り速度が遅いので確実にPCバッファはオーバーフローします。 サンプルレートを1kS/sにして上記オーバーフローエラーが解決したのは、書き込み速度が読み取り速度に対して早くなったためです。
では、書き込み速度が読み取り速度に対して早くなると何が起こるでしょうか。 この場合、データを読み取ろうとしても、読み取るデータがそもそもない状態が発生します。 データが何もない場合、DAQmx読み取り関数に設けられているタイムアウト端子で設定している秒数分、データがくるのを待ちます。 (アップロードしているコーディングだと、プロパティノードRelative toの値が強制されたものがタイムアウト端子に接続されています。Relative toからは一番小さくても10424の数値が出て来るので強制されて、タイムアウトまでの時間は必ず211秒となっています)
いただいたコードですとタイムアウトまでの時間は211秒となっているので、測定が開始されていさえすればタイムアウトエラー:-200284は発生しえません。(サンプリングレート1kS/sであれば、1msに1サンプルは書き込まれるので。) とすると、開始トリガがかからずに測定が開始されていないことが原因だと推測されます。 なので、開始トリガがかかっているかお調べください。
この問題の初めのオーバーフローエラーを解決するためには、DAQmx読み取り関数を1サンプル読み取りモードで動かすのではなく、Nサンプル読み取りモードで動かすようにしてください。 1度の読み取りに1sampleのみ読み取るのでなく、複数サンプル読み取るようにするだけで問題は解決するはずです。 例えば、サンプリングレートを200kS/sと設定するとして、DAQmx読み取り関数で設定するサンプル数/チャンネルを2000と設定するだけで、問題なく測定できるようになるはずです。
長文にて失礼致しました。 何かご不明な点がございましたら、お知らせくださいませ。 |
CopyRight 2018-2019 实验室设备网 版权所有 |