跳过主要内容
新第 8a 集上线:两套状态机 ①:上升沿才使能去看 →

这一集仅限会员

会员即将开放。留下邮箱,开放当天通知你。创始会员享受首发价格。

继续看免费的几集
骨架篇 · 8a

两套状态机 ①:上升沿才使能

控制层的状态机就是 PosSpeedCtlLoopTask 里的四个 if 块(motor_ctl_sm.c:345–400),每个位置环节拍跑一遍:ERROR / DISABLE / ENABLE。输入 motor_enable 由 set_app_Controlword 直接写入。使能是上升沿:motor_enable 为 1 且上一拍 motor_enable_last 为 0 才进 ENABLE,再写 1 没用(真实运行 1200 毫秒无事件);使能前 ModeCheckInInit 复位各环并把目标设成当前位置。失能是电平:任何一拍的 0 立刻 DISABLE,电流环输入清零。写 2(急停)控制层不理,由 PP 应用降速到零后自己写 0(1331.05 毫秒)。母线掉到 10 伏 300 毫秒:状态变 DISABLE 而不是 ERROR,因为应用层当家时 error_enable = 0,控制层自己的保护被屏蔽,是应用层的欠压检查 200 毫秒后写了 0。真正写 ERROR 的只有 nFault:刹车中断关输出,AppStatusScanSlow 直接写 state = −1、error = 8,之后上位机写 1、0、3、0、1 全被应用层每拍改回 0,只能复位。你来试:两拍之间先写 0 再写 1,什么都不发生。

下一集11a · 编码器 ①:一帧数据怎么变成角度(多摩川)→