// Here we use 'simulated encoder with direct microstepping'
// in this configuration, the PID gives 'speed' to iqCmd this is multiplied with 0.25 (SlipGain) to result in the phasePos
// The torque is constant given as idCmd
// the PID does no regulation, as a real encoder is not used

// x einraster == -> x-N and x-S poles =2*x poles -> 1 rev = x*2048 ustep=phase_step
// changing the polarity from S-N-S (one pole cycle) are 2048 phase_step. phase_step is also called ustep

//Mot 1: Rotation stage LS Mecapion MDM-DC06DNC0H    32 poles = 1 rev = 16*2048=32768 phase_step
//Enc 1: Rotation stage LS Mecapion                  1 rev = 1048576 enc_steps

//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)

//Mot 3: Stage Y Parker MX80L D11 25mm               one pole cycle = 13mm = 2048 phase_step
//Enc 3: Stage Y Parker MX80L D11 inc_enc 20nm       one pole cycle = 13mm = 650000 enc_step (20nm/enc_step)

//Mot 4: Test Servo: Trinamic QBL 4208 motor                   8 poles 1 rev = 4*2048=8192 phase_step
//Enc 4: Test Servo: Incremental encoder mounted with motor 1  1 rev = 2000 enc count (500 inc_ quadrature encoder)
//Enc 5: Test Servo: Trinamic QBL 4208 hall sensor             1 rev = 24 enc count (hall sensor encoder)

//Mot 6: Test Stepper: Vextra PK244M                          200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
//Enc 6: Test Stepper: inc_enc                                1 rev = 1600 enc_step

//Mot 7: Test Stepper: Vextra PK244M                           200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
//Enc 7: Test Stepper: ssi_enc multiturn                       1 rev = 4096 enc_step

$$$***
!common()
//rot stage
//---------
!encoder_sim(enc=1,tbl=1,mot=1)
!encoder_biss(enc=1,tbl=9,mot=9,numBits=20,posSf=1.)
!motor(mot=1,dirCur=200,contCur=500,peakCur=1000,timeAtPeak=.5,JogSpeed=8.,numPhase=3,invDir=True)
//#1j:32768  = 1 rev


//Stage X Parker MX80L
//--------------------
!encoder_sim(enc=2,tbl=2,mot=2)
!encoder_inc(enc=2,tbl=10,mot=10,posSf=1.)
!motor(mot=2,dirCur=400,contCur=500,peakCur=2400,timeAtPeak=1,IiGain=1,IpfGain=0,IpbGain=2,JogSpeed=1.,numPhase=3,invDir=True)
//#2j:2048 -> moves one pole cycle= 650000 enc_step =13mm (Electrical Pitch in MX80 doc)



//Stage Y Parker MX80L
//--------------------
!encoder_sim(enc=3,tbl=3,mot=3)
!encoder_inc(enc=3,tbl=11,mot=11,posSf=1.)
!motor(mot=3,dirCur=400,contCur=500,peakCur=2400,timeAtPeak=1,IiGain=1,IpfGain=0,IpbGain=2,JogSpeed=1.,numPhase=3,invDir=True)
//#3j:2048 -> moves one pole cycle= 650000 enc_step =13mm (Electrical Pitch in MX80 doc)


//Test Servo: Trinamic QBL 4208 motor
//-----------------------------------

!encoder_sim(enc=4,tbl=4,mot=4)
!encoder_inc(enc=4,tbl=12,mot=12,posSf=1.) // incremental encoder
!encoder_inc(enc=5,tbl=13,mot=13,encctrl=15) //encctrl=11 Hall sensor encoder
!motor(mot=4,dirCur=200,contCur=500,peakCur=1000,timeAtPeak=.5,JogSpeed=32.,numPhase=3)
//#4j:8192 -> moves 1 rev
//#4j:2048 -> moves one pole cycle= 90deg -> 8 poles


//Test Stepper: Vextra PK244M inc_enc
//-----------------------------------

!encoder_sim(enc=6,tbl=6,mot=6)
!encoder_inc(enc=6,tbl=14,mot=14)
!motor(mot=6,dirCur=100,contCur=400,peakCur=600,timeAtPeak=1,numPhase=2,invDir=False,JogSpeed=2048)
//#6j:204800 moves 1 rev
//#6j:2048 ->moves one pole cycle 


//Test Stepper: Vextra PK244M abs_enc
//-----------------------------------
!encoder_sim(enc=7,tbl=7,mot=7)
!encoder_ssi(enc=7,tbl=15,mot=15,numBits=25)
!motor(mot=7,dirCur=100,contCur=400,peakCur=600,timeAtPeak=1,numPhase=2,invDir=False,JogSpeed=2048)
//#7j:204800 moves 1 rev
//#7j:2048 ->moves one pole cycle 
