Запорная арматура

Запорная и регулирующая арматура: задвижки и затворы сети, их назначение, диаметр и состояние, каталог типоразмеров.

Где найти
«Инструменты» (значок чемоданчика справа вверху) → Оборудование сети → «Запорная арматура». То же — палитрой команд: Ctrl+K и начните набирать название.
Права
доступно всем, кто вошёл.
Читаю как

Возможности

  • Вкладки «Оборудование» и «Каталог задвижек» (в скобках — число записей). В одном списке — задвижки и регулирующая арматура. В подзаголовке окна — «… · найдено N · готовы X из Y»: сколько записей нашлось и сколько из всех готовы.
  • Плитки качества привязки: «Готовы», «Нет линии», «Удалённая линия», «Неизвестное назначение», «Диаметр под вопросом». Нажатие на плитку — отбор, повторное — снять.
  • Поиск по названию, назначению, марке из каталога, коду и наименованию узлов линии, фрагменту, а также по точному ID арматуры или линии. Фильтры «Тип оборудования», «Качество привязки», «Состояние», «Фрагмент», «Назначение».
  • Карточка: «Сетевая привязка» (линия, начальный и конечный узлы, фрагмент), «Исходные параметры», «Паспорт модели» (если задвижка связана с каталогом), «Последний расчётный режим».
  • «Редактировать свойства»: назначение, состояние (открыта, закрыта, частично открыта), условный диаметр, степень открытия, относительная утечка, число оборотов, управление затвором; у регулирующей арматуры ещё заданный перепад и заданный расход.
  • Переход к арматуре на карте, если у её линии есть геометрия.
  • Карточка модели каталога: марка, DN, давление, температура, присоединение, привод, материал, масса, изготовитель и задвижки этой модели.

Как это работает

Где хранятся данные. Арматура в базе ТГИД — линия сети (linesobj) с карточкой в таблице своего вида: задвижки — dampers, регулирующая арматура — regularmatures (связь по lineid). Задвижки и регулирующая арматура нумеруются независимо, поэтому ID может совпасть. Состояние — справочник damperarmaturestates. «Назначение» — у задвижки поле «Место установки» десктопа (dispatcherswitch), у регулирующей арматуры — «Вид арматуры» (regarmtype). Каталог задвижек — standarddampers, ссылка задвижки на модель — standarddamplink (0 — не связана). У регулирующей арматуры ссылки на каталог нет.

Качество привязки определяется по порядку:

Статус Условие
«Нет линии» линии с таким id нет
«Удалённая линия» линия помечена удалённой
«Неизвестное назначение» назначение пустое или «?»
«Диаметр под вопросом» условный диаметр пуст, не больше 0 или больше 5000 мм
«Готовы» всё в порядке

Модель каталога «полная», если заполнены марка, DN, давление и температура.

Что берёт расчёт. Движок расчёта читает состояние, условный диаметр и степень открытия:

  • «закрыта» — линия в расчётную схему не входит;
  • «открыта» — коэффициент сопротивления ζ = 0,35;
  • «частично открыта» — ζ по степени открытия ступенями: до 10 % — 1300, 50 % — 6,55, 90 % — 1,0, от 100 % — 0,35;
  • сопротивление S = 10 / Kv², где Kv = 5,04 · F / √ζ, F = π/4 · (DN² / 100) · 0,95; при диаметре 0 сопротивление практически нулевое.

У регулирующей арматуры диаметр по умолчанию — 1000 мм; «Заданный перепад» в расчёте даёт постоянную потерю напора на этой линии.

Трассировка и локализация. Закрытая задвижка на участке основной схемы — постоянный барьер: вода через неё не проходит ни при трассировке, ни при поиске отключаемых потребителей. Закрытые задвижки внутренних схем узлов постоянным барьером не служат. Если в трассировке «Связанные» или «Зона» включена остановка на «Задвижки», обход останавливается на любом участке с задвижкой и на узле, во внутренней схеме которого есть задвижка, — открытой или закрытой. Регулирующая арматура в трассировке не учитывается.

Результат расчёта. «Последний расчётный режим» — последняя по дате строка zd_out (задвижки) или zd2_out (регулирующая арматура) по линии: состояние, расход, потеря напора, сопротивление, напоры в конце.

Координаты. Точка линии, а для арматуры внутренней схемы — точка узла-владельца. У линий расчётной схемы без геометрии координат нет; сколько записей можно показать на карте, пишет плашка над списком.

Правка. Сохраняются только изменённые поля, с проверкой версии строки. Изменение пишется в журнал правок, кеш графа для трассировки и локализации отключений сбрасывается — новые закрытые задвижки учитываются сразу. Связь задвижки с моделью каталога в окне не меняется.

Что нужно для работы

  • Смотреть — любой вошедший.
  • Править — право «Оборудование» → «Свойства» (при охвате «свои» — только арматура на участках, созданных этим пользователем) и включённая запись (MUTATIONS_ENABLED=true). Без этого кнопки «Редактировать свойства» нет. Пользователю-роли PostgreSQL это право даёт предметное право «Правка гидравлической сети (режимы)».
  • Для «Последнего расчётного режима» — сохранённый расчёт сети.

Шаги

  1. Откройте «Инструменты» и наберите в поиске «Запорная арматура» — пункт выделен рамкой.

    Пункт «Запорная арматура» в панели «Инструменты»

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

    Окно «Запорная арматура»

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

    Запорная арматура: шаг 3

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

    Запорная арматура: шаг 4

  5. Кнопка с карточкой в строке открывает арматуру: линия, назначение, диаметр и состояние. Закрытые задвижки учитывает трассировка и локализация аварий.

    Запорная арматура: шаг 5

  6. Вкладка «Каталог задвижек» — типоразмеры арматуры.

    Запорная арматура: шаг 6

Примеры

Копия Алматы: что в журнале. 14 939 задвижек, регулирующей арматуры нет. «Готовы» — 11 823, «Нет линии» — 2456, «Удалённая линия» — 272, «Неизвестное назначение» — 388, «Диаметр под вопросом» — 0. Открыто 14 925, закрыто 14. Координаты есть у 478 задвижек: остальные стоят на линиях расчётной схемы без геометрии или потеряли линию. Самые частые назначения: «Вход ТП» и «Выход ТП» — по 3605, «Вход СО» — 3406, «ОткрГВ подача» — 3399, «Секционирующая» — 52.

Там же: какие задвижки закрыты. Из 14 закрытых 12 стоят на удалённых линиях. На действующих — две секционирующие во фрагменте «Магистральные сети АлЭС (ЦЭР-ВЭР-ЗЭР-СЭР)»: №34 (линия 2172, 1-12А — 1-13А, DN 700) и №42 (линия 2180, 1-юк-10 — 1-юк-9, DN 518). Эти две линии трассировка всегда считает барьерами.

Сопротивление задвижки DN 700. F = 0,7854 · 4900 · 0,95 ≈ 3656. Открытая (ζ = 0,35): Kv ≈ 31 146, S ≈ 1,03·10⁻⁸. Открытая на 50 % (ζ = 6,55): Kv ≈ 7200, S ≈ 1,93·10⁻⁷ — почти в 19 раз больше.

Каталог. В копии Алматы 6 моделей 30ч47бр (DN 50…200, давление 101,93, до 200 °C, ручной привод), ни одна задвижка с ними не связана. В копии Астаны те же 6 моделей и 47 связанных задвижек из 66 385.

Если не получается

  • «Результатов расчёта по арматуре ещё нет: паспортные параметры видны уже сейчас, расход, потеря напора и сопротивление появятся после сохранения расчёта сети.» — в базе нет сохранённых расчётов.
  • «Не удалось загрузить арматуру» — нет связи с сервером; нажмите «Повторить».
  • «Связанная линия отсутствует: сетевой контекст и позиционирование недоступны.» — запись ссылается на несуществующую линию; исправить можно только в десктопе.
  • «Связанная линия помечена удалённой и исключена из активной расчётной схемы.»
  • «Назначение не задано (в исходных данных «?») и требует уточнения.» — заполните «Назначение» в правке.
  • «Условный диаметр равен нулю или выходит за ожидаемый диапазон.» — проверьте «Условный диаметр».
  • «Паспортная модель не выбрана: задвижка не связана с моделью каталога.» — у задвижки нет ссылки на каталог; на расчёт это не влияет. У регулирующей арматуры каталога нет, и этой плашки у неё не бывает.
  • «Ни одна установленная задвижка базы не связана с этой моделью.» — в карточке модели каталога, если с ней не связана ни одна задвижка.
  • «Объект изменён другим пользователем — перезагрузите карточку и повторите правку.» — запись изменили после того, как вы открыли правку.
  • «Нет права «Свойства: оборудование (свои)»» — у роли нет права на правку оборудования.

Для администратора

  • Запись: MUTATIONS_ENABLED=true, право «Оборудование» → «Свойства»; при AUTH_BACKEND=pg окончательно права проверяет база.
  • Таблицы десктопные (dampers, regularmatures, damperarmaturestates, standarddampers, zd_out, zd2_out); веб их не создаёт.
  • Правка пишется в audit_log (UPDATE, старые и новые значения).

Для разработчика

  • Чтение: GET /api/network-armatures/lookups, GET /api/network-armatures/items (page, page_size до 200, equipment_type: damper | regulating, quality_status: ready | line_missing | line_removed | purpose_unknown | diameter_suspicious, state_id, fragment_id, purpose, line_id, search), GET /api/network-armatures/items/{equipment_type}/{id}, GET /api/network-armatures/catalog, GET /api/network-armatures/catalog/{id} — routers/equipment.py, database/network_armatures.py. Подзаголовок — counts.ready из counts.total; плашка «Паспортная модель не выбрана» — только при equipment_type === 'damper' без модели, «Ни одна установленная задвижка…» — при installed_count = 0.
  • Правка: GET|PUT /api/v1/equipment-edit/dampers/{id} и …/regularmatures/{id} — routers/equipment_edit.py (дополнительное поле q у регулирующей арматуры), database/typed_edit.py.
  • Расчёт: heatnet/physics/resistance.py (damper_resistance, ksi), heatnet/io/reader.py. Трассировка: database/outage_simulation.py (граф, normally_closed_lines), database/network_trace.py.
  • Веб: components/NetworkArmatureJournalDialog.vue (ключ networkArmature), services/equipmentEditService.ts.
  • Тесты: API — tests/test_equipment_router.py, tests/test_equipment_edit_router.py, tests/test_network_trace.py, tests/test_outage_simulation.py; веб — tests/utils/equipmentEdit.spec.ts; e2e — e2e/functions/equipment-registries.spec.ts.
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо