PowerGrids.Switching.Core
1.0.0
dotnet add package PowerGrids.Switching.Core --version 1.0.0
NuGet\Install-Package PowerGrids.Switching.Core -Version 1.0.0
<PackageReference Include="PowerGrids.Switching.Core" Version="1.0.0" />
<PackageVersion Include="PowerGrids.Switching.Core" Version="1.0.0" />
<PackageReference Include="PowerGrids.Switching.Core" />
paket add PowerGrids.Switching.Core --version 1.0.0
#r "nuget: PowerGrids.Switching.Core, 1.0.0"
#:package PowerGrids.Switching.Core@1.0.0
#addin nuget:?package=PowerGrids.Switching.Core&version=1.0.0
#tool nuget:?package=PowerGrids.Switching.Core&version=1.0.0
PowerGrids.Switching.Core
PowerGrids.Switching.Core — це високорівневе .NET 10 ядро для розробки систем оперативного керування SCADA (Supervisory Control And Data Acquisition) в електроенергетиці. Побудоване на базі патернів Command та Composite, воно забезпечує безпечне виконання послідовностей оперативних перемикань з автоматичним скасуванням (Undo) у разі помилок.
Особливості
- Safety First: Вбудована підтримка оперативних блокувань (
Interlock). - Transactional Operations: Автоматичне скасування всієї послідовності перемикань в разі виникнення технологічного порушення.
- Structured Logging: Повна інтеграція з Serilog (з використанням контекстів для диспетчерських назв).
Швидкий старт
1. Встановлення пакета
Через NuGet Package Manager або CLI:
dotnet add package PowerGrids.Switching.Core
2. Створення пристрою та логіки блокування
Бібліотека використовує Primary Constructors, тому ініціалізація максимально лаконічна:
var breaker = new SwitchingDevice(
type: DeviceType.CircuitBreaker,
name: "В-110 кВ Л-10"
);
// Гнучке налаштування блокувань через делегати
breaker.Interlock = (target) => {
return (true, "Дія дозволена");
};
3. Формування та виконання бланку перемикань
Використовуйте SwitchingOrderExecutor для керування кроками:
var executor = new SwitchingOrderExecutor();
// Додавання команд (через конструктор або Extension Methods)
executor.Add(new VerifyDeviceStateCommand(breaker, "Перевірка стану", SwitchPosition.Off));
breaker.TurnOn("Ввімкнення за розпорядженням"); // Додає команду в чергу
// Виконання всіх кроків
executor.ExecuteAll();
Архітектура
Командна модель
ISwitchOperation— основний інтерфейс.SwitchDeviceCommand— одиночна операція зі станом.MacroCommand— групування команд (Composite).ParallelCommand— одночасне виконання (наприклад, для складних схем).
Стани пристроїв
Підтримуються оперативні стани згідно з галузевими стандартами:
IntermediateState(Проміжний)Off(Вимкнено)On(Увімкнено)BadState(Несправність)
Специфікації пакета
- Target Framework:
.NET 10.0 - Dependencies:
Serilog (>= 4.3.1) - Author: Ruslan Kachurovskyi
Ліцензія
Розповсюджується за ліцензією MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Serilog (>= 4.3.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 84 | 2/16/2026 |