10-19-2021 08:58 PM
質問させて頂きます。
現在、DAQボードPCI 6280を使い電圧測定システムを構成しています。フラットシーケンスストラクチャでDAQアシスタントによる電圧測定を 2つ起きたいのですが、エラー50103が出てしまいます。
電圧測定を行った後にステージ移動し、再度電圧測定を行いたいのですが、その場合はどのようにしたら良いのでしょうか?
よろしくお願いします。
解決済! 解決策の投稿を見る。
10-20-2021 01:28 AM
おそらく最初のDAQタスクを終了せずにまた同じタスクを構成しようとしていると思います。DAQアシスタントの「終了」入力をTRUEにしてみてください。
やりたいことは電圧測定→ステージ移動→電圧測定、1回で終わりですか?
ステージ移動→電圧測定を何度も繰り返したいなら、フラットシーケンスストラクチャだけでは組めないのでループを使う必要があります。また頻繁にDAQタスクの構成と終了を繰り返すのはお勧めしません。
10-20-2021 01:35 AM
返信ありがとうございます。
「終了」をTureにして動作してみようと思います。
電圧測定→ステージ移動→電圧測定を
フラットシーケンスストラクチャの中にループを作成し、指定回数分繰り返す予定にしております(100回など)。
タスクの構成と終了を繰り返す際のお勧め出来ない理由と致しましては、測定時間が長くなる、通信の問題が生じてしまうなどでしょうか?
よろしくお願いします。
10-20-2021 02:08 AM
目に見えて何か起こるわけではないのですが・・・
DAQタスクに限らず、リソースの確保と開放は比較的コストが高い(かかる時間が大きめ)のと頻繁に繰り返すことによるタイミングずれやメモリの虫食い状態など、システムが不安定になる傾向があります。通信のオープンとクローズにも当てはまります。
通常はリソースを確保したらそれを使って作業を行い、最後に不要になった時点で開放するように組みます。
DAQアシスタントは1つのインスタンスをループ中で繰り返しコールするのに向いた構造になっています。初回コール時に内部でリソースを確保するので、「終了」をFALSEのまま繰り返しコールして、ループを抜ける際に「終了」をTRUEにしてリソースを開放させるように使います。
ステージ移動後に電圧測定を行うコードをループ中に入れ、初回はステージ移動量をゼロにしてやれば、DAQアシスタントは1つで済むと思います。
10-20-2021 07:21 PM
返信ありがとうございます。
たしかにリスクがありそうですね。
アドバイス頂いた様に最初の移動量を0にしてプログラムを作成しようと思います。
ありがとうございました。