You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DVRLastVersionsCompare/FRAM/FRAMConfigurationParameters...

462 lines
21 KiB
C++

/*
* FRAMConfigurationParameters.cpp
*
* Author: Aleksey Gerasimenko
* gerasimenko.aleksey.n@gmail.com
*/
#include "FRAM/FRAMDATABASE.h"
namespace FRAM
{
void FRAMDATABASE::register_configuration_parameters(SYSCTRL::SystemControlConfiguration *sys_config)
{
m_fram_object_index = 0;
m_fram_object_address = 0;
m_fram_object_last_address = 0;
//add_register_float(uint8_t readonly, float* pParam, float default_value);
//add_register_int(uint8_t readonly, int16_t* pParam, int16_t default_value);
//
//
// References
//
add_float( 0, &sys_config->reference_current_limit_rms, CURRENT_LIMIT_RMS);
add_float( 0, &sys_config->reference_current_pfc_rms, CURRENT_PFC_RMS);
add_float( 0, &sys_config->reference_voltage_rms, GRID_VOLTAGE_REFERENCE);
add_float( 0, &sys_config->reference_voltage_high_limit_rms, GRID_VOLTAGE_HIGH_LIMIT);
add_float( 0, &sys_config->reference_voltage_dc, CELL_DC_VOLTAGE_REFERENCE);
//<>
//
// Algorithm Control Register
add_uint16(0, &sys_config->algorithm_control.all, ENABLE_CONTROL_BIT);
//<>
//
// High Voltage Cell
//
5 months ago
add_uint16(0, &sys_config->hardware.cell_level, 4); // for debug!!!
add_uint16(0, &sys_config->hardware.version.pwm, 210);
add_uint16(0, &sys_config->hardware.version.cell, 211);
add_uint32(0, &sys_config->hardware.version.cpu_cpld, 202);
//<>
add_float( 0, &sys_config->minimal_input_voltage_level, 10.0);
//<>
//
// Scale Analog Signals
//
add_float( 0, &sys_config->scale_voltage_input_a, 0.166324854);//0.0227386411//0.0233486816;
add_float( 0, &sys_config->scale_voltage_input_b, 0.166955084);//0.0227597337//0.0234651081;
add_float( 0, &sys_config->scale_voltage_input_c, 0.170290515);//0.02278281//0.0236082859;
//
add_float( 0, &sys_config->scale_current_input_a, 0.0057266783);
add_float( 0, &sys_config->scale_current_input_b, 0.00571648451);
add_float( 0, &sys_config->scale_current_input_c, 0.00571565609);
//
add_float( 0, &sys_config->scale_current_cell_a, 0.0095403092);//0.00665648002;
add_float( 0, &sys_config->scale_current_cell_b, 0.00967073813);//0.00667640707;
add_float( 0, &sys_config->scale_current_cell_c, 0.00962774921);//0.00666095456;
//
add_float( 0, &sys_config->scale_voltage_load_a, 0.168764219);//0.0227408651//0.0232194811;
add_float( 0, &sys_config->scale_voltage_load_b, 0.167528242);//0.0227707103//0.0233941432;
add_float( 0, &sys_config->scale_voltage_load_c, 0.171417475);//0.0229060184//0.0234934501;
//
add_float( 0, &sys_config->scale_current_load_a, 0.00949461199);//0.00668919506;
add_float( 0, &sys_config->scale_current_load_b, 0.00953965727);//0.00669770781;
add_float( 0, &sys_config->scale_current_load_c, 0.00959520414);//0.00670575583;
//
add_float( 0, &sys_config->scale_current_bypass_a, 0.00953388773);
add_float( 0, &sys_config->scale_current_bypass_b, 0.00956917088);
add_float( 0, &sys_config->scale_current_bypass_c, 0.00956158526);
//<>
//
// Amplitude Filter Parameters
//
add_float( 0, &sys_config->ampl_filter_current.time, 20.0e-3);
add_float( 0, &sys_config->ampl_filter_current.a3, 2.61313);
add_float( 0, &sys_config->ampl_filter_current.a2, 3.41422);
add_float( 0, &sys_config->ampl_filter_current.a1, 2.61313);
//<>
//
// RMS Filter Parameters
//
add_float( 0, &sys_config->rms_filter_analog_signal.time, 10.0e-3);
add_float( 0, &sys_config->rms_filter_analog_signal.a3, 2.61313);
add_float( 0, &sys_config->rms_filter_analog_signal.a2, 3.41422);
add_float( 0, &sys_config->rms_filter_analog_signal.a1, 2.61313);
//<>
//
// Zero Drift Current Input
//
add_float( 0, &sys_config->zero_filter.time, 1.333);
//<>
//
// Cell DC Voltage Filter
//
add_float( 0, &sys_config->cell_dc_voltage_filter.time, 3.0e-3);
add_float( 0, &sys_config->cell_dc_voltage_filter.a3, 2.61313);
add_float( 0, &sys_config->cell_dc_voltage_filter.a2, 3.41422);
add_float( 0, &sys_config->cell_dc_voltage_filter.a1, 2.61313);
//<>
//
// Signal Decompose
//
add_float( 0, &sys_config->signal_decompose.projection_filter.time, 10.0e-3);
add_float( 0, &sys_config->signal_decompose.projection_filter.a3, 2.61313);
add_float( 0, &sys_config->signal_decompose.projection_filter.a2, 3.41422);
add_float( 0, &sys_config->signal_decompose.projection_filter.a1, 2.61313);
5 months ago
//
#if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_SIMPLE
add_float( 0, &sys_config->voltage_decompose.projection_filter.time, DECOMPOSEVOLTAGETIME);
#endif
//<>
//
// Relative
//
add_float( 0, &sys_config->relative_voltage_input.minimal_amplitude_level, 0.1);
add_float( 0, &sys_config->relative_voltage_input.limit_relative_high, 1.1);
add_float( 0, &sys_config->relative_voltage_input.limit_relative_low, -1.1);
add_float( 0, &sys_config->relative_voltage_input.amplitude_filter.time, (float)(1.0/2.0/FP_PI/10.0));
add_float( 0, &sys_config->relative_voltage_input.amplitude_filter.a3, 2.61313);
add_float( 0, &sys_config->relative_voltage_input.amplitude_filter.a2, 3.41422);
add_float( 0, &sys_config->relative_voltage_input.amplitude_filter.a1, 2.61313);
//<>
//
// Voltage PLL-ABC Parameters
//
add_float( 0, &sys_config->pll_abc_input_voltage.frequency_nominal, PLLABC_FREQUENCY_NOMINAL);
add_float( 0, &sys_config->pll_abc_input_voltage.filter.time, 1.0/PLLABC_FREQUENCY_CUT);
add_float( 0, &sys_config->pll_abc_input_voltage.controller.gain, PLLABC_FREQUENCY_CUT/2.0);
add_float( 0, &sys_config->pll_abc_input_voltage.controller.time, 4.0/PLLABC_FREQUENCY_CUT);
add_float( 0, &sys_config->pll_abc_input_voltage.controller.low_saturation, PLLABC_FREQUENCY_LIMIT_LOW);
add_float( 0, &sys_config->pll_abc_input_voltage.controller.high_saturation, PLLABC_FREQUENCY_LIMIT_HI);
add_float( 0, &sys_config->pll_abc_input_voltage.position.time, 1.0);
add_float( 0, &sys_config->pll_abc_input_voltage.position.low_saturation, FP_ZERO);
add_float( 0, &sys_config->pll_abc_input_voltage.position.high_saturation, 2.0 * FP_PI);
//<>
//
// System Alarm
//
// exceed voltage level 1
add_float( 0, &sys_config->phase_alert_monitor.voltage_exceed_level_1.level, NOMINAL_GRID_VOLTAGE * ((float)1.0 + (PROTECTION_EXCEED_VOLTAGE_LEVEL_1_PERCENT / (float)100.0)));//253.0;
add_float( 0, &sys_config->phase_alert_monitor.voltage_exceed_level_1.period, 10.0);
//
// exceed voltage level 2
add_float( 0, &sys_config->phase_alert_monitor.voltage_exceed_level_2.level, NOMINAL_GRID_VOLTAGE * ((float)1.0 + (PROTECTION_EXCEED_VOLTAGE_LEVEL_2_PERCENT / (float)100.0)));//264.5;
add_float( 0, &sys_config->phase_alert_monitor.voltage_exceed_level_2.period, 5.0);
//
// exceed voltage level 3
add_float( 0, &sys_config->phase_alert_monitor.voltage_exceed_level_3.level, NOMINAL_GRID_VOLTAGE * ((float)1.0 + (PROTECTION_EXCEED_VOLTAGE_LEVEL_3_PERCENT / (float)100.0)));//276.0;
add_float( 0, &sys_config->phase_alert_monitor.voltage_exceed_level_3.period, 2.0);
//
// exceed voltage level 4
add_float( 0, &sys_config->phase_alert_monitor.voltage_exceed_level_4.level, NOMINAL_GRID_VOLTAGE * ((float)1.0 + (PROTECTION_EXCEED_VOLTAGE_LEVEL_4_PERCENT / (float)100.0)));
add_float( 0, &sys_config->phase_alert_monitor.voltage_exceed_level_4.period, 0.004);//1.0;
//
// decrease voltage level 1
add_float( 0, &sys_config->phase_alert_monitor.voltage_decrease_level_1.level, NOMINAL_GRID_VOLTAGE * ((float)1.0 - (PROTECTION_DECREASE_VOLTAGE_LEVEL_1_PERCENT / (float)100.0)));//218.5;//195.5;
add_float( 0, &sys_config->phase_alert_monitor.voltage_decrease_level_1.period, 10.0);
//
// decrease voltage level 2
add_float( 0, &sys_config->phase_alert_monitor.voltage_decrease_level_2.level, NOMINAL_GRID_VOLTAGE * ((float)1.0 - (PROTECTION_DECREASE_VOLTAGE_LEVEL_2_PERCENT / (float)100.0)));//207.0;//172.5;
add_float( 0, &sys_config->phase_alert_monitor.voltage_decrease_level_2.period, 5.0);
//
// decrease voltage level 3
add_float( 0, &sys_config->phase_alert_monitor.voltage_decrease_level_3.level, NOMINAL_GRID_VOLTAGE * ((float)1.0 - (PROTECTION_DECREASE_VOLTAGE_LEVEL_3_PERCENT / (float)100.0)));
add_float( 0, &sys_config->phase_alert_monitor.voltage_decrease_level_3.period, 2.0);
//
// current overload level 1 120% 60s
add_float( 0, &sys_config->phase_alert_monitor.current_overload_level_1.level, 250 * 1.1);
add_float( 0, &sys_config->phase_alert_monitor.current_overload_level_1.period, 60.0);
//
// current overload level 2 130% 10s
add_float( 0, &sys_config->phase_alert_monitor.current_overload_level_2.level, 250 * 1.2);
add_float( 0, &sys_config->phase_alert_monitor.current_overload_level_2.period, 10.0);
//
// current overload level 3 150% 1ms
add_float( 0, &sys_config->phase_alert_monitor.current_overload_level_3.level, 250 * 1.3);
add_float( 0, &sys_config->phase_alert_monitor.current_overload_level_3.period, 0.004);
//
// current invertor overload level 1 110% 60s
add_float( 0, &sys_config->phase_alert_monitor.current_invertor_overload_level_1.level, 79 * 1.1);
add_float( 0, &sys_config->phase_alert_monitor.current_invertor_overload_level_1.period, 60.0);
//
// current invertor overload level 2 130% 10s
add_float( 0, &sys_config->phase_alert_monitor.current_invertor_overload_level_2.level, 79 * 1.2);
add_float( 0, &sys_config->phase_alert_monitor.current_invertor_overload_level_2.period, 10.0);
//
// current invertor overload level 3 150% 1ms
add_float( 0, &sys_config->phase_alert_monitor.current_invertor_overload_level_3.level, 79 * 5.79);
add_float( 0, &sys_config->phase_alert_monitor.current_invertor_overload_level_3.period, 0.004);
//
// current input overload level 1 110% 60s
add_float( 0, &sys_config->phase_alert_monitor.current_input_overload_level_1.level, 131.0 * 1.1);
add_float( 0, &sys_config->phase_alert_monitor.current_input_overload_level_1.period, 60.0);
//
// current input overload level 2 130% 10s
add_float( 0, &sys_config->phase_alert_monitor.current_input_overload_level_2.level, 131.0 * 1.2);
add_float( 0, &sys_config->phase_alert_monitor.current_input_overload_level_2.period, 10.0);
//
// current input overload level 3 150% 1ms
add_float( 0, &sys_config->phase_alert_monitor.current_input_overload_level_3.level, 131.0 * 1.3);
add_float( 0, &sys_config->phase_alert_monitor.current_input_overload_level_3.period, 0.004);
//<>
//
// DIGITAL INPUTS
//
add_float( 0, &sys_config->digital_input_config.period, 50.0e-3); //3001 - 3020
//<>
//
// FAN CONTROL
//
add_float( 0, &sys_config->fan_control.timer_period, 5.0*60.0);
//<>
//
// Generator ABC
//
add_float( 0, &sys_config->generator_abc.amplitude, 1.0);
add_float( 0, &sys_config->generator_abc.frequency, 2.0*FP_PI*50.0);
add_float( 0, &sys_config->generator_abc.phase_shift, 0.0);
//<>
//
// Reference PWM-Generator
//
//add_float( 0, &sys_config->generator_pwm.frequency, 2.0*FP_PI*1.0);
//add_float( 0, &sys_config->generator_abc.phase_shift, 0.0);
//add_float( 0, &sys_config->gen_inp_volt.amplitude.direct.d, 220.0);
//
//add_float( 0, &sys_config->gen_out_volt.amplitude.direct.d, 220.0);
//add_float( 0, &sys_config->gen_out_volt.phase.direct.phase, 0.122756);//FP_PI/4.0);
//
//add_float( 0, &sys_config->gen_out_current.amplitude.direct.d, 50.0);
//add_float( 0, &sys_config->gen_out_current.phase.direct.phase, 0.122756);//FP_PI/3.0;
//<>
//
// AlgorithmGeneratorReferences
//
add_float( 0, &sys_config->algorithm_source_references.voltage, 0.0);
add_float( 0, &sys_config->algorithm_source_references.phase_shift, 0.0);
//
// Harmonica Analyzer
//
add_float( 0, &sys_config->ph_harmonica_5.time, 50.0e-3);
add_float( 0, &sys_config->ph_harmonica_5.a3, 2.61313);
add_float( 0, &sys_config->ph_harmonica_5.a2, 3.41422);
add_float( 0, &sys_config->ph_harmonica_5.a1, 2.61313);
//<>
//
// Reference Intensity Idref Iqref in Start Mode
//
add_float( 0, &sys_config->intensity_id_iq_references.damp_factor, 0.7071);
add_float( 0, &sys_config->intensity_id_iq_references.time, 20.0e-3);
//<>
//
// Regulators
//
#if TYPECONTROL == VECTORCONTROL
//
#if TYPE_VOLTAGE_CONTROLLER == VOLTAGE_CONTROLLER_PII
add_float( 0, &sys_config->regulator_voltage_load_dq.gain, 1.0);
add_float( 0, &sys_config->regulator_voltage_load_dq.time, 1.6e-3);
add_float( 0, &sys_config->regulator_voltage_load_dq.high_saturation, 4500.0);
add_float( 0, &sys_config->regulator_voltage_load_dq.low_saturation, -4500.0);
//
add_float( 0, &sys_config->integrator_voltage_dq.time, 2.0e-3);
add_float( 0, &sys_config->integrator_voltage_dq.high_saturation, 4500.0);
add_float( 0, &sys_config->integrator_voltage_dq.low_saturation, -4500.0);
//
add_float( 0, &sys_config->reference_voltage_dq_intensity.time, 200.0e-3);
//
#endif
#if TYPE_VOLTAGE_CONTROLLER == VOLTAGE_CONTROLLER_I
add_float( 0, &sys_config->regulator_voltage_load_dq.gain, 0.4);
add_float( 0, &sys_config->regulator_voltage_load_dq.time, 1600.0e-6);
add_float( 0, &sys_config->regulator_voltage_load_dq.high_saturation, 4500.0);
add_float( 0, &sys_config->regulator_voltage_load_dq.low_saturation, -4500.0);
//
add_float( 0, &sys_config->integrator_voltage_dq.time, 4.0e-3); // 4.0e-3 for single winding; 2.0e-3 for double winding
add_float( 0, &sys_config->integrator_voltage_dq.high_saturation, 4500.0);
add_float( 0, &sys_config->integrator_voltage_dq.low_saturation, -4500.0);
//
add_float( 0, &sys_config->reference_voltage_dq_intensity.time, 200.0e-3);
//
#endif
//
//add_float( 0, &sys_config->regulator_current_limit.gain, 1.0);
add_float( 0, &sys_config->regulator_current_limit.time, 140.0e-3);
add_float( 0, &sys_config->regulator_current_limit.high_saturation, REGULATOR_CURRENT_LIMIT_HIGH_SATURATION);
add_float( 0, &sys_config->regulator_current_limit.low_saturation, REGULATOR_CURRENT_LIMIT_LOW_SATURATION);
//
add_float( 0, &sys_config->regulator_current_pfc.gain, 0.25);
add_float( 0, &sys_config->regulator_current_pfc.time, 800.0e-3);
add_float( 0, &sys_config->regulator_current_pfc.high_saturation, REGULATOR_CURRENT_PFC_HIGH_SATURATION);
add_float( 0, &sys_config->regulator_current_pfc.low_saturation, REGULATOR_CURRENT_PFC_LOW_SATURATION);
//
#if TYPECURRENTCONTROLLER == CURRENTCONTROLLER_PI
add_float( 0, &sys_config->regulator_current_load_dq.gain, 8.0); // 4.0 for single winding; 8.0 for double winding
add_float( 0, &sys_config->regulator_current_load_dq.time, 6.4e-3);
add_float( 0, &sys_config->regulator_current_load_dq.high_saturation, 500.0);
add_float( 0, &sys_config->regulator_current_load_dq.low_saturation, -500.0);
#endif
#if TYPECURRENTCONTROLLER == CURRENTCONTROLLER_P
add_float( 0, &sys_config->regulator_current_load_dq.gain, 8.0);
add_float( 0, &sys_config->regulator_current_load_dq.high_saturation, 500.0);
add_float( 0, &sys_config->regulator_current_load_dq.low_saturation, -500.0);
#endif
//
add_float( 0, &sys_config->referencer_current_bypass_dq.time, 25.6e-3);
add_float( 0, &sys_config->referencer_current_bypass_dq.high_saturation, 240.0);
add_float( 0, &sys_config->referencer_current_bypass_dq.low_saturation, -240.0);
//
#endif
#if TYPECONTROL == SCALARCONTROL
5 months ago
#if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_DIFFICULT
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.gain, 0.04);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.time, 10.0e-3);
5 months ago
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.high_saturation, 1800.0);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.low_saturation, -1800.0);
#endif
#if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_SIMPLE
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.gain, 1/5.0);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.time, REGULATORVOLTAGETIME);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.high_saturation, 1800.0); // for debug!!!
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.low_saturation, -1800.0); // for debug!!!
#endif
//
add_float( 0, &sys_config->regulator_current_limit.gain, 1.0);
add_float( 0, &sys_config->regulator_current_limit.time, 5.0);
add_float( 0, &sys_config->regulator_current_limit.high_saturation, GRID_VOLTAGE_REFERENCE * 0.57735);
add_float( 0, &sys_config->regulator_current_limit.low_saturation, FP_ZERO);
//
add_float( 0, &sys_config->regulator_current_pfc.gain, 0.25);
add_float( 0, &sys_config->regulator_current_pfc.time, 800.0e-3);
add_float( 0, &sys_config->regulator_current_pfc.high_saturation, GRID_VOLTAGE_REFERENCE * 0.57735);
add_float( 0, &sys_config->regulator_current_pfc.low_saturation, -GRID_VOLTAGE_REFERENCE * 0.57735);
//
5 months ago
add_float( 0, &sys_config->current_regulator_active.gain, 0.34); // 0.34 for single winding 0.17 for double winding
add_float( 0, &sys_config->current_regulator_active.time, 0.04);
add_float( 0, &sys_config->current_regulator_active.high_saturation, 500.0);
add_float( 0, &sys_config->current_regulator_active.low_saturation, -500.0);
//
5 months ago
add_float( 0, &sys_config->current_regulator_reactive.gain, 0.34); // 0.34 for single winding 0.17 for double winding
add_float( 0, &sys_config->current_regulator_reactive.time, 0.04);
add_float( 0, &sys_config->current_regulator_reactive.high_saturation, 500.0);
add_float( 0, &sys_config->current_regulator_reactive.low_saturation, -500.0);
//
add_float( 0, &sys_config->current_referencer.gain, 1.0);
add_float( 0, &sys_config->current_referencer.time, 0.160);
add_float( 0, &sys_config->current_referencer.high_saturation, 20.0);
add_float( 0, &sys_config->current_referencer.low_saturation, -20.0);
//
add_float( 0, &sys_config->regulator_dc_voltage.gain, 0.05);
add_float( 0, &sys_config->regulator_dc_voltage.time, 800.0e-3);
add_float( 0, &sys_config->regulator_dc_voltage.high_saturation, FP_ZERO);
add_float( 0, &sys_config->regulator_dc_voltage.low_saturation, -GRID_VOLTAGE_REFERENCE * 0.57735);
#endif
//<>
#if TYPECONTROL == DIRECTREVERSECONTROL
//
add_float( 0, &sys_config->drc_voltage_decomposer.filter.time, 31.83e-3); //31.83e-3//6.366e-3//3.183e-3
//
add_float( 0, &sys_config->drc_voltage_controller.gain, 0.4); //0.4 - for single winding; 0.7958 - for double winding. //7.958//1.592//0.7958
add_float( 0, &sys_config->drc_voltage_controller.time, 3.2e-3); //31.83e-3//6.366e-3//3.183e-3
5 months ago
add_float( 0, &sys_config->drc_voltage_controller.high_saturation, 1276.0);
add_float( 0, &sys_config->drc_voltage_controller.low_saturation, -1276.0);
//
add_float( 0, &sys_config->drc_reference_voltage_direct_intensity.time, 333.0e-3);
add_float( 0, &sys_config->drc_reference_voltage_direct_intensity.damp_factor, 0.9);
//
add_float( 0, &sys_config->drc_regulator_current_load.gain, 4.0);// 4.0 - for single winding; 8.0 - for double winding
add_float( 0, &sys_config->drc_regulator_current_load.time, 6.4e-3);
add_float( 0, &sys_config->drc_regulator_current_load.high_saturation, 500.0);
add_float( 0, &sys_config->drc_regulator_current_load.low_saturation, -500.0);
//
add_float( 0, &sys_config->drc_referencer_current_bypass.time, 25.6e-3);
add_float( 0, &sys_config->drc_referencer_current_bypass.high_saturation, 240.0);
add_float( 0, &sys_config->drc_referencer_current_bypass.low_saturation, -240.0);
//
add_float( 0, &sys_config->drc_regulator_current_limit.time, 140.0e-3);
add_float( 0, &sys_config->drc_regulator_current_limit.high_saturation, REGULATOR_CURRENT_LIMIT_HIGH_SATURATION);
add_float( 0, &sys_config->drc_regulator_current_limit.low_saturation, REGULATOR_CURRENT_LIMIT_LOW_SATURATION);
//
add_float( 0, &sys_config->drc_regulator_current_pfc.gain, 0.25);
add_float( 0, &sys_config->drc_regulator_current_pfc.time, 800.0e-3);
add_float( 0, &sys_config->drc_regulator_current_pfc.high_saturation, REGULATOR_CURRENT_PFC_HIGH_SATURATION);
add_float( 0, &sys_config->drc_regulator_current_pfc.low_saturation, REGULATOR_CURRENT_PFC_LOW_SATURATION);
//
#endif
//<>
//
// Timers
//
add_float( 0, &sys_config->timer_start.period, 5.0);
add_float( 0, &sys_config->timer_stop.period, 5.0);
//<>
//
// Contactor Control Fault
//
add_float( 0, &sys_config->contactor.period, 0.4);
}//
} /* namespace FRAM */