From 992826346a2993c3fafbee3d3fff85c2d19be125 Mon Sep 17 00:00:00 2001 From: Thierry Zamofing Date: Tue, 2 Apr 2024 09:05:36 +0200 Subject: [PATCH] SFELPHOTON-1044: softioc migration RH7->RH8 and update to EPICS 7.0.7 --- generate.py | 4 +-- qt/ESB_MX_SmarAct.ui | 34 +++++++++++++++++++++++ qt/ESB_MX_SmarAct_home.py | 58 ++++++++++++++++++++++----------------- 3 files changed, 69 insertions(+), 27 deletions(-) diff --git a/generate.py b/generate.py index c5e2cc5..d5e96b3 100755 --- a/generate.py +++ b/generate.py @@ -26,7 +26,7 @@ class Generate: 'SAR-CPPM-EXPMX2' : ('SAR-CPPM-EXPMX2' , 50001 , '7.0.7' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , ) , 'SAR-CPPM-EXPMX3' : ('SAR-CPPM-EXPMX3' , 50001 , '7.0.7' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , ) , 'SAR-CPPM-EXPMX4' : ('SAR-CPPM-EXPMX4' , 50001 , '7.0.7' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , ) , - 'SARES30-CPCL-MCSSMX' : ('saresc-softioc-11' , 50001 , '7.0.7' , 'x86_64' , 'RHEL7' , 'rhel' , ) , + 'SARES30-CPCL-MCSSMX' : ('saresc-vserv-01' , 50001 , '7.0.7' , 'x86_64' , 'RHEL8' , 'rhel' , ) , } iocSmarAct={ @@ -157,7 +157,7 @@ os_id: {osys_id} # This is the IOC {ioc} on {ioc_host}:{ioc_port} ################################################################## -epicsEnvSet("ENGINEER", "T. Zamofing (zamofing_t)") +epicsEnvSet("ENGINEER", "zamofing_t") epicsEnvSet("LOCATION", "{loc}") ###### require modules ############ diff --git a/qt/ESB_MX_SmarAct.ui b/qt/ESB_MX_SmarAct.ui index 8752183..b2566f1 100644 --- a/qt/ESB_MX_SmarAct.ui +++ b/qt/ESB_MX_SmarAct.ui @@ -80,6 +80,35 @@ caInclude::NoFrame + + + + 480 + 10 + 109 + 24 + + + + -Homing + + + + 128 + 136 + 255 + + + + Homing + + + python /ioc/modules/qt/ESB_MX_SmarAct_home.py + + + $(P):$(M) + + @@ -92,6 +121,11 @@ QWidget
caInclude
+ + caShellCommand + QWidget +
caShellCommand
+
diff --git a/qt/ESB_MX_SmarAct_home.py b/qt/ESB_MX_SmarAct_home.py index 89f0108..7d651d6 100755 --- a/qt/ESB_MX_SmarAct_home.py +++ b/qt/ESB_MX_SmarAct_home.py @@ -26,7 +26,7 @@ Long Doc''' import logging, sys, os, json import CaChannel,time -class EsbMxSmaract: +class SwissMxSmarAct: def __init__(self, args): self.args=args @@ -37,10 +37,9 @@ class EsbMxSmaract: for i in range(1,16): #SARES30-ESBMX1:FRM_FORW.PROC #SARES30-ESBMX1:DRIVE - s1=prefix+'%i'%i - for j in ('DRIVE','MOTRBV','FRM_FORW.PROC','FRM_BACK.PROC','GET_HOMED','STATUS'): - s2=s1+':'+j + for j in ('.VAL','.RBV','.HOMF','.HOMR','.MSTA','_AUTOZERO'): + s2=s1+j print(s2) pv = CaChannel.CaChannel(s2) pv.setTimeout(10.0) @@ -53,27 +52,35 @@ class EsbMxSmaract: def home(self,idx,fwd): print('home motor %i fwd:%d...'%(idx,fwd)) + pv=self.pv[self.prefix+'%i'%idx+'_AUTOZERO'] + pv.putw(1) #set autozero on if fwd: - pv=self.pv[self.prefix+'%i'%idx+':'+'FRM_FORW.PROC'] + pv=self.pv[self.prefix+'%i'%idx+'.HOMF'] else: - pv=self.pv[self.prefix+'%i'%idx+':'+'FRM_BACK.PROC'] + pv=self.pv[self.prefix+'%i'%idx+'.HOMR'] + #print('aaa') pv.putw(1) #set position and move + #print('bbb') CaChannel.ca.pend_event(0.1) + #print('ccc') def waitHomed(self,idx): - pv=self.pv[self.prefix+'%i'%idx+':'+'GET_HOMED'] + #print('ddd') + pv=self.pv[self.prefix+'%i'%idx+'.MSTA'] + #print('eee',pv,self.prefix+'%i'%idx+'.MSTA') while pv.getw()==0: print('wait motor %i homing done ...'%idx) CaChannel.ca.pend_event(0.2) + #print('fff') def moveAbs(self,idx,val): - pv=self.pv[self.prefix+'%i'%idx+':'+'DRIVE'] + pv=self.pv[self.prefix+'%i'%idx+'.VAL'] pv.putw(val) #set position and move def check_pos(self, idx, val, tolerance=0.1): - pvrbv = self.pv[self.prefix+'%i'%idx+':'+'MOTRBV'] - pvst = self.pv[self.prefix+'%i'%idx+':'+'STATUS'] + pvrbv = self.pv[self.prefix+'%i'%idx+'.RBV'] + pvst = self.pv[self.prefix+'%i'%idx+'.MSTA'] CaChannel.ca.pend_event(0.2) while pvst.getw(): @@ -89,23 +96,24 @@ class EsbMxSmaract: # raise Exception("Cryojet is too close, move it to 5.0 mm") # home Colli Y first and move it to the TOP - self.home(2, True) - CaChannel.ca.pend_event(0.5) - self.waitHomed(2) - CaChannel.ca.pend_event(0.5) - self.moveAbs(2, 10.0) - self.check_pos(2, 10.0) + ###self.home(2, True) + ###CaChannel.ca.pend_event(0.5) + ###self.waitHomed(2) + ###CaChannel.ca.pend_event(0.5) + ###self.moveAbs(2, 10.0) + ###self.check_pos(2, 10.0) - for idx,fwd in ((1,True),(4,True),(5,True),(6,True),(7,True),(8,True),(10,True),(11,True),(12,True),(13,True),(14,True),(15,True),): + ###for idx,fwd in ((1,True),(4,True),(5,True),(6,True),(7,True),(8,True),(10,True),(11,True),(12,True),(13,True),(14,True),(15,True),): + for idx,fwd in ((1,True),(2,True),(3,True),(4,True),(5,True),(6,True),(7,True),(8,True),(9,True),(10,True),(11,True),(12,True),(13,True),(14,True),(15,True),): self.home(idx,fwd) CaChannel.ca.pend_event(0.5) - #wait homing done - for idx in (1,4,5,6,7,8,10,11,12,13,14,15,): - self.waitHomed(idx) + ####wait homing done + ###for idx in (1,4,5,6,7,8,10,11,12,13,14,15,): + ### self.waitHomed(idx) - #move to desired position - for idx,val in ((1,-10),(4,.4),(5,.5),(6,.6),(7,.7),(8,.8),(10,1.0),(11,1.1),(12,1.2),(13,1.3),(14,1.4),(15,1.5),): - self.moveAbs(idx,val) + ####move to desired position + ###for idx,val in ((1,-10),(4,.4),(5,.5),(6,.6),(7,.7),(8,.8),(10,1.0),(11,1.1),(12,1.2),(13,1.3),(14,1.4),(15,1.5),): + ### self.moveAbs(idx,val) print('Homing done') if __name__=='__main__': @@ -138,8 +146,8 @@ Examples:'''+''.join(map(lambda s:cmd+s, exampleCmd))+'\n ' (args, other)=parser.parse_args() print(args,other) args.var=other - esbMxSmaract=EsbMxSmaract(args) - esbMxSmaract.homing() + smrct=SwissMxSmarAct(args) + smrct.homing() #os.environ['EPICS_CA_ADDR_LIST']='localhost' parse_args()