Lines 3-4 were replaced by lines 3-7 |
- 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. |
+ [SEA|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|https://github.com/SampleEnvironment/SECoP] as communication |
+ protocol towards the experiment control software. |
Line 6 was replaced by lines 9-10 |
- !! Frappy |
+ For a transition period [SEA|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. |
Line 8 was replaced by lines 12-111 |
- Frappy is a Python Framework |
+ !! Instruments using NICOS and Sample Environment |
+ |
+ Currently (April 2022), the following instruments running NICOS are supported to access sample environment: |
+ |
+ * __HRPT, ZEBRA, TASP, EIGER, CAMEA, FOCUS, SANS-I, AMOR, BOA__ |
+ |
+ 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: |
+ |
+ * __T__: the moveable main temperature, change before a scan: {{maw(T, 295)}}, use in a scan: {{scan(T, ...)}} |
+ * __Ts__: the sample temperature, potentially readonly |
+ * __Tr__: the regulation temperature (e.g. VTI), readonly |
+ * __B__: the magnetic field, moveable |
+ |
+ 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}} |
+ |