工业自动化设备(多工位装配、检测、点胶、贴装等)常需要同时控制十几个步进轴,而单片 MCU 的定时器资源无法支撑 18 路独立高频脉冲,市售运动控制卡价格高且不可定制。客户是一家自动化设备厂商,自研板卡硬件,需要一套通用多轴运动控制板卡的完整软件:主 / 从两块 STM32H743 固件 + Windows 上位机,通过以太网 Modbus TCP 对接客户的设备软件,要求 18 轴同拍启动、脉冲数分毫不差、现场量产稳定运行并可持续迭代。
点击空白处退出提示
工业自动化设备(多工位装配、检测、点胶、贴装等)常需要同时控制十几个步进轴,而单片 MCU 的定时器资源无法支撑 18 路独立高频脉冲,市售运动控制卡价格高且不可定制。客户是一家自动化设备厂商,自研板卡硬件,需要一套通用多轴运动控制板卡的完整软件:主 / 从两块 STM32H743 固件 + Windows 上位机,通过以太网 Modbus TCP 对接客户的设备软件,要求 18 轴同拍启动、脉冲数分毫不差、现场量产稳定运行并可持续迭代。
1、18 轴步进电机控制:主板 6 轴 + 从板 12 轴,每轴独立梯形加减速,0–400 kHz 脉冲输出,速度 / 定点 / 往复三种模式 + 点动;定点模式发出脉冲数恒等于设定值,往复模式绝对位置自校正、零漂移。
2、双 MCU 微秒级同步:共用晶振 + 同步线 tick 对齐 + 预约节拍启动三层机制,18 轴同批起步偏差
我方承担主 / 从两块固件与上位机的全部架构设计、开发、测试与交付,并深度参与硬件方案迭代:IO 表七轮联合评审、输出双 MCU 共用有源晶振方案、HRTIM 方案可行性论证并推动改板、网表核查反馈硬件错漏。
固件:C11 裸机 + 1 kHz 运动控制 ISR(刻意不上 RTOS 换取确定性),每轴独立硬件定时器 PWM 动态分频,update 中断逐脉冲计数并在 ISR 内硬停;严格分层架构(App → Middleware → Components → Bsp 接口层 → CubeMX 生成层),换芯片只需重写 port 层,从板直接复用主板运动子系统。
上位机:WPF + .NET 8,App / Communication / Core 三项目分层,CommunityToolkit.Mvvm + 依赖注入,FluentModbus 单连接串行队列,订阅式分组轮询引擎,xUnit 85 项测试。
难点与解法:跨板同拍启动靠共用时钟消频漂、tick 对齐消相位差、按全局节拍号预约启动解耦 SPI 延迟;400 kHz 满速下中断优先级分层整定保证计数零丢失;触发脉宽偏差用 DWT 插桩闭环标定从 +0.4 µs 压到 +0.045 µs;TCP 半开连接靠 LINK 检测 + 硬件 keepalive 自愈。每个功能阶段均经示波器 / 逻辑分析仪实测收口。
规模:固件约 1.2 万行 C,上位机约 8,500 行 C#;已交付上线,客户量产使用中,按反馈迭代 4 轮版本。





评论