Added General Alarm, VSD Output Freq

Added General Alarm, VSD Output Frequency registers. Updated modbus register to actual instead of test registers.
This commit is contained in:
RobertJDavis
2025-10-30 12:32:28 -07:00
parent ce71ec9267
commit 8157deaae7
2 changed files with 36 additions and 23 deletions

View File

@@ -41,8 +41,10 @@
void updateAlarms(Equipment<ModbusRTU>* equipment){ void updateAlarms(Equipment<ModbusRTU>* equipment){
Modbus_Point<ModbusRTU>* Sys1FanAlarmCommand = equipment->getModbus_Point("Sys 1 Fan Fault ON"); Modbus_Point<ModbusRTU>* Sys1FanAlarmCommand = equipment->getModbus_Point("Sys 1 Fan Fault ON");
Modbus_Point<ModbusRTU>* Sys2FanAlarmCommand = equipment->getModbus_Point("Sys 2 Fan Fault ON"); Modbus_Point<ModbusRTU>* Sys2FanAlarmCommand = equipment->getModbus_Point("Sys 2 Fan Fault ON");
Modbus_Point<ModbusRTU>* GeneralAlarmCommand = equipment->getModbus_Point("General Alarm ON");
Modbus_Point<ModbusRTU>* Sys1FanAlarm = equipment->getModbus_Point("Sys 1 Fan Fault Alarm"); Modbus_Point<ModbusRTU>* Sys1FanAlarm = equipment->getModbus_Point("Sys 1 Fan Fault Alarm");
Modbus_Point<ModbusRTU>* Sys2FanAlarm = equipment->getModbus_Point("Sys 2 Fan Fault Alarm"); Modbus_Point<ModbusRTU>* Sys2FanAlarm = equipment->getModbus_Point("Sys 2 Fan Fault Alarm");
Modbus_Point<ModbusRTU>* GeneralAlarm = equipment->getModbus_Point("General Alarm");
if (Sys1FanAlarmCommand) { if (Sys1FanAlarmCommand) {
Sys1FanAlarm->setValue(Sys1FanAlarmCommand->getValue()); Sys1FanAlarm->setValue(Sys1FanAlarmCommand->getValue());
if (Sys1FanAlarmCommand->getValue() == 1){ if (Sys1FanAlarmCommand->getValue() == 1){
@@ -57,6 +59,8 @@ void updateAlarms(Equipment<ModbusRTU>* equipment){
} }
else equipment->setModbus_Point("Sys 2 Fault Code", 0); else equipment->setModbus_Point("Sys 2 Fault Code", 0);
} }
GeneralAlarm->setValue(GeneralAlarmCommand->getValue());
} }
/** /**
@@ -74,6 +78,9 @@ void updateFreeCooling(Equipment<ModbusRTU>* equipment){
Modbus_Point<ModbusRTU>* FreeCoolingCommand = equipment->getModbus_Point("Free Cooling Mode ON"); Modbus_Point<ModbusRTU>* FreeCoolingCommand = equipment->getModbus_Point("Free Cooling Mode ON");
Modbus_Point<ModbusRTU>* FreeCoolingMode = equipment->getModbus_Point("Free Cooling Mode"); Modbus_Point<ModbusRTU>* FreeCoolingMode = equipment->getModbus_Point("Free Cooling Mode");
Modbus_Point<ModbusRTU>* FreeCoolingValve = equipment->getModbus_Point("Free Cooling Valve"); Modbus_Point<ModbusRTU>* FreeCoolingValve = equipment->getModbus_Point("Free Cooling Valve");
FreeCoolingMode->setValue(FreeCoolingCommand->getValue());
FreeCoolingValve->setValue(FreeCoolingCommand->getValue());
/**
if (FreeCoolingCommand->getValue() == 1) { if (FreeCoolingCommand->getValue() == 1) {
FreeCoolingMode->setValue(1); FreeCoolingMode->setValue(1);
FreeCoolingValve->setValue(1); FreeCoolingValve->setValue(1);
@@ -82,4 +89,5 @@ void updateFreeCooling(Equipment<ModbusRTU>* equipment){
FreeCoolingMode->setValue(0); FreeCoolingMode->setValue(0);
FreeCoolingValve->setValue(0); FreeCoolingValve->setValue(0);
} }
*/
} }

View File

@@ -54,25 +54,30 @@
*/ */
modbusMap mb_map[] = modbusMap mb_map[] =
{ {
{COIL, 0, 0, "Chiller Start Command"}, // Use in Modscan - Hard IO in SCP, Used for Arduino simulation only {COIL, 0, 0, "Chiller Start Command"}, // Use in Modscan - Hard IO in SCP, Used for Arduino simulation only. Signal should come from PLC.
{COIL, 1, 0, "Sys 1 Alarm"}, // Use in Modscan - Hard IO in SCP, Used for Arduino simulation only {COIL, 1, 0, "Sys 1 Alarm"}, // Use in Modscan - Hard IO in SCP, Used for Arduino simulation only --> INDICATION ONLY
{COIL, 2, 0, "Sys 2 Alarm"}, // Use in Modscan - Hard IO in SCP, Used for Arduino simulation only {COIL, 2, 0, "Sys 2 Alarm"}, // Use in Modscan - Hard IO in SCP, Used for Arduino simulation only --> INDICATION ONLY
{COIL, 3, 0, "Sys 1 Fan Fault ON"}, // Use in Modscan - Used for Arduino simulation only {COIL, 3, 0, "Sys 1 Fan Fault ON"}, // Use in Modscan - Used for Arduino simulation only --> FAILSTATE
{COIL, 4, 0, "Sys 2 Fan Fault ON"}, // Use in Modscan - Used for Arduino simulation only {COIL, 4, 0, "Sys 2 Fan Fault ON"}, // Use in Modscan - Used for Arduino simulation only --> FAILSTATE
{COIL, 5, 0, "Free Cooling Mode ON"}, // Use in Modscan - Used for Arduino simulation only {COIL, 5, 0, "Free Cooling Mode ON"}, // Use in Modscan - Used for Arduino simulation only
{COIL, 6, 0, "General Alarm ON"}, // Use in Modscan - Used for Arduino simulation only
{DI, 0, 0, "Sys 1 Fan Fault Alarm"}, {DI, 65, 0, "General Alarm"}, // part of Modbus map, but not included in code --> INDICATION ONLY
{DI, 1, 0, "Sys 2 Fan Fault Alarm"}, {DI, 174, 0, "Sys 1 Fan Fault Alarm"},
{DI, 175, 0, "Sys 2 Fan Fault Alarm"},
{HR, 0, 0, "Chiller Status"}, // Use in Modscan - Hard IO in SCP, Used for Arduino simulation only {IR, 130, 0, "Free Cooling Mode"},
{HR, 1, 0, "Chiller Temp Setpoint"}, // Use in Modscan - Hard IO in SCP, Used for Arduino simulation only {IR, 165, 0, "Free Cooling Valve"},
{HR, 2, 0, "Supply Temp"}, // Use in Modscan - Hard IO in SCP (PICS?), Used for Arduino simulation only
{HR, 3, 0, "Return Temp"}, // Use in Modscan - Hard IO in SCP (PICS?), Used for Arduino simulation only
{HR, 4, 70, "System CHW Out"}, {HR, 0, 0, "Chiller Status"}, // Use in Modscan - Hard IO in SCP, Used for Arduino simulation only
{HR, 5, 70, "System CHW In"}, {HR, 1, 0, "Chiller Temp Setpoint"}, // Use in Modscan - Hard IO in SCP, Used for Arduino simulation only
{HR, 7, 0, "Sys 1 Condenser Temp"}, {HR, 2, 0, "Supply Temp"}, // Use in Modscan - Hard IO in SCP (PICS?), Used for Arduino simulation only
{HR, 9, 0, "Ambient Temp"}, {HR, 3, 0, "Return Temp"}, // Use in Modscan - Hard IO in SCP (PICS?), Used for Arduino simulation only
{HR, 4, 70, "System CHW Out"},
{HR, 5, 70, "System CHW In"},
{HR, 7, 0, "Sys 1 Condenser Temp"},
{HR, 9, 0, "Ambient Temp"},
{HR, 11, 0, "Sys 1 Oil Pressure"}, {HR, 11, 0, "Sys 1 Oil Pressure"},
{HR, 12, 0, "Sys 1 Suction Pressure"}, {HR, 12, 0, "Sys 1 Suction Pressure"},
@@ -88,6 +93,8 @@ modbusMap mb_map[] =
{HR, 24, 0, "Sys 2 Run Hours"}, {HR, 24, 0, "Sys 2 Run Hours"},
{HR, 25, 0, "Sys 2 Starts"}, {HR, 25, 0, "Sys 2 Starts"},
{HR, 26, 0, "VSD Output Frequency"}, // part of Modbus map, but not included in code
{HR, 29, 77, "Sys 1 Operational Code"}, {HR, 29, 77, "Sys 1 Operational Code"},
{HR, 30, 0, "Sys 1 Fault Code"}, {HR, 30, 0, "Sys 1 Fault Code"},
{HR, 31, 77, "Sys 2 Operational Code"}, {HR, 31, 77, "Sys 2 Operational Code"},
@@ -95,13 +102,11 @@ modbusMap mb_map[] =
{HR, 39, 0, "Local Leaving Temp Setpoint"}, {HR, 39, 0, "Local Leaving Temp Setpoint"},
{HR, 40, 0, "Sys 1 Fan KW"},
{HR, 41, 0, "Sys 1 Compressor KW"},
{HR, 42, 0, "Sys 2 Fan KW"},
{HR, 43, 0, "Sys 2 Compressor KW"},
{HR, 49, 0, "Sys 2 Condenser Temp"}, {HR, 49, 0, "Sys 2 Condenser Temp"},
{HR, 50, 0, "Free Cooling Mode"}, {HR, 140, 0, "Sys 1 Fan KW"},
{HR, 51, 0, "Free Cooling Valve"}, {HR, 141, 0, "Sys 1 Compressor KW"},
{HR, 142, 0, "Sys 2 Fan KW"},
{HR, 143, 0, "Sys 2 Compressor KW"},
}; };
//Size of modbus map used in FOR cycles, automatically calculated. //Size of modbus map used in FOR cycles, automatically calculated.