1、遍历网卡 创建主站 创建从站 创建内核回调函数 创建拓扑及error句柄
2、状态机 ->preop
3并不是所有的PDO都处于激活状态,应该使用KS_setEcatPdoAssign先清空PDO
ksError = KS_setEcatPdoAssign(
pAppPtr->hSlave, // Slave handle KS_ECAT_SYNC_INPUT, // Sync Manager index or constant -1, // PDO index (-1 for reset) 0); 复制代码
再使用KS_setEcatPdoAssign 设定相应激活的PDO
4创建数据集 dataset
5 KS_getEcatDataObjAddress 将对应的变量与内核中的指针链接到一起
ksError = KS_getEcatDataObjAddress(
pAppPtr->hDataset, // Dataset handle pAppPtr->hSlave, // Slave handle 0x1702, // PDO index 2, // PDO subindex (void**)&pAppPtr->pVelocityApp, // Address of App-pointer (void**)&pAppPtr->pVelocitySys, // Address of Sys-pointer NULL, // BitOffset NULL, // BitLength 0); // Flags 复制代码
if (ksError != KS_OK) { outputErr(ksError, "KS_getEcatDataObjAddress", "Could not get data object adddress"); KS_closeDriver(); return; }
6 内核中的操作 _timerCallBack _dataSetCallBack
7 创建定时器 用于控制更新频率
8 获得键盘输入 用于参数设置
Ctrl 控制字6040写入 顺序
接通主电源回路 开启伺服运行 F伺服运行