我想用代码接入设备
安装对应协议包,从连接、读取到消息转发。
安装与示例 阅读开发文档连接、读取、检查结果。先看真实调用,再为你的设备选择对应驱动。
先选择设备协议,再核对地址规则与数据类型。
选择一个示例,复制后开始。
dotnet add package Snet.Modbus --version 26.301.1dotnet add package Snet.Modbus --version 26.301.1using Snet.Modbus;
using Snet.Model.data;
using Snet.Model.@enum;
using System.Text.Json;
await using var device = await ModbusOperate.InstanceAsync(new ModbusData.Basics
{
IpAddress = "127.0.0.1", Port = 1502, Station = 1,
ProtocolType = ModbusData.ProtocolType.ModbusTcpNet,
AddressStartWithZero = false
});
var connected = await device.OnAsync();
if (!connected.Status) { Console.WriteLine(connected.Message); return; }
var value = await device.ReadAsync(new Address(new AddressDetails
{
AddressName = "1", AddressDataType = DataType.Short
}));
Console.WriteLine(value.Status ? JsonSerializer.Serialize(value.ResultData) : value.Message);
await device.OffAsync(true);dotnet add package Snet.Siemens --version 26.301.1using Snet.Siemens;
using Snet.Model.data;
using Snet.Model.@enum;
using System.Text.Json;
await using var device = await SiemensOperate.InstanceAsync(new SiemensData.Basics
{
IpAddress = "127.0.0.1", Port = 102,
ProtocolType = SiemensData.ProtocolType.SiemensS7Net_S1200,
Rack = 0, Slot = 1, PDULength = -1
});
var connected = await device.OnAsync();
if (!connected.Status) { Console.WriteLine(connected.Message); return; }
var value = await device.ReadAsync(new Address(new AddressDetails
{
AddressName = "DB1.DBD0", AddressDataType = DataType.Float
}));
Console.WriteLine(value.Status ? JsonSerializer.Serialize(value.ResultData) : value.Message);
await device.OffAsync(true);dotnet add package Snet.Modbus --version 26.301.1
dotnet add package Snet.Mqtt --version 26.301.1using Snet.Modbus;
using Snet.Mqtt.client;
using Snet.Model.data;
using Snet.Model.@enum;
using System.Text.Json;
using System.Text;
await using var device = await ModbusOperate.InstanceAsync(new ModbusData.Basics
{
IpAddress = "127.0.0.1", Port = 1502, Station = 1,
ProtocolType = ModbusData.ProtocolType.ModbusTcpNet,
AddressStartWithZero = false
});
await using var mqtt = await MqttClientOperate.InstanceAsync(new MqttClientData.Basics
{
IpAddress = "127.0.0.1", Port = 1883,
UserName = "", Password = ""
});
var connected = await device.OnAsync();
if (!connected.Status) { Console.WriteLine(connected.Message); return; }
var broker = await mqtt.OnAsync();
if (!broker.Status) { Console.WriteLine(broker.Message); return; }
var value = await device.ReadAsync(new Address(new AddressDetails
{
AddressName = "1", AddressDataType = DataType.Short
}));
if (!value.Status) { Console.WriteLine(value.Message); return; }
var sent = await mqtt.ProduceAsync("snet/demo", JsonSerializer.Serialize(value.ResultData), Encoding.UTF8);
Console.WriteLine(sent.Status ? "Published" : sent.Message);
await mqtt.OffAsync(true);
await device.OffAsync(true);Modbus TCP · 1234查看验证范围 →本地演示端口:Modbus 1502 / MQTT 1883;连接真实设备前请修改参数。
围绕采集、消息与通信组织代码。业务层专注数据,设备层按需扩展。
框架官网的分类口径:36 个接入包包含设备协议、数据库、模拟与自定义接入;130+ 为协议变体,6 为消息与传输通道,46 为框架包范围,不代表全部作者包或经过本页实测的设备数量。
查看框架目录
Snet.统一接口 · 自由扩展IDaq、IMq 与 ICommunication 分别组织采集、消息与通信操作。连接、读写、订阅与返回结果具有一致的使用方式。
基于 AssemblyLoadContext 加载插件,为非标设备和自定义消息系统提供扩展路径;兼容宿主支持运行时加载与卸载。
设备数据通过地址模型进行解析与类型转换,可结合消息配置转发到 MQTT、Kafka 等系统,连接现场与上层应用。
统一地址描述、订阅和结果模型。支持的协议可通过自动组包合并读取请求,减少分散点位的通信往返。
提供通信传输、事件、缓存、日志及 WebAPI 能力;结合 RPC、Redis 与 WPF 配套库,构建数据服务和桌面应用。
异步操作配合统一 OperateResult 返回状态、消息和数据;内置模拟与虚拟地址便于前期开发,框架支持中英文切换。
以下是功能组合示意,配置步骤与项目入口可直接查阅。
36 个设备接入包
没有匹配的协议,请更换关键词或清除筛选。
按主要用途分组;同一厂商可能覆盖多类设备。具体型号、TCP/串口等传输方式及读写能力,请阅读对应文档。“模拟”表示模拟数据源,不是协议成熟度评级。
先选择工作方式,再深入源码。数采、通信调试与工业视觉,是生态的三条核心路径。
配置多设备采集,连接 PLC、OPC、Modbus、数据库和非标设备,并通过消息插件转发数据。提供 Windows WPF 桌面端与 Windows / Linux Blazor Web 端,共享核心业务。
.NET 10 工业视觉平台:YOLO 识别目标与已知缺陷,Anomalib 定位异常,SAM 辅助点选标注。提供标注、训练、ONNX 与联合验证,支持 Windows / Linux Web、API 及 Windows WPF 工具;核心组件通过源码项目引用集成。
面向单设备与单协议的交互式调试。覆盖数据读写、订阅、消息通信、实时图表及 OPC UA 节点浏览,与 Daq 数采工具互补。
WPF 现代界面与基础架构。包含 Snet.Windows.Core / Controls、MVVM、主题、中英文本地化、窗口基类、属性编辑器和多种常用控件。
界面库 · Windows查看源码基于 DotNetty 的 .NET 远程过程调用库,提供服务注册、客户端代理和异步调用。仓库附有服务端与客户端样例,适用于进程间和内网服务通信。
服务通信 · .NET查看源码Snet.Redis 连接与操作封装,面向缓存、会话、状态及发布订阅场景。通过统一操作入口管理 Redis 连接和常见数据结构。
缓存集成 · .NET查看源码可参考的 Snet 用法集合,按 core、daq、relay、tep、web 分组,展示通信、采集、消息转发、非标设备接入和 WebAPI 集成。
使用示例 · .NET 10查看源码社区插件源码目录,按作者与 daq / mq 类型组织,用于分享设备接入、自定义采集和消息插件。接口、依赖与宿主兼容性由插件说明确定。
社区扩展 · IDaq / IMq查看源码供 AI 编程助手使用的四项 Snet 技能,覆盖数据采集、消息收发、IDaq / IMq 插件开发与 WPF 应用,提供工作流程及接口约定。
AI 开发辅助 · 文档查看源码以下工具独立于工业采集主线。
11 个应用、工具与生态项目;框架包分发与应用源码分别提供入口。
数据更新于 · 查看最新发布与仓库 ↗
先建立框架概念,再沿着协议文档、项目源码与实践文章,走到自己的应用场景。
覆盖安装、配置、核心引擎、协议、中间件、WPF 与 API 参考,支持中文和英文阅读。
Snet AI Skills 为编程助手提供领域知识、接口契约与开发步骤。
连接一台 Modbus 设备,读取寄存器并转发到 MQTT。
// DAQ → MQTT
var value = await device.ReadAsync(address);
if (value.Status)
await mqtt.ProduceAsync(topic,
Serialize(value.ResultData), Encoding.UTF8);流程演示;生成结果仍需检查与测试。
平台支持来自对应项目说明;包分发、源码与第三方组件分别说明授权范围。
| 组件 | Windows | Linux | macOS |
|---|---|---|---|
| Daq / VisualIdentity Web、API | 支持 | 支持 | 未声明 |
| WPF / Debug / KMSim | 支持 | 不支持 | 不支持 |
| .NET 通信库 | 依具体驱动与依赖;OPC DA 需 Windows COM。 | ||
应用主要使用 .NET 10,框架库支持 .NET 8 / 10;具体驱动与硬件加速要求见项目文档。
Daq、Debug、VisualIdentity 的公开源码采用 MIT,可按 MIT 条款使用和商用;框架通过 NuGet 分发。插件、模型与依赖按各自许可使用。
| 组件 | 分发与许可 |
|---|---|
| Snet.Modbus | NuGet 包 · MIT ↗包许可不代表本站提供框架核心源码。 |
| Daq / Debug / VisualIdentity | GitHub 源码 · MIT以各仓库 LICENSE 为准。 |
| 插件、模型与第三方依赖 | 分别查阅对应仓库与上游许可。 |
插件、模型与依赖的许可入口,见第三方声明。
示例的验证程度与平台、许可范围集中说明。
| 示例 | 验证方式 | 结果与范围 |
|---|---|---|
| Modbus TCP | 本机回环模拟器 | 读取值 1234;不连接真实 PLC。 |
| Modbus → MQTT | 本机回环与 MQTT 接收断言 | Published,接收端确认同一地址值为 1234。 |
| Siemens S7 | 编译验证 | 尚未连接真实 PLC 或 S7 模拟器。 |
Compose 提供 Modbus 模拟器和 Mosquitto,端口仅绑定本机。当前验证环境没有 Docker,容器栈尚未实际启动。
产品截图来自公开项目 README;架构、场景与 AI 代码为流程示意。性能、硬件兼容性与生成代码需在你的环境中验证。
框架包以 NuGet 分发,应用源码分别提供;第三方依赖、插件和模型以各自许可为准。
运行同一套本地示例 ↗项目在代码中成长,经验在交流中积累。找到作者,关注更新,一起把想法落到现场。
核心是面向 .NET 的工业通信与数据采集框架;围绕它有 Daq 数采、Debug 调试、WpfMUI 界面库、VisualIdentity 工业视觉及其他配套项目。可在现有项目中按需安装框架包,也可使用公开的应用源码。
已有 .NET 项目需要连接设备,先选择对应 NuGet 协议包;希望配置多设备采集与转发,查看 Daq;需要交互式读写和诊断设备通信,查看 Debug。视觉检测对应 VisualIdentity,桌面界面开发对应 WpfMUI。
框架通过 NuGet 分发,Snet.Modbus 的包元数据标注 MIT;这不等于本站提供框架核心源码。Daq、Debug 与 VisualIdentity 的公开源码仓库采用 MIT。插件、模型权重及第三方依赖需分别阅读其许可。详见上方授权范围表。
Daq 的 Blazor Web 与 VisualIdentity 的 Web/API 支持 Windows 和 Linux;WPF 桌面端、Debug、WpfMUI 与 KMSim 仅适用于 Windows。macOS 暂无这些应用的官方支持说明。框架库需按驱动检查平台依赖,例如 OPC DA 依赖 Windows COM。
页面与文章的更新时间、统计范围可能不同。开发时以所安装包版本的文档、API 和项目引用为准,避免混用不同版本的 Snet 包。
需要把设备通信嵌入自己的 .NET 系统,优先评估协议包、API 与平台依赖;需要配置式采集转发,评估 Daq;单设备排障先用 Debug。按设备协议、部署环境和可维护性选择,并用自己的设备验证,不用页面数字代替选型测试。
优先在对应项目的 GitHub Issues 提供版本、协议、复现步骤和必要日志;使用交流可加入 QQ 群。社区项目未承诺固定响应时间,避免在公开反馈中提交密码、密钥或生产连接信息。