Диафрагмы
Диафрагмы (дроссельные шайбы) наружных теплопроводов: где стоят, сколько, какой диаметр и что показал расчёт.
Возможности
- Плитки качества данных: «Готовы», «Нет линии», «Удалённая линия», «Нет топологии», «Нет состояния», «Количество», «Диаметр». Нажатие на плитку — отбор, повторное — снять.
- Плитки режима диаметра: «Диаметр записан», «Ожидает расчёт», «Диаметр недоступен» — тоже отбор. Справочные плитки: «Некорректное количество», «С координатой».
- Поиск по точному ID диафрагмы или линии, по месту установки, коду и наименованию узлов линии и узла-владельца схемы, регистрационному номеру линии и организации-владельцу. Фильтры «Качество данных», «Режим диаметра», «Место установки», «Состояние», «Признак линии».
- Паспорт диафрагмы: «Сетевая привязка», «Паспорт диафрагмы», «Архивные реквизиты линии», «Расчётный режим», «Все поля записи».
- «Редактировать свойства»: место установки, состояние, внутренний диаметр, количество последовательно установленных диафрагм, разрешение записи расчёта.
- «На карте» — переход к диафрагме, если у линии есть геометрия.
Как это работает
Где хранятся данные. Диафрагма — линия (linesobj) с карточкой в таблице diaphragms (связь по lineid), как в десктопе ТГИД. Поля: место установки (throtdiaphloc), диаметр отверстия (diameterinternal, мм), количество последовательно установленных (consinstdiaphcount), признак «Разрешение записи расчёта» (entrymark), состояние (stateid, справочник states). Результат расчёта — таблица dro_out, карточка берёт последнюю по дате расчёта запись для линии.
Почти все записи — диафрагмы во внутренних схемах потребителей: места «Вход теплового пункта», «Подпорная», «Отопление», «Вентиляция», ГВС. Поле «Внутренний потребитель» показывает узел, которому принадлежит схема.
Качество данных считает сервер, проверки идут по порядку, запись получает первую сработавшую:
| Плитка | Условие |
|---|---|
| «Нет линии» | линии из lineid нет в linesobj |
| «Удалённая линия» | линия помечена удалённой |
| «Нет состояния» | состояния нет в справочнике states |
| «Количество» | количество пусто или ≤ 0 |
| «Диаметр» | диаметр не больше 0 и нет разрешения записи расчёта |
| «Нет топологии» | у линии нет начального или конечного узла |
| «Готовы» | все проверки пройдены |
Плитка «Некорректное количество» считает все записи с количеством ≤ 0 или пустым. Поэтому она может быть больше плитки «Количество»: запись без линии попадает в «Нет линии».
Плитки проверяют только заполнение записи. Что расчёт не читает диафрагмы во внутренних схемах реальных потребителей (см. ниже), они не учитывают: такая запись тоже может быть «Готова».
Режим диаметра: диаметр > 0 — «диаметр записан»; диаметр 0 и поле «Разрешение записи расчёта» не пустое — «ожидает подбор расчётом»; иначе — «не определён».
Как диафрагму считает расчёт. Диафрагма на линии сети — ветвь с сопротивлением S = 10⁴ / d⁴ · n (м/(т/ч)²), где d — диаметр отверстия, мм, n — число диафрагм подряд. Потеря напора — S·G², G — расход, т/ч. Пустой или нулевой диаметр расчёт заменяет на 400 мм, нулевое количество — на 1. Проверка перед расчётом предупреждает: «Диафрагмы без диаметра отверстия — в расчёте 400 мм».
В расчёт попадают диафрагмы на линиях включённых фрагментов, кроме линий внутренних схем реальных потребителей. Дроссельные органы потребителя расчёт строит по карточке потребителя. При отметке «Расчёт дроссельных органов и запись сопротивлений» диаметры подбираются по формуле d = 10 · √(G / √H) мм, H — гасимый напор, м. Если диаметр меньше минимального из карточки, берётся минимальный, а напор пересчитывается: H = 10⁴ · G² / d⁴. Результат пишется в таблицу dr_out и в карточку потребителя (realconsumers). В таблицу diaphragms расчёт не пишет. Поэтому записи «ожидает подбор расчётом» после расчёта остаются с нулевым диаметром, а в паспорте такой диафрагмы — пояснение «Нулевой диаметр штатный: расчёт подберёт диаметр и покажет его в результатах, в паспорт диафрагмы он не записывается.»
Правка пишет пять полей таблицы diaphragms, проверяет версию строки и попадает в audit_log со старыми и новыми значениями.
Что нужно для работы
- Смотреть — любой вошедший.
- Править — право «Оборудование» → «Свойства» и включённая запись (
MUTATIONS_ENABLED=true). При охвате «свои» правится только оборудование своих участков и узлов. - «Расчётный режим» появляется после сохранённого расчёта, в котором участвовала линия диафрагмы.
Шаги
Откройте «Инструменты» и наберите в поиске «Диафрагмы» — пункт выделен рамкой.

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

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

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

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

Примеры
Копия Алматы. В diaphragms 16 719 записей. «Готовы» — 1, «Нет линии» — 2578, «Нет топологии» — 13 585, «Количество» — 443, «Диаметр» — 112. По режиму диаметра: записан — 5436, ожидает подбор расчётом — 10 909, не определён — 374. У 14 140 записей линия есть, но без узлов и без геометрии — это старые линии внутренних схем, поэтому «С координатой» — 1.
Сопротивление единственной готовой диафрагмы (копия Алматы). Диафрагма № 87473 на линии 388670, фрагмент 89: диаметр 20 мм, одна шайба. S = 10⁴ / 20⁴ · 1 = 0,0625 м/(т/ч)², то есть потеря напора — 0,0625·G² м.
Копия Астаны. 57 965 записей: «Готовы» — 40 107, «Диаметр» — 15 734, «Нет линии» — 1087, «Количество» — 684, «Удалённая линия» — 353. Из 56 507 записей с действующей линией 56 396 лежат во внутренних схемах реальных потребителей. Расчёт сети их не читает: дроссельные органы этих потребителей он подбирает по их карточкам.
Если не получается
- Предупреждение «Старые линии диафрагм без полной топологии и геометрии…» — в базе есть записи без узлов линии; они видны на плитке «Нет топологии». Если таких записей нет, предупреждения нет.
- «Результатов расчёта ещё нет: расход, потери напора и сопротивление не показаны и не подменяются нулями.» — в базе нет сохранённых результатов по диафрагмам.
- В карточке «расчётный результат для этой диафрагмы отсутствует» — для линии нет записи в
dro_out. - «Связанная линия не найдена в базе.» — линия удалена из базы; диафрагма — осиротевшая запись.
- «Старая линия не содержит начальный и конечный узлы…» — показать на карте и посчитать такую диафрагму нельзя.
- «Количество последовательно установленных диафрагм должно быть больше нуля.» — заполните количество.
- «Диаметр не задан, а разрешение записи расчёта отсутствует.» — укажите диаметр отверстия.
- «Состояние не найдено в справочнике состояний.» — выберите состояние из списка.
- Поиск по месту установки находит слишком много — например, «Подпорная» даёт все подпорные диафрагмы. Сузьте отбор фильтрами «Место установки» и «Состояние».
- «Запись изменена другим пользователем — обновите карточку» — нажмите «Перезагрузить объект» и повторите правку.
- «Не удалось загрузить диафрагмы», «Не удалось открыть паспорт диафрагмы» — нет связи с сервером API.
Для администратора
- Запись:
MUTATIONS_ENABLED=true; право — действие «Свойства» для вида «Оборудование». - Таблицы десктопные:
diaphragms,states,externalsignline,dro_out,dr_out,calculation; веб их не создаёт. - Профиль расчёта —
HEATNET_PROFILE(legacyилиfixed). Замена нулевого диаметра на 400 мм действует в обоих профилях.
Для разработчика
- Чтение:
GET /api/network-diaphragms/lookups,GET /api/network-diaphragms/items(page,page_size,quality_status,diameter_mode,state_id,external_sign_line_id,fragment_id,line_id,installation_place,search),GET /api/network-diaphragms/items/{diaphragm_id}—routers/equipment.py,database/network_diaphragms.py(searchищет и по месту установки). Предупреждение о старых линиях — приcounts.topology_missing > 0. - Правка:
GET|PUT /api/v1/equipment-edit/diaphragms/{row_id}; поля сверх карточки десктопа —EXTRA_FIELDS["diaphragms"]вrouters/equipment_edit.py. - Расчёт:
heatnet/physics/resistance.py(diaphragm_resistance), чтение линий —heatnet/io/source.py(line_objects), дроссели потребителей —heatnet/output/dross.py,heatnet/output/dross_sizing.py(washer,orifice), проверка нулей —heatnet/validate.py(LINE_DEFAULTS). - Веб:
components/NetworkDiaphragmJournalDialog.vue,services/equipmentEditService.ts. - Тесты: API —
tests/test_equipment_router.py,tests/test_equipment_edit_router.py,tests/test_throttling_calc.py; веб —tests/utils/equipmentEdit.spec.ts; e2e —e2e/functions/equipment-registries.spec.ts(«Правка паспорта диафрагмы»: изменить место установки и вернуть прежнее).
