🔷 特性
工业数据采集所需的一切,尽在一个框架之中。
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 即可离线开发与测试完整数据管道。
