From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

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

NImyRIOのセンサーとMD2ドライバ

解決済み
解決策を見る

添付したVIのように設計したところ、センサーの値の読み取りは出来たのですが、サーボモーター駆動のVIに組み込むと、やはり同様のエラーが出ます。

改善点を教えていただけると幸いです。

0 件の賞賛
メッセージ11/23
758件の閲覧回数

FPGAインタフェースの利用には、実機での確認が必要となります。現在手配しておりますので、ご返答まで少しお時間をいただけると助かります。また、確認できるスタッフに返答者が変わると思いますので予めご了承ください。

0 件の賞賛
メッセージ12/23
713件の閲覧回数

ご返信ありがとうございます。

よろしくお願いいたします。

0 件の賞賛
メッセージ13/23
692件の閲覧回数

日本ナショナルインスツルメンツ技術部の水野です。いつもお世話になっております。本件は私が引き続き対応させていただきますので、どうぞよろしくお願いいたします。

 

お伺いしておりますエラー「-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のデータもホストで取得できるようになります。

 

よろしくお願いいたします。

0 件の賞賛
メッセージ14/23
650件の閲覧回数

水野様

ご返信ありがとうございます。

 

添付したVIのように設計したところ、AIにセンサーの信号を入力し、ケースストラクチャによる制御を行おうとしたのですが、センサーの値を読み取る前にケースストラクチャのTrueに入力されてしまい、サーボモータの駆動ループに入ってしまいます。

また、プログラムを停止させようとすると、添付したキャプチャ画像のエラーコードが出ます。

 

改善策をお願いします。

すべてをダウンロード
0 件の賞賛
メッセージ15/23
635件の閲覧回数

[FPGAVIリファレンスを閉じる」を実行することにより、「AI]のFPGA VIの稼働を停止しております。ただし、ループの次の繰り返し処理で、「制御器を読み取る/書き込む」関数を呼びしていますが、「AI」のFPGA VIが開いてないため、エラーが発生しております。

 

修正する方法としては、ご希望されている動作によります。

AIをモータの駆動のトリガとしてご使用いただいていますでしょうか。

もしくは、AIから「TRUE]を読み取った後モータを駆動し、その後も常にAIから読み取り、AIから「FALSE]を読み取った際は、駆動を停止されたいのでしょうか。

 

よろしくお願いいたします。

0 件の賞賛
メッセージ16/23
604件の閲覧回数

ご返信ありがとうございます。

 

言葉足らずで申し訳ございません。

AIをトリガとして使用して、その後モータの駆動を続行したいと考えています。

0 件の賞賛
メッセージ17/23
596件の閲覧回数

AIをトリガとしてご使用される旨、承知いたしました。

 

では、外側のループの停止条件端子に「停止」制御器ではなく、

「小さい?」比較関数の出力を接続していただけますでしょうか。

そういたしますと、トリガが入った後は、外側のループは再度動くことはありません。

 

よろしくお願いいたします。

0 件の賞賛
メッセージ18/23
581件の閲覧回数

ご返信ありがとうございます。

 

エラーコードの件、無事エラーが出力されず、プログラムが終了できるようになりました。

 

別の問題として、センサーの値を読み取る前に、TRUEに入ってしまうという問題がありました。

これは、センサーの値を読み取るよりも早く、比較に入ってしまい、値が0であるため、TRUEが出力されてしまうと考えています。そのため、センサーの値の読み込みから出力の間に遅延を設けたいのですが、そのが分かりません。

ご教授頂けると幸いです。

0 件の賞賛
メッセージ19/23
570件の閲覧回数
解決策
トピック作成者rinenが受理

少し雑ですが、こちらのようなプログラムはいかがでしょうか。

「制御器を読み取る/書き込む」関数の前に、フラットシーケンスストラクチャを追加し、1秒の遅延を入れました。

 

よろしくお願いいたします。

メッセージ20/23
560件の閲覧回数