40029, HB registers
Updated Fan speed feedback calculation, Heartbeat registers
This commit is contained in:
@@ -44,15 +44,15 @@ template<>
|
||||
RunningState<ModbusIP>::RunningState() {
|
||||
addStrategy("Fan Min Speed", new SingleValueStrategy(30.0f, 0.0f, 1000));
|
||||
addStrategy("Fan Max Speed", new SingleValueStrategy(100.0f, 0.0f, 1000));
|
||||
addStrategy("Speed Fan 1", new RampStrategy(0.0f, 100.0f, 200));
|
||||
addStrategy("Speed Fan 2", new RampStrategy(0.0f, 100.0f, 200));
|
||||
addStrategy("Speed Fan 3", new RampStrategy(0.0f, 100.0f, 200));
|
||||
addStrategy("Speed Fan 4", new RampStrategy(0.0f, 100.0f, 200));
|
||||
addStrategy("Speed Fan 5", new RampStrategy(0.0f, 100.0f, 200));
|
||||
addStrategy("Speed Fan 6", new RampStrategy(0.0f, 100.0f, 200));
|
||||
addStrategy("Speed Fan 7", new RampStrategy(0.0f, 100.0f, 200));
|
||||
addStrategy("Speed Fan 8", new RampStrategy(0.0f, 100.0f, 200));
|
||||
addStrategy("Speed Fan 9", new RampStrategy(0.0f, 100.0f, 200));
|
||||
addStrategy("Speed Fan 1", new RampStrategy(0.0f, 100.0f, 1000));
|
||||
addStrategy("Speed Fan 2", new RampStrategy(0.0f, 100.0f, 1000));
|
||||
addStrategy("Speed Fan 3", new RampStrategy(0.0f, 100.0f, 1000));
|
||||
addStrategy("Speed Fan 4", new RampStrategy(0.0f, 100.0f, 1000));
|
||||
addStrategy("Speed Fan 5", new RampStrategy(0.0f, 100.0f, 1000));
|
||||
addStrategy("Speed Fan 6", new RampStrategy(0.0f, 100.0f, 1000));
|
||||
addStrategy("Speed Fan 7", new RampStrategy(0.0f, 100.0f, 1000));
|
||||
addStrategy("Speed Fan 8", new RampStrategy(0.0f, 100.0f, 1000));
|
||||
addStrategy("Speed Fan 9", new RampStrategy(0.0f, 100.0f, 1000));
|
||||
addStrategy("Amps Fan 1", new RampStrategy(15.0f, 2.5f, 1000));
|
||||
addStrategy("Amps Fan 2", new RampStrategy(15.0f, 2.5f, 1000));
|
||||
addStrategy("Amps Fan 3", new RampStrategy(15.0f, 2.5f, 1000));
|
||||
@@ -73,11 +73,11 @@ RunningState<ModbusIP>::RunningState() {
|
||||
addStrategy("Operating Hours Fan 9", new TotalizerStrategy(1000));
|
||||
addStrategy("Supply Air Temp", new SawStrategy(60.0f, 100.0f, 2.2f, 1000)); // Won't initialize at lower bound; always initializes at 0 b/c FLOAT; initialize manually via Modscan
|
||||
addStrategy("Return Air Humidity", new SawStrategy(25.0f, 40.0f, 1.1f, 1000));
|
||||
addStrategy("Return Air Temp", new SawStrategy(70.0f, 80.0f, 0.8f, 1000));
|
||||
addStrategy("Filter Differential Pressure", new SawStrategy(0.0f, 5.0f, 0.2f, 1000));
|
||||
addStrategy("Return Air Temp", new SawStrategy(84.0f, 87.0f, 0.2f, 1000));
|
||||
addStrategy("Filter Differential Pressure", new SawStrategy(0.1f, 5.1f, 0.2f, 1000));
|
||||
addStrategy("CW Valve Position", new PIDStrategy("Supply Air Temp Setpoint", 1000, "Supply Air Temp")); // SAT must be greater than SAT Setpoint for this PID to work.
|
||||
addStrategy("CRAH Heartbeat", new SawStrategy(0.0f, 60.0f, 1.0f, 1000));
|
||||
addStrategy("Fan Speed Feedback", new RampStrategy(0.0f, 1.0f, 200));
|
||||
addStrategy("Fan Speed Feedback", new RampStrategy(0.0f, 2.0f, 200));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -121,12 +121,14 @@ State<ModbusIP>* RunningState<ModbusIP>::update(Equipment<ModbusIP>* equipment)
|
||||
|
||||
// This will update the Fan Speed Setpoint dynamically while in run mode. Fan Speed Setpoint changed through Modscan.
|
||||
// This functioanlity matches the UMAS SOO specifically for how it calculates Speed Setpoint.
|
||||
float BMS_Speed_Setpoint = getPointValue(equipment, "Fan Speed Setpoint");
|
||||
float BMS_Speed_Setpoint_Pct = BMS_Speed_Setpoint / 100.0f;
|
||||
float Fan_Min_Speed = getPointValue(equipment, "Fan Min Speed");
|
||||
float Fan_Max_Speed = getPointValue(equipment, "Fan Max Speed");
|
||||
float Fan_Nominal_Speed = 1900.0f;
|
||||
float Fan_Speed_Setpoint = (BMS_Speed_Setpoint_Pct * (Fan_Max_Speed - Fan_Min_Speed) + Fan_Min_Speed)/100.0f * Fan_Nominal_Speed;
|
||||
|
||||
float BMS_Speed_Setpoint = getPointValue(equipment, "Fan Speed Setpoint");
|
||||
float BMS_Speed_Setpoint_Pct = BMS_Speed_Setpoint / 100.0f;
|
||||
float Fan_Speed_Setpoint = BMS_Speed_Setpoint_Pct * (Fan_Max_Speed - Fan_Min_Speed) + Fan_Min_Speed;
|
||||
float Fan_Speed_Setpoint_RPM = Fan_Speed_Setpoint / 100.0f * Fan_Nominal_Speed;
|
||||
for (int i = 0; i < 10; i++){
|
||||
std::string pointName = "Speed Fan " + std::to_string(i);
|
||||
Strategy_Behavior* strat = getStrategy(pointName);
|
||||
@@ -134,12 +136,14 @@ State<ModbusIP>* RunningState<ModbusIP>::update(Equipment<ModbusIP>* equipment)
|
||||
RampStrategy* ramp = static_cast<RampStrategy*>(strat);
|
||||
if (ramp){
|
||||
if (BMS_Speed_Setpoint > 100){
|
||||
Fan_Speed_Setpoint = Fan_Max_Speed / 100.0f * Fan_Nominal_Speed;
|
||||
Fan_Speed_Setpoint = Fan_Max_Speed;
|
||||
Fan_Speed_Setpoint_RPM = Fan_Max_Speed / 100.0f * Fan_Nominal_Speed;
|
||||
}
|
||||
else if (BMS_Speed_Setpoint < 0){
|
||||
Fan_Speed_Setpoint = Fan_Min_Speed / 100.0f * Fan_Nominal_Speed;
|
||||
Fan_Speed_Setpoint = Fan_Min_Speed;
|
||||
Fan_Speed_Setpoint_RPM = Fan_Min_Speed / 100.0f * Fan_Nominal_Speed;
|
||||
}
|
||||
ramp->setTarget(Fan_Speed_Setpoint);
|
||||
ramp->setTarget(Fan_Speed_Setpoint_RPM);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -147,7 +151,7 @@ State<ModbusIP>* RunningState<ModbusIP>::update(Equipment<ModbusIP>* equipment)
|
||||
// Fan Speed Feedback dynamically ramp to Fan Speed Setpoint sent to Arduino
|
||||
Strategy_Behavior* speedFeedback = getStrategy("Fan Speed Feedback");
|
||||
if (speedFeedback){
|
||||
static_cast<RampStrategy*>(speedFeedback)->setTarget(BMS_Speed_Setpoint);
|
||||
static_cast<RampStrategy*>(speedFeedback)->setTarget(Fan_Speed_Setpoint);
|
||||
}
|
||||
|
||||
// Apply any strategies defined for the standby state
|
||||
|
||||
@@ -135,8 +135,7 @@ modbusMap mb_map[] =
|
||||
{IR_FLOAT, 73, 0, "Amps Fan 6"},
|
||||
{IR_FLOAT, 75, 0, "Amps Fan 7"},
|
||||
{IR_FLOAT, 77, 0, "Amps Fan 8"},
|
||||
{IR_FLOAT, 79, 0, "Amps Fan 9"},
|
||||
{IR_FLOAT, 99, 0, "CRAH Heartbeat"},
|
||||
{IR_FLOAT, 79, 0, "Amps Fan 9"},
|
||||
|
||||
{HR_FLOAT, 1, 0, "High Return Air Temp Setpoint"}, // default: 100, set locally on unit
|
||||
{HR_FLOAT, 3, 0, "Low Return Air Temp Setpoint"}, // default: 72, set locally on unit
|
||||
@@ -152,7 +151,8 @@ modbusMap mb_map[] =
|
||||
{HR, 25, 0, "BMS Control Source"}, // Receive signal from PLC 0:Speed, 1:Room Temp
|
||||
{HR, 26, 2, "BMS Enable Source"}, // Receive signal from PLC 0:Keypad, 1:DI, 2:BMS
|
||||
{HR_FLOAT, 28, 0, "Fan Speed Feedback"},
|
||||
{HR_FLOAT, 99, 0, "PLC Heartbeat"}, // This will be seconds from PLC - if doesn't change for 15 seconds set BMS Enable Source to Local (0)
|
||||
{HR, 95, 0, "CRAH Heartbeat"},
|
||||
{HR, 96, 0, "BMS Heartbeat"}, // This will be seconds from PLC - if doesn't change for 15 seconds set BMS Enable Source to Local (0)
|
||||
|
||||
};
|
||||
//Size of modbus map used in FOR cycles, automatically calculated.
|
||||
|
||||
Reference in New Issue
Block a user