Gcodeのアスタリスク(*)の目的は何ですか?


10

低レベルの監視を行うと、次のシーケンスがプリンターに送信されます。

N0 M106*36 
N1 G28*18 
N2 M107*39

このシーケンスでは、ファンをオンにしてプリンターをホームに戻し、ファンをオフにします。

質問:アスタリスク/スター/(*)と各行の後続の2桁の目的は何ですか?


1
*アスタリスク- アステリックスは漫画シリーズのキャラクターです。
Andrew Morton

1
@AndrewMortonそれで、gcodeがローマ人になります-アステリックスがチェックサムであり、彼のローカルエリアの破損を止めますか?
Mtl Dev

うーん...多分。ローマ人は、3Dプリンターのように多くのことを作りました。
Andrew Morton

回答:


9

それはチェックサムです。これはホストソフトウェアによってGコードに追加され、Gコードが変更されずに送信されたことをファームウェアが基本的に確認できるようにします。Gコードの意味は変更されません。また、シーケンスが実際に表すのはだけM106, G28, M107です。N0,N1,N2,...行番号であり、行番号とチェックサムの組み合わせは、送信中に破損したすべての行の再送信を要求するために使用されます。


ここで使用されているチェックサムアルゴリズムを知っていますか?
Carl Witthoft、2016

3
マーリンでは、個々の文字のすべてのバイトがXORされ、結果はチェックサムと同じになります。
トムファンデルザンデン、

1
XORのみ:byte checksum = 0; byte count = 0; while(instruction[count] != '*') checksum = checksum^instruction[count++];
Mtl Dev
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.