mppt/App/inc/parameter.h

102 lines
5.3 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* parameter.h
*
* Created on: 2024年10月12日
* Author: psx
*/
#ifndef APP_INC_PARAMETER_H_
#define APP_INC_PARAMETER_H_
#include "debug.h"
#include "math.h"
#include "uart_dev.h"
typedef struct _Mppt_controlparameter{
float_t constantVoltageV; /* 电压高于ConstantVoltageV且电流大于FloatI + 0.1)进行恒压充电
电压低于该(ConstantVoltageV - 0.2) 进行恒流充电 (V) */
float_t floatI; /* 电压高于该ConstantVoltageV且电流低于FloatI进行浮充充电 (A) */
float_t startSolarOpenCircuitV; /* 太阳能板开路电压高于该电压开始充电 (V) */
float_t stopSolarOpenCircuitV; /* 太阳能板开路电压高于该电压停止充电 (V) */
float_t constantVoltageChargeV; /* 恒压充电时的输出电压 (V) */
float_t FloatV; /* 浮充充电时的输出电压 (V) */
float_t loopImpedance; /* 回路阻抗大小 (mΩ) */
float_t HighSideMosTemperature_stop; /* 当上桥温度达到该值时,停止输出 (°C) */
float_t HighSideMosTemperature_end; /* 当上桥温度上升到该值时,降低功率运行 (°C) */
float_t HighSideMosTemperature_start; /* 当上桥温度降低到该值时,按照正常情况输出 (°C) */
float_t dutyRatio; /* 占空比 */
uint16_t sensorEnableBroadcastTime; /* 传感器运行再次注册的间隔 (S) */
uint16_t checkSolarOpenCircuitVTime; /* 启动任务中太阳能板开路电压检测间隔时间 (S) */
uint16_t outputAgainFlagTime; /* 出现短路保护后延长该段时间再次检测是否短路,仍然短路则关闭输出 (S) */
uint16_t excessiveLoadFlagTime; /* 出现过载后在该间隔时间中多次2次出现过载则关闭输出 (S) */
uint16_t eLAgainTime; /* 出现过载过载保护后,在该间隔段时间后,再次尝试输出 (S) */
uint32_t collectOpenCircuitVoltageTime; /* 开路电压采集时间间隔 */
} Mppt_controlparameter;
extern Mppt_controlparameter g_controlParameter;
typedef struct _Mppt_otherParameter{
/* SL */
uint8_t address[7]; /* 地址 */
uint16_t Access_Node_Type; /* 接入节点类型 */
uint16_t Communication_Methods; /* 通信方式 */
uint16_t Registration_Status; /* 注册状态 */
uint8_t startFlagSL[2]; /* 起始标志 */
uint8_t endFlagSL; /* 结束标志 */
/* HY */
uint8_t hardwareID[6]; /* 硬件ID */
uint8_t communicationID[4]; /* 通信ID */
uint8_t protocolType; /* 协议类型; 0x01表示汇源协议(波特率9600) 0x02表示南瑞协议(波特率115200)*/
uint8_t startFlagHY; /* 起始码 */
uint8_t endFlagHY; /* 结束码 */
uint8_t CommunicationProtocolType; /* 0x00:SL
0x01:HY*/
uint8_t onlyPower; /* 是否只充当电源板0x00:不是
0x01是*/
uint32_t gw485_Baud; /* 串口波特率 */
uint32_t bat485_Baud; /* 串口波特率,为0代表bms不支持通信 */
float_t Battery_Voltage; /* 电池电压 (V) */
float_t Output_Voltage; /* 输出电压 */
float_t Charg_Current; /* 充电电流(流向电池+负载) (A) */
float_t Discharg_Current; /* 放电电流(流向负载) (A) */
float_t Input_Voltage; /* 系统输入电压 (V) */
float_t Solar_Open_Circuit_Voltage; /* 太阳能板开路电压 (V) */
float_t HighSideMos_Temperature; /* 高端mos的温度 (°C) */
float_t Solar_In_Circuit_Voltage; /* 太阳能板输入电压 (V) */
float_t Charg_BatteryCurrent; /* 电池充电电流(流向电池) (A) */
float_t totalElectricityConsumption; /* 总电量消耗(W*H) */
float_t totalChargCapacity; /* 总充电电量(W*H) */
float_t SOC; /* 剩余电量 */
uint16_t chargMos_State; /* 充电开关状态 */
uint16_t DischargMos_State; /* 放电mos的状态 */
uint16_t MPPT_Mode; /* 工作模式 */
uint8_t versionInformation[13]; /* 软件版本信息 */
uint8_t batteryState; /* 有无电池(估计) */
uint8_t impedanceStart; /* 能否开始测量回路阻抗 */
uint8_t outputAgainFlag; /* 一段时间中输出短路次数 */
uint8_t excessiveLoadFlag; /* 一段时间中输出过载次数 */
uint8_t overTemperature; /* 温度检测保护标志位 */
uint8_t RegistrationRequestFlag; /* 回复广播标志位 */
uint8_t runBroadcast; /* 是否接收广播帧标志位 */
uint16_t RegisterNumberMax; /* 寄存器个数 */
uint16_t RegisterStartAddressMax; /* 读写的寄存器的最大起始位置,由设备决定 */
uint32_t collectOpenCircuitVoltageNUM; /* 距离上次开路电压采集,运行次数 */
uint8_t HYconfigModeState; /* HY通信协议是否进入了配置模式0x00未进入0xFF进入 */
uint8_t HYconfigModeT; /* HY通信协议进入配置模式后的延时时间 */
uint8_t randomNumber; /* 随机数 */
}Mppt_otherParameter;
extern Mppt_otherParameter g_otherParameter;
#endif /* APP_INC_PARAMETER_H_ */