Merge pull request #48 from emmanuelsrlok/rdavis/PHX3_CRAH_LIEBERT_80_SLAB_TCP
Rdavis/phx3 crah liebert 80 slab tcp
This commit is contained in:
@@ -12,7 +12,7 @@
|
|||||||
default_envs = RPP_Cortex_TCP ; Select here the name of the configuration you want to download
|
default_envs = RPP_Cortex_TCP ; Select here the name of the configuration you want to download
|
||||||
|
|
||||||
[env]
|
[env]
|
||||||
upload_port = COM3
|
upload_port = COM11
|
||||||
|
|
||||||
[common_env_options]
|
[common_env_options]
|
||||||
framework = arduino
|
framework = arduino
|
||||||
|
|||||||
@@ -28,6 +28,120 @@
|
|||||||
#include <ModbusRTU.h>
|
#include <ModbusRTU.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/** The purpose of this function is to change the RA Temp, SA Temp, RA Humidity values for the purpose of testing alarms in Ignition.
|
||||||
|
* There are LOW and HIGH coils, which when activated will set the analog to a low/high range.
|
||||||
|
* The NORMAL coil will send a one-shot to set the associated analog value back into a normal range.
|
||||||
|
* If in a RunningState, the analog value will follow it's normal function (typically a sawStrategy).
|
||||||
|
*/
|
||||||
|
|
||||||
|
void updateAnalogs(Equipment<ModbusIP>* equipment){
|
||||||
|
if (equipment->getModbus_Point("RA Temp NORMAL")->getValue()==1){
|
||||||
|
equipment->setModbus_Point("Return Air Temp", 84.0f);
|
||||||
|
equipment->setModbus_Point("RA Temp Low Alarm ON", 0);
|
||||||
|
equipment->setModbus_Point("RA Temp High Alarm ON", 0);
|
||||||
|
equipment->setModbus_Point("RA Temp NORMAL", 0);
|
||||||
|
}
|
||||||
|
else if (equipment->getModbus_Point("RA Temp Low Alarm ON")->getValue() ==1){
|
||||||
|
equipment->setModbus_Point("Return Air Temp", 60.0f);
|
||||||
|
equipment->setModbus_Point("RA Temp High Alarm ON", 0);
|
||||||
|
}
|
||||||
|
else if (equipment->getModbus_Point("RA Temp High Alarm ON")->getValue()==1){
|
||||||
|
equipment->setModbus_Point("Return Air Temp", 110.0f);
|
||||||
|
equipment->setModbus_Point("RA Temp Low Alarm ON", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (equipment->getModbus_Point("RA Humidity NORMAL")->getValue()==1){
|
||||||
|
equipment->setModbus_Point("Return Humidity", 25.0f);
|
||||||
|
equipment->setModbus_Point("RA Humidity Low Alarm ON", 0);
|
||||||
|
equipment->setModbus_Point("RA Humidity High Alarm ON", 0);
|
||||||
|
equipment->setModbus_Point("RA Humidity NORMAL", 0);
|
||||||
|
}
|
||||||
|
else if (equipment->getModbus_Point("RA Humidity Low Alarm ON")->getValue()==1){
|
||||||
|
equipment->setModbus_Point("Return Humidity", 5.0f);
|
||||||
|
equipment->setModbus_Point("RA Humidity High Alarm ON", 0);
|
||||||
|
}
|
||||||
|
else if (equipment->getModbus_Point("RA Humidity High Alarm ON")->getValue()==1){
|
||||||
|
equipment->setModbus_Point("Return Humidity", 80.0f);
|
||||||
|
equipment->setModbus_Point("RA Humidity Low Alarm ON", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (equipment->getModbus_Point("SA Temp NORMAL")->getValue()==1){
|
||||||
|
equipment->setModbus_Point("Supply Air Temp", 76.0f);
|
||||||
|
equipment->setModbus_Point("SA Temp Low Alarm ON", 0);
|
||||||
|
equipment->setModbus_Point("SA Temp High Alarm ON", 0);
|
||||||
|
equipment->setModbus_Point("SA Temp NORMAL", 0);
|
||||||
|
}
|
||||||
|
else if (equipment->getModbus_Point("SA Temp Low Alarm ON")->getValue() ==1){
|
||||||
|
equipment->setModbus_Point("Supply Air Temp", 60.0f);
|
||||||
|
equipment->setModbus_Point("SA Temp High Alarm ON", 0);
|
||||||
|
}
|
||||||
|
else if (equipment->getModbus_Point("SA Temp High Alarm ON")->getValue()==1){
|
||||||
|
equipment->setModbus_Point("Supply Air Temp", 90.0f);
|
||||||
|
equipment->setModbus_Point("SA Temp Low Alarm ON", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//This function updates the Alarm bit for the Return Air Temp
|
||||||
|
void updateReturnAirTempAlarms(Equipment<ModbusIP>* equipment){
|
||||||
|
Modbus_Point<ModbusIP>* returnAirTemp = equipment -> getModbus_Point("Return Air Temp");
|
||||||
|
Modbus_Point<ModbusIP>* returnTempHighAlarmSP = equipment->getModbus_Point("Return Air Temp Alarm High SP");
|
||||||
|
Modbus_Point<ModbusIP>* returnTempLowAlarmSP = equipment->getModbus_Point("Return Air Temp Alarm Low SP");
|
||||||
|
|
||||||
|
if (returnAirTemp->getValue() < returnTempLowAlarmSP->getValue()) {
|
||||||
|
equipment->setModbus_Point("Alarm Low Return Air Temp", 1);
|
||||||
|
equipment->setModbus_Point("Alarm High Return Air Temp", 0);
|
||||||
|
}
|
||||||
|
else if (returnAirTemp->getValue() > returnTempHighAlarmSP->getValue()) {
|
||||||
|
equipment->setModbus_Point("Alarm High Return Air Temp", 1);
|
||||||
|
equipment->setModbus_Point("Alarm Low Return Air Temp", 0);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
equipment->setModbus_Point("Alarm High Return Air Temp", 0);
|
||||||
|
equipment->setModbus_Point("Alarm Low Return Air Temp", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This function updates the Alarm bit for the Supply Air Temp
|
||||||
|
void updateSupplyAirTempAlarms(Equipment<ModbusIP>* equipment){
|
||||||
|
Modbus_Point<ModbusIP>* supplyAirTemp = equipment -> getModbus_Point("Supply Air Temp");
|
||||||
|
Modbus_Point<ModbusIP>* supplyTempHighAlarmSP = equipment->getModbus_Point("Supply Air Temp Alarm High SP");
|
||||||
|
Modbus_Point<ModbusIP>* supplyTempLowAlarmSP = equipment->getModbus_Point("Supply Air Temp Alarm Low SP");
|
||||||
|
|
||||||
|
if (supplyAirTemp->getValue() > supplyTempHighAlarmSP->getValue()) {
|
||||||
|
equipment->setModbus_Point("Alarm High Supply Temp", 1);
|
||||||
|
equipment->setModbus_Point("Alarm Low Supply Temp", 0);
|
||||||
|
}
|
||||||
|
else if (supplyAirTemp->getValue() < supplyTempLowAlarmSP->getValue()) {
|
||||||
|
equipment->setModbus_Point("Alarm Low Supply Temp", 1);
|
||||||
|
equipment->setModbus_Point("Alarm High Supply Temp", 0);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
equipment->setModbus_Point("Alarm High Supply Temp", 0);
|
||||||
|
equipment->setModbus_Point("Alarm Low Supply Temp", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//This function updates the Alarm bit for the Return Humidity
|
||||||
|
void updateReturnHumidityAlarms(Equipment<ModbusIP>* equipment){
|
||||||
|
Modbus_Point<ModbusIP>* returnHumidity = equipment -> getModbus_Point("Return Humidity");
|
||||||
|
Modbus_Point<ModbusIP>* returnHumHighAlarmSP = equipment->getModbus_Point("Return Humidity Alarm High SP");
|
||||||
|
Modbus_Point<ModbusIP>* returnHumLowAlarmSP = equipment->getModbus_Point("Return Humidity Alarm Low SP");
|
||||||
|
|
||||||
|
if (returnHumidity->getValue() > returnHumHighAlarmSP->getValue()) {
|
||||||
|
equipment->setModbus_Point("Alarm High Return Humidity", 1);
|
||||||
|
equipment->setModbus_Point("Alarm Low Return Humidity", 0);
|
||||||
|
}
|
||||||
|
else if (returnHumidity->getValue() < returnHumLowAlarmSP->getValue()) {
|
||||||
|
equipment->setModbus_Point("Alarm Low Return Humidity", 1);
|
||||||
|
equipment->setModbus_Point("Alarm High Return Humidity", 0);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
equipment->setModbus_Point("Alarm High Return Humidity", 0);
|
||||||
|
equipment->setModbus_Point("Alarm Low Return Humidity", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function will update the Alarm status DI bits according to the Alarm Commands from Coils (Modscan)
|
* @brief This function will update the Alarm status DI bits according to the Alarm Commands from Coils (Modscan)
|
||||||
* It will also update the Common Alarm: if any alarm is active, the Common alarm will also be active.
|
* It will also update the Common Alarm: if any alarm is active, the Common alarm will also be active.
|
||||||
@@ -63,6 +177,12 @@ void updateAlarms(Equipment<ModbusIP>* equipment){
|
|||||||
"Alarm Compressor 1B Overload ON", "Alarm Compressor 2B Overload ON"
|
"Alarm Compressor 1B Overload ON", "Alarm Compressor 2B Overload ON"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const std::vector<std::string> alarmAnalogs = {
|
||||||
|
"Alarm High Return Air Temp", "Alarm Low Return Air Temp", "Alarm High Return Humidity", "Alarm Low Return Humidity",
|
||||||
|
"Alarm High Supply Temp", "Alarm Low Supply Temp"
|
||||||
|
};
|
||||||
|
|
||||||
|
// If any Alarm Commands = 1, set the appropriate Alarm = 1 and increment counter for number of active alarms
|
||||||
int numAlarms = 0;
|
int numAlarms = 0;
|
||||||
for (int i =0; i< alarmCommands.size() && i < alarmDescriptions.size(); ++i) {
|
for (int i =0; i< alarmCommands.size() && i < alarmDescriptions.size(); ++i) {
|
||||||
Modbus_Point<ModbusIP>* commandPoint = equipment->getModbus_Point(alarmCommands[i]);
|
Modbus_Point<ModbusIP>* commandPoint = equipment->getModbus_Point(alarmCommands[i]);
|
||||||
@@ -72,6 +192,14 @@ void updateAlarms(Equipment<ModbusIP>* equipment){
|
|||||||
if (alarmPoint->getValue() == 1) numAlarms++;
|
if (alarmPoint->getValue() == 1) numAlarms++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// If any of the analog alarms = 1, increment counter for number of active alarms
|
||||||
|
for (int j = 0; j<alarmAnalogs.size(); ++j){
|
||||||
|
Modbus_Point<ModbusIP>* alarmAnalogPoint = equipment->getModbus_Point(alarmAnalogs[j]);
|
||||||
|
if (alarmAnalogPoint) {
|
||||||
|
if (alarmAnalogPoint->getValue() == 1) numAlarms++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// If any alarms are active, set the Common Alarm = 1, else Common Alarm = 0.
|
||||||
if (numAlarms >= 1) equipment->setModbus_Point("Common Alarm", 1);
|
if (numAlarms >= 1) equipment->setModbus_Point("Common Alarm", 1);
|
||||||
else equipment->setModbus_Point("Common Alarm", 0);
|
else equipment->setModbus_Point("Common Alarm", 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,11 @@
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
class State;
|
class State;
|
||||||
|
|
||||||
|
void updateAnalogs(Equipment<ModbusIP>* equipment);
|
||||||
|
void updateReturnAirTempAlarms(Equipment<ModbusIP>* equipment);
|
||||||
|
void updateSupplyAirTempAlarms(Equipment<ModbusIP>* equipment);
|
||||||
|
void updateReturnHumidityAlarms(Equipment<ModbusIP>* equipment);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Checks common alarms (non-fail alarms) and updates the Common Alarm Modbus point.
|
* @brief Checks common alarms (non-fail alarms) and updates the Common Alarm Modbus point.
|
||||||
* @param equipment Pointer to the Equipment instance.
|
* @param equipment Pointer to the Equipment instance.
|
||||||
|
|||||||
@@ -34,9 +34,9 @@
|
|||||||
template<>
|
template<>
|
||||||
FailState<ModbusIP>::FailState(const std::vector<std::string>& activeAlarms) {
|
FailState<ModbusIP>::FailState(const std::vector<std::string>& activeAlarms) {
|
||||||
addStrategy("Fan Speed", new RampStrategy(0.0f, 10.0f, 1000));
|
addStrategy("Fan Speed", new RampStrategy(0.0f, 10.0f, 1000));
|
||||||
addStrategy("Return Humidity", new SawStrategy(0.0f, 80.0f, 5.0f, 1000));
|
addStrategy("Return Humidity", new SawStrategy(25.0f, 35.0f, 1.0f, 2000));
|
||||||
addStrategy("Return Air Temp", new SingleValueStrategy(80.0f, 1.0f, 1000));
|
addStrategy("Return Air Temp", new SingleValueStrategy(80.0f, 1.0f, 3000));
|
||||||
addStrategy("Supply Air Temp", new SingleValueStrategy(80.0f, 1.0f, 1000));
|
addStrategy("Supply Air Temp", new SingleValueStrategy(76.0f, 1.0f, 3000));
|
||||||
addStrategy("Supply Air Flow", new RampStrategy(0.0f, 1.0f, 1000));
|
addStrategy("Supply Air Flow", new RampStrategy(0.0f, 1.0f, 1000));
|
||||||
addStrategy("Fluid Control Valve Position 1", new RampStrategy(0.0f, 5.0f, 1000));
|
addStrategy("Fluid Control Valve Position 1", new RampStrategy(0.0f, 5.0f, 1000));
|
||||||
addStrategy("Fluid Control Valve Position 2", new RampStrategy(0.0f, 5.0f, 1000));
|
addStrategy("Fluid Control Valve Position 2", new RampStrategy(0.0f, 5.0f, 1000));
|
||||||
@@ -62,6 +62,10 @@ State<ModbusIP>* FailState<ModbusIP>::update(Equipment<ModbusIP>* equipment) {
|
|||||||
Serial.println("Fail update function");
|
Serial.println("Fail update function");
|
||||||
|
|
||||||
setPointValue(equipment, "System On/Off Control", 0); // my programming logic: when clear fault, should be sent to Standby Mode
|
setPointValue(equipment, "System On/Off Control", 0); // my programming logic: when clear fault, should be sent to Standby Mode
|
||||||
|
updateAnalogs(equipment);
|
||||||
|
updateReturnAirTempAlarms(equipment);
|
||||||
|
updateSupplyAirTempAlarms(equipment);
|
||||||
|
updateReturnHumidityAlarms(equipment);
|
||||||
updateAlarms(equipment);
|
updateAlarms(equipment);
|
||||||
updateDehumidifier(equipment); // Dehumidifier mode can be toggled while in FailState (for ease of Ignition HMI verification)
|
updateDehumidifier(equipment); // Dehumidifier mode can be toggled while in FailState (for ease of Ignition HMI verification)
|
||||||
|
|
||||||
|
|||||||
@@ -44,9 +44,10 @@
|
|||||||
*/
|
*/
|
||||||
template<>
|
template<>
|
||||||
RunningState<ModbusIP>::RunningState() {
|
RunningState<ModbusIP>::RunningState() {
|
||||||
addStrategy("Return Humidity", new SawStrategy(0.0f, 80.0f, 5.0f, 1000));
|
addStrategy("Return Humidity", new SawStrategy(25.0f, 35.0f, 1.0f, 2000));
|
||||||
addStrategy("Return Air Temp", new SawStrategy(66.0f, 110.0f, 2.0f, 1000));
|
addStrategy("Return Air Temp", new SawStrategy(78.0f, 88.0f, 1.0f, 3000));
|
||||||
addStrategy("Supply Air Temp", new SawStrategy(68.0f, 86.0f, 1.0f, 1000));
|
addStrategy("Supply Air Temp", new SawStrategy(73.0f, 77.0f, 1.0f, 5000));
|
||||||
|
|
||||||
addStrategy("Supply Air Flow", new SawStrategy(7.0f, 10.0f, 1.0f, 1000));
|
addStrategy("Supply Air Flow", new SawStrategy(7.0f, 10.0f, 1.0f, 1000));
|
||||||
addStrategy("Fan Speed", new PIDStrategy("Return Air Temp Setpoint", 1000, "Return Air Temp"));
|
addStrategy("Fan Speed", new PIDStrategy("Return Air Temp Setpoint", 1000, "Return Air Temp"));
|
||||||
addStrategy("Fluid Control Valve Position 1", new PIDStrategy("Supply Air Temp Setpoint", 1000, "Supply Air Temp"));
|
addStrategy("Fluid Control Valve Position 1", new PIDStrategy("Supply Air Temp Setpoint", 1000, "Supply Air Temp"));
|
||||||
@@ -72,6 +73,11 @@ template<>
|
|||||||
State<ModbusIP>* RunningState<ModbusIP>::update(Equipment<ModbusIP>* equipment) {
|
State<ModbusIP>* RunningState<ModbusIP>::update(Equipment<ModbusIP>* equipment) {
|
||||||
Serial.println("Running update function");
|
Serial.println("Running update function");
|
||||||
|
|
||||||
|
updateAnalogs(equipment);
|
||||||
|
updateReturnAirTempAlarms(equipment);
|
||||||
|
updateSupplyAirTempAlarms(equipment);
|
||||||
|
updateReturnHumidityAlarms(equipment);
|
||||||
|
|
||||||
updateAlarms(equipment);
|
updateAlarms(equipment);
|
||||||
updateDehumidifier(equipment);
|
updateDehumidifier(equipment);
|
||||||
|
|
||||||
|
|||||||
@@ -40,10 +40,10 @@
|
|||||||
template<>
|
template<>
|
||||||
StandbyState<ModbusIP>::StandbyState() {
|
StandbyState<ModbusIP>::StandbyState() {
|
||||||
addStrategy("Fan Speed", new RampStrategy(0.0f, 10.0f, 1000));
|
addStrategy("Fan Speed", new RampStrategy(0.0f, 10.0f, 1000));
|
||||||
addStrategy("Return Humidity", new SawStrategy(0.0f, 80.0f, 5.0f, 1000));
|
addStrategy("Return Humidity", new SawStrategy(25.0f, 35.0f, 1.0f, 2000));
|
||||||
addStrategy("Return Air Temp", new SingleValueStrategy(80.0f, 1.0f, 1000));
|
addStrategy("Return Air Temp", new SingleValueStrategy(80.0f, 1.0f, 3000));
|
||||||
addStrategy("Supply Air Temp", new SingleValueStrategy(80.0f, 1.0f, 1000));
|
addStrategy("Supply Air Temp", new SingleValueStrategy(76.0f, 1.0f, 3000));
|
||||||
addStrategy("Supply Air Flow", new RampStrategy(0.0f, 1.0f, 1000));
|
addStrategy("Supply Air Flow", new RampStrategy(0.0f, 1.0f, 5000));
|
||||||
addStrategy("Fluid Control Valve Position 1", new RampStrategy(0.0f, 5.0f, 1000));
|
addStrategy("Fluid Control Valve Position 1", new RampStrategy(0.0f, 5.0f, 1000));
|
||||||
addStrategy("Fluid Control Valve Position 2", new RampStrategy(0.0f, 5.0f, 1000));
|
addStrategy("Fluid Control Valve Position 2", new RampStrategy(0.0f, 5.0f, 1000));
|
||||||
}
|
}
|
||||||
@@ -67,6 +67,11 @@ State<ModbusIP>* StandbyState<ModbusIP>::update(Equipment<ModbusIP>* equipment)
|
|||||||
// STATE control, add conditions if change to a different state is needed
|
// STATE control, add conditions if change to a different state is needed
|
||||||
Serial.println("Standby update function");
|
Serial.println("Standby update function");
|
||||||
|
|
||||||
|
updateAnalogs(equipment);
|
||||||
|
updateReturnAirTempAlarms(equipment);
|
||||||
|
updateSupplyAirTempAlarms(equipment);
|
||||||
|
updateReturnHumidityAlarms(equipment);
|
||||||
|
|
||||||
updateAlarms(equipment);
|
updateAlarms(equipment);
|
||||||
updateDehumidifier(equipment);
|
updateDehumidifier(equipment);
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
* @brief Parameters for Modbus TCP communication.
|
* @brief Parameters for Modbus TCP communication.
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
#include <ModbusIP_ESP8266.h>
|
||||||
const char *ssid = "ArduinoWifiB"; /**< @brief The SSID of the WiFi network. */
|
const char *ssid = "ArduinoWifiB"; /**< @brief The SSID of the WiFi network. */
|
||||||
const char *password = "123abc456"; /**< @brief The password for the WiFi network. */
|
const char *password = "123abc456"; /**< @brief The password for the WiFi network. */
|
||||||
IPAddress local_IP(172, 17, 32, 66); /**< @brief The static IP address for the device. */
|
IPAddress local_IP(172, 17, 32, 66); /**< @brief The static IP address for the device. */
|
||||||
@@ -92,6 +93,18 @@ modbusMap mb_map[] =
|
|||||||
{COIL, 30, 0, "Alarm Compressor 1B Overload ON"}, // For Arduino testing only
|
{COIL, 30, 0, "Alarm Compressor 1B Overload ON"}, // For Arduino testing only
|
||||||
{COIL, 31, 0, "Alarm Compressor 2B Overload ON"}, // For Arduino testing only
|
{COIL, 31, 0, "Alarm Compressor 2B Overload ON"}, // For Arduino testing only
|
||||||
|
|
||||||
|
{COIL, 32, 0, "RA Temp Low Alarm ON"}, // For Arduino testing only - sets RA Temp = 60
|
||||||
|
{COIL, 33, 0, "RA Temp NORMAL"}, // For Arduino testing only - sets RA Temp = 84
|
||||||
|
{COIL, 34, 0, "RA Temp High Alarm ON"}, // For Arduino testing only - sets RA Temp = 110
|
||||||
|
|
||||||
|
{COIL, 35, 0, "RA Humidity Low Alarm ON"}, // For Arduino testing only - sets RA Humidity = 5
|
||||||
|
{COIL, 36, 0, "RA Humidity NORMAL"}, // For Arduino testing only - sets RA Humidity = 25
|
||||||
|
{COIL, 37, 0, "RA Humidity High Alarm ON"}, // For Arduino testing only - sets RA Humidity = 80
|
||||||
|
|
||||||
|
{COIL, 38, 0, "SA Temp Low Alarm ON"}, // For Arduino testing only - sets SA Temp = 60
|
||||||
|
{COIL, 39, 0, "SA Temp NORMAL"}, // For Arduino testing only - sets SA Temp = 76
|
||||||
|
{COIL, 40, 0, "SA Temp High Alarm ON"}, // For Arduino testing only - sets SA Temp = 90
|
||||||
|
|
||||||
{DI, 24, 0, "Supply Fan Status"},
|
{DI, 24, 0, "Supply Fan Status"},
|
||||||
{DI, 25, 0, "Cooling Status"},
|
{DI, 25, 0, "Cooling Status"},
|
||||||
{DI, 26, 0, "Free Cooling Status"},
|
{DI, 26, 0, "Free Cooling Status"},
|
||||||
@@ -136,15 +149,36 @@ modbusMap mb_map[] =
|
|||||||
|
|
||||||
{IR, 99, 0, "Unit Status"}, // 0:off, 1:on, 2:standby
|
{IR, 99, 0, "Unit Status"}, // 0:off, 1:on, 2:standby
|
||||||
{IR, 102, 0, "Fan Speed"},
|
{IR, 102, 0, "Fan Speed"},
|
||||||
{IR_10x, 129, 0, "Return Humidity"},
|
{IR_10x, 129, 250, "Return Humidity"},
|
||||||
{IR_10x, 742, 0, "Return Air Temp"},
|
{IR_10x, 742, 840, "Return Air Temp"},
|
||||||
{IR_10x, 743, 0, "Supply Air Temp"},
|
{IR_10x, 743, 760, "Supply Air Temp"},
|
||||||
{IR, 1465, 0, "Supply Air Flow"},
|
{IR, 1465, 0, "Supply Air Flow"},
|
||||||
{IR, 2050, 0, "Fluid Control Valve Position 1"},
|
{IR, 2050, 0, "Fluid Control Valve Position 1"},
|
||||||
{IR, 2051, 0, "Fluid Control Valve Position 2"},
|
{IR, 2051, 0, "Fluid Control Valve Position 2"},
|
||||||
|
|
||||||
|
{HR_10x, 53, 600, "Return Humidity Alarm High SP"},
|
||||||
|
{HR_10x, 54, 200, "Return Humidity Alarm Low SP"},
|
||||||
|
{HR, 56, 0, "RAHum Value"},
|
||||||
|
{HR, 57, 0, "RAHumHighAlm Value"},
|
||||||
|
{HR, 58, 0, "RAHumLowAlm Value"},
|
||||||
|
|
||||||
{HR, 732, 73, "Supply Air Temp Setpoint"},
|
{HR, 732, 73, "Supply Air Temp Setpoint"},
|
||||||
|
|
||||||
|
{HR_10x, 738, 1000, "Return Air Temp Alarm High SP"},
|
||||||
|
{HR_10x, 739, 720, "Return Air Temp Alarm Low SP"},
|
||||||
|
{HR, 741, 0, "RATemp Value"},
|
||||||
|
{HR, 742, 0, "RATempHighAlm Value"},
|
||||||
|
{HR, 743, 0, "RATempLowAlm Value"},
|
||||||
|
|
||||||
|
|
||||||
{HR, 753, 80, "Return Air Temp Setpoint"},
|
{HR, 753, 80, "Return Air Temp Setpoint"},
|
||||||
|
{HR_10x, 754, 780, "Supply Air Temp Alarm High SP"},
|
||||||
|
{HR_10x, 755, 720, "Supply Air Temp Alarm Low SP"},
|
||||||
|
{HR, 757, 0, "SATemp Value"},
|
||||||
|
{HR, 758, 0, "SATempHighAlm Value"},
|
||||||
|
{HR, 759, 0, "SATempLowAlm Value"},
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
//Size of modbus map used in FOR cycles, automatically calculated.
|
//Size of modbus map used in FOR cycles, automatically calculated.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user