用kithara驱动控制IS620N伺服电机简单实例

328 阅读1分钟

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伺服运行