Skip to content

Latest commit

 

History

History
58 lines (38 loc) · 4.99 KB

File metadata and controls

58 lines (38 loc) · 4.99 KB

NewLife.Schneider 需求文档

版本:v3.0 | 日期:2026-07-22

本文档描述 NewLife.Schneider(施耐德 PLC 驱动库)的愿景、核心目标和功能方向。完成状态在功能清单中追踪,详细设计在架构设计中展开。

1. 背景与愿景

1.1 系统定位

NewLife.Schneider 是基于 Modbus TCP 协议的施耐德(Schneider Electric)PLC 通信驱动库,属于新生命 IoT 生态的驱动组件之一。它为上层 IoT 平台(如 ZeroIoT、IoTEdge)提供标准化的施耐德 PLC 设备接入能力,开发者通过统一的 IDriver / INode 接口即可完成设备连接、数据读写,无需关注 Modbus 协议细节。

1.2 愿景

成为 .NET 生态下最易用的施耐德 PLC 通信库——开箱即用、与 NewLife.IoT 生态无缝集成、驱动可自动发现、支持 Modbus TCP 全功能读写、提供高层标签式 API 和自动类型转换,让工业物联网应用开发像普通数据库访问一样简单。

2. 核心目标

编号 目标 所属层级 一句话描述
DRV 驱动核心 核心层 基于 Modbus TCP 实现施耐德 PLC 的连接管理与数据读写
PRT 协议扩展 扩展层 提供施耐德地址解析、型号预设、标签式读写、数据类型自动转换
TST 测试验证 保障层 提供自动化单元测试确保功能正确性

编码说明:采用字母前缀方案(DRV/PRT/TST)。

3. 功能需求

3.1 DRV — 驱动核心

  • 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 连接状态变化,支持断线自动重连和连接状态变更事件通知。

3.2 PRT — 协议扩展

  • 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 事件回调,支持与标签式读写的集成。

3.3 TST — 测试验证

  • TST-1 手动测试控制台:提供控制台程序,可连接 Modbus TCP 服务端进行读写验证。
  • TST-2 自动化单元测试:xUnit 测试项目,覆盖地址解析、型号预设、驱动核心功能等。
  • TST-3 数据类型转换单元测试:覆盖 %MW/%MD/%MF/%M 等地址类型的自动类型转换验证,确保大端序字节到 .NET 类型的正确映射。

4. 功能边界

  • 本项目专注 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 桥接说明