Frappy


Sample Environment at SINQ under NICOS

SEA is getting outdated sooner or later, and is based on SICS, that is why the transition from SICS to NICOS is a good trigger to go also for a new sample environment framework Frappy. Frappy is a Python Framework developed by Enrico Faulhaber (MLZ) and Markus Zolliker (PSI), for creating servers to access mobile equipment like sample environment, using SECoP as communication protocol towards the experiment control software.

For a transition period SEA is still used for all devices not yet migrated to Frappy. Today (spring 2022) still most of the sample environment devices at SINQ are controlled by SEA.

Instruments using NICOS and Sample Environment

Currently (April 2022), the following instruments running NICOS are supported to access sample environment:

Some of the features described here might not yet be up to date on your instrument, please contact Markus Zolliker, if you want to use sample environment with NICOS, and things are not working as expected.

Accessing Sample Environment at SINQ from NICOS

By default a setup 'frappy' is loaded providing the following commands:

frappy('<main cfg>')                     # change main SE configuration (e.g. cryostat)
frappy('<main cfg>', '<stick cfg>')      # change main and sample-stick configuration
frappy(stick='<stick cfg>')              # change stick only
frappy('')                               # remove main SE apparatus including stick
frappy()                                 # show the current SE configuration
frappy(addons=...)                       # similar to above, for additional equipment not covered by main/stick
frappy_list()                            # list available configurations

note: use AddSetup('frappy') if the setup is not yet loaded

Test integration of SE into NICOS

For testing there are 2 simulated main devices 'cryosim' and 'magsim' available. Please check with them if temperatures and magnetic field values are saved in your datafile, and other things like temperature or magnetic field scans.

Frequently Asked Questions

Are values of sample environment devices automatically stored in the data file?

When the SE configuration is changed, automatically the following aliases are created, if the corresponding object is available:

The aliases above (except T) are automatically put into the envrionment list, and should be saved in the data file. Typically, either T and Tr or T and Ts point to the same real device.

You might add additional devices to be stored with the AddEnvironment command.

There is nothing displayed on the SEA client, what is going wrong here?

It might be that the SEA server is not yet running. On the instruments mentioned above, the SEA server is no longer controlled by monit. Controlling the SEA and Frappy servers:

sea start         # start the SEA and graph servers
sea restart       # restart above
sea list          # show running SEA and Frappy servers
sea help          # list available sea subcommands

The sample environment device I want to use is not available

Please use the command frappy_list() in NICOS to see a list of available configurations. Creating the configuration files for Frappy is still under work. The devices to be used on above mentioned instruments according to the schedule are created first. Please contact Markus Zolliker, if you want to use a device not yet on the list.

How to Restart a Frappy server

If a sample environment device is not working properly, for example due to communication problems, it might be helpful to stop and restart the frappy server:

frappy('')                           # stop main and stick frappy servers
frappy('<main cfg>', '<stick cfg>')  # start main and stick frappy servers

If the problem is related to a device on the stick or addons, you will need the commands frappy_stick or frappy_addons.

How do I configure to use the sample stick rotation instead of the sample table for omega?

With vertical field cryomagnets, typically the stick rotation should be used instead of the standard sample table for omega. In this case (currently configured on ZEBRA and TASP), the frappy_main setups should contain a device se_om for the stick rotation. This is automatically assigned to the device used for omega.

Instrument name of omega name of sample table
ZEBRA om om_raw
TASP a3 a3_st
CAMEA a3 som

On horizontal field magnets, the stick rotation is called om_stick, and is not automatically assigned to omega. In both cases, an alias dom is assigned to either se_om or se_stickrot, whatever is present.

To change this behaviour, it is possible to assign another device to the alias, e.g.

om.alias = se_stickrot