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