NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

FPGAを使用したアナログサイン波出力+別のチャンネルから信号を出したい

 初めて投稿させていただきます。よろしくお願いいたします。

私は研究を行っている学生ですが,その際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を使用しています。

 

どうすればよいか分かる方いたら,ご教授をお願い致します。

トラブル点.PNG

トラブル点.PNG

 

DSC_2773.JPG

0 件の賞賛
メッセージ1/4
475件の閲覧回数

 Naonosuke2024 さん

はじめまして

 

パッと見た感じですが、

上にあるsin波を出すブロック全体(制御器、Sin関数、チャンネル出力etc)を

下にある0 Vから-10 Vまで下げるチャンネルがあるWhileループの中に入れると動くかと思います。

(Connecter1/AO0出力ノードがあるシーケンスストラクチャの中に入れてください。)

 

添付画像のコードですと、sin波を出す処理は

下にあるWhileループの処理が始まった時に1回しか処理されません。

 

画像1.png

0 件の賞賛
メッセージ2/4
424件の閲覧回数

教えて頂きありがとうございます。AO0があるシーケンスストラクチャの中に入れたらsin波も出力されました。

 

追加でお聞きしたいことがあります。今AO0があるシーケンス(画像中の一番外側のフラットシーケンス)の前後に,FPGAから信号を出力したり,FPGAに入ってくる信号を読みとったりするシーケンスを追加したいです。それで,シーケンスが切り替わる間も常にsin波を出し続け,シーケンスが1番最後までいったらsin波の出力を終える,というプログラムを作りたいのですが,それは可能でしょうか?

 

0 件の賞賛
メッセージ3/4
413件の閲覧回数

新規で信号出力/入力(アナログ/デジタル)を追加し動作させながら、

既存のsin波を常に出し続けるのであれば、

AO0があるシーケンスにどんどん新規追加していく形になるかと思います。

(先ほど修正したsin波形ブロックのように。並列処理ですね。)

 

シーケンスが1番最後までいったらsin波の出力を終える

⇒True定数がある右側のシーケンスの下側あたりに、

 定数「0」をsin波出力ノードに入力するブロックを追加します。

 

 

 

スポイラ
(外側のWhileループは不要かと思いますが、動けばヨシ!ということで。。。)

 

0 件の賞賛
メッセージ4/4
407件の閲覧回数