try to enhance CY
This commit is contained in:
65
Readme.md
65
Readme.md
@@ -1022,8 +1022,8 @@ FrontUnivOut5 Gate3[1].Chan[1].UserFlag 6
|
|||||||
FrontUnivOut6 Gate3[1].Chan[2].UserFlag 7
|
FrontUnivOut6 Gate3[1].Chan[2].UserFlag 7
|
||||||
|
|
||||||
Event 254 -> Pulser 0 -> FrontUnivOut4 Gate3[1].Chan[0].UserFlag
|
Event 254 -> Pulser 0 -> FrontUnivOut4 Gate3[1].Chan[0].UserFlag
|
||||||
Event 40 -> Pulser 1 -> FrontUnivOut4 Gate3[1].Chan[1].UserFlag
|
Event 40 -> Pulser 1 -> FrontUnivOut5 Gate3[1].Chan[1].UserFlag
|
||||||
Event 22 -> Pulser 2 -> FrontUnivOut4 Gate3[1].Chan[2].UserFlag
|
Event 22 -> Pulser 2 -> FrontUnivOut6 Gate3[1].Chan[2].UserFlag
|
||||||
|
|
||||||
caput SAR-CVME-TIFALL5-EVG0:SoftEvt-EvtCode-SP 254
|
caput SAR-CVME-TIFALL5-EVG0:SoftEvt-EvtCode-SP 254
|
||||||
|
|
||||||
@@ -1477,7 +1477,66 @@ the cabeling has to change so that it fits as it worked before.
|
|||||||
SAR-EXPMX:MOT_CX: moves in closed loop, limitswitch +- must be swapped
|
SAR-EXPMX:MOT_CX: moves in closed loop, limitswitch +- must be swapped
|
||||||
SAR-EXPMX:MOT_CZ: moves in closed loop, limitswitch +- must be swapped
|
SAR-EXPMX:MOT_CZ: moves in closed loop, limitswitch +- must be swapped
|
||||||
SAR-EXPMX:MOT_CY: before commissioning check encoder signal Level TTL?
|
SAR-EXPMX:MOT_CY: before commissioning check encoder signal Level TTL?
|
||||||
|
|
||||||
-> we need the old stage to be able to check and compare each motor step by step.
|
-> we need the old stage to be able to check and compare each motor step by step.
|
||||||
|
now working and new stage CY is roughly commissined
|
||||||
|
```
|
||||||
|
|
||||||
|
24.11.23 Tweak CY stages
|
||||||
|
------------------------
|
||||||
|
```
|
||||||
|
stage without load: slowest open loop motion:
|
||||||
|
#3out-14
|
||||||
|
#3out 15
|
||||||
|
(14-15% of nominal curttent ~275mA)
|
||||||
|
|
||||||
|
sometimes stuck and needs up to 35% !!! of nominal current to start mofing againg.
|
||||||
|
This is the drawback of brushes that do not provide a smooth current switching and continous torque
|
||||||
|
|
||||||
|
|
||||||
|
> #3out15
|
||||||
|
> Motor[3].ServoOut
|
||||||
|
Motor[3].ServoOut=290.403002929687489
|
||||||
|
|
||||||
|
Motor[3].Servo.OutDbOn
|
||||||
|
Motor[3].Servo.OutDbOff
|
||||||
|
Motor[3].Servo.OutDbSeed
|
||||||
|
|
||||||
|
Motor[3].Servo.OutDbOn=200
|
||||||
|
Motor[3].Servo.OutDbOff=400
|
||||||
|
Motor[3].Servo.OutDbSeed=0
|
||||||
|
|
||||||
|
Motor[3].Servo.OutDbOn=200
|
||||||
|
Motor[3].Servo.OutDbOff=400
|
||||||
|
Motor[3].Servo.OutDbSeed=200
|
||||||
|
|
||||||
|
Motor[3].Servo.Kp=50
|
||||||
|
Motor[3].Servo.BreakPosErr=5
|
||||||
|
Motor[3].Servo.Ki=.0004
|
||||||
|
|
||||||
|
./PBGatherPlot.py -r2 --ssh_tunnel -p '{"motId":3,"address":"Sys.ServoCount,Motor[{motId}].DesPos,Motor[{motId}].PosError,Motor[{motId}].ServoOut,Motor[{motId}].IaMeas,Motor[{motId}].Integrator"}'
|
||||||
|
|
||||||
|
pp={
|
||||||
|
'openloop':False,
|
||||||
|
'file' :fn,
|
||||||
|
'motor' :3,
|
||||||
|
#'amp' :40, # openloop: % of maximal amplitude
|
||||||
|
'amp' :100, # closed loop: um amplitude
|
||||||
|
'minFrq' :1,
|
||||||
|
'maxFrq' :20,
|
||||||
|
'tSec' :6.,
|
||||||
|
'mode' :1,
|
||||||
|
}
|
||||||
|
tune.bode_chirp(**pp)
|
||||||
|
fig=plt.figure(1)
|
||||||
|
fig.suptitle('CY closedloop 6 sec. 1-20Hz amp=100um')
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
./PBGatherPlot.py -r0 --ssh_tunnel
|
||||||
|
|
||||||
|
./PBGatherPlot.py -r3 --ssh_tunnel -p '{"motId":3,"rng":[0,5000 ]}'
|
||||||
|
|
||||||
|
./PBGatherPlot.py -r3 --ssh_tunnel -p '{"motId":3,"rng":[0,2000 ],"wait":0.2, "repeat":3}' -d2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -107,9 +107,25 @@ Motor[2].pEncLoss=0
|
|||||||
!encoder_inc(enc=3,tbl=3,mot=3,posSf=0.25)
|
!encoder_inc(enc=3,tbl=3,mot=3,posSf=0.25)
|
||||||
!motor_servo(mot=3,ctrl='ServoCtrl',Kp=10,Kvfb=0,Ki=0.0,Kvff=0,Kaff=0,MaxInt=1000,Kfff=0)
|
!motor_servo(mot=3,ctrl='ServoCtrl',Kp=10,Kvfb=0,Ki=0.0,Kvff=0,Kaff=0,MaxInt=1000,Kfff=0)
|
||||||
!motor(mot=3,dirCur=0,contCur=1000,peakCur=2000,timeAtPeak=1,IiGain=1,IpfGain=3,IpbGain=3,JogSpeed=12.,numPhase=2,invDir=False,servo=None,PhasePosSf=0,PhaseFindingDac=0,PhaseFindingTime=0,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=3000,WarnFeLimit=1000,InPosBand=10,homing='enc-index')
|
!motor(mot=3,dirCur=0,contCur=1000,peakCur=2000,timeAtPeak=1,IiGain=1,IpfGain=3,IpbGain=3,JogSpeed=12.,numPhase=2,invDir=False,servo=None,PhasePosSf=0,PhaseFindingDac=0,PhaseFindingTime=0,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=3000,WarnFeLimit=1000,InPosBand=10,homing='enc-index')
|
||||||
Motor[3].Servo.Kp=50
|
Motor[3].Servo.Kp=20
|
||||||
Motor[3].Servo.BreakPosErr=5
|
Motor[3].Servo.BreakPosErr=1
|
||||||
Motor[3].Servo.Ki=.0004
|
Motor[3].Servo.KBreak=10
|
||||||
|
Motor[3].Servo.Ki=0
|
||||||
|
Motor[3].Servo.OutDbOn=150
|
||||||
|
Motor[3].Servo.OutDbOff=150
|
||||||
|
|
||||||
|
//Motor[3].Servo.Kp=80
|
||||||
|
//Motor[3].Servo.BreakPosErr=0
|
||||||
|
//Motor[3].Servo.KBreak=2
|
||||||
|
//Motor[3].Servo.Ki=0
|
||||||
|
//Motor[3].Servo.OutDbOn=150
|
||||||
|
//Motor[3].Servo.OutDbOff=150
|
||||||
|
|
||||||
|
//Motor[3].Servo.Kp=50
|
||||||
|
//Motor[3].Servo.BreakPosErr=5
|
||||||
|
//Motor[3].Servo.Ki=.0005
|
||||||
|
//Motor[3].Servo.OutDbOn=200
|
||||||
|
//Motor[3].Servo.OutDbOff=200
|
||||||
|
|
||||||
|
|
||||||
//Stada stage
|
//Stada stage
|
||||||
|
|||||||
15
generate.py
15
generate.py
@@ -70,7 +70,7 @@ class Generate:
|
|||||||
'motLst':(
|
'motLst':(
|
||||||
( 'DESC' , 'M' , 'ADDR' , 'DIR' , 'VELO' , 'HVEL' , 'MRES' , 'PREC' , 'EGU' ) ,
|
( 'DESC' , 'M' , 'ADDR' , 'DIR' , 'VELO' , 'HVEL' , 'MRES' , 'PREC' , 'EGU' ) ,
|
||||||
( '"Sample F-Trans Y"' , 'MOT_FY' , 1 , 0 , 16 , 2 , 0.001 , 4 , 'mm' ) ,
|
( '"Sample F-Trans Y"' , 'MOT_FY' , 1 , 0 , 16 , 2 , 0.001 , 4 , 'mm' ) ,
|
||||||
( '"Sample F-Trans X"' , 'MOT_FX' , 2 , 1 , 16 , 2 , 0.001 , 4 , 'mm' ) ,
|
( '"Sample F-Trans X"' , 'MOT_FX' , 2 , 0 , 16 , 2 , 0.001 , 4 , 'mm' ) ,
|
||||||
( '"Sample C-Trans Y"' , 'MOT_CY' , 3 , 0 , 12 , 4 , 0.001 , 4 , 'mm' ) ,
|
( '"Sample C-Trans Y"' , 'MOT_CY' , 3 , 0 , 12 , 4 , 0.001 , 4 , 'mm' ) ,
|
||||||
( '"Sample C-Trans X"' , 'MOT_CX' , 4 , 0 , 2 , 2 , 0.001 , 4 , 'mm' ) ,
|
( '"Sample C-Trans X"' , 'MOT_CX' , 4 , 0 , 2 , 2 , 0.001 , 4 , 'mm' ) ,
|
||||||
( '"Sample C-Trans Z"' , 'MOT_CZ' , 5 , 0 , 2 , 2 , 0.001 , 4 , 'mm' ) ,
|
( '"Sample C-Trans Z"' , 'MOT_CZ' , 5 , 0 , 2 , 2 , 0.001 , 4 , 'mm' ) ,
|
||||||
@@ -215,6 +215,19 @@ runScript $(mrfioc2_DIR)/mrfioc2_evr-PCIe.cmd, "DEVICE=EVR0,EVR_SUBS=$(ESB_MX_DI
|
|||||||
# https://git.psi.ch/epics_driver_modules/mrfioc2_regDev
|
# https://git.psi.ch/epics_driver_modules/mrfioc2_regDev
|
||||||
require mrfioc2_regDev
|
require mrfioc2_regDev
|
||||||
runScript $(mrfioc2_regDev_DIR)/mrfioc2_regDev_pulseID_RX.cmd, "DEVICE=EVR0,SYS=SAR-EXPMX"
|
runScript $(mrfioc2_regDev_DIR)/mrfioc2_regDev_pulseID_RX.cmd, "DEVICE=EVR0,SYS=SAR-EXPMX"
|
||||||
|
|
||||||
|
require PB_EXTRA
|
||||||
|
dbLoadRecords("$(PB_EXTRA_TEMPLATES)motorStatus.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_FY, M_NO=1")
|
||||||
|
dbLoadRecords("$(PB_EXTRA_TEMPLATES)motorStatus.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_FX, M_NO=2")
|
||||||
|
dbLoadRecords("$(PB_EXTRA_TEMPLATES)motorStatus.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CY, M_NO=3")
|
||||||
|
dbLoadRecords("$(PB_EXTRA_TEMPLATES)motorStatus.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CX, M_NO=4")
|
||||||
|
dbLoadRecords("$(PB_EXTRA_TEMPLATES)motorStatus.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CZ, M_NO=5")
|
||||||
|
|
||||||
|
dbLoadRecords("$(PB_EXTRA_TEMPLATES)killOne.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_FY, M_NO=1")
|
||||||
|
dbLoadRecords("$(PB_EXTRA_TEMPLATES)killOne.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_FX, M_NO=2")
|
||||||
|
dbLoadRecords("$(PB_EXTRA_TEMPLATES)killOne.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CY, M_NO=3")
|
||||||
|
dbLoadRecords("$(PB_EXTRA_TEMPLATES)killOne.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CX, M_NO=4")
|
||||||
|
dbLoadRecords("$(PB_EXTRA_TEMPLATES)killOne.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CZ, M_NO=5")
|
||||||
'''
|
'''
|
||||||
|
|
||||||
tplEXPMX2='''
|
tplEXPMX2='''
|
||||||
|
|||||||
Reference in New Issue
Block a user