« フライス盤到着 | メイン | EZ-CNC 2 »

2006年06月17日

EZ-CNC(仮称)

MilingMachineInTheBox

当初は RoboShell を用いてフライス盤の CNC 化に挑戦しようと考えていたが、RoboShellの通信はリモコンなどの対人からの制御を想定したものであり、大量のデータを扱うような今回のような制御には不向きだった。(もちろん、万能ロボット開発環境を目指しているので、拡張していく予定ではあるが…。)
鬼吸い以外にまともなアプリケーションの無かった FX2 だが、今回の EZ-CNC で2つ目の実用的なアプリケーションを開発することが出来てきた。この EZ-CNC は開発結果を皆さんとシェアできると思うし、作りこんでいけばかなり実用的なアプリになりそうだ。
鬼吸いはインターネットに発表された成果物を自分の商品として売り出してしまう心無い人間により、詳細の公表を行うことが出来なかった。回路図とかソース(バイナリでも解析して)とか公表したら、2−3日後に「業界、最速の吸い上げシステムです。」とか言いながら、発表するんだろうなと思う。

RoboShell でうまくいかなかったのが、ステッピングモータのステップ数の大量取り込みの部分。こちらからの命令は問題なく処理できるけど、ステップ数の送りがうまくいかない。オープンループで動作しているステッピングモータにとって現在(まで)のパルス数の認識は非常に重要でこれがないときっちりした制御が出来なくなる。

FX2の使用だが、当初は 手持ちの AN-2131SC(EZ-USB) でやろうと考えていた。しかし、自作のフレームワークでのタイマ割込みがうまく動作しなかった。そこで、こちらの方のフレームワークを利用させてもらおうとしたが、RENUM でこけているようでうまく動作しなかった。ステッピングモータを3軸、回すだけならこの程度のコントローラで十分だと思う。そう、FX2の 56ピンタイプの石にはタイマが付いていないんだよね。1chでも良いから付けて欲しい。今回のような用途にはぴったりなのに…。多少、オーバースペックかなと思いながらも FX2 を使うことにした。以前に公表したフレームワークを用いてファームウェアは作成した。あまり深く考えずに必要と思われる機能を足しこんでいく。これからマイクロステッパなどに対応していけば、ピン数もファームウェアの格納サイズも適正な大きさになっていくと思う。同時にPC側のアプリも考えなければいけないが、これは先に開発した RoboShell-Stepper をそのまま通信部分をUSBに置き換えて使うことにした。

RoboShellStepper

トラブル
XDATA
最初のトラブルは Stepper の制御部を入れると、RENUMがうまくいかない。基本部分だけだともちろんうまくいく。
対策
フレームワークの XDATA のスタート開始番地を 0x1300 にした。CODEとDATAがかぶっていたようだ。問題なく動作する。

パターンがうまく出力しない
結局、パターンをうまく作りこめていなかった。1−2相励磁のパターンを再チェックしたところ動作するようになった。

で、これらの問題をクリアしてステッピングモータは回転を始めた。ジョイスティックからの入力に対して、確実に反応する。かなり、いい感じだ。ジョイスティックを大きく倒せば、ステッピングの発振周波数を高くなり高回転になる。メカ的に追従できなくて回転できなくなる脱調はよく知られた現象だが、周波数を順序良く上げて行くと京急(シーメンス)の車両のインバータ音のような可聴領域での音階が発生する。(WEBマスタのステッピングモータだけかもしれない。)聞いていて、非常に心地よい。

表示関係が未実装なので、この辺りを足しこんで行こうと思う。

投稿者 skykiz : 2006年06月17日 03:17

トラックバック

このエントリーのトラックバックURL:
http://www.teamknox.com/mt/mt-tb.cgi/326

コメント

初めましてこんにちは
Deskcncをやっています。
Gコードのこととかも載せました。

投稿者 ノンノ : 2006年06月17日 20:47

はじめまして、こんにちは。アクセス解析をしていてこのページを知りました、参照先のfenrirです。お役に立てなかったようで、大変申し訳ありません。私のほうもプログラムを少し替えてしまうと、RENUMに失敗するという状況があり、そのようなときは適当にnop等の意味のないコードを足したりすることによって動くようになったりしたことがあります。しかし何が悪いのか、根本的原因は掴めていません。

それにしてもCNCフライス盤、とても楽しそうですね!!

投稿者 fenrir : 2006年06月17日 21:31

ノンノさん

 コメントありがとうございます。
 ブログとWEBを拝見しました。
 LINUXでバリバリやっている方、いるんですね。
 こっちはCNCはおろか、フライス盤すら扱いかねているんです。;_;
 なんとか、自作CNCを極めてこれらのリソースも
 取り扱えるようになりたいです。
 これからもよろしくお願いいたします。

fenrir さん
 はじめまして。
 本当は動作解析までもって行きたかったのですが、
 生来のヘタレなもので、何も出来ずに撤退しました。
 SDCC は WEB では 32bit(long) を取り扱えるような
 ことを書いておきながら、こちらでは出来ませんでした。
 仕方が無いので適当なカウンターを設置することに
 しました。
 USB2.0のチップと言っても所詮は8ビットであることを
 痛感しました。
 これからもよろしくお願いいたします。

投稿者 skykiz : 2006年06月18日 19:10

Gコードインタープリターをラダー(PLC)シーケンサーで書けますか?
もし出来ればよい方法があります。

投稿者 ノンノ : 2006年06月23日 14:44

ノンノさん、こんにちは

>Gコードインタープリターをラダー(PLC)シーケンサーで書けますか?
>もし出来ればよい方法があります。
これはPLCでGコードのパーサを作ると言う意味ですか?
今はFLEXと言うUNIXのツールでやっています。
けっこう、面倒くさいです。

投稿者 skykiz : 2006年06月24日 20:33

http://web.parknet.co.jp/renri/AVR/AVR01.HTM
に有ります。
REN−AVR01を 「I/O」ユニットに使えないかと思ったりします。
基板のトランジスタアレーは
TD62084AF
ダーリントンですが
ハイスピードにするには
TD62593AF
に積み替える必要があります。

投稿者 ノンノ : 2006年06月25日 19:17

ノンノさん

 URLありがとうございました。
 早速見てみました。PLCではGコードのパーサは
 難しいと思いますので、AVRのコードで直接
 実行すればよいと思います。

投稿者 skykiz : 2006年06月25日 19:41

今持っている基板には「dsPIC30F6010」が付いています。
http://www.gec-tokyo.co.jp/gnews/N22PDF/GN22_MTI.pdf

これですと内部に「DSP」を持っていて6軸のモーターコントロールが楽に出き、LAN、USB、UART/MI2C/SPI?も付いていて、フリーソフトや各種ライブラリーも有るそうですが、
基板を作らなければ成らず、(チップは4000円くらい)

「REN−AVR01」ですと基板があるのですが、プログラムは大変そうです。

投稿者 ノンノ : 2006年06月25日 22:23

どうもです。

ステッピングモータの場合は、ただパルスを受けるだけなので難しい制御はいらないですね。
それよりもタイマの分解能がキモになると思います。

REN-AVR01 の場合はおっしゃるとおりプログラムがキモになります。
汎用性を高めるなら、自身でGコードのパーサを持つ必要がありますね。
それをシリアルで受けて、ステッピングモータの制御になります。

EZ-CNC の場合はパース作業はPCにやらせることにより、
マイコンの負担を小さくしています。
また、USBを使って独自プロトコルを構築してしまったので、市販のソフトは全滅になりました。

投稿者 skykiz : 2006年06月25日 23:18

EMC2というLinuxのフリーソフトがあって、次のように載っていました。

* EMC(Enhanced Machine Control)はフライス盤などの工作機のコンピュータ制御のソフトウェア・システムです。

* EMCはオープンソースコードがあるフリーソフトウェアです。

* それは提供されます:
o ユーザーインタフェース、(実際に数個が連結する、選んだ、)
o 「G-コード」(RS-274工作機プログラミング言語)のためのインタプリタ
o そして、工作機の上にモータードライブを制御する実際の電子インタフェースを操作します。
o それはマシンのエレクトロニクスを実際に実行する機能が、必要があった「コンピュータ」に提供します。

それが図面(CAD--コンピュータAided Design)を提供しないか、または図面(CAM--コンピュータAutomated Manufacturing)からのG-コード生成は機能します。

* それは、最大6本の軸を制御することができて、さまざまなインタフェースをサポートします。
* 運動制御は、フィードバックループがコンピュータのEMCソフトウェアによって閉じられている状態で本当のサーボ(通常アナログ)を作動させるか、または「ステップサーボ」かステッパモーターで開いたループを作動させることができます。
* 動き計画はカッター径差補償、工具長オフセット、および等速コントロールを含んでいます。
* 運動学で非デカルト動きシステムのサポートを提供します。 これは、動きを提供するためにロータリー・ジョイントがある六脚類(スチュワートプラットホームと同様の概念)とシステムを含んでいます。
* リアルタイムの拡張子を使用するリナックスにおけるEMC走行。 サポートは現在、リアルタイムの拡大を伴うリナックスカーネルがRT-リナックスで適用したか、またはRTAIがパッチするバージョン2.4と2.6のために存在します。

投稿者 ノンノ : 2006年06月29日 13:52

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)