09-02-2010 05:55 AM
前回積分値を引き算する
で上手くいかなかった件
ダイアグラムを見ていないので、推測になりますが
シフトレジスタの設置場所が間違っていないでしょうか?
シーケンス内のループではなくて、一番外のループに設置してください。
サイクル毎にしきい値を増量するの件
使用する反復端子が間違っています。
シーケンス内ループの反復端子ではなくて
一番外ループの反復端子を使用してください。
注意 反復端子は0からカウントするので、初回ループ時1となるように
1を足して使用してください。
09-02-2010 11:52 PM
xyzz様、返信ありがとうございました。
ご指摘ありがとうございました。
サイクル毎にしきい値を増量する方法で、問題が解決し、希望していた動作をすることができました。
後で気づいたのですが、最終的に累積した数値が残ると便利なので、こちらの方法を採用させていただきました。
目的としていたプログラムが完成できたと思います。
改めて、親切丁寧にサポートしていただき、ありがとうございました。
今後ともよろしくお願いいたします。
09-03-2010 01:45 AM
積分関数を使った事が無く、このような振る舞いをするとは知りませんでした。
こちらこそ勉強になりました。
ありがとうございました。
09-13-2010 09:55 AM
話が終息しているところ申し訳ありませんが、途中でNIの方が「デザインパターン」と言い出しているにも関わらずその後まったく触れられていないのが気になりました。
ディスカッションフォーラムではめったにデザインパターンにお目にかからないので、ぜひともサンプルが欲しいと思った次第です。
このスレッドの処理内容でしたらステートマシンで決まりでしょうか?他にお勧めのデザインパターンはないでしょうか?デザインパターン選定の基準も含めて意見が欲しいところです。
よろしくお願いします。
10-05-2010 02:35 AM
Yoshihito 様、 xyzz 様、 高須 様
お世話になっております。
ご返信が遅れまして大変申し訳ございません。 Yoshihito 様に添付いただきました状態遷移と、xyzz 様の乱数を使用した部分を参考にいたしまして、ステートマシンを使用した VI を作成いたしました。 LabVIEW 8.2 用に保存した VI 、およびプロジェクトを添付いたします。プロジェクト内の Main.vi という VI をハイライト実行して実行の様子をブロックダイアグラム上で見てみてください。
ステートマシンは、状態遷移図の一つ一つの状態をケースストラクチャのケースとして用意しておき、While ループが一度回る度にケースストラクチャ内に用意されているケースの一つを実行し、シフトレジスタで次回の While ループで実行する状態を受け渡します。より詳しい解説が以下のページにございますが、現在英語版のみのご案内となっております。
Application Design Patterns: State Machines
もし、私の添付いたしました VI でご不明点等がございましたらまたお気軽にご連絡ください。よろしくお願いいたします。