NI製品ディスカッション

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

DAQデバイスからのデータ取得について その2

解決済み
解決策を見る

9/12に問い合わせをさせていただきましたが、DAQ(USB-6343)でリニアエンコーダデータの取り込みを行おうとしています。以前頂いたアドバイスでDAQアシスタントを使ったデータ取得は出来たのですが、DAQmxでのプログラムに苦戦しており、再度アドバイスをお願いできませんでしょうか。

添付のように、Dev2/ctr2を使って作ったクロックをDev2/PFI10を経由で入力して、そのクロックレートで位置データを収集しようとしています。ファイル格納の前にとりあえず読み取ったデータを表示して確認しようとしたのが添付なのですが、表示は固まったままで、データ収集がうまくいっていないように思うのですが、どう修正すればよいでしょうか。

なお、クロック出力はPFI14、A相入力はPFI0、B相入力はPFI2のデフォルトのままで使用しようとしてます。

お手数ですが、よろしくお願いします。

0 件の賞賛
メッセージ1/8
1,761件の閲覧回数

自己フォローです。

DAQmxチャンネルでA相、B相の入力端子を確認したところ、PFI8,PFI10に割り当てられていました。お騒がせして申し訳ございませんでした。

#クワドラチャエンコーダ測定の理論と実測のページの表1の対応表の通りになっていると思って最初に確認しませんでした。

 

ついでなので、A相、B相の入力端子の変更方法が分からなかったので教えて頂けないでしょうか。

よろしくお願いします。

 

0 件の賞賛
メッセージ2/8
1,711件の閲覧回数

自己解決されたようで何よりです。

 

A相、B相の入力端子の変更方法ですが、DAQmxチャンネルプロパティノードで設定可能です。

  1. DAQmxの関数パレットにあるDAQmxチャンネルプロパティノードを配置して、左上にあるタスク入力にタスクの配線をおこなうと、プロパティを選択可能になります。
  2. 「プロパティ」の文字を左クリックして、カウンタ入力 >> 位置 >> A入力 >> 端子を選択します。
  3. このプロパティノードの下部にマウスカーソルを合わせて、左クリックしながら下に移動すると、引き伸ばせますので、B入力も同様に端子設定ができるようにします。
  4. プロパティノードを右クリックして、書き込みに変更して、各入力に定数か制御器を作成することで端子を指定することができます。

 

このサンプルがヘルプメニュー >> サンプルを検索 >> 参照タブ >> ハードウェア入力と出力 >> DAQmx >> カウンタ入力 >> カウンタ - エンコーダを読み取るにあります。

0 件の賞賛
メッセージ3/8
1,694件の閲覧回数

端子を書き込みに変更できたのですね。端子設定できることを確認しました。どうもありがとうございました。

お手数ですが、もう1点教えてください。

添付のVIで波形を表示させていますが、例えばサンプル周波数を5kHzにすると1000個分のデータ表示を0.2秒毎に繰返すという動きになります。これをデータ収集の始めから終りまで繋げた形で波形表示させたいのですが、ループの外に置いてデータ収集の完了後に表示させるのではなく、リアルタイムに表示させることはできるでしょうか。

よろしくお願いします。

 

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

波形グラフをお使いで自動スケールはオフに設定されておりますので、X軸スケールの右端にある最大値をダブルクリックして、最終的に収集するサンプル数に設定してみてください。

0 件の賞賛
メッセージ5/8
1,675件の閲覧回数

X軸の最大値を20000に設定しても、1000個分の表示をループ回数分繰返すだけで変わらないです。

なお、自動スケールをONにした場合はX軸の最大値が1000となって、後の動きは変わらないです。

1チャンネル1サンプルであればX軸の設定値まで繋がって表示されますが、Nサンプルなのでこの動きになることは仕方ないとも思うのですが、繋げて表示する方法があればと思って質問させてもらっています。

0 件の賞賛
メッセージ6/8
1,672件の閲覧回数
解決策
トピック作成者mgs_ymが受理

情報ありがとうございます。おかげで状況を理解できました。

波形グラフに表示されるのはループごとにDAQmx読み取りVIから出力される1000個のデータだけなので、連結して表示したいということですね。

データを連結して表示する方法は以下のとおりです。

 

  1. Whileループの枠を右クリックして、シフトレジスタを追加を選択します。
  2. 関数パレットの配列にある配列連結追加関数を配置します。
  3. 配列連結追加関数を下に引き伸ばして入力を2つにします。
  4. 配列連結追加関数を右クリックして、入力を連結を選択します。
  5. 下図のように配線します。
  6. 左側のシフトレジスタでループの外側にある入力端子を右クリックして、作成>>定数を選択し、空の配列を作成して初期値とします。

 

ss3.png

 

 

0 件の賞賛
メッセージ7/8
1,666件の閲覧回数

連結させながら表示させればよかったのですね。

どうもありがとうございました。

0 件の賞賛
メッセージ8/8
1,664件の閲覧回数