Skip to content

EPoY74/PPU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PLC Polling Utility (PPU)

PLC Polling Utility (PPU) — это лёгкий, надёжный и расширяемый сервис для опроса промышленного оборудования по протоколу Modbus TCP с возможностью логирования и предоставления данных через HTTP API.


🇷🇺 Описание (RU)

PPU предназначен для инженеров, пусконаладчиков и интеграторов, которым требуется быстрый и простой инструмент для:

  • опроса PLC (Programmable Logic Controller — программируемый логический контроллер)
  • чтения регистров Modbus TCP (FC03, FC04)
  • диагностики связи с оборудованием
  • логирования данных
  • интеграции с другими системами через REST API

Основные возможности

  • 🔌 Подключение к PLC по Modbus TCP

  • 📊 Чтение регистров (Holding / Input Registers)

  • 🔁 Периодический опрос (polling)

  • 🧾 Логирование результатов

  • 🌐 HTTP API:

    • /health — состояние сервиса
    • /last-read — последний результат опроса
  • ⚙️ Конфигурация через appsettings.json

  • 🧩 Простая архитектура для дальнейшего расширения (SCADA, IoT, telemetry)


🇬🇧 Description (EN)

PPU is a lightweight, reliable, and extensible service for polling industrial equipment via Modbus TCP protocol with logging and HTTP API access.

It is designed for engineers, commissioning specialists, and system integrators who need a fast and simple tool for:

  • PLC (Programmable Logic Controller) polling
  • Modbus TCP register reading (FC03, FC04)
  • connection diagnostics
  • data logging
  • integration with external systems via REST API

Key Features

  • 🔌 Modbus TCP connectivity

  • 📊 Register reading (Holding / Input Registers)

  • 🔁 Periodic polling loop

  • 🧾 Logging support

  • 🌐 HTTP API:

    • /health — service status
    • /last-read — last polling result
  • ⚙️ Configuration via appsettings.json

  • 🧩 Clean architecture ready for scaling (SCADA, industrial IoT, telemetry gateways)


🚀 Быстрый старт / Quick Start

Требования / Requirements

  • .NET 8 (или выше)
  • Доступ к PLC (Modbus TCP)

Запуск / Run

dotnet run

После запуска:


⚙️ Конфигурация / Configuration

Файл: appsettings.json

{
  "PlcReader": {
    "Host": "10.0.6.10",
    "Port": 502,
    "UnitId": 1,
    "FunctionCode": 3,
    "StartAddress": 0,
    "RegisterCount": 2,
    "PollIntervalSeconds": 5
  }
}

🧱 Архитектура / Architecture

Ppu
├── Config
├── Domain
├── Services
├── Program.cs

Основные компоненты:

  • PollingWorker — фоновый цикл опроса
  • PlcReaderService — чтение данных из PLC
  • LastReadStore — хранение последнего результата
  • Minimal API — доступ к данным через HTTP

📦 Use Cases / Сценарии использования

  • Пусконаладка оборудования
  • Диагностика PLC
  • Быстрый мониторинг параметров
  • Интеграция с SCADA/BI системами
  • Промышленные IoT решения
  • Локальные telemetry gateway

💼 Коммерческое использование / Commercial Use

Проект может использоваться:

  • в коммерческих проектах
  • как часть промышленного ПО
  • для разработки SCADA/IoT решений
  • как база для собственных продуктов

Подробности см. в файле LICENSE.


🛣️ Roadmap

  • Поддержка нескольких PLC
  • История данных (PostgreSQL / SQLite)
  • Декодирование сигналов (float, bit)
  • Web UI
  • Alerting (Telegram, Email)
  • Docker deployment

🤝 Контрибьюция / Contributing

PR и идеи приветствуются.


📄 Лицензия / License

Этот проект распространяется под лицензией MIT. Подробности: LICENSE


🔑 Ключевые слова (SEO)

industrial automation, PLC monitoring, Modbus TCP, SCADA tools, telemetry gateway, .NET industrial software, equipment monitoring, IoT gateway, data acquisition, industrial diagnostics


About

Lightweight Modbus TCP PLC polling utility for industrial monitoring and telemetry (.NET)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages