11-10-2009 10:41 PM
現在、サーボ加振器への入力信号として1チャンネルのアナログ出力をさせようとしています。
その内容は振幅と周波数を指定して生成した正弦波を有限サンプルにて1サイクルのみ出力させるというものです。
この1サイクル出力を間欠出力の要領である一定の間隔で繰り返し出力させたいと考えています。
さらに、この間欠サイクルの周波数は、実行画面上でユーザーがリアルタイムで変更できるようにしたいです。
DAQmxトリガを使ってスタートトリガを設定すれば可能のような気はしますが、その場合、間欠サイクルの周波数を
画面上でリアルタイムに変更できなさそうなので断念しました。
そこで、Whileループ内でシーケンスストラクチャを設け、出力を実行する前に所定の時間待機するようにしました。(添付参照)
一見これで希望の動作をするように思えましたが、どうやら出力処理にかかる時間に影響されているようで
イメージどおりの出力間隔となってくれません。(ソフトウェアタイミングのため?)
私のイメージでは間欠サイクルの周波数でトリガを発生させている信号があって、このトリガに従って出力を開始するというものです。
この動作を実現すべくその他良い方法があればご教授いただきたく、よろしくお願いいたします。
――――開発環境――――
OS:XP
LabVIEW:Ver8.2
モジュール:PCI 6259
アクセサリ:BNC-2110
――――――――――――
※添付したviには出力波形確認用として収録タスクも付加しています。動作確認の際はAO 0とAI 0を接続してください。
11-12-2009 06:47 AM
日本ナショナルインスツルメンツ技術部の神谷です。
添付のVIと出力イメージ図を拝見させて頂きました。
パルスが入力されるタイミングで正弦波を出力するには再トリガ可能なAOを行うと良いと思われます。
以下の情報(カウンタを使用した再トリガ可能なAO)とサンプルVIを参考にしてみて頂けますでしょうか。
NI-DAQmx: Retriggerable Analog Output
http://zone.ni.com/devzone/cda/epd/p/id/4787
また開始トリガ用のパルスをもう一つのカウンタを使用して生成必要がございますが、LabVIEW付属のパルス生成サンプルをご確認ください。
11-07-2010 11:48 PM
横から失礼します.
私もこれとまったく同じ事がしたくてここのプログラムを基にプログラムを
組んでみたのですがまったく信号が出力されません.
まずいところを指摘していただけないでしょうか?
プログラムとしてはエンコーダのZ相が来るたびに
信号を有限出力で一周期分だすというものです.
回答いただければ幸いです.よろしくお願いします.