130 likes | 243 Views
LBT AO software components. Alfio Puglisi Luca Fini. Osservatorio Astrofisico di Arcetri, Florence, Italy. Summary. Hardware controllers Tested configurations Shared memory buffers IDL server Python scripting. Mx. Basic method for position control using RTDB variables. Motor
E N D
LBT AO software components Alfio Puglisi Luca Fini Osservatorio Astrofisico di Arcetri, Florence, Italy
Summary • Hardware controllers • Tested configurations • Shared memory buffers • IDL server • Python scripting
Mx Basic method for position control using RTDB variables Motor Controller RTDB Var Set MVxxSTATUS MvxxERRMSG MVxxCURPOS MvxxLOEND MvxxHIEND MVxxSPEED MvxxHISPEED MVxxTGTPOS MvxxENABLE .......... User prompt/ GUI / Automatic script Notify RS232 over Ethernet Two types of variable: global and private. Commands are implemented as writes to global variables. Answers as writes to private variables
Mx Mx Mx RTDB Var Set Motor #1 Controller MV01STATUS MV01ERRMSG MV01CURPOS MV01LOEND MV01HIEND MV01SPEED Mv01HISPEED MV01TGTPOS Mv01ENABLE MV02STATUS MV02ERRMSG MV02CURPOS MV02LOEND MV02HIEND MV02SPEED Mv02HISPEED MV02TGTPOS Mv02ENABLE MV03STATUS MV03ERRMSG MV03CURPOS MV03LOEND MV03HIEND MV03SPEED Mv03HISPEED MV03TGTPOS Mv03ENABLE ...... RS232 over Ethernet Motor #2 Controller User prompt/ GUI / Automatic script RS232 over Ethernet Motor #3 Controller RS232 over Ethernet
Mx Mx Changing a component transparently New stepper controller Application Program RTDB Var Set MVxxSTATUS MVxxERRMSG MvxxCURPOS MVxxLOEND MvxxHIEND MVxxSPEED MvxxHISPEED MVxxTGTPOS MvxxENABLE .......... RS232 over Ethernet Old stepper controller Notify RS232 over Ethernet
Text prompt Mx Testing components using variables RTDB Var Set Stepper controller MVxxSTATUS MVxxERRMSG MvxxCURPOS MvxxLOEND MvxxHIEND MVxxSPEED MvxxHISPEED MVxxTGTPOS MvxxENABLE .......... Test program Notify AND/OR RS232 over Ethernet
GUI RTR ctrl COMMIB MSGLIB MSGLIB MSGLIB ChUI MsgD RTDB WFS MSGLIB MSGLIB MSGLIB MSGLIB MSGLIB IDL process WFS ctrl MSGLIB COMMLIB Tested configuration: Arcetri WFS lab • Many different interfaces in parallel • No arbitration, since it is a test environment RTR Shared memory N E T W O R K Ethernet/RS232 converter
1 2 3 4 5 4 5 1 2 3 Shared memory buffers Ansynchronous buffers Synchronous (FIFO mode) Producer Producer 1 2 3 4 5 Shared memory Shared memory 1 3 3 4 5 Consumer Consumer #1 Consumer #2 Consumer #3
WFS MSGLIB GUI Stages ctrl Stages ctrl Stages ctrl MSGLIB MSGLIB MSGLIB COMMLIB COMMLIB COMMLIB MSGLIB MSGLIB MSGLIB MSGLIB Tested configuration: Linear stages test in Potsdam MsgD RTDB N E T W O R K Ethernet/RS232 converter X linear stage Y linear stage LAPTOP COMPUTER (!) Z linear stage
IDL process IDL process Command path MSGLIB MSGLIB Fast data path MSGLIB MsgD RTDB MSGLIB MSGLIB P45 prototype MSGLIB MSGLIB Mirror ctrl COMMLIB Tested configuration: Arcetri P45 lab Ethernet line Shared memory Shared memory N E T W O R K
Command path Answer path MSGLIB IDL server text prompt MSGLIB MSGLIB MSGLIB MSGLIB MSGLIB Mirror ctrl COMMIB MSGLIB GUI interface MSGLIB P45 / LBT672 control with IDL server Stdin/out IDL N E T W O R K MsgD RTDB N E T W O R K N E T W O R K
TCS interface Python classes MSGLIB MsgD RTDB MSGLIB C Wrapper MSGLIB MSGLIB Graphic interface MSGLIB Text command prompt TCS Python scripting interface To controller programs Python scripts
What about CPU usage? • Loop closed • Realtime display active • Mirror commands monitor • Command line interface • Various graphic interfaces • Only the graphic interfaces use a significant amount of processing power