ひとつ前へ WWWルートへ mad@mail.wind.ne.jp 

GID-NCの設計

(C)数理設計研究所 2000/11/29 


目次


GID-NCの設計(ハード部)

送りねじ

 工場で使うNC装置にはボールネジという特殊な送りねじを使う。これは10万円/軸ぐらいの価格になり、とても低価格装置に使える物ではない。誤差と価格の低減を狙うためには通常のネジを使用することを前提として設計面で考慮することにした。
 手動の工作機械では角ネジと言う断面形が四角のネジを使う、プロの機械屋に相談するとこれを推薦された。しかしこれは耐えがたいほどのバックラッシュがあり、バネで2重ネジにするとしてもバックラッシュが避けられない。
 バックラッシュの原因には二つある
  1. オネジとメネジの隙間
  2. オネジとメネジの芯があっていない
 この2つの要因を排除するために隙間を片方向に押しつけるためにバネによる負荷を与えた2重ネジを採用した。台形ネジを使い自動調芯させることによってバックラッシュを減らそうと試みている。
 長いオネジを回転させて、テーブルに固定した固定メネジがある。この固定メネジに対して自由に動くような浮動メネジをバネで押してバックラッシュを減らしている。
 完全に調整された状態では5μm以下のバックラッシュとなるが、浮動ネジの浮動性が良くないと100μm程度までバックラッシュが出る。実験したかぎりでは問題が起きていない。

電源容量

 XYZの3軸に1Aづつ+スピンドルモータ用に4A、全体で24V7AのSWレギュレータによる単一電源

リミッタ

 テーブル移動限界を検出するSWは停止再現性が直接に絶対精度の再現性になるので、高価だが専用のリミットSWを採用した。
 押されるとオープンになる形式(NC=ノーマル・クローズ)。電線が切断しても動かなくなる、動きすぎて機構破壊に至ることを防止している。

構造材

 一般にアルミ押しだし材、断面が(30×60)の構造用フレーム材、板状の(10×50)ミリのアルミバーを使用し、低い重量と剛性を保持する。
 重量を負担するステンレスシャフト、送りねじなどは精密な平行度が必要になる。60cm両端で10μmぐらいにしたいので、同室温状態のNC装置によりアルミバー2枚に一気に加工している。
 ただし、組み立てにはかなりの注意が必要で、定盤があれば良いが、硬い平板の上で組み立てる手順を守れば問題は起きなかった。

GID-DIOとの結線

In 平常時にはGND間でON Out
25 0 リミッタZ+ 13 0 移動パルスZ+
24 1 リミッタZ- 12 1 移動パルスZ-
23 2 リミッタX+ 11 2 移動パルスX+
22 3 リミッタX- 10 3 移動パルスX-
21 4 リミッタY+ 9 4 移動パルスY+
20 5 リミッタY- 8 5 移動パルスY-
19 6 センサ予備  7 6 スピンドルON/OFF
18 7 緊急停止 6 7

GID-NCの設計(ソフト部)

以下はソフトウェア設計のメモである


スタートアップ手続き

 スタート時にGID-DIOとのやりとりが確実でないと機構部に無理がかかる。緊急停止ボタンの確認もかねて、制御プログラムが全部を初期化した後に緊急停止ボタンを一度押すことで動作確認をする。
 これがうまく確認されないときは適当なキーボードを叩くことによって終了させる。


GID-DIO 機構とステップモータの関係

GID-DIOを115kで 1パルスは2*最小時間単位
bit/s 115000 115000
byte/s 11500 11500
pulse/s 5750 5750
   
メカの規定(mm) ハーフステップ フルステップ
ネジmm/回転 1 1
プーリ比 2 2
StepMotor 400 200
mm/Step→ 0.00125 0.0025
   
最高速度 mm/s 7.1875 14.375
最高速度 mm/min 431.25 862.5
I/Oインターフェースと機械精度の考察:
 GID-DIOを115kボーで通信する入出力ユニットに使うと、最高速度は毎分431または862ミリとなる。
 ジョグ操作で毎分400mmではいささか遅いと思われるが、精密移動を目的とする用途(切削ではなく実験台)では1.25μmで3軸を動かせる装置としてもおもしろいだろう。
 そこでNC切削装置としては切削精度が5μを下回ることは不可能に近いので、分解能として2.5μmだけでもよいと思われるのだが、両方の切り替えを可能なようにしておく。
  • 3軸NCフライス 2.5μmの分解能
  • 3軸NC移動台 1.25μmの分解能
の両方を実現する。

経路制御の方法

速度規定型の移動:

 XYZの制御にはいくつかの方法があるが、切削装置を実現するには単に移動させるのではなく移動速度を経路全体に渡って規定しなくてはいけない。そのために移動指示は経路を被呼出関数として与え、ステップモータのパルス生成は呼び出された関数が指定通過経路長のXYZ位置を返答することによってパルス発行する。
手順:
  1. 経路を生成する被呼出関数を指定
  2. パルス生成部は0から始まる経路長を持って被呼出関数を呼び出すとXYZの値(内容で終了もわかる)を知る
  3. XYZが現位置より規定以上離れていればパルスを生成する。ただし異常に短いパルスを生成しないようにヒステリシスが必要かもしれない。
ソフトウェア
  • 速度規定型
  • 内部は基準点からのパルス位置
  • パルスはかならず1から0に戻る(計算された最高速度以下なら判定せずに1→0としてもよい)
  • ジッタの防止
  • 最終位置誤差の低減、整数計算?
  • Gコード、ジョグとの適応性
これらを考慮しなくてはいけないだろう。

 また、移動後の本当の最終位置と指示位置の誤差が累積しないように、内部では基準位置からのパルス数としてあつかう。
直線3D移動(絶対指定を基本)
  1. ベクトルでX,Y,Z値を指定
  2. データレート、速度より最小時間単位の移動量を計算、誤差を無くすためには分数形式がいいかな dL/dt?

基本構造:データ列の生成と加減速の2パス
  1. 速度規定でXYZに割り振られたデータ列の生成→A
  2. Aを頭からスキャンし加速度を規定内に納める
  3. Aで終わるのなら0データを後ろにつけ、終わらないのなら次のデータを付加して後ろから加速度を規定内に納めるバックスキャン
いずれも加速度を既定内に納めるようにデータに0挿入する

加減速の計算:

最少時間単位を δt
速度を v
ステップ間隔を最少時間単位の n 倍とする
ステップ移動量を δs

速度 v=δs/(n*δt) となる
パルス間隔 T=n*δt とすると
v=δs/T

加速度を α とすると
α=dv/dT=[δs/(n*δt)-δs/(n*k*δt)]/(n*δt)
k=ds/(δs-a*n^2*δt^2)

 直線的に加速すると言う事は、距離が2次関数的に変化すると言うことである。
 直線加速の生成パルス間隔は経過時間Tの逆数に比例する。

..end