SFELPHOTON-1044: softioc migration RH7->RH8 and update to EPICS 7.0.7

This commit is contained in:
2024-04-02 09:05:36 +02:00
parent b5805f7387
commit 992826346a
3 changed files with 69 additions and 27 deletions

View File

@@ -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 ############

View File

@@ -80,6 +80,35 @@
<enum>caInclude::NoFrame</enum>
</property>
</widget>
<widget class="caShellCommand" name="cashellcommand">
<property name="geometry">
<rect>
<x>480</x>
<y>10</y>
<width>109</width>
<height>24</height>
</rect>
</property>
<property name="label">
<string notr="true">-Homing</string>
</property>
<property name="background">
<color>
<red>128</red>
<green>136</green>
<blue>255</blue>
</color>
</property>
<property name="labels">
<string>Homing</string>
</property>
<property name="files">
<string>python /ioc/modules/qt/ESB_MX_SmarAct_home.py</string>
</property>
<property name="args">
<string>$(P):$(M)</string>
</property>
</widget>
</widget>
<customwidgets>
<customwidget>
@@ -92,6 +121,11 @@
<extends>QWidget</extends>
<header>caInclude</header>
</customwidget>
<customwidget>
<class>caShellCommand</class>
<extends>QWidget</extends>
<header>caShellCommand</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>

View File

@@ -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()