Loading...
Searching...
No Matches
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>
#include <TransferSwitchBypassStateSensor.idl>
#include <Waveform.idl>
/**
* PDU Model
*/
module pdumodel {
/** Transfer switch interface */
interface TransferSwitch 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)
};
[unknown_fallback("REASON_UNKNOWN")]
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)
REASON_BYPASS_ACTIVE ///< Switched off due to active bypass
};
/** Transfer switch metadata */
structure MetaData {
string label; ///< Transfer switch label
Nameplate namePlate; ///< %Nameplate information
Rating 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
constant int OPERATIONAL_STATE_BYPASSED = 4; ///< Both inlets are off, but bypass is active
/* 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 selectedSource; ///< Selected source sensor
sensors.StateSensor operationalState; ///< Operational state sensor (off, normal, standby)
sensors.NumericSensor sourceVoltagePhaseSyncAngle;
///< Maximum phase difference between two sources
sensors.StateSensor overloadAlarm; ///< Overload alarm
sensors.StateSensor phaseSyncAlarm; ///< Source phases out of sync
sensors.StateSensor switchFault; ///< Switch fault (ok, open, short)
sensors.StateSensor installFaultAlarm; ///< Install fault alarm
sensors.StateSensor outputStatus; ///< Output voltage status (ok, fault)
TransferSwitchBypassStateSensor bypassState;
};
/** Transfer switch settings */
[sparse_in]
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
boolean phaseSyncSensorEnabled; ///< False to force the 'phaseSyncAlarm' sensor to unavailable
};
/** 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
};
/** 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> 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
*
* @note The Settings structure can be "sparse"; fields missing in the
* JSON representation will remain unchanged.
*/
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.
*
* @return Waveform samples
*/
Waveform getLastTransferWaveform();
/** Transfer log entry */
structure TransferLogEntry {
time timestamp; ///< Time of the transfer (UNIX timestamp, UTC)
int oldInlet; ///< Active inlet before transfer (0 for none)
int newInlet; ///< Active inlet after transfer (0 for none)
TransferReason reason; ///< Transfer reason
Waveform 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::EDevice
Common base interface for any kind of electrical device that is used in the PDU model,...
Definition EDevice.idl:27
pdumodel::TransferSwitchBypassStateSensor
Overcurrent protector trip sensor interface.
Definition TransferSwitchBypassStateSensor.idl:15
pdumodel::TransferSwitch
Transfer switch interface.
Definition TransferSwitch.idl:22
pdumodel::TransferSwitch::Type
Type
Transfer switch type.
Definition TransferSwitch.idl:29
pdumodel::TransferSwitch::ATS
@ ATS
Asynchronous transfer switch (using relays)
Definition TransferSwitch.idl:31
pdumodel::TransferSwitch::STS
@ STS
Static transfer switch (using SCRs as switch technology)
Definition TransferSwitch.idl:30
pdumodel::TransferSwitch::getLastTransferReason
TransferReason getLastTransferReason()
Get the reason for the last transfer.
pdumodel::TransferSwitch::getSettings
Settings getSettings()
Retrieve the transfer switch settings.
pdumodel::TransferSwitch::getStatistics
Statistics getStatistics()
Retrieve the transfer switch statistics.
pdumodel::TransferSwitch::setParameters
int setParameters(in Parameters parameters)
Update one or more transfer switch parameters.
pdumodel::TransferSwitch::getParameters
Parameters getParameters()
Retrieve the transfer switch parameters.
pdumodel::TransferSwitch::getSensors
Sensors getSensors()
Get the transfer switch sensors.
pdumodel::TransferSwitch::transferToSource
int transferToSource(in int source, in boolean faultOverride)
Select the active inlet.
pdumodel::TransferSwitch::getLastTransferWaveform
Waveform getLastTransferWaveform()
Get the voltage and current waveforms during the last transfer.
pdumodel::TransferSwitch::getMetaData
MetaData getMetaData()
Retrieve the transfer switch metadata.
pdumodel::TransferSwitch::Parameters
map< string, int > Parameters
Transfer switch parameter map.
Definition TransferSwitch.idl:212
pdumodel::TransferSwitch::getPoles
vector< ThrowPole > getPoles()
Get the list of transfer switch poles.
pdumodel::TransferSwitch::TransferReason
TransferReason
Definition TransferSwitch.idl:36
pdumodel::TransferSwitch::REASON_STARTUP
@ REASON_STARTUP
Startup or return to normal conditions.
Definition TransferSwitch.idl:38
pdumodel::TransferSwitch::REASON_POWER_QUALITY
@ REASON_POWER_QUALITY
New inlet provided better power quality.
Definition TransferSwitch.idl:42
pdumodel::TransferSwitch::REASON_INTERNAL_FAILURE
@ REASON_INTERNAL_FAILURE
Transferred because of hardware failure (e.g. switch fault)
Definition TransferSwitch.idl:45
pdumodel::TransferSwitch::REASON_UNKNOWN
@ REASON_UNKNOWN
Transfer reason unknown.
Definition TransferSwitch.idl:37
pdumodel::TransferSwitch::REASON_OVERLOAD
@ REASON_OVERLOAD
Switched off due to overload alarm.
Definition TransferSwitch.idl:43
pdumodel::TransferSwitch::REASON_MANUAL_TRANSFER
@ REASON_MANUAL_TRANSFER
Manual transfer.
Definition TransferSwitch.idl:39
pdumodel::TransferSwitch::REASON_POWER_FAILURE
@ REASON_POWER_FAILURE
Previous inlet power failed.
Definition TransferSwitch.idl:41
pdumodel::TransferSwitch::REASON_OVERHEAT
@ REASON_OVERHEAT
Switched off due to overheat alarm.
Definition TransferSwitch.idl:44
pdumodel::TransferSwitch::REASON_AUTO_RETRANSFER
@ REASON_AUTO_RETRANSFER
Automatic retransfer.
Definition TransferSwitch.idl:40
pdumodel::TransferSwitch::setSettings
int setSettings(in Settings settings)
Change the transfer switch settings.
pdumodel::TransferSwitch::getTransferLog
vector< TransferLogEntry > getTransferLog()
Retrieve the transfer log.
sensors::NumericSensor
A sensor with numeric readings.
Definition NumericSensor.idl:17
sensors::StateSensor
Sensor with discrete readings.
Definition StateSensor.idl:43
pdumodel
PDU Model.
Definition Circuit.idl:16
sensors
Sensors Model.
Definition AccumulatingNumericSensor.idl:13
pdumodel::Nameplate
Component nameplate information.
Definition Nameplate.idl:23
pdumodel::Rating
Numerical usage ratings.
Definition Nameplate.idl:15
pdumodel::TransferSwitch::MetaData
Transfer switch metadata.
Definition TransferSwitch.idl:50
pdumodel::TransferSwitch::MetaData::namePlate
Nameplate namePlate
Nameplate information
Definition TransferSwitch.idl:52
pdumodel::TransferSwitch::MetaData::type
Type type
Transfer switch type.
Definition TransferSwitch.idl:54
pdumodel::TransferSwitch::MetaData::rating
Rating rating
Numerical usage ratings.
Definition TransferSwitch.idl:53
pdumodel::TransferSwitch::MetaData::label
string label
Transfer switch label.
Definition TransferSwitch.idl:51
pdumodel::TransferSwitch::MetaData::sourceCount
int sourceCount
Number of sources.
Definition TransferSwitch.idl:55
pdumodel::TransferSwitch::Sensors
Transfer switch sensors.
Definition TransferSwitch.idl:72
pdumodel::TransferSwitch::Sensors::outputStatus
sensors::StateSensor outputStatus
Output voltage status (ok, fault)
Definition TransferSwitch.idl:81
pdumodel::TransferSwitch::Sensors::installFaultAlarm
sensors::StateSensor installFaultAlarm
Install fault alarm.
Definition TransferSwitch.idl:80
pdumodel::TransferSwitch::Sensors::operationalState
sensors::StateSensor operationalState
Operational state sensor (off, normal, standby)
Definition TransferSwitch.idl:74
pdumodel::TransferSwitch::Sensors::switchFault
sensors::StateSensor switchFault
Switch fault (ok, open, short)
Definition TransferSwitch.idl:79
pdumodel::TransferSwitch::Sensors::overloadAlarm
sensors::StateSensor overloadAlarm
Overload alarm.
Definition TransferSwitch.idl:77
pdumodel::TransferSwitch::Sensors::phaseSyncAlarm
sensors::StateSensor phaseSyncAlarm
Source phases out of sync.
Definition TransferSwitch.idl:78
pdumodel::TransferSwitch::Sensors::sourceVoltagePhaseSyncAngle
sensors::NumericSensor sourceVoltagePhaseSyncAngle
Maximum phase difference between two sources.
Definition TransferSwitch.idl:75
pdumodel::TransferSwitch::Sensors::selectedSource
sensors::StateSensor selectedSource
Selected source sensor.
Definition TransferSwitch.idl:73
pdumodel::TransferSwitch::SettingsChangedEvent
Event: Transfer switch settings have been changed.
Definition TransferSwitch.idl:107
pdumodel::TransferSwitch::SettingsChangedEvent::oldSettings
Settings oldSettings
Settings before change.
Definition TransferSwitch.idl:108
pdumodel::TransferSwitch::SettingsChangedEvent::newSettings
Settings newSettings
Settings after change.
Definition TransferSwitch.idl:109
pdumodel::TransferSwitch::Settings
Transfer switch settings.
Definition TransferSwitch.idl:87
pdumodel::TransferSwitch::Settings::autoRetransfer
boolean autoRetransfer
Enable automatic retransfer if power on active inlet is restored.
Definition TransferSwitch.idl:91
pdumodel::TransferSwitch::Settings::phaseSyncSensorEnabled
boolean phaseSyncSensorEnabled
False to force the 'phaseSyncAlarm' sensor to unavailable.
Definition TransferSwitch.idl:95
pdumodel::TransferSwitch::Settings::name
string name
User-defined name.
Definition TransferSwitch.idl:88
pdumodel::TransferSwitch::Settings::preferredSource
int preferredSource
Preferred inlet.
Definition TransferSwitch.idl:90
pdumodel::TransferSwitch::Settings::autoRetransferWaitTime
int autoRetransferWaitTime
Time (in s) to delay retransfer after power restoration.
Definition TransferSwitch.idl:93
pdumodel::TransferSwitch::Settings::manualTransferEnabled
boolean manualTransferEnabled
Enable state of 'manual transfer' front panel button.
Definition TransferSwitch.idl:94
pdumodel::TransferSwitch::Settings::noAutoRetransferIfPhaseFault
boolean noAutoRetransferIfPhaseFault
Don't automatically retransfer if inlet phases are out of sync.
Definition TransferSwitch.idl:92
pdumodel::TransferSwitch::Statistics
Transfer switch statistics.
Definition TransferSwitch.idl:99
pdumodel::TransferSwitch::Statistics::totalTransferTime
int totalTransferTime
Total time in us for last transfer.
Definition TransferSwitch.idl:103
pdumodel::TransferSwitch::Statistics::transferCount
int transferCount
Number of transfers since device startup.
Definition TransferSwitch.idl:100
pdumodel::TransferSwitch::Statistics::powerFailDetectTime
int powerFailDetectTime
Detection time in us for the last inlet power failure.
Definition TransferSwitch.idl:101
pdumodel::TransferSwitch::Statistics::relayOpenTime
int relayOpenTime
Time in us until all relays have opened during the last transfer.
Definition TransferSwitch.idl:102
pdumodel::TransferSwitch::TransferLogEntry
Transfer log entry.
Definition TransferSwitch.idl:188
pdumodel::TransferSwitch::TransferLogEntry::waveform
Waveform waveform
Voltage and current waveforms.
Definition TransferSwitch.idl:193
pdumodel::TransferSwitch::TransferLogEntry::oldInlet
int oldInlet
Active inlet before transfer (0 for none)
Definition TransferSwitch.idl:190
pdumodel::TransferSwitch::TransferLogEntry::switchFault
int switchFault
Switch fault status.
Definition TransferSwitch.idl:195
pdumodel::TransferSwitch::TransferLogEntry::newInlet
int newInlet
Active inlet after transfer (0 for none)
Definition TransferSwitch.idl:191
pdumodel::TransferSwitch::TransferLogEntry::reason
TransferReason reason
Transfer reason.
Definition TransferSwitch.idl:192
pdumodel::TransferSwitch::TransferLogEntry::timestamp
time timestamp
Time of the transfer (UNIX timestamp, UTC)
Definition TransferSwitch.idl:189
pdumodel::TransferSwitch::TransferLogEntry::statistics
Statistics statistics
Transfer statistics.
Definition TransferSwitch.idl:194
pdumodel::Waveform
Waveform data, including metadata.
Definition Waveform.idl:12