Musst configuration
Bliss musst configuration
An example for a typical musst configuration for fscan can be:
name: musst_tdxrd
class: musst
plugin: generic
gpib:
url: tango_gpib_device_server://id11/gpib/lid112_0
pad: 14
timeout: 10.
musst_prg_root: /musst_prog
channels:
- label: diffrz
type: encoder
channel: 1
- label: diffry
type: encoder
channel: 2
- type: switch
channel: 3
name: $iceid111_switch
- type: switch
channel: 4
name: $iceid113_switch
- type: adc10
channel: 5
label: mch5
counter_name: mch5
- type: adc10
channel: 6
label: mch6
counter_name: mch6
Configuration keywords:
-
type = encoder : corresponds to an encoder plugged into a musst input. It can come from the encoder itself or from the icepap driver board front panel. The label field musst be the motor name so that musst can locate the encoder. If using a motor alias in your bliss session, this label must be set to the real motor name, not to the alias name.
-
type = switch : the reference to the switch is set in the name field. In the case of an icepap, the cable connected to the musst channel comes from the icepap rack main module DB9 connector. It allows to send encoder or motor steps of all the motors configured on this rack. The field label must not be declared. To avoid confusing the fscan encoder lookup stage, it is recommended to configure switches after direct encoder channels.
-
other types : adc / counters can be configured as stated in the bliss documentation.
For types encoder and switch, musst channels must be configured as ENC. Use the following command:
mymusst.putget("CHCFG CH1 ENC")
If needed, mainly in case of direct encoder connection, the encoder signal can be inverted at the musst channel level:
mymusst.putget("CHCFG CH2 ENC INV")
See the musst documentation for more details.
Checking encoder input
For each motor, fscan expects either encoder or motor steps to be provided by one musst channel. To convert these steps to positions, fscan is using the motor encoder steps_per_unit parameter, if it exists (in bliss, mymotor.encoder.steps_per_unit), otherwise the motor steps_per_unit (in bliss, mymotor.steps_per_unit) will be used. The direction of steps recorded on musst musst match the motor dial steps direction.
A small script is provided for checking that a motor and its musst channel are working properly. It will launch a movement on the motor in both directions and check direction and number of steps.
FSCANTEST [1]: from fscan.utils import check_motor_on_musst
FSCANTEST [3]: check_motor_on_musst(musst1, mot2, 1.)
motor resolution = 200.0 steps/unit
encoder resolution = 200.0 steps/unit
> Search motor on MUSST:
found on channel = 2
channel type = ENC
> Move relative +1:
Moving mot2 from -3.55 to -2.55
Steps seen on MUSST = 200 steps
> Move relative -1:
Moving mot2 from -2.55 to -3.55
Steps seen on MUSST = -200 steps
> CHECK RESULT:
All tests OK. You can use this motor/musst in fscans.
The tool will report, if either the number of steps recorded or the direction is wrong.