これは以前のバージョン、Studio 1.1.0 のマニュアルです。 最新バージョンのマニュアル
ドキュメント 1.1.0 リファレンス
プロトコル
Twinwright 独自カーネルは、Grbl 1.1 シリアルプロトコルで通信し、現在の Grbl 送信ソフトが使う拡張にも対応しています。Grbl 用に書かれた送信ソフトは、このカーネルでも動作します。動作を確認した送信ソフトとその設定は、G コード送信ソフトにあります。
接続
| 接続先 | 方法 |
|---|---|
| Studio のツイン | このコンピューターの TCP ポート 2323。送信ソフトは同時に 1つだけ接続できます。 |
| MC-1 | ネイティブ USB ポート。シリアルポート(Windows では COM*n*)として使います。ボーレートは関係ありません。送信ソフトが指定を求める場合は 115200 を使ってください。送信ソフトが DTR をオンにすると、コントローラが応答します。 |
行と応答
- 行の終わり: 行は LF または CR で終わります。CR LF または LF CR の組は 1回と数え、LF が 2つ続けば 2行になります。
- 応答: コントローラは、すべての行に
okまたはerror:Nで応答します。応答は、行が届いた順に返ります。N の値はエラーコードにすべて載っています。 - 行の長さ: 256文字までです。これより長い行には
error:11と応答します。 - 文字カウント方式: 受信バッファは 1024 バイトです。送信ソフトは、応答がまだ返っていないバイトをその量まで送り出しておけます。空き容量は、ステータスレポートの
Bf:で分かります。 - プランナ: 100 ブロックです。空きブロック数も
Bf:で分かります。 - 待機する行: フィードホールド中や安全扉が開いている間、行はバッファ内で待機します。サイクルが再び始まると、それらの行に応答します。リセット、
0x19(ストップ)、0x03、0x85(ジョグキャンセル)のいずれかを受けると、まだ待機している行は破棄されます。 - エラーの後: 次の G コードの行は実行されず、同じエラーで応答します。これは、
$コマンド、空行、またはリセットが来るまで続きます。
リアルタイムコマンド
リアルタイムコマンドは単一のバイトです。コントローラは、行の途中であっても、届いた時点で直ちに処理します。リアルタイムコマンドはどの行にも含まれず、ok も返りません。
| バイト | コマンド | 動作 |
|---|---|---|
0x18(Ctrl-X) | リセット | すべてを直ちに停止し、キューにあるものを消去します。軸が動いている間にリセットすると ALARM:3 が発生します。原点復帰をやり直してください。非常停止中は受け付けません。 |
0x03(Ctrl-C) | リセット(非常停止中) | Ctrl-X と同じ動作で、非常停止中でも受け付けます。 |
0x19(Ctrl-Y) | ストップ | 軸は減速して停止し、キューに残っている行は破棄されます。位置は保たれ、アラームは発生しません。 |
ESC、続けて 0x14 | 再起動 | 自分で再起動できるボードで、コントローラを再起動します。 |
? | ステータスレポート | ステータスレポートを 1回返します。 |
0x80(または 0x05) | ステータスレポート | ステータスレポートを 1回返します。ただし、自動レポートがオンの間は返しません。 |
0x87 | フルステータスレポート | すべてのフィールドを含むステータスレポートを 1回返します。 |
~、0x81 | サイクルスタート | フィードホールド、安全扉、M0/M1、工具交換のあとで再開します。 |
!、0x82 | フィードホールド | 軸は減速して停止し、そのまま保持されます。ジョグ中はジョグをキャンセルします。 |
0x83 | パーサの状態 | $G と同じく、モーダル状態を報告します。 |
0x84 | 安全扉 | 扉が開いたときと同じ動作をします。ホールドし、パーキングが設定されていればパーキングします。 |
0x85 | ジョグキャンセル | ジョグを終了し、キューに残っているジョグの行を破棄します。 |
0x88 | オプショナルストップ | M1 による一時停止のオン/オフを切り替えます。 |
0x89 | シングルブロック | シングルブロックのオン/オフを切り替えます。 |
0x8B | ハンドルモード | ハンドル(手動パルス発生器)が接続されている場合:そのモードを切り替えます。接続されていなければ無視されます。 |
0x8C | 自動レポート | $481 で間隔が設定されている場合に、自動ステータスレポートのオン/オフを切り替えます。設定されていなければ無視されます。 |
0x90 | 送りオーバーライド 100 % | |
0x91、0x92 | 送りオーバーライド +10 %、−10 % | 範囲:10–200 %。 |
0x93、0x94 | 送りオーバーライド +1 %、−1 % | 範囲:10–200 %。 |
0x95、0x96、0x97、0x98 | 早送りオーバーライド | 100 %、50 %、25 %、5 %。 |
0x99 | 主軸オーバーライド 100 % | |
0x9A、0x9B | 主軸オーバーライド +10 %、−10 % | 範囲:10–200 %。 |
0x9C、0x9D | 主軸オーバーライド +1 %、−1 % | 範囲:10–200 %。 |
0x9E | 主軸停止 | フィードホールド中のみ:主軸を停止し、または再び始動します。 |
0x9F | ソフト非常停止 | 直ちに停止し、非常停止のアラームを発生させます。 |
0xA0 | クーラント(フラッド) | フラッドクーラントのオン/オフを切り替えます。 |
0xA1 | クーラント(ミスト) | ミストクーラントのオン/オフを切り替えます。 |
0xA3 | 工具交換完了 | 手動の工具交換を確認します。 |
コントローラは、これ以外の制御バイトと、コマンドが割り当てられていない 0x80–0xBF のバイトを破棄します。
- UTF-8 テキスト(コメントやメッセージ内)は、テキストとして読み取られます。そのような文字に含まれる
0x80–0xBFのバイトが、リアルタイムコマンドとして扱われることはありません。 $39=0(従来のリアルタイム文字をオフ):?、!、~は、$の行とコメントの中ではテキスト、それ以外の場所ではコマンドです。$39=1(デフォルト)では、常にコマンドです。
起動メッセージと識別情報
電源投入後と、リセットのたびに、コントローラは次の行を送ります。
Grbl 1.1f ['$' or '$HELP' for help]
送信ソフトは、「Grbl」で始まる行を再起動と見なします。
$I は次の行を返し、最後に ok を返します。
| 行 | 内容 |
|---|---|
[VER:Twinwright 1.1f.<date>:<text>] | プロトコルのバージョンとそのビルド日。<text> は $I=<text> で保存した文字列です。 |
[OPT:…] | オプションの文字、プランナのブロック数(100)、受信バッファ(1024)。 |
[NEWOPT:…] | オプション名:ENUMS、RT+ または RT-($39)、HOME、ES、MPG、LATHE、REBOOT、TC、SS(主軸同期)、SED、RTC、SD、FS、YM。 |
[FIRMWARE:Twinwright] | ファームウェアの名前。 |
[SIGNALS:…] | ボードが持つ制御入力を、文字で表したもの。 |
[NVS STORAGE:…] | 設定の保存先。 |
[DRIVER:…]、[DRIVER VERSION:…]、[DRIVER OPTIONS:…]、[BOARD:…] | ボードの情報。 |
[KERNEL:<version>+<build>] | コントローラのバージョンとビルド:リリースのコミット、または dev。 |
[KNCAP:…] | ボードの機能(下記)。 |
[PLUGIN:…] | 送信ソフトが認識する名前で示した機能:主軸インバータ用の MODBUS と HUANYANG VFD。 |
ボードの機能:KNCAP
[KNCAP:] は、key=value の組をカンマで区切って並べた 1行です。キーは末尾に追加されるだけで、意味が変わることはありません。行は位置ではなくキーで読んでください。欠けているキーは「不明」を意味します。
| キー | 値 | 意味 |
|---|---|---|
port | teensy41、stm32h7、stm32f4、twin、host、sim、unknown | コントローラのどのビルドか。 |
pv | 数値 | コントローラのポートインターフェースのバージョン。 |
view | 数値 | コントローラの状態ビューのバージョン。 |
spindle | vfd、pwm、none | 主軸インバータ:Modbus、PWM 出力、またはなし。 |
encoder | 0、1 | 主軸エンコーダが取り付けられています。 |
sd | 0、1 | ボードに SD カードスロットがあります。 |
mpg | 0、2 | ハンドルのポート。モード番号で示します。 |
aux | di/do/ai/ao | 補助入出力:デジタル入力、デジタル出力、アナログ入力、アナログ出力。 |
axes | 文字 | 軸。たとえば XYZ。 |
probe | 0、1 | プローブ入力。MC-1 では、ツールセッターもこの入力を使います。 |
link | usb、uart、tcp、none | 送信ソフトとの接続。usb は、DTR がオンになると応答する USB シリアルポートです。 |
シャドーモードでは、実機とそのツインの間で [KERNEL:] と [KNCAP:] を比較します(実機とシャドーモードを参照)。
ステータスレポート
ステータスレポートは、?、0x80、0x87 の後に返ります。自動レポートがオンの場合($481、0x8C)は、コマンドなしでも自動的に返ります。次のような 1行です。
<Idle|MPos:0.000,0.000,0.000|Bf:100,1023|FS:0,0|Pn:XYZ>
先頭は状態です。
Idle、Run、Jog、Home、Check(チェックモード)、Sleep、Tool(工具交換)。Hold:0(保持中)とHold:1(減速中)。Door:0(閉じていて、再開できる状態)、Door:1(停止していて、まだ開いている)、Door:2(開いた:保持中またはパーキング中)、Door:3(閉じていて、復帰中)。Alarm。
続くフィールドは、$10 と状況によって変わります。
| フィールド | 意味 |
|---|---|
MPos: または WPos: | 機械位置またはワーク位置($10 のビット 0)。 |
Bf: | プランナの空きブロック数、受信バッファの空きバイト数。 |
Ln: | 実行中のブロックの行番号。 |
FS: | 送り速度、指令した主軸回転数、ドライバが報告する回転数。オンとオフだけの主軸は F: を報告します。フィードホールド中は送り速度が 0 になります。 |
Pn: | アクティブな入力:リミットは軸の文字、P プローブ、D 安全扉、H フィードホールド、S サイクルスタート、R リセット、E 非常停止。 |
WCO: | ワーク座標オフセット:数回のレポートごとに、また変更の後に。 |
Ov: | 送り、早送り、主軸のオーバーライド(%):数回のレポートごとに、また変更の後に。 |
A: | アクセサリ:S または C は主軸の時計回りまたは反時計回り、F はフラッド、M はミスト。 |
Sl: | 主軸インバータの負荷。 |
DTG: | 軸が停止するまでの残り距離($10 のビット 13)。 |
H: | 原点復帰済みかどうか。 |
T: | 工具交換中の工具。 |
TLR: | 基準工具長が設定されています($TLR)。 |
MPG: | ハンドルが制御権を持っている(1)か、持っていない(0)か。 |
In: | 直近の M66 の結果。 |
WCS:、Sc:、D: | ワーク座標系、スケーリング、旋盤の直径モード(フルレポート)。 |
AR、AR: | 自動レポートがオフ、またはオンでその間隔(フルレポート)。 |
FW: | ファームウェアの名前(フルレポート)。 |
SD: | コントローラのファイルシステムから実行しているプログラムの進み具合。 |
コントローラが送るその他の行
| 行 | タイミング |
|---|---|
ALARM:N | アラーム。N の値はアラームコードにすべて載っています。 |
[MSG:…] | メッセージ:コントローラ自身のもの、またはプログラムの (MSG,…)、(PRINT,…)、(DEBUG,…)。 |
[GC:…] | モーダル状態。$G または 0x83 の後。$10 のビット 9 を立てると、変更のたびに 1回。 |
[PRB:x,y,z:1] | プローブが作動した点と、接触したか(1)しなかったか(0)。 |
[TLO:…] | 工具長補正。 |
[PARAM:n=value] | $#=n の後。 |
[G54:…] … [G59.3:…]、[G28:…]、[G30:…]、[G92:…]、[T:…] | $# の後:オフセット、保存された位置、工具テーブル。 |
>line:ok、>line:error:N | 起動時に、スタートアップ行($N0、$N1)を実行しました。 |
$ コマンド
コントローラ自身も、$HELP Commands で一覧を表示します。
| コマンド | 動作 |
|---|---|
$、$HELP、$HELP <group> | ヘルプ、コマンド一覧、設定グループ(詳細付き)。 |
$$、$<n>、$<n>=<value>、$$=<n>、$+ | すべての設定、1つの設定、その設定の変更、1つの設定の詳細、すべての設定をもう一度。 |
$SED=<n> | 設定を説明します。 |
$#、$#=<n>、$#=<name> | オフセット、プローブの結果、保存された位置、1つのパラメータ。 |
$G | モーダル状態。 |
$I、$I+、$I=<text> | コントローラの識別情報(上記)、すべての情報、テキストを識別情報とともに保存。 |
$N、$N0=<line>、$N1=<line> | スタートアップ行の表示と保存。 |
$C | チェックモード:G コードは検査され、軸は何も動きません。リセットで終了します。 |
$X | アラームの後でロックを解除します。 |
$H、$HX、$HY、$HZ | 全軸または 1軸の原点復帰。 |
$J=<G-code> | ジョグ。 |
$B、$S、$O | ブロックスキップ、シングルブロック、オプショナルストップ:オンまたはオフ。 |
$SLP | スリープ。 |
$TLR、$TPW | 直近のプロービングを基準工具長として採用する。新しい工具をタッチプレートで測定する。 |
$RST=$、$RST=#、$RST=* | 設定を MC-1 の工場出荷時の値に戻す(原点復帰とリミットが有効、MC-1 のストローク)、オフセットを消去する、その両方とスタートアップ行。 |
$EA、$EAG、$EE、$EEG、$EG、$ES、$ESG、$ESH、$E* | アラーム、エラーコード、設定グループ、設定を、行または CSV で一覧表示します。 |
$SPINDLES、$SPINDLESH | 主軸の一覧。 |
$PINS、$PINSTATE、$PORTS | ボードのピン、補助入出力、シリアルポート。 |
$LIM、$HSS、$LEV | リミット入力、原点スイッチ、直近の入力イベント。 |
$RTC、$RTC=<date and time> | コントローラの時計(ISO 8601)。 |
$REBOOT | コントローラを再起動します。 |
$F、$F+、$F=<file>、$F<=<file>、$FR | コントローラのファイルシステム上のプログラムを一覧表示する、1つ実行する、1つ送り返す、最初からやり直す。 |
$FD=、$FMD=、$FRD=、$FF=yes、$FI、$FM、$FU、$CWD=、$PWD | 削除、フォルダーの作成または削除、フォーマット、情報、マウント、アンマウント、作業フォルダー。 |
すべての設定は設定にあります。