В качестве условия выполнения сценария будут использоваться состояния элементов объектной модели (Object Model), идентификаторы которых можно определить при помощи плагина Object Model Browser.
Например, мы хотим использовать состояния нагревателей и драйверов шаговых двигателей.
Температура нагревателя 0
heat.heaters[0].active
Температура нагревателя 1
heat.heaters[1].active
Для драйверов проверяется, обнулены ли оси
move.axes[0].homed move.axes[1].homed move.axes[2].homed
Добавим в daemon.g следующие строки, которые включат вентилятор 2 при нагреве или работе драйверов.
Код: Выделить всё
if heat.heaters[0].active>0 || heat.heaters[1].active>0 || move.axes[0].homed || move.axes[1].homed || move.axes[2].homed
M106 P2 S1
else
M106 P2 S0
Задержка выключения вентилятора
Добавим глобальную переменнуюl fan_controller = 0 в конец файла конфигурации config.g, которая будет использоваться для хранения времени.
При переходе в режим ожидания будет выполняться проверка пройденного времени.
Код: Выделить всё
if heat.heaters[0].active>0 || heat.heaters[1].active>0 || move.axes[0].homed || move.axes[1].homed || move.axes[2].homed
M106 P2 S1
set global.fan_controller = state.upTime
else
if {state.upTime - global.fan_controller} >= 30
M106 P2 S0