スニペットライブラリ のバックアップの現在との差分(No.2)

更新


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[公開メモ]]

#contents

* このページの使い方 [#i69dffa4]

ブロックダイアグラムは VI スニペットになっているので、
LabView へドラッグ&ドロップしてそのまま使えます。

→ [[プログラミング/LabView/VIスニペット]]

* 値が変化したことを検出する [#ud2fbc15]

今回の値が前回と異なるかどうかを返します。

複数の値を同時にチェックできます。

[[プログラミング/LabView/繰り返さないループで内部状態を保持]] のテクニックを使っています。

&attachref(detect_change.png);

ループの部分だけを選んでサブVI化してもいいかもしれません。

** 使用例 [#v43cffdd]

&attachref(detect_change-example.png);

* 値が変化したことを検出する(別解) [#icca8aa4]

&attachref(detect-change2.png);

フィードバックノードを使った方がシンプルかもしれない。

LabView のライブラリでは上記の反復しないループを使う書き方が多いけれど、
何かメリット・デメリットがあるのだろうか?

ループの枠で囲まれていない分、遅延が視覚的にわかりにくいというのはあるかも。

* ゲート動作 [#a2cfd746]

ゲートがオンの時だけ入力値に出力値が追従する。

&attachref(gating.png);

フィードバックを使うとすごくシンプルに書けるけれど・・・
読みやすいかといわれると疑問???


* 波形生成サンプル [#y4f95948]

パラメータを動的に変更可能な任意波形生成のサンプルです。

&ref(wave-generator-panel.png);

&attachref(wave-generator.png);

フォーミュラノードの中を書き換えれば任意の波形を生成できます。

位相と t0 の生成に [[プログラミング/LabView/繰り返さないループで内部状態を保持]] のテクニックを使っています。

周期的でない波形を作るには「商&余り関数」を外します。

- 水色の枠で囲った部分
- 位相を順次生成 のループ
- t0を順次生成 のループ

の3つをサブ VI 化した上で、
上で黄緑で囲った部分をサブ VI 化したのが以下の形です。
上で黄緑で囲った部分をサブ VI 化し、実用的にしたものが [[プログラミング/LabView/波形発振器]] にあります。

** サブ VI [#a3795eea]

&attachref(wavegen-sin.vi);

&ref(wavegen-sin.png);

&attachref(wavegen-sampling-info.vi);

&ref(wavegen-sampling-info.png);

&attachref(wavegen-phase-generator.vi);

&ref(wavegen-phase-generator.png);

&attachref(wavegen-t0-generator.vi);

&ref(wavegen-t0-generator.png);

** 使用例 [#w6dc1b34]

&attachref(wavegen-sin-example.png);

&ref(wavegen-sin-example-panel.png);

もちろん、正弦波だけでよければ標準の波形生成コンポーネントがあるので、
それを使えばいいのですが、もっと凝ったものを作りたいとき、
上記の wavegen-sin.vi を改造すればいろいろできる、という話です。



Counter: 2634 (from 2010/06/03), today: 2, yesterday: 0