Элеваторы
Элеваторы потребителей: сопла и камеры смешения, привязка к сети и что ждёт расчёта.
Возможности
- Плитки качества данных: «Готовы», «Нет линии», «Удалённая линия», «Нет топологии», «Нет состояния», «Нет сопла», «Ожидают расчёт». Нажатие на плитку — отбор, повторное — снять.
- Поле поиска «ID, линия, номер или узел»: точный ID элеватора или линии, установленный номер, материал, код и наименование узлов линии, регистрационный номер линии. Фильтры «Качество данных», «Состояние», «Фрагмент».
- Колонки списка: тип и установленный номер, линия и её узлы, диаметр сопла, диаметр камеры смешения, материал, состояние, качество.
- Паспорт элеватора только для просмотра: «Сетевая привязка», «Паспорт» (тип, установленный номер, диаметры сопла и камеры, длина корпуса, фланцы, патрубок подсоса, материал, состояние, признак расчёта), «Архивные реквизиты линии», «Последний расчёт», «Все поля записи».
- «На карте» — переход к элеватору, если у его линии есть геометрия.
Как это работает
Где хранятся данные. Элеватор — линия (linesobj) с карточкой в таблице elevators (связь по lineid), как в десктопе ТГИД. Поля: тип (elevatortype), установленный номер (elevatornuminst), диаметр сопла (diameternozzle, мм), признак расчёта (entrymark), диаметр камеры смешения (diameterchamber), длина корпуса, диаметры фланцев и патрубка подсоса, материал, состояние (stateid, справочник states). Элеваторы лежат во внутренних схемах потребителей.
Качество данных считает сервер, проверки идут по порядку, запись получает первую сработавшую:
| Плитка | Условие |
|---|---|
| «Нет линии» | линии из lineid нет в linesobj |
| «Удалённая линия» | линия помечена удалённой |
| «Нет состояния» | состояния нет в справочнике states |
| «Ожидают расчёт» | диаметр сопла 0 и признак расчёта заполнен |
| «Нет сопла» | диаметр сопла 0 или пуст, признака расчёта нет |
| «Нет топологии» | у линии нет начального или конечного узла |
| «Готовы» | все проверки пройдены |
Плитки проверяют только заполнение записи. Что расчёт не читает элеваторы из внутренних схем реальных потребителей (см. ниже), они не учитывают.
Что берёт расчёт. Расчёт сети строит схему потребителя по его карточке (realconsumers) и шаблону схемы, а не по журналу элеваторов. Линии внутренних схем реальных потребителей из таблицы elevators расчёт не читает. Сопло в схеме — ветвь с сопротивлением S = (9,6 / dс)⁴, где dс — «Диаметр сопла элеватора, установленный» из карточки потребителя, мм. Если в карточке диаметр 0, у ветви нет сопротивления.
Коэффициент смешения u. У схем без элеватора u = 0. При отметке «С учетом рассчитанных коэффициентов смешения» (только расчёт с температурным графиком) u = (t1 − t3) / (t3 − t2) по графику источника при расчётной температуре наружного воздуха: t1 — подача, t2 — обратка, t3 — температура после смешения. Иначе u берётся из поля карточки потребителя «Коэффициент смешения элеватора».
Подбор сопла выполняет расчёт с отметкой «Расчёт дроссельных органов и запись сопротивлений» — по Апарцеву, как в десктопе:
- диаметр сопла dс = 9,6 · √(G / √H) мм, где G — расход на отопление, т/ч, H — напор, который гасит сопло, м;
- если dс меньше минимально допустимого из карточки потребителя, берётся минимальный, а напор пересчитывается: H = 8493,47 · G² / dс⁴;
- диаметр горловины dг = 8,5 · √(G · (1 + u) / √hс) мм, где hс — расчётные потери напора в системе отопления из карточки потребителя (по умолчанию 1,5 м);
- номер элеватора по горловине: до 10 мм — № 0, 15 — № 1, 20 — № 2, 25 — № 3, 30 — № 4, 35 — № 5, 47 — № 6, 59 — № 7. Больше 59 мм — № 7 и сообщение в протоколе: «Элеваторное смешение должно быть заменено на насосное смешение»;
- если гасимый напор больше удвоенного требуемого, в протоколе — «элеватор работает при повышенном напоре. Возможны вибрация и шум.»; на ступени 6 при напоре больше 40 м половину гасит диафрагма перед элеватором.
Подобранные диаметр сопла и номер элеватора расчёт пишет в таблицу dr_out и в карточку потребителя (diameternozzle, elevatornuminst), кроме потребителей с запретом записи расчётного диаметра. В таблицу elevators расчёт не пишет. Поэтому записи «Ожидают расчёт» после расчёта остаются с нулевым соплом.
Что нужно для работы
- Смотреть — любой вошедший. Правки в этом окне нет.
- Чтобы расчёт подобрал сопла, нужен плановый расчёт с отметкой «Расчёт дроссельных органов и запись сопротивлений» и правом записывать результаты в базу.
Шаги
Откройте «Инструменты» и наберите в поиске «Элеваторы» — пункт выделен рамкой.

Нажмите пункт — откроется окно.

Плашки над списком — качество данных: сколько записей готовы к расчёту, а у скольких чего-то не хватает (нет линии, нет топологии, нет состояния, нет сопла; отдельно — сколько ожидают расчёт сопла). Красные — критично (расчёт их не учтёт), оранжевые — требуют внимания. Нажмите плашку — список сузится до таких записей.

В списке остались только записи с этой проблемой. Поиск (ID, линия, номер или узел) и фильтры «Качество», «Состояние», «Фрагмент» работают вместе с отбором; «Сбросить» снимает всё, «Обновить» перечитывает журнал.

Кнопка в строке открывает паспорт элеватора: линия, сопло, камера смешения. Расчёт с подбором сопла записывает диаметр в карточку потребителя, паспорт элеватора не меняется.

Примеры
Копия Алматы: журнал есть, расчёт берёт карточки. В elevators 2754 записи, «Готовы» — 0: «Нет линии» — 548, «Нет топологии» — 2173, «Ожидают расчёт» — 33. Установленные номера: № 2 — 1329, № 1 — 459, № 3 — 391, № 0 — 342, № 4 — 119, № 5 — 50, № 6 — 15, № 7 — 8. Тип у 2709 записей — «0» (не задан). В карточках потребителей диаметр сопла заполнен у 19 004 из 26 214 — эти значения и берёт расчёт.
Копия Астаны: сопла только в журнале. В elevators 5364 записи: «Готовы» — 4912, «Ожидают расчёт» — 346, «Нет сопла» — 54, «Удалённая линия» — 35, «Нет линии» — 17. Все 5308 элеваторов с действующей линией лежат во внутренних схемах реальных потребителей. При этом в карточках всех 18 028 потребителей диаметр сопла пуст, и расчёт считает сопло ветвью без сопротивления, пока сопла не подобраны расчётом дроссельных органов.
Если не получается
- «Элеваторы не найдены» при пустых фильтрах — в базе города нет элеваторов.
- «Связанная линия отсутствует.» — линия удалена из базы, запись осиротела.
- «У линии отсутствует начальный или конечный узел.» — старая линия внутренней схемы без узлов, на карте её не показать.
- «Состояние не найдено в справочнике.» — у записи состояние, которого нет в
states. - «Диаметр сопла не задан и признак расчётного подбора отсутствует.» — заполните сопло в десктопе или в карточке потребителя.
- «Диаметр сопла не задан: расчёт с подбором сопла запишет его в карточку потребителя, паспорт элеватора не меняется.» — сопло 0 при заполненном признаке расчёта; это штатно.
- «Не удалось загрузить элеваторы», «Не удалось открыть паспорт элеватора» — нет связи с сервером API.
Для администратора
- Таблицы десктопные:
elevators,states,realconsumers,any_out,dr_out,calculation; веб их не создаёт. - Профиль расчёта —
HEATNET_PROFILE(legacyилиfixed). - Сервер умеет править таблицу
elevators(/api/v1/equipment-edit/elevators/{id}, право «Оборудование» → «Свойства»,MUTATIONS_ENABLED=true), но окно журнала правку не предлагает.
Для разработчика
- Чтение:
GET /api/elevators/lookups,GET /api/elevators(page,page_size,search,quality_status,state_id,fragment_id,line_id,node_id),GET /api/elevators/{elevator_id}—routers/equipment.py,database/elevators.py. - Расчёт: схема потребителя —
heatnet/io/internal_schemes.py(ветвьEL), коэффициент смешения —heatnet/output/required.py(mixing_coeff), подбор сопла —heatnet/output/dross_sizing.py(elevator), запись в карточку —heatnet/io/writer.py(write_throttles). - Веб:
components/ElevatorJournalDialog.vue; ручной подбор сопла —components/ThrottlingCalculatorDialog.vue. - Тесты: API —
tests/test_equipment_router.py,tests/test_throttling_calc.py; e2e —e2e/functions/equipment-registries.spec.ts(реестры оборудования: «найдено» как в ответе API).
