From 5d3cc341c8da1c5da011d3e5907e9a9d0612fa04 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 25 Feb 2024 22:52:17 +0200 Subject: [PATCH] Make cellarray definition --- Software/Software.ino | 8 ++-- Software/src/battery/BMW-I3-BATTERY.h | 40 ++++++++-------- Software/src/battery/CHADEMO-BATTERY.h | 40 ++++++++-------- .../src/battery/IMIEV-CZERO-ION-BATTERY.h | 42 ++++++++--------- Software/src/battery/KIA-HYUNDAI-64-BATTERY.h | 42 ++++++++--------- Software/src/battery/NISSAN-LEAF-BATTERY.h | 40 ++++++++-------- Software/src/battery/RENAULT-KANGOO-BATTERY.h | 42 ++++++++--------- Software/src/battery/RENAULT-ZOE-BATTERY.h | 42 ++++++++--------- Software/src/battery/SANTA-FE-PHEV-BATTERY.h | 40 ++++++++-------- Software/src/battery/TESLA-MODEL-3-BATTERY.h | 44 +++++++++--------- Software/src/battery/TEST-FAKE-BATTERY.h | 42 ++++++++--------- Software/src/devboard/config.h | 3 ++ Software/src/devboard/mqtt/mqtt.h | 24 +++++----- .../devboard/webserver/cellmonitor_html.cpp | 2 +- .../src/devboard/webserver/cellmonitor_html.h | 6 +-- Software/src/devboard/webserver/webserver.h | 46 +++++++++---------- Software/src/inverter/BYD-CAN.h | 42 ++++++++--------- Software/src/inverter/LUNA2000-MODBUS.h | 42 ++++++++--------- Software/src/inverter/PYLON-CAN.h | 42 ++++++++--------- Software/src/inverter/SMA-CAN.h | 42 ++++++++--------- Software/src/inverter/SMA-TRIPOWER-CAN.h | 42 ++++++++--------- Software/src/inverter/SOFAR-CAN.h | 42 ++++++++--------- Software/src/inverter/SOLAX-CAN.h | 42 ++++++++--------- 23 files changed, 400 insertions(+), 397 deletions(-) diff --git a/Software/Software.ino b/Software/Software.ino index f8d3b065..881aaf71 100644 --- a/Software/Software.ino +++ b/Software/Software.ino @@ -71,10 +71,10 @@ uint16_t system_max_discharge_power_W = 0; //Watts, 0 to 65535 uint16_t system_max_charge_power_W = 4312; //Watts, 0 to 65535 uint16_t system_cell_max_voltage_mV = 3700; //mV, 0-5000 , Stores the highest cell millivolt value uint16_t system_cell_min_voltage_mV = 3700; //mV, 0-5000, Stores the minimum cell millivolt value -uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV. Oversized to accomodate all setups -uint8_t system_bms_status = ACTIVE; //ACTIVE - [0..5]<>[STANDBY,INACTIVE,DARKSTART,ACTIVE,FAULT,UPDATING] -uint8_t system_number_of_cells = 0; //Total number of cell voltages, set by each battery -bool system_LFP_Chemistry = false; //Set to true or false depending on cell chemistry +uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages. Oversized to accomodate all setups +uint8_t system_bms_status = ACTIVE; //ACTIVE - [0..5]<>[STANDBY,INACTIVE,DARKSTART,ACTIVE,FAULT,UPDATING] +uint8_t system_number_of_cells = 0; //Total number of cell voltages, set by each battery +bool system_LFP_Chemistry = false; //Set to true or false depending on cell chemistry // Common charger parameters volatile float charger_setpoint_HV_VDC = 0.0f; diff --git a/Software/src/battery/BMW-I3-BATTERY.h b/Software/src/battery/BMW-I3-BATTERY.h index c855da90..8c0d7145 100644 --- a/Software/src/battery/BMW-I3-BATTERY.h +++ b/Software/src/battery/BMW-I3-BATTERY.h @@ -8,26 +8,26 @@ #define BATTERY_SELECTED // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false void setup_battery(void); diff --git a/Software/src/battery/CHADEMO-BATTERY.h b/Software/src/battery/CHADEMO-BATTERY.h index 06ddecba..9af21b66 100644 --- a/Software/src/battery/CHADEMO-BATTERY.h +++ b/Software/src/battery/CHADEMO-BATTERY.h @@ -8,26 +8,26 @@ #define BATTERY_SELECTED // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false void setup_battery(void); diff --git a/Software/src/battery/IMIEV-CZERO-ION-BATTERY.h b/Software/src/battery/IMIEV-CZERO-ION-BATTERY.h index 6bd3cd56..9b88b506 100644 --- a/Software/src/battery/IMIEV-CZERO-ION-BATTERY.h +++ b/Software/src/battery/IMIEV-CZERO-ION-BATTERY.h @@ -8,27 +8,27 @@ #define BATTERY_SELECTED // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, 1=true, 0=false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, 1=true, 0=false void setup_battery(void); diff --git a/Software/src/battery/KIA-HYUNDAI-64-BATTERY.h b/Software/src/battery/KIA-HYUNDAI-64-BATTERY.h index e00c4abf..58508222 100644 --- a/Software/src/battery/KIA-HYUNDAI-64-BATTERY.h +++ b/Software/src/battery/KIA-HYUNDAI-64-BATTERY.h @@ -11,27 +11,27 @@ #define MAXDISCHARGEPOWERALLOWED 10000 // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, 1=true, 0=false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, 1=true, 0=false void setup_battery(void); diff --git a/Software/src/battery/NISSAN-LEAF-BATTERY.h b/Software/src/battery/NISSAN-LEAF-BATTERY.h index 7ae28a3f..506781cc 100644 --- a/Software/src/battery/NISSAN-LEAF-BATTERY.h +++ b/Software/src/battery/NISSAN-LEAF-BATTERY.h @@ -8,26 +8,26 @@ #define BATTERY_SELECTED // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false uint16_t Temp_fromRAW_to_F(uint16_t temperature); bool is_message_corrupt(CAN_frame_t rx_frame); diff --git a/Software/src/battery/RENAULT-KANGOO-BATTERY.h b/Software/src/battery/RENAULT-KANGOO-BATTERY.h index 7c347d8a..c2c5e7a5 100644 --- a/Software/src/battery/RENAULT-KANGOO-BATTERY.h +++ b/Software/src/battery/RENAULT-KANGOO-BATTERY.h @@ -14,27 +14,27 @@ #define MAX_CELL_DEVIATION_MV 500 //LED turns yellow on the board if mv delta exceeds this value // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, true/false void setup_battery(void); diff --git a/Software/src/battery/RENAULT-ZOE-BATTERY.h b/Software/src/battery/RENAULT-ZOE-BATTERY.h index 91bcd7d6..83ef9a8f 100644 --- a/Software/src/battery/RENAULT-ZOE-BATTERY.h +++ b/Software/src/battery/RENAULT-ZOE-BATTERY.h @@ -14,27 +14,27 @@ #define MAX_CELL_DEVIATION_MV 500 //LED turns yellow on the board if mv delta exceeds this value // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, 1=true, 0=false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, 1=true, 0=false void setup_battery(void); diff --git a/Software/src/battery/SANTA-FE-PHEV-BATTERY.h b/Software/src/battery/SANTA-FE-PHEV-BATTERY.h index 127ca90d..8d4e13cb 100644 --- a/Software/src/battery/SANTA-FE-PHEV-BATTERY.h +++ b/Software/src/battery/SANTA-FE-PHEV-BATTERY.h @@ -8,26 +8,26 @@ #define BATTERY_SELECTED // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false uint8_t CalculateCRC8(CAN_frame_t rx_frame); void setup_battery(void); diff --git a/Software/src/battery/TESLA-MODEL-3-BATTERY.h b/Software/src/battery/TESLA-MODEL-3-BATTERY.h index 51481057..c9c3718d 100644 --- a/Software/src/battery/TESLA-MODEL-3-BATTERY.h +++ b/Software/src/battery/TESLA-MODEL-3-BATTERY.h @@ -12,28 +12,28 @@ 60000 // 60000W we need to cap this value to max 60kW, most inverters overflow otherwise // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, 1=true, 0=false -extern bool inverterAllowsContactorClosing; //Bool, 1=true, 0=false -extern bool system_LFP_Chemistry; //Bool, 1=true, 0=false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, 1=true, 0=false +extern bool inverterAllowsContactorClosing; //Bool, 1=true, 0=false +extern bool system_LFP_Chemistry; //Bool, 1=true, 0=false void printFaultCodesIfActive(); void printDebugIfActive(uint8_t symbol, const char* message); diff --git a/Software/src/battery/TEST-FAKE-BATTERY.h b/Software/src/battery/TEST-FAKE-BATTERY.h index 549ea92f..f0c868ca 100644 --- a/Software/src/battery/TEST-FAKE-BATTERY.h +++ b/Software/src/battery/TEST-FAKE-BATTERY.h @@ -8,27 +8,27 @@ #define BATTERY_SELECTED // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, true/false void setup_battery(void); diff --git a/Software/src/devboard/config.h b/Software/src/devboard/config.h index ff4b2f7b..9db44760 100644 --- a/Software/src/devboard/config.h +++ b/Software/src/devboard/config.h @@ -49,4 +49,7 @@ #define DISCHARGING 1 #define CHARGING 2 +// Common definitions +#define MAX_AMOUNT_CELLS 192 + #endif diff --git a/Software/src/devboard/mqtt/mqtt.h b/Software/src/devboard/mqtt/mqtt.h index 60d0924f..b39b56be 100644 --- a/Software/src/devboard/mqtt/mqtt.h +++ b/Software/src/devboard/mqtt/mqtt.h @@ -41,18 +41,18 @@ extern const char* version_number; // The current software version, used for mqtt -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000 , Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000 , Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery extern const char* mqtt_user; extern const char* mqtt_password; diff --git a/Software/src/devboard/webserver/cellmonitor_html.cpp b/Software/src/devboard/webserver/cellmonitor_html.cpp index 32c0ab41..d9377a12 100644 --- a/Software/src/devboard/webserver/cellmonitor_html.cpp +++ b/Software/src/devboard/webserver/cellmonitor_html.cpp @@ -26,7 +26,7 @@ String cellmonitor_processor(const String& var) { // Visualize the populated cells in forward order using flexbox with conditional text color content += "
"; - for (int i = 0; i < 192; ++i) { + for (int i = 0; i < MAX_AMOUNT_CELLS; ++i) { // Skip empty values if (system_cellvoltages_mV[i] == 0) { continue; diff --git a/Software/src/devboard/webserver/cellmonitor_html.h b/Software/src/devboard/webserver/cellmonitor_html.h index 9a1a0bd7..85f08b83 100644 --- a/Software/src/devboard/webserver/cellmonitor_html.h +++ b/Software/src/devboard/webserver/cellmonitor_html.h @@ -4,9 +4,9 @@ #include #include -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV /** * @brief Replaces placeholder with content section in web page diff --git a/Software/src/devboard/webserver/webserver.h b/Software/src/devboard/webserver/webserver.h index 84735e46..ad748147 100644 --- a/Software/src/devboard/webserver/webserver.h +++ b/Software/src/devboard/webserver/webserver.h @@ -16,29 +16,29 @@ #include "../mqtt/mqtt.h" #endif -extern const char* version_number; // The current software version, shown on webserver -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000 , Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern uint8_t LEDcolor; //Enum, 0-10 -extern bool batteryAllowsContactorClosing; //Bool, 1=true, 0=false -extern bool inverterAllowsContactorClosing; //Bool, 1=true, 0=false +extern const char* version_number; // The current software version, shown on webserver +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000 , Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern uint8_t LEDcolor; //Enum, 0-10 +extern bool batteryAllowsContactorClosing; //Bool, 1=true, 0=false +extern bool inverterAllowsContactorClosing; //Bool, 1=true, 0=false extern const char* ssid; extern const char* password; diff --git a/Software/src/inverter/BYD-CAN.h b/Software/src/inverter/BYD-CAN.h index 30264bab..5cf9ee46 100644 --- a/Software/src/inverter/BYD-CAN.h +++ b/Software/src/inverter/BYD-CAN.h @@ -6,27 +6,27 @@ #include "../lib/miwagner-ESP32-Arduino-CAN/ESP32CAN.h" // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, true/false void update_values_can_byd(); void send_can_byd(); diff --git a/Software/src/inverter/LUNA2000-MODBUS.h b/Software/src/inverter/LUNA2000-MODBUS.h index dc856556..ec78c58f 100644 --- a/Software/src/inverter/LUNA2000-MODBUS.h +++ b/Software/src/inverter/LUNA2000-MODBUS.h @@ -6,27 +6,27 @@ #define MB_RTU_NUM_VALUES 30000 extern uint16_t mbPV[MB_RTU_NUM_VALUES]; -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, true/false void update_modbus_registers_luna2000(); void handle_update_data_modbus32051(); diff --git a/Software/src/inverter/PYLON-CAN.h b/Software/src/inverter/PYLON-CAN.h index b8fcfcb4..d7e57cfc 100644 --- a/Software/src/inverter/PYLON-CAN.h +++ b/Software/src/inverter/PYLON-CAN.h @@ -5,27 +5,27 @@ #include "../devboard/config.h" // Needed for all defines #include "../lib/miwagner-ESP32-Arduino-CAN/ESP32CAN.h" -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, true/false void update_values_can_pylon(); void receive_can_pylon(CAN_frame_t rx_frame); diff --git a/Software/src/inverter/SMA-CAN.h b/Software/src/inverter/SMA-CAN.h index 0bc85601..b86e5e64 100644 --- a/Software/src/inverter/SMA-CAN.h +++ b/Software/src/inverter/SMA-CAN.h @@ -5,27 +5,27 @@ #include "../devboard/config.h" // Needed for all defines #include "../lib/miwagner-ESP32-Arduino-CAN/ESP32CAN.h" -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, true/false #define READY_STATE 0x03 #define STOP_STATE 0x02 diff --git a/Software/src/inverter/SMA-TRIPOWER-CAN.h b/Software/src/inverter/SMA-TRIPOWER-CAN.h index 2b1755c1..1c56cadb 100644 --- a/Software/src/inverter/SMA-TRIPOWER-CAN.h +++ b/Software/src/inverter/SMA-TRIPOWER-CAN.h @@ -5,27 +5,27 @@ #include "../devboard/config.h" // Needed for all defines #include "../lib/miwagner-ESP32-Arduino-CAN/ESP32CAN.h" -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, true/false void update_values_can_sma_tripower(); void send_can_sma_tripower(); diff --git a/Software/src/inverter/SOFAR-CAN.h b/Software/src/inverter/SOFAR-CAN.h index e974e7b1..02a3772d 100644 --- a/Software/src/inverter/SOFAR-CAN.h +++ b/Software/src/inverter/SOFAR-CAN.h @@ -6,27 +6,27 @@ #include "../lib/miwagner-ESP32-Arduino-CAN/ESP32CAN.h" // These parameters need to be mapped for the inverter -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, true/false extern uint16_t min_voltage; extern uint16_t max_voltage; diff --git a/Software/src/inverter/SOLAX-CAN.h b/Software/src/inverter/SOLAX-CAN.h index 9727d153..e2fc3544 100644 --- a/Software/src/inverter/SOLAX-CAN.h +++ b/Software/src/inverter/SOLAX-CAN.h @@ -8,27 +8,27 @@ extern ACAN2515 can; -extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh -extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh -extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 -extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 -extern int16_t system_active_power_W; //W, -32000 to 32000 -extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 -extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) -extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) -extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) -extern uint16_t system_max_discharge_power_W; //W, 0-65000 -extern uint16_t system_max_charge_power_W; //W, 0-65000 -extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value -extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value -extern uint16_t system_cellvoltages_mV[192]; //Array with all cell voltages in mV -extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery -extern uint8_t system_bms_status; //Enum 0-5 -extern bool batteryAllowsContactorClosing; //Bool, true/false -extern bool inverterAllowsContactorClosing; //Bool, true/false +extern uint32_t system_capacity_Wh; //Wh, 0-150000Wh +extern uint32_t system_remaining_capacity_Wh; //Wh, 0-150000Wh +extern int16_t system_temperature_min_dC; //C+1, -50.0 - 50.0 +extern int16_t system_temperature_max_dC; //C+1, -50.0 - 50.0 +extern int16_t system_active_power_W; //W, -32000 to 32000 +extern int16_t system_battery_current_dA; //A+1, -1000 - 1000 +extern uint16_t system_battery_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_max_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_min_design_voltage_dV; //V+1, 0-500.0 (0-5000) +extern uint16_t system_scaled_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_real_SOC_pptt; //SOC%, 0-100.00 (0-10000) +extern uint16_t system_SOH_pptt; //SOH%, 0-100.00 (0-10000) +extern uint16_t system_max_discharge_power_W; //W, 0-65000 +extern uint16_t system_max_charge_power_W; //W, 0-65000 +extern uint16_t system_cell_max_voltage_mV; //mV, 0-5000, Stores the highest cell millivolt value +extern uint16_t system_cell_min_voltage_mV; //mV, 0-5000, Stores the minimum cell millivolt value +extern uint16_t system_cellvoltages_mV[MAX_AMOUNT_CELLS]; //Array with all cell voltages in mV +extern uint8_t system_number_of_cells; //Total number of cell voltages, set by each battery +extern uint8_t system_bms_status; //Enum 0-5 +extern bool batteryAllowsContactorClosing; //Bool, true/false +extern bool inverterAllowsContactorClosing; //Bool, true/false // Timeout in milliseconds #define SolaxTimeout 2000