読者です 読者をやめる 読者になる 読者になる

Grblの設定

CNC的な何か

 

Grblの設定のチュートリアルが英語で、

よくわからなかったので自分なりに訳してみました。

Configuring Grbl v0.9 · grbl/grbl Wiki · GitHub

 

 

※これは大いに間違っている場合があるので、

自己責任で十分注意して下さいね。

 

※間違いや指摘等があればコメントしてくださいね。

 

$でヘルプの表示
$$ (現在の設定を表示)
$# (パラメタ#の値を表示)
$G (Gcodeパーサの状態の表示)
$I (ビルド情報の表示)
$N (スタートアップブロックを表示)
$x=value (設定項目xをvalueに設定)

$Nx=line (スタートアップブロックを保存)
$C (Gcodeモードをチェック)
$X (アラームロック無効)
$H (ホーミングを実行)
~ (サイクルスタート)
! (フィードホールド)
? (現在の状態)
ctrl-x (リセット)

 

‘$’に続くコマンドで、設定の表示や値のセットを行う

$から始まらない4コマンドは、リアルタイムに送信して振る舞いを変更するコマンド(aka DRO).

$$ - 現在の設定を表示

下記に例を示します
これらの設定はEEPROMに保存され、arduinoを再起動すると前回までの設定がロードされます


$0=10 (ステップパルス, μ秒)
$1=25 (ステップアイドル時間, m秒)
$2=0 (ステップポート反転マスク:00000000)

$3=6 (方向ポート反転マスク:0000110)

$4=0 (ステップ有効反転, bool)
$5=0 (リミットpin反転, bool)
$6=0 (探針pin反転, bool)
$10=3 (状態リポートマスク:00000011)

$11=0.020 (接続偏差, mm)

$12=0.002 (円弧寛容性, mm)
$13=0 (リポートインチ, bool)
$20=0 (ソフトリミット, bool)
$21=0 (ハードリミット, bool)
$22=0 (ホーミングサイクル, bool)
$23=1 (ホーミング反転マスク:00000001)
$24=50.000 (ホーミングフィード, mm/min)

$25=635.000 (ホーミングシーク, mm/min)

$26=250 (ホーミング非跳ね返り, msec)

$27=1.000 (ホーミングpull-off, mm)

$100=314.961 (x, step/mm)
$101=314.961 (y, step/mm)
$102=314.961 (z, step/mm)
$110=635.000 (x 最大レート, mm/min)

$111=635.000 (y 最大レート, mm/min)

$112=635.000 (z 最大レート, mm/min)

$120=50.000 (x 加速, mm/sec^2)

$121=50.000 (y 加速, mm/sec^2)

$122=50.000 (z 加速, mm/sec^2)

$130=225.000 (x 最大移動量, mm)

$131=125.000 (y 最大移動量, mm)

$132=170.000 (z 最大移動量, mm)

$x=val の形式のコマンドは、設定を保存または変更します
シリアル通信で出来ますが、それ用のソフト等を使った方がいいでしょう

例えば手動での変更で、

マイクロ秒単位でのステップパルスを10にする場合はの設定は、

$0=10


設定がうまくいった場合、'ok'を出力して設定をEEPROMに書き込みます
これはユーザーが変更するまで保持されます

$$コマンドで、再度設定が確認出来ます


$x=val 形式の設定の意味

注意: 設定番号はv0.8から変更されました

 

$0 ステップパルスの設定(マイクロ秒)

 

ステッピングモータードライバの最小のパルス長です

データシート等を参考に調整して下さい

ドライバが確実に認識出来る最小のパルス長で、
長く設定し過ぎると高いパルスレートで運用した場合に問題が発生します
これはステップパルスは互いに重なってスタート出来ないからです
10マイクロ秒前後が推奨されます
デフォルトは10マイクロ秒です


$1 ステップアイドル時間(ミリ秒)

毎回ステッピングモータの動作完了後、無効にするまでの時間を設定します
これとは別に常に軸を有効にするには最大値の255を設定します
$1=255

システムによりますが、0を設定するとこの機能は無効になります
25~50マイクロ秒に設定するとその軸は確実に終了する前に停止します
これは長い時間何も動作させなかった場合に役立ちます
またドライバによっては、どのマイクロステップで停止したかを覚えていない事に注意して下さい
再度有効にした時にステップが失われている場合は、$1=255に設定すると全ての軸の位置を保持します


$2 ステップポート反転マスク(バイナリ)

この設定は、ステップパルスを逆にします
デフォルトではパルスは通常のlowから始まり、highになると重要なイベントになります
その後$0で設定された時間経過してピンがリセットされ、次のパルスイベントまでlowに戻ります
逆にした場合、ステップパルスは通常のhighから始まりlowになるように振る舞います
ほとんどのユーザーはこの設定を使用する必要はありませんが、一部のCNCドライバーで要求されます
例えば1方向に故意的な遅れを作る場合等です

この設定は各軸に対してビットフラグで設定します
どの様に設定するのかを完全に理解する必要はありません
逆にしたい軸に対しての設定をシンプルに設定できます
例えばX軸とZ軸を逆に設定したかったら、$2=5として読み込ませます  (ステップポート反転マスク:00000101).

 

Setting Value

Mask

Invert X

Invert Y

Invert Z

0

00000000

N

N

N

1

00000001

Y

N

N

2

00000010

N

Y

N

3

00000011

Y

Y

N

4

00000100

N

N

Y

5

00000101

Y

N

Y

6

00000110

N

Y

Y

7

00000111

Y

Y

Y



$3 方向ポート反転マスク(バイナリ)

この設定は各軸の方向のパルス値を逆にします
デフォルトではlowの時に正方向に動き、highの時に負の方向に動きます
いくつかの装置はこの通りではありません
この設定はこれらの軸の方向を逆にします
この設定はビットフラグによって行います
設定を行うには、シンプルに逆にしたい軸に対して値を送信する必要があります
上の表を使って下さい
例えばY軸の方向のみを逆にしたい場合、$3=2を送信し、読み込ませます (方向ポート反転マスク:00000010)


$4 ステップ有効反転(ブール)

デフォルトではモータの有効/無効はhighが無効でlowが有効です
もしこれを逆にしたかったら、,$4=1とし、戻す場合は$4=0です
(電源の周期を変更しなければなりません)

$5 リミットピン反転(ブール)

デフォルトでは制限用のpinはarduinoの内部プルアップ抵抗でhighが保たれます
制限用のpinをlowにした事がトリガと解釈されます
これを逆にする場合、$5=1とし、戻す場合$5=0とします
電源の周期を変更しなければなりません

注意: もし制限用pinを逆にする場合は、配線された全ての制限用pinに負担をかけ過ぎないように外部プルダウン抵抗が必要です


$6 プローブピン反転(ブール)

デフォルトでは探針用pinはarduinoの内部プルアップ抵抗によってhighに保たれます
探針用pinをlowにした事がトリガと解釈されます
これを逆にする場合、$6=1とし、戻す場合$6=0とします
電源の周期を変更しなければなりません

注意: もし探針用pinを逆にする場合は、配線された全ての探針用pinに負担をかけ過ぎないように外部プルダウン抵抗が必要です

$10 状態リポートマスク(バイナリ)

この設定はユーザーが「?」を送信した際にリアルタイムデータをレポートするかどうかを決定します
デフォルトでは有効です

・runningかどうかの状態 (これはオフに出来ません)
・マシンの位置
・ワーク位置 (座標位置とその他のオフセットが適用されたマシン位置)
3つのレポートはユーザーのマシンに対する設定や問題の発見等に役立ちます
これはシリアルRXバッファ、ブロックバッファの使用方針、リミットpinの状態を含みます
(high または lowでZYXの順序が示されます).

Grblは下の表で決定されるデータを返します
確認したいレポートのタイプを選択して送信して下さい
例えばマシン位置とワーク位置が必要な場合1と2を追加するのは$10=3とします
またマシン位置と制限用pinの状態が必要なら1と16なので$10=17です

一般には表示するためのリソースを必要とするので、リアルタイムの状態データは最小にします
例えばリミットpinのレポートはユーザーがマシンをセットアップした時だけ必要で、
それ以降は無効にすることが推奨されます
全てを表示すると使い易くはありません


Report Type

Value

Machine Position

1

Work Position

2

Planner Buffer

4

RX Buffer

8

Limit Pins

16



$11 接合偏差(mm)

接合偏差は加速管理がどの程度の速さでG-codeのパスのセグメントの接合ラインを動かせるかを決定します
例えばG-codeのパスが鋭角10°で曲がってからフルスピードで戻ってくる場合を考えます
この設定はステップを落とす事なく安全に角を曲がるにはどの程度速度を落とす必要があるかを決定します

どの様にそれを計算するかは少し複雑です
しかし一般的には高い値を与えるとより速く角を通りますが、その間ステップをロスするリスクが高まります
低い値を与えると加速管理はよりゆっくり慎重にコーナリングします
速すぎる速度で角に入る事が問題になる場合、この値を減少させて失速させます
もし速く交差箇所を通過させたいなら、この値を増加させてスピードアップします
コーナリングアルゴリズムについて気になる人はリンク(https://onehossshay.wordpress.com/2011/09/24/improving_grbl_cornering_algorithm/)を参照して下さい
これは非常に単純で効率的です


$12 円弧寛容性(mm)

GrblはG2/G3(円弧補完)を小さい線に再分割する事によって円や円弧や螺旋にします
その様な円弧は正確にこの値以下になりません
0.002mm以上が大半のマシンの精度なので、恐らくこの値を調整する必要はないです
しかしあまりに円が荒いまたは円弧がゆっくり動作している場合は、この設定で調整します
より低い値にすると精度が上がりますが、あまりに小さいラインが多くなると、オーバーロードしてパフォーマンスに問題が発生します
高い値は精度が下がりますが、少ない行数にしなければスピードは上がりません

好奇心のある人のため、弧の許容誤差は弧の終点による線分から最大の垂直距離で定義されます
別名コード
多少の基礎幾何学を持って、弧をたどる線分で設定を満たす長さを解きます

この様に弧をモデル化しています
最適なパフォーマンスのための長さによって、弧線分のセグメントが自動で調整/スケールされます


$13 リポートインチ(ブール)

Grblはリアルタイムに位置ならびに座標オフセットと探索パラメタをレポートします
デフォルトではミリで表され、$13=1とすると、インチで表されます
戻す場合は、$13=0とします


$20 ソフトリミット(ブール)

ソフトリミットはマシンが範囲外に行って何かを壊すことを安全に防ぎます
これはわかっている各軸とマシン座標の場所で働きます
常に新しく送られたGコードが、マシンスペースを上回ったかチェックされます何処にあろうとスピンドルと冷却装置を停止して問題を示すアラームを出します
その後ハードリミットで強制停止した位置からのマシン位置を返します

注意: ソフトリミットはホーミングが有効で、どの位置にあるか知るために正確な軸の最大移動設定が必要です
$20=1で有効、$20=0で無効


$21 ハードリミット(ブール)

ハードリミットは基本的にソフト制限と同じ動きです
物理的なスイッチを使用する点で異なります
(機械、磁気、光学等の) スイッチを、各軸の終わりの位置か、トラブルが発生しないと感じる場所に配線します
スイッチを押すと迅速に冷却装置とスピンドルを停止し、全てをリセットします

ハードリミットを使う場合は、制限用のpinが内部プルアップによってhighに保たれます
オープンスイッチをpinとグランドに配線し、$21=1とします(無効にする場合は、$21=0とします)
電気的な干渉を避けることを強く進めます
一つの軸の両端に制限を設ける場合は、2つのスイッチのpinとグランドを並列に配線します

ハードリミットは致命的なイベントとして考えられます
ステッピングモータは速やかに停止してステップはロスされます
位置のフィードバックが保証される方法はありません
ハードリミットが実行されると、無限アラームモードになりマシンのチェックと強制リセットの機会が与えられます
これは純粋に安全の為の機能です

$22 ホーミングサイクル(ブール)

ホーミングは、スタートアップで毎回設定される正確精密な位置です
言い換えると何時でも何処にいるかを正確に知ることです
一度Grblを使用して加工を行った後、再起動した時に今どの位置にいるのかがわかりません
何処にいるかを算出するタスクが残されています
もし原点があれば、それを常に0参照位置として再開し戻ることができます

ホーミングサイクルのセットアップは固定された位置にリミットスイッチがなければいけません
通常それらは+x, +y, +zの中で最も遠い点です

ハードリミットと同様にリミットスイッチにリミットpinとグランドを配線してホーミングサイクルを有効にします
もし好奇心があるならリミットスイッチとハードリミット両方の使用もできます

デフォルトではホーミングサイクルは最初にZ軸のワークスペースをクリアにしてからX軸とY軸を同時に動かします
設定方法は下記です
(コンパイルオプションも含みます)

またもう一点、ホーミングサイクルを有効にすと、ホーミングサイクルが動作している間は全てのGコードを締め出します
これはこの後の説明でもありますが、ロック無効コマンド($X)が有効でない限りは軸が動かない事になります
全てのCNCコントローラーではないが、ほとんどのもので同じような事が行われていて、ユーザーの位置設定ミスを防ぐための安全対策です
もしあなたが問題のあると思われるバグを見つけたら、改善を試みますので我々に知らせて下さい


注意: config.hをチェックアウトするとよりこの機能の詳細がわかります
ホーミングサイクル中に最初に動く軸の設定で、ホーミングサイクル中のロック機能を無効にしてスタートアップする事も出来ます


$23 ホーミング方向反転マスク(int,バイナリ)

デフォルトでは、原点用のスイッチは正方向にあると仮定します
最初にXY軸が動く前に、正確な位置に移動するためZ軸をゆっくりとスイッチのまわりを正方向に動かします
もしマシンのスイッチが負の方向にあれば、逆にする事が出来ます
これはステップポートを逆にするマスクや、方向ポートを逆にするマスクの様に、軸を逆にするために検索して示されたテーブルの値を送信します


$24 ホーミングフィード(mm/min)

ホーミングサイクルは最初にリミットスイッチを高いシークレートで探してから、見つかると低いシークレートにして精度を上げます
フィードレートは遅くなります
この設定を適切に行うと、どんなレート値でも反復可能で正確な原点が用意されます


$25 ホーミングシーク(mm/min)

シークレートはホーミングサイクルの検索のレートでリミットスイッチを探すための最初の試みです
速すぎて壊れないように十分短く調整して下さい


$26 ホーミング非跳ね上がり(ミリ秒)

スイッチのトリガ時間についてです
上下する少ないミリ秒の幾らかの電気/機械的ノイズの解決のために、ハード的に調整された信号か、ソフト的に短い遅延によって上下させた信号を使う必要があります
Grblは短い遅延を原点サイクル中に発生させます
この遅延設定はどんなスイッチにも必要な反復可能な回帰をします
ほとんどの場合5-25ミリ秒です


$27 ホーミングプルオフ(mm)

良いハードリミットは、リミットスイッチを共有出来て、原点サイクルの動作完了後に全てを引き上げて停止します
この設定でホーミングサイクル後のハードリミットのトリガでのトラブルを防ぎます


$100, $101 と $102 [X,Y,Z] (ステップ/mm)

各軸のステップがどれくらい離れた実動作をするのか知る必要があります
マシンに合わせてステップ/mmを計算します

・ミリ単位でモータの回転運動を調整します
これはリードネジのピッチやベルトによって実現されます
・フルステップの回転(一般的に 200)
・マイクロステップのコントロール (一般的に 1, 2, 4, 8, か 16)

ヒント:高いマイクロステップの値を使用する事(例えば 16)はトルクを減少させます 最も低い値が望んだ軸の解決と快適な動作特性をもたらします

ステップ/mmで下記のように計算できます
ステップ毎mm = (ステップ毎の回転運動*マイクロステップ)/mm毎回転運動

あらゆる軸にこの値を計算して設定して下さい


$110, $111 と $112 [X,Y,Z] 最大レート(mm/min)

各軸が動作可能な最大レートを設定します
Grblは常に動作を計画し、個々の軸のいずれかが最大レートでないかをチェックします
もし確実に最大レートのリミットを超える場合は動作を遅くします
これは各軸が独立したスピードを持つことであり、一般的にはより遅いZ軸の制御にとても役立ちます


シンプルな設定方法はこれらの値を各軸でゆっくりと徐々に上昇させながら動作させます
例えばX軸のテストで、G0 X50を送信すると、十分距離があれば加速して最大レートになります
モーターが立ち往生した時に最大レートの閾値だと判ります
それは僅かなノイズの発生でも、モーターを傷つけてはいけません
これより10~20%下回った値で、製品、摩擦、制作物、道具に合った値に設定して下さい
それを他の軸にも繰り返し適用して下さい

注意: この設定はG0のシークレートも設定されます


$120, $121, $122 [X,Y,Z] 加速度(mm/秒^2)

この設定は軸の加速のパラメーターをmm/秒/秒で設定します
簡単には低い値だと容易にゆっくりした動きに入れます
高い値の間は望んだ動作をより速く堅く行います
最大レートの設定は独立して加速させます
これはマルチな軸の動作で最も貢献していない軸と同じ加速度にできる事を意味します

もう一度、独立した各軸に設定値を増加させていき、モーターを立ち往生させるシンプルな設定方法について、
最終的に最大レートの10~20%低い値の加速度を設定します
これは製品の摩擦と磨耗の原因です
ちょっとしたG-codeでドライテストを行う事を強く勧めます
全軸を同時に動かすとたまに積載が異なる事があります


$130, $131, $132 [X,Y,Z] 最大移動量(mm)

これは各軸の最大移動量をミリ単位で設定します
この設定が有効になるのは、ソフトリミット(ホーミングも)を有効にした場合のみです
ソフトリミットが動作コマンドによってマシンリミットを超えないようにチェックしている時にだけ使用されます

その他の$で始まるコマンド
は追加の操作を提供します
G-codeのパーサーの状態や原点サイクルの状態を表示したりします
このセクションはこれらのコマンドの使用方法の説明です


$# Gcodeパラメタ表示

G-codeで保存されるパラメーターはG54-G59の動作座標、G28/G30で定義済みの位置、G92の座標オフセット、ツール長のオフセット、そして探索されたもの(オフィシャルではないが追加したもの)です

これらのパラメーターは殆どEEPROMに直接書き込まれます
これは電源がダウンする事を考慮せずに、明確に変更があるまで維持される事を意味します
一時的なパラメーターの場合は、電源サイクルで消えます
G92とG43.1のツール長のオフセットととG38.2の探索データです

G54-G59の動作座標はNIST Gコード規格とEMC2 (linuxcnc.org) によって定義されたG10 L2 PxかG10 L20 Pxによって変更出来ます
G28/G30の定義済み位置はそれぞれG28.1とG30.1のコマンドによって変更出来ます

$#が呼ばれると、各システムで対応したマシン座標からのオフセットを返します
TLOはツール長のオフセットを意味し、PRBは最後の深く探った座標を意味します

[G54:4.000,0.000,0.000]
[G55:4.000,6.000,7.000]
[G56:0.000,0.000,0.000]
[G57:0.000,0.000,0.000]
[G58:0.000,0.000,0.000]
[G59:0.000,0.000,0.000]
[G28:1.000,2.000,0.000]
[G30:4.000,6.000,0.000]
[G92:0.000,0.000,0.000]
[TLO:0.000,0.000,0.000]
[PRB:0.000,0.000,0.000]


$G Gcodeパーサ状態表示

このコマンドはGコードパーサーのアクティブな全てのモードを表示します
下記の様になります

[G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 S0.0 F500.0]

これらのアクティブなモードは、次はどの様なGコードブロックかコマンドがGコードパーサーによって解釈されるかを決定します

新しいGコードとCNCマシニングのために、モードを部分的にパーサーにセットすることで、定期的にどの様に解釈するかをパーサーに伝えなくてもよいです
これらのモードはモーダルグループに統制され、 これは同時に論理的にアクティブには出来ません
例えばインチで解釈するかミリで解釈するかを設定します

下記はサポートされるモーダルグループの一部のリストです
より複雑なものや詳細はLinuxCNCのウェブサイトにあります
G-codeコマンドで太字のものは電源オン時にデフォルトのモードです


Modal Group Meaning

Member Words

Motion Mode

G0, G1, G2, G3, G38.2, G38.3, G38.4, G38.5, G80

Coordinate System Select

G54, G55, G56, G57, G58, G59

Plane Select

G17, G18, G19

Distance Mode

G90, G91

Arc IJK Distance Mode

G91.1

Feed Rate Mode

G93, G94

Units Mode

G20, G21

Cutter Radius Compensation

G40

Tool Length Offset

G43.1, G49

Program Mode

M0, M1, M2, M30

Spindle State

M3, M4, M5

Coolant State

M7, M8, M9



更にアクティブな道具の番号をT、スピンドルのスピードをS、フィードレートをFで表し、これらは全てリセットに際してはデフォルト値の0です
これらの詳細は説明しませんが、重要なのはパーサーの状態を決定する事です


$I ビルド情報表示

これはGrblのソースのビルド日時を表示します
$IオプションでユーザーがCNCマシンのその他の使用情報を短い文字列で保存出来ます
$I=xxxの送信で、xxxの所に80文字以下でユーザーの文字列を入力します
次に$Iを使用しビルド情報を表示します

この文字列はバージョンとビルド日時の後に表示されます


$N スタートアップブロック表示

$Nxは電源オンまたは再起動時に毎回実行されるスタートアップのブロックです
言い換えればGコードのスタートアップブロックは、何故かデフォルトで設定されているか、必要として毎回開始しているかです
システムのデフォルトでは2つのブロックを保存できます

Grblに接続した時に$Nをタイプしてエンターします
この様に応答します:

$N0=
$N1=
ok

簡素な表示ですが、これは保存されているGコードのブロックは無い事を意味し、 $N0がスタートアップで実行され、$N1は次に実行されます


$Nx=line スタートアップブロック保存

重要: スタートブロックでの(G0/1,G2/3,G28/30) コマンドによる強い動作は、十分注意して行って下さい
これらの動作コマンドが電源オンまたは再起動で毎回実行されることになるので、緊急時に、停止や再起動すると、スタートアップブロックの動作によって、より状況を悪くする事が出来てしまいます

また、EEPROMにデータを保存するコマンド(G10/G28.1/G30.1の様な)は置かないで下さい
これはGrblが絶えず全てのスタートアップとリセットを上書きしてしまいます
ので、Arduino's EEPROMをすり減らしてしまいます

典型的なスタートアップブロックの使用方法はシンプルにG20インチモードのようなモーダルの状態を設定することで、毎回異なるシステム座標で動作するか、ユーザーが書いたユニークな形のクレイジーなプロジェクトに必要な方法を提供することです

スタートアップブロックを設定するには $N0=の後に続けて正しいGコードブロックを入力してエンターします
Grblは入力されたGコードブロックが正しいかどうか判定してokまたはerrorを返します
何かが上手くいかない場合はそれが返されます
エラーした場合は保存されません

例えばG54の動作座標、G20のインチモード、G17のXY通常、を最初のスタートアップブロックの$N0に設定したいとすると、
$N0=G20 G54 G17と入力しエンターしてokが返されます
$Nを入力すると設定内容が確認できて、 $N0=G20G54G17となります

前の例のように一度スタートアップブロックがEEPROMに保存されると、実行可能であれば、スタートアップ時か再起動時に何時でも表示し示されます

Grbl 0.9i ['$' for help]
G20G54G17ok

もし複数Gコードスタートアップブロックを使っていれば、毎回適切に表示されます
もしスタートアップブロックを消したい場合は(例えばブロック0)$N0=と等号の後に何も続けずに入力して下さい

また、もし原点回帰を有効にしていれば、スタートアップブロックはスタートアップではなく、原点サイクルの後に即座に実行されます


$C Gcodeチェックモード

この設定はGコードパーサーのプロセスを完了させるための切り替えです
通常の操作のようですが、軸を動かす訳ではなく、ネジ面の平行部を無視してスピンドルと冷却装置の電源をオフします

これは新たなGコードプログラムをパーサーとエラー(ソフトリミット違反のチェック)表示モニタによってチェックする方法を提供する意図があります


オフにした場合は自動でソフトリセットします(^X)
これには2つの目的があります
コードの管理を簡単にすることと、Gコードモードが想定していない場合にユーザーがジョブを行うのを防ぎます
システムの再起動は常にフレッシュな状態にします


$X アラームロック強制終了

アラームモードは何かしらの致命的な誤りがあった時の状態で、ハードリミットかサイクルの中断、または位置が不明のような場合です
デフォルトではホーミングを有効にしてArduinoの電源を入れると、アラーム状態に入ります
何故ならGrblはこの位置を知らないからです
アラームモードは$Hコマンドでホーミングサイクルが実行されるまで全てのGcodeコマンドをロックします
またはユーザーがアラームロックを上書きする必要があるなら、リミットスイッチで軸を動かします
例えば$Xコマンドはアラームロックを上書きして、機能をもう一度動かします

しかし気を付けて下さい!!
これは緊急時の状況で使用すべきです
位置は失われ、思いもよらない事になります
G91に付加されるモードで短く動かすことが推奨されます
ホーミングサイクルの後速やかにリセットして下さい


$H ホーミングサイクル実行

このコマンドはホーミングサイクルを動作させる唯一の方法です
他のモーションコントローラーはホーミングサイクルのために特別なGコードコマンドを示します

しかしこれは標準のGコードによる誤った形です

ホーミングはコントローラによって区別されたコマンドで完了されます

 


ヒント:ホーミングサイクルの後、むしろ手動でワークスペースの真ん中に位置を決める場合には、G28かG30のプリ定義位置のホーム位置を設定できます

これらはホーミングサイクルの後の最初の動作でどこへ動かしたいのかを設定します

G28.1(or G30.1)で位置を保存します

$Hの後のホーミングはG28(or G30)で自動で動作します

一般的にはXY軸を真ん中にしてZ軸を上に残して、 スピンドルツールを妨げないようにします

$RST=$, $RST=#, and $RST=* デフォルトの設定を保存

これらのコマンドはリスト化されていないメインの$ヘルプメッセージで、利用可能なユーザーの保存したものや全てのEEPROMのデータです

注意: 確実なシステムの初期化完了のため、これらのコマンド実行後に自動的にリセットされます

 

$RST=$ で現在の内容を消去して$$のデフォルトの設定になります

これはGrblのコンパイル時に定義されたデフォルトの設定ファイルです

しばしばOEMはマシンの仕様により要求された設定で、ファームウェアをビルドします

これはもし誤っていたりやり直したい時に、1つの正方形に戻す方法を提供します

 

$RST=# で現在の内容を消去し、G54~G59の動作座標オフセットとG28/G30でEEPROMに保存された位置を0にします

これの一般的な値は$#で表示されます

これはそれぞれ手動でG20 L2/20またはG28.1/30.1コマンドによる設定以外の、これらの消去の簡単な方法を提供します

 

$RST=* 使用される全てのEEPROMのデータを消去/保存します

これは$$を含む設定で$#のパラメータ、$Nのスタートアップライン、$Iのビルド情報文字列です

注意すべきことは削除されるのはユーザーデータエリアのみで、確実にEEPROMのデータを削除する訳ではないことです

完全にEEPROMのデータをクリアするにはArduinoIDEのEEPROM関連のスケッチの例を使用してください

 

リアルタイムコマンド: ~、!、?、とCtrl-X
最後の4コマンドはリアルタイムコマンドです

いつでもどこでも送信できることを意味していて、動作に問題がなければ即座に返答します

詳しくいえば、シリアルストリームで実行される特別な'picked-off'文字です

数ミリ秒で使用できます


~ サイクルスタート

これはサイクルのスタートまたは再開のリアルタイムコマンドで、いつでも送信できます

動作をキューに持っている時に、バッファを準備してサイクルをスタートして軸を動かします

とはいえデフォルトでは自動サイクルが有効になっていて、サイクルの供給停止時を除き、新たにユーザーがこのコマンドを必要とすることはありません

サイクル供給停止時はサイクルをスタートさせます

サイクルのスタートはバッファの準備ができていて、ホーミング動作等をしていない場合のみです

 


! フィード保持

供給停止コマンドは、制御決定によってアクティブなサイクルを停止することで、位置は失われません

これはリアルタイムでほとんどの場合有効です

一度終了か一時停止すると、プログラムを再開するためのサイクルスタートのコマンド発生まで待ちます

供給停止は回帰プロセスやその他のプロセスに影響しない一時停止ができます


もしプログラムの途中で停止する必要があり、位置をロストしないくらいの余裕がない場合、供給停止は停止の全てを持っていくように動作します

初回終了時、リセットの命令ができます

緊急時以外は、常にリセット前の動作時に供給停止を実行して下さい

 


? 現在の状態

?コマンドはリアルタイムで即座に今アクティブな位置と動作座標を返答します

オプションで、受信のシリアルバッファとリポートマスク設定の状態による計画バッファの使用方法を返答します

?コマンドはおそらく他のGrblのプロセスと非同期でいつでも送信できます

$13の設定は、ミリかインチかを決定し、リポートする設定です

?が押された時、即座に下記を返答します


<Idle,MPos:5.529,0.560,7.000,WPos:1.529,-5.440,-0.000>
アクティブな状態は、: Idle, Run, Hold, Door, Home, Alarm, Checkです

Idle: キューに動作命令はなく、全てのシステムで準備ができている
Run: サイクル動作中を示します
Hold: 供給停止が実行されると、ゆっくりと停止した後ホールドされ、プログラムの再開のためのサイクルのスタートを待ちます
Door: (v0.9iで追加) コンパイラオプションの供給停止の項目で、スピンドルと冷却装置をシャットダウンし、ユーザーがdoorスイッチを閉じてサイクルをスタートするまで待ちます

セーフティードアのOEMに役立ちます
Home: ホーミングサイクルの途中です

注意: 一度ホーム位置が設定されますが、ホーミングサイクル中は位置は更新されません


Alarm: 位置がわからないか、何かの誤りを示します

この状態は全てのGコードコマンドがロックされている時、設定が必要な時です

$Xはロックを解除してこの状態をIdleの状態にします

これはもう一度動作を考慮することになります

先にも触れたようにアラームの後にどのように動作させるかに注意して下さい

Check: Gコードのモードをチェックします

これは全てのGコードコマンドの応答とプロセスですが、動作や変更ではありません

$Cで一度切り替えオフにすると、自動的に再起動します

 

Ctrl-x リセット

これはソフトリセットコマンドです

リアルタイムにいつでも送信できます

リセットしますが、コントロールする方法を含み、マシン位置を保持し、Arduinoの電源オフ以外のリセット動作を行います

唯一ソフトリセットは、ステッピングモータ動作中に行われると、問題が発生し位置を失います

この場合は失ったマシン位置を追跡しリポートします

制御不能な減速度なので失ったステップがどの程度ロストしたかをフィードバックできないからです

(この問題はステッピングモータの一般的な問題です)

別の方法は、再初期化してスタートアップし、継続することです

ジョブをスタートさせる前にソフトリセットすることが推奨されることに注意して下さい

これはジョブを走らせる前にセットアップまたはGコードモードをアクティブにすることを保証することです

マシンが常に矛盾せずフレッシュにスタートし、これを予期して動作させることです