Skip to content

feat: регенерация крионасоса (#118)#120

Merged
EvaTheSalmon merged 3 commits into
masterfrom
feature/cryopump-regeneration
Jun 29, 2026
Merged

feat: регенерация крионасоса (#118)#120
EvaTheSalmon merged 3 commits into
masterfrom
feature/cryopump-regeneration

Conversation

@EvaTheSalmon

Copy link
Copy Markdown
Member

Что

Управление регенерацией криогенного насоса (issue #118). Реализовано в существующем PumpFB, без нового ФБ — фича вынесена в свойство «Регенерация» (UseRegeneration, по умолчанию выключено).

  • Кнопка «P» между «Пуск» и «Стоп», появляется только при «Тип насоса» = Cryogen и включённом свойстве «Регенерация».
  • Команда — бит 2 CommandWord через визуальный пин RegenCMD.
  • Статус активной регенерации — бит 10 StatusWord (RegenerationActive, переиспользование Message3).
  • Цвет «P»: жёлто-зелёный (идёт) / светло-бежевый (нет). Гейт по UsedByAutoMode только на клике, цвет виден всегда.
  • Добавлена документация ФБ «Насос» (раньше отсутствовала): Docs/pump.md + скриншоты.

Совместимость

При выключенном свойстве и для прочих типов насосов поведение прежнее: две кнопки, бит 2 не выставляется, бит 10 трактуется как Message3. Существующие экземпляры не затронуты (тот же GUID, свойство по умолчанию false).

Контракт ПЛК (изменение)

  • CommandWord бит 2 = включение регенерации.
  • StatusWord бит 10 = RegenerationActive в крио-варианте с включённой регенерацией (вместо Message3).

Проверка

dotnet build NtoLib.sln — 0 warnings, 0 errors. Юнит-тесты к модулю неприменимы (COM/WinForms); проверка — сборка без предупреждений + ручная валидация в хосте MasterSCADA.

Ревью (многоагентное) выявило и закрыло: пропущенную установку видимости кнопки (лишняя «P» на всех насосах) и падение при нулевом размере шрифта.

Осталось вручную (после мержа)

  • Runtime-валидация в хосте MasterSCADA (кнопка, цвета, биты, совместимость).
  • Известное ограничение дизайн-тайма: переключение свойства «Регенерация» обновляет кнопку после изменения размера/переоткрытия мнемосхемы.

Closes #118

🤖 Generated with Claude Code

EvaTheSalmon added a commit that referenced this pull request Jun 29, 2026
Контрол кэшировал только UseRegeneration и не реагировал на смену PumpType
в рантайме: при переключении с Cryogen на другой тип при включённой
регенерации кнопка «P» оставалась видимой до следующего UpdateLayout.
Теперь кэшируется вычисленный showRegen (PumpType == Cryogen &&
UseRegeneration) — релейаут срабатывает на изменение любого из условий.
По итогам ревью PR #120.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
EvaTheSalmon and others added 3 commits June 29, 2026 18:14
Управление регенерацией для крио-варианта в существующем PumpFB, без нового
ФБ. Свойство «Регенерация» (UseRegeneration, по умолчанию выкл) включает
кнопку «P» между Пуском и Стопом. Команда — бит 2 CommandWord через визуальный
пин RegenCMD; статус активной регенерации — бит 10 StatusWord (RegenerationActive,
переиспользование Message3). Цвет «P»: YellowGreen/AntiqueWhite; гейт по
UsedByAutoMode только на клике, цвет виден всегда. Обратная совместимость
сохранена: при выключенном флаге и для прочих типов насосов поведение прежнее.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Создан Docs/pump.md (ранее документации по насосу не было): интерфейс,
битовые таблицы StatusWord/CommandWord, свойства, работа, окно параметров
по типам насоса, раздел регенерации со скриншотами. Добавлены изображения
Docs/img/Pump-1..4.png, строка в Docs/readme.md. План перемещён в
Docs/plans/completed/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Контрол кэшировал только UseRegeneration и не реагировал на смену PumpType
в рантайме: при переключении с Cryogen на другой тип при включённой
регенерации кнопка «P» оставалась видимой до следующего UpdateLayout.
Теперь кэшируется вычисленный showRegen (PumpType == Cryogen &&
UseRegeneration) — релейаут срабатывает на изменение любого из условий.
По итогам ревью PR #120.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@EvaTheSalmon EvaTheSalmon force-pushed the feature/cryopump-regeneration branch from 6e07f9e to 66b58f2 Compare June 29, 2026 15:15
@EvaTheSalmon EvaTheSalmon merged commit 9e0f64f into master Jun 29, 2026
1 check passed
@EvaTheSalmon EvaTheSalmon deleted the feature/cryopump-regeneration branch June 29, 2026 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Регенерация крионасоса: кнопка «P», бит CommandWord/StatusWord, свойство блока

1 participant