106 lines
3.6 KiB
C
106 lines
3.6 KiB
C
/*****************************************************************************
|
|
* @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 |