embedded - 在 SOEM(ethercat 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,0,FALSE,&pointer_2,&status, EC_TIMEOUTRXM);
printf("status=%d\n", status[0]);
uint16val=0xf;
ec_SDOwrite(1, 0x6040, 0, FALSE, sizeof(uint16val), &uint16val, EC_TIMEOUTRXM);
osal_usleep(5000);
}
}
此代码打印的状态是“608”。
有没有专家可以指导我接下来的步骤?为他们喝彩。
PS如果标签不合适,请更改/添加。
解决方案
推荐阅读
- python - ValueError:numpy.ndarray 大小已更改,可能表示二进制不兼容
- python - 关于要求编写团队和积分,保存并显示结果的程序(Python)
- c# - Socket.IO 事件未触发(Node/C#)
- python - Python字典,基本键值问题
- r - 使用列名删除 R 矩阵中的列 - 与顺序无关
- php - 显示上一次迭代的值的数组
- matplotlib - 在 Python 中绘制多个幂函数
- c# - 仅占一列的 DataGridView 的进度条
- node.js - 不和谐 API | 用户标志返回徽章
- next.js - 这个 Service Worker 配置有风险吗?