2016-04-14 2 views
-1

(screenshot of vi)のLabVIEW:私は現在、継続的にサーミスタを用いた温度を監視VIを作り、上とに応じてUSBファンオフにDAQボードとトランジスタを使用していwhileループ

の値を更新します温度。温度が一定の値を超えたらファンをオンにしますが、最初の臨界温度よりもずっと低くなるまでオフにしないようにします。これを実装するには、whileループを使用することを考えて、ループ内で比較を実行して、温度が値を超えているかどうかを確認してください。しかし、デバッグでは、温度読み取りの値がwhileループに入ると、温度読み取り値の次の値を受け取ることができないことがわかりました。データ線がループに接続されていても、ループは比較のために値を更新することができないため、whileループは無限ループで停止します。私が連続的に数値を更新できる別の方法があるのでしょうか?あるいは、各反復後にwhileループの中で変数を言うべきですか?私はシフトレジスタを考えましたが、それは累積合計だけだと思います。

編集:私はviのスクリーンショットをアップロードしました。スクリーンショットには、ケース構造の積み重ねられたシーケンスがあります。もともと、これはwhileループでしたが、うまくいきませんでしたが、この方法を試しましたが、これもうまくいきませんでした。 whileループ内の温度を測定するのは唯一の方法ですか?

+2

*内側に飛びました*ループですが、あなたのコードを見ることなく伝えるのは難しいです。画像をアップロードしたり、VIのスニペットを上手にアップロードできますか? – nekomatic

+0

この質問にはあなたがやっていることを示すために写真なしで答えることはできません。 – srm

+0

私はスクリーンショットを添付しました。ありがとうございます – Skipher

答えて

2

私は連続的に数値を更新することができる別の方法がありますか? は、各繰り返しの後にwhileループ内で変数を言うべきですか?

シフトレジスタは正常に機能します。あるいは何か他のものを使用したい場合は、機能globalを使用できます。

1

WHILEループ内のイベントハンドラを使用して、変数(コントロール)に値の変更があるたびにトリガすることができます。イベントハンドラの内部に比較ステートメントを設定して、ファンの出力を設定/リセットすることができます。

//注:私はあなたのスクリーンショットを見てことができませんでしたので、私は盲目:)

あなたがそれをやるべき時にあなたはwhileループ外サーミスタ温度を読んでいるようですね
関連する問題