NCプログラムの勉強中。といってもいつもどおりテキトーにググって流し読みするだけだけど。
NCコントローラーは、思った以上にラフでも良さそうな感じ。現在は指定された位置(G0, G1等)に厳密に移動した後に次のコードを読み込んでいるが、実際はそこまで厳密である必要はなく、クローズドループでの多少の遅れは許容されるらしい。遅れが許容されず、しっかりカドを出す必要がある部分はG09で待たせればいい。
今のコントローラーのソフトはちょっと不満があるので、クローズドループで書き直したい。
ステッピングモーターの速度指令によるクローズドループは、前の衛星追尾ジンバルで使った方式なので、作ればそれなりに動くはず。
ググって出てきたPDFが、「フロッピーかパンチカードに保存します」みたいなことを書いてあって、しかし古い紙をスキャンした感じじゃなく、最初からPDFにテキストで出てきてる資料で、まさか今の時代にフロッピーとパンチカードしか選択肢がないなんて… とか思いながら読んでる。いつの資料だろう? 少なくともここ20年程度だと思うんだけど。
今の時代だと、マシニングセンタではLANだったりUSBメモリだったり、だろうか?
フロッピーだと、マグネットベースや大電力配線や大型モーターやいろんな磁力源がある工場で使うのは危ない気がする。まぁ、USBメモリやSDカードだって静電気とかで死ぬわけで、信頼性で言えばパンチカードとかが強そうだなぁ。情報密度が低い媒体は耐久性が高い。LANだと誤り訂正とかいろいろ付いてるので信頼性は高いだろうけど。
NCプログラムは、かなり機械固有なモノらしく、図面→カッターロケーション→(ポストプロセッサ)→NCプログラム、という流れで出てくるらしい。カッターロケーションはカッターのロケーションを指示しているだけなので、対象の形にのみ制限を受ける(ツールホルダの干渉とかを気にしなければ)。ポストプロセッサはただ後処理をするだけでなく、もっと重要なモノのようだ。雰囲気的に言えば、ガーバーデータがCLで、FlatCAMがポストプロセッサ、みたいな感じなんだろうか。
NCプログラムは、Nで行番号を指定できる。飛び飛びだったり前後入れ替わったり重複したりしても問題ないらしい(ツールチェンジ等で中断してNに戻る場合、重複ってどうなるんだ?)。
N番号は10進最大5桁までで、2^17くらいで表現できる。16bitだと足りない。もっとも、重複が許可されている以上、「10万行分のバッファがあれば足りる!」というわけではないだろうけど。
サブプログラムにジャンプすることを考えると、予めファイルの最初から最後まで読み込んで、サブプログラムの位置を把握した上で処理を開始する必要がありそう。ということは、ファイルはツーパスで、ファーストパスでサブプログラムの探索、セカンドパスで実際の切削、場合によってはファーストパスとセカンドパスの間にツール・ワーク無しで送りを遅くして回して確認、みたいな感じで、2-4回程度回す必要がある。
ファイルシステムを使って読み込むなら、ドライブが抜去された場合はそれまでのキャッシュを削除する、という挙動でいいけど、例えばPCから指定行を転送する、みたいな感じで処理をする場合は、それぞれのパスの間でプログラムが書き換えられていないことを保証する必要がある。
プログラム行数が少ないなら全部マイコンのメモリに読み込んでしまうのも手だけど、流石に無理だろうな。かといって制御ソフトの動作テストのたびにUSBメモリを使うんじゃ面倒でしょうがない。
しばらくはサブプログラムは使わないはずなので、まずはそのあたりは無視して進めようっと。後で痛い目見そうだけど。
クローズドループで処理する場合、例えばG0X0Y0;G1X10Y20F60;が渡された場合に、G1の処理は、X0Y0とX10Y20とG1開始時刻を記録しておいて、ある瞬間のフィードバックでは、現時刻-開始時刻と送り速度の積から現在いるべき場所が計算できるわけだけど、この場合、送り速度は一定であるという仮定がある。送り速度オーバーライドを使う場合、現在位置をどうやって決めるかが問題になりそう。
方法としては、前回位置を記録しておく方法と、時間管理をいじる方法がありそう。前者は誤差が積分される欠点がある。後者は、例えば1回のフィードバックループごとに10が加算されるカウンタを引数に取る、というような動作にしておき、送りオーバーライド10%なら1を加算、200%なら20を加算、みたいな感じにして、フィードバックループごとにオーバーライドから加算値を得ていけば、現在位置にオーバーライドを反映することができる。
NCプログラムはある程度機械固有とはいえ、やはりある程度は実際に使われているものに準拠する必要があるだろうから、何らかのリファレンスは欲しい。何らかのNC機械の取扱説明書とかがあればいいんだけど。
コレットとエンドミルが届くまでに、ある程度新しい制御アルゴリズムを実装しておきたいな(←おい、しばらく買い物はしないってどうなってるんだ)
銅張りは買ってないけど、これは秋月で買う予定。今すぐ必要なのは銅張り基板だけなので、送料が。。。とはいえ、位置表示用の7セグLEDとか、いろいろ一緒に買おうとすると予算が。。。
あと、MonotaROは今月中だと送料がちょっと安いはずなので、今月中にもう一回ポチりたいなぁ。
夢は広がるばかり、財布はしぼむばかり。
0 件のコメント:
コメントを投稿