public class ChillerSubsystem
extends org.lsst.ccs.Subsystem
implements org.lsst.ccs.framework.HasLifecycle, org.lsst.ccs.messaging.StatusMessageListener, org.lsst.ccs.messaging.AgentPresenceListener
| Modifier and Type | Field and Description |
|---|---|
protected String |
coldplateChannelPath |
protected String |
listenTo |
protected double |
maxPressure |
protected org.lsst.ccs.monitor.Monitor |
mon |
protected boolean |
requireListening |
protected double |
temperatureTimeoutFactor |
| Constructor and Description |
|---|
ChillerSubsystem()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
build()
Build phase
|
void |
clearAllPlcLatches()
Clears all latched PLC conditions.
|
void |
clearPlcLatch(String cond)
Clears a (named) latched PLC condition.
|
void |
connected(org.lsst.ccs.bus.data.AgentInfo... agents) |
void |
disconnected(org.lsst.ccs.bus.data.AgentInfo... agents) |
void |
enableChiller(boolean on)
Enables/disables the chiller operation
|
ChillerControlState |
getControlState()
Gets the state of the chiller system.
|
List<String> |
getPlcLatchNames()
Gets the list of latched PLC condition names.
|
void |
init()
init() method
|
void |
onStatusMessage(org.lsst.ccs.bus.messages.StatusMessage msg)
If message is StatusSubsystemData from monitoring, search for
Channel containing coldplate temperature data, and save data.
|
void |
postStart()
postStart (must follow Device.start())
|
void |
quitControllingTemperature()
Quit controlling temperature
|
String |
setFlow(double flow)
Set flow rate
Command is accepted even if pumps are off, still setting flow setpoint.
|
void |
setListenTo(String value)
Select refrig subsystem to listen to for average coldplate temperature
|
void |
setTankPressure(double value)
Command to set chiller tank pressure
|
void |
setTemperature(double temperature)
Set chiller temperature and go there using default ramp
|
void |
setTemperatureWithRamp(double temperature,
double ramp)
Set chiller temperature and go there using provided ramp rate
|
void |
shutdown() |
String |
vetoTransitionToNormalMode()
Veto transition to normal mode if Chiller state is not at setpoint,
or if listening to thermal subsystem is required but not active.
|
getLogHandler, getNumberCommandThreads, ping, printRunningCommands, setLogFormat, setLogHandlerLevel, setLogLevel, setStackTraceDepthcreateHelper, executeCommandRequest, getAgentInfo, getAgentPersistenceService, getAgentService, getAgentServices, getCommandCount, getComponentConfigurationEnvironment, getComponentConfigurationEnvironmentByName, getComponentLookup, getCurrentAction, getDescription, getEnvironmentLockService, getEnvironmentMessagingAccess, getLogger, getMessagingAccess, getName, getScheduler, helper, initAgent, initLogBusHandler, isInEngineeringMode, populateComponentLookup, preInit, preStart, printComponentNodeTree, publishSubsystemDataOnStatusBus, sendAck, sendNack, sendStatusMessage, setAgentName, shutdownAgent, shutdownAgent, startAgentclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpostBuild, postInit, postShutdown, start@LookupField(strategy=TREE) protected org.lsst.ccs.monitor.Monitor mon
@ConfigurationParameter(isFinal=true,
description="Require listening to thermal subsystem or equivalent for Normal mode",
units="unitless")
protected volatile boolean requireListening
@ConfigurationParameter(isFinal=true,
description="Which refrig subsystem to listen to (RefrigAgentProperties)",
units="unitless")
protected volatile String listenTo
@ConfigurationParameter(isFinal=true,
description="path of coldplate temperature Channel to listen for",
units="unitless")
protected volatile String coldplateChannelPath
@ConfigurationParameter(description="Factor on temperature-setting timeout",
range="1.0..1.4",
units="unitless")
protected volatile double temperatureTimeoutFactor
@ConfigurationParameter(isFinal=true,
description="Burst-disc presssure to stop flow",
units="psig")
protected volatile double maxPressure
public void build()
build in interface org.lsst.ccs.framework.HasLifecyclepublic void init()
init in interface org.lsst.ccs.framework.HasLifecyclepublic void postStart()
postStart in interface org.lsst.ccs.framework.HasLifecyclepublic void shutdown()
shutdown in interface org.lsst.ccs.framework.HasLifecycle@ConfigurationParameterChanger(propertyName="listenTo") public void setListenTo(String value)
String - value (case-insensitive)public String vetoTransitionToNormalMode()
vetoTransitionToNormalMode in class org.lsst.ccs.Agent@Command(type=ACTION, level=1, name="setTemperature", autoAck=false, description="go to temperature setting using default ramp") public void setTemperature(@Argument(description="tempeature in degrees") double temperature) throws org.lsst.ccs.drivers.commons.DriverException
double - temperature in degreesorg.lsst.ccs.drivers.commons.DriverException@Command(type=ACTION, level=1, name="setTemperatureWithRamp", autoAck=false, description="go to temperature setting using provided ramp") public void setTemperatureWithRamp(@Argument(description="tempeature in degrees") double temperature, @Argument(description="ramp in degrees/min") double ramp) throws org.lsst.ccs.drivers.commons.DriverException
double - temperature in degreesdouble - ramp in degrees/minuteorg.lsst.ccs.drivers.commons.DriverException@Command(type=ACTION, level=1, name="quitControllingTemperature", description="stop controlling temperature") public void quitControllingTemperature() throws org.lsst.ccs.drivers.commons.DriverException
org.lsst.ccs.drivers.commons.DriverException@Command(type=ACTION, level=1, name="setFlow", description="set flow rate of chilled fluid") public String setFlow(@Argument(description="flow rate in gpm") double flow) throws org.lsst.ccs.drivers.commons.DriverException
double - flow Requested flow rate in gallons per minuteorg.lsst.ccs.drivers.commons.DriverException@Command(type=ACTION, level=1, name="setTankPressure", description="Set tank pressure in psig") public void setTankPressure(@Argument(description="Tank pressure set value in psig") double value) throws org.lsst.ccs.drivers.commons.DriverException
value - Tank pressure setting (psig)org.lsst.ccs.drivers.commons.DriverExceptionpublic void onStatusMessage(org.lsst.ccs.bus.messages.StatusMessage msg)
onStatusMessage in interface org.lsst.ccs.messaging.StatusMessageListenerpublic void connected(org.lsst.ccs.bus.data.AgentInfo... agents)
connected in interface org.lsst.ccs.messaging.AgentPresenceListenerpublic void disconnected(org.lsst.ccs.bus.data.AgentInfo... agents)
disconnected in interface org.lsst.ccs.messaging.AgentPresenceListener@Command(type=QUERY, description="Get the chiller state", level=0) public ChillerControlState getControlState()
@Command(type=ACTION, description="Enable or disable chiller operation") public void enableChiller(boolean on)
on - Whether enabling@Command(type=QUERY, description="Get latched PLC condition names", level=0) public List<String> getPlcLatchNames()
@Command(type=ACTION, description="Clear a latched PLC condition") public void clearPlcLatch(@Argument(description="The condition name") String cond) throws RefrigException
cond - The condition name.RefrigException@Command(type=QUERY, description="Clear all latched PLC conditions", level=0) public void clearAllPlcLatches()
Copyright © 2023 LSST. All rights reserved.