Какова цель asterix (*) в Gcode?


10

При некотором низкоуровневом мониторинге на принтер отправляется следующая последовательность:

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

Эта последовательность просто включает вентилятор, включает принтер, затем выключает вентилятор.

Вопрос: Какова цель звездочки / звезды / (*) и двух последующих цифр в каждой строке?


1
* звездочка - Астерикс - персонаж мультсериала.
Эндрю Мортон

1
@AndrewMorton Итак, что же тогда сделает римлянин gcode, а Астерикс будет их контрольной суммой, остановив коррупцию в его районе?
Mtl Dev

Хм ... может быть. Римляне построили много вещей, как это сделал 3-й принтер.
Эндрю Мортон

Ответы:


9

Это контрольная сумма. Он добавляется программным обеспечением хоста в G-код, чтобы обеспечить некоторую базовую проверку встроенного ПО, что G-код был передан без изменений. Это не меняет смысла G-кода, и то, что на самом деле представляет ваша последовательность, просто M106, G28, M107. Это N0,N1,N2,...номера строк, а комбинация номеров строк и контрольных сумм используется для запроса повторной отправки любых строк, которые были повреждены во время передачи.


Вы случайно не знаете алгоритм контрольной суммы, используемый здесь?
Карл Виттофт

3
В Marlin все байты для отдельных символов XOR-ed вместе, и результат должен быть таким же, как контрольная сумма.
Том ван дер Занден

1
Просто XOR:byte checksum = 0; byte count = 0; while(instruction[count] != '*') checksum = checksum^instruction[count++];
Mtl Dev
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.