07-21-2019 11:43 PM - 編集済み 07-22-2019 12:05 AM
添付したVIのように設計したところ、センサーの値の読み取りは出来たのですが、サーボモーター駆動のVIに組み込むと、やはり同様のエラーが出ます。
改善点を教えていただけると幸いです。
07-22-2019 03:59 AM
FPGAインタフェースの利用には、実機での確認が必要となります。現在手配しておりますので、ご返答まで少しお時間をいただけると助かります。また、確認できるスタッフに返答者が変わると思いますので予めご了承ください。
07-22-2019 05:27 AM
ご返信ありがとうございます。
よろしくお願いいたします。
07-24-2019 10:21 PM
日本ナショナルインスツルメンツ技術部の水野です。いつもお世話になっております。本件は私が引き続き対応させていただきますので、どうぞよろしくお願いいたします。
お伺いしておりますエラー「-61202」は、ホストVIの複数の箇所からFPGAのVIを呼び出す際に発生するエラーでございます。「motatest ver3.vi」を確認いたしましたところ、「AI」の関数を含んだFPGAVIを呼び出していますが、実は「PWM Open.vi」の中にも、FPGAVIを呼び出す関数が含まれています。従いまして、「PWM Open.vi」がすでにFPGAを使用している為、「AI」のFPGA VIが実行できていない状況です。同時実行させるためには、「PWM」と「AI]を同時に実行せず、「AI]を入力して、「True」が入ったら、AIのリファレンスを閉じて、「PWM」Openを入力す必要がございます。
「PWM」と「AI」を同時に実行する際は、「PWM Open.vi」が呼び出すFPGAのVIに、AIの処理を追加することにより、AIのデータもホストで取得できるようになります。
よろしくお願いいたします。
07-25-2019 06:34 AM
水野様
ご返信ありがとうございます。
添付したVIのように設計したところ、AIにセンサーの信号を入力し、ケースストラクチャによる制御を行おうとしたのですが、センサーの値を読み取る前にケースストラクチャのTrueに入力されてしまい、サーボモータの駆動ループに入ってしまいます。
また、プログラムを停止させようとすると、添付したキャプチャ画像のエラーコードが出ます。
改善策をお願いします。
07-26-2019 12:27 AM
[FPGAVIリファレンスを閉じる」を実行することにより、「AI]のFPGA VIの稼働を停止しております。ただし、ループの次の繰り返し処理で、「制御器を読み取る/書き込む」関数を呼びしていますが、「AI」のFPGA VIが開いてないため、エラーが発生しております。
修正する方法としては、ご希望されている動作によります。
AIをモータの駆動のトリガとしてご使用いただいていますでしょうか。
もしくは、AIから「TRUE]を読み取った後モータを駆動し、その後も常にAIから読み取り、AIから「FALSE]を読み取った際は、駆動を停止されたいのでしょうか。
よろしくお願いいたします。
07-26-2019 12:51 AM
ご返信ありがとうございます。
言葉足らずで申し訳ございません。
AIをトリガとして使用して、その後モータの駆動を続行したいと考えています。
07-26-2019 01:58 AM
AIをトリガとしてご使用される旨、承知いたしました。
では、外側のループの停止条件端子に「停止」制御器ではなく、
「小さい?」比較関数の出力を接続していただけますでしょうか。
そういたしますと、トリガが入った後は、外側のループは再度動くことはありません。
よろしくお願いいたします。
07-26-2019 02:27 AM
ご返信ありがとうございます。
エラーコードの件、無事エラーが出力されず、プログラムが終了できるようになりました。
別の問題として、センサーの値を読み取る前に、TRUEに入ってしまうという問題がありました。
これは、センサーの値を読み取るよりも早く、比較に入ってしまい、値が0であるため、TRUEが出力されてしまうと考えています。そのため、センサーの値の読み込みから出力の間に遅延を設けたいのですが、そのが分かりません。
ご教授頂けると幸いです。
07-26-2019 03:00 AM
少し雑ですが、こちらのようなプログラムはいかがでしょうか。
「制御器を読み取る/書き込む」関数の前に、フラットシーケンスストラクチャを追加し、1秒の遅延を入れました。
よろしくお願いいたします。