SFELPHOTON-1044: softioc migration RH7->RH8 and update to EPICS 7.0.7
This commit is contained in:
@@ -26,7 +26,7 @@ class Generate:
|
|||||||
'SAR-CPPM-EXPMX2' : ('SAR-CPPM-EXPMX2' , 50001 , '7.0.7' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , ) ,
|
'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-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' , ) ,
|
'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={
|
iocSmarAct={
|
||||||
@@ -157,7 +157,7 @@ os_id: {osys_id}
|
|||||||
# This is the IOC {ioc} on {ioc_host}:{ioc_port}
|
# This is the IOC {ioc} on {ioc_host}:{ioc_port}
|
||||||
##################################################################
|
##################################################################
|
||||||
|
|
||||||
epicsEnvSet("ENGINEER", "T. Zamofing (zamofing_t)")
|
epicsEnvSet("ENGINEER", "zamofing_t")
|
||||||
epicsEnvSet("LOCATION", "{loc}")
|
epicsEnvSet("LOCATION", "{loc}")
|
||||||
|
|
||||||
###### require modules ############
|
###### require modules ############
|
||||||
|
|||||||
@@ -80,6 +80,35 @@
|
|||||||
<enum>caInclude::NoFrame</enum>
|
<enum>caInclude::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</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>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
@@ -92,6 +121,11 @@
|
|||||||
<extends>QWidget</extends>
|
<extends>QWidget</extends>
|
||||||
<header>caInclude</header>
|
<header>caInclude</header>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>caShellCommand</class>
|
||||||
|
<extends>QWidget</extends>
|
||||||
|
<header>caShellCommand</header>
|
||||||
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ Long Doc'''
|
|||||||
import logging, sys, os, json
|
import logging, sys, os, json
|
||||||
import CaChannel,time
|
import CaChannel,time
|
||||||
|
|
||||||
class EsbMxSmaract:
|
class SwissMxSmarAct:
|
||||||
|
|
||||||
def __init__(self, args):
|
def __init__(self, args):
|
||||||
self.args=args
|
self.args=args
|
||||||
@@ -37,10 +37,9 @@ class EsbMxSmaract:
|
|||||||
for i in range(1,16):
|
for i in range(1,16):
|
||||||
#SARES30-ESBMX1:FRM_FORW.PROC
|
#SARES30-ESBMX1:FRM_FORW.PROC
|
||||||
#SARES30-ESBMX1:DRIVE
|
#SARES30-ESBMX1:DRIVE
|
||||||
|
|
||||||
s1=prefix+'%i'%i
|
s1=prefix+'%i'%i
|
||||||
for j in ('DRIVE','MOTRBV','FRM_FORW.PROC','FRM_BACK.PROC','GET_HOMED','STATUS'):
|
for j in ('.VAL','.RBV','.HOMF','.HOMR','.MSTA','_AUTOZERO'):
|
||||||
s2=s1+':'+j
|
s2=s1+j
|
||||||
print(s2)
|
print(s2)
|
||||||
pv = CaChannel.CaChannel(s2)
|
pv = CaChannel.CaChannel(s2)
|
||||||
pv.setTimeout(10.0)
|
pv.setTimeout(10.0)
|
||||||
@@ -53,27 +52,35 @@ class EsbMxSmaract:
|
|||||||
|
|
||||||
def home(self,idx,fwd):
|
def home(self,idx,fwd):
|
||||||
print('home motor %i fwd:%d...'%(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:
|
if fwd:
|
||||||
pv=self.pv[self.prefix+'%i'%idx+':'+'FRM_FORW.PROC']
|
pv=self.pv[self.prefix+'%i'%idx+'.HOMF']
|
||||||
else:
|
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
|
pv.putw(1) #set position and move
|
||||||
|
#print('bbb')
|
||||||
CaChannel.ca.pend_event(0.1)
|
CaChannel.ca.pend_event(0.1)
|
||||||
|
#print('ccc')
|
||||||
|
|
||||||
def waitHomed(self,idx):
|
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:
|
while pv.getw()==0:
|
||||||
print('wait motor %i homing done ...'%idx)
|
print('wait motor %i homing done ...'%idx)
|
||||||
CaChannel.ca.pend_event(0.2)
|
CaChannel.ca.pend_event(0.2)
|
||||||
|
#print('fff')
|
||||||
|
|
||||||
def moveAbs(self,idx,val):
|
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
|
pv.putw(val) #set position and move
|
||||||
|
|
||||||
|
|
||||||
def check_pos(self, idx, val, tolerance=0.1):
|
def check_pos(self, idx, val, tolerance=0.1):
|
||||||
pvrbv = self.pv[self.prefix+'%i'%idx+':'+'MOTRBV']
|
pvrbv = self.pv[self.prefix+'%i'%idx+'.RBV']
|
||||||
pvst = self.pv[self.prefix+'%i'%idx+':'+'STATUS']
|
pvst = self.pv[self.prefix+'%i'%idx+'.MSTA']
|
||||||
|
|
||||||
CaChannel.ca.pend_event(0.2)
|
CaChannel.ca.pend_event(0.2)
|
||||||
while pvst.getw():
|
while pvst.getw():
|
||||||
@@ -89,23 +96,24 @@ class EsbMxSmaract:
|
|||||||
# raise Exception("Cryojet is too close, move it to 5.0 mm")
|
# raise Exception("Cryojet is too close, move it to 5.0 mm")
|
||||||
|
|
||||||
# home Colli Y first and move it to the TOP
|
# home Colli Y first and move it to the TOP
|
||||||
self.home(2, True)
|
###self.home(2, True)
|
||||||
CaChannel.ca.pend_event(0.5)
|
###CaChannel.ca.pend_event(0.5)
|
||||||
self.waitHomed(2)
|
###self.waitHomed(2)
|
||||||
CaChannel.ca.pend_event(0.5)
|
###CaChannel.ca.pend_event(0.5)
|
||||||
self.moveAbs(2, 10.0)
|
###self.moveAbs(2, 10.0)
|
||||||
self.check_pos(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)
|
self.home(idx,fwd)
|
||||||
CaChannel.ca.pend_event(0.5)
|
CaChannel.ca.pend_event(0.5)
|
||||||
#wait homing done
|
####wait homing done
|
||||||
for idx in (1,4,5,6,7,8,10,11,12,13,14,15,):
|
###for idx in (1,4,5,6,7,8,10,11,12,13,14,15,):
|
||||||
self.waitHomed(idx)
|
### self.waitHomed(idx)
|
||||||
|
|
||||||
#move to desired position
|
####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),):
|
###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)
|
### self.moveAbs(idx,val)
|
||||||
print('Homing done')
|
print('Homing done')
|
||||||
|
|
||||||
if __name__=='__main__':
|
if __name__=='__main__':
|
||||||
@@ -138,8 +146,8 @@ Examples:'''+''.join(map(lambda s:cmd+s, exampleCmd))+'\n '
|
|||||||
(args, other)=parser.parse_args()
|
(args, other)=parser.parse_args()
|
||||||
print(args,other)
|
print(args,other)
|
||||||
args.var=other
|
args.var=other
|
||||||
esbMxSmaract=EsbMxSmaract(args)
|
smrct=SwissMxSmarAct(args)
|
||||||
esbMxSmaract.homing()
|
smrct.homing()
|
||||||
|
|
||||||
#os.environ['EPICS_CA_ADDR_LIST']='localhost'
|
#os.environ['EPICS_CA_ADDR_LIST']='localhost'
|
||||||
parse_args()
|
parse_args()
|
||||||
|
|||||||
Reference in New Issue
Block a user