Jump to content
OMRON Forums

Motor[x].IqCmd, proportional to position


christerEngblom
 Share

Recommended Posts

Hello,

I am currently setting up a cascading loop and I am having abit of an issue of the outermost motor output, Motor[4].IqCmd. It seems this outputs values that are proportional to the motor position rather than velocity or torque.

 

The setting is as follows:

-------

Motor[4].pDac=Sys.pushm;

Motor[4].EncType=5

EncTable[4].type=1;

EncTable[4].pEnc=PowerBrick[1].Chan[1].ServoCapt.a;

EncTable[4].index1=0;

EncTable[4].index2=0;

EncTable[4].index3=0;

EncTable[4].index4=0;

EncTable[4].MaxDelta=0;

EncTable[4].ScaleFactor=0.00390625;

Motor[4].pEnc=EncTable[4].a

Motor[4].pEnc2=EncTable[4].a

Motor[4].pLimits=0

Motor[4].pAmpEnable=0

Motor[4].pAmpFault=0

Motor[4].JogTs=-0.1

Motor[4].JogTa=-0.1

Motor[4].JogSpeed=8;

Motor[4].Stime=4;

 

Motor[4].Servo.Kp=0.079999998;

Motor[4].Servo.Kvfb=0.40000001;

Motor[4].Servo.Ki = 0.55000001;

Motor[4].Servo.Kvff = 0;

Motor[4].Servo.Kaff = 0;

Motor[4].Servo.Kvifb = 0;

Motor[4].Servo.Kviff = 0;

Motor[4].Servo.OutDbOn=0;

Motor[4].Servo.OutDbOff=0;

Motor[4].FatalFeLimit=2000;

Motor[4].MaxDac=32768;

Motor[4].ServoCtrl=1;

-------

The cascade uses Motor[x].MasterCtrl=1 and sets Motor[x].pMasterEnc=EncTable[11].a.

The innermost loop then sets EncTable[11].pEnc=Motor[4].IqCmd.a, but since the IqCmd already gives out positional values there is no need to integrate, and EncTable[11].index4=0;

 

This setup is problematic since the PID wont work well with a servo out that is proportional to position, and I have issues of extremely limited range as well. Have I forgotten something?

 

Best Regards,

Christer

Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Check to see if Motor[4].Ctrl = Sys.PosCtrl - this would make the output of the PID a position command not a torque or velocity command. It should be Motor[4].Ctrl = Sys.ServoCtrl.

 

Hi Steve and thanks for your response. I checked the parameter and Motor[4].Ctrl is already set to Sys.ServoCtrl.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share


×
×
  • Create New...