Power PMAC Clipper User Manual
ACC-24S3 4-Channel Axis Expansion Stack Board 83
Motor Setup Code
Typical Settings for Four Channels of Filtered PWM Setup:
Sys.WpKey=$AAAAAAAA
// Clocks – Phase and Servo
Clipper[1].PhaseFreq=10000; // 10KHz Phase
Clipper[1].PhaseClockDiv=0;
Clipper[1].ServoClockDiv=3; // 2.25KHz Servo
Clipper[1].AdcAmpStrobe=$fffffc;
Sys.PhaseOverServoPeriod=1/(Clipper[1].ServoClockDiv+1)
Sys.ServoPeriod=1000*(Clipper[1].ServoClockDiv+1)/Clipper[1].PhaseFreq
// PWM setup
Clipper[1].Chan[0].PwmDeadTime=0;
Clipper[1].Chan[0].PackOutData=0;
Clipper[1].Chan[0].PackInData=0;
Clipper[1].Chan[0].PwmFreqMult=5; // 30KHz PWM
Clipper[1].Chan[1].PwmDeadTime=0;
Clipper[1].Chan[1].PackOutData=0;
Clipper[1].Chan[1].PackInData=0;
Clipper[1].Chan[1].PwmFreqMult=5;
Clipper[1].Chan[2].PwmDeadTime=0;
Clipper[1].Chan[2].PackOutData=0;
Clipper[1].Chan[2].PackInData=0;
Clipper[1].Chan[2].PwmFreqMult=5;
Clipper[1].Chan[3].PwmDeadTime=0;
Clipper[1].Chan[3].PackOutData=0;
Clipper[1].Chan[3].PackInData=0;
Clipper[1].Chan[3].PwmFreqMult=5;
// Motor and PID Setup
//************** Motor1
Motor[5].ServoCtrl=1;
Motor[5].pDac=Clipper[1].Chan[0].Pwm[2].a;
Motor[5].pEncStatus=Clipper[1].Chan[0].Status.a;
Motor[5].pAmpEnable=Clipper[1].Chan[0].OutCtrl.a;
Motor[5].pAmpFault=Clipper[1].Chan[0].Status.a;
Motor[5].pLimits=Clipper[1].Chan[0].Status.a
Motor[5].AmpFaultLevel=1
Motor[5].MaxDac=16384
//< PID & Safety >
Motor[5].Servo.Kp=51.702454;
Motor[5].Servo.Kvfb=1438.4297;
Motor[5].Servo.Ki=0.0099164471;
Motor[5].Servo.Kvff=1438.4297;
Motor[5].Servo.Kaff=19470.463;
Motor[5].Servo.Kvifb=0;
Motor[5].Servo.Kviff=0;
Motor[5].Servo.Kfff=0;
Motor[5].FatalFeLimit=20000;
Motor[5].MaxSpeed=2048;
Motor[5].InvAmax=20;
Motor[5].JogTa=50;
Motor[5].JogTs=20;
Motor[5].JogSpeed=102.4;
Motor[5].Servo.MaxPosErr=100000
//************** Motor2
Motor[6].ServoCtrl=1;
Motor[6].pDac=Clipper[1].Chan[1].Pwm[2].a;
Motor[6].pEncStatus=Clipper[1].Chan[1].Status.a;
Motor[6].pAmpEnable=Clipper[1].Chan[1].OutCtrl.a;
Motor[6].pAmpFault=Clipper[1].Chan[1].Status.a;
Motor[6].pLimits=Clipper[1].Chan[1].Status.a