如何解决在 SOEMethercat stack上控制伺服电机
我现在正在学习控制事物。 :) 我正在使用 SOEM、ethercat 堆栈。 PC是我的主人,伺服电机是我的奴隶。我在那里学到了一些东西,但坚持移动伺服电机。我确保数据是从主站发送的,但由于某种原因,它没有到达从站,即伺服电机。这就是与你们联系的原因。
我的简洁是它必须与同步管理器做一些事情,但作为一个学习者,我不确定。
// Code for reaching the slaves to operational state
// And then I try to control the servo motor by writing to its control word(6040).
// send_data & receive_data is called as usual for master/slave.
if(ec_slave[0].state == EC_STATE_OPERATIONAL) {
uint16 status[1];
int pointer_2=sizeof(status);
uint16 uint16val;
printf("Operational state reached for all slaves.\n");
for(i = 1; i <= 10; i++) {
ec_send_processdata();
wkc = ec_receive_processdata(EC_TIMEOUTRET);
ec_SDOread(1,0x6041,FALSE,&pointer_2,&status,EC_TIMEOUTRXM);
printf("status=%d\n",status[0]);
uint16val=0xf;
ec_SDOwrite(1,0x6040,sizeof(uint16val),&uint16val,EC_TIMEOUTRXM);
osal_usleep(5000);
}
}
此代码打印的状态是“608”。
有没有专家可以指导我下一步的操作?为他们干杯。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。