You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.
I have an architecture question. I am posting it here as others may benefit from these solutions because I believe this problem concerns many centers.
We have recently had a requirement about combining movements of monochromator and undulator (ID’s) during scans. Our first, test solution is based on PseudoMotorController in Sardana where physical motors are mirror and grating pitch as well as undulator’s gap and pseudo motor is monochromator’s Energy. As undulator’s motors are controlled via PLCs and in Tango via DeviceServer, gap motor is based on TangoAttributeMotorController (with all its disadvantages, unfortunaltely). The relationship between energy and gap is given by the Beamline Operator-defined polynomial. Generally speaking this solution is working but PLCs are sometimes giving statuses where new setpoints are not allowed (motors positioning, etc.) and handling it in Sardana is tricky and sometimes scans are crashing (timeouts mainly). On the other hand, creating a dedicated controller for the insertion device (in our case for the undulator) would be quite difficult due to the very low level communication with the PLC.
I wonder what solutions to this problem exist in other centers? (I already know the MAX IV's one - thanks once again for a detailed explanation!)
What would be the best solution from an architectural standpoint?
I would be grateful for any tips on this topic :)
Cheers,
Michal
The text was updated successfully, but these errors were encountered:
Hi,
I have an architecture question. I am posting it here as others may benefit from these solutions because I believe this problem concerns many centers.
We have recently had a requirement about combining movements of monochromator and undulator (ID’s) during scans. Our first, test solution is based on
PseudoMotorController
in Sardana where physical motors are mirror and grating pitch as well as undulator’s gap and pseudo motor is monochromator’s Energy. As undulator’s motors are controlled via PLCs and in Tango via DeviceServer, gap motor is based onTangoAttributeMotorController
(with all its disadvantages, unfortunaltely). The relationship between energy and gap is given by the Beamline Operator-defined polynomial. Generally speaking this solution is working but PLCs are sometimes giving statuses where new setpoints are not allowed (motors positioning, etc.) and handling it in Sardana is tricky and sometimes scans are crashing (timeouts mainly). On the other hand, creating a dedicated controller for the insertion device (in our case for the undulator) would be quite difficult due to the very low level communication with the PLC.I wonder what solutions to this problem exist in other centers? (I already know the MAX IV's one - thanks once again for a detailed explanation!)
What would be the best solution from an architectural standpoint?
I would be grateful for any tips on this topic :)
Cheers,
Michal
The text was updated successfully, but these errors were encountered: