06-20-2013 01:47 AM
お世話になっております。学生の松井と申します。
USB6251を用いて,パルスを生成をおこない,ステッピングモータを駆動し,規定パルス数になった時点でAI0よりアナログ電圧を取り込むプログラムの制作をおこなっています。
添付いたしましたプログラムを試作し,動作チェックをおこなったのですが,読み取りはできているようですが,while loopにおけるストップボタンを押してもプログラムが停止せず,実行を中断を押してもプログラムを停止できず,暴走している状況です。
アナログ入力読み取りタイミングとして,USB6251より出力されるパルスを外部に試作したカウンタ回路へ入力し,規定パルス数(例として1024パルス)になった時点でカウンタ出力がHighとなるため,これをトリガとして使用することで各1024パルスごとにAI入力をおこなうことを目的としています。
下記のような手順でアナログ入力をおこないたいと考えています。
ctr0より50,000パルス出力(ctr0端子をステッピングモータ,試作カウンタ回路に接続)
↓
ステッピングモータを連続駆動
↓
外部カウンタ回路により1,024パルスでカウンタ出力がhighとなる。外部カウンタ回路出力をPFI14に接続しAIトリガ開始トリガとする。
↓
AI入力
↓
2,048パルスでカウンタ出力がhighとなり,AI開始トリガ。
↓
AI入力
↓
3,072パルスでカウンタ出力がhighとなり,AI開始トリガ。
↓
AI入力
カウンタ回路は正常に動作していることを確認していますので,プログラムの問題であると考えています。
プログラムの改善点につきまして,アドバイスいただけますと幸いです。
よろしくお願いいたします。
06-23-2013 08:14 PM
松井 様
平素よりNI製品をご利用頂きまして誠に有難うございます。
日本ナショナルインスツルメンツ技術部 小野と申します。
プログラムを拝見しました。
プログラムを停止できない原因は恐らく
アナログ入力の読み取りタイムアウト値の設定が大きいためであると考えられます。
また、松井様がなさりたいことに近い動作をするサンプルプログラムがございましたので、
ぜひご参考になさっていただければと存じております。
外部カウンタの出力をPFI14に接続してくださいませ。
するとこのトリガがかかった瞬間にこのプログラム内において、カウンタがパルス列を作成します。
そのパルス列をタイムベースとしてアナログ入力を行うというプログラムでございます。
こちらのプログラムでは再トリガが可能になっておりますので、
今回のように複数回トリガをかけて入力を行うといった計測に対応できるものとなっております。
これに関する技術資料もございましたので、サンプルと一緒にご参考になさっていただければと存じております。
[NI-DAQmxで再トリガ可能なアナログ集録]
http://www.ni.com/white-paper/5382/ja/
宜しくお願い申し上げます。
日本ナショナルインスツルメンツ
技術部
小野 永輔
06-24-2013 10:51 PM
日本ナショナルインスツルメンツ
技術部
小野様
ご返信ありがとうございます。
参考にさせていただきます。
松井