当前位置: 首页 > news >正文

项目1——单片机程序审查,控制系统流程图和时序图

1. 系统整体架构流程图

外部设备
STM32F103RET6 主控制器
FreeRTOS任务层
业务逻辑层
通信协议层
硬件抽象层
Modbus RTU
Modbus RTU
Modbus RTU
上位机
Modbus主站
伺服驱动器1
站号1
伺服驱动器2
站号2
按钮面板
急停/复位/启动
气动阀门
工件夹紧
GPIO控制
UART通信
定时器
看门狗
Modbus主站
mb_master.c
Modbus从站
mb_slave.c
寄存器管理
mb_reg.c
伺服控制器
tigerservo.c
按钮控制器
button_control.c
气阀控制器
valveControl.c
Modbus适配器
modbus_slave_adapter.c
defaultTask
空闲任务
优先级:Normal
modbusTask
Modbus通信
优先级:Normal
servoTask
伺服控制
优先级:High
systemTask
系统监控
优先级:Low

2. 伺服控制状态机流程图

系统启动
初始化完成
读取完成(21个参数)
读取中/重试
发现差异
无差异
写入完成
重试失败
发现控制差异
无差异
写入完成
重试失败
读取完成
检测到差异
读取中
通信错误
通信错误
通信错误
通信错误
通信错误
INIT
READ_INOUT_DATA
配置Modbus
写入初始参数
CHECK_INOUT_DIFF
使用表驱动
地址映射
WRITE_INOUT_DIFF
CHECK_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次
有效
无效
正常
异常
正常
溢出
系统错误检测
错误类型判断
通信错误处理
参数错误处理
硬件错误处理
系统错误处理
重试次数检查
重新尝试通信
重置通信状态机
通信恢复?
恢复正常运行
重新初始化
参数验证
范围检查
更新参数
拒绝参数
错误响应
硬件状态检查
关键硬件?
安全停机
隔离故障模块
进入急停状态
降级运行
系统健康检查
互斥锁状态
任务状态检查
重置互斥锁
栈溢出检查
看门狗检查
栈错误处理
初始化成功?
安全模式
故障监控
自动恢复?
人工干预
错误处理完成

总结

以上流程图和时序图详细展示了系统的各个关键流程:

  1. 整体架构图: 展示了系统的分层结构和模块间关系
  2. 状态机流程: 详细描述了伺服控制的核心逻辑
  3. 按钮控制流程: 展示了安全相关的用户交互逻辑
  4. 通信时序: 说明了Modbus双重角色的通信机制
  5. 安全互锁: 展示了多重安全保护机制
  6. 启动时序: 描述了系统的初始化过程
  7. 错误处理: 展示了系统的容错和恢复能力

文章转载自:

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 主窗口状态栏实时显示当前路径的实现与分析