docs: add P900 E1 kiln emulator command documentation

This commit is contained in:
2026-03-28 02:47:26 +03:00
parent 202be5de2f
commit 1104b3e8d6

View File

@@ -35,6 +35,7 @@
| `P802` | Комментарий к программе | v2 ↓ | | `P802` | Комментарий к программе | v2 ↓ |
| `P810` | UUID программы (идентификатор для матчинга статусов контроллера и сервера) | v2 ↓ | | `P810` | UUID программы (идентификатор для матчинга статусов контроллера и сервера) | v2 ↓ |
| `P850` | Расчётная длительность программы (только для UI, не исполняется) | v2 ↓ | | `P850` | Расчётная длительность программы (только для UI, не исполняется) | v2 ↓ |
| `P900` | Режим эмулятора печи (замена реального датчика на математическую модель) | v2 ↓ |
### Команды-программы (K/M-команды) ### Команды-программы (K/M-команды)
@@ -428,6 +429,48 @@ P850 Firing and cooling to 300°C will take 1 day, 2 hours, 27 minutes S95270
--- ---
## P900 — режим эмулятора печи
```gcode
P900 E1 ; Активировать эмулятор с параметрами по умолчанию
P900 E1 P7000 ; Эмулятор: нагреватель 7000 Вт
P900 E1 P7000 C30000 ; Эмулятор: нагреватель 7000 Вт, тепловая ёмкость 30000 Дж/°C
P900 E1 P7000 C30000 L5.74 ; Эмулятор: все три параметра явно
```
**Pretty G-code (human-readable комментарии):**
```gcode
P900 Emulator E1 power P7000 W capacity C30000 J/C loss L5.74 W/C
```
**Параметры:**
| Параметр | Описание |
|---|---|
| `E1` | **Обязательно.** Тип эмулятора. Единственное допустимое значение — `1`. |
| `P<Вт>` | Максимальная мощность нагревателя в Ваттах (дефолт: 7000). |
| `C<Дж/°C>` | Тепловая ёмкость печи в Дж/°C (дефолт: 30000). |
| `L<Вт/°C>` | Коэффициент теплопотерь в Вт/°C (дефолт: 7000/1220 ≈ 5.74). |
**Особенности:**
- При наличии команды `P900 E1` в программе реальный датчик температуры заменяется математической моделью печи на весь период выполнения программы.
- Температура эмулятора начинается с 25°C при каждом старте программы.
- Математическая модель (уравнение теплового баланса, шаг 1 секунда):
```
T_new = T_old + dt × (P_heater − L × T_old) / C
```
где `P_heater = pwm_percent × P / 100`.
- Параметр `L` описывает теплопотери конкретной печи: при `P900 E1 P7000 L5.74` равновесная температура при полном PWM составит `7000 / 5.74 ≈ 1220°C`.
- Более высокая мощность `P` при том же `L` даёт более высокую равновесную температуру.
- Значения `E` кроме `1` не поддерживаются и приводят к ошибке парсинга.
- Эмулятор деактивируется при сбросе или прерывании программы, после чего контроллер снова использует реальный датчик.
- Эмулируемая температура публикуется в MQTT в топик `/data/kiln/kiln_temp`.
- Флаг активности эмулятора публикуется в `/data/gcode/emulator_active` (0/1).
---
## Пример последовательности ## Пример последовательности
**Стандартный G-code:** **Стандартный G-code:**