WienerMpodLvHvCtrl - - TANGO Controls
.

Average: 0
Rating Count: 0

Development status: Released, Release: 1.0
Information status: New
Repository: https://github.com/gerard-af/tango-controls-wiener-mpod-server
Contact:



Class Description


Device Server controlling the Wiener MPOD and it`s power modules such as - Wiener LV power supplies - iseg HV power supplies

It contains low level access functions for directly accessing the SNMP protocol. These functions are named snmp....

It also contains high level access functions for controlling:

  • the crate functionality. The functions are named crate....

System Message: WARNING/2 (<string>, line 12)

Bullet list ends without a blank line; unexpected unindent.

The crateGet... functions don`t take arguments. The crateSet... functions need the new value as argument.

  • the module functionality. The functions are named module....

System Message: WARNING/2 (<string>, line 16)

Bullet list ends without a blank line; unexpected unindent.

The moduleGet... functions need the slot_index as argument. The moduleSet... functions need the slot_index and the new value as argument.

  • the channel functionality. The functions are named channel....

System Message: WARNING/2 (<string>, line 20)

Bullet list ends without a blank line; unexpected unindent.

The channelGet... functions need the slot_index and the channel_index as arguments. The channelSet... functions need the slot_index, the channel_index and new value as arguments.

  • the group functionality. The functions are named group....

System Message: WARNING/2 (<string>, line 24)

Bullet list ends without a blank line; unexpected unindent.

The groupGet... functions requires the group_index as argument. The groupSet... functions need the group_index ant the new value as argument.

Further information can be found on the manufacturer`s web sites and in the user manuals for MPOD and the inserted modules.

Families: PowerSupply

Key words: iseg,EHS

Platform: Unix Like

Language: Cpp

License: GPL

Contact:

Hardware


Manufacturer: Wiener

Product:

MpodC

Bus: Ethernet

Class interface


Attributes:

Name Description
IsMibFileLoadedScalar: DevBoolean This value is set when th device server is initialized. It is true if the file WIENER-CRATE-MIB.txt was found. The functionality of the device server will be restricted without this file.
SysDescrScalar: DevString The system description. This string also contains the firmware version.
SysMainSwitchScalar: DevULong The crate`s main switch. Possible values are 0 (off) or 1 (on).
SysStatusScalar: DevULong The crate`s status. Possible values are: mainOn (0) , mainInhibit (1) , localControlOnly (2) , inputFailure (3) , outputFailure (4) , fantrayFailure (5) , sensorFailure (6), vmeSysfail (7), plugAndPlayIncompatible (8), busReset (9), supplyDerating (10), supplyFailure (11), supplyDerating2 (12), supplyFailure2 (13)
SysStatusAsStringScalar: DevString The crate`s status as string. Only the most important flag of SysStatus is reported.
SerialNumberScalar: DevString The crate's serial number.
FanSpeedScalar: DevULong The crate`s fan speed. For most crates the allowed values are 0 or 1200 - 5000.
NumberOfModulesScalar: DevULong The number of modules inserted and recognized. This is only valid when the crate has been switched on.
NumberOfChannelsScalar: DevULong The number of detected HV and LV channels. Requires that the crate has been switched on.
NumberOfGroupsScalar: DevULong The number of groups defined for HV and LV channels. Requires that thecrate has been switched on.

Commands:

Name Description
CrateGetSysStatusInput: DevVoid
Output: DevLong
—
StatusInput: DevVoid
Output: ConstDevString
Status description
This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller.
ChannelGetConfigMaxCurrentInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetConfigMaxSenseVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetConfigMaxTerminalVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetCurrentInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
Output current or trip current (HV).
Returns the output current for the specified channel. It this current is reached, the channel operates in current regulation mode. The corresponding flag is set in the channel status. If current trips are enbled for HV modules, the returned current defines the trip current.
ChannelGetCurrentFallRateInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetCurrentRiseRateInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetIndexInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
—
ChannelGetMeasurementCurrentInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetMeasurementSenseVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetMeasurementTemperatureInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetMeasurementTerminalVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetStatusInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
ChannelStatus
Return the channel status as integer for a given module slot and channel index.
ChannelGetStatusAsStringInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevString
—
ChannelGetSupervisionBehaviorInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
—
ChannelGetSupervisionMaxCurrentInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetSupervisionMaxPowerInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetSupervisionMaxTerminalVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetSupervisionMinSenseVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetSwitchInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
—
ChannelGetTripTimeInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
—
ChannelGetUserConfigInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
—
ChannelGetVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetVoltageFallRateInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelGetVoltageRiseRateInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
—
ChannelSetCurrentInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetCurrentFallRateInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetCurrentRiseRateInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetSupervisionBehaviorInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetSupervisionMaxCurrentInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetSupervisionMaxTerminalVoltageInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetSupervisionMinSenseVoltageInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetSwitchInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetTripTimeInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetUserConfigInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetVoltageInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetVoltageFallRateInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
ChannelSetVoltageRiseRateInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
—
CrateGetFanSpeedInput: DevVoid
Output: DevLong
—
CrateGetNumberOfChannelsInput: DevVoid
Output: DevLong
—
CrateGetNumberOfGroupsInput: DevVoid
Output: DevLong
—
StateInput: DevVoid
Output: State
State Code
This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller.
CrateGetNumberOfModulesInput: DevVoid
Output: DevLong
—
CrateGetOccupiedSlotsInput: DevVoid
Value
Output: DevVarULongArray
Returns the slot indices of the slots occupied by a HV or a LV module.
CrateGetSerialNumberInput: DevVoid
Output: DevString
—
CrateGetSysDescrInput: DevVoid
Output: DevString
—
CrateGetSysMainSwitchInput: DevVoid
Output: DevLong
—
CrateGetSysStatusAsStringInput: DevVoid
Output: DevString
—
CrateSetFanSpeedInput: DevLong
Value
Output: DevBoolean
—
CrateSetSysHardwareResetInput: DevULong
Value
Output: DevBoolean
—
CrateSetSysMainSwitchInput: DevULong
Value
Output: DevBoolean
—
GroupGetIndexInput: DevLong
Group index
Output: DevLong
—
GroupSetSwitchInput: DevVarULongArray
Group index, Value
Output: DevBoolean
—
ModuleGetAuxiliaryMeasurementVoltage0Input: DevLong
Slot index
Output: DevDouble
—
ModuleGetAuxiliaryMeasurementVoltage1Input: DevLong
Slot index
Output: DevDouble
—
ModuleGetDescriptionInput: DevLong
Slot index
Output: DevString
—
ModuleGetEventChannelStatusInput: DevLong
Slot index
Output: DevLong
—
ModuleGetEventStatusInput: DevLong
Slot index
Output: DevLong
—
ModuleGetEventStatusAsStringInput: DevLong
Slot index
Output: DevString
—
ModuleGetHardwareLimitCurrentInput: DevLong
Slot index
Output: DevDouble
—
ModuleGetHardwareLimitVoltageInput: DevLong
Slot index
Output: DevDouble
—
ModuleGetIndexInput: DevLong
Slot index
Output: DevLong
—
ModuleGetIsHvModuleInput: DevLong
Slot index
Output: DevBoolean
This command returns true if the module in `slot index` is a HV module.
ModuleGetMeasurementTemperature0Input: DevLong
Slot index
Output: DevDouble
—
ModuleGetMeasurementTemperature1Input: DevLong
Slot index
Output: DevDouble
—
ModuleGetMeasurementTemperature2Input: DevLong
Slot index
Output: DevDouble
—
ModuleGetMeasurementTemperature3Input: DevLong
Slot index
Output: DevDouble
—
ModuleGetNumberOfChannelsInput: DevLong
Slot index
Output: DevLong
This command returns the number of channels for the module in slot `slot index`.
ModuleGetRampSpeedCurrentInput: DevLong
Slot index
Output: DevDouble
—
ModuleGetRampSpeedVoltageInput: DevLong
Slot index
Output: DevDouble
—
ModuleGetStatusInput: DevLong
Slot index
Output: DevLong
—
ModuleGetStatusAsStringInput: DevLong
Slot index
Output: DevString
—
ModuleSetDoClearInput: DevVarULongArray
Slot index, Value
Output: DevBoolean
—
ModuleSetRampSpeedCurrentInput: DevVarDoubleArray
Slot index, Value
Output: DevBoolean
—
ModuleSetRampSpeedVoltageInput: DevVarDoubleArray
Slot index, Value
Output: DevBoolean
—
SnmpGetDescriptionInput: DevString
OID as string
Output: DevString
Description from MIB file.
This function simplifies debugging when working with the low level snmp functions. It returns a description for a given OID or the corresponding human readable string.
SnmpGetNextOIDInput: DevString
CurrentOID
Output: DevString
NextOID
For a given OID variable the next OID is returned. Rhis allows to iterate over all OIDs exposed by the MPOD controler. This is mostly a debug function. It can be used to implement a functionality similar to ``snmpwalk``.
SnmpGetValueDoubleInput: DevString
OID name
Output: DevDouble
Double value
Reads the SNMP variable defined by an OID or an equivalent human readable string. Returns a double value.
SnmpGetValueIntInput: DevString
OID name
Output: DevLong
Reads the SNMP variable defined by an OID or an equivalent human readable string. Returns an unsigned integer value.
SnmpGetValueStringInput: DevString
OID name
Output: DevString
String variable value
Reads the SNMP variable defined by an OID or an equivalent human readable string. Returns a string value.
SnmpSetValueDoubleInput: DevVarDoubleStringArray
Variable name (string) and value to set (double).
Output: DevBoolean
True on success, false otherwise.
Set a SNMP variable defined by an OID to the double value passed as an argument.
SnmpSetValueIntInput: DevVarLongStringArray
Variable name and value to set
Output: DevBoolean
True on success, false otherwise.
Set a SNMP variable defined by an OID to the integer value passed as an argument.
SnmpTranslateFromOIDInput: DevString
OID as string
Output: DevString
Human readable string
For a given OID variable the human readable form of the variable is returned such as defined in the file WIENER-CRATE-MIB.txt
SnmpTranslateToOIDInput: DevString
Human readable string
Output: DevString
OID as string
Inverses TranslateFromOID.
ChannelGetMeasurementCurrentVectorInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevVarDoubleArray
—
ChannelGetMeasurementSenseVoltageVectorInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevVarDoubleArray
—
ChannelGetMeasurementTerminalVoltageVectorInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevVarDoubleArray
—
ChannelGetMeasurementTimeVectorInput: DevVoid
Output: DevVarDoubleArray
—

Pipes:

Properties:

Name Description
IpAddrDevString IP Address for the MPOD controller.
SnmpCommunityNameDevString Used SNMP community. This property can limit the access to SNMP variables. By default `guru` defines the read-write community. The community `public` prohibits write operations. These default settings can be changed.
SnmpTimeoutDevLong This value is passed to the net-snmp library. For values <= 0 the library default is used. The value is given in ms. Appropriate values are 500 ... 2000.
ThreadPollingIntervalMsFastDevULong The communication to the MPOD can be run in a thread. This property defines a time intarval for periodic polling of all data in milliseconds. The defined interval should be 200 ms or greater. If the value of this property is 0, the thread is not started, all commands are directly sent to the MPOD, the device server waits for the response from the MPOD. The property ThreadPollingIntervalMsFast concerns the measured voltages and currents.
ThreadPollingIntervalMsIntermediateDevULong Like ThreadPollingIntervalMsFast. The property ThreadPollingIntervalMsIntermediate concerns the polling for status flags and most other SNMP variables.
ThreadPollingIntervalMsSlowDevULong Like ThreadPollingIntervalMsFast. The property ThreadPollingIntervalMsSlow concerns the polling of SNMP variables that are set by the user. These variables are read if ThreadPollingIntervalMsSlow has expired or a value has been set. This represents an important speedup for the communication with the MPOD.


Please log in to comment.

README

b"# tango-controls-wiener-mpod-server\nTango controls device servers for controlling a Wiener MPOD crate and inserted high- or low-voltage modules.\n\n# WienerMpodLvHvCtrl\nThis is the main device server class. It makes use of the net-snmp library to communicate with the MPOD over a network connection. \n\nThe SNMP crate variables are available as attributes.\nThe module and channel SNMP variables can be accessed over functions.\n\nSee the README.txt file in the WienerMpodLvHvCtrl directory for information about compilation.\nThe included html documentation gives further details about the device server configuration and the exposed functions and attributes.\n\nThe DS configuration is also illustrated in the wiki.\n\nThe DS might not run if your MPOD controller runs old firmware. We tested version MPOD 2.1.2212.0 and everything was fine. If your version is older a firmware update might be necessary.\n\n# WienerMpodHvModule\nThis device class simplifies working with a single Iseg high-voltage modules by exposing the module's and the channels' SNMP \nvariables as attributes. The channel attributes are generated dynamically for a given number of channels.\n\nIt requires a running WienerMpodLvHvCtrl device server.\n\nSee the README.txt file in the WienerMpodHvModule directory for information about compilation.\nThe included html documentation gives further details about the device server configuration and the exposed attributes.\n\nThe DS configuration is also illustrated in the wiki.\n\n# Other Software\nOther software for controlling MPOD crates is available. Using this software will familiarize you with your MPOD crate and help you to optimize your Tango-controls setup. You can also run this control software in parallel with you Tango setup.\n Easy LV|HV is available from the Analog Flavor website.\n iseg SNMPcontrol can be downloaded from the iseg support page.\n\n# Support\n contact Physical Instruments for support in France.\n contact Analog Flavor for international support.\n\n# Further Information\n the WIENER-CRATE-MIB.txt file from the Wiener website explains all used SNMP variables in details.\n the MPOD manual from the Wiener website explains how to use an MPOD.\n* the user guide of your Iseg module explains how to use your high-voltage module.\n"

29 Jan 2019, Gerard
Created:
The device class has been added to catalogue.
Added by:g2 on:29 Jan 2019, 9:43 a.m.