跳到主要内容

EtherCATMaster

EtherCAT 主站的核心类,负责管理整个 EtherCAT 网络的初始化、状态管理、从站控制和 PDO 通信。

类结构​

EtherCATMaster                                   # 主站实例
│
├── config -> MasterConfig # 通信配置
├── diagnostics -> Optional[dict] # ETG.1510 基础诊断数据
├── diagnostics_info -> MasterDiagnosticsInfo # 高级诊断(帧计数、抖动等)
├── logs -> LogView # 日志视图
├── master_od -> MasterObjectDictionary # ETG.1510 主站对象字典
├── mailbox_gateway -> MailboxGatewayService # ETG.8200 邮箱网关
│
├── HotConnect 类 (darra_ethercat.master.hot_connect 模块) # Hot-Connect 组管理 (Alias-based, 可选成员组)
│
├── master[n] -> Slave # 从站访问(1-based 索引)
│ │
│ ├── coe -> CoE # CANopen over EtherCAT (SDO 读写)
│ ├── 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 # 功能安全协议
│ ├── cia402 -> CiA402 # 伺服驱动协议
│ ├── pdo -> SlavePdo # PDO 数据读写
│ ├── events -> SlaveEvents # 从站级事件
│ ├── dc_config -> DcConfig # DC 分布式时钟配置
│ └── startup -> StartupParameterList # 启动参数
│
├── on_pdo_cycle() # PDO 周期回调(同步)
├── on_state_change() # 从站状态变化回调
├── on_emergency() # 紧急事件回调
├── on_slave_discovery() # 从站发现/丢失回调
├── on_pdo_frame_loss() # PDO 丢帧回调
├── on_redundancy_mode_changed() # 冗余模式变化回调
├── set_dc_sync_lost_callback() # DC 同步丢失回调
└── set_log_callback() # 日志回调

协议实例(CoE、SoE 等)按需懒创建,始终返回对象;从站是否支持该协议用 slave.coe.is_supported 等属性判断(slave.mdp 不支持时返回 None)。 CiA402 也可通过 CiA402Advanced 独立创建,支持 PDO 映射扫描。