NI製品ディスカッション

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

cDAQシャーシ1個でステップモーター2個動かしたい

解決済み
解決策を見る

cDAQ9174を1個とNI9472モジュール2個使用して

各NI9174からステップモーター1個にカウンタ出力して

順番にモーターを動かしたいのですが

2個同時に動いてしまします。

改善策を教えてもらえると助かります。

 

モータードライバにパルス出力することで駆動させる方式です。

 

0 件の賞賛
メッセージ1/6
396件の閲覧回数

ダイアグラムを見る限り、4000msのウェイトが要らないだけで、他は問題無いように見えます。

cDAQの手持ちが無いので確認できないのですが、DAQmxタスク完了確認VIが、タスクが完了していないのに完了したと返してくるのでしょうか?

0 件の賞賛
メッセージ2/6
366件の閲覧回数

コメントありがとうございます。

現象は

最初のシーケンス(モジュール3)が実行されると

モジュール4のモーターも動いてしまいます。

次のシーケンスの時もモーター2個同時に動いてしまします。

 

モジュール3の動作が完了した後モジュール4を動かしたいです。

 

調べてみたらNI9472よりNI9401が適しているような情報を得ています。

 

0 件の賞賛
メッセージ3/6
360件の閲覧回数
解決策
トピック作成者ame2が受理

実機が無いため、机上で考えたデバッグ手順を書きます。的外れかもしれませんが・・・

 

4000msのウェイトを削除してから、2つのWhileループ中にある「DAQmxタスク完了確認」VIの「タスク完了?」出力にプローブを当てて実行し、それぞれの時刻を見てください。それはパルスの出力時間離れていますか?

 

ほぼ同時刻ならばタスク完了が正しく検出できておらず、モジュール3の実行完了を待たずにモジュール4が実行されていることになります。ただその場合モジュール4のほうで「リソースが使用中」というエラーになりそうです。

 

適切な時間離れているならば、出力モジュールへの割り当ての問題かもしれません。
cDAQのカウンタはシャーシに搭載されていて、モジュールはその入出力端子です。カウンタが両方ctr0で、出力も両方PFI0に割り当てられているので(特に2回目以降の実行で)モジュール3の実行時にモジュール4からも信号が出ているかもしれません。その場合2倍の数のパルスが出ているかもしれません。

モジュール3と4でctrやPFIの番号を違えてみたら状況は変わりませんか?

メッセージ4/6
356件の閲覧回数

ご指摘ありがとうございます。

プローブでの確認とPFIの変更を試してみます。

0 件の賞賛
メッセージ5/6
352件の閲覧回数

モジュール3 ctr0 PFI0

モジュール4 ctr1 PFI4

異なる設定にしたら解決しました。

ご指摘ありがとうございました。

0 件の賞賛
メッセージ6/6
336件の閲覧回数