機械原点をLS以外で設定する

いつもありがとうございます。
また質問させていただきます。
以前ここで加工位置の件でお伺いいたしました。

現在の加工原点位置にXYZプローブを設置しにくいため
機械原点位置をLSではなく他のものでLS交換などしても
位置が変わらないようにできないかと思うのですが
可能なのでしょうか?

こんにちは

ハード的解決ではアルミフレーム上にリミットスイッチを置くのではなく、軸端のリードスクリューの固定座にリミットスイッチをおいて位置を固定してしまうのとかはどうでしょうか。
ただし追加で固定治具が必要になりそうです。また、リミットスイッチを押す部分も作らないといけないかもしれません。
(これは過去に本BBSで事例を見た気がするのですが、思い出せないので見つかったら共有します。)

ソフト的な解決では、CNCxPROではできませんが、Duet3基板にはリミットスイッチを使わずにホーミングをするセンサーレスホーミングの機能があります。
これは軸の端にぶつけたときにモーターが脱調するので、その脱調を検出してホーミングのスイッチとして使おうという仕組みです。(厳密にはストール検出、軸が動かない状態を検出のようです)

私はまだちゃんと試せていないのですが、このBBSだとE-moc X5がセンサーレスホーミングを使っているようです。

ただ聞いた話だとセンサーレスホーミングのパラメータ設定は結構シビアで調整がやや難しいとのこと、検出設定によってはリミットスイッチより検出精度が劣ることがあるとのことです。
公式説明:

(参考)E-moc X5のホーミング設定ファイル

「いいね!」 1

Sgz様 はじめまして

センサレスホーミングについて一応補足させていただきます.

E-moc X5で使用しているDuet3のセンサレスホーミング(失速検知)関連のパラメーターは以下の通りです.

  • M915 失速検知のパラメータ設定
  • M574 エンドストップの設定
  • M913 モータの電流設定(通常設定と比較したパーセント表示)
  • G1 直線移動(衝突時の速度調整)

以下は最新のE-moc X5の設定ファイルから一部抜粋した使用例です.

  • config.g
M584 X0.0 Y0.1:0.2 Z0.3 A0.4 C0.5                        ; set drive mapping
M350 X8 Y8 Z8 A8 C8 I1                                   ; configure microstepping with interpolation
M92 X200.00 Y200.00 Z200.00 A223.4567  C222.222222222222 ; set steps per mm[A-axis value was tuned, theorical value is 222.22222]
M566 X600.00 Y600.00 Z600.00 A600.00 C600.00                 ; set maximum instantaneous speed changes (mm/min)
M203 X5000.00 Y5000.00 Z5000.00 A1800.00 C2500.00        ; set maximum speeds (mm/min)
M201 X400.00 Y400.00 Z400.00 A100.00 C400.00             ; set accelerations (mm/s^2)
M906 X2400 Y2400 Z2400 A2900 C2400 I100                  ; set motor currents (mA)

M915 P0.0 S3 F0 R0                                       ; set motor stall detection for X-axis
M915 P0.1:0.2 S3 F0 H240 R0                              ; set motor stall detection for Y-axis
M915 P0.3 S3 F0 R0                                       ; set motor stall detection for Z-axis

; Endstops

M574 X1 S3                                               ; configure single motor load detection for low end on X
M574 Y1 S4                                               ; configure multiple motor load detection for low end on Y
M574 Z1 S3                                               ; configure single motor load detection for low end on Z
  • homeall.g
;Z-axis
M400              ; wait for current moves to finish
M913 Z45          ; set motor percentage of normal current[%]
M400              ; wait for current moves to finish
G1 H1 Z500. F2000 ; move to Z axis endstop and stop there (first pass)
M400              ; wait for current moves to finish
M913 Z100         ; set motor percentage of normal current[%]
M400              ; wait for current moves to finish
G1 H2 Z-5. F6000  ; go back a few mm
M400              ; wait for current moves to finish
M913 Z45          ; set motor percentage of normal current[%]
M400              ; wait for current moves to finish
G1 H1 Z200.F2000  ; move to Z axis endstop once more (second pass)
M400              ; wait for current moves to finish
M913 Z100         ; set motor percentage of normal current[%]

G90        	      ; absolute positioning

G92 Z0            ; set Z position to Z0

これらの設定はnyaruさんが添付しているDuet3D社の公式ドキュメントを参考にしています.

また,センサレスホーミングの繰り返し検出精度が未検証なのと,衝撃によりマシンフレームがズレた場合にホーミング位置もずれてしまうため,E-moc X5ではタッチプローブによるキャリブレーションを推奨しています.
個人的には最近の3Dプリンターはセンサレスホーミングを採用している例が多いことから,適切なパラメータ設定ならば比較的高精度なのではと考えています.

以上何かのお役に立てれば幸いです.

「いいね!」 1

nyaruさま、HRMKさま、
丁寧にご教示くださりありがとうございます。
深く感謝申し上げます。

一度ぶっつけ停止?のセンサーレスホーミングを試してみたいですが
将来的にナットブロックへの影響により停止位置が変わって来ないかと思うと
少し心配になりました。

プローブなどを使って機械原点を設定とかは不可能でしょうか?

ご教示いただいたことを実施もせず質問ばかりで本当に申し訳ございません。
一度ボールスクリューの製品をインバーターのぶっつけ停止機能を使用して
メカストッパーで停止させていたことがあったのですが、あまり良い印象が
残っていませんので躊躇ばかりしてしまいます。すみません。

よろしくお願い申し上げます。

確かにナットブロックの摩耗や固定しているボルトが通常より緩みやすくなる可能性はあります.バックラッシの再調整やわずかながら検出位置が変わる可能性はありますね.

壊れにくく高精度の位置検出を目的とされるならば光学式のセンサという手もありますが…光学式はキリコが舞っている環境には向かないかなと私は感じます.

加工テーブルにプローブ用の金属片を固定してプローブすればワーク原点はかなり高精度にとれると思いますがnyaruさんいかがですか?

「いいね!」 1

ちなみになんですが、以前の質問にて以下のような内容がありましたが、

加工開始位置を機械原点基準ではなく、ワーク原点をプローブにより設定し直すのではいけないでしょうか?

ご存知かもしれませんが、CNCには原点スイッチで決まる機械座標系と自分で原点位置指定して変更できるワーク座標系があります。(それぞれの原点を機械原点、ワーク原点と呼んでいます)
基本的にはすべてワーク座標系で動いており、NCプログラムやUI上でもおそらくワーク座標系で移動位置を設定しているはずです。(毎回G53指令で機械座標を指定しない限りはワーク座標系で動いているかと思います。)

これが、図中の加工開始点を機械座標系で(362,917)という値にしたいという話の場合、CNCxPROではホーミングでしか機械原点を決めれないので、スイッチの位置の固定を工夫するしかありません。
Duetの場合、手動で機械原点をセットできる仕組み(G92コマンド)になっているので、わりと柔軟にプローブなどで機械原点を変更することは可能です。

もし、加工開始点をワーク座標系で(362,917)とするのでいいのであれば、画像の紫の点のようにプローブする固定のポイントを用意してプローブするのが良いかと思います。
プローブ後に、この位置は例えばX200,Y200だと教えてやれば、自動的にワーク原点(オレンジ点)が設定されます。
ですので、紫の点と青の点の座標差が分かっていれば、加工開始点が(362,917)となるように、ワーク原点をプローブによって指定したということになります。

プローブの方法自体は色々とありますが、角取れる場所(原点でなくて良い)でXYプローブを実施したり、HRMKさんが言っているようにテーブルに寸法の分かっている金属片を固定してタッチするというのも有りだと思います。
基本的にプローブはスイッチと同じで電気的にONOFF(導通、非導通)なったところの位置をピックアップする仕組みなので、金属片とエンドミルにそれぞれGNDとプローブ用の線を繋げば使えると思います。

ちなみにこういったスイッチをテーブルに固定してしまうイメージです。実際にこういったスイッチは高いので、金属で代用という感じです。
https://jp.misumi-ec.com/vona2/detail/221303957754/

参考になれば幸いです

「いいね!」 2

TRMKさま、
ありがとうございます。
テーブル上にプローブ用の金具を取り付けして
対応していこうと思います。

「いいね!」 1

nyaruさま、
ご教示くださった内容で対応させていただきます。
Duet3を購入して良かったです。

機械原点を手動で設定するなど
自分でトライをしてみまして、また不明点が出て来ましたら
お伺いするかもしれません。

いつも大変お手数をおかけしてすみません。
よろしくお願い申し上げます。