|
主站怎么跟从站交互、交互什么、以及报文到底长什么样。 一、先建立一个核心认知 EtherCAT 和传统“主站发请求→从站回应”的总线完全不一样。 EtherCAT 的本质是:主站发一帧大报文,从站“边收边改”,最后原路返回 也就是说: 没有一问一答 没有单独设备响应帧 一帧搞定所有从站数据交换 二、EtherCAT通信的三种核心交互内容 主站和从站交互的信息主要分三类: 1、PDO(过程数据)——实时控制数据(核心) 这是最重要的: 主站 → 从站(输出) 伺服控制字 目标位置 目标速度 输出IO状态 使能信号 从站 → 主站(输入) 实际位置 实际速度 电流 状态字 IO输入状态 特点: 实时周期通信(1ms / 500us / 250us) 不需要确认 固定映射(ESI文件定义) 2、SDO(参数对象)——配置/参数访问 用于非实时数据: 伺服参数(增益、限位) 电机参数 网络配置 模式切换 设备标定 特点: 一问一答 Mailbox机制 不参与实时周期 类似“读写寄存器” 3、状态/同步信息(DC/SM) 用于系统协调: SM同步事件 DC时间戳同步 Sync0/Sync1触发 网络状态(OP / SAFEOP / INIT) 用于: 多轴同步 飞剪/电子凸轮 时间对齐 三、EtherCAT主站通信完整流程 一个周期内发生的事情如下: Step 1:主站发出一帧EtherCAT 数据帧 主站只发 一帧 Ethernet frame 里面包含: 多个从站的数据区(逻辑切片) 每个从站对应一个“数据窗口” Step 2:报文进入第1个从站 从站做三件事: 读取属于自己的输出数据(Master→Slave) 例如: 目标位置 控制字 写入输入数据(Slave→Master) 例如: 实际位置 状态字 报文继续往下转发 注意:从站不会拆包,只是在“流过的报文中修改数据” Step 3:报文依次经过所有从站 链式结构:Master → Slave1 → Slave2 → Slave3 → ... → 回到 Master Step 4:回到主站(完成一个周期) 主站收到: 所有从站更新后的输入数据 一个完整“循环后的数据帧” 四、EtherCAT数据帧结构 EtherCAT本质是 标准Ethernet Frame + EtherCAT Data 1. 外层:标准以太网帧 | Ethernet Header || EtherType = 0x88A4 || EtherCAT Datagram || FCS | 2. EtherCAT Datagram(核心) 一个帧里面可以有多个 Datagram: +---------------------+| Datagram Header |+---------------------+| Command (LRW/ARMW/BRD/WR/...) || Index || Address || Length || Interrupt / WKC |+---------------------+| Data Area (PDO) |+---------------------+ <b>五、关键结构:PDO是怎么“塞进去”的? EtherCAT的关键不是“报文发给谁”,而是:PDO被映射到报文的某个偏移位置 示例(3个从站PDO映射) Frame Data Area:------------------------------------------------| Slave1 Output | Slave2 Output | Slave3 Output || Slave1 Input | Slave2 Input | Slave3 Input |------------------------------------------------ 主站只做: 定义 offset(偏移) 定义 length(长度) 定义 mapping(ESI文件决定) <b>六、EtherCAT常见报文类型 EtherCAT datagram command类型: 命令 | 作用 | LRW | Logical Read Write(最常用PDO循环) | LWR | Logical Write | LRD | Logical Read | APRD | 读单个从站 | APWR | 写单个从站 | FPRD/FPRW | 物理地址访问 |
PDO循环几乎都是 LRW 七、SDO通信数据帧(Mailbox机制) SDO不走PDO帧,而是: Mailbox结构: | Mailbox Header || CoE Protocol || SDO Command || Index/SubIndex || Data | 特点: 主站发请求 从站必须回复 典型用于参数读写 <b>八、DC同步信息是怎么传的? DC不是单独报文,而是:从站内部时钟 + 主站校准机制 关键机制: Sync0(周期触发) Sync1(事件触发) 时间偏移补偿 延迟测量(propagation delay) 九、一个完整周期长什么样 假设周期 1ms: 每 1ms: 1.主站发送 1帧 EtherCAT Frame 2.帧经过所有从站 3.每个从站: 更新输入PDO 读取输出PDO 4.主站收到完整输入数据 5.运动控制算法更新 6.下一周期重复 十、工程总结 EtherCAT本质是:“一帧报文 + 线性扫描 + 过程数据映射 + 边收边写” 不是传统意义的: 请求-响应 设备单独通信 点对点交互 而是: 流式数据总线 全网共享帧 硬件级数据切片 纳秒级同步体系(DC) --- 往期热门文章: </b></b></b> 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |