SemiStep — визуальное приложение для редактирования и исполнения технологических рецептов на промышленных установках роста и постростовой обработки на базе Siemens PLC. Работает независимо от SCADA-системы и взаимодействует с контроллером напрямую по протоколу S7.
YAML-конфигурация определяет внешний вид и поведение приложения для конкретной установки. Скриншоты ниже — три независимые конфигурации для разных типов процессов.
Редактор рецептов
- Сохранение истории изменений и поддержка undo/redo
- Работа с шорткатами с клавиатуры, поддержка copy/paste/cut и пр.
- Возможность задавать inline формулы в строке и выполнять пересчет значений в ячейках в указанном порядке
- Поддержка действий и вложенных действий. Основной примитив рецепта - действие, задающее состав шага рецепта. Действие может содержать поддействия и ветвится по мере ввода оператора
- Богатая индикация состояния шагов и параметров рецепта
- Панель действий над шагами рецепта и панель уведомлений под шагами рецепта, выключается из меню «Вид»
Конфигурация через YAML
- Набор столбцов, типы параметров, диапазоны значений, типы действий и визуальный стиль задаются в YAML-файлах
Синхронизация с ПЛК
- Загрузка рецепта в Siemens PLC происходит автоматически
Мониторинг исполнения
- Подсветка текущего исполняемого шага в реальном времени
- Отображение оставшегося времени: до конца текущего шага и до конца рецепта целиком
- Цветовая тонировка строк по глубине вложенности блоков
For/End_For
Валидация
- Проверка диапазонов и типов по каждой ячейке; сохранение и отправка в ПЛК заблокированы до устранения ошибок
- Индивидуальное форматирование содержимого ячеек в зависимости от типа данных
- Проверка целостности конфигурации при запуске; некорректный YAML блокирует старт приложения
| Компонент | Требование |
|---|---|
| ОС | Windows 10 или Windows 11 (64-bit) |
| Среда | .NET 10 |
| ПЛК | Siemens S7-1200 / S7-1500, доступный по TCP/IP |
| Конфигурация | Корректный YAML-файл конфигурации для целевой установки |
# Сборка
dotnet build SemiStep/SemiStep.UI/SemiStep.UI.csproj
# Запуск
dotnet run --project SemiStep/SemiStep.UI/SemiStep.UI.csproj
# Тесты
dotnet test SemiStep/SemiStep.Tests/SemiStep.Tests.csproj


