Gcode中的asterix(*)的作用是什么?


10

在进行一些低级别监视时,以下序列将发送到打印机:

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

此顺序仅打开风扇,将打印机放回原处,然后关闭风扇。

问题:星号/星号/(*)和每行的后两位数字的作用是什么?


1
*星号-Asterix是卡通系列中的角色。
安德鲁·莫顿

1
@AndrewMorton那么这将使gcode成为罗马人-以Asterix作为他们的校验和,阻止他当地的腐败?
Mtl Dev

嗯...也许 罗马人确实做了很多事情,就像3D打印机一样。
安德鲁·莫顿

Answers:


9

那是校验和。它是由主机软件添加到G代码中的,以允许固件进行一些基本验证,以确保G代码未传输。它不会改变G代码的含义,而您的序列实际代表的只是M106, G28, M107。这些N0,N1,N2,...是行号,并且行号和校验和的组合用于请求重新发送在传输过程中损坏的任何行。


您是否知道这里使用的校验和算法?
卡尔·威索夫特

3
在Marlin中,单个字符的所有字节都经过XOR运算,结果应与校验和相同。
汤姆·范德赞丹

1
只是XOR:byte checksum = 0; byte count = 0; while(instruction[count] != '*') checksum = checksum^instruction[count++];
Mtl Dev
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.