中国机器人网 App
手机扫码下载 · 或点击查看
刚转行做机器人应用工程师,之前只玩过Modbus和CANopen,现在项目要用EtherCAT,主站用的是倍福CX5130,从站是自家板子(用的ET1100芯片)。想问下各位EtherCAT协议具体怎么编程啊?是要自己手写ESI XML还是用SSC工具生成?PDO映射那块完全没概念,过程数据到底怎么实时交互的?有没有推荐的开源例子或者教程,最好能讲讲从站开发全流程的那种。
直接用倍福官方的SSC(Slave Stack Code)工具,别自己造轮子。流程是先用SSC生成协议栈代码,里面会带XML描述文件模板,自己改改PDO配置就行。PDO映射说白了就是配置对象字典0x1C00里的SM通道和0x1A00/0x1600里的映射条目,主站周期性把过程数据按你配的地址往从站RAM里扔,一般SPI或并行总线接ET1100。推荐下EtherCAT Technology Group官网的ET1100手册和从站应用手册,英文的但讲得细,CIA402驱动也带例程。
先把EtherCAT状态机搞清楚再谈编程。ET1100上电后得从Init切到PreOP才能配SM和FMMU,再切到SafeOP才进过程数据通讯,OP状态才允许PDO收发。自己写驱动的话注意看XML里DC配置有没有启用分布式时钟,启用后从站要根据SYNC0中断同步本地时间,这个坑很深。
提醒一句,如果从站是伺服驱动器,PDO里至少得把控制字6040h、状态字6041h、目标位置607Ah、实际位置6064h这四个映射进去,否则主站发啥你都不知道。更保险的做法是直接用倍福的ELMO驱动器或者步科电机,他们有现成的CIA402参考实现,比自己从头搞快得多。