80 lines
3.1 KiB
C
80 lines
3.1 KiB
C
|
||
/*****************************************************************************
|
||
* @copyright 2024-202, . POWER SUPPLY CO., LTD.
|
||
* @file logic_power_issue.h
|
||
* @brief xxxx
|
||
* @author Gary
|
||
* @date 2024/09/28
|
||
* @remark 初修订
|
||
*****************************************************************************/
|
||
#ifndef __LOGIC_POWERISSUE_H__
|
||
#define __LOGIC_POWERISSUE_H__
|
||
|
||
#define MAX_NUM_CABINT 3 // 默认最大柜体个数为3(RTDB预留)
|
||
#define SOCMAX 100
|
||
|
||
extern int g_iPcsChargeDirection; // PCS充放电方向 1(正放 负充) -1(负放 正充) 默认:1
|
||
|
||
typedef enum
|
||
{
|
||
kBms_State_Start = 0,
|
||
kBms_State_Normal, // 正常(rack可以放电, 可以充电)
|
||
kBms_State_NoCharge, // 禁充(rack可以放电, 不能充电)
|
||
kBms_State_NoDischarge, // 禁放(rack可以充电, 不能放电)
|
||
kBms_State_Down, // 停机(rack不能充放)
|
||
kBms_state_end
|
||
} bms_state_e;
|
||
|
||
// // 充放电模式
|
||
// typedef enum
|
||
// {
|
||
// kCharge_Mode_Start = 0, // 开始值
|
||
// kCharge_Mode_charge ,
|
||
// kCharge_Mode_discharge,
|
||
// kCharge_Mode_rest,
|
||
// kCharge_Mode_End // 结束值
|
||
|
||
// } charge_mode_e;
|
||
|
||
typedef struct
|
||
{
|
||
// charge_mode_e issueMod; // 本次下发充放电模式 ps:模式暂时不用 充放电方向: 默认1(正放 负充)
|
||
// bms_state_e rackRunState[MAX_NUM_CABINT]; // 实时每个柜子的BMS的状态 IN
|
||
|
||
// 从实时库获取
|
||
float_t bmsSoc[MAX_NUM_CABINT]; // 实时每个柜子的BMS的SOC IN
|
||
float_t pcsMaxChaPower[MAX_NUM_CABINT]; // 最大充电功率 kw IN
|
||
float_t pcsMaxDiscPower[MAX_NUM_CABINT]; // 最大放电功率 kw IN
|
||
float_t nowBmsPower[MAX_NUM_CABINT]; // bms当前实时功率 kw IN
|
||
uint8_t pcsState[MAX_NUM_CABINT]; // pcs在线状态
|
||
uint8_t bmsState[MAX_NUM_CABINT]; // bms在线状态
|
||
|
||
// 可配置参数
|
||
uint16_t cabintCont; // 当前实际并柜数量 IN
|
||
int chgDirection; // 充放电方向 1(正放 负充) -1(正充 负放)
|
||
uint8_t allocateMode; // 下发功率开关:总功率(0),分相功率(1)
|
||
uint16_t pcsOn; // PCS开机字 功能码可定制
|
||
uint16_t pcsOff; // PCS关机字 功能码可定制
|
||
|
||
int runPeriod; // 运行周期 ms
|
||
uint8_t powerSign; // 功率分配配置修改标志
|
||
|
||
// 中间参数
|
||
float_t stationBmsSoc; // 站级SOC OUT
|
||
float_t sumSoc; // SOC累加
|
||
float_t power; // 总的目标功率 kw IN
|
||
float_t nowDistPower[MAX_NUM_CABINT]; // 分配后下发的目标功率 kw OUT
|
||
uint16_t pcsSwitch[MAX_NUM_CABINT]; // PCS开关
|
||
} power_distr_t;
|
||
|
||
/*****************************************************************************
|
||
* @brief 获取功率分配参数
|
||
*
|
||
* @return 0 更新成功 -1 失败 1 无更新
|
||
*****************************************************************************/
|
||
int logic_getPowerDistrParam();
|
||
|
||
// 功率分发接口
|
||
void logicFun_powerDistr();
|
||
|
||
#endif |