ちょっとモーションコントローラー。

LinuxCNCのパラレルポートをEPPモードに設定してパルスジェネレータとして使うFPGAボード、Pluto-PをPlutoStepとして設定し、使ってみてるんですが、オープンソース、とゆうことでPlutoServo、PlutoStepのVerilogHDLのソースコードにちょっと興味を持ったのでしっかり解釈できるわけではありませんが、短いコードなのでボツボツと読んでます。

どうも、EPP接続で8ビットで通信している際、もちろんポートからの入力も出力もありますが、FPGA内にてStepパルスとDIR信号から、現在のの位置数値を記録し、ポジションとして、PCへフィードバックしているご様子。。

もちろん、PlutoServoの方はPWM信号にてモーターを駆動、モーター軸に直結したロータリーエンコーダーの信号をPCへ入力し、位置フィードバックを行っているのでそれとそんなに変わらないような事をしているようです。

の、で、リアルタイムの応答性を重視しているLinuxCNCはUSB接続のモーションコントローラーを正式にサポートしてないのかな、と思いました。

同じCNCコントローラーソフトウエアのMach3の内部のデータとかは解りませんが、USB接続であるのでこちらも、正式にフィードバック制御をサポートしてません。
フィードバック制御はしてませんが、使いやすさとゆう面ではこちらも捨てがたいです。


他USB接続のCNCコントローラーとかは、多分、ですが、信号をパケット単位に区切って送っているのでしょうか。
よく解りません^^;


Reprap系のモーションコントローラーや、Grbl、TinyG、Smoothieなどなど最近安価に手に入るMCUを利用したCNCコントローラーは、対人間のフロントエンドとなるPCの端末ソフトウエアから、USB接続のUART(シリアル通信)にて、直接Gコードを受け取り、MCU上でモーションに変換、パルスを出力しています。

3DプリンタのReprapやSmoothieなどは、SDカード上にあるGコードを読み込み、PCレスでの駆動が可能な物もあります。

あんな小さなMCUに機能が完結しているのは驚きですね。

ただ、PCでGコードからモーションコマンドへ変換しているものより内部数値の解像度が低かったりするので、キッチリとした数値でのコントロールとなると、コントローラー側からの補正が効きにくいと思われるので、加工機の送りの正確度等をキッチリとしたほうが良いかも。。

MCU系のモーションコントローラーはオープンソースとなっているので、自分のマシンに都合の良い用に書き換えたり、また、モーションの内容を理解するのにとても良いと思います。
私も読んで学んでます^^;




どれが正しくて、どれがダメだ、とかそうゆう事ではなくいろいろあって良いと思います。

自分の用途にあったモーションコントローラを使えば良いわけですから。。





スポンサーサイト

テーマ : 自作・改造
ジャンル : コンピュータ

コメントの投稿

非公開コメント

ライセンス
アクセスカウンター
プロフィール

あきらひとし。

Author:あきらひとし。
木工用CNCルーターフレームと、ステッピングモータードライバを作ってみました。
たぶん記事は一般的な人には殆ど必要のない事ばかりなの、かも。

モーターは回るだけでも楽しい。制御(速度、トルク、位置)できるともっと楽しい!

メールフォーム

名前:
メール:
件名:
本文:

リンク
最新記事
カテゴリ
スポンサードリンク
スポンサードリンク 
スポンサードリンク
オンラインカウンター
現在の閲覧者数:
検索フォーム
RSSリンクの表示
最新トラックバック
最新コメント
月別アーカイブ