この間500Wのスピンドルに付け替えた話をしたところですが、やっぱり、この500W中華スピンドル、いまいち感がぬぐえず、結局、元の1.5kW水冷スピンドルに戻してしまいました。水冷はやはり安心感が高く、水冷配管を新しいチューブに取り換えて、ちゃんと使ってやろうということにしました。
とはいえ、もとに戻すだけではちょっとね。ということで、1.5kWのスピンドルの電源のほうは三相ブラシレスモーター用のコントローラー(VFD)を使っていますので、これをlinuxcncから制御するようにしようと考えました。

ということで、ググると、こんなページでやり方書いてますので、ほぼそのまま実装。
とはいえ、全く同じではいけませんでしたので、変えたところを書いておきます。
PCからのRS485通信をVFDにするのには、今使っているPCには、RS232Cポート(/dev/ttyS0)がありますので、そちらにアマゾンとかで売っている安いRS232C-RS485変換器をつけてやりました。VFDへの配線はその辺に転がっているLANケーブルのツイストペア1対を適当に配線しました。
あとは基本的にVFDの設定を行ったうえで、linuxcncの設定でOKですが、本体のキーパッドから行うVFDの設定は、上記のブログに書かれている、
- PD001
2
(listen for run commands on the RS-485 bus) - PD002
2
(listen for frequency/speed commands on the RS-485 bus) - PD164
3
(baud rate – 38400 baud) - PD165
3
(communication data method to 8N1 RTU) に加えて、 - PD163 001 (unit number) が必要でした。
あとは、当然ながら、シリアルポートのアクセスはlinuxcncを実行しているユーザーから行えるようなパーミッションが必要。
そこさえ、設定してあれば拍子抜けするぐらい簡単にlinuxcncからスピンドルのON/OFF、回転方向、回転数の変更が行えました。

今のところ、なぜかスピンドルの回転数が11520 RPM以上にならないのですが、本体の設定のせいかも。また後で考えることにしてます。
補足)やっぱり、VFDの設定のせいでした。linuxcnc のhy_vfdモジュールのマニュアルを見ると、スピンドルの最高速度の設定は、VFDのPD144の設定から持って来る、となっており、こちらの設定がデフォルトの1440だと、50Hz の時のRPMということですので、出力周波数は400Hz までしか出しませんので、最大回転数(RPM)= 400/50 * 1440=11520 ということになります。そこで、この定数(PD144)を3000 に変えましたら、400/50*3000=24000 ということで、狙い通り、最高回転数24000 RPM で動かすことができました。