If collimator (or other motor) gets stuck during raster scan, does not display grid scan. #9

Closed
opened 2025-07-07 17:09:50 +02:00 by appleb_m · 1 comment
Contributor

Following error occurred when the collimator motor got stuck at the end of a raster scan moving from data collection back to sample alignment. This also prevents grid scan results from being displayed in the GUI.


Experiment parameters created: run_number=3 type='standard' beamline_parameters=BeamlineParametersOutput(synchrotron='Swiss Light Source', beamline='X06DA', detector=Detector(manufacturer='DECTRIS', model='PILATUS4 2M', type='photon-counting', serial_number='D029955', detector_distance_mm=110.0, beam_center_x_px=770.0, beam_center_y_px=858.0, pixel_size_x_um=150.00000596046448, pixel_size_y_um=150.00000596046448, dataset=Datasets(filepath='250707/PSIMX071/01/Lysozyme_bromine_1_003', status='written', written_at=datetime.datetime(2025, 7, 7, 17, 3, 57, 680325))), wavelength_ang=0.9535456083679433, energy_ke_v=13.002, ring_current_m_a=401.01050170898435, ring_mode='Beamline Development', undulator=None, undulatorgap_mm=None, monochromator='Si111', transmission=1.0, focusing_optic='Kirkpatrick-Baez', beamline_flux_at_sample_ph_s=379467146824.584, beam_size_width=3.0, beam_size_height=2.0, characterization=None, rotation=None, grid_scan=GridScanParameters(x_step=0.024, y_step=0.016, x_col=17, y_row=23, omega_start_deg=171.99999662257602, number_of_images=391, exposure_time_s=0.02), jet=None, cryojet_temperature_k=99.99, humidifier_temperature_k=None, humidifier_humidity=None) dataset=Datasets(filepath='/sls/mx/data/p21163/raw/250707/PSIMX071/01/Lysozyme_bromine_1_003', status='written', written_at=datetime.datetime(2025, 7, 7, 17, 3, 57, 680325)) sample_id=475 id=424
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 334, in measure_raster
    self.__set_state(BeamlineStateEnum.SampleAlignment)
  File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 835, in __set_state
    raise e
  File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 789, in __set_state
    workflows.dc2sa(self.__devs, self.__cfg)
  File "/home/leonarski_f/aaredaq/daq/src/aaredaq/workflows.py", line 160, in dc2sa
    devs.collimator = StagePositionEnum.PARK
    ^^^^^^^^^^^^^^^
  File "/home/leonarski_f/aaredaq/daq/src/aaredaq/devices.py", line 227, in collimator
    self.set_collimator(value, wait=True)
  File "/home/leonarski_f/aaredaq/daq/src/aaredaq/devices.py", line 235, in set_collimator
    self.__collimator.move("parking", wait=wait)
  File "/home/leonarski_f/aaredaq/daq/src/mxlibs3/enum_pv.py", line 102, in move
    self.put(target, wait=wait)
  File "/home/leonarski_f/aaredaq/daq/src/mxlibs3/enum_pv.py", line 92, in put
    self.wait()
  File "/home/leonarski_f/aaredaq/daq/src/mxlibs3/enum_pv.py", line 124, in wait
    pv_wait(pv, target, timeout=self.__timeout, verbose=True)
  File "/home/leonarski_f/aaredaq/daq/src/mxlibs3/mx_lib.py", line 101, in pv_wait
    wait_enum_condition(pv, value, timeout=timeout, polling=polling)
  File "/home/leonarski_f/aaredaq/daq/src/mxlibs3/mx_lib.py", line 251, in wait_enum_condition
    raise TimeoutError(f"timeout waiting for enum {pv.pvname} == {value}")
TimeoutError: timeout waiting for enum X06DA-ES-COL:GET-POS == 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
    raise exc
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    raise exc
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
    await app(scope, receive, sender)
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/routing.py", line 714, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/routing.py", line 734, in app
    await route.handle(scope, receive, send)
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    raise exc
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
    await app(scope, receive, sender)
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/leonarski_f/aaredaq/daq/src/aaredaq/server.py", line 294, in raster
    return daq.measure_raster(val)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 338, in measure_raster
    self.__set_state(BeamlineStateEnum.SampleAlignment)
  File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 831, in __set_state
    raise e
  File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 773, in __set_state
    raise TransformationInvalidException()
aaredaq.daq.TransformationInvalidException: Transformation is not implemented
Following error occurred when the collimator motor got stuck at the end of a raster scan moving from data collection back to sample alignment. This also prevents grid scan results from being displayed in the GUI. ``` Experiment parameters created: run_number=3 type='standard' beamline_parameters=BeamlineParametersOutput(synchrotron='Swiss Light Source', beamline='X06DA', detector=Detector(manufacturer='DECTRIS', model='PILATUS4 2M', type='photon-counting', serial_number='D029955', detector_distance_mm=110.0, beam_center_x_px=770.0, beam_center_y_px=858.0, pixel_size_x_um=150.00000596046448, pixel_size_y_um=150.00000596046448, dataset=Datasets(filepath='250707/PSIMX071/01/Lysozyme_bromine_1_003', status='written', written_at=datetime.datetime(2025, 7, 7, 17, 3, 57, 680325))), wavelength_ang=0.9535456083679433, energy_ke_v=13.002, ring_current_m_a=401.01050170898435, ring_mode='Beamline Development', undulator=None, undulatorgap_mm=None, monochromator='Si111', transmission=1.0, focusing_optic='Kirkpatrick-Baez', beamline_flux_at_sample_ph_s=379467146824.584, beam_size_width=3.0, beam_size_height=2.0, characterization=None, rotation=None, grid_scan=GridScanParameters(x_step=0.024, y_step=0.016, x_col=17, y_row=23, omega_start_deg=171.99999662257602, number_of_images=391, exposure_time_s=0.02), jet=None, cryojet_temperature_k=99.99, humidifier_temperature_k=None, humidifier_humidity=None) dataset=Datasets(filepath='/sls/mx/data/p21163/raw/250707/PSIMX071/01/Lysozyme_bromine_1_003', status='written', written_at=datetime.datetime(2025, 7, 7, 17, 3, 57, 680325)) sample_id=475 id=424 ERROR: Exception in ASGI application Traceback (most recent call last): File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 334, in measure_raster self.__set_state(BeamlineStateEnum.SampleAlignment) File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 835, in __set_state raise e File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 789, in __set_state workflows.dc2sa(self.__devs, self.__cfg) File "/home/leonarski_f/aaredaq/daq/src/aaredaq/workflows.py", line 160, in dc2sa devs.collimator = StagePositionEnum.PARK ^^^^^^^^^^^^^^^ File "/home/leonarski_f/aaredaq/daq/src/aaredaq/devices.py", line 227, in collimator self.set_collimator(value, wait=True) File "/home/leonarski_f/aaredaq/daq/src/aaredaq/devices.py", line 235, in set_collimator self.__collimator.move("parking", wait=wait) File "/home/leonarski_f/aaredaq/daq/src/mxlibs3/enum_pv.py", line 102, in move self.put(target, wait=wait) File "/home/leonarski_f/aaredaq/daq/src/mxlibs3/enum_pv.py", line 92, in put self.wait() File "/home/leonarski_f/aaredaq/daq/src/mxlibs3/enum_pv.py", line 124, in wait pv_wait(pv, target, timeout=self.__timeout, verbose=True) File "/home/leonarski_f/aaredaq/daq/src/mxlibs3/mx_lib.py", line 101, in pv_wait wait_enum_condition(pv, value, timeout=timeout, polling=polling) File "/home/leonarski_f/aaredaq/daq/src/mxlibs3/mx_lib.py", line 251, in wait_enum_condition raise TimeoutError(f"timeout waiting for enum {pv.pvname} == {value}") TimeoutError: timeout waiting for enum X06DA-ES-COL:GET-POS == 1 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi result = await app( # type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__ await super().__call__(scope, receive, send) File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/applications.py", line 112, in __call__ await self.middleware_stack(scope, receive, send) File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__ raise exc File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/routing.py", line 714, in __call__ await self.middleware_stack(scope, receive, send) File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/routing.py", line 734, in app await route.handle(scope, receive, send) File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/sls/MX/applications/venvs/aaredaq/lib64/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/leonarski_f/aaredaq/daq/src/aaredaq/server.py", line 294, in raster return daq.measure_raster(val) ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 338, in measure_raster self.__set_state(BeamlineStateEnum.SampleAlignment) File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 831, in __set_state raise e File "/home/leonarski_f/aaredaq/daq/src/aaredaq/daq.py", line 773, in __set_state raise TransformationInvalidException() aaredaq.daq.TransformationInvalidException: Transformation is not implemented ```
appleb_m added this to the Automation of data collection milestone 2025-07-07 17:09:50 +02:00
appleb_m added the bug label 2025-07-07 17:09:50 +02:00
appleb_m changed title from If collimator (or other motor) gets tuck during raster scan, does not display grid scan. to If collimator (or other motor) gets stuck during raster scan, does not display grid scan. 2025-07-10 11:11:35 +02:00
Author
Contributor

This should be fixed now, however this error needed ti be shown in GUI. Hopefully this works. Parituclalry which motor got stuck. Now we use BEC this may need correcting but closing for now.

This should be fixed now, however this error needed ti be shown in GUI. Hopefully this works. Parituclalry which motor got stuck. Now we use BEC this may need correcting but closing for now.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mx/AareDAQ#9