NI製品ディスカッション

cancel
Showing results for 
Search instead for 
Did you mean: 
Reply

動作が異様に遅い

お世話になっております。

 

頂いたLoopTimeを組み込んで作動させてみました。(添付末尾Loopファイル)

長文となりましたが、ご一読くださいますようお願いいたします。

 

テスト(1)

8chとも選択した状態で、

ブール(グラフ)ON、データ記録ON、測定ONでのループ処理時間は約920msecでした。

 

ブール(グラフ)ON、データ記録ON、測定OFFでのループ処理時間は約100msecでした。

 

ブール(グラフ)ON、データ記録OFF、測定ONでのループ処理時間は約920msecでした。

 

ブール(グラフ)ON、データ記録OFF、測定OFFでのループ処理時間は約100msecでした。

 

当然の話ですがブール(グラフ)OFFでは、いずれの条件でも停止します。

 

DLLのデーター収集部分が怪しいと考え、ブール(グラフ)ON、データ記録ON、測定ONの条件でチャンネル数を減じながら測定したところ、

7ch820 msec

6ch720 msec

5ch620 msec

4ch520 msec

3ch420 msec

2ch320 msec

1ch220 msec

0ch120 msec

 

上記の測定は、いずれのチャンネル番号の組み合わせにも依存せず同様でした。また、データ記録OFFの条件でも全く同じでした。

 

したがって、pico社の最新のDLLを入手して試験するべきと考えます。

 

テスト(2)

チャンネル選択部分をループの外に出してテスト(1)と同様の試験を行いましたが結果は全く同一でした。(添付LoopCHout

 

新たな疑問

テスト(1)、(2)の両者において、停止スイッチをクリックした後、データ収集5~10回繰り返した後にようやく停止するため、停止に5~10秒要してしまう。これを改善する方法はないのでしょうか?(すぐ止める方法?)

 

白ヤギさんと黒ヤギさんのお手紙みたいですが、宜しくお願いします。

0 Kudos
Message 11 of 16
(259 Views)

ループ時間を確認いただきありがとうございます。

 

テスト1でチャンネル毎に処理時間が増えるのは、デバイスの仕様のように感じます。

 

USB TC-08 Specifications を見ますと変換時間は100 ms per thermocouple channelと表記されておりますので、チャンネルが増えると100msずつ増えるのではないでしょうか。

 

テスト2のすべてを停止するのに時間がかかるとのことですが、停止ボタンが押されたタイミングでは他の処理が実行されており、それらがすべての処理が終わらないとWhileループから抜け出せません。ただ、収集を複数回繰り返すという部分がよく分かりません。Whileループのi(ループ反復)端子に表示器を付けて、停止ボタンを押した後にループが何回転するかを確認いただけますか?

ループ回数が停止ボタンを押した後に増えないのでしたら、プログラムのデザインパターンから再検討が必要になると思います。

 

 

 

 

Message 12 of 16
(253 Views)

度々お世話になります。

 

繰り返しループにカウンタを付けて確認しましたところ、繰り返し5回目で停止ボタンをクリックすると約25回程度の繰り返しで停止しました。

そもそも、停止ボタンをクリックする際に停止ボタンの表示が反転(黒くなる:選択された表示)することもありませんでした。

単なるwhileループですので、どこかエラーの処理が悪いのではと調査しております。

0 Kudos
Message 13 of 16
(245 Views)

私の方でもDLL呼び出し部分を添付ファイルのとおり無効化し、できる限り処理時間の短縮化を行い、動作確認してみました。結果としては、停止ボタンを押してから次のループ反復で止まり、想定通りの動作であり、問題の再現には至りませんでした。

 

この添付したコードでは、ダイアグラム無効ストラクチャを用いてDLL部分を無効化しておりますので、そのストラクチャの枠を右クリックして、「このサブダイアグラムを有効にする」を選択し、有効化することで実機で動作確認が可能となります。

 

停止ボタンを押してから止まるまでの遅延がDLLによる影響なのかを確認いただけると幸いです。

 

 

 

Message 14 of 16
(239 Views)

返信に時間がかかり申し訳ありません。

DLLを用いると確かに異常に遅くなります。

 

また添付のVIで動作させると3Dのグラフまで動作しなくなります。

 

当該ハードメーカーにも合わせて問い合わせをしております。

 

LabVIEW側として、手を尽くせる手法はあるのでしょうか?

ご教授くださいますと幸甚です。

0 Kudos
Message 15 of 16
(133 Views)

ご返信ありがとうございます。時間がかかっても投稿いただければメールが届きますので問題ありません。気になっておりましたので助かります。

 

問題が発生するのは、「測定開始」ボタンを押してDLLを使用する場合のみでしたら、これ以上LabVIEW側で行えることは思いつきません。

このDLLはハードウェアの使用が必須であり、DLLを使用するケースのデバッグができませんので、それ以外は時間のかかりそうな処理できる限り排除して、ダミーデータでの動作確認をおこなっておりますが、DLLなしでは再現できませんでした。

よって、DLLを作成したメーカー側で高速化できるように修正いただく必要がございます。

 

3Dグラフの部分は、DLLを使用しないケースにダミーデータを配置して表示してみましたが、元々作成されていた方法のほうが動作するようでしたら元に戻してお試しいただけると幸いです。

 

以上、よろしくお願い申し上げます。

0 Kudos
Message 16 of 16
(128 Views)