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

Snet 统一工业通信框架

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

36 工业协议包
130+ 协议变体
5 消息中间件
11 通信传输类
46 NuGet 包

为工业数据采集而生

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

36 协议驱动

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

统一 API 范式

IDaq(17 子接口)、IMq(13)、ICommunication(14) — 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。零额外代码实现远程控制。

地址自动组包

Snet.Core.packer 自动将分散地址分组、排序、合并为最小批量读取,N 次往返降为约 1 次。16 个协议族预注册,不支持组包的协议自动透传。

中英文热切换

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

查看全部 14 项核心特性

即装即用,零样板代码

var op = await ModbusOperate.InstanceAsync(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);

准备好开始了吗?

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