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-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 ############
|
||||
|
||||
@@ -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/>
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user