From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

サブVIのみの遅延

解決済み
解決策を見る

現在,Labviewのブロック内の,whileループ内にあるサブVIのみを遅延させる方法が

分からずに困っています.

whileループ内で,DAQアシスタントからの入出力を行い,サブVIが一定のタイミングで起動する

ように設計したいです.

 

基本的な質問かもしれませんが,解決方法や,ご意見をお願いします.

0 件の賞賛
メッセージ1/16
2,815件の閲覧回数

やりたいことがいまいち文章から読み取れないのですが、できていない状態でも構わないので、VIを投稿していただくことは可能でしょうか。

0 件の賞賛
メッセージ2/16
2,791件の閲覧回数

ありがとうございます.

 

作成中のVIを載せます.

 

すべてをダウンロード
0 件の賞賛
メッセージ3/16
2,786件の閲覧回数

VIの投稿ありがとうございます。

今でも1ループ2秒で回っているのだと思いますが、これでは不十分だということですね。今の状態だと具体的に何が不十分なのでしょうか。

0 件の賞賛
メッセージ4/16
2,778件の閲覧回数

Melry さん 対応ありがとうございます.

while ループを遅延させずに,VIのみを一定タイミングで遅延させたいのです.

現状だと,whileループもサブVIも遅延してしまいます.

添付したプログラムでは,ブロックダイアグラム上にそのまま遅延時間を

置いていますが,サブVIの中にあっても,サブVIのみを遅延させることができませんでした.

初心者なので,現状の問題の要点を押さているかどうかが,不安ですが

回答やご意見をお願いします.

0 件の賞賛
メッセージ5/16
2,774件の閲覧回数

すいません、まだ、「サブVIのみを遅延」というのがいまいち理解できていません。

DAQの入出力はできるだけ高速で回しながら、サブVIだけ例えば1秒間隔で回したい、という理解であってますか?

0 件の賞賛
メッセージ6/16
2,772件の閲覧回数

対応ありがとうございます.

 

おっしゃるとおりです.

 

サブVIのみが一定遅延時間間隔で止まっているようにしたいです.

0 件の賞賛
メッセージ7/16
2,770件の閲覧回数

なるほど、ありがとうございます。それなら、同一ループではサブVIとDAQアシスタントは回せないので、別ループに分ける必要があります。

DAQの出力がサブVIの出力値に依存していますが、その部分は、サブVIが止まっている間は前回の値を使用するというので問題ないですか?

0 件の賞賛
メッセージ8/16
2,767件の閲覧回数

対応ありがとうございます.

 

そうですね.サブVIを遅延させて,一定間隔でサブVI1からの出力値を

増加させていくプログラムにしたいのです.

0 件の賞賛
メッセージ9/16
2,764件の閲覧回数

それなら、サブVIを別ループに分けてそちらはDelay入れて望みのレートで回して、最新の値はローカル変数で渡すのが簡単だと思います。

0 件の賞賛
メッセージ10/16
2,762件の閲覧回数