Beamline experiments with BLISS @ ESRF

presented by Matias Guijarro - BLISS team

 

Beamline Control Unit / Software Group

 

ESRF, Grenoble, France

17th Biennial International Conference on
Accelerator and Large Experimental Physics

ESRF Extremely Brilliant Source (EBS) update program

4th generation light source

150 M€ investment (2015-2022)

100x better

X-ray beams

New

state-of-the-art

beamlines

Data as a Service strategy

Beamline Instrumentation Support Software

BLISS project goals

State-of-the-art beamline control

Advanced scans, Trajectories,

Data management

Integrated environment

Configuration, Command Line Interface, Live Data Display

Ready for new challenges

Online data analysis, live feedback, extensibility of the system

BLISS philosophy

Python (3.7=>) everywhere

 

Software library first,

with a set of tools built upon

  • Command Line Interface
  • Configuration application
  • Online visualization

 

To provide a generic scan engine

for all kind of data acquisition procedures

Producer/Consumer model for Data Management, to decouple acquisition and data storage

online data analysis

data visualisation

data archiving

Beacon server

Beacon static configuration service

BLISS modular architecture

1

2

3

Beacon static configuration service

Web interface for configuration editing

Beacon server

.yml

Devices & sequences configuration in YAML format

User sessions to group beamline devices for an experiment, Python setup file

Can replace TANGO DB

to have all beamline configuration at the same place

Beacon server

configuration

+ services based on

Message broker: data channels,

distributed lock

Transient data store

Settings cache

1

Centralized logging and log viewer web application

Beacon static configuration service

BLISS scan engine

synchronization

low latency

flexibility

2

Beacon static configuration service

BLISS scan framework

2

Acquisition Chain

tree with master and slave nodes

Acquisition Master

triggers data acquisition

Acquisition Slave

takes data

(can also take data)

Acquisition Channel

Acquisition Channel

BLISS scan example

Continuous scan with a motor triggering MCA and 2D detector acquisition, while a timer triggers diode readings

2

image/svg+xml

BLISS online data publishing

While a scan is running, data is published to the redis database provided by Beacon

  • scalar values are stored directly

  • bigger data (images, spectra) is just referenced

  • configurable time to live (TTL)

Any external process can access redis data to perform online data analysis or live feedback for example

3

BLISS scan data flow

3

Acquisition chain

Channels

BLISS development

BLISS development methodology

Prioritized

todo

Analysis phase

Coding

Integration tests

Ready to merge

new features

bug fixes

backlog

(tasks)

Kanban

BLISS project development tools

Issues list, Kanban board, wiki, and more on

ESRF-hosted gitlab

Continuous Integration:

gitlab-ci

Deployment:

Documentation:

MkDocs

Code formatting: Black

Sharing knowledge within the BLISS team

Daily stand-ups

Pair programming

"Stop and Solve" meetings

Guidelines, good practices

(very useful for newcomers)

BLISS team ensures Quality Assurance

Automatic tests pipeline

(980+ tests)

Systematic code review

Only merge code with documentation

Integration tests on beamlines (real hardware)

Dealing with the technical debt

Technical debt = Tetris game

(you can't win)

Refactoring helps to fill the holes,

but with time penalty

ID31

BM32

ID21

ID15

ID13

ID11

ID10

BLISS deployment (2020)

Text

In 2018, first tests with users: MX, ID10, ID11, ID13, ID31

BM29

BM23

ID22

ID19

ID29

ID30A+B

ID23

ID26

Conclusion

BLISS is the new Python-based DAQ and experiments control system

BLISS is being designed for the needs of the EBS beamlines

Half of the beamlines are being converted to BLISS during the EBS shutdown (2019-2020)

Would be happy to start collaborations around BLISS with interested people

Acknowledgements

BLISS Core Development team

From left to right:

B. Formet (CEA), M. Guijarro,

P. Pancino, L. Pithan,

P. Guillou,

S. Petitdemange,

C. Guilloud

Beamline Operation team

A. Beteva, G. Berruyer, L. Claustre, S. Fisher, A. Homs, R. Homs, M-C. Lagier, A. Mauro, C. Muzelle, S. Ohlsson, M. Oscarsson, E. Papillon, F. Sever, V. Valls, H. Witsch  

head of Software Group: A. Gotz, head of BCU: J. Meyer