DarraEtherCAT
EtherCAT 主站的核心类,负责管理整个 EtherCAT 网络的初始化、状态管理、从站控制和 PDO 通信。
类结构
DarraEtherCAT // 主站实例
│
├── Config → MasterConfig // 通信配置
├── Diagnostics → MasterDiagnosticsInfo // 主站诊断
├── MasterOD → MasterObjectDictionary // ETG.1510 主站对象字典
│
├── Slaves[n] → Slave // 从站列表
│ │
│ ├── PDO → SlavePdo // PDO 数据读写
│ ├── Diagnostics → SlaveDiagnostics // 诊断信息
│ │ └── DC → SlaveDCDiagnostics // DC 同步诊断
│ ├── Startup → StartupParameterList // 启动参数
│ │
│ ├── CoE → CoEInstance? // CANopen over EtherCAT
│ │ ├── CiA402 → CiA402Instance? // 伺服驱动协议
│ │ └── CiA401 → CiA401Instance? // 通用 I/O 协议
│ ├── SoE → SoEInstance? // Servo over EtherCAT
│ ├── FoE → FoEInstance? // File over EtherCAT
│ ├── EoE → EoEInstance? // Ethernet over EtherCAT
│ ├── AoE → AoEInstance? // ADS over EtherCAT
│ ├── VoE → VoEInstance? // Vendor over EtherCAT
│ ├── FSoE → FSoEInstance? // 功能安全协议
│ └── MDP → MdpInstance? // 模块化设备
│
└── Events → MasterEvents // 事件集合
├── ProcessDataCyclicAsync // PDO 周期回调(异步)
├── ProcessDataCyclicSync // PDO 周期回调(同步)
├── StateChanged // 主站状态变化
├── SlaveStateChanged // 从站状态变化 → 自动路由到 slave.Events
├── EmergencyEvent // 紧急事件 → 自动路由到 slave.Events
├── SlaveOffline / SlaveOnline // 热插拔 → 自动路由到 slave.Events
├── PDOFrameLoss // PDO 丢帧
├── DCSyncLost // DC 同步丢失 → 自动路由到 slave.Events
├── RedundancyModeChanged // 冗余模式变化
└── InputDataChanged // 输入 PDO 数据变化 → 自动路由到 slave.Events
协议实例(CoE、SoE 等)按从站实际能力创建,不支持的协议返回 null。