/* * SystemControl.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "SYSCTRL/SystemControl.h" namespace SYSCTRL { //CONSTRUCTOR SystemControl::SystemControl(): m_mode(SYSCTRL::SystemControl::UNDEFINED), m_algorithm_executed(SYSCTRL::AlgorithmContext::OFF), turnQ1On(false), m_decompose_voltage_input_a(), m_decompose_voltage_input_b(), m_decompose_voltage_input_c(), // m_decompose_voltage_load_a(), m_decompose_voltage_load_b(), m_decompose_voltage_load_c(), // m_decompose_current_load_a(), m_decompose_current_load_b(), m_decompose_current_load_c(), // m_decompose_current_cell_a(), m_decompose_current_cell_b(), m_decompose_current_cell_c(), // m_decompose_current_bypass_a(), m_decompose_current_bypass_b(), m_decompose_current_bypass_c(), // m_rms_filter_current_input_a(), m_rms_filter_current_input_b(), m_rms_filter_current_input_c(), // m_rms_filter_current_cell_a(), m_rms_filter_current_cell_b(), m_rms_filter_current_cell_c(), // m_rms_filter_current_load_a(), m_rms_filter_current_load_b(), m_rms_filter_current_load_c(), // m_rms_filter_voltage_input_a(), m_rms_filter_voltage_input_b(), m_rms_filter_voltage_input_c(), // m_rms_filter_voltage_load_a(), m_rms_filter_voltage_load_b(), m_rms_filter_voltage_load_c(), // m_rms_filter_current_bypass_a(), m_rms_filter_current_bypass_b(), m_rms_filter_current_bypass_c(), // m_zero_filter_voltage_input_a(), m_zero_filter_voltage_input_b(), m_zero_filter_voltage_input_c(), // m_zero_filter_current_input_a(), m_zero_filter_current_input_b(), m_zero_filter_current_input_c(), // m_zero_filter_current_cell_a(), m_zero_filter_current_cell_b(), m_zero_filter_current_cell_c(), // m_zero_filter_voltage_load_a(), m_zero_filter_voltage_load_b(), m_zero_filter_voltage_load_c(), // m_zero_filter_current_load_a(), m_zero_filter_current_load_b(), m_zero_filter_current_load_c(), // m_zero_filter_current_bypass_a(), m_zero_filter_current_bypass_b(), m_zero_filter_current_bypass_c(), // m_cell_dc_voltage_a_filter(), m_cell_dc_voltage_b_filter(), m_cell_dc_voltage_c_filter(), // m_relative_filter_voltage_input_a(), m_relative_filter_voltage_input_b(), m_relative_filter_voltage_input_c(), // m_pll_abc_input_voltage(), // //Harmonica Analyzer m_voltage_input_a_harmonica_filter_5(), m_voltage_input_b_harmonica_filter_5(), m_voltage_input_c_harmonica_filter_5(), // //Phase Alert monitor m_phase_alert_monitor(), // m_enable_work_trigger(), m_system_fault_trigger(), // m_q1_control_trigger(), m_km1_control_trigger(), m_km2_control_trigger(), m_km3_control_trigger(), m_km11_control_on_off_trigger(), m_km11t_control_on_trigger(), m_km11t_control_off_trigger(), m_km1_external_command_trigger(), m_km3_external_command_trigger(), m_q1_external_command_trigger(), m_vs_protection_control_trigger(), // m_q1_control_fault(), m_km1_control_fault(), m_km2_control_fault(), m_km3_control_fault(), // m_system_setup(), m_system_configuration(), m_environment(), m_algorithm(m_environment), m_fram_db(), // m_test_read_word(), m_test_write_word(), m_modbus_break_counter(0), m_rubus(NUMBER_RUBUSCELLS), hardware_analog_current_fault(), // _slow_loop_execute(&SYSCTRL::SystemControl::_slow_loop_undef), _execute_additional(&SYSCTRL::SystemControl::_additional_undef), _execute(&SYSCTRL::SystemControl::_execute_ubdef) // {}//CONSTRUCTOR void SystemControl::setup() { static bool _status = true; if(m_mode == SYSCTRL::SystemControl::UNDEFINED) { m_environment.time_sample_control = m_system_setup.time_sample_control; m_environment.time_prescale_slow = m_system_setup.time_prescale_slow; m_environment.time_prescale_additional = m_system_setup.time_prescale_additional; m_environment.counter_slow = m_system_setup.time_prescale_slow; m_environment.counter_additional = m_system_setup.time_prescale_additional; m_environment.time_sample_slow = ((float)m_environment.time_prescale_slow)*m_environment.time_sample_control; m_environment.time_sample_additional = ((float)m_environment.time_prescale_additional)*m_environment.time_sample_control; _status &= m_environment.time_sample_control != FP_ZERO ? true : false; _status &= m_environment.time_sample_slow >= m_environment.time_sample_control ? true : false; _status &= m_environment.time_sample_additional >= m_environment.time_sample_control ? true : false; m_environment.digital_output_inverse.all = 0xffffffff; m_environment.digital_output.all = 0xffffffff; // // Algorithm // m_algorithm.setup(); _status &= m_algorithm.compare(SYSCTRL::AlgorithmContext::CONFIGURATE); //<> // // DIGITAL INPUTS // m_environment.remote_start.setup(m_environment.time_sample_slow); //3001 m_environment.remote_stop.setup(m_environment.time_sample_slow); //3002 m_environment.remote_reset.setup(m_environment.time_sample_slow); //3003 m_environment.remote_e_stop.setup(m_environment.time_sample_slow); //3004 m_environment.auxiliary_q1.setup(m_environment.time_sample_slow); //3005 m_environment.bypass_ready.setup(m_environment.time_sample_slow); //3006 m_environment.transformer_inv_over_temperature_alarm.setup(m_environment.time_sample_slow); //3007 m_environment.local_e_stop.setup(m_environment.time_sample_slow); //3008 m_environment.cabinet_door_interlocked.setup(m_environment.time_sample_slow); //3009 m_environment.arc_and_fire.setup(m_environment.time_sample_slow); //3010 m_environment.hw_dvr_ready.setup(m_environment.time_sample_slow); //3011 m_environment.auxiliary_km2.setup(m_environment.time_sample_slow); //3012 m_environment.auxiliary_km11.setup(m_environment.time_sample_slow); //3013 m_environment.transformer_t_over_temperature_fault.setup(m_environment.time_sample_slow); //3014 m_environment.control_power_supply_status.setup(m_environment.time_sample_slow); //3015 m_environment.auxiliary_km1.setup(m_environment.time_sample_slow); //3016 m_environment.auxiliary_km3.setup(m_environment.time_sample_slow); //3017 m_environment.transformer_inv_over_temperature_fault.setup(m_environment.time_sample_slow); //3018 m_environment.fan_fault.setup(m_environment.time_sample_slow); //3019 m_environment.local_remote.setup(m_environment.time_sample_slow); //3020 _status &= m_environment.remote_start.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3001 _status &= m_environment.remote_stop.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3002 _status &= m_environment.remote_reset.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3003 _status &= m_environment.remote_e_stop.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3004 _status &= m_environment.auxiliary_q1.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3005 _status &= m_environment.bypass_ready.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3006 _status &= m_environment.transformer_inv_over_temperature_alarm.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3007 _status &= m_environment.local_e_stop.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3008 _status &= m_environment.cabinet_door_interlocked.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3009 _status &= m_environment.arc_and_fire.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE);//3010 _status &= m_environment.hw_dvr_ready.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE);//3011 _status &= m_environment.auxiliary_km2.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE);//3012 _status &= m_environment.auxiliary_km11.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE);//3013 _status &= m_environment.transformer_t_over_temperature_fault.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE);//3014 _status &= m_environment.control_power_supply_status.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE);//3015 _status &= m_environment.auxiliary_km1.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3016 _status &= m_environment.auxiliary_km3.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3017 _status &= m_environment.transformer_inv_over_temperature_fault.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3018 _status &= m_environment.fan_fault.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3019 _status &= m_environment.local_remote.compare(FLTSYSLIB::DigitalInputAntiNoise::CONFIGURATE); //3020 //<> // // Phase Alarm Monitor // m_phase_alert_monitor.setup(m_environment.time_sample_slow); //<> // // FAN CONTROL // m_environment.fan_control.setup(m_environment.time_sample_slow); _status &= m_environment.fan_control.compare(SYSCTRL::FanTimerControl::CONFIGURATE); //<> // // RMS Filters // m_rms_filter_current_input_a.setup(m_environment.time_sample_additional); m_rms_filter_current_input_b.setup(m_environment.time_sample_additional); m_rms_filter_current_input_c.setup(m_environment.time_sample_additional); _status &= m_rms_filter_current_input_a.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_current_input_b.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_current_input_c.compare(FLTSYSLIB::RMS::CONFIGURATE); // m_rms_filter_current_cell_a.setup(m_environment.time_sample_additional); m_rms_filter_current_cell_b.setup(m_environment.time_sample_additional); m_rms_filter_current_cell_c.setup(m_environment.time_sample_additional); _status &= m_rms_filter_current_cell_a.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_current_cell_b.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_current_cell_c.compare(FLTSYSLIB::RMS::CONFIGURATE); // m_rms_filter_current_load_a.setup(m_environment.time_sample_additional); m_rms_filter_current_load_b.setup(m_environment.time_sample_additional); m_rms_filter_current_load_c.setup(m_environment.time_sample_additional); _status &= m_rms_filter_current_load_a.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_current_load_b.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_current_load_c.compare(FLTSYSLIB::RMS::CONFIGURATE); // m_rms_filter_voltage_input_a.setup(m_environment.time_sample_additional); m_rms_filter_voltage_input_b.setup(m_environment.time_sample_additional); m_rms_filter_voltage_input_c.setup(m_environment.time_sample_additional); _status &= m_rms_filter_voltage_input_a.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_voltage_input_b.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_voltage_input_c.compare(FLTSYSLIB::RMS::CONFIGURATE); // m_rms_filter_voltage_load_a.setup(m_environment.time_sample_additional); m_rms_filter_voltage_load_b.setup(m_environment.time_sample_additional); m_rms_filter_voltage_load_c.setup(m_environment.time_sample_additional); _status &= m_rms_filter_voltage_load_a.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_voltage_load_b.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_voltage_load_c.compare(FLTSYSLIB::RMS::CONFIGURATE); // m_rms_filter_current_bypass_a.setup(m_environment.time_sample_additional); m_rms_filter_current_bypass_b.setup(m_environment.time_sample_additional); m_rms_filter_current_bypass_c.setup(m_environment.time_sample_additional); _status &= m_rms_filter_current_bypass_a.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_current_bypass_b.compare(FLTSYSLIB::RMS::CONFIGURATE); _status &= m_rms_filter_current_bypass_c.compare(FLTSYSLIB::RMS::CONFIGURATE); //<> // // Zero Drift Analog Signals // m_zero_filter_voltage_input_a.setup(m_environment.time_sample_slow); m_zero_filter_voltage_input_b.setup(m_environment.time_sample_slow); m_zero_filter_voltage_input_c.setup(m_environment.time_sample_slow); _status &= m_zero_filter_voltage_input_a.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_voltage_input_b.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_voltage_input_c.compare(FLTSYSLIB::FilterForth::CONFIGURATE); // m_zero_filter_current_input_a.setup(m_environment.time_sample_slow); m_zero_filter_current_input_b.setup(m_environment.time_sample_slow); m_zero_filter_current_input_c.setup(m_environment.time_sample_slow); _status &= m_zero_filter_current_input_a.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_current_input_b.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_current_input_c.compare(FLTSYSLIB::FilterForth::CONFIGURATE); // m_zero_filter_current_cell_a.setup(m_environment.time_sample_slow); m_zero_filter_current_cell_b.setup(m_environment.time_sample_slow); m_zero_filter_current_cell_c.setup(m_environment.time_sample_slow); _status &= m_zero_filter_current_cell_a.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_current_cell_b.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_current_cell_c.compare(FLTSYSLIB::FilterForth::CONFIGURATE); // m_zero_filter_voltage_load_a.setup(m_environment.time_sample_slow); m_zero_filter_voltage_load_b.setup(m_environment.time_sample_slow); m_zero_filter_voltage_load_c.setup(m_environment.time_sample_slow); _status &= m_zero_filter_voltage_load_a.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_voltage_load_b.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_voltage_load_c.compare(FLTSYSLIB::FilterForth::CONFIGURATE); // m_zero_filter_current_load_a.setup(m_environment.time_sample_slow); m_zero_filter_current_load_b.setup(m_environment.time_sample_slow); m_zero_filter_current_load_c.setup(m_environment.time_sample_slow); _status &= m_zero_filter_current_load_a.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_current_load_b.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_current_load_c.compare(FLTSYSLIB::FilterForth::CONFIGURATE); // m_zero_filter_current_bypass_a.setup(m_environment.time_sample_slow); m_zero_filter_current_bypass_b.setup(m_environment.time_sample_slow); m_zero_filter_current_bypass_c.setup(m_environment.time_sample_slow); _status &= m_zero_filter_current_bypass_a.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_current_bypass_b.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_zero_filter_current_bypass_c.compare(FLTSYSLIB::FilterForth::CONFIGURATE); //<> // //Cell DC Voltage Filter // m_cell_dc_voltage_a_filter.setup(m_environment.time_sample_control); m_cell_dc_voltage_b_filter.setup(m_environment.time_sample_control); m_cell_dc_voltage_c_filter.setup(m_environment.time_sample_control); _status &= m_cell_dc_voltage_a_filter.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_cell_dc_voltage_b_filter.compare(FLTSYSLIB::FilterForth::CONFIGURATE); _status &= m_cell_dc_voltage_c_filter.compare(FLTSYSLIB::FilterForth::CONFIGURATE); //<> // // Signal Decompose // #if ( (TYPECONTROL == VECTORCONTROL) || (TYPECONTROL == DIRECTREVERSECONTROL) ) // m_decompose_voltage_input_a.setup(m_environment.time_sample_slow); m_decompose_voltage_input_b.setup(m_environment.time_sample_slow); m_decompose_voltage_input_c.setup(m_environment.time_sample_slow); // m_decompose_voltage_load_a.setup(m_environment.time_sample_slow); m_decompose_voltage_load_b.setup(m_environment.time_sample_slow); m_decompose_voltage_load_c.setup(m_environment.time_sample_slow); // m_decompose_current_load_a.setup(m_environment.time_sample_slow); m_decompose_current_load_b.setup(m_environment.time_sample_slow); m_decompose_current_load_c.setup(m_environment.time_sample_slow); // m_decompose_current_cell_a.setup(m_environment.time_sample_slow); m_decompose_current_cell_b.setup(m_environment.time_sample_slow); m_decompose_current_cell_c.setup(m_environment.time_sample_slow); // m_decompose_current_bypass_a.setup(m_environment.time_sample_slow); m_decompose_current_bypass_b.setup(m_environment.time_sample_slow); m_decompose_current_bypass_c.setup(m_environment.time_sample_slow); // #endif #if TYPECONTROL == SCALARCONTROL m_decompose_voltage_input_a.setup(m_environment.time_sample_control); m_decompose_voltage_input_b.setup(m_environment.time_sample_control); m_decompose_voltage_input_c.setup(m_environment.time_sample_control); // m_decompose_voltage_load_a.setup(m_environment.time_sample_control); m_decompose_voltage_load_b.setup(m_environment.time_sample_control); m_decompose_voltage_load_c.setup(m_environment.time_sample_control); // m_decompose_current_load_a.setup(m_environment.time_sample_control); m_decompose_current_load_b.setup(m_environment.time_sample_control); m_decompose_current_load_c.setup(m_environment.time_sample_control); // m_decompose_current_cell_a.setup(m_environment.time_sample_control); m_decompose_current_cell_b.setup(m_environment.time_sample_control); m_decompose_current_cell_c.setup(m_environment.time_sample_control); // m_decompose_current_bypass_a.setup(m_environment.time_sample_control); m_decompose_current_bypass_b.setup(m_environment.time_sample_control); m_decompose_current_bypass_c.setup(m_environment.time_sample_control); #endif //<> // // Relative Voltage Input // m_relative_filter_voltage_input_a.setup(m_system_setup.relative_voltage_input); m_relative_filter_voltage_input_b.setup(m_system_setup.relative_voltage_input); m_relative_filter_voltage_input_c.setup(m_system_setup.relative_voltage_input); _status &= m_relative_filter_voltage_input_a.compare(SYSCTRL::SignalRelative::CONFIGURATE); _status &= m_relative_filter_voltage_input_b.compare(SYSCTRL::SignalRelative::CONFIGURATE); _status &= m_relative_filter_voltage_input_c.compare(SYSCTRL::SignalRelative::CONFIGURATE); //<> // // PLL Input Voltage // m_pll_abc_input_voltage.setup(m_environment.time_sample_control); _status &= m_pll_abc_input_voltage.compare(FLTSYSLIB::PLLABCDVR::CONFIGURATE); //<> // // Generator ABC // m_environment.generator_abc.setup(m_environment.time_sample_control); //_status &= m_environment.generator_abc.compare(FLTSYSLIB::GeneratorABC::CONFIGURATE); //<> // // Reference PWM-Generator // //m_environment.generator_pwm.setup(m_environment.time_sample_control); //<> // // Harmonica Analyzer // m_voltage_input_a_harmonica_filter_5.setup(m_environment.time_sample_control); m_voltage_input_b_harmonica_filter_5.setup(m_environment.time_sample_control); m_voltage_input_c_harmonica_filter_5.setup(m_environment.time_sample_control); _status &= m_voltage_input_a_harmonica_filter_5.compare(FLTSYSLIB::HarmonicaFilter4Order::CONFIGURATE); _status &= m_voltage_input_b_harmonica_filter_5.compare(FLTSYSLIB::HarmonicaFilter4Order::CONFIGURATE); _status &= m_voltage_input_c_harmonica_filter_5.compare(FLTSYSLIB::HarmonicaFilter4Order::CONFIGURATE); //<> // // Regulators // #if TYPECONTROL == VECTORCONTROL m_environment.regulator_voltage_load_direct.setup(m_environment.time_sample_control); m_environment.regulator_voltage_load_quadrature.setup(m_environment.time_sample_control); _status &= m_environment.regulator_voltage_load_direct.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.regulator_voltage_load_quadrature.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.integrator_direct.setup(m_environment.time_sample_control); m_environment.integrator_quadrature.setup(m_environment.time_sample_control); _status &= m_environment.integrator_direct.compare(FLTSYSLIB::Integrator::CONFIGURATE); _status &= m_environment.integrator_quadrature.compare(FLTSYSLIB::Integrator::CONFIGURATE); // m_environment.reference_voltage_direct_intensity.setup(m_environment.time_sample_control); _status &= m_environment.reference_voltage_direct_intensity.compare(FLTSYSLIB::Filter::CONFIGURATE); // #if TYPECURRENTCONTROLLER == CURRENTCONTROLLER_PI m_environment.regulator_current_load_direct.setup(m_environment.time_sample_control); m_environment.regulator_current_load_quadrature.setup(m_environment.time_sample_control); _status &= m_environment.regulator_current_load_direct.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.regulator_current_load_quadrature.compare(FLTSYSLIB::PIController::CONFIGURATE); #endif // m_environment.referencer_current_bypass_direct.setup(m_environment.time_sample_control); m_environment.referencer_current_bypass_quadrature.setup(m_environment.time_sample_control); _status &= m_environment.referencer_current_bypass_direct.compare(FLTSYSLIB::IController::CONFIGURATE); _status &= m_environment.referencer_current_bypass_quadrature.compare(FLTSYSLIB::IController::CONFIGURATE); // m_environment.regulator_current_limit.setup(m_environment.time_sample_control); m_environment.regulator_current_pfc.setup(m_environment.time_sample_control); _status &= m_environment.regulator_current_limit.compare(FLTSYSLIB::IController::CONFIGURATE); _status &= m_environment.regulator_current_pfc.compare(FLTSYSLIB::PIController::CONFIGURATE); #endif #if TYPECONTROL == SCALARCONTROL #if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC m_environment.regulator_voltage_load_a_active.setup(m_environment.time_sample_control); m_environment.regulator_voltage_load_a_reactive.setup(m_environment.time_sample_control); _status &= m_environment.regulator_voltage_load_a_active.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.regulator_voltage_load_a_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.regulator_voltage_load_b_active.setup(m_environment.time_sample_control); m_environment.regulator_voltage_load_b_reactive.setup(m_environment.time_sample_control); _status &= m_environment.regulator_voltage_load_b_active.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.regulator_voltage_load_b_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.regulator_voltage_load_c_active.setup(m_environment.time_sample_control); m_environment.regulator_voltage_load_c_reactive.setup(m_environment.time_sample_control); _status &= m_environment.regulator_voltage_load_c_active.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.regulator_voltage_load_c_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE); #endif #if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS m_environment.reference_voltage_load_rms_intensity.setup(m_environment.time_sample_control); m_environment.regulator_voltage_load_rms.setup(m_environment.time_sample_control); _status &= m_environment.reference_voltage_load_rms_intensity.compare(FLTSYSLIB::Filter::CONFIGURATE); _status &= m_environment.regulator_voltage_load_rms.compare(FLTSYSLIB::IController::CONFIGURATE); #endif // m_environment.regulator_current_limit_a.setup(m_environment.time_sample_control); m_environment.regulator_current_pfc_a.setup(m_environment.time_sample_control); _status &= m_environment.regulator_current_limit_a.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.regulator_current_pfc_a.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.regulator_current_limit_b.setup(m_environment.time_sample_control); m_environment.regulator_current_pfc_b.setup(m_environment.time_sample_control); _status &= m_environment.regulator_current_limit_b.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.regulator_current_pfc_b.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.regulator_current_limit_c.setup(m_environment.time_sample_control); m_environment.regulator_current_pfc_c.setup(m_environment.time_sample_control); _status &= m_environment.regulator_current_limit_c.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.regulator_current_pfc_c.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.current_regulator_a_active.setup(m_environment.time_sample_control); m_environment.current_regulator_a_reactive.setup(m_environment.time_sample_control); _status &= m_environment.current_regulator_a_active.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.current_regulator_a_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.current_regulator_b_active.setup(m_environment.time_sample_control); m_environment.current_regulator_b_reactive.setup(m_environment.time_sample_control); _status &= m_environment.current_regulator_b_active.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.current_regulator_b_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.current_regulator_c_active.setup(m_environment.time_sample_control); m_environment.current_regulator_c_reactive.setup(m_environment.time_sample_control); _status &= m_environment.current_regulator_c_active.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.current_regulator_c_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.current_referencer_a_active.setup(m_environment.time_sample_control); m_environment.current_referencer_a_reactive.setup(m_environment.time_sample_control); _status &= m_environment.current_referencer_a_active.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.current_referencer_a_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.current_referencer_b_active.setup(m_environment.time_sample_control); m_environment.current_referencer_b_reactive.setup(m_environment.time_sample_control); _status &= m_environment.current_referencer_b_active.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.current_referencer_b_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.current_referencer_c_active.setup(m_environment.time_sample_control); m_environment.current_referencer_c_reactive.setup(m_environment.time_sample_control); _status &= m_environment.current_referencer_c_active.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.current_referencer_c_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE); // //m_environment.regulator_dc_a.setup(m_environment.time_sample_control); //m_environment.regulator_dc_b.setup(m_environment.time_sample_control); //m_environment.regulator_dc_c.setup(m_environment.time_sample_control); //_status &= m_environment.regulator_dc_a.compare(FLTSYSLIB::PIController::CONFIGURATE); //_status &= m_environment.regulator_dc_b.compare(FLTSYSLIB::PIController::CONFIGURATE); //_status &= m_environment.regulator_dc_c.compare(FLTSYSLIB::PIController::CONFIGURATE); #endif // //<> #if TYPECONTROL == DIRECTREVERSECONTROL // m_environment.drc_positive_voltage_controller_direct.setup(m_environment.time_sample_control); m_environment.drc_positive_voltage_controller_quadrature.setup(m_environment.time_sample_control); m_environment.drc_negative_voltage_controller_direct.setup(m_environment.time_sample_control); m_environment.drc_negative_voltage_controller_quadrature.setup(m_environment.time_sample_control); _status &= m_environment.drc_positive_voltage_controller_direct.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.drc_positive_voltage_controller_quadrature.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.drc_negative_voltage_controller_direct.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.drc_negative_voltage_controller_quadrature.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.drc_reference_voltage_direct_intensity.setup(m_environment.time_sample_control); _status &= m_environment.drc_reference_voltage_direct_intensity.compare(FLTSYSLIB::FilterSecond::CONFIGURATE); // m_environment.drc_regulator_current_load_direct.setup(m_environment.time_sample_control); m_environment.drc_regulator_current_load_quadrature.setup(m_environment.time_sample_control); _status &= m_environment.drc_regulator_current_load_direct.compare(FLTSYSLIB::PIController::CONFIGURATE); _status &= m_environment.drc_regulator_current_load_quadrature.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.drc_referencer_current_bypass_direct.setup(m_environment.time_sample_control); m_environment.drc_referencer_current_bypass_quadrature.setup(m_environment.time_sample_control); _status &= m_environment.drc_referencer_current_bypass_direct.compare(FLTSYSLIB::IController::CONFIGURATE); _status &= m_environment.drc_referencer_current_bypass_quadrature.compare(FLTSYSLIB::IController::CONFIGURATE); // m_environment.drc_regulator_current_limit.setup(m_environment.time_sample_control); m_environment.drc_regulator_current_pfc.setup(m_environment.time_sample_control); _status &= m_environment.drc_regulator_current_limit.compare(FLTSYSLIB::IController::CONFIGURATE); _status &= m_environment.drc_regulator_current_pfc.compare(FLTSYSLIB::PIController::CONFIGURATE); // m_environment.drc_direct_voltage_decomposer.setup(m_environment.time_sample_control); m_environment.drc_back_voltage_decomposer.setup(m_environment.time_sample_control); // #endif //<> // // Timers // m_environment.timer_start.setup(m_environment.time_sample_control); m_environment.timer_stop.setup(m_environment.time_sample_control); _status &= m_environment.timer_start.compare(FLTSYSLIB::FTimer::CONFIGURATE); _status &= m_environment.timer_stop.compare(FLTSYSLIB::FTimer::CONFIGURATE); //<> // // Contactor Control Fault // m_q1_control_fault.setup(m_environment.time_sample_slow); m_km1_control_fault.setup(m_environment.time_sample_slow); m_km2_control_fault.setup(m_environment.time_sample_slow); m_km3_control_fault.setup(m_environment.time_sample_slow); if(_status) { m_mode = SYSCTRL::SystemControl::CONFIGURATE; // m_environment.state_register.current.bit.stopped = 1; // m_environment.state_register.privious.bit.stopped = 1; // m_environment.state_register.shadow.bit.stopped = 1; m_algorithm_executed = m_algorithm.get_algorithm(); // }//if // }//if // }//setup() // void SystemControl::configure() { static bool _status = true; //if(m_mode == SYSCTRL::SystemControl::CONFIGURATE) { // // References // #if TYPECONTROL == VECTORCONTROL // m_environment.current_reference_limit = m_system_configuration.reference_current_limit_rms; m_environment.current_reference_pfc = m_system_configuration.reference_current_pfc_rms; // m_environment.voltage_reference_load_direct = m_system_configuration.reference_voltage_rms; m_environment.voltage_reference_limit_high = m_system_configuration.reference_voltage_high_limit_rms; m_environment.voltage_reference_load_quadrature = FP_ZERO; m_environment.voltage_reference_dc_cell = m_system_configuration.reference_voltage_dc; // _status &= (m_environment.current_reference_limit > FP_ZERO) ? true : false; _status &= (m_environment.voltage_reference_load_direct > FP_ZERO) ? true : false; _status &= (m_environment.voltage_reference_dc_cell > FP_ZERO) ? true : false; // #endif #if TYPECONTROL == SCALARCONTROL m_environment.phase_control.common_ref.current_limit_rms = m_system_configuration.reference_current_limit_rms; m_environment.phase_control.common_ref.current_limit_ampl = 1.41421 * m_environment.phase_control.common_ref.current_limit_rms; _status &= (m_environment.phase_control.common_ref.current_limit_rms > FP_ZERO) ? true : false; // m_environment.phase_control.common_ref.current_pfc_rms = m_system_configuration.reference_current_pfc_rms; m_environment.phase_control.common_ref.current_pfc_ampl = 1.41421 * m_environment.phase_control.common_ref.current_pfc_rms; // m_environment.phase_control.common_ref.voltage_module_rms = m_system_configuration.reference_voltage_rms; m_environment.phase_control.common_ref.voltage_module_ampl = 1.41421 * m_environment.phase_control.common_ref.voltage_module_rms; _status &= (m_environment.phase_control.common_ref.voltage_module_rms > FP_ZERO) ? true : false; // m_environment.phase_control.common_ref.voltage_dc = 5.0 * 950.0; #endif //<> // // Algorithm Control // m_environment.algorithm_control.all = m_system_configuration.algorithm_control.all; // preset control bits SYSCTRL::MonitorDigitalInputSignal::preset(m_environment.algorithm_control.signal.enable_current_limit, m_environment.enable_current_limit); SYSCTRL::MonitorDigitalInputSignal::preset(m_environment.algorithm_control.signal.enable_pfc, m_environment.enable_pfc); SYSCTRL::MonitorDigitalInputSignal::preset(m_environment.algorithm_control.signal.enable_harmonica, m_environment.enable_harmonica); SYSCTRL::MonitorDigitalInputSignal::preset(m_environment.algorithm_control.signal.enable_auto_offset, m_environment.enable_auto_offset); #if TYPECONTROL == SCALARCONTROL m_environment.phase_control.common_control_bit.signal.enable_current_limit = m_environment.enable_current_limit.signal.is_on; m_environment.phase_control.common_control_bit.signal.enable_pfc = m_environment.enable_pfc.signal.is_on; m_environment.phase_control.common_control_bit.signal.enable_harmonica = m_environment.enable_harmonica.signal.is_on; #endif //<> // // High Voltage Cell // m_environment.hardware.configure(m_system_configuration.hardware); _status &= (m_environment.hardware.level >= 1) && (m_environment.hardware.level <= 8) ? true : false; // m_environment.m_minimal_input_voltage_level = m_system_configuration.minimal_input_voltage_level; // _status &= m_environment.m_minimal_input_voltage_level > FP_ZERO ? true : false; // // Scale Analog Signals Setup // m_environment.scale_voltage_grid_a = m_system_configuration.scale_voltage_input_a; m_environment.scale_voltage_grid_b = m_system_configuration.scale_voltage_input_b; m_environment.scale_voltage_grid_c = m_system_configuration.scale_voltage_input_c; _status &= m_environment.scale_voltage_grid_a > FP_ZERO ? true : false; _status &= m_environment.scale_voltage_grid_b > FP_ZERO ? true : false; _status &= m_environment.scale_voltage_grid_c > FP_ZERO ? true : false; // m_environment.scale_current_input_a = m_system_configuration.scale_current_input_a; m_environment.scale_current_input_b = m_system_configuration.scale_current_input_b; m_environment.scale_current_input_c = m_system_configuration.scale_current_input_c; _status &= m_environment.scale_current_input_a > FP_ZERO ? true : false; _status &= m_environment.scale_current_input_b > FP_ZERO ? true : false; _status &= m_environment.scale_current_input_c > FP_ZERO ? true : false; // m_environment.scale_voltage_load_a = m_system_configuration.scale_voltage_load_a; m_environment.scale_voltage_load_b = m_system_configuration.scale_voltage_load_b; m_environment.scale_voltage_load_c = m_system_configuration.scale_voltage_load_c; _status &= m_environment.scale_voltage_load_a > FP_ZERO ? true : false; _status &= m_environment.scale_voltage_load_b > FP_ZERO ? true : false; _status &= m_environment.scale_voltage_load_c > FP_ZERO ? true : false; // m_environment.scale_current_load_a = m_system_configuration.scale_current_load_a; m_environment.scale_current_load_b = m_system_configuration.scale_current_load_b; m_environment.scale_current_load_c = m_system_configuration.scale_current_load_c; _status &= m_environment.scale_current_load_a > FP_ZERO ? true : false; _status &= m_environment.scale_current_load_b > FP_ZERO ? true : false; _status &= m_environment.scale_current_load_c > FP_ZERO ? true : false; // m_environment.scale_current_cell_a = m_system_configuration.scale_current_cell_a; m_environment.scale_current_cell_b = m_system_configuration.scale_current_cell_b; m_environment.scale_current_cell_c = m_system_configuration.scale_current_cell_c; _status &= m_environment.scale_current_cell_a > FP_ZERO ? true : false; _status &= m_environment.scale_current_cell_b > FP_ZERO ? true : false; _status &= m_environment.scale_current_cell_c > FP_ZERO ? true : false; // m_environment.scale_current_bypass_a = m_system_configuration.scale_current_bypass_a; m_environment.scale_current_bypass_b = m_system_configuration.scale_current_bypass_b; m_environment.scale_current_bypass_c = m_system_configuration.scale_current_bypass_c; _status &= m_environment.scale_current_bypass_a > FP_ZERO ? true : false; _status &= m_environment.scale_current_bypass_b > FP_ZERO ? true : false; _status &= m_environment.scale_current_bypass_c > FP_ZERO ? true : false; //<> // // Static Offset of Analog Signals // m_environment.offset_voltage_grid_static_a = FP_ZERO; m_environment.offset_voltage_grid_static_b = FP_ZERO; m_environment.offset_voltage_grid_static_c = FP_ZERO; // m_environment.offset_current_input_static_a = FP_ZERO; m_environment.offset_current_input_static_b = FP_ZERO; m_environment.offset_current_input_static_c = FP_ZERO; // m_environment.offset_current_cell_static_a = FP_ZERO; m_environment.offset_current_cell_static_b = FP_ZERO; m_environment.offset_current_cell_static_c = FP_ZERO; // m_environment.offset_voltage_load_static_a = FP_ZERO; m_environment.offset_voltage_load_static_b = FP_ZERO; m_environment.offset_voltage_load_static_c = FP_ZERO; // m_environment.offset_current_load_static_a = FP_ZERO; m_environment.offset_current_load_static_b = FP_ZERO; m_environment.offset_current_load_static_c = FP_ZERO; // m_environment.offset_current_bypass_static_a = FP_ZERO; m_environment.offset_current_bypass_static_b = FP_ZERO; m_environment.offset_current_bypass_static_c = FP_ZERO; //<> // // RMS Filters Setup // m_rms_filter_current_input_a.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_current_input_b.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_current_input_c.configure(m_system_configuration.rms_filter_analog_signal); _status &= m_rms_filter_current_input_a.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_current_input_b.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_current_input_c.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); // m_rms_filter_current_cell_a.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_current_cell_b.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_current_cell_c.configure(m_system_configuration.rms_filter_analog_signal); _status &= m_rms_filter_current_cell_a.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_current_cell_b.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_current_cell_c.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); m_rms_filter_current_load_a.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_current_load_b.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_current_load_c.configure(m_system_configuration.rms_filter_analog_signal); _status &= m_rms_filter_current_load_a.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_current_load_b.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_current_load_c.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); m_rms_filter_voltage_input_a.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_voltage_input_b.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_voltage_input_c.configure(m_system_configuration.rms_filter_analog_signal); _status &= m_rms_filter_voltage_input_a.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_voltage_input_b.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_voltage_input_c.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); // m_rms_filter_voltage_load_a.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_voltage_load_b.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_voltage_load_c.configure(m_system_configuration.rms_filter_analog_signal); _status &= m_rms_filter_voltage_load_a.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_voltage_load_b.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_voltage_load_c.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); // m_rms_filter_current_bypass_a.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_current_bypass_b.configure(m_system_configuration.rms_filter_analog_signal); m_rms_filter_current_bypass_c.configure(m_system_configuration.rms_filter_analog_signal); _status &= m_rms_filter_current_bypass_a.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_current_bypass_b.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); _status &= m_rms_filter_current_bypass_c.compare(FLTSYSLIB::RMSFSO::OPERATIONAL); //<> // // Algorithm // m_algorithm.configure(); _status &= m_algorithm.compare(SYSCTRL::AlgorithmContext::OPERATIONAL); //<> // // Zero Drift Current Input // m_zero_filter_voltage_input_a.configure(m_system_configuration.zero_filter); m_zero_filter_voltage_input_b.configure(m_system_configuration.zero_filter); m_zero_filter_voltage_input_c.configure(m_system_configuration.zero_filter); _status &= m_zero_filter_voltage_input_a.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_voltage_input_b.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_voltage_input_c.compare(FLTSYSLIB::FilterForth::OPERATIONAL); // m_zero_filter_current_input_a.configure(m_system_configuration.zero_filter); m_zero_filter_current_input_b.configure(m_system_configuration.zero_filter); m_zero_filter_current_input_c.configure(m_system_configuration.zero_filter); _status &= m_zero_filter_current_input_a.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_current_input_b.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_current_input_c.compare(FLTSYSLIB::FilterForth::OPERATIONAL); // m_zero_filter_current_cell_a.configure(m_system_configuration.zero_filter); m_zero_filter_current_cell_b.configure(m_system_configuration.zero_filter); m_zero_filter_current_cell_c.configure(m_system_configuration.zero_filter); _status &= m_zero_filter_current_cell_a.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_current_cell_b.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_current_cell_c.compare(FLTSYSLIB::FilterForth::OPERATIONAL); // m_zero_filter_voltage_load_a.configure(m_system_configuration.zero_filter); m_zero_filter_voltage_load_b.configure(m_system_configuration.zero_filter); m_zero_filter_voltage_load_c.configure(m_system_configuration.zero_filter); _status &= m_zero_filter_voltage_load_a.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_voltage_load_b.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_voltage_load_c.compare(FLTSYSLIB::FilterForth::OPERATIONAL); // m_zero_filter_current_load_a.configure(m_system_configuration.zero_filter); m_zero_filter_current_load_b.configure(m_system_configuration.zero_filter); m_zero_filter_current_load_c.configure(m_system_configuration.zero_filter); _status &= m_zero_filter_current_load_a.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_current_load_b.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_current_load_c.compare(FLTSYSLIB::FilterForth::OPERATIONAL); // m_zero_filter_current_bypass_a.configure(m_system_configuration.zero_filter); m_zero_filter_current_bypass_b.configure(m_system_configuration.zero_filter); m_zero_filter_current_bypass_c.configure(m_system_configuration.zero_filter); _status &= m_zero_filter_current_bypass_a.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_current_bypass_b.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_zero_filter_current_bypass_c.compare(FLTSYSLIB::FilterForth::OPERATIONAL); //<> // // Cell DC Voltage Filter // m_cell_dc_voltage_a_filter.configure(m_system_configuration.cell_dc_voltage_filter); m_cell_dc_voltage_b_filter.configure(m_system_configuration.cell_dc_voltage_filter); m_cell_dc_voltage_c_filter.configure(m_system_configuration.cell_dc_voltage_filter); _status &= m_cell_dc_voltage_a_filter.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_cell_dc_voltage_b_filter.compare(FLTSYSLIB::FilterForth::OPERATIONAL); _status &= m_cell_dc_voltage_c_filter.compare(FLTSYSLIB::FilterForth::OPERATIONAL); //<> // // Relative // m_relative_filter_voltage_input_a.configure(m_system_configuration.relative_voltage_input); m_relative_filter_voltage_input_b.configure(m_system_configuration.relative_voltage_input); m_relative_filter_voltage_input_c.configure(m_system_configuration.relative_voltage_input); _status &= m_relative_filter_voltage_input_a.compare(SYSCTRL::SignalRelative::OPERATIONAL); _status &= m_relative_filter_voltage_input_b.compare(SYSCTRL::SignalRelative::OPERATIONAL); _status &= m_relative_filter_voltage_input_c.compare(SYSCTRL::SignalRelative::OPERATIONAL); //<> // // PLL ABC // m_pll_abc_input_voltage.configure(m_system_configuration.pll_abc_input_voltage); _status &= m_pll_abc_input_voltage.compare(FLTSYSLIB::PLLABCDVR::OPERATIONAL); //<> // // Signal Decompose // m_decompose_voltage_input_a.configure(m_system_configuration.signal_decompose); m_decompose_voltage_input_b.configure(m_system_configuration.signal_decompose); m_decompose_voltage_input_c.configure(m_system_configuration.signal_decompose); // #if (TYPECONTROL == SCALARCONTROL) #if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_DIFFICULT m_decompose_voltage_load_a.configure(m_system_configuration.signal_decompose); m_decompose_voltage_load_b.configure(m_system_configuration.signal_decompose); m_decompose_voltage_load_c.configure(m_system_configuration.signal_decompose); #endif #if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_SIMPLE m_decompose_voltage_load_a.configure(m_system_configuration.voltage_decompose); m_decompose_voltage_load_b.configure(m_system_configuration.voltage_decompose); m_decompose_voltage_load_c.configure(m_system_configuration.voltage_decompose); #endif #endif #if (TYPECONTROL == VECTORCONTROL) || (TYPECONTROL == DIRECTREVERSECONTROL) m_decompose_voltage_load_a.configure(m_system_configuration.signal_decompose); m_decompose_voltage_load_b.configure(m_system_configuration.signal_decompose); m_decompose_voltage_load_c.configure(m_system_configuration.signal_decompose); #endif // m_decompose_current_load_a.configure(m_system_configuration.signal_decompose); m_decompose_current_load_b.configure(m_system_configuration.signal_decompose); m_decompose_current_load_c.configure(m_system_configuration.signal_decompose); // m_decompose_current_cell_a.configure(m_system_configuration.signal_decompose); m_decompose_current_cell_b.configure(m_system_configuration.signal_decompose); m_decompose_current_cell_c.configure(m_system_configuration.signal_decompose); // m_decompose_current_bypass_a.configure(m_system_configuration.signal_decompose); m_decompose_current_bypass_b.configure(m_system_configuration.signal_decompose); m_decompose_current_bypass_c.configure(m_system_configuration.signal_decompose); //<> // // DIGITAL INPUTS // m_environment.remote_start.configure(m_system_configuration.digital_input_config); //3001 m_environment.remote_stop.configure(m_system_configuration.digital_input_config); //3002 m_environment.remote_reset.configure(m_system_configuration.digital_input_config); //3003 m_environment.remote_e_stop.configure(m_system_configuration.digital_input_config); //3004 m_environment.auxiliary_q1.configure(m_system_configuration.digital_input_config); //3005 m_environment.bypass_ready.configure(m_system_configuration.digital_input_config); //3006 m_environment.transformer_inv_over_temperature_alarm.configure(m_system_configuration.digital_input_config); //3007 m_environment.local_e_stop.configure(m_system_configuration.digital_input_config); //3008 m_environment.cabinet_door_interlocked.configure(m_system_configuration.digital_input_config); //3009 m_environment.arc_and_fire.configure(m_system_configuration.digital_input_config);//3010 m_environment.hw_dvr_ready.configure(m_system_configuration.digital_input_config); //3011 m_environment.auxiliary_km2.configure(m_system_configuration.digital_input_config); //3012 m_environment.auxiliary_km11.configure(m_system_configuration.digital_input_config); //3013 m_environment.transformer_t_over_temperature_fault.configure(m_system_configuration.digital_input_config);//3014 m_environment.control_power_supply_status.configure(m_system_configuration.digital_input_config);//3015 m_environment.auxiliary_km1.configure(m_system_configuration.digital_input_config); //3016 m_environment.auxiliary_km3.configure(m_system_configuration.digital_input_config); //3017 m_environment.transformer_inv_over_temperature_fault.configure(m_system_configuration.digital_input_config); //3018 m_environment.fan_fault.configure(m_system_configuration.digital_input_config); //3019 m_environment.local_remote.configure(m_system_configuration.digital_input_config); //3020 _status &= m_environment.remote_start.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3001 _status &= m_environment.remote_stop.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3002 _status &= m_environment.remote_reset.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3003 _status &= m_environment.remote_e_stop.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3004 _status &= m_environment.auxiliary_q1.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3005 _status &= m_environment.bypass_ready.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3006 _status &= m_environment.transformer_inv_over_temperature_alarm.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3007 _status &= m_environment.local_e_stop.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3008 _status &= m_environment.cabinet_door_interlocked.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3009 _status &= m_environment.arc_and_fire.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL);//3010 _status &= m_environment.hw_dvr_ready.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3011 _status &= m_environment.auxiliary_km2.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3012 _status &= m_environment.auxiliary_km11.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3013 _status &= m_environment.transformer_t_over_temperature_fault.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL);//3014 _status &= m_environment.control_power_supply_status.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL);//3015 _status &= m_environment.auxiliary_km1.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3016 _status &= m_environment.auxiliary_km3.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3017 _status &= m_environment.transformer_inv_over_temperature_fault.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3018 _status &= m_environment.fan_fault.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3019 _status &= m_environment.local_remote.compare(FLTSYSLIB::DigitalInputAntiNoise::OPERATIONAL); //3020 //<> // // Phase Alarm monitor // m_phase_alert_monitor.configure(m_system_configuration.phase_alert_monitor); //<> // // FAN CONTROL // m_environment.fan_control.configure(m_system_configuration.fan_control); _status &= m_environment.fan_control.compare(SYSCTRL::FanTimerControl::OPERATIONAL); //<> // // Generator ABC // m_environment.generator_abc.configure(m_system_configuration.generator_abc); //_status &= m_environment.generator_abc.compare(FLTSYSLIB::GeneratorABC::OPERATIONAL); //<> // // Algorithm Source References // m_environment.algorithm_source_references = m_system_configuration.algorithm_source_references; // // Reference PWM-Generator // //m_environment.generator_pwm.configure(m_system_configuration.generator_pwm); //<> // // Harmonica Analyzer // m_voltage_input_a_harmonica_filter_5.configure(m_system_configuration.ph_harmonica_5); m_voltage_input_b_harmonica_filter_5.configure(m_system_configuration.ph_harmonica_5); m_voltage_input_c_harmonica_filter_5.configure(m_system_configuration.ph_harmonica_5); _status &= m_voltage_input_a_harmonica_filter_5.compare(FLTSYSLIB::HarmonicaFilter4Order::OPERATIONAL); _status &= m_voltage_input_b_harmonica_filter_5.compare(FLTSYSLIB::HarmonicaFilter4Order::OPERATIONAL); _status &= m_voltage_input_c_harmonica_filter_5.compare(FLTSYSLIB::HarmonicaFilter4Order::OPERATIONAL); //<> // // Regulators // #if TYPECONTROL == VECTORCONTROL m_environment.regulator_voltage_load_direct.configure(m_system_configuration.regulator_voltage_load_dq); m_environment.regulator_voltage_load_quadrature.configure(m_system_configuration.regulator_voltage_load_dq); _status &= m_environment.regulator_voltage_load_direct.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.regulator_voltage_load_quadrature.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.integrator_direct.configure(m_system_configuration.integrator_voltage_dq); m_environment.integrator_quadrature.configure(m_system_configuration.integrator_voltage_dq); _status &= m_environment.integrator_direct.compare(FLTSYSLIB::Integrator::OPERATIONAL); _status &= m_environment.integrator_quadrature.compare(FLTSYSLIB::Integrator::OPERATIONAL); // m_environment.reference_voltage_direct_intensity.configure(m_system_configuration.reference_voltage_dq_intensity); _status &= m_environment.reference_voltage_direct_intensity.compare(FLTSYSLIB::Filter::OPERATIONAL); // #if TYPECURRENTCONTROLLER == CURRENTCONTROLLER_P m_environment.regulator_current_load_direct.configure(m_system_configuration.regulator_current_load_dq); m_environment.regulator_current_load_quadrature.configure(m_system_configuration.regulator_current_load_dq); _status &= m_environment.regulator_current_load_direct.compare(FLTSYSLIB::PController::OPERATIONAL); _status &= m_environment.regulator_current_load_quadrature.compare(FLTSYSLIB::PController::OPERATIONAL); #endif #if TYPECURRENTCONTROLLER == CURRENTCONTROLLER_PI m_environment.regulator_current_load_direct.configure(m_system_configuration.regulator_current_load_dq); m_environment.regulator_current_load_quadrature.configure(m_system_configuration.regulator_current_load_dq); _status &= m_environment.regulator_current_load_direct.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.regulator_current_load_quadrature.compare(FLTSYSLIB::PIController::OPERATIONAL); #endif // m_environment.referencer_current_bypass_direct.configure(m_system_configuration.referencer_current_bypass_dq); m_environment.referencer_current_bypass_quadrature.configure(m_system_configuration.referencer_current_bypass_dq); _status &= m_environment.referencer_current_bypass_direct.compare(FLTSYSLIB::IController::OPERATIONAL); _status &= m_environment.referencer_current_bypass_quadrature.compare(FLTSYSLIB::IController::OPERATIONAL); // m_system_configuration.regulator_current_limit.low_saturation = m_environment.voltage_reference_load_direct * 0.57735; m_system_configuration.regulator_current_limit.high_saturation = m_environment.voltage_reference_limit_high * 0.57735; m_environment.regulator_current_limit.configure(m_system_configuration.regulator_current_limit); m_environment.regulator_current_pfc.configure(m_system_configuration.regulator_current_pfc); _status &= m_environment.regulator_current_limit.compare(FLTSYSLIB::IController::OPERATIONAL); _status &= m_environment.regulator_current_pfc.compare(FLTSYSLIB::PIController::OPERATIONAL); #endif #if TYPECONTROL == SCALARCONTROL #if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC m_environment.regulator_voltage_load_a_reactive.configure(m_system_configuration.regulator_voltage_load_active_reactive); _status &= m_environment.regulator_voltage_load_a_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL); m_environment.regulator_voltage_load_b_reactive.configure(m_system_configuration.regulator_voltage_load_active_reactive); _status &= m_environment.regulator_voltage_load_b_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL); m_environment.regulator_voltage_load_c_reactive.configure(m_system_configuration.regulator_voltage_load_active_reactive); _status &= m_environment.regulator_voltage_load_c_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_system_configuration.regulator_voltage_load_active_reactive.low_saturation = FP_ZERO; m_environment.regulator_voltage_load_a_active.configure(m_system_configuration.regulator_voltage_load_active_reactive); _status &= m_environment.regulator_voltage_load_a_active.compare(FLTSYSLIB::PIController::OPERATIONAL); m_environment.regulator_voltage_load_b_active.configure(m_system_configuration.regulator_voltage_load_active_reactive); _status &= m_environment.regulator_voltage_load_b_active.compare(FLTSYSLIB::PIController::OPERATIONAL); m_environment.regulator_voltage_load_c_active.configure(m_system_configuration.regulator_voltage_load_active_reactive); _status &= m_environment.regulator_voltage_load_c_active.compare(FLTSYSLIB::PIController::OPERATIONAL); #endif #if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS m_environment.reference_voltage_load_rms_intensity.configure(m_system_configuration.reference_voltage_load_rms_intensity); m_environment.regulator_voltage_load_rms.configure(m_system_configuration.regulator_voltage_load_rms); _status &= m_environment.reference_voltage_load_rms_intensity.compare(FLTSYSLIB::Filter::OPERATIONAL); _status &= m_environment.regulator_voltage_load_rms.compare(FLTSYSLIB::IController::OPERATIONAL); #endif // //m_system_configuration.regulator_current_limit.high_saturation = m_system_configuration.reference_voltage_rms; //m_system_configuration.regulator_current_limit.low_saturation = FP_ZERO; //m_system_configuration.regulator_current_pfc.high_saturation = m_system_configuration.reference_voltage_rms; //m_system_configuration.regulator_current_pfc.low_saturation = -m_system_configuration.reference_voltage_rms; m_environment.regulator_current_limit_a.configure(m_system_configuration.regulator_current_limit); m_environment.regulator_current_pfc_a.configure(m_system_configuration.regulator_current_pfc); _status &= m_environment.regulator_current_limit_a.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.regulator_current_pfc_a.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.regulator_current_limit_b.configure(m_system_configuration.regulator_current_limit); m_environment.regulator_current_pfc_b.configure(m_system_configuration.regulator_current_pfc); _status &= m_environment.regulator_current_limit_b.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.regulator_current_pfc_b.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.regulator_current_limit_c.configure(m_system_configuration.regulator_current_limit); m_environment.regulator_current_pfc_c.configure(m_system_configuration.regulator_current_pfc); _status &= m_environment.regulator_current_limit_c.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.regulator_current_pfc_c.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.current_regulator_a_active.configure(m_system_configuration.current_regulator_active); m_environment.current_regulator_a_reactive.configure(m_system_configuration.current_regulator_reactive); _status &= m_environment.current_regulator_a_active.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.current_regulator_a_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.current_regulator_b_active.configure(m_system_configuration.current_regulator_active); m_environment.current_regulator_b_reactive.configure(m_system_configuration.current_regulator_reactive); _status &= m_environment.current_regulator_b_active.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.current_regulator_b_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.current_regulator_c_active.configure(m_system_configuration.current_regulator_active); m_environment.current_regulator_c_reactive.configure(m_system_configuration.current_regulator_reactive); _status &= m_environment.current_regulator_c_active.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.current_regulator_c_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.current_referencer_a_active.configure(m_system_configuration.current_referencer); m_environment.current_referencer_a_reactive.configure(m_system_configuration.current_referencer); _status &= m_environment.current_referencer_a_active.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.current_referencer_a_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.current_referencer_b_active.configure(m_system_configuration.current_referencer); m_environment.current_referencer_b_reactive.configure(m_system_configuration.current_referencer); _status &= m_environment.current_referencer_b_active.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.current_referencer_b_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.current_referencer_c_active.configure(m_system_configuration.current_referencer); m_environment.current_referencer_c_reactive.configure(m_system_configuration.current_referencer); _status &= m_environment.current_referencer_c_active.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.current_referencer_c_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL); // //m_system_configuration.regulator_dc_voltage.low_saturation = - m_environment.phase_control.common_ref.voltage_module_rms; //m_environment.regulator_dc_a.configure(m_system_configuration.regulator_dc_voltage); //m_environment.regulator_dc_b.configure(m_system_configuration.regulator_dc_voltage); //m_environment.regulator_dc_c.configure(m_system_configuration.regulator_dc_voltage); //_status &= m_environment.regulator_dc_a.compare(FLTSYSLIB::PIController::OPERATIONAL); //_status &= m_environment.regulator_dc_b.compare(FLTSYSLIB::PIController::OPERATIONAL); //_status &= m_environment.regulator_dc_c.compare(FLTSYSLIB::PIController::OPERATIONAL); #endif //<> #if TYPECONTROL == DIRECTREVERSECONTROL // m_environment.drc_positive_voltage_controller_direct.configure(m_system_configuration.drc_voltage_controller); m_environment.drc_positive_voltage_controller_quadrature.configure(m_system_configuration.drc_voltage_controller); m_environment.drc_negative_voltage_controller_direct.configure(m_system_configuration.drc_voltage_controller); m_environment.drc_negative_voltage_controller_quadrature.configure(m_system_configuration.drc_voltage_controller); _status &= m_environment.drc_positive_voltage_controller_direct.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.drc_positive_voltage_controller_quadrature.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.drc_negative_voltage_controller_direct.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.drc_negative_voltage_controller_quadrature.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.drc_reference_voltage_direct_intensity.configure(m_system_configuration.drc_reference_voltage_direct_intensity); _status &= m_environment.drc_reference_voltage_direct_intensity.compare(FLTSYSLIB::FilterSecond::OPERATIONAL); // m_environment.drc_regulator_current_load_direct.configure(m_system_configuration.drc_regulator_current_load); m_environment.drc_regulator_current_load_quadrature.configure(m_system_configuration.drc_regulator_current_load); _status &= m_environment.drc_regulator_current_load_direct.compare(FLTSYSLIB::PIController::OPERATIONAL); _status &= m_environment.drc_regulator_current_load_quadrature.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.drc_referencer_current_bypass_direct.configure(m_system_configuration.drc_referencer_current_bypass); m_environment.drc_referencer_current_bypass_quadrature.configure(m_system_configuration.drc_referencer_current_bypass); _status &= m_environment.drc_referencer_current_bypass_direct.compare(FLTSYSLIB::IController::OPERATIONAL); _status &= m_environment.drc_referencer_current_bypass_quadrature.compare(FLTSYSLIB::IController::OPERATIONAL); // m_environment.drc_regulator_current_limit.configure(m_system_configuration.drc_regulator_current_limit); m_environment.drc_regulator_current_pfc.configure(m_system_configuration.drc_regulator_current_pfc); _status &= m_environment.drc_regulator_current_limit.compare(FLTSYSLIB::IController::OPERATIONAL); _status &= m_environment.drc_regulator_current_pfc.compare(FLTSYSLIB::PIController::OPERATIONAL); // m_environment.drc_direct_voltage_decomposer.configure(m_system_configuration.drc_voltage_decomposer); m_environment.drc_back_voltage_decomposer.configure(m_system_configuration.drc_voltage_decomposer); // #endif //<> // // Timers // m_environment.timer_start.configure(m_system_configuration.timer_start); m_environment.timer_stop.configure(m_system_configuration.timer_stop); _status &= m_environment.timer_start.compare(FLTSYSLIB::FTimer::OPERATIONAL); _status &= m_environment.timer_stop.compare(FLTSYSLIB::FTimer::OPERATIONAL); //<> m_environment.digital_input_debug.all = (uint32_t)0; // // Scale Compute // m_environment.scale_compute_voltage_command.all = 0; m_environment.scale_compute_current_command.all = 0; m_environment.scale_compute_voltage_input.set_enable(); m_environment.scale_compute_voltage_load.set_enable(); m_environment.scale_compute_current_input.set_enable(); m_environment.scale_compute_current_cell.set_enable(); m_environment.scale_compute_current_load.set_enable(); m_environment.scale_compute_current_bypass.set_enable(); //<> //m_environment.digital_output_temp.all = 0xFFFFFFFF; m_environment.digital_output_temp.all = (uint32_t)0; SYSCTRL::TriggerRegister::clear(m_enable_work_trigger); SYSCTRL::TriggerRegister::clear(m_system_fault_trigger); SYSCTRL::TriggerRegister::clear(m_q1_control_trigger); SYSCTRL::TriggerRegister::clear(m_km1_control_trigger); SYSCTRL::TriggerRegister::clear(m_km2_control_trigger); SYSCTRL::TriggerRegister::clear(m_km3_control_trigger); SYSCTRL::TriggerRegister::clear(m_km11_control_on_off_trigger); SYSCTRL::TriggerRegister::clear(m_km11t_control_on_trigger); SYSCTRL::TriggerRegister::clear(m_km11t_control_off_trigger); SYSCTRL::TriggerRegister::clear(m_km1_external_command_trigger); SYSCTRL::TriggerRegister::clear(m_km3_external_command_trigger); SYSCTRL::TriggerRegister::clear(m_q1_external_command_trigger); SYSCTRL::TriggerRegister::clear(m_vs_protection_control_trigger); //m_environment.gen_symm_comp_inp_volt.configure(m_system_configuration.gen_inp_volt); //m_environment.gen_symm_comp_out_volt.configure(m_system_configuration.gen_out_volt); //m_environment.gen_symm_comp_out_current.configure(m_system_configuration.gen_out_current); //m_environment.gen_symm_comp_input_current.configure(m_system_configuration.gen_input_current); //m_environment.gen_symm_comp_bypass_current.configure(m_system_configuration.gen_bypass_current); //m_environment.gen_symm_comp_cell_current.configure(m_system_configuration.gen_cell_current); // // Contactor Control Fault // m_q1_control_fault.configure(m_system_configuration.contactor); m_km1_control_fault.configure(m_system_configuration.contactor); m_km2_control_fault.configure(m_system_configuration.contactor); m_km3_control_fault.configure(m_system_configuration.contactor); //<> // // RUBUS Configuration // _modbusrtu_rubus_configurate(); //<> if(_status) { m_mode = SYSCTRL::SystemControl::OPERATIONAL; _slow_loop_execute = &SYSCTRL::SystemControl::_slow_loop_operational; _execute_additional = &SYSCTRL::SystemControl::_additional_operational; _execute = &SYSCTRL::SystemControl::_execute_operational; m_algorithm.set_strategy_off(); m_algorithm.set_off(); m_algorithm_executed = m_algorithm.get_algorithm(); // // Response To Monitor // m_test_read_word.bit32.b00 = 1; //<> // }//if }//if // }//configure() // //#pragma FUNC_ALWAYS_INLINE void SystemControl::reload() { if(m_fram_db.is_free()) { TRAPSWRST; // }//if // }// // } /* namespace SYSCTRL */