01-21-2014 04:53 AM
以下のようなことをLabVIEW Roboticsスタータキットを用いて行いたいのですが、
プログラム作成においていくつかエラーが発生してしまいました。
対処方法もしくはもっとよい方法があればご教授ください。
【最終的に行いたいこと】
LabVIEW Roboticsスタータキット2.0の各種制御器生データ(両車輪のエンコーダのパルス数、前回のループとのパルス数の差違等)を
リアルタイムで取得し、取得した値をシリアルピン(ASRL1?)へ出力する。
【実施方法】
RT上で使用できるStarterkit2.0用のエンコーダの制御器がなかったので、そこはFPGAの生のピンデータからもってくることとしました。
参考にしたVIはサンプルプログラムのStarter Kit 2.0 Custom FPGA Main.viで、
それのエンコーダ周りに表示器をつけたプログラムを作成、コンパイルし単独(FPGA)では動作することは確認済みです。
シリアル通信が可能な簡単なプログラム(UI上で打ったデータを送信)を作成し、ターゲット側のPCとシリアル通信ができることを確認し、
それに対して先ほどコンパイルしたencoder_motor_sample.viを「FPGA VIリファレンスを開く」に割り当てた。(状態①)
①の状態ではrunできる状況でした。
①に対して先ほどコンパイルしたencoder_motor_sample.viをサブVIとしてインスタンスするとエラーが発生しました。(状態②)
エラーリストを見ると、I/Oまわりの結線関係のエラーが発生していました。(状態0のFPGA上ではこのようなエラーはなかった)
【ききたいこと】
1.FPGAでコンパイルしたサブVIの使い方が間違っているのでしょうか?
2.対処方法はありますでしょうか?
以上皆様お忙しいところすいませんがよろしくお願いいたします。
解決済! 解決策の投稿を見る。
01-21-2014 06:21 PM
FPGA InterfaceのRead/Write Controlを使うことで値の取得は実現できました。
01-23-2014 04:06 AM
問題が解決したとのことですので、なによりです。
ちなみに、FPGAをターゲットとしたVI (プロジェクトマネージャーでFPGAターゲットを右クリックして作成したVI)は、
RTOSやWindowsをターゲットとしたVI として使えません。
ですので、FPGA VI のデータとRT のVI のデータのやり取りには、
既に使われているFPGA Interface Read/Write Control やDMA FIFO を使用します
01-26-2014 06:32 PM
ご返信ありがとうございます。
エラーが発生した理由がよくわかりました。
02-28-2014 10:24 AM
FPGAターゲットを右クリックして作成したVIもWindows/RT/Mac/Linuxなどで使うことができます。VI自体はプラットフォーム依存がないと理解しています。プラットフォーム依存があるのはVIの中に含まれる関数やノードです。今回の場合、問題があったのはI/Oノードですね。I/OノードはFPGAターゲットのみ対応で、かつそのFPGAターゲットにそのI/Oが定義されている必要があります。