Linux ようの EMC2 オリジナルマインドのモータドライバ QUATTRO-1 を使う

はじめに

Linux ようの CNC ソフトウェアの一つ EMC2 オリジナルマインドのモータドライバ QUATTRO-1 を使う方法についてまとめます。EMC はもちろんオープンソースの フリーソフトで、見た目も(オリジナルマインド推奨の) ArtSoft製 MACH3 より ずっとすっきりしていて良い ですね。

準備1(インストール)

EMC の起動CDを作るかインストールするかしてください。 研究室にはとりあえず linuxcnc.orgにあった Live-CD イメージ を焼いたもの(EMC入り Ubuntu)を置いてありますが、 起動に時間がかかるなど面倒なので、いずれちゃんと HD に インストールしましょう。

準備2(設定ファイルの作成)

ここがメインです。

  1. Stepconf Wazard を起動します。
  2. 新規に作るので Create a new configuration を選択。
  3. その後の Basic machine information は何もせずに次へ、でも 良いのかも知れませんが Base prriod Maximum Jitter の値を テスト結果を見て 25000 とかにしてもいいのかな。(この辺よく わかりません。)
  4. 次が重要。マニュアル見て設定します。QUATTRO-1 では緊急停止信号の 類が負論理なので invert にチェックを入れ、QUATTRO-1 + Cobra の場合、 y軸の向きが逆になるので、これもinvertにします。pin #17 は(QUATTRO-1の 工場出荷設定の場合)Charge Pumpを選択します。下のスクリーンショットは 設定例。
    parallel port setup example
  5. 次の、X, Y, Z 各 Axis Configuration では "Table travel"の値を cobra の大きさに合わせて適当に設定します。リミットスイッチがついて いるから多少大きめでもいいのかも。
  6. 以上で .ini ファイルと .hal ファイルが完成します。
  7. Charge Pump を使う場合、.ini と .hal をエディタで修正します。 Charge Pump はデフォルトでは 5 kHz なのですが、QUATTRO-1 は 12.5 kHz を要求するので、.ini ファイルの [EMCMOT] セクションの BASE_PERIOD の値を 100000 から 40000 にします。(どうもこれをナノ秒と したものが Charge Pump の周期の2倍になるっぽい。これに たどり着くまでが一番苦労した。)
    [EMCMOT]
    EMCMOT = motmod
    COMM_TIMEOUT = 1.0
    COMM_WAIT = 0.010
    BASE_PERIOD = 40000      ← 1/(40000e-9)/2 = 12500 なので、12.5 kHz になる。
    SERVO_PERIOD = 1000000
    
  8. 次に .hal ファイルの最初の方を次のように書き換えます。 この辺の情報は cnczone.com のフォーラムから 得ました。
    net estop-out charge-pump.enable iocontrol.0.user-enable-out
    ↑これの"charge-pump.enable" を削除して↓こうする。
    net estop-out iocontrol.0.user-enable-out
    
  9. 以上で設定ファイルは準備完了。これを使って EMC2 を起動してください。 参考までに上記設定済みのファイル一式を staff_only の中の cobra というディレクトリに置いておきます。

工作

EMC 起動して、上記のファイルを使って適当にやってください。

Valid XHTML 1.0 Transitional