# Границы, решения и демонстрационные сценарии

## Технологическое основание

Прочитаны полный инженерный аудит от 08.09.2026, Basis of Design Rev.C, Naming,
Software Units, call sequence, roadmap и весь UDT Rev.C. Список и хеши —
в происхождении (`../references/PROVENANCE.md` в полном пакете). Исходные папки не изменяются.

OilCore принимает подсолнечное масло (ProductId=1) в T-101 и рапсовое (2) в T-102,
хранит раздельно и выдаёт в LINE-01 — производственную линию чипсов. Приём:
UP-01, P-101/P-102; выдача: P-103/P-104. Арматура XV-101…108, общий коллектор.
Первый сквозной сценарий: RT-022, T-102 → LINE-01, P-104.

С первого сквозного среза обязательны N2G-101A/B, N2 header, XV-N2-101/102,
PIT-N2-HEADER, PIT-T101-GAS/PIT-T102-GAS, AIT-O2-T101/T102. Хранение T-101 остаётся
активным, пока T-102 выдаёт продукт. P0.1 содержит наблюдения N2, но ещё не контроллер.

## Принятые решения

| ID | Решено | Почему и цена решения |
|---|---|---|
| ADR-01 | В этой архитектурной ветке 0 формальных Software Units, обычные группы S7-1500 | Один разработчик, один цикл и небольшой объект. Избегаем девяти взаимозависимых Unit до доказанного вертикального среза. Группы не обеспечивают техническую изоляцию: её ограничения проверяются обзором интерфейсов и владельцев. Выделение Unit возможно отдельным решением после RT-022, с Published/namespace/consumer proof |
| ADR-02 | Один SCL на объект; bundle генерируется | Нет второй ручной исполняемой реализации LAD. LAD служит обзором вызовов |
| ADR-03 | Один активный продуктовый Transfer на весь объект | Атомарное резервирование всех участков проще проверяется; азот обоих резервуаров работает независимо от наличия Transfer |
| ADR-04 | Physical Inventory Service — единственный владелец участков | Маршруты только ссылаются на участки; остаток не исчезает при смене RouteId |
| ADR-05 | Раздельные проекты/composition для DEMO и FIELD | FIELD собирается по белому списку без VirtualPlant, test harness и fault injection. P0.1 — только FOUNDATION, пока ни одна композиция не готова |
| ADR-06 | WinCC Professional V19 — единственный первый HMI | MasterSCADA, затем альфаSCADA — последующие адаптеры. Unified не переносится |
| ADR-07 | Новый контракт 0.1, без миграции ABI Rev.C | Можно исправить начальное quality и сузить структуры; старый код/клиенты нельзя смешивать с новыми |
| ADR-08 | Отдельные gates: файлы, PLC, транспорт, поведение, поле | Разработка SCL и тестовых наборов может идти до WinCC round-trip. Заявление о рабочем срезе требует всех относящихся к нему gates |
| ADR-09 | HMI подтверждает точное PLC-эхо замороженного payload | Последняя запись ID и два одинаковых чтения сами по себе не принимаются за доказательство согласованности |

## Сценарии и критерии показа

| Сценарий | Демонстрируемое поведение | Обязательные доказательства | Стадия |
|---|---|---|---|
| FND | Качество неизвестно до выборки; FT gap остаётся; газовая поправка может быть отрицательной | Файлы, контрольные векторы, затем actual из TIA | P0.1 исходники; TIA pending |
| RT022-NORMAL | Подтверждённый заказ → маршрут → N2 → P-104 → flow proof → controlled stop → отчёт | Тренды, команда/ответ, начальные и конечные inventory, версии | Следующий сквозной срез |
| RT022-N2 | Отказ ведущего, резерв с задержкой; продолжение только при сохранении критериев, иначе Hold | Оба давления с отдельным quality, O2, generator usable, клапаны, запас подачи | Тот же срез |
| RT022-LINK | Обрыв между отправкой и ответом; выяснение исхода без повторного исполнения | Ключ, immutable echo, ack, журнал, reconnect trace | Тот же срез |
| RT022-RESTART | STOP/RUN посреди выдачи → RecoveryRequired | Новые boot/session, выходные команды сняты, reconcile и отдельный Resume | Тот же срез |
| SHARED-PRODUCT | После RT-021 общий участок содержит продукт 1; RT-022 с продуктом 2 заблокирован | Один SegmentId и одна revision inventory в обоих представлениях | После RT-022 |
| RT003-HH | BPCS HH и затем независимый аппаратный LSHH, отдельный bounded приёмный тест | Timeline без перезаписи first-out и без PLC reset аппаратного trip | После RT-022, до полного приёма |
| ADVISORY | Расхождение → объяснение → при потере опоры «недостаточно данных» | Входы/возраст/допущения; read-only доступ | После основного HMI |

Числа геометрии/плотности из BoD — унаследованная синтетическая модель, а не
утверждённые рабочие значения. В P0.1 нет новых рабочих pressure/O2 уставок.
Установка не объявляется промышленным проектом. Аппаратную схему, fail positions,
расчёт relief и LSHH не дополняем вымышленными деталями.

## Как ограничения аудита закрываются этой поставкой

| Замечание | Что сделано сейчас | Что остаётся доказать |
|---|---|---|
| R01 | Полные русские комментарии и паспорта, UTF-8 BOM bundle | Сохранность в V19 UDT/интерфейсах/logic comments |
| R02 | Точный протокол с freeze/echo/confirm и границами доверия | WinCC transport и broker implementation |
| R03 | Каноническая таблица физических участков и reservations | Подтвердить P&ID и поведение менеджера |
| R04 | Unknown=0; возраст; независимые N2 pressure quality; FT gap latch | TIA runtime векторы |
| R05 | Retain matrix, provenance, буферы и archive acknowledgement | Реализация/retentivity и испытания power-loss |
| R06 | Выбран глобальный PLC-контейнер, точный import order | TIA import/compile/export этого контейнера |
| R07 | Доменные словари, отсутствие неподтверждённых измерений привода | Реальный telegram mapping |
| R08 | Раздельные фактические/плановые проверки | Сценарии ещё не FAT |


---
Публичный образец из OilCore P0.1 от 08.09.2026. Относительные ссылки полного пакета приведены текстом. Текущий статус: https://logic48.ru/oilcore
