.

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
NumberOfGroupsScalar: DevULong The number of groups defined for HV and LV channels. Requires that thecrate has been switched on.
NumberOfChannelsScalar: DevULong The number of detected HV and LV channels. Requires that the crate has been switched on.
NumberOfModulesScalar: DevULong The number of modules inserted and recognized. This is only valid when the crate has been switched on.
FanSpeedScalar: DevULong The crate`s fan speed. For most crates the allowed values are 0 or 1200 - 5000.
SerialNumberScalar: DevString The crate's serial number.
SysStatusAsStringScalar: DevString The crate`s status as string. Only the most important flag of SysStatus is reported.
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)
SysMainSwitchScalar: DevULong The crate`s main switch. Possible values are 0 (off) or 1 (on).
SysDescrScalar: DevString The system description. This string also contains the firmware version.
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.

Commands:

Name Description
ChannelGetMeasurementTimeVectorInput: DevVoid
Output: DevVarDoubleArray
ChannelGetMeasurementTerminalVoltageVectorInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevVarDoubleArray
ChannelGetMeasurementSenseVoltageVectorInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevVarDoubleArray
ChannelGetMeasurementCurrentVectorInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevVarDoubleArray
SnmpTranslateToOIDInput: DevString
Human readable string
Output: DevString
OID as string
Inverses TranslateFromOID.
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
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.
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.
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.
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.
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.
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``.
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.
ModuleSetRampSpeedVoltageInput: DevVarDoubleArray
Slot index, Value
Output: DevBoolean
ModuleSetRampSpeedCurrentInput: DevVarDoubleArray
Slot index, Value
Output: DevBoolean
ModuleSetDoClearInput: DevVarULongArray
Slot index, Value
Output: DevBoolean
ModuleGetStatusAsStringInput: DevLong
Slot index
Output: DevString
ModuleGetStatusInput: DevLong
Slot index
Output: DevLong
ModuleGetRampSpeedVoltageInput: DevLong
Slot index
Output: DevDouble
ModuleGetRampSpeedCurrentInput: 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`.
ModuleGetMeasurementTemperature3Input: DevLong
Slot index
Output: DevDouble
ModuleGetMeasurementTemperature2Input: DevLong
Slot index
Output: DevDouble
ModuleGetMeasurementTemperature1Input: DevLong
Slot index
Output: DevDouble
ModuleGetMeasurementTemperature0Input: DevLong
Slot index
Output: DevDouble
ModuleGetIsHvModuleInput: DevLong
Slot index
Output: DevBoolean
This command returns true if the module in `slot index` is a HV module.
ModuleGetIndexInput: DevLong
Slot index
Output: DevLong
ModuleGetHardwareLimitVoltageInput: DevLong
Slot index
Output: DevDouble
ModuleGetHardwareLimitCurrentInput: DevLong
Slot index
Output: DevDouble
ModuleGetEventStatusAsStringInput: DevLong
Slot index
Output: DevString
ModuleGetEventStatusInput: DevLong
Slot index
Output: DevLong
ModuleGetEventChannelStatusInput: DevLong
Slot index
Output: DevLong
ModuleGetDescriptionInput: DevLong
Slot index
Output: DevString
ModuleGetAuxiliaryMeasurementVoltage1Input: DevLong
Slot index
Output: DevDouble
ModuleGetAuxiliaryMeasurementVoltage0Input: DevLong
Slot index
Output: DevDouble
GroupSetSwitchInput: DevVarULongArray
Group index, Value
Output: DevBoolean
GroupGetIndexInput: DevLong
Group index
Output: DevLong
CrateSetSysMainSwitchInput: DevULong
Value
Output: DevBoolean
CrateSetSysHardwareResetInput: DevULong
Value
Output: DevBoolean
CrateSetFanSpeedInput: DevLong
Value
Output: DevBoolean
CrateGetSysStatusAsStringInput: DevVoid
Output: DevString
CrateGetSysStatusInput: DevVoid
Output: DevLong
CrateGetSysMainSwitchInput: DevVoid
Output: DevLong
CrateGetSysDescrInput: DevVoid
Output: DevString
CrateGetSerialNumberInput: DevVoid
Output: DevString
CrateGetOccupiedSlotsInput: DevVoid
Value
Output: DevVarULongArray
Returns the slot indices of the slots occupied by a HV or a LV module.
CrateGetNumberOfModulesInput: 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.
CrateGetNumberOfGroupsInput: DevVoid
Output: DevLong
CrateGetNumberOfChannelsInput: DevVoid
Output: DevLong
CrateGetFanSpeedInput: DevVoid
Output: DevLong
ChannelSetVoltageRiseRateInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetVoltageFallRateInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetVoltageInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetUserConfigInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetTripTimeInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetSwitchInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetSupervisionMinSenseVoltageInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetSupervisionMaxTerminalVoltageInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetSupervisionMaxCurrentInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetSupervisionBehaviorInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetCurrentRiseRateInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetCurrentFallRateInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelSetCurrentInput: DevVarDoubleArray
ModuleSlotIndex, ChannelIndex, Value
Output: DevBoolean
ChannelGetVoltageRiseRateInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetVoltageFallRateInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetUserConfigInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
ChannelGetTripTimeInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
ChannelGetSwitchInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
ChannelGetSupervisionMinSenseVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetSupervisionMaxTerminalVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetSupervisionMaxPowerInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetSupervisionMaxCurrentInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetSupervisionBehaviorInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
ChannelGetStatusAsStringInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevString
ChannelGetStatusInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
ChannelStatus
Return the channel status as integer for a given module slot and channel index.
ChannelGetMeasurementTerminalVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetMeasurementTemperatureInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetMeasurementSenseVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetMeasurementCurrentInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetIndexInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevLong
ChannelGetCurrentRiseRateInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetCurrentFallRateInput: 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.
ChannelGetConfigMaxTerminalVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetConfigMaxSenseVoltageInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
ChannelGetConfigMaxCurrentInput: DevVarULongArray
ModuleSlotIndex, ChannelIndex
Output: DevDouble
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.

Pipes:

Properties:

Name Description
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.
ThreadPollingIntervalMsIntermediateDevULong Like ThreadPollingIntervalMsFast. The property ThreadPollingIntervalMsIntermediate concerns the polling for status flags and most other SNMP variables.
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.
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.
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.
IpAddrDevString IP Address for the MPOD controller.


Please log in to comment.

README

# tango-controls-wiener-mpod-server
[Tango controls](http://www.tango-controls.org/) device servers for controlling a [Wiener](http://www.wiener-d.com/) MPOD crate and inserted high- or low-voltage modules.

# WienerMpodLvHvCtrl
This is the main device server class. It makes use of the [net-snmp](http://www.net-snmp.org/) library to communicate with the MPOD over a network connection.

The SNMP crate variables are available as attributes.
The module and channel SNMP variables can be accessed over functions.

See the README.txt file in the WienerMpodLvHvCtrl directory for information about compilation.
The included html documentation gives further details about the device server configuration and the exposed functions and attributes.

The DS configuration is also illustrated in the [wiki](https://github.com/gerard-af/tango-controls-wiener-mpod-server/wiki).

The 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.

# WienerMpodHvModule
This device class simplifies working with a single Iseg high-voltage modules by exposing the module's and the channels' SNMP
variables as attributes. The channel attributes are generated dynamically for a given number of channels.

It requires a running WienerMpodLvHvCtrl device server.

See the README.txt file in the WienerMpodHvModule directory for information about compilation.
The included html documentation gives further details about the device server configuration and the exposed attributes.

The DS configuration is also illustrated in the [wiki](https://github.com/gerard-af/tango-controls-wiener-mpod-server/wiki).

# Other Software
Other 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.
* Easy LV|HV is available from the [Analog Flavor website](http://www.analogflavor.com/en/bespice/easy-lvhv-control-software/).
* iseg SNMPcontrol can be downloaded from the [iseg support page](https://iseg-hv.com/en/support/downloads).

# Support
* contact [Physical Instruments](https://www.physical-instruments.fr/) for support in France.
* contact [Analog Flavor](http://www.analogflavor.com/) for international support.

# Further Information
* the WIENER-CRATE-MIB.txt file from the [Wiener website](http://www.wiener-d.com/) explains all used SNMP variables in details.
* the MPOD manual from the [Wiener website](http://www.wiener-d.com/) explains how to use an MPOD.
* the user guide of your [Iseg](http://iseg-hv.com) module explains how to use your high-voltage module.

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