update stages config

This commit is contained in:
2023-11-23 16:29:54 +01:00
parent 348fe208d1
commit 228caf0729
9 changed files with 88 additions and 350 deletions

View File

@@ -23,9 +23,16 @@
//Mot 2: Stage X Parker MX80L D11 25mm one pole cycle = 13mm = 2048 phase_step
//Enc 2: Stage X Parker MX80L D11 inc_enc 20nm one pole cycle = 13mm = 650000 enc_step (20nm/enc_step)
//OLD Stage 3
//Mot 3: Rotation stage LS Mecapion MDM-DC06DNC0H 32 poles = 1 rev = 16*2048=32768 phase_step
//Enc 3: Rotation stage LS Mecapion 1 rev = 1048576 enc_steps
// OWIS stage HMV 10N-303HiDS 42.N00.30WJ (DC-Mot. mech Endswitch Norm.Closed)
// 30mm max 12mm/s max 35V max 2.1A 500um/rev 2000enc_cnt/rev Incr. enc with home mark TTL level
//Mot 3: Stage Y DC-Motor (Brushed DC)
//Enc 3: Stage Y Incr. Encoder
//Mot 4: Stage X Stada Stepper 670mA 200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
//Enc 4: Renishaw absolute BiSS
@@ -66,8 +73,9 @@ Motor[1].pEncLoss=0
Motor[2].pEncLoss=0
//rot stage
//---------
//rot stage (decomissioned)
//-------------------------
//use 360'000 for 360 deg as motor unit
//1 rev = 16*2048=32768 phase_step = 1048576 enc_steps
//PhasePosSf= 8*el_cycle/enc_step =8*16/1048576=1./8192
@@ -77,11 +85,23 @@ Motor[2].pEncLoss=0
// Motor 3: 0dB at 18.8Hz Friction 70curr_bits
// Kaff= 1/((18.8*2*np.pi)**2/5000**2 ) = 1791.6970285327388
//!encoder_sim(enc=3,tbl=11,mot=11,posSf=360000./32768)
//!encoder_biss(enc=3,tbl=3,mot=3,numBits=20,posSf=360000./1048576)
//Motor[3].pPhaseEnc=Acc84B[0].Chan[2].SerialEncDataA.a
//!motor_servo(mot=3,ctrl='ServoCtrl',Kp=10,Kvfb=220,Ki=0.001,Kvff=220,Kaff=1792,MaxInt=1000,Kfff=5)
//!motor(mot=3,dirCur=0,contCur=1000,peakCur=2000,timeAtPeak=1,IiGain=2,IpfGain=12,IpbGain=12,JogSpeed=180.,numPhase=3,invDir=False,servo=None,PhasePosSf=1./8192,PhaseFindingDac=100,PhaseFindingTime=50,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=3000,WarnFeLimit=1000,InPosBand=10, HomeOffset=228987)
//Y stage OWIS
//------------
//2000enc/rev 500um/rev
//1 rev = 2000 enc_cnt = 500um
// max. 2.1A 36V
!encoder_sim(enc=3,tbl=11,mot=11,posSf=360000./32768)
!encoder_biss(enc=3,tbl=3,mot=3,numBits=20,posSf=360000./1048576)
Motor[3].pPhaseEnc=Acc84B[0].Chan[2].SerialEncDataA.a
!motor_servo(mot=3,ctrl='ServoCtrl',Kp=10,Kvfb=220,Ki=0.001,Kvff=220,Kaff=1792,MaxInt=1000,Kfff=5)
!motor(mot=3,dirCur=0,contCur=1000,peakCur=2000,timeAtPeak=1,IiGain=2,IpfGain=12,IpbGain=12,JogSpeed=180.,numPhase=3,invDir=False,servo=None,PhasePosSf=1./8192,PhaseFindingDac=100,PhaseFindingTime=50,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=3000,WarnFeLimit=1000,InPosBand=10, HomeOffset=228987)
!encoder_inc(enc=3,tbl=3,mot=3,posSf=13000./650000)
!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=2.,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')
//Stada stage
@@ -90,10 +110,10 @@ Motor[3].pPhaseEnc=Acc84B[0].Chan[2].SerialEncDataA.a
//posSf = userUnits/encoder_steps
//servoSf=motor_u_steps/userUnits
!encoder_biss(enc=4,numBits=32,posSf=1./20)
!encoder_biss(enc=5,numBits=32,posSf=1./20)
!motor(mot=4,current=200,JogSpeed=0.5,invDir=1,servoSf=204.8,InPosBand=1,HomeOffset=39278)
!motor(mot=5,current=200,JogSpeed=0.5,invDir=1,servoSf=204.8,InPosBand=1,HomeOffset=39736)
!encoder_biss(enc=4,numBits=32,posSf=-1./20)
!encoder_biss(enc=5,numBits=32,posSf=-1./20)
!motor(mot=4,current=200,JogSpeed=0.5,invDir=0,servoSf=204.8,InPosBand=1,HomeOffset=-39278)
!motor(mot=5,current=200,JogSpeed=0.5,invDir=0,servoSf=204.8,InPosBand=1,HomeOffset=-39736)
//Interferometer 1,2

View File

@@ -30,15 +30,22 @@ Motor[5].Servo.BreakPosErr=0
// PKP266D14BA2 1.4A 1.8deb/step
// encoder: Renishaw: RL26BAT050B050A 26 bit, 50nm/enc_cnt
//!encoder_sim(enc=6)
//!motor(mot=6,dirCur=1400,JogSpeed=40,InPosBand=0,FatalFeLimit=1000,HomeOffset=0.)
// #6j=102400 -> 1 rev
//#6j=102400 == 1 rev == 102400 enc_cnt == 2000*1um
//#6j=102400 steps == 1 rev == 2000*20 enc_cnt == 2000*1um
//servoSf : motorusteps/user_units = 102400./2000
//posSf : user_units/encoder_steps = 2000./102400
//posSf : user_units/encoder_steps = 0.05nm/1enc_cnt=1/20
//Open loop
//!encoder_sim(enc=6,posSf=2000./102400,pos2Sf=0)
!encoder_sim(enc=6,posSf=2000./102400)
!motor(mot=6,dirCur=1400,servoSf=102400./2000,invDir=False,JogSpeed=2,InPosBand=1,FatalFeLimit=1000,HomeOffset=0.)
//!encoder_biss(enc=6,tbl=16,mot=16,numBits=26,posSf=1./20)
//!motor(mot=6,dirCur=1400,servoSf=102400./2000,invDir=False,JogSpeed=2,InPosBand=1,FatalFeLimit=1000,HomeOffset=0.)
//Closed loop
!encoder_sim(enc=6,tbl=16,mot=16,posSf=2000./102400)
!encoder_biss(enc=6,numBits=26,posSf=1./20)
!motor(mot=6,dirCur=1400,servoSf=102400./2000,invDir=False,JogSpeed=2,InPosBand=1,FatalFeLimit=1000,HomeOffset=1516405.)
// break configuration

View File

@@ -53,6 +53,7 @@ enable plc 1
#1..5dkill
#6hmz
//motor 1..5 use break setup to kill motor
!holding_current(m6=[0,700])