/***************************************************************************** * @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