.

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.