continue sample transfer
This commit is contained in:
@@ -390,143 +390,98 @@ class OMNYSampleTransferMixin:
|
||||
if self._otransfer_mode_query():
|
||||
raise OMNYTransferError("System is in transfer mode.")
|
||||
|
||||
def otransfer_park_slot(self,slot_number:int):
|
||||
#todo
|
||||
#global _otransfer_shuttle_was_aligned
|
||||
#_otransfer_shuttle_was_aligned=0
|
||||
if slot_number < 2 or slot_number > 6:
|
||||
raise OMNYTransferError(f"Invalid slot number {slot_number} specified. Valid numbers range from 2 to 6.")
|
||||
if slot_number == 2:
|
||||
self._oparkz_drive_and_check(-0.9-29*3-42-.05)
|
||||
elif slot_number == 3:
|
||||
self._oparkz_drive_and_check(-0.9-29*3)
|
||||
elif slot_number == 4:
|
||||
self._oparkz_drive_and_check(-0.9-29*2)
|
||||
elif slot_number == 5:
|
||||
self._oparkz_drive_and_check(-0.9-29)
|
||||
elif slot_number == 6:
|
||||
self._oparkz_drive_and_check(-0.9)
|
||||
|
||||
|
||||
def otransfer_park_slot '{
|
||||
if ($# != 1 ) {
|
||||
printf("Wrong number of arguments. otransfer_park_slot <slot>\n")
|
||||
exit
|
||||
}
|
||||
def otransfer_park_loadlock_slot(self,slot_number:int):
|
||||
if slot_number < 2 or slot_number > 6:
|
||||
raise OMNYTransferError(f"Invalid slot number {slot_number} specified. Valid numbers range from 2 to 6.")
|
||||
#if the valve of the loadlock is not closed, ask before movement
|
||||
#todo if(epics_get("XOMNY-ES1-LL1VG1:POSITION")!="CLOSED") {
|
||||
user_input = input("Please confirm that the leica transfer is in back position [y/n].")
|
||||
if user_input != "y":
|
||||
raise OMNYTransferError
|
||||
else:
|
||||
self._oparkz_leica_slot(slot_number)
|
||||
|
||||
_oparkz_slot($1)
|
||||
}'
|
||||
def _oparkz_leica_slot(self, slot_number: int):
|
||||
if slot_number < 2 or slot_number > 6:
|
||||
raise OMNYTransferError(f"Invalid slot number {slot_number} specified. Valid numbers range from 2 to 6.")
|
||||
if slot_number == 2:
|
||||
self._oparkz_drive_and_check(-6-29*3-42-.05)
|
||||
elif slot_number == 3:
|
||||
self._oparkz_drive_and_check(-6-29*3)
|
||||
elif slot_number == 4:
|
||||
self._oparkz_drive_and_check(-6-29*2)
|
||||
elif slot_number == 5:
|
||||
self._oparkz_drive_and_check(-6-29)
|
||||
elif slot_number == 6:
|
||||
self._oparkz_drive_and_check(-6)
|
||||
|
||||
def otransfer_park_loadlock_slot '{
|
||||
if ($# != 1 ) {
|
||||
printf("Wrong number of arguments. otransfer_park_loadlock_slot <slot>\n")
|
||||
exit
|
||||
}
|
||||
#if the valve of the loadlock is not closed, ask before movement
|
||||
if(epics_get("XOMNY-ES1-LL1VG1:POSITION")!="CLOSED") {
|
||||
printf("Please confirm that the leica transfer is in back position.")
|
||||
if(!yesno(1))
|
||||
exit
|
||||
}
|
||||
def _oparkz_drive_and_check(self, targetpos):
|
||||
oparkz_current = dev.oparkz.get().readback
|
||||
if np.fabs(oparkz_current-targetpos)>=0.05:
|
||||
self._otransfer_mode_ensurenot()
|
||||
#make sure shield closed
|
||||
self._otransfer_ensure_shuttle_closed()
|
||||
self._otransfer_shuttle_aligner_down()
|
||||
umv(dev.oparkz, targetpos)
|
||||
|
||||
_oparkz_leica_slot($1)
|
||||
}'
|
||||
def _oparkz_check(self, targetpos) -> bool:
|
||||
oparkz_current = dev.oparkz.get().readback
|
||||
if np.fabs(oparkz_current-targetpos)<0.05:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def _oparkz_drive_and_check(targetpos) '{
|
||||
if (fabs(A[oparkz]-targetpos)>=0.05)
|
||||
{
|
||||
_otransfer_mode_ensurenot
|
||||
#make sure shield closed
|
||||
if (!_ogalil_low_limit_set(1,6))
|
||||
{
|
||||
_ogalil_drive_to_limit(1,6,0)
|
||||
}
|
||||
|
||||
if (!_ogalil_low_limit_set(1,6))
|
||||
{
|
||||
exit
|
||||
}
|
||||
|
||||
_otransfer_shuttle_aligner_down
|
||||
umv oparkz targetpos
|
||||
}
|
||||
}'
|
||||
|
||||
def _oparkz_check(targetpos) '{
|
||||
if (fabs(A[oparkz]-targetpos)<0.05)
|
||||
return(1)
|
||||
else
|
||||
return(0)
|
||||
}'
|
||||
|
||||
def _oparkz_slot_check() '{
|
||||
local parkingposition
|
||||
parkingposition=10
|
||||
if(_oparkz_check(-0.9))
|
||||
parkingposition=6
|
||||
if(_oparkz_check(-0.9-29))
|
||||
parkingposition=5
|
||||
if(_oparkz_check(-0.9-29*2))
|
||||
parkingposition=4
|
||||
if(_oparkz_check(-0.9-29*3))
|
||||
parkingposition=3
|
||||
if(_oparkz_check(-0.9-29*3-42-.05))
|
||||
parkingposition=2
|
||||
def _oparkz_slot_check(self):
|
||||
parkingposition=10
|
||||
if self._oparkz_check(-0.9):
|
||||
parkingposition=6
|
||||
elif self._oparkz_check(-0.9-29):
|
||||
parkingposition=5
|
||||
elif self._oparkz_check(-0.9-29*2):
|
||||
parkingposition=4
|
||||
elif self._oparkz_check(-0.9-29*3):
|
||||
parkingposition=3
|
||||
elif self._oparkz_check(-0.9-29*3-42-.05):
|
||||
parkingposition=2
|
||||
|
||||
if (parkingposition == 10) {
|
||||
printf("Oparkz is not in a parking position.\n")
|
||||
}
|
||||
else {
|
||||
printf("Active parkting position: %d\n", parkingposition)
|
||||
}
|
||||
return(parkingposition)
|
||||
}'
|
||||
|
||||
|
||||
if parkingposition == 10:
|
||||
print("Oparkz is not in a parking position.")
|
||||
else:
|
||||
print(f"Active parkting position: {parkingposition}")
|
||||
|
||||
return parkingposition
|
||||
|
||||
|
||||
def _oparkz_slot(slot_number) '{
|
||||
global _otransfer_shuttle_was_aligned
|
||||
_otransfer_shuttle_was_aligned=0
|
||||
if(slot_number == 2)
|
||||
_oparkz_drive_and_check(-0.9-29*3-42-.05)
|
||||
if(slot_number == 3)
|
||||
_oparkz_drive_and_check(-0.9-29*3)
|
||||
if(slot_number == 4)
|
||||
_oparkz_drive_and_check(-0.9-29*2)
|
||||
if(slot_number == 5)
|
||||
_oparkz_drive_and_check(-0.9-29)
|
||||
if(slot_number == 6)
|
||||
_oparkz_drive_and_check(-0.9)
|
||||
if(slot_number < 2 || slot_number >6) {
|
||||
printf("Invalid slot number.\n")
|
||||
exit
|
||||
}
|
||||
}'
|
||||
def _oparkz_drive_and_check_leica(self, targetpos):
|
||||
oparkz_current = dev.oparkz.get().readback
|
||||
if (oparkz_current-targetpos)>=0.05:
|
||||
self._otransfer_mode_ensurenot()
|
||||
#make sure shuttle closed
|
||||
self._otransfer_ensure_shuttle_closed()
|
||||
self._otransfer_shuttle_aligner_down()
|
||||
umv(dev.oparkz, targetpos)
|
||||
|
||||
def _oparkz_leica_slot(slot_number) '{
|
||||
if(slot_number == 2)
|
||||
_oparkz_drive_and_check(-6-29*3-42-.05)
|
||||
if(slot_number == 3)
|
||||
_oparkz_drive_and_check(-6-29*3)
|
||||
if(slot_number == 4)
|
||||
_oparkz_drive_and_check(-6-29*2)
|
||||
if(slot_number == 5)
|
||||
_oparkz_drive_and_check(-6-29)
|
||||
if(slot_number == 6)
|
||||
_oparkz_drive_and_check(-6)
|
||||
if(slot_number < 2 || slot_number >6) {
|
||||
printf("Invalid slot number.\n")
|
||||
exit
|
||||
}
|
||||
}'
|
||||
|
||||
def _oparkz_drive_and_check_leica(targetpos) '{
|
||||
if (fabs(A[oparkz]-targetpos)>=0.05)
|
||||
{
|
||||
_otransfer_mode_ensurenot
|
||||
#make sure shuttle closed
|
||||
if(!_ogalil_low_limit_set(1,6))
|
||||
{
|
||||
_ogalil_drive_to_limit(1,6,0)
|
||||
}
|
||||
if (!_ogalil_low_limit_set(1,6))
|
||||
{
|
||||
printf("shuttle did not close. exiting.\n")
|
||||
exit
|
||||
}
|
||||
_otransfer_shuttle_aligner_down
|
||||
umv oparkz targetpos
|
||||
# umv oparkz targetpos
|
||||
}
|
||||
}'
|
||||
|
||||
#when mounting a sample, this variable is defined at the release position of the sample
|
||||
def _otransfer_get_release_position() '{
|
||||
local rel_pos
|
||||
#when mounting a sample, this variable is defined at the release position of the sample
|
||||
def _otransfer_get_release_position(self):
|
||||
_ogalil_put(0,"MGrelpos")
|
||||
rel_pos=_ogalil_get(0)
|
||||
return(rel_pos)
|
||||
|
||||
Reference in New Issue
Block a user