TransferSwitch.idl
/* SPDX-License-Identifier: BSD-3-Clause */
/*
* Copyright 2012 Raritan Inc. All rights reserved.
*/
#ifndef __PDUMODEL_TRANSFERSWITCH_IDL__
#define __PDUMODEL_TRANSFERSWITCH_IDL__
#include <EDevice.idl>
#include <Nameplate.idl>
#include <Pole.idl>
#include <StateSensor.idl>
/**
* PDU Model
*/
module pdumodel {
/** Transfer switch interface */
interface TransferSwitch_4_0_4 extends EDevice {
constant int ERR_INVALID_PARAM = 1; ///< Invalid parameters
constant int ERR_SWITCH_PREVENTED = 2; ///< Switching failed due to an alarm that may be overridden
constant int ERR_SWITCH_FAILED = 3; ///< Switching failed, no override possible
/** Transfer switch type */
enumeration Type {
STS, ///< Static transfer switch (using SCRs as switch technology)
ATS, ///< Asynchronous transfer switch (using relays)
HTS ///< Hybrid transfer switch (relays plus SCRs)
};
enumeration TransferReason {
REASON_UNKNOWN, ///< Transfer reason unknown
REASON_STARTUP, ///< Startup or return to normal conditions
REASON_MANUAL_TRANSFER, ///< Manual transfer
REASON_AUTO_RETRANSFER, ///< Automatic retransfer
REASON_POWER_FAILURE, ///< Previous inlet power failed
REASON_POWER_QUALITY, ///< New inlet provided better power quality
REASON_OVERLOAD, ///< Switched off due to overload alarm
REASON_OVERHEAT, ///< Switched off due to overheat alarm
REASON_INTERNAL_FAILURE ///< Transferred because of hardware failure (e.g. switch fault)
};
/** Transfer switch metadata */
structure MetaData {
string label; ///< Transfer switch label
Nameplate_2_0_0 namePlate; ///< %Nameplate information
Rating_2_0_0 rating; ///< Numerical usage ratings
Type type; ///< Transfer switch type
int sourceCount; ///< Number of sources
};
/* Values for operational state sensor */
constant int OPERATIONAL_STATE_OFF = 0; ///< Both inlets are off
constant int OPERATIONAL_STATE_NORMAL = 1; ///< Active inlet equals preferred inlet
constant int OPERATIONAL_STATE_STANDBY = 2; ///< Active inlet and preferred inlet are different
constant int OPERATIONAL_STATE_NON_REDUNDANT = 3; ///< Active inlet equals preferred inlet, standby power critical
/* Bitmask values for switch fault sensors */
constant int SWITCH_FAULT_I1_SHORT = 1; ///< Inlet 1 switch is permanently closed
constant int SWITCH_FAULT_I1_OPEN = 2; ///< Inlet 1 switch is permanently open
constant int SWITCH_FAULT_I2_SHORT = 4; ///< Inlet 2 switch is permanently closed
constant int SWITCH_FAULT_I2_OPEN = 8; ///< Inlet 2 switch is permanently open
/** Transfer switch sensors */
structure Sensors {
sensors.StateSensor_4_0_3 selectedSource; ///< Selected source sensor
sensors.StateSensor_4_0_3 operationalState; ///< Operational state sensor (off, normal, standby)
sensors.NumericSensor_4_0_3 sourceVoltagePhaseSyncAngle;
///< Maximum phase difference between two sources
sensors.StateSensor_4_0_3 overloadAlarm; ///< Overload alarm
sensors.StateSensor_4_0_3 phaseSyncAlarm; ///< Source phases out of sync
sensors.StateSensor_4_0_3 switchFault; ///< Switch fault (ok, open, short)
};
/** Transfer switch settings */
structure Settings {
string name; ///< User-defined name
int preferredSource; ///< Preferred inlet
boolean autoRetransfer; ///< Enable automatic retransfer if power on active inlet is restored
boolean noAutoRetransferIfPhaseFault; ///< Don't automatically retransfer if inlet phases are out of sync
int autoRetransferWaitTime; ///< Time (in s) to delay retransfer after power restoration
boolean manualTransferEnabled; ///< Enable state of 'manual transfer' front panel button
};
/** Transfer switch statistics */
structure Statistics {
int transferCount; ///< Number of transfers since device startup
int powerFailDetectTime; ///< Detection time in us for the last inlet power failure
int relayOpenTime; ///< Time in us until all relays have opened during the last transfer
int totalTransferTime; ///< Total time in us for last transfer
};
/** Sample of voltage and current waveform */
structure WaveformSample {
double voltage; ///< Voltage sample in Volts
double current; ///< Current sample in Amperes
};
/** Event: Transfer switch settings have been changed */
valueobject SettingsChangedEvent extends event.UserEvent {
Settings oldSettings; ///< Settings before change
Settings newSettings; ///< Settings after change
};
/**
* Retrieve the transfer switch metadata.
*
* @return Transfer switch metadata
*/
MetaData getMetaData();
/**
* Get the transfer switch sensors.
*
* @return Transfer switch sensors
*/
Sensors getSensors();
/**
* Get the list of transfer switch poles.
*
* @return List of poles
*/
vector<ThrowPole_2_0_0> getPoles();
/**
* Retrieve the transfer switch settings.
*
* @return Transfer switch settings
*/
Settings getSettings();
/**
* Change the transfer switch settings.
*
* @return 0 if OK
* @return 1 if any parameters are invalid
*/
int setSettings(in Settings settings);
/**
* Retrieve the transfer switch statistics.
*
* @return Transfer switch statistics
*/
Statistics getStatistics();
/**
* Select the active inlet. If the new inlet is available,
* it will become both active and preferred.
*
* @param source New active inlet index
* @param faultOverride Force switch even if the phase sync angle
* between the inputs is too large
*
* @return 0 if OK
* @return ERR_INVALID_PARAM if the selected source is invalid
* @return ERR_SWITCH_PREVENTED if switching failed due to an alarm that may be overridden
* @return ERR_SWITCH_FAILED if switching failed and no override is possible
*/
int transferToSource(in int source, in boolean faultOverride);
/**
* Get the reason for the last transfer.
*
* @return Last transfer reason
*/
TransferReason getLastTransferReason();
/**
* Get the voltage and current waveforms during the last transfer.
*
* @note The interval between two samples is 1/4800 s. This is subject
* to change in future updates.
*
* @return Waveform samples
*/
vector<WaveformSample> getLastTransferWaveform();
/** Transfer log entry */
structure TransferLogEntry {
time timestamp; ///< Time of the transfer
int oldInlet; ///< Active inlet before transfer (0 for none)
int newInlet; ///< Active inlet after transfer (0 for none)
TransferReason reason; ///< Transfer reason
vector<WaveformSample> waveform; ///< Voltage and current waveforms
Statistics statistics; ///< Transfer statistics
int switchFault; ///< Switch fault status
};
/**
* Retrieve the transfer log.
*
* @return Transfer log
*/
vector<TransferLogEntry> getTransferLog();
/**
* Transfer switch parameter map.
*
* The set of parameters, their meaning and allowed set of values are
* technology-dependent and subject to change. Do not modify any values
* without instruction from Raritan!
*/
typedef map<string, int> Parameters;
/**
* Retrieve the transfer switch parameters.
*
* @return Parameters map
*/
Parameters getParameters();
/**
* Update one or more transfer switch parameters.
*
* @param parameters Map of transfer switch parameters. Parameters
* which are not in the map remain unchanged.
*
* @return 0 if OK
* @return ERR_INVALID_PARAM if any parameter is invalid
*/
int setParameters(in Parameters parameters);
};
}
#endif
pdumodel::TransferSwitch_4_0_4::TransferLogEntry::newInlet
int newInlet
Active inlet after transfer (0 for none)
Definition: TransferSwitch.idl:187
pdumodel::TransferSwitch_4_0_4::STS
Static transfer switch (using SCRs as switch technology)
Definition: TransferSwitch.idl:28
pdumodel::TransferSwitch_4_0_4::TransferLogEntry
Transfer log entry.
Definition: TransferSwitch.idl:184
pdumodel::TransferSwitch_4_0_4::MetaData::type
Type type
Transfer switch type.
Definition: TransferSwitch.idl:50
pdumodel::TransferSwitch_4_0_4::REASON_POWER_QUALITY
New inlet provided better power quality.
Definition: TransferSwitch.idl:39
pdumodel::TransferSwitch_4_0_4::Type
Type
Transfer switch type.
Definition: TransferSwitch.idl:27
pdumodel::TransferSwitch_4_0_4::Settings::manualTransferEnabled
boolean manualTransferEnabled
Enable state of &#39;manual transfer&#39; front panel button.
Definition: TransferSwitch.idl:85
pdumodel::TransferSwitch_4_0_4::REASON_AUTO_RETRANSFER
Automatic retransfer.
Definition: TransferSwitch.idl:37
pdumodel::TransferSwitch_4_0_4::Statistics::relayOpenTime
int relayOpenTime
Time in us until all relays have opened during the last transfer.
Definition: TransferSwitch.idl:92
pdumodel::EDevice
Common base interface for any kind of electrical device that is used in the PDU model, such as inlets, OCPs and outlets.
Definition: EDevice.idl:24
pdumodel::TransferSwitch_4_0_4::REASON_STARTUP
Startup or return to normal conditions.
Definition: TransferSwitch.idl:35
pdumodel::TransferSwitch_4_0_4::Sensors::operationalState
sensors::StateSensor_4_0_3 operationalState
Operational state sensor (off, normal, standby)
Definition: TransferSwitch.idl:69
pdumodel::TransferSwitch_4_0_4::newSettings
Settings newSettings
Settings after change.
Definition: TransferSwitch.idl:105
pdumodel::TransferSwitch_4_0_4::REASON_UNKNOWN
Transfer reason unknown.
Definition: TransferSwitch.idl:34
pdumodel::TransferSwitch_4_0_4::Statistics::powerFailDetectTime
int powerFailDetectTime
Detection time in us for the last inlet power failure.
Definition: TransferSwitch.idl:91
pdumodel::TransferSwitch_4_0_4::MetaData::namePlate
Nameplate_2_0_0 namePlate
Nameplate information
Definition: TransferSwitch.idl:48
pdumodel::Nameplate_2_0_0
Component nameplate information.
Definition: Nameplate.idl:23
pdumodel::TransferSwitch_4_0_4::WaveformSample
Sample of voltage and current waveform.
Definition: TransferSwitch.idl:97
pdumodel::TransferSwitch_4_0_4::WaveformSample::voltage
double voltage
Voltage sample in Volts.
Definition: TransferSwitch.idl:98
pdumodel::TransferSwitch_4_0_4::TransferLogEntry::statistics
Statistics statistics
Transfer statistics.
Definition: TransferSwitch.idl:190
pdumodel::TransferSwitch_4_0_4::MetaData::rating
Rating_2_0_0 rating
Numerical usage ratings.
Definition: TransferSwitch.idl:49
pdumodel::TransferSwitch_4_0_4::Sensors::sourceVoltagePhaseSyncAngle
sensors::NumericSensor_4_0_3 sourceVoltagePhaseSyncAngle
Maximum phase difference between two sources.
Definition: TransferSwitch.idl:70
pdumodel::TransferSwitch_4_0_4::Statistics
Transfer switch statistics.
Definition: TransferSwitch.idl:89
pdumodel::TransferSwitch_4_0_4::REASON_OVERLOAD
Switched off due to overload alarm.
Definition: TransferSwitch.idl:40
pdumodel::TransferSwitch_4_0_4::Sensors::phaseSyncAlarm
sensors::StateSensor_4_0_3 phaseSyncAlarm
Source phases out of sync.
Definition: TransferSwitch.idl:73
pdumodel::TransferSwitch_4_0_4::REASON_OVERHEAT
Switched off due to overheat alarm.
Definition: TransferSwitch.idl:41
pdumodel::TransferSwitch_4_0_4::MetaData::label
string label
Transfer switch label.
Definition: TransferSwitch.idl:47
pdumodel::TransferSwitch_4_0_4::Statistics::totalTransferTime
int totalTransferTime
Total time in us for last transfer.
Definition: TransferSwitch.idl:93
pdumodel::TransferSwitch_4_0_4::MetaData::sourceCount
int sourceCount
Number of sources.
Definition: TransferSwitch.idl:51
pdumodel::TransferSwitch_4_0_4::Sensors::selectedSource
sensors::StateSensor_4_0_3 selectedSource
Selected source sensor.
Definition: TransferSwitch.idl:68
pdumodel::TransferSwitch_4_0_4::WaveformSample::current
double current
Current sample in Amperes.
Definition: TransferSwitch.idl:99
sensors
Sensors Model.
Definition: AccumulatingNumericSensor.idl:13
pdumodel::TransferSwitch_4_0_4::Settings::autoRetransfer
boolean autoRetransfer
Enable automatic retransfer if power on active inlet is restored.
Definition: TransferSwitch.idl:82
pdumodel::TransferSwitch_4_0_4::Settings::autoRetransferWaitTime
int autoRetransferWaitTime
Time (in s) to delay retransfer after power restoration.
Definition: TransferSwitch.idl:84
pdumodel::TransferSwitch_4_0_4::Settings
Transfer switch settings.
Definition: TransferSwitch.idl:78
pdumodel
PDU Model.
Definition: Ade.idl:12
pdumodel::TransferSwitch_4_0_4::TransferLogEntry::reason
TransferReason reason
Transfer reason.
Definition: TransferSwitch.idl:188
pdumodel::TransferSwitch_4_0_4::Settings::preferredSource
int preferredSource
Preferred inlet.
Definition: TransferSwitch.idl:81
pdumodel::TransferSwitch_4_0_4::Sensors
Transfer switch sensors.
Definition: TransferSwitch.idl:67
pdumodel::TransferSwitch_4_0_4::Statistics::transferCount
int transferCount
Number of transfers since device startup.
Definition: TransferSwitch.idl:90
pdumodel::TransferSwitch_4_0_4::Sensors::switchFault
sensors::StateSensor_4_0_3 switchFault
Switch fault (ok, open, short)
Definition: TransferSwitch.idl:74
pdumodel::TransferSwitch_4_0_4::TransferLogEntry::oldInlet
int oldInlet
Active inlet before transfer (0 for none)
Definition: TransferSwitch.idl:186
pdumodel::TransferSwitch_4_0_4::Parameters
map< string, int > Parameters
Transfer switch parameter map.
Definition: TransferSwitch.idl:208
pdumodel::TransferSwitch_4_0_4::REASON_MANUAL_TRANSFER
Manual transfer.
Definition: TransferSwitch.idl:36
pdumodel::TransferSwitch_4_0_4::Sensors::overloadAlarm
sensors::StateSensor_4_0_3 overloadAlarm
Overload alarm.
Definition: TransferSwitch.idl:72
pdumodel::TransferSwitch_4_0_4::ATS
Asynchronous transfer switch (using relays)
Definition: TransferSwitch.idl:29
pdumodel::TransferSwitch_4_0_4::TransferLogEntry::waveform
vector< WaveformSample > waveform
Voltage and current waveforms.
Definition: TransferSwitch.idl:189
sensors::NumericSensor_4_0_3
A sensor with numeric readings.
Definition: NumericSensor.idl:17
pdumodel::TransferSwitch_4_0_4::TransferReason
TransferReason
Definition: TransferSwitch.idl:33
pdumodel::Rating_2_0_0
Numerical usage ratings.
Definition: Nameplate.idl:15
sensors::StateSensor_4_0_3
Sensor with discrete readings.
Definition: StateSensor.idl:43
pdumodel::TransferSwitch_4_0_4::Settings::noAutoRetransferIfPhaseFault
boolean noAutoRetransferIfPhaseFault
Don&#39;t automatically retransfer if inlet phases are out of sync.
Definition: TransferSwitch.idl:83
pdumodel::TransferSwitch_4_0_4::TransferLogEntry::timestamp
time timestamp
Time of the transfer.
Definition: TransferSwitch.idl:185
pdumodel::TransferSwitch_4_0_4
Transfer switch interface.
Definition: TransferSwitch.idl:20
pdumodel::TransferSwitch_4_0_4::MetaData
Transfer switch metadata.
Definition: TransferSwitch.idl:46
pdumodel::TransferSwitch_4_0_4::REASON_POWER_FAILURE
Previous inlet power failed.
Definition: TransferSwitch.idl:38
pdumodel::TransferSwitch_4_0_4::Settings::name
string name
User-defined name.
Definition: TransferSwitch.idl:79
pdumodel::TransferSwitch_4_0_4::TransferLogEntry::switchFault
int switchFault
Switch fault status.
Definition: TransferSwitch.idl:191