NI製品ディスカッション

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

同期用パルス信号を用いたデータ入力制御

初めて投稿させていただきます

 

 

現在、USB-6009の同期パルス'図中トリガ入力'を受けてから(同中左上(掲載しているプログラムでは'計測開始'というボタン押すことで計測を開始するようにしています))データ入力を開始するようなプログラムを組んでいます。このプログラムではループの処理効率が悪く、プログラムの機能を追加していくとオーバーフローもしくは処理落ちを起こしてしまいます。最初はフラットシーケンスストラクチャもしくはスタックシーケンスストラクチャを用いて行おうと考えたのですが、それでは処理が重くなると思い、あえて使いませんでした。より効率の良いループの処理方法がありましたら、教えていただけないでしょうか。

 

初心者なもので、お見苦しいプログラムとなっていますが、よろしくお願いします。

すべてをダウンロード
0 件の賞賛
メッセージ1/3
4,790件の閲覧回数

まずDAQアシスタントを使わず、DAQmx関数を使うようになさってください。

DAQアシスタントがループの中にあると、デバイスへのアクセスを何回も行う可能性があるので、

処理の遅れが懸念されます。

 

次に配列の作成方法を再検討してください。

シフトレジスタに配列定数を渡して初期化していますが、

下記資料のように、置換関数等を使ってみてください。

http://digital.ni.com/public.nsf/allkb/6A14229B130B405686257845001D9B6A

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
メッセージ2/3
4,708件の閲覧回数

Tepigさん

 

ご回答の方ありがとうございます

DAQmx関数を使う方法はあまり理解していなかったので,良い勉強になりました.

その関数を使用して,1ループあたりで安定したデータ取得を行うことができました.

 

また,配列の作成方法についてもご指摘いただいた方法を用いることで,なんとかオーバーフローを押さえることができました.

 

本当にありがとうございました.

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