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

基于MC SDK5.0 状态的切换,任务3

[复制链接]
freeelectron 发布时间:2018-9-2 18:18
本帖最后由 freeelectron 于 2018-9-2 18:17 编辑 6 C5 k1 P# N$ D9 R% W% G) z0 v) J
1 M( G/ X% O! I$ D7 S" v
        通过任务3:主要学习电机反转指令,调用函数知道当前电机运行状态,清除报错,电机回到IDLE状态 。
# C. q8 _& u2 c$ J1 {
99.png
3 {+ Q& Y; a4 P# Y0 L
代码说明:参考了论坛大佬的代码
  1.   /* USER CODE BEGIN 1 *// P  }! \9 G! V  J6 r
  2.   State_t sts_motor1;. G/ P* S2 b( e' {: Z
  3.   /* USER CODE END 1 */
复制代码
  1. /* USER CODE BEGIN 2 */& D; b" }* E7 B. @  r- ~0 {8 t
  2. MC_ProgramSpeedRampMotor1(-3000/6,1000);//负转3000RPM; O' q1 ?, w, m; y! y* |- j8 P+ A
  3. MC_StartMotor1();* c5 ^4 V/ J2 L3 C
  4. HAL_Delay(10000);
    " U5 W) E% V+ M- `
  5. MC_ProgramSpeedRampMotor1(3000/6,1000);//正转3000RPM1 T$ Q; ]4 g: R$ Z0 X
  6. /* USER CODE END 2 */
    ' \" M- v; _4 P

  7. , d+ h0 r' J! `" c! _
复制代码
  1.   /* USER CODE BEGIN 3 */6 {4 M' z& m6 p: q" J& J" s

  2. 5 ^7 a4 |5 M' c# ?9 a
  3.                
    ) K4 B  l, Z5 _' M
  4.    sts_motor1 = MC_GetSTMStateMotor1(); //返回 Motor 1 状态机当前的状态
    ) N/ Q  L  I5 \0 w% v
  5.     if(FAULT_OVER==sts_motor1)        
    ) T; }  ^' i: x( d2 _
  6.                 {                        
    6 T6 G1 e2 ^: ?  R) ?) p7 \3 f: A
  7.                    MC_AcknowledgeFaultMotor1();. Y1 A/ G0 X" k3 ]% Q
  8.                 }
    & ?" }) h) `8 a* `: u
  9.                 else& m. l, h' s( \" d- c* S0 f+ v/ @
  10.                 {% g9 S# u9 P8 s- P
  11.                         if(IDLE==sts_motor1)( r" G7 l3 r$ Y
  12.                         {
    # u4 S; d$ |& {  D  U# ^/ C% C
  13.                                  MC_StartMotor1();: R; }' p5 e8 k+ M5 c
  14.                                  MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 1000);//最后一次设定的速度  R* T# ]' M/ a9 b
  15.                         }( h& f1 Y( P2 u1 A
  16.                 }; O$ |: H2 U$ {$ Y* |( j
  17.                  4 W! f) \4 q" r2 y; ?, N
  18.   }9 k& H6 p3 F* V' V+ R
  19.   /* USER CODE END 3 */
复制代码

% ?" ?) i6 [4 |7 K* |' f% C4 _/ r
查看速度波形文件:
% M2 y$ M) }% y7 Y, b0 m% x7 c
88.png
1 U* A$ u* }% Q7 y$ h
MC_AcknowledgeFaultMotor1();
函数说明:应答 Motor 1 发生过的故障。用户调用这个函数前,如果电机发生了故障。电机将停留在FAULT_OVER状态,并保留故障代码。在调用了这个函数之后,状态机将清除故障代码的记录,并恢复到 IDLE 状态。9 D! h) C4 c" ]( T: i' b5 @0 [& y
" B4 ^$ w0 i$ s  Q5 _
电机常用的几种状态:
, {0 C5 a7 r6 |5 E
77.png
$ F' K3 B  M3 K: a4 W( K
收藏 2 评论8 发布时间:2018-9-2 18:18

举报

8个回答
子曰好人 回答时间:2018-9-2 23:06:01
指正一下楼主,图中第二个黄色框有一部分是转速突然切换到3000rpm造成的,后面白色线段开始上升是因为这时候已经清除错误报警,进入重新启动阶段了,至于为什么红色线段没有及时更新至+3000,这个我不太清楚,可能是串口发送那一部分丢帧了
freeelectron 回答时间:2018-9-3 08:33:50
子曰好人 发表于 2018-9-2 23:06; E7 U1 c( Y. ^3 ]# Y' H
指正一下楼主,图中第二个黄色框有一部分是转速突然切换到3000rpm造成的,后面白色线段开始上升是因为这时 ...

6 k% T% w5 q8 e嗯嗯,谢谢指正
hxw8624 回答时间:2018-9-3 14:29:34
666666666666666
hxw8624 回答时间:2018-9-3 14:29:56
6666666666666666666666
hxw8624 回答时间:2018-9-3 14:30:35
66666666666666666
ztx2168 回答时间:2018-9-28 20:12:12
谢谢楼主
liujunfy527 回答时间:2018-10-28 10:27:14
谢谢分享
owen94 回答时间:2019-4-9 21:51:21
感谢楼主!!!!

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版