/***************************************************************************** * @copyright 2024-202, . POWER SUPPLY CO., LTD. * @file logic_tempCtrl.h * @brief xxxx * @author Gary * @date 2024/09/21 * @remark 初修订 *****************************************************************************/ #ifndef __LOGIC_TEMPCTRL_H__ #define __LOGIC_TEMPCTRL_H__ #include "logic_comm.h" #define TEMP_WORKPOWER 2 #define TEMP_AC_TEMP 25 // 温控模式 // typedef enum // { // kTemp_ctrl_Start, // 无 // kTemp_ctrl_Ac = kTemp_ctrl_Start, // 风冷模式 // kTemp_ctrl_Lc, // 液冷模式 // kTemp_ctrl_end // } temp_ctrl_mod_e; typedef enum { kTemp_Judge_Start, // 无 kTemp_Judge_Normal = kTemp_Judge_Start, // 正常温度(自循环) kTemp_Judge_OverTemp, // 高温 kTemp_Judge_OverLock, // 高温自锁 kTemp_Judge_UnderTemp, // 低温 kTemp_Judge_UnderLock, // 低温自锁 kTemp_Judge_Close, // 关机 kTemp_Judge_end } temp_judge_mod_e; typedef struct { float_t coolTrigTemp; // 制冷触发温度 float_t coolHys; // 制冷回差 float_t heatTrigTemp; // 制热触发温度 float_t heatHys; // 制热回差 }temp_limit_t; // 温度控制参数 typedef struct { float_t maxlimit; //开启自循环高温 float_t minlimit; //开启自循环低温 float_t maxbacklimit; //自循环高温回温 float_t minbacklimit; //自循环低温回温 }temp_standby_limit_t; // 温度控制参数 typedef struct { /*用户可配参数*/ temperature_ctrl_mod_e mod; temp_limit_t workTemp; // 工作温度 temp_limit_t standByTemp; // 静置温度(液冷) temp_standby_limit_t standByLimit; // 静置自循环温度限制(液冷) u_int16_t tempCmd_normal; //循环控制字 u_int16_t tempCmd_heat; //制热控制字 u_int16_t tempCmd_cold; //制冷控制字 uint8_t tempCmdOpen; // 开控制字 uint8_t tempCmdClose; // 关控制字 /*中间变量*/ float_t pcsPower[MAX_NUM_CABINT]; // kPcs_TotalActivePwr 总有功功率 float_t maxCellTemp[MAX_NUM_CABINT]; // kBsu_MaxCellTemp 单体最高温度 float_t minCellTemp[MAX_NUM_CABINT]; // kBsu_MinCellTemp 单体最低温度 } temp_params_t; // 温度控制参数 extern temp_judge_mod_e logicTempState[MAX_NUM_CABINT]; void Logic_Temp_Select_LC(temp_params_t *para, u_int16_t No); void Logic_Temp_Select_AC(temp_params_t *para, u_int16_t No); void Logic_Temp_Select_AC_Auto(temp_params_t *para, u_int16_t No); void Logic_Temp_Select_LC_Auto(temp_params_t *para, u_int16_t No); void kLC_OverTemp_Callback(void *arg, void *no); void kLC_OverLock_Callback(void *arg, void *no); void kLC_Normal_Callback(void *arg, void *no); void kLC_UnderTemp_Callback(void *arg, void *no); void kLC_UnderLock_Callback(void *arg, void *no); void kLC_Close_Callback(void *arg, void *no); void kAC_OverTemp_Callback(void *arg, void *no); void kAC_OverLock_Callback(void *arg, void *no); void kAC_Normal_Callback(void *arg, void *no); void kAC_UnderTemp_Callback(void *arg, void *no); void kAC_UnderLock_Callback(void *arg, void *no); void kAC_Close_Callback(void *arg, void *no); void kAC_Auto_Callback(void *arg, void *no); void kLC_Auto_Callback(void *arg, void *no); typedef void (*logicTempEquip)(temp_params_t *para, u_int16_t No); typedef void (*logicTempExe)(void * , void *); #endif