radiasoft / sirepo

Sirepo is a framework for scientific cloud computing. Try it out!
https://sirepo.com
Apache License 2.0
63 stars 31 forks source link

accel monitoring app #5372

Closed robnagler closed 1 year ago

robnagler commented 1 year ago

The name "accel" should be used for this app. This is a monitor for a linac that will read values from EPICS (controls network) and plot/display them.

The first phase has a single controller, which has 7 process variables (PVs) for amplitude and 7 PVs for phase. A PV returns an "array" from EPICS. The two graphs will be line plots of these arrays, updating in real time without memory (no play-rewind buttons).

All the PVs need to be read at 10hz so we're going to have to solve concurrency problem in the backend and the rendering problem on the front end. Tornado with websockets is probably the only way this can work.

There will be some other single value variables to display but that's less important.

We will need to select which list of PVs we are using. There are at least two sets: simulator and actual. We do not need to worry about what these are, just that there are two sets of PVs to select from.

@moellep let's have a short meeting to discuss. This can happen later this month.

robnagler commented 1 year ago

@gurhar1133 @e-carlin: @j-edelen wants us to work on this so let's bump the priority.

e-carlin commented 1 year ago

Talked with Jon and he sketched out the basic app. Paul is going to break out into issues and work with Morgan to get Epics setup so we can test against it. Once the issues are in created and we know how to use epics we'll figure out who is going to do the work.

Hard deadline is end of May. There is a report due in 2 weeks that it would be nice to have something to show for but not mandatory.

moellep commented 1 year ago

Accel GUI to be added to the sirepo repo. The app should have two main plots: amplitude & phase with selectors for various signals. EPICS will provide the values as arrays, 8 signals per cavity, with 2 cavities. signals: (forward, reflected, probe, transmitted) of (amplitude, phase) There will be a small set (6 - 12) of scalar settings to update in EPICS and another set of scalar readings to display. The EPICS instance will either run against a python simulation or an actual control board. The GUI will be run on locally via a docker container.

Rough mockup: accel

moellep commented 1 year ago

A recommended epics module to try out is p4p

robnagler commented 1 year ago

The name "accel" should be used for this app.

So funny. The only missing word was "not". Sorry about that.

j-edelen commented 1 year ago

You can call it llrf if you want

robnagler commented 1 year ago

This is a very specific app. It should be called something very specific like the alarms app we created.

j-edelen commented 1 year ago

accel is a very specific project. if you call it accel-llrf that is about as specific as I can get for you. It's also for a specific application but it is a generic tool that can be utilized for any llrf system built on epics. We could call it llrf-epics or epics-llrf as well and I think this would be sufficiently specific too.

robnagler commented 1 year ago

epicsllrf is distinct enough for now.

moellep commented 1 year ago

fixed with #5655