版本:v3.0 | 日期:2026-07-22
本文档描述 NewLife.Schneider(施耐德 PLC 驱动库)的愿景、核心目标和功能方向。完成状态在功能清单中追踪,详细设计在架构设计中展开。
NewLife.Schneider 是基于 Modbus TCP 协议的施耐德(Schneider Electric)PLC 通信驱动库,属于新生命 IoT 生态的驱动组件之一。它为上层 IoT 平台(如 ZeroIoT、IoTEdge)提供标准化的施耐德 PLC 设备接入能力,开发者通过统一的 IDriver / INode 接口即可完成设备连接、数据读写,无需关注 Modbus 协议细节。
成为 .NET 生态下最易用的施耐德 PLC 通信库——开箱即用、与 NewLife.IoT 生态无缝集成、驱动可自动发现、支持 Modbus TCP 全功能读写、提供高层标签式 API 和自动类型转换,让工业物联网应用开发像普通数据库访问一样简单。
| 编号 | 目标 | 所属层级 | 一句话描述 |
|---|---|---|---|
| DRV | 驱动核心 | 核心层 | 基于 Modbus TCP 实现施耐德 PLC 的连接管理与数据读写 |
| PRT | 协议扩展 | 扩展层 | 提供施耐德地址解析、型号预设、标签式读写、数据类型自动转换 |
| TST | 测试验证 | 保障层 | 提供自动化单元测试确保功能正确性 |
编码说明:采用字母前缀方案(DRV/PRT/TST)。
- DRV-1 驱动入口(SchneiderDriver):实现
ModbusTcpDriver的子类,标注[Driver("SchneiderPLC")]特性以支持驱动自动发现,驱动打开时自动初始化 Modbus 通道。 - DRV-2 连接节点(SchneiderNode):实现
INode接口,封装设备连接状态,持有驱动、设备、参数引用。 - DRV-3 连接参数(SchneiderParameter):继承
ModbusTcpParameter,为施耐德 PLC 提供标准化 Modbus TCP 参数配置(主机地址、端口、功能码等)。 - DRV-4 配置持久化:为
SchneiderParameter提供 JSON 序列化/反序列化支持,便于保存和加载连接配置,支持从 JSON 字符串快速还原参数对象。 - DRV-5 健康检测增强:在驱动层提供周期性连接健康检测机制,自动感知 PLC 连接状态变化,支持断线自动重连和连接状态变更事件通知。
- PRT-1 施耐德专用协议:针对施耐德 PLC 特有的协议扩展或优化实现(代码骨架已预留
Protocols/目录,已被 PRT-2/3/4/5 替代)。 - PRT-2 施耐德地址解析:解析
%MW、%M、%I、%QW等施耐德原生寻址语法,自动映射到 Modbus 寄存器/线圈地址和对应功能码。 - PRT-3 型号预设配置:为 M200、M221、M241、M251、M258、M262 等常见施耐德 PLC 型号提供预设参数(默认端口、功能码、寄存器限制等)。
- PRT-4 标签式读写 API:提供
ReadTag/WriteTag高层接口,允许直接使用施耐德标签名(如"MW100"、"M0.1")进行读写,屏蔽 Modbus 协议细节。 - PRT-5 施耐德特有数据类型支持:在标签式读写基础上提供自动类型转换,
ReadTag返回对应 .NET 类型(UInt16/UInt32/Single/Boolean),新增ReadTagValue<T>泛型方法返回强类型值,WriteTag自动将 .NET 类型转换为 Modbus 协议格式。 - PRT-6 Slave 模式:基于
NewLife.IoT.ModbusSlave基类实现施耐德 PLC 从机/服务器模式,允许其他 Modbus 主站通过标准 Modbus TCP 协议读写本驱动的寄存器/线圈数据。提供BeforeRead/AfterWrite事件回调,支持与标签式读写的集成。
- TST-1 手动测试控制台:提供控制台程序,可连接 Modbus TCP 服务端进行读写验证。
- TST-2 自动化单元测试:xUnit 测试项目,覆盖地址解析、型号预设、驱动核心功能等。
- TST-3 数据类型转换单元测试:覆盖
%MW/%MD/%MF/%M等地址类型的自动类型转换验证,确保大端序字节到 .NET 类型的正确映射。
- 本项目专注 Modbus TCP,其他传输层协议(串口 RTU、ASCII、UDP 等)由 NewLife.Modbus 基础库提供。
- 本项目是纯驱动类库,不实现设备管理、拓扑发现等 IoT 平台层功能,这些由上层平台(ZeroIoT/IoTEdge)负责。
- 本项目不提供 Web 管理界面。
- 本项目不原生支持 Modbus Plus。Modbus Plus(MB+)是施耐德在 1980s 开发的专有高速网络协议(令牌传递、1 Mbps 双绞线),与 Modbus TCP 协议栈完全不同,需要专用硬件卡(SA85/PCI-MBUS+)和厂商 SDK,不符合纯软件驱动库的定位。用户可通过施耐德以太网模块(如 140 NOE 771 01、TSX ETY 110)将 MB+ 网络桥接到 Modbus TCP,然后用现有 NewLife.Schneider 驱动访问。详见
Modbus Plus 桥接说明。