NI製品ディスカッション

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

LabVIEWを用いて4機のモータを同期させる

解決済み
解決策を見る

現在研究室でLabVIEWを用いてグモータコントローラーを2台制御していて,その先に繋がっているモータ4機を同じ動きで同期させたいのですがタイミングがずれてしまいます.

 

駿河精機さんの方で問い合わせたところ軸1つ1つが独立しているので動作コマンド(GOコマンド)の前に全軸指定すれば改善されるのでは?との回答でした.

 

4つの軸をどのように全軸指定するのでしょうか?

 

LabVIEWを始めて間もないのでまだ理解が追いつかない状況です.

何かコメントいただけたら幸いです.

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

それはそもそも駿河精機さんに聞いた方が良いような気がしますが、型式が分からないので一般論で書きますと、駿河精機のステッピングコントローラには「3軸以上の制御を行う場合、2台または3台のコントローラ間を専用のリンクケーブルで接続することにより、最大6軸の駆動を行うことができる」タイプのものがあるようです。(すべての型式の取説を読んだわけではありません。駿河精機のページで最初に出てきた型式の取説を読んでみたら、そう書いてありました)

そのようなつなぎ方をすれば、PCからはマスターになる1台のコントローラがつながり、残りはそこからリンクケーブルでスレーブとしてつながるものと思われますので(多分ですが)、その時に「GOコマンドの前に全軸指定」して投げれば、全部協調して動くのではないでしょうか。

従いまして、お持ちのコントローラの取説の中に「リンク接続」のような記述があるか見て頂き、もしあれば、そうつなぐようにするのが解決と思われます。

現状は、PCから2台のコントローラに別々に(各々2軸だけまとめた)コマンドを投げるしかないですよね?

・・・ということを駿河精機に、確認してみて下さい。

0 件の賞賛
メッセージ2/4
2,887件の閲覧回数

回答ありがとうございます。

 

以前投稿した私の記述に付けたすと、

使用しているのはDS102のステッピングモーターコントローラです。

おっしゃる通り同じものを2機リンクケーブルで繋いで親機をUSBでパソコンに接続している状態です。

 

現在、GOのアイコンを直接操作すれば4軸を同期させることが可能なのですが、それだと駆動スピードや変位などのパラメータ設定が出来ません。

しかし、プログラム全体で動かしてみるとALLに設定しても動きません。

 

プログラムの画像を添付させていただきました。

1つの軸指定をしたプログラムが縦に4軸分、同じ動作を繰り返すようにブールを挟んで右側にも同じプログラムがあります。

 

パラメータは全軸同じなのでプログラム1つだけにしてALLで動かそうとしたのですが、作動しませんでした。

プログラム画像.png

 

 

 

 

 

 

 

0 件の賞賛
メッセージ3/4
2,845件の閲覧回数
解決策
トピック作成者つくやんが受理

コントロールするアイコン(サブvi)を準備しているのが駿河精機のようですので、サブviの呼び出し方については、(たまたまLabVIEWユーザでDS102複数台をリンク接続し全軸同時駆動する人がいる可能性もありますが)基本的には駿河精機に聞くこととは思います。

 

あいにく当方のverが古いため、駿河精機のHPからダウンロードできるサブvi群の中身を見ることができませんが、基本的には内部で本来の通信コマンド群に展開されて送信しているだけと思われます。(DS102の取説のP123以降の4.3.4通信コマンド一覧)

 

それで、取説に書いてある通信コマンドを読んでみますと(ここで例えばGOコマンドとはLabVIEWのGOアイコンのことではなく、GOアイコンのviが受け付けた挙句内部で送っているはずの ":GO_□" コマンドのこと)、全軸同時駆動をするには、GOコマンドの前に、AXIコマンドで各軸又は全軸(ALL)を指定してGOをかけると思われますが、つくやんさんの検証では、「各軸のパラメータを個別に設定して、全軸を対象に、GOをかけると、各軸のパラメータが個別の設定になってない」ということなのでしょうか。

 

通信コマンドの組み合わせでできることが、サブviのアイコンの組み合わせで表現しきれていないこともあります。必要ならば、LabVIEW上でも、サブviのアイコン読み出しでなく、通信コマンドをダイレクトに記述することにもなるかも知れません。

つくやんさんの検証では、サブviのアイコンを持ちいて行う場合、もしかしたら上記の「 」ではなく、「最初に軸をALLに設定してResourceを開いてしまうと、パラメータの設定も、駆動も、みんなALLになってしまう」ということですかね。

しかし、予想するに、通信コマンドで行うなら「各軸のパラメータを個別に設定して、全軸を対象にGOをかける」は普通にできそうな気がするので・・・多分ですが。

 

この「 」を、通信コマンドで可能か、可能ならLabVIEWのアイコンの記述ではどうなるか、を問い合わせることになると思います。前者は可能で後者が不可能という可能性もなくはないという意味で。後者が不可能でも、前者が可能なら、それをLabVIEWで書くことは基本的に可能なはずなので(アイコンの組み合わせより少々手間がかかりますが)。

 

(あと気になるのは、通信しているのは1台のコントローラと思いますが、軸ごとにいくつもVISAResourceを開いているのが、それでいいのか、という気はしますが、サブviのほうがそういう仕様なのですかね、、、verが古すぎてviが開けなかったのが残念)

0 件の賞賛
メッセージ4/4
2,843件の閲覧回数