Do czego służy asterix (*) w Gcode?


10

Podczas monitorowania niskiego poziomu do drukarki wysyłana jest następująca sekwencja:

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

Ta sekwencja tylko włącza wentylator, umieszcza drukarkę w domu, a następnie wyłącza wentylator.

Pytanie: Do czego służy gwiazdka / gwiazda / (*) i dwie kolejne cyfry w każdej linii?


1
* gwiazdka - Asterix to postać z serii kreskówek.
Andrew Morton,

1
@AndrewMorton Więc to sprawiłoby, że wtedy gcode Rzymianie - a Asterix byłby ich sumą kontrolną, powstrzymując korupcję w jego okolicy?
Mtl Dev

Hmmm ... może. Rzymianie zbudowali wiele rzeczy, podobnie jak drukarka 3D.
Andrew Morton,

Odpowiedzi:


9

To jest suma kontrolna. Jest dodawany przez oprogramowanie hosta do kodu G, aby umożliwić podstawową weryfikację przez oprogramowanie układowe, czy kod G został przesłany bez zmian. Nie zmienia znaczenia kodu G, a to, co faktycznie reprezentuje twoja sekwencja, jest po prostu M106, G28, M107. Są N0,N1,N2,...to numery linii, a kombinacja numerów linii i sum kontrolnych służy do żądania ponownego wysłania wszystkich linii, które zostały uszkodzone podczas transmisji.


Czy znasz algorytm sumy kontrolnej tutaj zastosowany?
Carl Witthoft,

3
W Marlin wszystkie bajty dla poszczególnych znaków są razem edytowane XOR, a wynik powinien być taki sam jak suma kontrolna.
Tom van der Zanden,

1
Tylko XOR:byte checksum = 0; byte count = 0; while(instruction[count] != '*') checksum = checksum^instruction[count++];
Mtl Dev
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.