Насосное оборудование
Насосное оборудование: установленные агрегаты насосных станций, их модели и характеристики H(Q), N(Q), КПД(Q) для гидравлического расчёта.
Возможности
- Две вкладки: «Установленные агрегаты» и «Каталог моделей» (в скобках — число записей).
- Плитки готовности агрегатов: «Настроены», «Без модели», «Без коэффициентов», «Нет линии». Нажатие на плитку — отбор, повторное — снять. В каталоге плитки качества характеристики: «Готовы», «Порядок Q», «Неполные».
- Поиск по номеру агрегата, станции, модели и её типу, фрагменту, а также по точному ID агрегата или линии. Фильтры «Готовность характеристики», «Состояние», «Фрагмент»; в каталоге — «Качество характеристики», «Тип насоса».
- Карточка агрегата: «Установленный агрегат», «Паспорт модели», «Последняя рабочая точка», таблица коэффициентов y = a₀ + a₁Q + a₂Q², график H(Q), N(Q), КПД(Q) и паспортные точки модели.
- «Редактировать свойства»: модель (тип насоса), заданный напор, номер, станция, состояние, число параллельных агрегатов, привод, рабочее колесо, заданные частота и диаметр колеса.
- «На карте» и значок прицела в строке — переход к насосу, если у его линии есть геометрия.
- Карточка модели каталога: паспорт, график, точки и список агрегатов с этой моделью (переход в карточку агрегата).
Как это работает
Где хранятся данные. Насос в базе ТГИД — линия сети (linesobj) с карточкой в таблице pumps (связь по lineid). Модель — ссылка standardpumpid на каталог standardpumps. Справочники: состояние (states), привод (drivetypes), рабочее колесо (rotordiametertypes), электродвигатель (standardems). Станция — текстовое поле агрегата; карточка насосной станции (pumpstations) ищется по совпадению названия. Фрагмент агрегата — фрагмент его линии.
Готовность агрегата определяется по порядку:
| Статус | Условие |
|---|---|
| «Нет линии» | линии с таким id нет в linesobj |
| «Без модели» | модель не выбрана или её нет в каталоге |
| «Без коэффициентов» | хоть одна из шести тройок коэффициентов агрегата (H, N, КПД — номинальные и приведённые) вся нулевая |
| «Настроены» | всё есть |
Список сортируется так же: сначала «Нет линии», в конце — настроенные.
Качество модели в каталоге. «Неполные» — заполнено меньше 10 паспортных точек (в точке нужны Q, H, N и КПД) или нет рабочей зоны (Q мин. < Q макс.). «Порядок Q» — расход в точках идёт не строго по возрастанию. Остальные — «Готовы».
Что берёт расчёт. Движок расчёта читает из pumps заданный напор (thrust), приведённые коэффициенты H(G) (r0_z, r1_z, r2_z) и состояние:
- заданный напор не ноль — насос даёт постоянный напор, характеристика не используется;
- заданный напор ноль — напор по кривой H = a₀ + a₁G + a₂G² с приведёнными коэффициентами;
- состояние «закрыт» — линия насоса в расчётную схему не входит.
Номинальные коэффициенты и коэффициенты N(Q), КПД(Q), паспортные точки модели на напор в расчёте не влияют. Поэтому агрегат с плиткой «Без модели», но с заданным напором в расчёте участвует.
График. Сплошные линии — паспортные точки модели (H, N, КПД на трёх осях), оранжевая полоса — рабочая зона. Пунктир — приведённые кривые агрегата по его коэффициентам, 41 точка от Q мин. до Q макс. Красная точка — рабочая точка из последнего расчёта (ns_out: расход и напор). Пока расчёт не сохранён, вверху — плашка, а в карточке «рабочая точка пока не рассчитана».
Правка. Сохраняются только изменённые поля таблицы pumps с проверкой версии строки: если запись успели изменить, сохранение отклоняется. При смене модели в вебе коэффициенты агрегата не пересчитываются — меняется только ссылка на модель. Каждое изменение пишется в журнал правок со старыми и новыми значениями.
Что нужно для работы
- Смотреть — любой вошедший.
- Править — право «Оборудование» → «Свойства» (при охвате «свои» — только оборудование на участках, созданных этим пользователем) и включённая запись (
MUTATIONS_ENABLED=true). Без этого кнопки «Редактировать свойства» нет. Пользователю-роли PostgreSQL это право даёт предметное право «Правка гидравлической сети (режимы)». - Для рабочей точки — сохранённый расчёт сети.
Шаги
Откройте «Инструменты» и наберите в поиске «Насосное оборудование» — пункт выделен рамкой.

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

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

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

Кнопка с карточкой в строке открывает агрегат: модель, рабочая зона, номинальные Q и H, характеристики H(Q), N(Q), КПД(Q). Если задан напор насоса, расчёт берёт его постоянным и кривую не использует; коэффициенты кривой хранятся у агрегата.

Вкладка «Каталог моделей» — модели насосов с паспортными точками; из неё модель назначается агрегатам.

Примеры
Копия Алматы: состояние журнала. 368 агрегатов: «Настроены» — 1, «Без модели» — 365, «Без коэффициентов» — 0, «Нет линии» — 2. Открыто 339, закрыто 29. При этом у 343 агрегатов задан рабочий напор (от 8,7 до 140 м), из них 342 — среди «Без модели»: в расчёте они работают с постоянным напором. В каталоге 80 моделей: 74 «Готовы», 6 «Порядок Q», используется одна.
Там же: единственный настроенный агрегат. ID 405, линия 388549, фрагмент «Маг. сети для расчета НС», модель СЭ1250-140 (центробежный спиральный), 2 агрегата параллельно, колесо 470 мм, 1500 об/мин. Рабочая зона модели — 850…1330 т/ч, номинал 1250 т/ч при 140 м. Модель помечена «Порядок Q»: девятая и десятая точки обе при 1330 т/ч. Заданный напор агрегата — 89 м, поэтому расчёт возьмёт 89 м, а не кривую.
Копия Астаны для сравнения. 1661 агрегат: «Настроены» — 520, «Нет линии» — 479, «Без модели» — 395, «Без коэффициентов» — 267. Заданный напор есть у 1175.
Если не получается
- «Результатов расчёта по насосам ещё нет: рабочая точка появится после выполнения и сохранения расчёта сети, паспортные характеристики видны уже сейчас.» — в базе нет сохранённых расчётов.
- «Для агрегата не выбрана паспортная модель — график H(Q) не строится…» — назначьте модель: «Редактировать» → «Модель (тип насоса)». Коэффициенты кривой при этом не пересчитываются — их по-прежнему задают в десктопе («Тип насоса → Характеристики»).
- «Не удалось загрузить насосы» или «Не удалось загрузить каталог моделей насосов» (при входе в правку) — нет связи с сервером; повторите.
- «Справочники не загрузились — плитки и фильтры могут быть неполными» — список работает, но плитки и списки фильтров пустые.
- «Объект изменён другим пользователем — перезагрузите карточку и повторите правку.» — запись изменили после того, как вы открыли правку.
- «Нет права «Свойства: оборудование (свои)»» — у роли нет права на правку оборудования.
- Нет значка прицела и кнопки «На карте» — у линии насоса нет геометрии (линии расчётной схемы без координат).
Для администратора
- Запись:
MUTATIONS_ENABLED=true, право «Оборудование» → «Свойства»; приAUTH_BACKEND=pgокончательно права проверяет база. - Таблицы десктопные (
pumps,standardpumps,states,drivetypes,rotordiametertypes,standardems,pumpstations,ns_out); веб их не создаёт. - Правка пишется в
audit_log(UPDATE, старые и новые значения); после неё сбрасывается кеш графа для локализации отключений.
Для разработчика
- Чтение:
GET /api/pump-equipment/lookups,GET /api/pump-equipment/pumps(page,page_sizeдо 200,configuration_status:configured|missing_model|coefficients_missing|line_missing,fragment_id,state_id,line_id,search),GET /api/pump-equipment/pumps/{id},GET /api/pump-equipment/catalog(quality_status:ready|non_monotonic|incomplete,pump_type,search),GET /api/pump-equipment/catalog/{id}—routers/equipment.py,database/pump_equipment.py. Вlookupsфрагменты агрегатов без пустого пункта: строки сfragment_id IS NULLисключены. - Правка:
GET /api/v1/equipment-edit/pumps/fields,GET|PUT /api/v1/equipment-edit/pumps/{id}(поля карточки десктопа,version→ 409) —routers/equipment_edit.py,database/typed_edit.py. - Расчёт:
heatnet/io/reader.py(насос:h,r0_z…r2_z),heatnet/solve/hydraulic.py(Pump). - Веб:
components/PumpEquipmentJournalDialog.vue(ключpumpEquipment),services/equipmentEditService.ts,composables/useJournalEdit,composables/useEquipmentSaveError.ts,utils/pumpModels.ts. - Тесты: API —
tests/test_equipment_router.py,tests/test_equipment_edit_router.py; веб —tests/utils/pumpModels.spec.ts,tests/utils/equipmentEdit.spec.ts,tests/composables/useEquipmentSaveError.spec.ts; e2e —e2e/functions/equipment-registries.spec.ts.
