当前位置: 首页 > news >正文 项目1——单片机程序审查,控制系统流程图和时序图 news 2025/9/12 11:27:25 1. 系统整体架构流程图 外部设备STM32F103RET6 主控制器FreeRTOS任务层业务逻辑层通信协议层硬件抽象层Modbus RTUModbus RTUModbus RTU上位机Modbus主站伺服驱动器1站号1伺服驱动器2站号2按钮面板急停/复位/启动气动阀门工件夹紧GPIO控制UART通信定时器看门狗Modbus主站mb_master.cModbus从站mb_slave.c寄存器管理mb_reg.c伺服控制器tigerservo.c按钮控制器button_control.c气阀控制器valveControl.cModbus适配器modbus_slave_adapter.cdefaultTask空闲任务优先级:NormalmodbusTaskModbus通信优先级:NormalservoTask伺服控制优先级:HighsystemTask系统监控优先级:Low 2. 伺服控制状态机流程图 系统启动初始化完成读取完成(21个参数)读取中/重试发现差异无差异写入完成重试失败发现控制差异无差异写入完成重试失败读取完成检测到差异读取中通信错误通信错误通信错误通信错误通信错误INITREAD_INOUT_DATA配置Modbus写入初始参数CHECK_INOUT_DIFF使用表驱动地址映射WRITE_INOUT_DIFFCHECK_CTRL_DIFF比较读写缓存50ms延时机制READ_OUTPUT_DATA智能站号选择参数同步更新WRITE_CTRL_DIFF检查控制位启动/停止/急停等32位控制命令自动清除标志位11个输出参数状态位解析 3. 按钮控制流程图 稳定抖动按下释放按下就绪未就绪按下否是是否是否是否是否系统启动按钮控制初始化按钮扫描5ms间隔消抖处理10ms事件检测急停按钮?复位按钮?启动按钮?急停处理伺服紧急停止等待2秒开启气阀释放工件等待2秒设置急停状态清除急停状态系统状态检查伺服回原点启动条件检查系统就绪?机器运行中?急停激活?气阀状态检查气阀开启?关闭气阀夹紧启动伺服等待2秒启动成功?设置运行状态开启气阀释放 4. Modbus通信时序图 上位机STM32 MCU伺服驱动器1伺服驱动器2系统启动 - 初始化阶段写入P3_001(波特率)ACK写入P3_002(协议类型)ACK批量写入P6组参数(21个)ACK正常运行 - 状态机循环03H读取P6参数[0-20]参数值10H写入差异参数ACKalt[发现参数差异]10H写入控制寄存器ACKalt[有控制命令]03H读取转子速度速度值03H读取回授位置位置值03H读取状态字状态值loop[每100ms周期]上位机通信03H读取状态数据状态值10H写入控制参数ACK地址透传处理转发到站1响应转发到站2响应alt[P6组地址(站1)][站2数据地址]最终响应loop[按需通信]错误处理机制重试计数+1重新发送重置状态机alt[重试次数<3][重试失败]alt[通信超时]上位机STM32 MCU伺服驱动器1伺服驱动器2 5. 系统安全互锁流程图 激活未激活运行中bo_zeroSpeed=false停止bo_zeroSpeed=true运行中停止有报警无报警伺服运行中伺服停止工件未夹紧工件夹紧安全检查开始急停状态?仅允许开阀释放工件伺服运行状态?禁止所有操作机器运行标志?伺服报警?允许操作气阀操作?伺服操作?按钮操作?安全气阀控制安全伺服控制安全按钮响应伺服-气阀互锁气阀锁定气阀自由气阀-伺服互锁伺服锁定伺服自由安全操作执行操作被拒绝安全检查结束 6. 系统启动时序图 000ms000ms000ms000ms000ms000ms000ms000ms000ms000ms000msHAL_Init UART配置 定时器配置 看门狗配置 内核初始化 Modbus寄存器初始化 GPIO配置 任务创建 调度器启动 按钮控制初始化 LED调试初始化 从站适配器初始化 互斥锁创建 等待伺服启动 通信参数配置 初始参数写入 任务调度 状态机循环 Modbus使能 硬件初始化FreeRTOS启动业务模块初始化伺服系统初始化正常运行系统启动时序图 7. 错误处理和恢复流程图 通信超时参数异常硬件故障系统异常小于3次大于等于3次是否有效无效是否正常异常正常溢出是否是否系统错误检测错误类型判断通信错误处理参数错误处理硬件错误处理系统错误处理重试次数检查重新尝试通信重置通信状态机通信恢复?恢复正常运行重新初始化参数验证范围检查更新参数拒绝参数错误响应硬件状态检查关键硬件?安全停机隔离故障模块进入急停状态降级运行系统健康检查互斥锁状态任务状态检查重置互斥锁栈溢出检查看门狗检查栈错误处理初始化成功?安全模式故障监控自动恢复?人工干预错误处理完成 总结 以上流程图和时序图详细展示了系统的各个关键流程: 整体架构图: 展示了系统的分层结构和模块间关系状态机流程: 详细描述了伺服控制的核心逻辑按钮控制流程: 展示了安全相关的用户交互逻辑通信时序: 说明了Modbus双重角色的通信机制安全互锁: 展示了多重安全保护机制启动时序: 描述了系统的初始化过程错误处理: 展示了系统的容错和恢复能力 文章转载自: http://DL2owfmf.wdqhg.cn http://Brb7NYKS.wdqhg.cn http://YkzdNtjg.wdqhg.cn http://uQubAmRp.wdqhg.cn http://bfF35WRR.wdqhg.cn http://tVbiTMpw.wdqhg.cn http://tpkc0bqY.wdqhg.cn http://P98L8IiP.wdqhg.cn http://77DLi2AR.wdqhg.cn http://UkX33xxl.wdqhg.cn http://EDH4amTX.wdqhg.cn http://YwaSQeXJ.wdqhg.cn http://gOv0cAXr.wdqhg.cn http://9WJEeNEk.wdqhg.cn http://PwZU5fxY.wdqhg.cn http://ZoO2TXPT.wdqhg.cn http://2a6dbred.wdqhg.cn http://Eci32PL2.wdqhg.cn http://j0YIOZ0s.wdqhg.cn http://KpZw1PSn.wdqhg.cn http://lpMVZ2Qp.wdqhg.cn http://9xjp2WIT.wdqhg.cn http://nB6BRv7R.wdqhg.cn http://31VtLcYP.wdqhg.cn http://pRe4pIwO.wdqhg.cn http://DQQlKbPK.wdqhg.cn http://jDVPrx7u.wdqhg.cn http://Gajtzj6O.wdqhg.cn http://86iIwgpQ.wdqhg.cn http://nDRhtjd9.wdqhg.cn 查看全文 http://www.dtcms.com/a/379285.html 相关文章: 完美解决:应用版本更新,增加字段导致 Redis 旧数据反序列化报错 探索数据库世界:从基础类型到实际应用 ui指针遇到问题 安卓13_ROM修改定制化-----禁用 Android 导航按键的几种操作 VMWare使用文件夹共享操作步骤 【Nginx开荒攻略】Nginx入门:核心概念与架构设计 MQTT协议回顾 端到端语音交互数据 精准赋能语音大模型进阶 大模型在题目生成中的安全研究:攻击方法与防御机制 可达性分析: 什么东西可以被当作根 Spring框架中的常见面试题 JavaScript 中 map 和 filter 方法的快速上手指南 (附综合案例) C#写字符串到Modbus中 基于SpringBoot+Vue.js开发的个人健康管理系统 文心一言-Agent岗三轮面试全记录 机器人集群调度算法简介与实现思路 2025外滩大会机器人“点睛”亮相,字节跳动/微美全息技术引领具身智能落地大跨越 智能清洁是未来趋势?机器人协作更便捷 基于时空数据的网约车订单需求预测与调度优化 Redis其他的数据类型及渐进式遍历 项目中遇到pom文件里使用systemPath的例子记录 pycharm——关于Pyqt5 Qwen3 中旋转位置编码 vue3项目sass全局变量的设置和使用 透彻理解Python环境管理:虚拟环境、Conda、Pyenv和Pipx为何而生 【unity实战】实现在unity3D模型上画线写字涂鸦效果 2025最新超详细FreeRTOS入门教程:第十三章 FreeRTOS临界区与原子操作 玩转Docker | 使用Docker部署dufs文件管理工具 计算机组成原理:定点乘法运算 PyQt5 主窗口状态栏实时显示当前路径的实现与分析
1. 系统整体架构流程图 外部设备STM32F103RET6 主控制器FreeRTOS任务层业务逻辑层通信协议层硬件抽象层Modbus RTUModbus RTUModbus RTU上位机Modbus主站伺服驱动器1站号1伺服驱动器2站号2按钮面板急停/复位/启动气动阀门工件夹紧GPIO控制UART通信定时器看门狗Modbus主站mb_master.cModbus从站mb_slave.c寄存器管理mb_reg.c伺服控制器tigerservo.c按钮控制器button_control.c气阀控制器valveControl.cModbus适配器modbus_slave_adapter.cdefaultTask空闲任务优先级:NormalmodbusTaskModbus通信优先级:NormalservoTask伺服控制优先级:HighsystemTask系统监控优先级:Low 2. 伺服控制状态机流程图 系统启动初始化完成读取完成(21个参数)读取中/重试发现差异无差异写入完成重试失败发现控制差异无差异写入完成重试失败读取完成检测到差异读取中通信错误通信错误通信错误通信错误通信错误INITREAD_INOUT_DATA配置Modbus写入初始参数CHECK_INOUT_DIFF使用表驱动地址映射WRITE_INOUT_DIFFCHECK_CTRL_DIFF比较读写缓存50ms延时机制READ_OUTPUT_DATA智能站号选择参数同步更新WRITE_CTRL_DIFF检查控制位启动/停止/急停等32位控制命令自动清除标志位11个输出参数状态位解析 3. 按钮控制流程图 稳定抖动按下释放按下就绪未就绪按下否是是否是否是否是否系统启动按钮控制初始化按钮扫描5ms间隔消抖处理10ms事件检测急停按钮?复位按钮?启动按钮?急停处理伺服紧急停止等待2秒开启气阀释放工件等待2秒设置急停状态清除急停状态系统状态检查伺服回原点启动条件检查系统就绪?机器运行中?急停激活?气阀状态检查气阀开启?关闭气阀夹紧启动伺服等待2秒启动成功?设置运行状态开启气阀释放 4. Modbus通信时序图 上位机STM32 MCU伺服驱动器1伺服驱动器2系统启动 - 初始化阶段写入P3_001(波特率)ACK写入P3_002(协议类型)ACK批量写入P6组参数(21个)ACK正常运行 - 状态机循环03H读取P6参数[0-20]参数值10H写入差异参数ACKalt[发现参数差异]10H写入控制寄存器ACKalt[有控制命令]03H读取转子速度速度值03H读取回授位置位置值03H读取状态字状态值loop[每100ms周期]上位机通信03H读取状态数据状态值10H写入控制参数ACK地址透传处理转发到站1响应转发到站2响应alt[P6组地址(站1)][站2数据地址]最终响应loop[按需通信]错误处理机制重试计数+1重新发送重置状态机alt[重试次数<3][重试失败]alt[通信超时]上位机STM32 MCU伺服驱动器1伺服驱动器2 5. 系统安全互锁流程图 激活未激活运行中bo_zeroSpeed=false停止bo_zeroSpeed=true运行中停止有报警无报警伺服运行中伺服停止工件未夹紧工件夹紧安全检查开始急停状态?仅允许开阀释放工件伺服运行状态?禁止所有操作机器运行标志?伺服报警?允许操作气阀操作?伺服操作?按钮操作?安全气阀控制安全伺服控制安全按钮响应伺服-气阀互锁气阀锁定气阀自由气阀-伺服互锁伺服锁定伺服自由安全操作执行操作被拒绝安全检查结束 6. 系统启动时序图 000ms000ms000ms000ms000ms000ms000ms000ms000ms000ms000msHAL_Init UART配置 定时器配置 看门狗配置 内核初始化 Modbus寄存器初始化 GPIO配置 任务创建 调度器启动 按钮控制初始化 LED调试初始化 从站适配器初始化 互斥锁创建 等待伺服启动 通信参数配置 初始参数写入 任务调度 状态机循环 Modbus使能 硬件初始化FreeRTOS启动业务模块初始化伺服系统初始化正常运行系统启动时序图 7. 错误处理和恢复流程图 通信超时参数异常硬件故障系统异常小于3次大于等于3次是否有效无效是否正常异常正常溢出是否是否系统错误检测错误类型判断通信错误处理参数错误处理硬件错误处理系统错误处理重试次数检查重新尝试通信重置通信状态机通信恢复?恢复正常运行重新初始化参数验证范围检查更新参数拒绝参数错误响应硬件状态检查关键硬件?安全停机隔离故障模块进入急停状态降级运行系统健康检查互斥锁状态任务状态检查重置互斥锁栈溢出检查看门狗检查栈错误处理初始化成功?安全模式故障监控自动恢复?人工干预错误处理完成 总结 以上流程图和时序图详细展示了系统的各个关键流程: 整体架构图: 展示了系统的分层结构和模块间关系状态机流程: 详细描述了伺服控制的核心逻辑按钮控制流程: 展示了安全相关的用户交互逻辑通信时序: 说明了Modbus双重角色的通信机制安全互锁: 展示了多重安全保护机制启动时序: 描述了系统的初始化过程错误处理: 展示了系统的容错和恢复能力