楼主 | 回复于 2019-01-05 21#

点击保存按钮后如下图所示,可生成相关的软件工程(MDK或IAR)

(0 )
评论 (0) 举报

楼主 | 回复于 2019-01-05 22#

生成完后如下图所示,会显示Complete

(0 )
评论 (0) 举报

楼主 | 回复于 2019-01-05 23#

找到刚才生成的文件夹下的工程文件,打开MDK工程,如下图所示

(0 )
评论 (0) 举报

楼主 | 回复于 2019-01-05 24#

优化等级设置成最高(设的太低,FOC库会运行报错,导致电机转不起来),并编译下工程

(0 )
评论 (0) 举报

楼主 | 回复于 2019-01-06 25#

在mc_api.c中有一系列函数来实现对电机的控制,主要调用mc_api.c里的一些函数



(0 )
评论 (0) 举报

楼主 | 回复于 2019-01-06 26#

mc_api.c中常用函数

MC_StartMotor1
MC_StopMotor1
MC_ProgramSpeedRampMotor1
MC_ProgramTorqueRampMotor1
MC_GetMecSpeedReferenceMotor1
MC_GetMecSpeedAverageMotor1
MC_GetSTMStateMotor1
MC_GetOccurredFaultsMotor1
MC_AcknowledgeFaultMotor1
MC_GetImposedDirectionMotor1


编辑于 2019-01-06

(0 )
评论 (0) 举报

楼主 | 回复于 2019-01-06 27#

MC_StartMotor1();  //电机启动
如果Motor1为IDLE状态,该命令立即执行启动电机,返回值true,反之返回命令丢弃返回false。
bool MC_StartMotor1(void)
{
return MCI_StartMotor( pMCI[M1] );
}

MC_StopMotor1();  //电机停止
如果Motor1为RUN或START状态,该命令立即执行停止电机,反之被丢弃。
bool MC_StopMotor1(void)
{
return MCI_StopMotor( pMCI[M1] );
}

(0 )
评论 (0) 举报

楼主 | 回复于 2019-01-06 28#

MC_ProgramSpeedRampMotor1(3000/6,2000); //设置为速度模式,设置速度指令
调用此函数后hDurationms设置时间内当前速度变化到hFinalSpeed设置的目标速度
void MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms )
{
MCI_ExecSpeedRamp( pMCI[M1], hFinalSpeed, hDurationms );
}

MC_ProgramTorqueRampMotor1(2000,2000); //设置为转矩模式,设置转矩指令
调用此函数后hDurationms设置时间内当前转矩变化到hFinalTorque设置的目标转矩
void MC_ProgramTorqueRampMotor1( int16_t hFinalTorque, uint16_t hDurationms )
{
MCI_ExecTorqueRamp( pMCI[M1], hFinalTorque, hDurationms );
}



编辑于 2019-01-06

(0 )
评论 (0) 举报

楼主 | 回复于 2019-01-06 29#

Motor1Speed=MC_GetMecSpeedReferenceMotor1();    //获取Motor1当前指令的机械转速,数字量1代表0.1HZ
int16_t MC_GetMecSpeedReferenceMotor1(void)
{
return MCI_GetMecSpeedRef01Hz( pMCI[M1] );
}

Motor1SpeedAverage=MC_GetMecSpeedAverageMotor1(); //获取Motor1当前指令的平均机械转速,数字量1代表0.1HZ
int16_t MC_GetMecSpeedAverageMotor1(void)
{
return MCI_GetAvrgMecSpeed01Hz( pMCI[M1] );
}

(0 )
评论 (0) 举报

楼主 | 回复于 2019-01-06 30#

Motor1State=MC_GetSTMStateMotor1(); //获取Motor1状态机的电机状态
State_t  MC_GetSTMStateMotor1(void)
{
return MCI_GetSTMState( pMCI[M1] );
}

(0 )
评论 (0) 举报
发表回复
0/3000





举报

请选择举报类别

  • 广告垃圾
  • 违规内容
  • 恶意灌水
  • 重复发帖

全部板块

返回顶部