はじめに
Linux ようの CNC ソフトウェアの一つ
EMC2
で
オリジナルマインドのモータドライバ
QUATTRO-1
を使う方法についてまとめます。EMC はもちろんオープンソースの
フリーソフトで、見た目も(オリジナルマインド推奨の)
ArtSoft製 MACH3 より
ずっとすっきりしていて良い
ですね。
準備1(インストール)
EMC の起動CDを作るかインストールするかしてください。
研究室にはとりあえず
linuxcnc.orgにあった
Live-CD イメージ
を焼いたもの(EMC入り Ubuntu)を置いてありますが、
起動に時間がかかるなど面倒なので、いずれちゃんと HD に
インストールしましょう。
準備2(設定ファイルの作成)
ここがメインです。
- Stepconf Wazard を起動します。
- 新規に作るので Create a new configuration を選択。
- その後の Basic machine information は何もせずに次へ、でも
良いのかも知れませんが Base prriod Maximum Jitter の値を
テスト結果を見て 25000 とかにしてもいいのかな。(この辺よく
わかりません。)
- 次が重要。マニュアル見て設定します。QUATTRO-1 では緊急停止信号の
類が負論理なので invert にチェックを入れ、QUATTRO-1 + Cobra の場合、
y軸の向きが逆になるので、これもinvertにします。pin #17 は(QUATTRO-1の
工場出荷設定の場合)Charge Pumpを選択します。下のスクリーンショットは
設定例。
-
次の、X, Y, Z 各 Axis Configuration では "Table travel"の値を
cobra の大きさに合わせて適当に設定します。リミットスイッチがついて
いるから多少大きめでもいいのかも。
-
以上で .ini ファイルと .hal ファイルが完成します。
-
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
-
次に .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
- 以上で設定ファイルは準備完了。これを使って EMC2 を起動してください。
参考までに上記設定済みのファイル一式を staff_only の中の cobra というディレクトリに置いておきます。
工作
EMC 起動して、上記のファイルを使って適当にやってください。