跳到主要内容

主站 API 结构

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

API 结构

所有函数使用 uint16_t master_index(由 Initialize() 返回)标识主站实例。

动态加载模式下,所有函数通过 dll_t 结构体访问:

dll_t dll                              // DLL 上下文

├── 生命周期: Initialize, Dispose, Start, Stop
├── 网络: SetNetwork, GetNetworkInfo, QuickSlaveCount
├── 状态机: SetState, SetStateSequence, SetStateWithTimeout
├── IO: GetIO, WriteSlaveOutput

├── 从站属性: GetSlaveVendorId, GetSlaveName, GetSlaveState...
│ ├── PDO 读写: PdoReadInt32, PDOWriteOutputU16, PDOReadDirect...
│ ├── CoE/SDO: SDOread, SDOwrite, GetSlaveSDOList
│ │ ├── CiA 402: CiA402_Enable, CiA402_SetMode, CiA402_ParseState
│ │ └── EMCY: EmcyGetHistory, EmcyClearHistory
│ ├── SoE: SoERead, SoEWrite, SoEReadName
│ ├── FoE: FOERead, FOEWrite, FOEReadEx
│ ├── EoE: EOESetIP, EOESendFrame
│ ├── AoE: AOESendCommand, AOEReadWrite
│ ├── VoE: VOESend, VOEReceive
│ ├── FSoE: FSoEInitConnection, FSoEGetStatus
│ ├── DC: SetSyncBySlaveIndex, GetSlaveHasDC
│ └── 启动参数: AddStartupParameter, ClearStartupParameters, ApplyStartupParameters

├── 配置: LoadConfigJson, AutoConfigureSM, EcInit, EcClose
├── DC: ConfigureDCAll, EnableDriftCompensation
├── 组管理: SetSlaveGroup, SetGroupCycleDivider
├── 冗余: EnableRedundancy, GetRedundancyStatus
├── 诊断: GetDetailedDiagnostics, GetBreakPoints, GetMasterDiagData
├── 邮箱网关: WriteSlaveRegister, ReadSlaveRegister, SetSlaveWatchdog

├── 事件回调:
│ ├── SetLogCallback
│ ├── RegisterPDOCyclicSync / RegisterPDOCyclicAsync
│ ├── RegisterStateChangeSync / RegisterStateChangeAsync
│ ├── RegisterEmergency
│ ├── RegisterDiscoverySync / RegisterDiscoveryAsync
│ ├── RegisterPDOFrameLoss
│ ├── RegisterRedundancyChanged
│ ├── RegisterPreOpReconfig
│ ├── RegisterInputChanged
│ └── SetDCSyncLostCallback