|
|
@ -11,6 +11,12 @@ Periphery::Periphery() :
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_softVersion.DSP = 202;
|
|
|
|
_softVersion.DSP = 202;
|
|
|
|
_softVersion.CPLD = 0;
|
|
|
|
_softVersion.CPLD = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test_hmi_float_reg_400_test = 0;
|
|
|
|
|
|
|
|
test_hmi_float_reg_401_test = 0;
|
|
|
|
|
|
|
|
test_hmi_float_reg_402_test = 0;
|
|
|
|
|
|
|
|
test_hmi_float_reg_403_test = 0;
|
|
|
|
|
|
|
|
test_hmi_float_reg_404_test = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -23,7 +29,7 @@ void Periphery::config(){
|
|
|
|
// Data Frame MBOX
|
|
|
|
// Data Frame MBOX
|
|
|
|
_canb.configRxMBox(canSpace::MODBUS_SETTINGS_MBOX, canSpace::MsgID(0x0), canSpace::MsgCtrlReg(0x6)); // Modbus settings
|
|
|
|
_canb.configRxMBox(canSpace::MODBUS_SETTINGS_MBOX, canSpace::MsgID(0x0), canSpace::MsgCtrlReg(0x6)); // Modbus settings
|
|
|
|
_canb.configTxMBox(canSpace::MODBUS_DATA_COMM_TO_CPU_MBOX, canSpace::MsgID(0x29), canSpace::MsgCtrlReg(0x28)); // Send Modbus data to CPU
|
|
|
|
_canb.configTxMBox(canSpace::MODBUS_DATA_COMM_TO_CPU_MBOX, canSpace::MsgID(0x29), canSpace::MsgCtrlReg(0x28)); // Send Modbus data to CPU
|
|
|
|
// _canb.configRxMBox(canSpace::MODBUS_DATA_CPU_TO_COMM_MBOX, canSpace::MsgID(0x28), canSpace::MsgCtrlReg(0x8)); // Receive Modbus data from CPU
|
|
|
|
_canb.configRxMBox(canSpace::MODBUS_DATA_CPU_TO_COMM_MBOX, canSpace::MsgID(0x28), canSpace::MsgCtrlReg(0x8)); // Receive Modbus data from CPU
|
|
|
|
_canb.configTxMBox(canSpace::DIGITAL_INPUT_MBOX, canSpace::MsgID(0x30), canSpace::MsgCtrlReg(0x2)); // Receive DI
|
|
|
|
_canb.configTxMBox(canSpace::DIGITAL_INPUT_MBOX, canSpace::MsgID(0x30), canSpace::MsgCtrlReg(0x2)); // Receive DI
|
|
|
|
_canb.configRxMBox(canSpace::DIGITAL_OUTPUT_MBOX, canSpace::MsgID(0x31), canSpace::MsgCtrlReg(0x2)); // Send DO
|
|
|
|
_canb.configRxMBox(canSpace::DIGITAL_OUTPUT_MBOX, canSpace::MsgID(0x31), canSpace::MsgCtrlReg(0x2)); // Send DO
|
|
|
|
|
|
|
|
|
|
|
@ -94,6 +100,24 @@ void Periphery::processDigitalOutput(){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Periphery::init_modbus_table(){
|
|
|
|
|
|
|
|
modbusRTU.setInputRegsAddr(400);
|
|
|
|
|
|
|
|
modbusRTU.setOutputRegsAddr(400);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
modbusRTU.addInputReg(0, test_hmi_float_reg_400_test);
|
|
|
|
|
|
|
|
modbusRTU.addInputReg(1, test_hmi_float_reg_401_test);
|
|
|
|
|
|
|
|
modbusRTU.addInputReg(2, test_hmi_float_reg_402_test);
|
|
|
|
|
|
|
|
modbusRTU.addInputReg(3, test_hmi_float_reg_403_test);
|
|
|
|
|
|
|
|
modbusRTU.addInputReg(4, test_hmi_float_reg_404_test);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
modbusRTU.addOutputReg(0, test_hmi_float_reg_400_test);
|
|
|
|
|
|
|
|
modbusRTU.addOutputReg(1, test_hmi_float_reg_401_test);
|
|
|
|
|
|
|
|
modbusRTU.addOutputReg(2, test_hmi_float_reg_402_test);
|
|
|
|
|
|
|
|
modbusRTU.addOutputReg(3, test_hmi_float_reg_403_test);
|
|
|
|
|
|
|
|
modbusRTU.addOutputReg(4, test_hmi_float_reg_404_test);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool Periphery::isModbusInit() const{
|
|
|
|
bool Periphery::isModbusInit() const{
|
|
|
|
return _modbusInitFlag;
|
|
|
|
return _modbusInitFlag;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -142,3 +166,16 @@ void Periphery::sendModbusDataToCPU(){
|
|
|
|
|
|
|
|
|
|
|
|
_canb.transmitMsg(canSpace::MODBUS_DATA_COMM_TO_CPU_MBOX, _message);
|
|
|
|
_canb.transmitMsg(canSpace::MODBUS_DATA_COMM_TO_CPU_MBOX, _message);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Periphery::receiveCpuModbusData(){
|
|
|
|
|
|
|
|
if (_canb.isNewMessage(canSpace::MODBUS_DATA_CPU_TO_COMM_MBOX)) { // TODO check for init is incorect here maybe
|
|
|
|
|
|
|
|
_canb.receiveMsg(canSpace::MODBUS_DATA_CPU_TO_COMM_MBOX, _message);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WEINBUS::WeinbusTableRegister reg;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uint32_t addr = _message.mdl.all;
|
|
|
|
|
|
|
|
reg = modbusRTU._dataHandler.inputRegisters.get_register_cursor(addr - modbusRTU._dataHandler.inputRegisters.get_start_address());
|
|
|
|
|
|
|
|
reg.write_data(_message.mdh.all);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|