05-09-2024 08:30 PM
初めて投稿させていただきます。よろしくお願いいたします。
私は研究を行っている学生ですが,その際LabView FPGAを使用しています。
現在,研究を進めるにあたり
1つのチャンネルからsin波を出し続けながら,別のチャンネルから信号を出力させたいです。
sin波を出すことは「LabVIEW FPGAではじめる計測・制御」という本を見て,成功することができました。
しかしながら,sin波を出し続けながら,別のチャンネルで電圧を0Vから-10Vまで一定周期で少しずつ下げていくコマンドを追加したら,sin波が出なくなってしまいました。ただ,0Vから-10 Vまで下げていく方は出力されています。
sin波が出なくなってしまった原因や,どうすれば良いか分かる方いたらご教授お願いします。
添付してある図はFPGA側のコードとオシロスコープの画面です。
出したいsin波の周波数は1 KHz, 振幅は1.0Vです。
オシロスコープの方ですが,横に一直線になっているのが本来sin波を出したいチャンネルの波形を,
下り坂になっている方が0 Vから-10 Vまで電圧を下げるチャンネルの波形をそれぞれ見ています。
0 Vから-10 Vまで下げるチャンネルの方は,波形が正しく現れています。
LabView 2013を使用し,FPGAはUSB-7855Rを使用しています。
どうすればよいか分かる方いたら,ご教授をお願い致します。
05-13-2024 02:32 AM - 編集済み 05-13-2024 02:48 AM
はじめまして
パッと見た感じですが、
上にあるsin波を出すブロック全体(制御器、Sin関数、チャンネル出力etc)を
下にある0 Vから-10 Vまで下げるチャンネルがあるWhileループの中に入れると動くかと思います。
(Connecter1/AO0出力ノードがあるシーケンスストラクチャの中に入れてください。)
添付画像のコードですと、sin波を出す処理は
下にあるWhileループの処理が始まった時に1回しか処理されません。
05-13-2024 06:50 AM
教えて頂きありがとうございます。AO0があるシーケンスストラクチャの中に入れたらsin波も出力されました。
追加でお聞きしたいことがあります。今AO0があるシーケンス(画像中の一番外側のフラットシーケンス)の前後に,FPGAから信号を出力したり,FPGAに入ってくる信号を読みとったりするシーケンスを追加したいです。それで,シーケンスが切り替わる間も常にsin波を出し続け,シーケンスが1番最後までいったらsin波の出力を終える,というプログラムを作りたいのですが,それは可能でしょうか?
05-13-2024 06:02 PM - 編集済み 05-13-2024 07:01 PM
新規で信号出力/入力(アナログ/デジタル)を追加し動作させながら、
既存のsin波を常に出し続けるのであれば、
AO0があるシーケンスにどんどん新規追加していく形になるかと思います。
(先ほど修正したsin波形ブロックのように。並列処理ですね。)
シーケンスが1番最後までいったらsin波の出力を終える
⇒True定数がある右側のシーケンスの下側あたりに、
定数「0」をsin波出力ノードに入力するブロックを追加します。