Files
CCU621M/app/fault_cheak/fault_cheak模块说明.md

3.1 KiB
Raw Permalink Blame History

fault_cheak 模块说明

路径:app/fault_cheak/
作用:完成故障检测、故障动作缓存、实时故障状态维护,以及历史故障持久化触发。

1. 模块组成

  • fault_interface.h/.c
    • 对外故障接口(v_set_fault_datav_get_fault_datau8_get_fault_sum 等)
    • 故障动作缓存队列管理(v_fault_cache_initu8_fault_cache_addv_fault_cache_process
    • 故障信息中文描述与故障位置描述
  • faultcheck_task.h/.c
    • 故障检测任务主循环
    • 故障输入状态检查(急停、门禁、水浸、防雷、烟感、枪温等)
    • 拔枪恢复逻辑与任务周期调度

2. 功能职责

2.1 实时故障状态管理

  • 维护 s_real_fault
    • u8_fault_cnt:当前故障数量
    • u8_warn_cnt:当前告警数量
    • fault_data[]:当前故障列表
    • warn_data[]:当前告警列表
  • 支持“同位置+同故障码”去重,避免重复入表。

2.2 故障动作缓存解耦

  • 对外 v_set_fault_data() 只做“入缓存队列”,不直接重处理逻辑。
  • 任务周期内由 v_fault_cache_process() 分批执行,避免单周期耗时过长影响主循环实时性。

2.3 历史故障持久化触发

  • 故障/告警新增时,触发历史记录持久化:
    • 主路径:flash_file_mgr(索引 EEPROM + 数据 externalflash
    • 可选路径:FATFS_ENABLE_FAULT 打开时同步缓存到 FATFS 故障缓存
  • 恢复动作当前仅更新实时状态(是否保存恢复动作可按业务再打开)。

3. 关键数据结构

  • HIS_FAULT_DATA_Tfaultcheck_task.h
    • 故障位置 e_site
    • 故障码 e_fault_info
    • 发生时间 s_occur_time
    • 动作类型 ActType(恢复/故障/告警)
    • 扩展值 s16_value1/s16_value2
  • REAL_FAULT_DATA_Tfault_interface.h
    • 当前态故障/告警存储
  • FAULT_ACTION_CACHE_Tfault_interface.h
    • 故障动作缓存环形队列

4. 运行流程(简述)

  1. 外部模块调用 v_set_fault_data(...) 上报动作;
  2. 动作进入缓存队列;
  3. v_fault_task() 周期调用 v_fault_cache_process()
  4. 内部 v_set_fault_data_internal() 完成:
    • 实时故障表增删
    • 必要日志输出
    • 新增故障/告警时持久化到历史存储模块。

5. 与 flash_file_mgr 的关系

  • fault_cheak 负责“故障业务判断与动作触发”;
  • flash_file_mgr/fault_flash_impl 负责“历史故障持久化实现”;
  • 两者通过 v_hisFault_save_record() 解耦。

6. 配置与注意事项

  • FAULT_ACTION_CACHE_SIZE:缓存大小,过小会丢动作;
  • FAULT_TEST:测试开关,打开后可屏蔽实际故障处理;
  • 当前接口运行在任务上下文,若在中断上下文调用需增加保护或改为事件投递。

7. 相关文档