开源 · 免费 · MIT 许可证 · .NET 10

Snet 统一工业通信框架

35+ 工业协议,5 种消息中间件,统一 API。几分钟搭建稳健的数据采集链路,告别数月开发周期。

36 工业协议包
130+ 协议变体
5 消息中间件
12 通信传输层
55+ NuGet 包

为工业数据采集而生

一个框架,统一所有工业协议。从 PLC 到数据库,从传感器到消息队列,Snet 覆盖全链路。

35+ 协议驱动

36 个 NuGet 包覆盖 PLC、机器人、仪器仪表、电力仪表。统一 IDaq 接口管控所有设备,切换协议无需改动业务代码。

统一 API 范式

IDaq(15 子接口)、IMq(12)、ICommunication(13) — On/Off/Read/Write/Subscribe 一致契约。同一套代码适配 Modbus、Siemens、MQTT 或 Kafka。

插件热加载

基于 AssemblyLoadContext 的插件隔离架构。运行时加载/卸载协议 DLL,ZIP 上传即自动部署,无需重启应用。

内置 WebAPI

6 个 HTTP 端点自动暴露:/api/on、/api/off、/api/read、/api/write、/api/getstatus、/api/switchlanguage。零额外代码实现远程控制。

双缓存系统

ProcessCacheOperate(MemoryCache,进程内)+ ShareCacheOperate(MemoryMappedFile,跨进程)。热数据重启不丢失,跨进程共享。

中英文热切换

ILanguage + OnLanguageEvent 事件驱动全局热切换。框架所有组件同步响应,无需刷新页面 — 从采集驱动到 WebAPI 全覆盖。

查看全部 14 项核心特性

三层抽象,统一范式

CoreUnify → DaqAbstract / MqAbstract / CommunicationAbstract → 36 个协议驱动。单例池管理,255 实例硬上限。

CoreUnify<O, D>

核心基类。ConcurrentDictionary 单例池、6 个事件通道、BegOperate/EndOperate 精确计时、Serilog 日志集成、ILanguage 多语言。

IDaq / DaqAbstract<O, D>

数采抽象。8 个抽象异步方法 (On/Off/Read/Write/Subscribe/UnSubscribe/GetStatus/GetBaseObject),6 个内置 WebAPI 端点,11 步 ReadAsync 管道。

IMq / MqAbstract<O, D>

消息中间件抽象。IProducer + IConsumer 双接口,ProduceAsync / ConsumeAsync / UnConsumeAsync 统一操作。

ICommunication

通信抽象。TcpClient/Service、UdpClient/Service/Broadcast/Multicast、WebSocket、HTTP、Serial——共 12 种传输类。

IDaq : 15 个子接口

IOn/IOff/IRead/IWrite/ISubscribe/IGetStatus/IEvent/IGetParam/ICreateInstance/ILog/IWA/IGetObject/ILanguage/IDisposable/IAsyncDisposable。

地址模型系统

Address → AddressDetails (13 属性) → AddressValue (Quality/ResultValue/OriginalValue/Message/Time)。8 种编码 + 4 种字节序。

覆盖主流工业协议生态

从西门子到 Modbus,从三菱到 OPC UA,一站式覆盖全球主流 PLC 品牌。

Siemens
Snet.Siemens
S7/PPI/S7Plus/FetchWrite
10 types
Modbus
Snet.Modbus
TCP/UDP/RTU/ASCII 全系列
6 types
Mitsubishi
Snet.Mitsubishi
MC/FX/A1E/A3C/CIP/Links
14 types
Omron
Snet.Omron
Fins/CIP/HostLink/CMode
8 types
Allen-Bradley
Snet.AllenBradley
CIP/PCCC/SLC/DF1/Micro800
6 types
OPC UA / DA
Snet.Opc
UA Client+Server, DA
4 classes
Delta
Snet.Delta
台达 PLC 协议
Beckhoff
Snet.Beckhoff
ADS 协议 (TwinCAT)
Keyence
Snet.Keyence
基恩士 KV/Nano/MC
5 types
Panasonic
Snet.Panasonic
松下 MEWTOCOL-COM
3 types
Inovance
Snet.Inovance
汇川 Modbus/CIP/ComputerLink
6 types
PQDIF
Snet.PQDIF
电力通讯规约 DLT645/698
10 types
查看全部 35+ 协议

即装即用,零样板代码

var op = new ModbusOperate(new ModbusData.Basics { IpAddress = "192.168.1.100", Port = 502 });

await op.OnAsync();
var addr = new Address(new AddressDetails("温度", "40001", DataType.Float));
var result = await op.ReadAsync(addr);
if (result.Status)
    Console.WriteLine(result.GetSource<AddressValue>().ResultValue);
await op.DisposeAsync();

准备好开始了吗?

安装 NuGet 包,少量代码即可启动您的第一个数据采集管道。完全开源,MIT 许可,免费商用。