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

请教:STM32 FOC 4.2/ 4.3电机库如何通过按键确认故障,重新...

[复制链接]
大不了拼了 提问时间:2016-12-27 16:12 /
请教:STM32 FOC 4.2/ 4.3电机库如何通过按键确认故障,重新启动?
每次启动失败后,都需要“确认故障”,才能重新启动。
库的上位机,点击Fault Ack,可以确认故障,
但是我想使用实体按键,或者产生故障后延时一段时间自行“确认故障”并重新启动电机。
该如何实现,有知道的交流一下。谢谢!






我知道点击“Fault Ack”后执行了这个函数:MCI_FaultAcknowledged(oMCI);
但是不知怎么处理。直接加到按键判断函数里面是编译不过的,提示以下错误:
main.c(242): error:  #167: argument of type "CMCI *" is incompatible with parameter of type "CMCI"
收藏 3 评论10 发布时间:2016-12-27 16:12

举报

10个回答
海迹天涯 回答时间:2017-1-3 08:49:00
帮你顶
any012 回答时间:2017-1-3 09:01:56
FOC是什么意思啊?
li99932 回答时间:2017-2-18 09:14:59
楼主 使用 这样子   MCI_FaultAcknowledged(oMCI[M1]);  
yb0121 回答时间:2017-2-18 10:43:29
li99932-94610 发表于 2017-2-18 09:14
楼主 使用 这样子   MCI_FaultAcknowledged(oMCI[M1]);

是这个,.
cldym 回答时间:2017-2-18 11:26:09
帮你顶``
无薪税绵 回答时间:2017-2-18 15:30:39
没有做过,只能帮楼主加人气了。
sujwei 回答时间:2017-2-26 17:17:05
帮你顶,期待做过的人
kaiming1986 回答时间:2018-9-10 03:47:00
本帖最后由 kaiming1986 于 2018-9-10 03:53 编辑

if(MCI_GetSTMState(oMCI[0]) == FAULT_OVER)  //如果状态==FAULT_OVER
                {
                        delay1ms(1500);                      // 延迟1500毫秒
                 MCI_FaultAcknowledged(oMCI[0]);   // 清除故障
                }
你编译出错语法没用对
MCI_FaultAcknowledged(oMCI);  //这是你的代码没有附值
MCI_FaultAcknowledged(oMCI[0]);//  [0] 代表IDLE  以一下是所有状态可在MC_type.h 头文件找到
typedef enum
{
ICLWAIT = 12,         /*!< 持久状态,系统正在等待ICL失活。不可能运行电机如果ICL是活跃的。
                                在ICL激活之前,状态是强制ICL等待,当ICL变为非活动状态时移动到空闲*/
IDLE = 0,             /*!< 持久状态,跟随状态可以是IDLE启动如果已给出启动电机命令或如果
                                 启动对齐命令已被IDLE对齐鉴于*/
IDLE_ALIGNMENT = 1,   /*!< “通过”状态符合执行的代码只有一次后,编码器对齐命令。下一个状态
                           可以是Calth-CurgEug BooTo-Cop-CAP或根据配置对齐。它也可以是
                           任何停止,如果停止电机命令已经鉴于。*/
ALIGN_CHARGE_BOOT_CAP = 13,/*!< 门驱动器启动的持久状态电容器将被充电。下一个州将是对齐对齐。
                           如果停止,它也可以停止。给出了电机指令。 */
ALIGN_OFFSET_CALIB = 14,/*!< 电动机电流偏移的持续状态测量将被校准。下一个状态将是对齐清楚。
                             它也可以是任何停止,如果停止电机命令已经给出。 */
ALIGN_CLEAR = 15,     /*!< 清除对象的“通过”状态为启动设置。下一个状态将是对齐。它也可以是任何停止。
                           如果已经给出停止电机指令。*/
ALIGNMENT = 2,        /*!< 编码器正确的持续状态对准机械角度,跟随状态可以只有停止。 */
IDLE_START = 3,       /*!< "通过“状态”来执行要执行的代码在启动电机指令后只有一次。下一个状态
                            可以是CuGe、BooTo-Cop-Cad或OffStCyCalb。根据配置。它也可以是任何停止。如果已经给出停止电机指令。 */
CHARGE_BOOT_CAP = 16, /*!< 门驱动器启动的持久状态电容器将被充电。下一个州将是偏心距它也可以是任何停止,
                           如果停止电机命令已经给出。 */
OFFSET_CALIB = 17,    /*!< 电动机电流偏移的持续状态测量将被校准。下一个状态将是清楚。它也可以是任何停止,
                           如果停止电机命令已经给出。*/
CLEAR = 18,           /*!< "通过“对象被清除的状态”为启动设置。下一个状态将开始。它也可以是任何停止如果给
                            出了停止电机指令。 */
START = 4,            /*!< 电动机起动的持续状态被处决。正常状态如下第一次验证的速度是检测。
                           另一种可能的后续状态是如果停止电机命令已执行,将停止 */
START_RUN = 5,        /*!< "通过“状态”,只执行代码一次启动和运行状态之间的关系在这里执行。
                            以下状态通常运行但如果停止电机命令,也可以停止。被给予*/
RUN = 6,              /*!< 持续状态与运行电机。以下当停止电机指令时,状态通常是任意停止。已执行 */
ANY_STOP = 7,         /*!< "通过“状态”,只执行代码一次在任何状态之间,停止它的意图在这里执行。
                            以下状态通常停止 */
STOP = 8,             /*!< 持久状态。正常跟随状态动态停止条件机器被检测到*/
STOP_IDLE = 9,        /*!< "通过“状态”,只执行代码曾经在停止与闲置之间,它注定在这里执行。
                            以下状态通常是空闲的*/
FAULT_NOW = 10,       /*!<持久状态,状态机可以从任何条件直接到这个状态故障处理方法。此方法也
                            管理只允许进入以下状态的通道是故障转移*/
FAULT_OVER = 11       /*!<应用程序的持久状态当故障条件消失时留下。跟随状态通常是停止空闲,
                            状态机被移动为一旦用户确认故障情况. */
} State_t;

我也是新手刚玩一个月不到,文化水平不好很多英语不懂都是百度一条一条翻译的 ,,见笑了







kimbackkom 回答时间:2018-11-12 11:36:29
jys201801 回答时间:2020-7-8 10:35:43

所属标签

相似问题

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