35+ 协议驱动

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

核心亮点

统一 API 范式

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

插件热加载

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

异步优先设计

全部 8 个抽象方法均为 async,支持 CancellationToken 取消。所有同步方法为 .GetAwaiter().GetResult() 薄封装,不重复实现逻辑。

内置 WebAPI

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

统一地址模型

Address → AddressDetails(13 属性)→ AddressValue(Quality/ResultValue/OriginalValue/Message/Time)。8 种编码 + 4 种字节序。Protobuf 优化的 AddressValueSimplify 用于网络传输。

中英文热切换

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

订阅式数据推送

SubscribeOperate 管理异步轮询,可配间隔(HandleInterval)、变化检测(ChangeOut/AllOut)、并行任务数(TaskNumber)。所有协议统一支持。

5 步快速上手

配置 → 创建实例 → 连接 → 读取/订阅 → 断开。5 步走通全链路,无复杂配置,无样板代码。

消息中间件转发

MQTT/Kafka/RabbitMQ/NetMQ/Netty — 5 种中间件,统一 IMq 接口。通过 AddressMqParam 一键配置,采集数据自动转发到任意消息队列。

企业级可靠性

ConcurrentDictionary 单例池(硬上限 255)、SemaphoreSlim(1,1) 工厂守卫、System.Threading.Channels 背压控制。为 7×24 生产环境设计。

12 种通信传输层

TCP Client/Server、UDP Unicast/Multicast/Broadcast、WebSocket Client/Server、HTTP Client/Server、Serial、BoundedChannel。统一 Send/SendWait 接口。

双缓存系统

ProcessCacheOperate(MemoryCache,进程内)+ ShareCacheOperate(MemoryMappedFile,跨进程)。热数据重启不丢失,跨进程共享 — 双引擎自由选择。

多格式序列化

System.Text.Json、Newtonsoft.Json、XmlSerializer、Protobuf 开箱即用。内置 AES 加密、SHA256/SHA1/MD5 哈希、Base64 编解码。

虚拟地址模拟

5 种模拟模式:静态、动态随机、随机范围、顺序递增、顺序范围。无需真实 PLC 即可离线开发与测试完整数据管道。

准备好开始了吗?

安装 NuGet 包,三行代码即可启动您的第一个数据采集管道。