Analysing protection systems for giant particle accelerators #2441
stevemolloy
started this conversation in
Show and tell
Replies: 1 comment
-
An amazing application of Prolog! Thank you a lot for sharing this, and for your kind words! If possible, please consider giving a talk about this approach at the Scryer Prolog Meetup 2024 in November: Please keep up the great work, it is a pleasure to see this developing so fast and so fruitfully! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello all!
I work in Accelerator Operations for the Swedish national light source -- MAX-IV. This consists of three large scale particle accelerators, each of which delivers highly focused beams of light for our users. A major problem with all such accelerators is that things can go wrong in exciting (and expensive!) ways and so considerable effort goes into systems that act to protect the machine. Perhaps by disallowing operation if certain conditions are not met, or perhaps by dumping the beams if a system strays outside its allowed parameters.
I discovered Prolog through a friend, and was soon struck by the possibility of using it to investigate our Machine Protection System (MPS). This system operates using PLC's, and their configuration can be extracted into a JSON file for analysis. My plan is to take this JSON file, and crunch it with Prolog to see what I can extract.
You can see my progress here: https://github.com/stevemolloy/prolog_mps
There is not so much at the moment, but I can already use the Prolog top-level to reason about things using my own system expertise. For example, using a subset of the rules I can see that there is one and only one way that the accelerator is allowed to run -- when there are precisely zero active alarms. Which is just as it should be.
Any comments or criticisms or this idea or of the code itself would be gladly received.
I should also mention that I am heavily indebted to the kind help of @triska Via video chat, code comments, and help on IRC, his expertise has been invaluable!
Beta Was this translation helpful? Give feedback.
All reactions