UniCon Project Introduction
About 431 wordsAbout 1 min
2026-05-19
Overview
UniCon (Universal Connection) is a high-performance, pluggable .NET industrial IoT communication integration framework. It is specifically designed for industrial edge gateways, SCADA platforms, and digital twin systems, running on .NET 10+.
By masking protocol differences through a unified southbound driver interface, the framework provides complete lifecycle management, self-healing reconnection mechanisms, an active polling subscription engine, and REST API northbound integration. This helps developers connect to various industrial protocol devices with minimal integration cost.
Core Value
- Protocol Abstraction: Masks differences between S7, Modbus, OPC UA, MQTT, OPC UA PubSub, etc., through the unified
IUniconDriverinterface andUniconRequest/UniconResponse<T>request-response models. - Connection Self-Healing:
DriverBasefeatures a built-in Watchdog self-healing thread that supports network disruption awareness (INetworkMonitor) and exponential backoff reconnection. Connections hang during disruption and heal automatically upon recovery. - High-Performance Scan Scheduling: Built on the
ScanSchedulerusing a minimum waiting time algorithm, utilizingChannel<T>to asynchronously decouple acquisition and callback threads. TheIScanStrategypattern supports bothExceptionBased(deadband filtering) andPolledmodes. - Object-Device Mapping (ODM): An ORM-like design that automatically binds business entity properties to device registers via
[UniconDevice]and[UniconAddress]attributes, avoiding hardcoded read/write logic. - Task Scheduling System: Highly encapsulated based on Quartz.NET, providing built-in scheduled tasks like
HttpJobandCommunicationJob, and supporting dynamic runtime CRUD management. - REST API Northbound Integration: Based on ASP.NET Core Minimal API, offering a full suite of endpoints for driver management, data read/write, subscription control, ODM mapping, and task scheduling.
- Pluggable Caching: Features a built-in
MemoryCacheProvider(based onConcurrentDictionary), which can be seamlessly replaced with a distributed implementation like Redis.
Project Architecture
UniCon
├── UniCon.Core # Core contracts, scheduling engine, ODM, cache, tasks
├── UniCon.Drivers.S7 # Siemens S7 driver (S7.Net)
├── UniCon.Drivers.Modbus # Modbus TCP driver (EasyModbus)
├── UniCon.Drivers.OpcUa # OPC UA client driver (Workstation.UaClient)
├── UniCon.Drivers.Mqtt # MQTT pub/sub driver (MQTTnet)
├── UniCon.Drivers.OpcUaPubSub # OPC UA PubSub UDP/MQTT connectionless driver
└── UniCon.WebServer # Minimal API host (driver management, ODM, task APIs)Supported Industrial Protocols
| Driver | Protocol / Standard | Underlying Library | Driver Alias |
|---|---|---|---|
S7Driver | Siemens S7 (ISO-on-TCP) S7-200/300/1200/1500 | S7.Net | "S7" |
ModbusDriver | Modbus TCP (Coil/Holding/Input/Discrete registers) | EasyModbus | "Modbus" |
OpcUaDriver | OPC UA Client/Server (Anonymous/Account/Certificate) | Workstation.UaClient | "OpcUa" |
MqttDriver | MQTT 3.1/5.0 Pub/Sub (TLS optional) | MQTTnet | "Mqtt" |
OpcUaPubSubDriver | OPC UA PubSub UDP Multicast / MQTT (UADP/JSON) | In-house | "OpcUaPubSub" |
Target Audience
Designed for developers who need to integrate multiple industrial devices (PLCs, OPC UA Servers, Modbus meters, MQTT Brokers, etc.) for data collection, routing, analysis, or presentation. It is especially suited for industrial edge gateways, digital twin platforms, and IoT integration system scenarios.
