В чем разница между M420 S и M420 S1?

Я читал на сайте Marlin о ABL (Auto Desk Leveling) и вижу, как мне кажется, противоречивую информацию.

В https://marlinfw.org/docs/features/auto_bed_leveling.html в нем говорится, что запуск G28 (Auto Home) отключит ABL и что для его повторной активации необходимо вставить код M420 S1.

Однако в https://marlinfw.org/docs/gcode/G029-mbl.html в нем говорится:

G28 отключает выравнивание стола. Следуйте инструкциям с помощью M420 S, чтобы включить выравнивание, или используйте RESTORE_LEVELING_AFTER_G28, чтобы автоматически продолжать выравнивание после этого. G28

Последнее относится в основном к ручному выравниванию стола, но в данном разделе речь идет об АБЛ.

Так в чем же разница между вариантами S и S1?

, 👍8


1 ответ


Лучший ответ:

9

TL;DR

Короткий ответ: "Нет никакой разницы!".


Длинный ответ

G-код анализируется построчно. Парсер в прошивке считывает команду и следующие за ней параметры (также называемые параметрами), комментарии отбрасываются.

Поэтому за параметром S должно следовать логическое значение 0 для False или 1 для True. Без значения это неопределенно и должно быть сообщено как неправильное или обработано как ложное (на мой взгляд). Но, разработчики выбрали по-другому. Если ожидается логическое значение, но оно не задано, то параметр анализируется как true. Это имеет аналогию с другими программными опциями или переключателями, например используемыми командами Linux.

Это означает, что для Marlin G-код M420 S точно такой же, как и M420 S1.

Я проверил это с помощью другой команды (это не зависит от команды G-кода, так как существует один процесс синтаксического анализа G-кодов и следующих параметров); M211, где M211 S точно такой же, как M211 S1.


,