Разработка подсистемы автоматического расчета параметров
- Analytics
- Backend
- Golang
- Gin
- Echo
- Fiber
- Chi
- gRPC
- Protocol Buffers
- Cobra
- Viper
- Logrus
- Zap
- GORM
- SQLx
- Ent
- MongoDB Go Driver
- Go Redis
- AWS SDK for Go
- Testify
- Ginkgo
- GoConvey
- Docker
- Python
Индустрия
Энергетика
У вас есть задача?
Давайте обсудим?
О клиенте
Компания оказывает услуги по передаче электроэнергии, строит новые линии и проводит их регулярное оперативно-техническое обслуживание. Все объекты расположены в городской застройке, поэтому персонал ремонтно-выездной бригады прибывает к месту проведения работ в регламентированный законом срок. Объекты критической инфраструктуры снабжаются энергией по 1 категории, где перерывы в подаче недопустимы.
О проекте
В соответствии с требованиями сетевого оператора, подстанция энергетической компании на 110 кВ, обслуживающая 35 тыс человек, должна была передавать телеметрические данные. Однако оборудование для автоматического пересчета параметров не было заложено проектировщиками. Строительство новых физических датчиков превышало бюджет в три раза, и руководство решило заменить их на ПО.
Описание задачи
Go-разработчикам было необходимо создать программное решение, способное собирать информацию с различных измерительных приборов и сенсоров подстанции, анализировать полученные результаты для выявления возможных отклонений от нормы и автоматически выполнять расчет недостающих или изменяющихся параметров. Перед ИТ-специалистами стояли следующие задачи:
- Проанализировать требования сетевого оператора и определить данные, которые электрическая подстанция должна передавать.
- Спроектировать архитектуру подсистемы и модели поведения физических датчиков.
- Обеспечить возможность динамической генерации данных на основе текущего состояния подстанции, учитывая перегрузки, поломки, плановые работы и т.д.
Реализация
После сбора норм и критериев к ИТ-продукту приступили к работе:
- Использовали язык программирования Go, который обеспечил эффективную работу с параллелизмом и сетевыми запросами, легкое управление массивами и структурами, а также упростил создание абстракций виртуальных приборов с различным функционалом.
- Внедрили фреймворки для визуализации графического интерфейса, такие как: htmx, HyperScript, Fiber, gosvg, HTML5 и ГОСТ-браузер. Удалось отображать данные в реальном времени, что помогло операторам быстро реагировать на изменения показателей электрической подстанции.
- Согласовали сигналы тревог и предупреждений для обеспечения безопасности обслуживающего персонала со службами ИБ.
- Добавили библиотеки на Go, например, cshare, DLL, ГОСТ МЭК 870-5-101, ГОСТ МЭК 870-5-103, ГОСТ МЭК 870-5-104 и ГОСТ МЭК 870-5-105. Это позволило организовать интенсивный обмен данными с минимальной задержкой и наладить контроль над сложными вычислениями.
- Реализовали эффективные алгоритмы обработки данных, которые начали обрабатывать 2000 телесигналов и 1000 телеизмерений, обновляя их с частотой 10 раз в секунду. Это привело к общему объему в 30 000 событий в секунду.
- Разработали механизмы для обработки информации в мягком реальном времени, для оперативного контроля оборудования, чтобы система оставалась производительной даже при высоком уровне нагрузки.