Files
PBSwissMX/cfg/MX3_setup.cfg
2023-11-23 16:29:54 +01:00

84 lines
4.3 KiB
INI

//the motor has 512*200*100 usteps per revolution (512 uystep/step, 200 steps/rev 1:100 gear)
//the ssi-encoder has 2**18=262144 steps per revolution
//calibration values such that 0 mdeg is the highest point (+5mm) and 180000mdeg = lowest point (-5mm)
//#1: homeoffset: -20907.5928142
//#2: homeoffset: 102320.329068
//#3: homeoffset: 168946.772022
//#4: homeoffset: -87830.7554146
//#5: homeoffset: -47956.2759182
!encoder_ssi(enc=1,numBits=18,posSf=-5625./4096)
!motor(mot=1,dirCur=1000,JogSpeed=40,servoSf=256./9.,InPosBand=10,FatalFeLimit=1000,HomeOffset=65477.,FaultMode=0)
!encoder_ssi(enc=2,numBits=18,posSf=-5625./4096)
!motor(mot=2,dirCur=1000,JogSpeed=40,servoSf=256./9.,InPosBand=10,FatalFeLimit=1000,HomeOffset=-154370.,FaultMode=0)
!encoder_ssi(enc=3,numBits=18,posSf=-5625./4096)
!motor(mot=3,dirCur=1000,JogSpeed=40,servoSf=256./9.,InPosBand=10,FatalFeLimit=1000,HomeOffset=-5248.,FaultMode=0)
!encoder_ssi(enc=4,numBits=18,posSf=-5625./4096)
!motor(mot=4,dirCur=1000,JogSpeed=40,servoSf=256./9.,InPosBand=10,FatalFeLimit=1000,HomeOffset=-46620.,FaultMode=0)
!encoder_ssi(enc=5,numBits=18,posSf=-5625./4096)
!motor(mot=5,dirCur=1000,JogSpeed=40,servoSf=256./9.,InPosBand=10,FatalFeLimit=1000,HomeOffset=93168.,FaultMode=0)
Motor[1].Servo.BreakPosErr=0
Motor[2].Servo.BreakPosErr=0
Motor[3].Servo.BreakPosErr=0
Motor[4].Servo.BreakPosErr=0
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 = 0.05nm/1enc_cnt=1/20
//Open loop
//!encoder_sim(enc=6,posSf=2000./102400,pos2Sf=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
// at the beginning brakes were handeled with 'custom motion', but this has been removed,
// as it was possible to cofigure simple brake handling with the motor on a better approach
// s.a. following implementation
// ~/Documents/prj/SwissFEL/epics_ioc_modules/PBPG/cfg/motEnc-PBPG050.cfg
//!holding_current template not needed. The brake stuff below turns off the amplifiers
// brake
// PowerBrick[0].GpioData[0].16 is GPIO-OUT[1]
Motor[1].pBrakeOut = PowerBrick[0].GpioData[0].a // put proper reference to gpio here !!!
Motor[1].BrakeOutBit = 16
Motor[1].BrakeOffDelay = 100 // delay in ms before the brake is released after motion was triggered
Motor[1].BrakeOnDelay = 100 // delay in ms before the amplifier is disabled after motion has stopped
Motor[2].pBrakeOut = PowerBrick[0].GpioData[0].a // put proper reference to gpio here !!!
Motor[2].BrakeOutBit = 17
Motor[2].BrakeOffDelay = 100 // delay in ms before the brake is released after motion was triggered
Motor[2].BrakeOnDelay = 100 // delay in ms before the amplifier is disabled after motion has stopped
Motor[3].pBrakeOut = PowerBrick[0].GpioData[0].a // put proper reference to gpio here !!!
Motor[3].BrakeOutBit = 18
Motor[3].BrakeOffDelay = 100 // delay in ms before the brake is released after motion was triggered
Motor[3].BrakeOnDelay = 100 // delay in ms before the amplifier is disabled after motion has stopped
Motor[4].pBrakeOut = PowerBrick[0].GpioData[0].a // put proper reference to gpio here !!!
Motor[4].BrakeOutBit = 19
Motor[4].BrakeOffDelay = 100 // delay in ms before the brake is released after motion was triggered
Motor[4].BrakeOnDelay = 100 // delay in ms before the amplifier is disabled after motion has stopped
Motor[5].pBrakeOut = PowerBrick[0].GpioData[0].a // put proper reference to gpio here !!!
Motor[5].BrakeOutBit = 20
Motor[5].BrakeOffDelay = 100 // delay in ms before the brake is released after motion was triggered
Motor[5].BrakeOnDelay = 100 // delay in ms before the amplifier is disabled after motion has stopped