docs: add P900 E1 kiln emulator command documentation
This commit is contained in:
43
gcode_v2.md
43
gcode_v2.md
@@ -35,6 +35,7 @@
|
||||
| `P802` | Комментарий к программе | v2 ↓ |
|
||||
| `P810` | UUID программы (идентификатор для матчинга статусов контроллера и сервера) | v2 ↓ |
|
||||
| `P850` | Расчётная длительность программы (только для UI, не исполняется) | v2 ↓ |
|
||||
| `P900` | Режим эмулятора печи (замена реального датчика на математическую модель) | v2 ↓ |
|
||||
|
||||
### Команды-программы (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:**
|
||||
|
||||
Reference in New Issue
Block a user