SentioProberDev / SentioProberControl

Python bindings for controlling MPI probe stations
https://sentio.atv-systems.de/
BSD 2-Clause "Simplified" License
5 stars 6 forks source link

Normal, Fast and Index speed options are not available. #11

Open BRDMYuhan opened 2 weeks ago

BRDMYuhan commented 2 weeks ago

Hi,

I have recently encountered tons of error of speed options in move_chuck_contact and move_chuck_seperation(). But in debug mode, sometimes, it works again without doing any changes.

str_resp
'2,0,Normal, Fast and Index speed options are not available.'

What should I do to prevent this exception?

Exception has occurred: ProberException

Normal, Fast and Index speed options are not available.
  File "C:\Users\yt896841\muclab\muclab\common_instrument_driver\common_instrument_driver\SentioProberControl\sentio_prober_control\Sentio\Response.py", line 76, in check_resp
    raise ProberException(resp.message(), resp.errc())
  File "C:\Users\yt896841\muclab\muclab\common_instrument_driver\common_instrument_driver\SentioProberControl\sentio_prober_control\Sentio\ProberSentio.py", line 516, in move_chuck_contact
    resp = Response.check_resp(self.comm.read_line())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yt896841\muclab\muclab\toolbox\measurement\artifacts.py", line 447, in meas
    prober.move_chuck_contact()

common_instrument_driver.SentioProberControl.sentio_prober_control.Sentio.ProberBase.ProberException: Normal, Fast and Index speed options are not available.
beltoforion commented 2 weeks ago

The maximum possible speed of the chuck may be restricted if you are too close to the contact height. Specifically if you are using a hover Height which is between contact and separation heights. That is for safety reasons as a chuck is not perfectly levelled especially when at temperature. Therefore it could crash into the probes when moving fast if you are close enough to the contact height.

You should not be seeing this message if your XY motion takes place at or below separation height. For heights above separation the error cannot be disable due to safety concerns. You should see the same limitations when moving the chuck via the control panel. It just wont let you move at speed if you are too close to contact height.

BRDMYuhan commented 2 weeks ago

Hi,

I understand that there are safety concerns. I don't want to disable this error instead I would prefer an API for chuck moving speed. Right now there are no control of this speed both in python and SCPI.

Best, Yuhan

BRDMYuhan commented 2 weeks ago

I know a bypass of this error: go to local mode and select the correct(/all) chucksite and change the speed to jog or slow manually. and then remote back.

beltoforion commented 2 weeks ago

That is a reasonable request. Please help me clarify the issue. Was in your scenario XY-Chuck motion involved? You mentioned move_chuck_contact and move_chuck_separation commands. Both commands do Z-motion only. It seems strange to see this error code when z-motion takes place. That may be an undesired side effect. I need to check this with the rest of the dev team.

Can you provide a minimalised example that triggers the behavior? It doesn't even has to be complete code. I just need a fragment to better understand what you were doing and in which context.

BRDMYuhan commented 2 weeks ago

Attached the log. The error/Hint is in the Sentio Main Thread: Hint: "Normal, Fast and Index speed options are not available."; "" You can see from this log, it happens within z-axis in motion.

After 2024-07-09 16:02:12,591, I manually changed the speed so the hint disappears and thus skip the rest of the log.

One snippet of the code is:


    for i in range(length[0]):
        if clean_touchdown >= clean_every_touchdown:
            prober.auto_cleaning(5, n_probe=1)
            clean_touchdown = 0
        clean_touchdown += 1
        # Extract the i-th value from each key's list
        values = {key: dut_pl[key][i] for key in dut_pl}

        prober.move_chuck_xy(ChuckXYReference.User, -values["xstep"], -values["ystep"])
        prober.move_chuck_contact()
        results = vna_fetch_results(vna, n_ports=1, freq=freq)
        prober.move_chuck_separation()

log_prober.txt