Snet.Model
26.210.1
See the version list below for details.
dotnet add package Snet.Model --version 26.210.1
NuGet\Install-Package Snet.Model -Version 26.210.1
<PackageReference Include="Snet.Model" Version="26.210.1" />
<PackageVersion Include="Snet.Model" Version="26.210.1" />
<PackageReference Include="Snet.Model" />
paket add Snet.Model --version 26.210.1
#r "nuget: Snet.Model, 26.210.1"
#:package Snet.Model@26.210.1
#addin nuget:?package=Snet.Model&version=26.210.1
#tool nuget:?package=Snet.Model&version=26.210.1
<h1 align="center"> <img width="100" height="100" src="https://api.shunnet.top/pic/nuget.png" alt="Snet Logo"/><br/> Snet </h1>
<p align="center"> <b>统一工业通信框架 · 35+ 协议 · 5 种中间件 · 一套 API</b> </p>
<p align="center"> <img src="https://img.shields.io/badge/.NET-8.0%20%7C%2010.0-purple.svg"/> <img src="https://img.shields.io/badge/NuGet-55%2B%20packages-brightgreen.svg"/> <img src="https://img.shields.io/badge/license-MIT-green"/> <img src="https://img.shields.io/badge/AI%20Skills-3-orange"/> </p>
<p align="center"> <a href="https://shunnet.top"><b>🌐 官网</b></a> · <a href="https://docs.shunnet.top"><b>📖 文档</b></a> · <a href="https://www.nuget.org/profiles/shun"><b>📦 NuGet</b></a> · <a href="https://github.com/shunnet/Debug"><b>🛠️ Debug 工具</b></a> · <a href="https://github.com/shunnet/Daq"><b>🔌 Daq 工具</b></a> · <a href="https://github.com/shunnet/SKILLS"><b>🤖 AI Skills</b></a> </p>
<p align="center">
| 📦 36 NuGet 包 | 📡 130+ 协议变体 | 📬 5 种中间件 | 🔌 12 种传输层 | 🧩 插件热加载 |
|---|
</p>
从 PLC 到消息队列,从传感器到数据库 — 一个框架覆盖工业数据全链路。<br/>
On → Read → Subscribe → 自动 MQ 转发,5 行代码启动第一条采集管道。
🏗️ 架构
应用层 (Your Code)
│
▼
┌──────────────────────────┐
│ IDaq / IMq / ICommunication ← 统一 API (15+12+13 子接口) │
├──────────────────────────┤
│ DaqAbstract │ MqAbstract │ CommunicationAbstract │
├──────────────────────────┤
│ CoreUnify<O,D> │
│ 单例池 · 事件总线 · 日志 · 多语言 · 计时 · WebAPI │
├──────────────────────────┤
│ Channel │ Cache │ Subscribe │ Plugin │ Reflection │ VirtualAddr │
└──────────────────────────┘
✨ 核心亮点
| 🔌 35+ 协议驱动 | 36 个 NuGet 包覆盖 PLC、机器人、仪器仪表 —— 统一 IDaq 接口,切换协议零改代码 | |
| 🧬 统一 API 范式 | On/Off/Read/Write/Subscribe 一致契约 —— 同一套代码适配 Modbus、Siemens、MQTT 或 Kafka |
|
| 🔄 插件热加载 | AssemblyLoadContext 隔离 · ZIP 上传即部署 · 运行时加载/卸载,无需重启 | |
| 🌐 内置 WebAPI | 6 个 HTTP 端点自动暴露 · /api/on /api/off /api/read /api/write /api/getstatus /api/switchlanguage |
|
| 💾 双缓存引擎 | ProcessCacheOperate (MemoryCache) + ShareCacheOperate (MemoryMappedFile) · 跨进程共享 · 重启不丢失 |
|
| 🌍 中英文热切换 | ILanguage + OnLanguageEvent 全局热切换 · 框架所有组件同步响应,无需刷新 |
|
| 📡 12 种传输层 | TCP/UDP/WebSocket/HTTP/Serial Client+Server · 统一 Send/SendWait · 自动分包 · 断线重连 |
|
| ⚡ 订阅推送引擎 | SubscribeOperate 可配间隔/变化检测/并行任务数 · 全部驱动统一支持 |
|
| 🎭 虚拟地址模拟 | 5 种模拟模式 · 无需真实 PLC 即可开发测试完整数据管道 | |
| 🛡️ 企业级可靠 | ConcurrentDictionary 单例池 (≤255) · SemaphoreSlim 守卫 · Channels 背压 |
|
| ⏱️ 异步优先 | 全部 8 个抽象方法 async + CancellationToken · 同步为薄封装 |
|
| 🚀 5 步上手 | 配置 → 实例 → 连接 → 读取/订阅 → 断开 · 无复杂配置,无样板代码 | |
| 📐 统一地址模型 | Address → AddressDetails (13 属性) → AddressValue · 8 种编码 + 4 种字节序 |
|
| 📨 自动 MQ 转发 | AddressMqParam 一键配置 — 采集数据自动推送到 MQTT/Kafka/RabbitMQ/NetMQ/Netty |
🚀 快速开始
dotnet add package Snet.Modbus -v 1.0.0.1
using Snet.Modbus;
using Snet.Model.data;
using Snet.Model.@enum;
// 1. 配置
var basics = new ModbusData.Basics { IpAddress = "192.168.1.100", Port = 502, Station = 1 };
// 2. 实例
await using var modbus = new ModbusOperate(basics);
// 3. 连接
await modbus.OnAsync();
// 4. 读取
var result = await modbus.ReadAsync(new Address(new AddressDetails("温度", "40001", DataType.Float)));
Console.WriteLine(result.GetSource<AddressValue>().ResultValue);
// 5. 断开 — using 自动调用 DisposeAsync
将
Modbus替换为任意协议名(Siemens/Mitsubishi/Omron/OPC...)— API 完全一致。
📡 协议矩阵
欧美 PLC
| 包 | 协议 | 变体 |
|---|---|---|
Snet.Siemens |
S7 / PPI / S7Plus / FetchWrite | 10 |
Snet.AllenBradley |
CIP / PCCC / SLC / DF1 / Micro800 | 6 |
Snet.Beckhoff |
ADS (TwinCAT 2/3) | 1 |
Snet.GE |
SRTP (PACSystems) | 1 |
日系 PLC
| 包 | 协议 | 变体 |
|---|---|---|
Snet.Mitsubishi |
MC 1E/3E/4E / FX / A1E / A3C / CIP / Links | 14 |
Snet.Omron |
Fins / CIP / HostLink / CMode | 8 |
Snet.Keyence |
MC / Nano / KvOld | 5 |
Snet.Panasonic |
MC / Mewtocol | 3 |
Snet.Yaskawa |
Memobus TCP/UDP | 2 |
Snet.Yokogawa |
Link TCP | 1 |
Snet.Fuji |
SPH / SPB | 4 |
Snet.Toyota |
Toyopuc | 1 |
Snet.OrientalMotor |
EIP | 1 |
国产 PLC
| 包 | 协议 | 变体 |
|---|---|---|
Snet.Inovance |
TCP / Serial / CIP / Easy / ComputerLink | 6 |
Snet.XinJE |
TCP / Serial / Internal | 4 |
Snet.Delta |
TCP / Serial / ASCII | 5 |
Snet.MegMeet |
TCP / Serial | 3 |
Snet.Vigor |
Serial | 2 |
Snet.WeCon |
Modbus TCP/RTU | 2 |
Snet.Fatek |
Serial | 2 |
标准 / 特殊协议
| 包 | 协议 | 变体 |
|---|---|---|
Snet.Modbus |
TCP / UDP / RTU / ASCII | 6 |
Snet.Opc |
UA Client+Server / DA / DA HTTP | 4 |
Snet.Freedom |
自由协议 (自定义报文) | 3 |
Snet.PQDIF |
DLT645/698 / CJT188 / DTSU6606 | 10 |
Snet.DB |
SqlServer / MySQL / Oracle / SQLite | 4 |
Snet.TEP |
TCP 扩展 (非标设备) | 自定义 |
Snet.Sim |
模拟库 (5 种虚拟地址) | — |
更多驱动
Snet.Kossi · Snet.Cimon · Snet.LSis · Snet.Invt · Snet.Yamatake · Snet.Turck · Snet.Fanuc · Snet.RKC · Snet.YuDian
📬 消息中间件
| 中间件 | 包 | 能力 |
|---|---|---|
| MQTT | Snet.Mqtt |
Client + Broker + WebSocket Broker · QoS 0/1/2 · Retain |
| Kafka | Snet.Kafka |
Producer + Consumer + AdminClient · SASL 认证 |
| RabbitMQ | Snet.RabbitMQ |
Direct/Topic/Fanout/Headers · 持久化 · 手动 ACK |
| NetMQ | Snet.NetMQ |
ZeroMQ Pub/Sub · 无 Broker · <1ms 延迟 |
| Netty | Snet.Netty |
TCP Client+Server · 自定义帧 · SSL/TLS |
// 统一 IMq 接口 — 切换中间件无需改动业务代码
public interface IMq : IOn, IOff, IProducer, IConsumer, IGetStatus, IEvent, ... { }
🔧 内置能力矩阵
| 能力 | 类 | 说明 |
|---|---|---|
| 🚰 数据管道 | ChannelOperate<T> |
System.Threading.Channels 封装 · 背压 · 双模式 (同步/异步) |
| 💾 进程缓存 | ProcessCacheOperate |
MemoryCache · 绝对/滑动过期 |
| 💾 共享缓存 | ShareCacheOperate |
MemoryMappedFile + Mutex · 跨进程 · 重启保留 |
| 🔍 反射工具 | ReflectionOperate |
动态加载 DLL · 调用方法 · 注册事件 |
| 🧩 插件引擎 | PluginOperate |
AssemblyLoadContext(isCollectible:true) · 热插拔 |
| 🎭 虚拟地址 | VirtualAddressManage |
5 种模式:Static / Random / Range / Order / OrderScope |
| 🔄 字节转换 | BytesHandler |
14 种类型 + 4 种字节序自动转换 |
| 🌐 WebAPI | 内置于 DaqAbstract | 6 端点自动暴露 · WAModel 配置端口+跨域 |
🤖 AI 辅助开发
<p align="center"> <a href="https://github.com/shunnet/SKILLS"><b>📦 Snet AI Skills — 自然语言生成完整项目代码</b></a> </p>
| 技能 | 一句话示例 |
|---|---|
| 🔌 DAQ-Skill | "连接西门子 S7-1500,读 DB1.0,MQTT 转发到 broker" → 完整项目 |
| 🧩 PluginDev-Skill | "开发温湿度传感器插件,TCP 发 Modbus 帧" → ZIP 热插拔包 |
| 🖥️ WpfUI-Skill | "创建深色主题监控面板,LED 状态灯,中英文切换" → WPF 应用 |
🌍 链接
| 🌐 官网 | shunnet.top |
| 📖 文档 | docs.shunnet.top |
| 📦 NuGet | nuget.org/profiles/shun |
| 💻 GitHub | github.com/shunnet |
| 🛠️ Debug 工具 | github.com/shunnet/Debug |
| 🔌 Daq 工具 | github.com/shunnet/Daq |
| 🤖 AI Skills | github.com/shunnet/SKILLS |
| 📝 博客 | blog.shunnet.top |
<p align="center"> <b>MIT License</b> · 开源 · 免费商用 · <a href="https://shunnet.top">shunnet.top</a> </p>
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Snet.Log (>= 26.210.1)
- Snet.Utility (>= 26.210.1)
-
net8.0
- Snet.Log (>= 26.210.1)
- Snet.Utility (>= 26.210.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Snet.Model:
| Package | Downloads |
|---|---|
|
Snet.Core
核心组件:Core(抽象、扩展、处理、反射、队列、中间件、订阅、虚拟地址、TCP、UDP、HTTP、WS、串口、WebApi、本地化、标准化) |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 26.210.3 | 0 | 7/29/2026 |
| 26.210.2 | 0 | 7/29/2026 |
| 26.210.1 | 0 | 7/29/2026 |
| 26.197.1 | 1,052 | 7/16/2026 |
| 26.196.2 | 980 | 7/15/2026 |
| 26.196.1 | 989 | 7/15/2026 |
| 26.168.1 | 1,729 | 6/17/2026 |
| 26.167.1 | 957 | 6/16/2026 |
| 26.166.2 | 998 | 6/15/2026 |
| 26.166.1 | 976 | 6/15/2026 |
| 26.155.1 | 998 | 6/4/2026 |
| 26.133.1 | 999 | 5/13/2026 |
| 26.118.3 | 2,503 | 4/28/2026 |
| 26.118.2 | 124 | 4/28/2026 |
| 26.118.1 | 120 | 4/28/2026 |
| 26.114.1 | 858 | 4/24/2026 |
| 26.110.1 | 855 | 4/20/2026 |
| 26.100.1 | 880 | 4/10/2026 |
| 26.99.1 | 888 | 4/9/2026 |
| 26.97.1 | 876 | 4/7/2026 |