跳到主要内容

EtherCATMaster

EtherCAT 主站的核心类,负责管理整个 EtherCAT 网络的初始化、状态管理、从站控制和 PDO 通信。实现 AutoCloseable 接口,支持 try-with-resources

类结构

EtherCATMaster                                   // 主站实例(AutoCloseable)

├── Config() → MasterConfig // 通信配置
├── Diagnostics() → MasterDiagnosticsInfo // 主站诊断
├── MasterOD() → MasterObjectDictionary // 主站对象字典
├── MailboxGateway() → MailboxGatewayService // 邮箱网关
├── SlaveTopology() → SlaveTopology // 从站拓扑
├── Logs() → LogManager.LogView // 日志视图

├── Slaves() → List<Slave> // 从站列表
│ │
│ ├── PDO() → PDO // PDO 数据读写
│ ├── Diagnostics() → SlaveStats // 诊断统计
│ ├── DC() → DC // DC 同步配置
│ ├── Topology() → SlaveTopology // 拓扑信息
│ ├── StartupParameters() → StartupParameterList // 启动参数
│ │
│ ├── CoE() → CoE // CANopen over EtherCAT
│ ├── CiA402() → CiA402 // 伺服驱动协议(直接访问)
│ ├── CiA401() → CiA401 // 通用 I/O 协议(直接访问)
│ ├── SoE() → SoE // Servo over EtherCAT
│ ├── FoE() → FoE // File over EtherCAT
│ ├── EoE() → EoE // Ethernet over EtherCAT
│ ├── AoE() → AoE // ADS over EtherCAT
│ ├── VoE() → VoE // Vendor over EtherCAT
│ ├── FSoE() → FSoE // 功能安全协议
│ └── MDP() → MDP // 模块化设备

└── Events() → MasterEvents // 事件集合
├── addProcessDataCyclicAsyncListener(...) // PDO 周期回调(异步)
├── addProcessDataCyclicSyncListener(...) // PDO 周期回调(同步)
├── addStateChangedListener(...) // 主站状态变化
├── addSlaveStateChangedListener(...) // 从站状态变化
├── addEmergencyEventListener(...) // 紧急事件
├── addSlaveOfflineListener(...) / addSlaveOnlineListener(...)
├── addSlaveIdentityMismatchListener(...) // 从站身份不匹配
├── addSlavePortLinkChangedListener(...) // 从站端口链路变化
├── addPDOFrameLossListener(...) // PDO 丢帧
├── addDCSyncLostListener(...) // DC 同步丢失
├── addRedundancyModeChangedListener(...) // 冗余模式变化
└── addInputDataChangedListener(...) // 输入 PDO 数据变化

所有子对象采用延迟创建模式,首次访问时自动实例化。 CiA402 和 CiA401 通过 slave.CiA402() / slave.CiA401() 直接访问,不需要先获取 CoE。