/* * SystemControlMODBUSRTU.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "SYSCTRL/SystemControl.h" namespace SYSCTRL { #pragma CODE_SECTION("ramfuncs"); void SystemControl::inc_break_counter() { m_modbus_break_counter++; // }// // #pragma CODE_SECTION("ramfuncs"); void SystemControl::set_break_counter(Uint16 count) { m_modbus_break_counter = count; // }// // //#pragma CODE_SECTION("ramfuncs"); void SystemControl::modbusrtu_rubus_interface(Uint16 rdReg[], Uint16 wrReg[]) { // // Accept data m_rubus.response_shadow.command.all = 0; m_rubus.accepted.command_start.all = wrReg[1]; m_rubus.accepted.id.byte.bt1 = m_rubus.accepted.command_start.byte.bt1; m_rubus.accepted.com.byte.bt0 = m_rubus.accepted.command_start.byte.bt0; m_rubus.accepted.index = wrReg[2]; m_environment.external_command_word.all = (uint16_t)wrReg[6]; if(m_rubus.accepted.command_start.all == 0) { //command reset m_rubus.accepted.command_end.all = 0x0000; m_rubus.accepted.com.all = 0x0000; m_rubus.accepted.data.word.wL.all = 0x0000; m_rubus.accepted.data.word.wH.all = 0x0000; m_rubus.accepted.id.all = 0x0000; m_rubus.accepted.index = 0x0000; m_rubus.response_shadow.command.all = 0x0000; m_rubus.response_shadow.index = 0x0000; m_rubus.response_shadow.data.word.wL.all = 0x0000; m_rubus.response_shadow.data.word.wH.all = 0x0000; m_rubus.mode = MODBUSRTU::RUBUS::RUBUS_RESET; } else { // not reset // if(m_rubus.accepted.com.bit.b00 == 0) { // highly likely command is read m_rubus.accepted.data.all = (uint32_t)0; m_rubus.accepted.command_end.all = wrReg[3]; // } else { // highly likely command is write m_rubus.accepted.data.word.wL.all = wrReg[3]; m_rubus.accepted.data.word.wH.all = wrReg[4]; m_rubus.accepted.command_end.all = wrReg[5]; // }//if else // if(m_rubus.accepted.command_start.all == m_rubus.accepted.command_end.all) { if((m_rubus.accepted.index != 0)&&(m_rubus.accepted.index <= m_rubus.size)) { // command & index is valid // if(m_rubus.accepted.com.bit.b00 == 0) { //command is read m_rubus.mode = MODBUSRTU::RUBUS::RUBUS_READ; } else { //command is write m_rubus.mode = MODBUSRTU::RUBUS::RUBUS_WRITE; // }//if else _modbusrtu_rubus_read_write_register(); // } else { // index is not valid // error - wrong index m_rubus.mode = MODBUSRTU::RUBUS::RUBUS_ERROR; // }//if else // } else { // command is not valid // error - wrong command m_rubus.mode = MODBUSRTU::RUBUS::RUBUS_RESET; // }//if else // }//if else // switch(m_rubus.mode) { case MODBUSRTU::RUBUS::RUBUS_RESET: { //reset or wrong command m_rubus.accepted.id.all = 0x0000; m_rubus.accepted.com.all = 0x0000; m_rubus.accepted.data.all = (uint32_t)0; m_rubus.response_shadow.command.all = 0x0000; m_rubus.response_shadow.data.word.wL.all = 0x0000; m_rubus.response_shadow.data.word.wH.all = 0x0000; m_rubus.response = m_rubus.response_shadow; rdReg[1] = 0x0000; rdReg[2] = 0x0000; rdReg[3] = 0x0000; rdReg[4] = 0x0000; rdReg[5] = 0x0000; break; } case MODBUSRTU::RUBUS::RUBUS_READ: { //command is read m_rubus.response = m_rubus.response_shadow; rdReg[1] = m_rubus.response.command.all; rdReg[2] = m_rubus.response.data.word.wL.all; rdReg[3] = m_rubus.response.data.word.wH.all; rdReg[4] = m_rubus.response.command.all; rdReg[5] = 0x0000; break; } case MODBUSRTU::RUBUS::RUBUS_WRITE: { //command is write m_rubus.response = m_rubus.response_shadow; rdReg[1] = m_rubus.response.command.all; rdReg[2] = 0; rdReg[3] = 0; rdReg[4] = 0; rdReg[5] = 0x0000; break; } case MODBUSRTU::RUBUS::RUBUS_ERROR: { //wrong index m_rubus.response_shadow.command.all = m_rubus.accepted.command_start.all + m_rubus.mask.error_response.all; m_rubus.response_shadow.data.word.wL.all = 0x0000; m_rubus.response_shadow.data.word.wH.all = 0x0000; m_rubus.response = m_rubus.response_shadow; rdReg[1] = m_rubus.response.command.all; rdReg[2] = 0x0000; rdReg[3] = 0x0000; rdReg[4] = 0x0000; rdReg[5] = 0x0000; break; } default: { break; } }//switch // // }// // //#pragma CODE_SECTION("ramfuncs"); void SystemControl::_modbusrtu_rubus_read_write_register() { /* switch(m_rubus.accepted.index) { case 1: { _modbusrtu_rubus_read_write_float(m_temp_configuration.regulator_voltage_load.gain); break; } case 2: { _modbusrtu_rubus_read_write_float(m_temp_configuration.regulator_voltage_load.time); break; } case 3: { _modbusrtu_rubus_read_write_float(m_temp_configuration.regulator_voltage_load.low_saturation); break; } case 4: { _modbusrtu_rubus_read_write_float(m_temp_configuration.regulator_voltage_load.high_saturation); break; } default: { m_rubus.response.data.f = FP_ZERO; break; } }*/ //switch // if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_READ) { //command is read // m_rubus.m_cell = m_rubus_data.get_register(m_rubus.accepted.index); m_rubus.cell_data.all = m_rubus.m_cell.read_register().all; // switch(m_rubus.m_cell.get_type()) { case MODBUSRTU::RUBUS_BOOL: { //command is read m_rubus.response_shadow.data.b = m_rubus.m_cell.read_register().b; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_FLOAT: { //command is read m_rubus.response_shadow.data.f = m_rubus.m_cell.read_register().f; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_float.all; break; } case MODBUSRTU::RUBUS_UINT8: { //command is read m_rubus.response_shadow.data.u8 = m_rubus.m_cell.read_register().u8; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_uint8.all; break; } case MODBUSRTU::RUBUS_UINT16: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_uint16.all; break; } case MODBUSRTU::RUBUS_UINT32: { //command is read m_rubus.response_shadow.data.u32 = m_rubus.m_cell.read_register().u32; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_uint32.all; break; } case MODBUSRTU::RUBUS_INT8: { //command is read m_rubus.response_shadow.data.i8 = m_rubus.m_cell.read_register().i8; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_int8.all; break; } case MODBUSRTU::RUBUS_INT16: { //command is read m_rubus.response_shadow.data.i16 = m_rubus.m_cell.read_register().i16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_int16.all; break; } case MODBUSRTU::RUBUS_INT32: { //command is read m_rubus.response_shadow.data.i32 = m_rubus.m_cell.read_register().i32; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_int32.all; break; } case MODBUSRTU::RUBUS_BIT0: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT1: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT2: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT3: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT4: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT5: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT6: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT7: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT8: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT9: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT10: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT11: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT12: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT13: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT14: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT15: { //command is read m_rubus.response_shadow.data.u16 = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT16: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT17: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT18: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT19: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT20: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT21: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT22: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT23: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT24: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT25: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT26: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT27: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT28: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT29: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT30: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } case MODBUSRTU::RUBUS_BIT31: { //command is read m_rubus.response_shadow.data.word.wH.all = m_rubus.m_cell.read_register().u16; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; break; } // }//switch // }//if // if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_WRITE) { //command is write // m_rubus.m_cell = m_rubus_data.get_register(m_rubus.accepted.index); m_rubus.response_shadow.command.all = m_rubus.m_cell.write_register(m_rubus.accepted.data.all); m_rubus.response_shadow.command.all |= m_rubus.accepted.command_start.all; // }//if // }// //#pragma CODE_SECTION("ramfuncs"); inline void SystemControl::_modbusrtu_rubus_read_write_bool(bool& param) { if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_READ) { //command is read m_rubus.response_shadow.data.f = param; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_bool.all; // }//if // if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_WRITE) { //command is write param = m_rubus.accepted.data.b; m_rubus.response_shadow.command.all = m_rubus.accepted.command_start.all; // }//if // }// // //#pragma CODE_SECTION("ramfuncs"); inline void SystemControl::_modbusrtu_rubus_read_write_float(float& param) { if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_READ) { //command is read m_rubus.response_shadow.data.f = param; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_float.all; // }//if // if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_WRITE) { //command is write param = m_rubus.accepted.data.f; m_rubus.response_shadow.command.all = m_rubus.accepted.command_start.all; // }//if // }// // //#pragma CODE_SECTION("ramfuncs"); inline void SystemControl::_modbusrtu_rubus_read_write_uint16(uint16_t& param) { if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_READ) { //command is read m_rubus.response_shadow.data.u16 = param; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_uint16.all; // }//if // if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_WRITE) { //command is write param = m_rubus.accepted.data.u16; m_rubus.response_shadow.command.all = m_rubus.accepted.command_start.all; // }//if // }// // //#pragma CODE_SECTION("ramfuncs"); inline void SystemControl::_modbusrtu_rubus_read_write_uint32(uint32_t& param) { if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_READ) { //command is read m_rubus.response_shadow.data.u32 = param; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_uint32.all; // }//if // if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_WRITE) { //command is write param = m_rubus.accepted.data.u32; m_rubus.response_shadow.command.all = m_rubus.accepted.command_start.all; // }//if // }// // //#pragma CODE_SECTION("ramfuncs"); inline void SystemControl::_modbusrtu_rubus_read_write_int16(int16_t& param) { if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_READ) { //command is read m_rubus.response_shadow.data.i16 = param; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_int16.all; // }//if // if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_WRITE) { //command is write param = m_rubus.accepted.data.i16; m_rubus.response_shadow.command.all = m_rubus.accepted.command_start.all; // }//if // }// // //#pragma CODE_SECTION("ramfuncs"); inline void SystemControl::_modbusrtu_rubus_read_write_int32(int32_t& param) { if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_READ) { //command is read m_rubus.response_shadow.data.i32 = param; m_rubus.response_shadow.command.byte.bt1 = m_rubus.accepted.id.byte.bt1; m_rubus.response_shadow.command.bit.b00 = m_rubus.accepted.com.bit.b00; m_rubus.response_shadow.command.all |= m_rubus.mask.rubus_int32.all; // }//if // if(m_rubus.mode == MODBUSRTU::RUBUS::RUBUS_WRITE) { //command is write param = m_rubus.accepted.data.i32; m_rubus.response_shadow.command.all = m_rubus.accepted.command_start.all; // }//if // }// // void SystemControl::_modbusrtu_rubus_configurate() { m_rubus_data.add_register_uint32(1, 1, &m_test_read_word.u32); // m_rubus_data.add_register_float(2, 1, &m_environment.rms_voltage_input_ab); m_rubus_data.add_register_float(3, 1, &m_environment.rms_voltage_input_bc); m_rubus_data.add_register_float(4, 1, &m_environment.rms_voltage_input_ca); // m_rubus_data.add_register_float(5, 1, &m_environment.rms_voltage_load_ab); m_rubus_data.add_register_float(6, 1, &m_environment.rms_voltage_load_bc); m_rubus_data.add_register_float(7, 1, &m_environment.rms_voltage_load_ca); // m_rubus_data.add_register_float(8, 1, &m_environment.rms_current_input_a); m_rubus_data.add_register_float(9, 1, &m_environment.rms_current_input_b); m_rubus_data.add_register_float(10, 1, &m_environment.rms_current_input_c); // m_rubus_data.add_register_float(11, 1, &m_environment.rms_current_load_a); m_rubus_data.add_register_float(12, 1, &m_environment.rms_current_load_b); m_rubus_data.add_register_float(13, 1, &m_environment.rms_current_load_c); // m_rubus_data.add_register_float(14, 1, &m_environment.rms_current_cell_a); m_rubus_data.add_register_float(15, 1, &m_environment.rms_current_cell_b); m_rubus_data.add_register_float(16, 1, &m_environment.rms_current_cell_c); // m_rubus_data.add_register_float(17, 1, &m_environment.rms_current_bypass_a); m_rubus_data.add_register_float(18, 1, &m_environment.rms_current_bypass_b); m_rubus_data.add_register_float(19, 1, &m_environment.rms_current_bypass_c); // m_rubus_data.add_register_float(20, 1, &m_environment.voltage_grid_a); m_rubus_data.add_register_float(21, 1, &m_environment.voltage_grid_b); m_rubus_data.add_register_float(22, 1, &m_environment.voltage_grid_c); // m_rubus_data.add_register_float(23, 1, &m_environment.voltage_load_a); m_rubus_data.add_register_float(24, 1, &m_environment.voltage_load_b); m_rubus_data.add_register_float(25, 1, &m_environment.voltage_load_c); // m_rubus_data.add_register_float(26, 1, &m_environment.current_input_a); m_rubus_data.add_register_float(27, 1, &m_environment.current_input_b); m_rubus_data.add_register_float(28, 1, &m_environment.current_input_c); // m_rubus_data.add_register_float(29, 1, &m_environment.current_load_a); m_rubus_data.add_register_float(30, 1, &m_environment.current_load_b); m_rubus_data.add_register_float(31, 1, &m_environment.current_load_c); // m_rubus_data.add_register_float(32, 1, &m_environment.current_cell_a); m_rubus_data.add_register_float(33, 1, &m_environment.current_cell_b); m_rubus_data.add_register_float(34, 1, &m_environment.current_cell_c); // m_rubus_data.add_register_float(35, 1, &m_environment.current_bypass_a); m_rubus_data.add_register_float(36, 1, &m_environment.current_bypass_b); m_rubus_data.add_register_float(37, 1, &m_environment.current_bypass_c); // // reserved 38 // reserved 39 // reserved 40 // reserved 41 // reserved 42 // reserved 43 // reserved 44 // reserved 45 // m_rubus_data.add_register_float(46, 0, &m_system_configuration.scale_voltage_input_a); m_rubus_data.add_register_float(47, 0, &m_system_configuration.scale_voltage_input_b); m_rubus_data.add_register_float(48, 0, &m_system_configuration.scale_voltage_input_c); // m_rubus_data.add_register_float(49, 0, &m_system_configuration.scale_voltage_load_a); m_rubus_data.add_register_float(50, 0, &m_system_configuration.scale_voltage_load_b); m_rubus_data.add_register_float(51, 0, &m_system_configuration.scale_voltage_load_c); // m_rubus_data.add_register_float(52, 0, &m_system_configuration.scale_current_input_a); m_rubus_data.add_register_float(53, 0, &m_system_configuration.scale_current_input_b); m_rubus_data.add_register_float(54, 0, &m_system_configuration.scale_current_input_c); // m_rubus_data.add_register_float(55, 0, &m_system_configuration.scale_current_load_a); m_rubus_data.add_register_float(56, 0, &m_system_configuration.scale_current_load_b); m_rubus_data.add_register_float(57, 0, &m_system_configuration.scale_current_load_c); // m_rubus_data.add_register_float(58, 0, &m_system_configuration.scale_current_cell_a); m_rubus_data.add_register_float(59, 0, &m_system_configuration.scale_current_cell_b); m_rubus_data.add_register_float(60, 0, &m_system_configuration.scale_current_cell_c); // m_rubus_data.add_register_float(61, 0, &m_system_configuration.scale_current_bypass_a); m_rubus_data.add_register_float(62, 0, &m_system_configuration.scale_current_bypass_b); m_rubus_data.add_register_float(63, 0, &m_system_configuration.scale_current_bypass_c); // m_rubus_data.add_register_float(64, 1, &m_environment.offset_voltage_grid_a); m_rubus_data.add_register_float(65, 1, &m_environment.offset_voltage_grid_b); m_rubus_data.add_register_float(66, 1, &m_environment.offset_voltage_grid_c); // m_rubus_data.add_register_float(67, 1, &m_environment.offset_voltage_load_a); m_rubus_data.add_register_float(68, 1, &m_environment.offset_voltage_load_b); m_rubus_data.add_register_float(69, 1, &m_environment.offset_voltage_load_c); // m_rubus_data.add_register_float(70, 1, &m_environment.offset_current_input_a); m_rubus_data.add_register_float(71, 1, &m_environment.offset_current_input_b); m_rubus_data.add_register_float(72, 1, &m_environment.offset_current_input_c); // m_rubus_data.add_register_float(73, 1, &m_environment.offset_current_load_a); m_rubus_data.add_register_float(74, 1, &m_environment.offset_current_load_b); m_rubus_data.add_register_float(75, 1, &m_environment.offset_current_load_c); // m_rubus_data.add_register_float(76, 1, &m_environment.offset_current_cell_a); m_rubus_data.add_register_float(77, 1, &m_environment.offset_current_cell_b); m_rubus_data.add_register_float(78, 1, &m_environment.offset_current_cell_c); // m_rubus_data.add_register_float(79, 1, &m_environment.offset_current_bypass_a); m_rubus_data.add_register_float(80, 1, &m_environment.offset_current_bypass_b); m_rubus_data.add_register_float(81, 1, &m_environment.offset_current_bypass_c); // m_rubus_data.add_register_uint16(82, 1, &m_environment.hardware.hvcell.state[0][0].all); m_rubus_data.add_register_uint16(83, 1, &m_environment.hardware.hvcell.state[0][1].all); m_rubus_data.add_register_uint16(84, 1, &m_environment.hardware.hvcell.state[0][2].all); m_rubus_data.add_register_uint16(85, 1, &m_environment.hardware.hvcell.state[0][3].all); m_rubus_data.add_register_uint16(86, 1, &m_environment.hardware.hvcell.state[0][4].all); m_rubus_data.add_register_uint16(87, 1, &m_environment.hardware.hvcell.state[0][5].all); m_rubus_data.add_register_uint16(88, 1, &m_environment.hardware.hvcell.state[0][6].all); m_rubus_data.add_register_uint16(89, 1, &m_environment.hardware.hvcell.state[0][7].all); m_rubus_data.add_register_uint16(90, 1, &m_environment.hardware.hvcell.state[0][8].all); m_rubus_data.add_register_uint16(91, 1, &m_environment.hardware.hvcell.state[0][9].all); // m_rubus_data.add_register_uint16(92, 1, &m_environment.hardware.hvcell.state[1][0].all); m_rubus_data.add_register_uint16(93, 1, &m_environment.hardware.hvcell.state[1][1].all); m_rubus_data.add_register_uint16(94, 1, &m_environment.hardware.hvcell.state[1][2].all); m_rubus_data.add_register_uint16(95, 1, &m_environment.hardware.hvcell.state[1][3].all); m_rubus_data.add_register_uint16(96, 1, &m_environment.hardware.hvcell.state[1][4].all); m_rubus_data.add_register_uint16(97, 1, &m_environment.hardware.hvcell.state[1][5].all); m_rubus_data.add_register_uint16(98, 1, &m_environment.hardware.hvcell.state[1][6].all); m_rubus_data.add_register_uint16(99, 1, &m_environment.hardware.hvcell.state[1][7].all); m_rubus_data.add_register_uint16(100, 1, &m_environment.hardware.hvcell.state[1][8].all); m_rubus_data.add_register_uint16(101, 1, &m_environment.hardware.hvcell.state[1][9].all); // m_rubus_data.add_register_uint16(102, 1, &m_environment.hardware.hvcell.state[2][0].all); m_rubus_data.add_register_uint16(103, 1, &m_environment.hardware.hvcell.state[2][1].all); m_rubus_data.add_register_uint16(104, 1, &m_environment.hardware.hvcell.state[2][2].all); m_rubus_data.add_register_uint16(105, 1, &m_environment.hardware.hvcell.state[2][3].all); m_rubus_data.add_register_uint16(106, 1, &m_environment.hardware.hvcell.state[2][4].all); m_rubus_data.add_register_uint16(107, 1, &m_environment.hardware.hvcell.state[2][5].all); m_rubus_data.add_register_uint16(108, 1, &m_environment.hardware.hvcell.state[2][6].all); m_rubus_data.add_register_uint16(109, 1, &m_environment.hardware.hvcell.state[2][7].all); m_rubus_data.add_register_uint16(110, 1, &m_environment.hardware.hvcell.state[2][8].all); m_rubus_data.add_register_uint16(111, 1, &m_environment.hardware.hvcell.state[2][9].all); // m_rubus_data.add_register_float(112, 1, &m_environment.hardware.hvcell.dc_voltage[0][0]); m_rubus_data.add_register_float(113, 1, &m_environment.hardware.hvcell.dc_voltage[0][1]); m_rubus_data.add_register_float(114, 1, &m_environment.hardware.hvcell.dc_voltage[0][2]); m_rubus_data.add_register_float(115, 1, &m_environment.hardware.hvcell.dc_voltage[0][3]); m_rubus_data.add_register_float(116, 1, &m_environment.hardware.hvcell.dc_voltage[0][4]); m_rubus_data.add_register_float(117, 1, &m_environment.hardware.hvcell.dc_voltage[0][5]); m_rubus_data.add_register_float(118, 1, &m_environment.hardware.hvcell.dc_voltage[0][6]); m_rubus_data.add_register_float(119, 1, &m_environment.hardware.hvcell.dc_voltage[0][7]); m_rubus_data.add_register_float(120, 1, &m_environment.hardware.hvcell.dc_voltage[0][8]); m_rubus_data.add_register_float(121, 1, &m_environment.hardware.hvcell.dc_voltage[0][9]); // m_rubus_data.add_register_float(122, 1, &m_environment.hardware.hvcell.dc_voltage[1][0]); m_rubus_data.add_register_float(123, 1, &m_environment.hardware.hvcell.dc_voltage[1][1]); m_rubus_data.add_register_float(124, 1, &m_environment.hardware.hvcell.dc_voltage[1][2]); m_rubus_data.add_register_float(125, 1, &m_environment.hardware.hvcell.dc_voltage[1][3]); m_rubus_data.add_register_float(126, 1, &m_environment.hardware.hvcell.dc_voltage[1][4]); m_rubus_data.add_register_float(127, 1, &m_environment.hardware.hvcell.dc_voltage[1][5]); m_rubus_data.add_register_float(128, 1, &m_environment.hardware.hvcell.dc_voltage[1][6]); m_rubus_data.add_register_float(129, 1, &m_environment.hardware.hvcell.dc_voltage[1][7]); m_rubus_data.add_register_float(130, 1, &m_environment.hardware.hvcell.dc_voltage[1][8]); m_rubus_data.add_register_float(131, 1, &m_environment.hardware.hvcell.dc_voltage[1][9]); // m_rubus_data.add_register_float(132, 1, &m_environment.hardware.hvcell.dc_voltage[2][0]); m_rubus_data.add_register_float(133, 1, &m_environment.hardware.hvcell.dc_voltage[2][1]); m_rubus_data.add_register_float(134, 1, &m_environment.hardware.hvcell.dc_voltage[2][2]); m_rubus_data.add_register_float(135, 1, &m_environment.hardware.hvcell.dc_voltage[2][3]); m_rubus_data.add_register_float(136, 1, &m_environment.hardware.hvcell.dc_voltage[2][4]); m_rubus_data.add_register_float(137, 1, &m_environment.hardware.hvcell.dc_voltage[2][5]); m_rubus_data.add_register_float(138, 1, &m_environment.hardware.hvcell.dc_voltage[2][6]); m_rubus_data.add_register_float(139, 1, &m_environment.hardware.hvcell.dc_voltage[2][7]); m_rubus_data.add_register_float(140, 1, &m_environment.hardware.hvcell.dc_voltage[2][8]); m_rubus_data.add_register_float(141, 1, &m_environment.hardware.hvcell.dc_voltage[2][9]); // m_rubus_data.add_register_uint16(142, 1, &m_environment.hardware.hvcell.version[0][0]); m_rubus_data.add_register_uint16(143, 1, &m_environment.hardware.hvcell.version[0][1]); m_rubus_data.add_register_uint16(144, 1, &m_environment.hardware.hvcell.version[0][2]); m_rubus_data.add_register_uint16(145, 1, &m_environment.hardware.hvcell.version[0][3]); m_rubus_data.add_register_uint16(146, 1, &m_environment.hardware.hvcell.version[0][4]); m_rubus_data.add_register_uint16(147, 1, &m_environment.hardware.hvcell.version[0][5]); m_rubus_data.add_register_uint16(148, 1, &m_environment.hardware.hvcell.version[0][6]); m_rubus_data.add_register_uint16(149, 1, &m_environment.hardware.hvcell.version[0][7]); m_rubus_data.add_register_uint16(150, 1, &m_environment.hardware.hvcell.version[0][8]); m_rubus_data.add_register_uint16(151, 1, &m_environment.hardware.hvcell.version[0][9]); // m_rubus_data.add_register_uint16(152, 1, &m_environment.hardware.hvcell.version[1][0]); m_rubus_data.add_register_uint16(153, 1, &m_environment.hardware.hvcell.version[1][1]); m_rubus_data.add_register_uint16(154, 1, &m_environment.hardware.hvcell.version[1][2]); m_rubus_data.add_register_uint16(155, 1, &m_environment.hardware.hvcell.version[1][3]); m_rubus_data.add_register_uint16(156, 1, &m_environment.hardware.hvcell.version[1][4]); m_rubus_data.add_register_uint16(157, 1, &m_environment.hardware.hvcell.version[1][5]); m_rubus_data.add_register_uint16(158, 1, &m_environment.hardware.hvcell.version[1][6]); m_rubus_data.add_register_uint16(159, 1, &m_environment.hardware.hvcell.version[1][7]); m_rubus_data.add_register_uint16(160, 1, &m_environment.hardware.hvcell.version[1][8]); m_rubus_data.add_register_uint16(161, 1, &m_environment.hardware.hvcell.version[1][9]); // m_rubus_data.add_register_uint16(162, 1, &m_environment.hardware.hvcell.version[2][0]); m_rubus_data.add_register_uint16(163, 1, &m_environment.hardware.hvcell.version[2][1]); m_rubus_data.add_register_uint16(164, 1, &m_environment.hardware.hvcell.version[2][2]); m_rubus_data.add_register_uint16(165, 1, &m_environment.hardware.hvcell.version[2][3]); m_rubus_data.add_register_uint16(166, 1, &m_environment.hardware.hvcell.version[2][4]); m_rubus_data.add_register_uint16(167, 1, &m_environment.hardware.hvcell.version[2][5]); m_rubus_data.add_register_uint16(168, 1, &m_environment.hardware.hvcell.version[2][6]); m_rubus_data.add_register_uint16(169, 1, &m_environment.hardware.hvcell.version[2][7]); m_rubus_data.add_register_uint16(170, 1, &m_environment.hardware.hvcell.version[2][8]); m_rubus_data.add_register_uint16(171, 1, &m_environment.hardware.hvcell.version[2][9]); // //System Orts m_rubus_data.add_register_float(172, 1, &m_environment.main_abc_orts.phase_a.active); m_rubus_data.add_register_float(173, 1, &m_environment.main_abc_orts.phase_a.reactive); // m_rubus_data.add_register_float(174, 1, &m_environment.main_abc_orts.phase_b.active); m_rubus_data.add_register_float(175, 1, &m_environment.main_abc_orts.phase_b.reactive); // m_rubus_data.add_register_float(176, 1, &m_environment.main_abc_orts.phase_c.active); m_rubus_data.add_register_float(177, 1, &m_environment.main_abc_orts.phase_c.reactive); // m_rubus_data.add_register_float(178, 1, &m_environment.main_ab_orts.active); m_rubus_data.add_register_float(179, 1, &m_environment.main_ab_orts.reactive); // m_rubus_data.add_register_float(180, 1, &m_environment.harmonica_2.active); m_rubus_data.add_register_float(181, 1, &m_environment.harmonica_2.reactive); // m_rubus_data.add_register_float(182, 1, &m_environment.harmonica_3.active); m_rubus_data.add_register_float(183, 1, &m_environment.harmonica_3.reactive); // m_rubus_data.add_register_float(184, 1, &m_environment.harmonica_5.active); m_rubus_data.add_register_float(185, 1, &m_environment.harmonica_5.reactive); // m_rubus_data.add_register_float(186, 1, &m_environment.harmonica_7.active); m_rubus_data.add_register_float(187, 1, &m_environment.harmonica_7.reactive); // m_rubus_data.add_register_float(188, 1, &m_environment.harmonica_9.active); m_rubus_data.add_register_float(189, 1, &m_environment.harmonica_9.reactive); // m_rubus_data.add_register_float(190, 1, &m_environment.harmonica_11.active); m_rubus_data.add_register_float(191, 1, &m_environment.harmonica_11.reactive); // //System State m_rubus_data.add_register_uint16(192, 1, &m_environment.system_alarm.all); m_rubus_data.add_register_uint16(193, 1, &m_environment.system_fault.all); m_rubus_data.add_register_uint16(194, 1, &m_environment.system_reset.all); m_rubus_data.add_register_uint16(195, 1, &m_environment.system_ready.all); m_rubus_data.add_register_uint16(196, 1, &m_environment.short_circuit.all); m_rubus_data.add_register_uint16(197, 1, &m_environment.enable_work.all); m_rubus_data.add_register_uint16(198, 1, &m_environment.enable_work_reset.all); // m_rubus_data.add_register_bool(199, 1, &m_environment.enable_auto_offset); m_rubus_data.add_register_uint32(200, 1, &m_environment.input_discrete.all); m_rubus_data.add_register_uint32(201, 1, &m_environment.digital_output.all); //m_rubus_data.add_register_uint32(201, 1, &m_environment.digital_output_temp.all); //Phase Alert monitor m_rubus_data.add_register_uint16(202, 1, &m_environment.phase_alert_monitor_register.phase_a.fault.all); m_rubus_data.add_register_uint16(203, 1, &m_environment.phase_alert_monitor_register.phase_a.warning.all); m_rubus_data.add_register_uint16(204, 1, &m_environment.phase_alert_monitor_register.phase_b.fault.all); m_rubus_data.add_register_uint16(205, 1, &m_environment.phase_alert_monitor_register.phase_b.warning.all); m_rubus_data.add_register_uint16(206, 1, &m_environment.phase_alert_monitor_register.phase_c.fault.all); m_rubus_data.add_register_uint16(207, 1, &m_environment.phase_alert_monitor_register.phase_c.warning.all); //<> // Projections m_rubus_data.add_register_float(208, 1, &m_environment.projection_voltage_input_a.active); m_rubus_data.add_register_float(209, 1, &m_environment.projection_voltage_input_a.reactive); // m_rubus_data.add_register_float(210, 1, &m_environment.projection_voltage_input_b.active); m_rubus_data.add_register_float(211, 1, &m_environment.projection_voltage_input_b.reactive); // m_rubus_data.add_register_float(212, 1, &m_environment.projection_voltage_input_c.active); m_rubus_data.add_register_float(213, 1, &m_environment.projection_voltage_input_c.reactive); // // m_rubus_data.add_register_float(214, 1, &m_environment.projection_voltage_load_a.active); m_rubus_data.add_register_float(215, 1, &m_environment.projection_voltage_load_a.reactive); // m_rubus_data.add_register_float(216, 1, &m_environment.projection_voltage_load_b.active); m_rubus_data.add_register_float(217, 1, &m_environment.projection_voltage_load_b.reactive); // m_rubus_data.add_register_float(218, 1, &m_environment.projection_voltage_load_c.active); m_rubus_data.add_register_float(219, 1, &m_environment.projection_voltage_load_c.reactive); // // m_rubus_data.add_register_float(220, 1, &m_environment.projection_current_load_a.active); m_rubus_data.add_register_float(221, 1, &m_environment.projection_current_load_a.reactive); // m_rubus_data.add_register_float(222, 1, &m_environment.projection_current_load_b.active); m_rubus_data.add_register_float(223, 1, &m_environment.projection_current_load_b.reactive); // m_rubus_data.add_register_float(224, 1, &m_environment.projection_current_load_c.active); m_rubus_data.add_register_float(225, 1, &m_environment.projection_current_load_c.reactive); // m_rubus_data.add_register_float(226, 1, &m_environment.projection_current_bypass_a.active); m_rubus_data.add_register_float(227, 1, &m_environment.projection_current_bypass_a.reactive); // m_rubus_data.add_register_float(228, 1, &m_environment.projection_current_bypass_b.active); m_rubus_data.add_register_float(229, 1, &m_environment.projection_current_bypass_b.reactive); // m_rubus_data.add_register_float(230, 1, &m_environment.projection_current_bypass_c.active); m_rubus_data.add_register_float(231, 1, &m_environment.projection_current_bypass_c.reactive); //<> //Symmetrical Components Input Voltage m_rubus_data.add_register_float(232, 1, &m_environment.symmetrical_components_voltage_input.direct.a.active); m_rubus_data.add_register_float(233, 1, &m_environment.symmetrical_components_voltage_input.direct.a.reactive); m_rubus_data.add_register_float(234, 1, &m_environment.symmetrical_components_voltage_input.direct.b.active); m_rubus_data.add_register_float(235, 1, &m_environment.symmetrical_components_voltage_input.direct.b.reactive); m_rubus_data.add_register_float(236, 1, &m_environment.symmetrical_components_voltage_input.direct.c.active); m_rubus_data.add_register_float(237, 1, &m_environment.symmetrical_components_voltage_input.direct.c.reactive); // m_rubus_data.add_register_float(238, 1, &m_environment.symmetrical_components_voltage_input.inverse.a.active); m_rubus_data.add_register_float(239, 1, &m_environment.symmetrical_components_voltage_input.inverse.a.reactive); m_rubus_data.add_register_float(240, 1, &m_environment.symmetrical_components_voltage_input.inverse.b.active); m_rubus_data.add_register_float(241, 1, &m_environment.symmetrical_components_voltage_input.inverse.b.reactive); m_rubus_data.add_register_float(242, 1, &m_environment.symmetrical_components_voltage_input.inverse.c.active); m_rubus_data.add_register_float(243, 1, &m_environment.symmetrical_components_voltage_input.inverse.c.reactive); // m_rubus_data.add_register_float(244, 1, &m_environment.symmetrical_components_voltage_input.zero.a.active); m_rubus_data.add_register_float(245, 1, &m_environment.symmetrical_components_voltage_input.zero.a.reactive); m_rubus_data.add_register_float(246, 1, &m_environment.symmetrical_components_voltage_input.zero.b.active); m_rubus_data.add_register_float(247, 1, &m_environment.symmetrical_components_voltage_input.zero.b.reactive); m_rubus_data.add_register_float(248, 1, &m_environment.symmetrical_components_voltage_input.zero.c.active); m_rubus_data.add_register_float(249, 1, &m_environment.symmetrical_components_voltage_input.zero.c.reactive); //<> //Symmetrical Components Load Voltage m_rubus_data.add_register_float(250, 1, &m_environment.symmetrical_components_voltage_load.direct.a.active); m_rubus_data.add_register_float(251, 1, &m_environment.symmetrical_components_voltage_load.direct.a.reactive); m_rubus_data.add_register_float(252, 1, &m_environment.symmetrical_components_voltage_load.direct.b.active); m_rubus_data.add_register_float(253, 1, &m_environment.symmetrical_components_voltage_load.direct.b.reactive); m_rubus_data.add_register_float(254, 1, &m_environment.symmetrical_components_voltage_load.direct.c.active); m_rubus_data.add_register_float(255, 1, &m_environment.symmetrical_components_voltage_load.direct.c.reactive); // m_rubus_data.add_register_float(256, 1, &m_environment.symmetrical_components_voltage_load.inverse.a.active); m_rubus_data.add_register_float(257, 1, &m_environment.symmetrical_components_voltage_load.inverse.a.reactive); m_rubus_data.add_register_float(258, 1, &m_environment.symmetrical_components_voltage_load.inverse.b.active); m_rubus_data.add_register_float(259, 1, &m_environment.symmetrical_components_voltage_load.inverse.b.reactive); m_rubus_data.add_register_float(260, 1, &m_environment.symmetrical_components_voltage_load.inverse.c.active); m_rubus_data.add_register_float(261, 1, &m_environment.symmetrical_components_voltage_load.inverse.c.reactive); // m_rubus_data.add_register_float(262, 1, &m_environment.symmetrical_components_voltage_load.zero.a.active); m_rubus_data.add_register_float(263, 1, &m_environment.symmetrical_components_voltage_load.zero.a.reactive); m_rubus_data.add_register_float(264, 1, &m_environment.symmetrical_components_voltage_load.zero.b.active); m_rubus_data.add_register_float(265, 1, &m_environment.symmetrical_components_voltage_load.zero.b.reactive); m_rubus_data.add_register_float(266, 1, &m_environment.symmetrical_components_voltage_load.zero.c.active); m_rubus_data.add_register_float(267, 1, &m_environment.symmetrical_components_voltage_load.zero.c.reactive); //<> //Symmetrical Components Load Current m_rubus_data.add_register_float(268, 1, &m_environment.symmetrical_components_current_load.direct.a.active); m_rubus_data.add_register_float(269, 1, &m_environment.symmetrical_components_current_load.direct.a.reactive); m_rubus_data.add_register_float(270, 1, &m_environment.symmetrical_components_current_load.direct.b.active); m_rubus_data.add_register_float(271, 1, &m_environment.symmetrical_components_current_load.direct.b.reactive); m_rubus_data.add_register_float(272, 1, &m_environment.symmetrical_components_current_load.direct.c.active); m_rubus_data.add_register_float(273, 1, &m_environment.symmetrical_components_current_load.direct.c.reactive); // m_rubus_data.add_register_float(274, 1, &m_environment.symmetrical_components_current_load.inverse.a.active); m_rubus_data.add_register_float(275, 1, &m_environment.symmetrical_components_current_load.inverse.a.reactive); m_rubus_data.add_register_float(276, 1, &m_environment.symmetrical_components_current_load.inverse.b.active); m_rubus_data.add_register_float(277, 1, &m_environment.symmetrical_components_current_load.inverse.b.reactive); m_rubus_data.add_register_float(278, 1, &m_environment.symmetrical_components_current_load.inverse.c.active); m_rubus_data.add_register_float(279, 1, &m_environment.symmetrical_components_current_load.inverse.c.reactive); // m_rubus_data.add_register_float(280, 1, &m_environment.symmetrical_components_current_load.zero.a.active); m_rubus_data.add_register_float(281, 1, &m_environment.symmetrical_components_current_load.zero.a.reactive); m_rubus_data.add_register_float(282, 1, &m_environment.symmetrical_components_current_load.zero.b.active); m_rubus_data.add_register_float(283, 1, &m_environment.symmetrical_components_current_load.zero.b.reactive); m_rubus_data.add_register_float(284, 1, &m_environment.symmetrical_components_current_load.zero.c.active); m_rubus_data.add_register_float(285, 1, &m_environment.symmetrical_components_current_load.zero.c.reactive); //<> //Symmetrical Components Bypass Current m_rubus_data.add_register_float(286, 1, &m_environment.symmetrical_components_current_bypass.direct.a.active); m_rubus_data.add_register_float(287, 1, &m_environment.symmetrical_components_current_bypass.direct.a.reactive); m_rubus_data.add_register_float(288, 1, &m_environment.symmetrical_components_current_bypass.direct.b.active); m_rubus_data.add_register_float(289, 1, &m_environment.symmetrical_components_current_bypass.direct.b.reactive); m_rubus_data.add_register_float(290, 1, &m_environment.symmetrical_components_current_bypass.direct.c.active); m_rubus_data.add_register_float(291, 1, &m_environment.symmetrical_components_current_bypass.direct.c.reactive); // m_rubus_data.add_register_float(292, 1, &m_environment.symmetrical_components_current_bypass.inverse.a.active); m_rubus_data.add_register_float(293, 1, &m_environment.symmetrical_components_current_bypass.inverse.a.reactive); m_rubus_data.add_register_float(294, 1, &m_environment.symmetrical_components_current_bypass.inverse.b.active); m_rubus_data.add_register_float(295, 1, &m_environment.symmetrical_components_current_bypass.inverse.b.reactive); m_rubus_data.add_register_float(296, 1, &m_environment.symmetrical_components_current_bypass.inverse.c.active); m_rubus_data.add_register_float(297, 1, &m_environment.symmetrical_components_current_bypass.inverse.c.reactive); // m_rubus_data.add_register_float(298, 1, &m_environment.symmetrical_components_current_bypass.zero.a.active); m_rubus_data.add_register_float(299, 1, &m_environment.symmetrical_components_current_bypass.zero.a.reactive); m_rubus_data.add_register_float(300, 1, &m_environment.symmetrical_components_current_bypass.zero.b.active); m_rubus_data.add_register_float(301, 1, &m_environment.symmetrical_components_current_bypass.zero.b.reactive); m_rubus_data.add_register_float(302, 1, &m_environment.symmetrical_components_current_bypass.zero.c.active); m_rubus_data.add_register_float(303, 1, &m_environment.symmetrical_components_current_bypass.zero.c.reactive); //<> // // External Command // m_rubus_data.add_register_uint16(304, 0, &m_environment.external_command_word.all); //<> //********************************************************* // // Configuration Parameters // //********************************************************* // // // // Referances // m_rubus_data.add_register_float(305, 0, &m_system_configuration.reference_current_limit_rms); m_rubus_data.add_register_float(306, 0, &m_system_configuration.reference_current_pfc_rms); m_rubus_data.add_register_float(307, 0, &m_system_configuration.reference_voltage_rms); m_rubus_data.add_register_float(308, 0, &m_system_configuration.reference_voltage_high_limit_rms); //<> // // Algoritm Control // m_rubus_data.add_register_uint16(309, 0, &m_system_configuration.algorithm_control.all); //<> // // Flash Operation // m_rubus_data.add_register_uint16(310, 0, &m_environment.fram_operation.all); //<> // // System Alarm // // exceed voltage level 1 m_rubus_data.add_register_float(311, 0, &m_system_configuration.phase_alert_monitor.voltage_exceed_level_1.level); m_rubus_data.add_register_float(312, 0, &m_system_configuration.phase_alert_monitor.voltage_exceed_level_1.period); // // exceed voltage level 2 m_rubus_data.add_register_float(313, 0, &m_system_configuration.phase_alert_monitor.voltage_exceed_level_2.level); m_rubus_data.add_register_float(314, 0, &m_system_configuration.phase_alert_monitor.voltage_exceed_level_2.period); // // exceed voltage level 3 m_rubus_data.add_register_float(315, 0, &m_system_configuration.phase_alert_monitor.voltage_exceed_level_3.level); m_rubus_data.add_register_float(316, 0, &m_system_configuration.phase_alert_monitor.voltage_exceed_level_3.period); // // exceed voltage level 4 m_rubus_data.add_register_float(317, 0, &m_system_configuration.phase_alert_monitor.voltage_exceed_level_4.level); m_rubus_data.add_register_float(318, 0, &m_system_configuration.phase_alert_monitor.voltage_exceed_level_4.period); // // decrease voltage level 1 m_rubus_data.add_register_float(319, 0, &m_system_configuration.phase_alert_monitor.voltage_decrease_level_1.level); m_rubus_data.add_register_float(320, 0, &m_system_configuration.phase_alert_monitor.voltage_decrease_level_1.period); // // decrease voltage level 2 m_rubus_data.add_register_float(321, 0, &m_system_configuration.phase_alert_monitor.voltage_decrease_level_2.level); m_rubus_data.add_register_float(322, 0, &m_system_configuration.phase_alert_monitor.voltage_decrease_level_2.period); // // decrease voltage level 3 m_rubus_data.add_register_float(323, 0, &m_system_configuration.phase_alert_monitor.voltage_decrease_level_3.level); m_rubus_data.add_register_float(324, 0, &m_system_configuration.phase_alert_monitor.voltage_decrease_level_3.period); // // current overload level 1 120% 60s m_rubus_data.add_register_float(325, 0, &m_system_configuration.phase_alert_monitor.current_overload_level_1.level); m_rubus_data.add_register_float(326, 0, &m_system_configuration.phase_alert_monitor.current_overload_level_1.period); // // current overload level 2 130% 10s m_rubus_data.add_register_float(327, 0, &m_system_configuration.phase_alert_monitor.current_overload_level_2.level); m_rubus_data.add_register_float(328, 0, &m_system_configuration.phase_alert_monitor.current_overload_level_2.period); // // current overload level 3 150% 1ms m_rubus_data.add_register_float(329, 0, &m_system_configuration.phase_alert_monitor.current_overload_level_3.level); m_rubus_data.add_register_float(330, 0, &m_system_configuration.phase_alert_monitor.current_overload_level_3.period); // // current invertor overload level 1 110% 60s m_rubus_data.add_register_float(331, 0, &m_system_configuration.phase_alert_monitor.current_invertor_overload_level_1.level); m_rubus_data.add_register_float(332, 0, &m_system_configuration.phase_alert_monitor.current_invertor_overload_level_1.period); // // current invertor overload level 2 130% 10s m_rubus_data.add_register_float(333, 0, &m_system_configuration.phase_alert_monitor.current_invertor_overload_level_2.level); m_rubus_data.add_register_float(334, 0, &m_system_configuration.phase_alert_monitor.current_invertor_overload_level_2.period); // // current invertor overload level 3 150% 1ms m_rubus_data.add_register_float(335, 0, &m_system_configuration.phase_alert_monitor.current_invertor_overload_level_3.level); m_rubus_data.add_register_float(336, 0, &m_system_configuration.phase_alert_monitor.current_invertor_overload_level_3.period); // // current input overload level 1 110% 60s m_rubus_data.add_register_float(337, 0, &m_system_configuration.phase_alert_monitor.current_input_overload_level_1.level); m_rubus_data.add_register_float(338, 0, &m_system_configuration.phase_alert_monitor.current_input_overload_level_1.period); // // current input overload level 2 130% 10s m_rubus_data.add_register_float(339, 0, &m_system_configuration.phase_alert_monitor.current_input_overload_level_2.level); m_rubus_data.add_register_float(340, 0, &m_system_configuration.phase_alert_monitor.current_input_overload_level_2.period); // // current input overload level 3 150% 1ms m_rubus_data.add_register_float(341, 0, &m_system_configuration.phase_alert_monitor.current_input_overload_level_3.level); m_rubus_data.add_register_float(342, 0, &m_system_configuration.phase_alert_monitor.current_input_overload_level_3.period); //<> // // DIGITAL INPUTS // m_rubus_data.add_register_float(343, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(338, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(339, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(340, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(341, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(342, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(343, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(344, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(345, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(346, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(347, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(348, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(349, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(350, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(351, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(352, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(353, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(354, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(355, 0, &m_system_configuration.digital_input_config.period); // m_rubus_data.add_register_float(356, 0, &m_system_configuration.digital_input_config.period); //<> // // Voltage PLL-ABC Parameters // m_rubus_data.add_register_float(357, 0, &m_system_configuration.pll_abc_input_voltage.frequency_nominal); m_rubus_data.add_register_float(358, 0, &m_system_configuration.pll_abc_input_voltage.filter.time); m_rubus_data.add_register_float(359, 0, &m_system_configuration.pll_abc_input_voltage.controller.gain); m_rubus_data.add_register_float(360, 0, &m_system_configuration.pll_abc_input_voltage.controller.time); m_rubus_data.add_register_float(361, 0, &m_system_configuration.pll_abc_input_voltage.controller.low_saturation); m_rubus_data.add_register_float(362, 0, &m_system_configuration.pll_abc_input_voltage.controller.high_saturation); //<> // // Signal Decompose // m_rubus_data.add_register_float(363, 0, &m_system_configuration.signal_decompose.projection_filter.time); m_rubus_data.add_register_float(364, 0, &m_system_configuration.signal_decompose.projection_filter.a3); m_rubus_data.add_register_float(365, 0, &m_system_configuration.signal_decompose.projection_filter.a2); m_rubus_data.add_register_float(366, 0, &m_system_configuration.signal_decompose.projection_filter.a1); //<> // // Amplitude Filter Parameters // m_rubus_data.add_register_float(367, 0, &m_system_configuration.ampl_filter_current.time); m_rubus_data.add_register_float(368, 0, &m_system_configuration.ampl_filter_current.a3); m_rubus_data.add_register_float(369, 0, &m_system_configuration.ampl_filter_current.a2); m_rubus_data.add_register_float(370, 0, &m_system_configuration.ampl_filter_current.a1); //<> // // RMS Filter Parameters // m_rubus_data.add_register_float(371, 0, &m_system_configuration.rms_filter_analog_signal.time); m_rubus_data.add_register_float(372, 0, &m_system_configuration.rms_filter_analog_signal.a3); m_rubus_data.add_register_float(373, 0, &m_system_configuration.rms_filter_analog_signal.a2); m_rubus_data.add_register_float(374, 0, &m_system_configuration.rms_filter_analog_signal.a1); //<> // // Regulators // #if TYPECONTROL == VECTORCONTROL // m_rubus_data.add_register_float(375, 0, &m_system_configuration.regulator_voltage_load_dq.gain); m_rubus_data.add_register_float(376, 0, &m_system_configuration.regulator_voltage_load_dq.time); m_rubus_data.add_register_float(377, 0, &m_system_configuration.regulator_voltage_load_dq.high_saturation); m_rubus_data.add_register_float(378, 0, &m_system_configuration.regulator_voltage_load_dq.low_saturation); // //m_rubus_data.add_register_float(379, 0, &m_system_configuration.regulator_current_limit.gain); m_rubus_data.add_register_float(380, 0, &m_system_configuration.regulator_current_limit.time); m_rubus_data.add_register_float(381, 1, &m_system_configuration.regulator_current_limit.high_saturation); m_rubus_data.add_register_float(382, 1, &m_system_configuration.regulator_current_limit.low_saturation); // m_rubus_data.add_register_float(383, 0, &m_system_configuration.regulator_current_pfc.gain); m_rubus_data.add_register_float(384, 0, &m_system_configuration.regulator_current_pfc.time); m_rubus_data.add_register_float(385, 0, &m_system_configuration.regulator_current_pfc.high_saturation); m_rubus_data.add_register_float(386, 0, &m_system_configuration.regulator_current_pfc.low_saturation); // //m_rubus_data.add_register_float(387, 0, &m_system_configuration); m_rubus_data.add_register_float(388, 0, &m_system_configuration.integrator_voltage_dq.time); m_rubus_data.add_register_float(389, 0, &m_system_configuration.integrator_voltage_dq.high_saturation); m_rubus_data.add_register_float(390, 0, &m_system_configuration.integrator_voltage_dq.low_saturation); // #if TYPECURRENTCONTROLLER == CURRENTCONTROLLER_P m_rubus_data.add_register_float(391, 0, &m_system_configuration.regulator_current_load_dq.gain); //m_rubus_data.add_register_float(392, 0, &m_system_configuration.regulator_current_load_dq.time); m_rubus_data.add_register_float(393, 0, &m_system_configuration.regulator_current_load_dq.high_saturation); m_rubus_data.add_register_float(394, 0, &m_system_configuration.regulator_current_load_dq.low_saturation); #endif #if TYPECURRENTCONTROLLER == CURRENTCONTROLLER_PI m_rubus_data.add_register_float(391, 0, &m_system_configuration.regulator_current_load_dq.gain); m_rubus_data.add_register_float(392, 0, &m_system_configuration.regulator_current_load_dq.time); m_rubus_data.add_register_float(393, 0, &m_system_configuration.regulator_current_load_dq.high_saturation); m_rubus_data.add_register_float(394, 0, &m_system_configuration.regulator_current_load_dq.low_saturation); #endif // //m_rubus_data.add_register_float(395, 0, &m_system_configuration); m_rubus_data.add_register_float(396, 0, &m_system_configuration.referencer_current_bypass_dq.time); m_rubus_data.add_register_float(397, 0, &m_system_configuration.referencer_current_bypass_dq.high_saturation); m_rubus_data.add_register_float(398, 0, &m_system_configuration.referencer_current_bypass_dq.low_saturation); // #endif #if TYPECONTROL == SCALARCONTROL // #if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC m_rubus_data.add_register_float(375, 0, &m_system_configuration.regulator_voltage_load_active_reactive.gain); m_rubus_data.add_register_float(376, 0, &m_system_configuration.regulator_voltage_load_active_reactive.time); m_rubus_data.add_register_float(377, 0, &m_system_configuration.regulator_voltage_load_active_reactive.high_saturation); m_rubus_data.add_register_float(378, 0, &m_system_configuration.regulator_voltage_load_active_reactive.low_saturation); #endif #if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS m_rubus_data.add_register_float(375, 0, &m_system_configuration.reference_voltage_load_rms_intensity.time); m_rubus_data.add_register_float(376, 0, &m_system_configuration.regulator_voltage_load_rms.time); m_rubus_data.add_register_float(377, 0, &m_system_configuration.regulator_voltage_load_rms.high_saturation); m_rubus_data.add_register_float(378, 0, &m_system_configuration.regulator_voltage_load_rms.low_saturation); #endif // m_rubus_data.add_register_float(379, 0, &m_system_configuration.regulator_current_limit.gain); m_rubus_data.add_register_float(380, 0, &m_system_configuration.regulator_current_limit.time); m_rubus_data.add_register_float(381, 0, &m_system_configuration.regulator_current_limit.high_saturation); m_rubus_data.add_register_float(382, 0, &m_system_configuration.regulator_current_limit.low_saturation); // m_rubus_data.add_register_float(383, 0, &m_system_configuration.regulator_current_pfc.gain); m_rubus_data.add_register_float(384, 0, &m_system_configuration.regulator_current_pfc.time); m_rubus_data.add_register_float(385, 0, &m_system_configuration.regulator_current_pfc.high_saturation); m_rubus_data.add_register_float(386, 0, &m_system_configuration.regulator_current_pfc.low_saturation); // m_rubus_data.add_register_float(387, 0, &m_system_configuration.current_regulator_active.gain); m_rubus_data.add_register_float(388, 0, &m_system_configuration.current_regulator_active.time); m_rubus_data.add_register_float(389, 0, &m_system_configuration.current_regulator_active.high_saturation); m_rubus_data.add_register_float(390, 0, &m_system_configuration.current_regulator_active.low_saturation); // m_rubus_data.add_register_float(391, 0, &m_system_configuration.current_regulator_reactive.gain); m_rubus_data.add_register_float(392, 0, &m_system_configuration.current_regulator_reactive.time); m_rubus_data.add_register_float(393, 0, &m_system_configuration.current_regulator_reactive.high_saturation); m_rubus_data.add_register_float(394, 0, &m_system_configuration.current_regulator_reactive.low_saturation); // m_rubus_data.add_register_float(395, 0, &m_system_configuration.current_referencer.gain); m_rubus_data.add_register_float(396, 0, &m_system_configuration.current_referencer.time); m_rubus_data.add_register_float(397, 0, &m_system_configuration.current_referencer.high_saturation); m_rubus_data.add_register_float(398, 0, &m_system_configuration.current_referencer.low_saturation); // #endif //<> // // MODBUS Break Counter // m_rubus_data.add_register_uint16(399, 0, &m_modbus_break_counter); //<> // // ID SOFTWARE // m_rubus_data.add_register_uint16(400, 0, &m_environment.id_software.class_id); m_rubus_data.add_register_uint16(401, 0, &m_environment.id_software.part_id); m_rubus_data.add_register_uint16(402, 0, &m_environment.id_software.software_version); m_rubus_data.add_register_uint16(403, 0, &m_environment.id_software.protocol_version); //<> // // Equipment Faults // m_rubus_data.add_register_uint16(416, 1, &m_environment.system_faults_register.equipment.all); //<> // // Grid Frequency form PLL // m_rubus_data.add_register_float(417, 0, &m_environment.grid_frequency); //<> // // }// // // } /* namespace SYSCTRL */