Jump to content
OMRON Forums

Phase find with 24E2+51E in PPMAC


guke520
 Share

Recommended Posts

I use direct PWM to control the torque motor, and the step-by-step method to find the phase. Every time the phase search is unsuccessful, no matter if the phase finding current or time is increased, what might be the reason?

 

 

//ACC-24E2+51E

//======================================== Motor1=====================================//

Motor[1].AdcMask = $FFF00000

Motor[1].AmpFaultLevel = 1

Motor[1].PhaseCtrl = 4

Motor[1].ServoCtrl=1

Motor[1].Ctrl=Sys.ServoCtrl

 

GLOBAL DcBusInput = 340;

GLOBAL Mtr1DCVoltage = 110;

Motor[1].PwmSf = 0.95 * 16384 * Mtr1DCVoltage / DcBusInput

Gate1[4].Chan[0].EncCtrl =7 //24E2

Gate1[4].Chan[0].OutputMode=0

Motor[1].PhaseOffset = 683

 

/*************************Motor1 I2T************************/

GLOBAL Ch1MaxAdc = 30;

GLOBAL Ch1RmsPeakCur = 20;

GLOBAL Ch1RmsContCur = 10;

GLOBAL Ch1TimeAtPeak = 0.5;

Motor[1].MaxDac = Ch1RmsPeakCur * 40132.44 / Ch1MaxAdc

Motor[1].I2TSet = Ch1RmsContCur * 40132.44 / Ch1MaxAdc

Motor[1].I2tTrip = (POW(Motor[1].MaxDac,2) - POW(Motor[1].I2TSet,2)) * Ch1TimeAtPeak

/*************************Motor1 Current Loop************************/

Motor[1].IiGain = 0.2

Motor[1].IpfGain = 5.5

Motor[1].IpbGain = 0

Motor[1].IaBias = 240

Motor[1].IbBias = -935

///System /opt/ppmac/setup/calcadcoffset 1

/*************************Motor1 Phasing************************/

Motor[1].PhasePosSf = 2048/(256*4*55040/44) //2048 * / (256 * 4* liner per commutation cycle)

Motor[1].pPhaseEnc = Gate1[12].Chan[0].PhaseCapt.a

Motor[1].PhaseFindingDac = Motor[1].I2tSet*0.5

Motor[1].PhaseFindingTime = 1000*Sys.ServoPeriod

Motor[1].AbsPhasePosOffset = 2048/5

/*************************Motor1 setup************************/

Motor[1].pEnc=EncTable[6].a

Motor[1].pEnc2=EncTable[6].a

Motor[1].pLimits=0 //Gate1[4].Chan[0].Status.a

Motor[1].LimitBits=25

Motor[1].pAmpFault=0 //Gate1[4].Chan[0].Status.a

Motor[1].AmpFaultBit=23

Motor[1].pDac=Gate1[4].Chan[0].Pwm[0].a

Motor[1].pAdc=Gate1[4].Chan[0].Adc[0].a

Motor[1].pAmpEnable=Gate1[4].Chan[0].Ctrl.a

Motor[1].pEncStatus=Gate1[12].Chan[0].Status.a

Motor[1].pCaptFlag=Gate1[12].Chan[0].Status.a

Motor[1].pCaptPos=Gate1[12].Chan[0].HomeCapt.a

Motor[1].MinPos=0

Motor[1].MaxPos=0

Motor[1].InPosBand=1;

/*************************Motor1 PID************************/

Motor[1].Servo.Kp=4

Motor[1].Servo.Kvfb=40

Motor[1].Servo.Kvff=40

Motor[1].Servo.Ki=0

 

/*************************ACC-51E************************/

Gate1[12].Chan[0].CaptCtrl=1

Gate1[12].Chan[0].EncCtrl=3

 

EncTable[6].type=4

EncTable[6].pEnc=Gate1[12].Chan[0].Status.a

EncTable[6].pEnc1=Gate1[12].Chan[0].Adc[0].a

EncTable[6].index5=0

EncTable[6].ScaleFactor=1/32 //1/1024

Link to comment
Share on other sites

  • 3 weeks later...
  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Guest
This topic is now closed to further replies.
 Share


×
×
  • Create New...