在EtherCAT从站协议栈的开发过程中,需要根据自身需要扩充SDO配置,这时候就需要修改相应的代码以实现需求。
本文以0x604D对象为例,具体需要做的事项如下:
1、修改XML文件,添加SDO对象
手动添加如下代码
将上述修改好的XML导入到上位机中,PLC或者TwinCAT均可,可达到如下的效果:
2、修改SSC内相关代码以扩充SDO内容
在cia402appl.h的CiA402Objects结构体中添加objTorqueModeVelocityLimit成员变量
在cia402appl.h的DefCiA402ObjectValues变量内添加0x604D的初始化参数
在cia402appl.h中添加0x604D的相关参数定义
在cia402appl.h中的DefCiA402AxisObjDic[]中添加初始化参数
在 cia402appl.c的Cia402_Init中添加相关初始化代码
/** \return 0 Init CiA402 device successful ALSTATUSCODE_XX Init CiA402 device failed \brief This function initializes the Axes structures *//////////////////////////////////////////////////////////////////////////////////////// UINT16 CiA402_Init(void) { //code case 0x604D: pDiCEntry->pVarPtr = &LocalAxes[AxisCnt].Objects.objTorqueModeVelocityLimit; break; //code }3、在上位机上验证
通过上位机的在线COE功能可以正常读写上述SDO即可达到目的。本例写入0x604D=2026成功。
更多知识分享:
b站,知乎同名:沧海一条狗
咸鱼ID:tb764914262