02-15-2006 10:52 PM
02-16-2006 01:24 AM
三角波の生成の関数とかを利用できると良さそうですが、例えば、Whileの中で添付のようにして2048~(+1)~4095~(-1)~0~(+1)~4095~・・・というのを生成するのは如何でしょうか? 初期値を2048として最初は増加し、0と4095に達したところで向きを反転させています。
02-19-2006 06:50 PM
いつも御世話になっております。
日本ナショナルインスツルメンツ技術部のサハと申します。
白石様より提供されたサンプルVIを見たところ、これでおそらくお客様がなさりたいことはできると思います。一つだけお勧めしたいことは、While Loop内に「次のミリ秒倍数まで待機」関数(LV8.0では「関数」→「プログラミング」→「タイミング」パレットにあります)を使用しVI実行中CPUへの負担を減少させること。これでも問題は解決されないようでございましたら、お客様がなさりたいことをもうちょっと具体的に教えて頂けますようお願い申し上げます。
今後とも宜しくお願い致します。
サハ |技術部 |日本ナショナルインスツルメンツ
02-19-2006 06:58 PM
02-19-2006 07:20 PM
サハ様: コメントありがとうございます。
確かに御指摘の通り、提示のviを単独で実行させるときは何らかのwaitが必要ですが、zak777様の用途を考えるに、sweep速度は所定の速度になるよう何らかの形でループ内で時間をコントロールしていると思いますので(そうしないとものすごく高速でsweepされるか、あるいはAO関連viの実行速度で決まる速さでsweepされる)、あくまで「所望の数値を発生させる部位」についての参考ダイヤグラムを提供させて頂きました・・・。(もちろん、そのviが単独で完全なものになる付加処置は設けておいたほうがよかったでしょうけれども・・・)
zak777様: また、提示のviについてですが、1点次のことに御留意下さい。「2048~(+1)~4095~(-1)~0~・・・」という動作に即して、4095と0に達すると直ちに反転するようにしました。この場合、0~4095のステップ数は4096あるにも関わらず、見かけの周期は4095×2=8190ステップになります(0~4094、4095~1、を繰り返す)。そのことにより、sweep速度が分割数に対して想定した周波数にならないな?と感じるかも知れませんので、それが気になる場合は0と4095は2回繰り返し、0~4095、4095~0、という風にして8192ステップにするか、あるいは周期が8190ステップであることを考慮して、ループのステップ時間をコントロールして下さいますようお願いします。