RetCode result;
int exit_cmd = 0;
//库加载
result = YKM_LoadLib();
YKM_BusInfo busInfo;
//等待系统初始化完成
while (!exit_cmd)
{
result = YKM_GetBusInfo(&busInfo);
if (busInfo.running)
break;
Sleep(100);
}//凸轮配置
YKM_CamInConfig camConfig;
memset(&camConfig, 0, sizeof(YKM_CamInConfig));
camConfig.curve = YKM_CamCurve::YKM_FOLLOW_POLY;
camConfig.periodic = 0;
camConfig.axisMaster = 0;
camConfig.masterScaling = 1.0;
camConfig.slaveScaling = 1.0;
result = YKM_SetCamInConfig(axis, camConfig);
//写入凸轮表格数据
INT32 tableNum = 10;
M_CamTable* camData = new YKM_CamTable[tableNum];
memset(camData, 0,sizeof(YKM_CamTable) * tableNum);
for(int i = 0; i < tableNum; i++)
{
camData[i].accRate = 100;
camData[i].velRate = 10;
camData[i].slavePosition = i * 10;
camData[i].masterPosition = i * 10;
}
YKM_WriteCamTable(axis, tableNum, camData);
//启动凸轮
YKM_StartCamIn(axis);
//////////////////////主轴运动,从轴根据凸轮表格数据进行跟随运动//////////////////////////////////
//主轴参数配置
YKM_MoveAbsoluteConfig absConfig;
absConfig.position = 100;
absConfig.velocity = 1000;
absConfig.acceleration = 1000;
absConfig.deceleration = 1000;
absConfig.jerk = 10000;//启动主轴绝对位置
result = YKM_MoveAbsolute(axisIndex, absConfig);
//等待主轴目标位置到达
YKM_AxisStatus status;
while (!exit_cmd)
{
result = YKM_ReadAxisInfo(axisIndex, &status);
if (0 != status.Done)
break;
Sleep(1);
}
|