你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【电机培训】左右逢源-电机正反转及报错信息

[复制链接]
STM1024 发布时间:2018-9-6 18:54
本帖最后由 stm1024 于 2018-9-7 08:12 编辑

这次测试相当于是培训中的试验4“基于MC SDK5.0 状态的切换 ”
让电机正反转,常规的做法是:
  1. MC_ProgramSpeedRampMotor1(3000 / 6, 1000);
  2.         MC_StartMotor1();
  3.         HAL_Delay(10000);
  4.         MC_StopMotor1();
  5.         HAL_Delay(5000);
  6.         
  7.         MC_ProgramSpeedRampMotor1(-3000 / 6, 1000);
  8.         MC_StartMotor1();
  9.         HAL_Delay(10000);
  10.         MC_StopMotor1();
  11.         HAL_Delay(5000);
复制代码
这段代码可以保证电机正转10秒后停5秒,然后反转10秒后停5秒,如此反复,而且不会出现故障。

不过试验中的要求是,速度反转3000后立即切换为正转3000,通过前面的介绍可以知道,在速度接近0的时候,会产生speed feedback的故障报警。
这也简单:
  1. MC_StartMotor1();
  2.         MC_ProgramSpeedRampMotor1(3000 / 6, 1000);   
  3.         HAL_Delay(10000);
  4.         MC_ProgramSpeedRampMotor1(-3000 / 6, 1000);
  5.         HAL_Delay(10000);
复制代码
运行的效果是:
1.gif

可见在运转过程中是会出现speed feedback错误的。
接下来是如何消除错误。
  1. MC_StartMotor1();
  2.         
  3.         MC_ProgramSpeedRampMotor1(3000 / 6, 1000);  
  4.         MC_AcknowledgeFaultMotor1();
  5.         MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 1000);
  6.         HAL_Delay(10000);
  7.         
  8.         MC_ProgramSpeedRampMotor1(-3000 / 6, 1000);
  9.         MC_AcknowledgeFaultMotor1();
  10.         MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 1000);
  11.         HAL_Delay(10000);
复制代码
这样就可以消除错误,电机也会正反转,不过没有最开始的代码处理的快,毕竟stop motor直接让motor回到了idle状态。测试过程中还发现,如果延时时间太短,例如把两个10000都改为5000,则电机也会一直朝着一个方向转动,估计是留给错误恢复的时间不够?或者是我对SDK的理解不够深入吧
收藏 1 评论0 发布时间:2018-9-6 18:54

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版