OPEN SOURCE · BUILT FOR INDUSTRY

连接工业现场,
让数据流动。

Snet 是面向 .NET 的统一工业通信与数据采集框架。用一致的接口连接 PLC、仪器仪表、机器人与消息系统,从设备接入到应用开发,构建自己的工业数据链路。

.NET 生态插件化架构MIT 许可中文 / English 文档
从工业现场到业务应用PLC、仪表、机器人通过 Snet 统一接口与 MQTT 消息、数据服务及应用界面连接。这是架构示意,不是实时设备状态。 ONE FRAMEWORK. MANY CONNECTIONS. PLC 控制器仪器 · 传感器机器人 · 数据库消息中间件数据服务业务应用 SIEMENS / MODBUSTCP / SERIALOPC / DB / TEPMQTT / KAFKAWEB API / RPCWPF / WEB Snet.UNIFIED API 设备接入 · 数据采集 · 消息转发 · 应用开发
36工业协议包
130+协议变体
6消息中间件
46框架 NuGet 包
01 / ABOUT SNET

把复杂的连接,
变成一致的开发体验。

工业现场的设备品牌、地址格式和通信方式各不相同。Snet 将这些差异收敛到统一的采集、消息与传输接口,让上层应用可以围绕数据与业务组织代码。

生态围绕工业物联网展开,延伸到可视化数采、协议诊断、工业视觉、WPF 桌面界面与开发辅助工具。你可以按需安装库,也可以从现成应用和示例开始。

了解框架的工作方式

适合这些工作

设备数据采集边缘网关产线监控工业系统集成通信调试视觉检测
01 — INTERFACE

统一接口

IDaq、IMq 与 ICommunication 分别组织采集、消息与通信操作。连接、读写、订阅与返回结果具有一致的使用方式。

02 — EXTENSION

插件化扩展

基于 AssemblyLoadContext 加载插件,为非标设备和自定义消息系统提供扩展路径;兼容宿主支持运行时加载与卸载。

03 — DATA FLOW

采集与消息联动

设备数据通过地址模型进行解析与类型转换,可结合消息配置转发到 MQTT、Kafka 等系统,连接现场与上层应用。

04 — ADDRESSING

地址与批量读取

统一地址描述、订阅和结果模型。支持的协议可通过自动组包合并读取请求,减少分散点位的通信往返。

05 — INTEGRATION

应用集成

提供通信传输、事件、缓存、日志及 WebAPI 能力;结合 RPC、Redis 与 WPF 配套库,构建数据服务和桌面应用。

06 — DEVELOPMENT

开发与验证

异步操作配合统一 OperateResult 返回状态、消息和数据;内置模拟与虚拟地址便于前期开发,框架支持中英文切换。

THE DATA
JOURNEY
连接现场设备PLC / 仪表 / 数据库
采集与解析IDaq / 地址模型
转发与服务IMq / WebAPI / RPC
构建业务应用监控 / 存储 / 展示

框架包以 .NET 8 / .NET 10 为主要目标;当前应用项目多采用 .NET 10。跨平台通信库、Windows WPF 应用与 Web 应用的运行环境分别以对应包和仓库说明为准。查看安装要求 ↗

面向真实的工业现场

协议文档
展开更多厂商、特殊协议与模拟能力

覆盖 S7、Modbus TCP / RTU / ASCII、MC、FINS、CIP、ADS 等协议族;具体型号、传输方式和操作能力请查对应驱动文档。

六种消息中间件

多种传输方式

TCP · UDP · 串口 · WebSocket · HTTP
以及 OPC、数据库、TEP、自由协议与模拟数据接入。

通信层参考
02 / OPEN SOURCE ECOSYSTEM

从框架能力,到可用的应用。

按你的工作选择项目。公开源码、说明与使用示例在 GitHub;框架及相关库通过 NuGet 获取。

面向单设备与单协议的交互式调试。覆盖数据读写、订阅、消息通信、实时图表及 OPC UA 节点浏览,与 Daq 数采工具互补。

协议诊断 · Windows↗

WPF 现代界面与基础架构。包含 Snet.Windows.Core / Controls、MVVM、主题、中英文本地化、窗口基类、属性编辑器和多种常用控件。

界面库 · Windows↗

可参考的 Snet 用法集合,按 core、daq、relay、tep、web 分组,展示通信、采集、消息转发、非标设备接入和 WebAPI 集成。

使用示例 · .NET 10↗

供 AI 编程助手使用的四项 Snet 技能,覆盖数据采集、消息收发、IDaq / IMq 插件开发与 WPF 应用,提供工作流程及接口约定。

AI 开发辅助 · 文档↗

社区插件源码目录,按作者与 daq / mq 类型组织,用于分享设备接入、自定义采集和消息插件。接口、依赖与宿主兼容性由插件说明确定。

社区扩展 · IDaq / IMq↗

基于 DotNetty 的 .NET 远程过程调用库,提供服务注册、客户端代理和异步调用。仓库附有服务端与客户端样例,适用于进程间和内网服务通信。

服务通信 · .NET↗

Snet.Redis 连接与操作封装,面向缓存、会话、状态及发布订阅场景。通过统一操作入口管理 Redis 连接和常见数据结构。

缓存集成 · .NET↗

Windows 可编程键鼠模拟器,用脚本组织键盘、鼠标、延时、循环及剪贴板操作,适用于重复操作与桌面自动化。

自动化工具 · Windows↗

提供 Ollama 协议兼容的本地 AI 代理与 WPF 管理工具,用于模型 API 转发、服务启停和日志查看。支持的模型及 IDE 接入方式以仓库当前说明为准。

AI 工具 · 代理服务↗

依据作者当前公开仓库整理,共 11 个产品、示例与生态项目;作者资料仓库 Shunnet 另见个人主页。应用源码与框架包各有独立入口,依赖版本、平台与授权以对应仓库及包说明为准。查看完整仓库列表 ↗

03 / LEARN & BUILD

文档讲方法,博客讲实践。

先建立框架概念,再沿着协议文档、项目源码与实践文章,走到自己的应用场景。

SNET BLOG / 陆陆大顺

让经验回到具体的问题。

作者大顺的技术博客,分享 Snet 项目、C# / .NET、WPF、工业通信、视觉应用与开发工具,也记录个人生活。

01

工业通信与数据采集

Daq 项目、采集转发、数据解析与自定义插件。

02

界面与工程实践

WPF 界面库应用、主题语言与 .NET 编码问题。

03

视觉与 AI 工具

VisualIdentity 平台、YOLO 应用与模型代理工具。

访问技术博客 文章归档

博客文章反映发表时的版本;当前接口与配置请结合对应文档阅读。

04 / GET STARTED

选一个协议,
建立第一条连接。

准备相应的 .NET SDK,按需安装协议包。核心依赖会随包引入。再根据文档配置目标设备、连接参数和地址,完成读取、订阅与转发。

跟随 Modbus 快速入门
INSTALL ONLY WHAT YOU NEEDCLI

# 连接 Modbus 设备

dotnet add package Snet.Modbus

# 按需添加 MQTT 转发

dotnet add package Snet.Mqtt

无需一次安装所有协议,选择你的设备所需的包即可。

包版本与目标框架以 NuGet 发布信息 为准。相关 Snet 包请保持版本一致;实际连接需要可访问的设备或模拟器。使用示例 ↗

Shun / 大顺INDUSTRIAL IOT · .NET · OPEN SOURCE

Snet 作者,关注工业物联网、.NET 与开源。你可以从项目 Issues 反馈问题,阅读博客分享,或通过作者公开的社区入口参与交流。

认识作者与更多项目

还可在博客查看公众号入口。SnetGit 是独立服务;公开项目目录以当前实际展示为准。

A FEW GOOD QUESTIONS

开始前,了解这些。

Snet 是框架,还是一款软件?

核心是面向 .NET 的工业通信与数据采集框架;围绕它有 Daq 数采、Debug 调试、WpfMUI 界面库、VisualIdentity 工业视觉及其他配套项目。可在现有项目中按需安装框架包,也可使用公开的应用源码。

如何选择库、数采工具与调试工具?

已有 .NET 项目需要连接设备,先选择对应 NuGet 协议包;希望配置多设备采集与转发,查看 Daq;需要交互式读写和诊断设备通信,查看 Debug。视觉检测对应 VisualIdentity,桌面界面开发对应 WpfMUI。

是否开源,能否用于自己的项目?

官网将框架标注为 MIT,多数公开应用仓库也提供 MIT 许可证。具体仓库、插件、第三方组件及模型权重的授权范围,请以各自 LICENSE、README 和上游许可为准。框架包从 NuGet 获取,公开源码项目从相应 GitHub 仓库浏览。

在 Windows、Linux 与 macOS 上都能使用吗?

跨平台 .NET 库的可用环境与具体协议及依赖有关。WpfMUI、Debug、KMSim 等 WPF 桌面应用运行在 Windows;Daq 另有浏览器访问的 Blazor Web 端,VisualIdentity 也提供 Web 与 API 服务。部署前查阅对应项目的环境、硬件和依赖要求。

官网、文档与旧博客的版本为什么可能不同?

页面与文章的更新时间、统计范围可能不同。开发时以所安装包版本的文档、API 和项目引用为准,避免混用不同版本的 Snet 包。