Jump to content
OMRON Forums

Connecting analog servo with ACC-24E3


Mikiko Hori

Recommended Posts

I am trying to connect OMRON's Analog servo (R88D-KNA5L-ECT) with PMAC through ACC-24E3 at the DAC mode.

When I do the test run in the [system Setup] dialog, the value of Gate3[0].Chan[1].Dac[0] does not change (remains "-32768000") and the motor does not move. I can get the encoder value but cannot output commands.

The channel number is 1 and I set Gate3[0].Chan[1].OutputMode to "3". What seems to be the problem?

Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

I think what it's happening is that you're setting up for 2nd channel but drive/motor is connected to 1st channel.

 

Just in case, I put ACC-24E3 DAC output parameter example below.

It should work with open-loop mode.

If necessary, you may disable over travel limit with Motor[1].pLimits = 0.

Before you do servo-on, please setup PID parameters with IDE auto tuning.

 

///////////////////////////////

sys.WpKey=$AAAAAAAA;

 

//;OPT-2A 16bitDAC

gate3[0].DacStrobe=$FFFF0000;

Motor[1].DacShift=0;

Motor[2].DacShift=0;

Motor[3].DacShift=0;

Motor[4].DacShift=0;

 

//;OPT-2B 18bitDAC

/*

gate3[0].DacStrobe=$FFFFFF00;

Motor[1].DacShift=6;

Motor[2].DacShift=6;

Motor[3].DacShift=6;

Motor[4].DacShift=6;

*/

 

Gate3[0].Chan[0].OutputMode=7;

Gate3[0].Chan[1].OutputMode=7;

Gate3[0].Chan[2].OutputMode=7;

Gate3[0].Chan[3].OutputMode=7;

 

sys.wpkey=0;

 

Motor[1].ServoCtrl= 1;

Motor[1].PhaseCtrl=0;

Motor[1].pEncCtrl = Gate3[0].Chan[0].InCtrl.a;

Motor[1].pDac = Gate3[0].Chan[0].Dac[0].a;

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

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

Motor[1].pMasterEnc = EncTable[0].a;

Motor[1].pEncStatus = Gate3[0].Chan[0].Status.a;

Motor[1].pAmpEnable = Gate3[0].Chan[0].OutCtrl.a;

Motor[1].pAmpFault = Gate3[0].Chan[0].Status.a;

Motor[1].pLimits = Gate3[0].Chan[0].Status.a;

Motor[1].pAdc=0;

Motor[1].AmpEnableBit=8;

Motor[1].LimitBits=9;

Motor[1].ampfaultbit=7;

Motor[1].pCaptFlag = Gate3[0].Chan[0].Status.a;

Motor[1].CaptFlagBit=20;

//Motor[1].Servo.Kp= 300;

//Motor[1].Servo.Kvfb= 2000;

//Motor[1].Servo.Ki= 0.0099999998;

//Motor[1].Servo.Kvff= 40;

 

EncTable[1].type=1;

EncTable[1].pEnc=Gate3[0].Chan[0].ServoCapt.a;

EncTable[1].ScaleFactor=0.00390625;

 

///////////////////////////////

Link to comment
Share on other sites

Thank you for your help. The numbers of motor and channel were wrong. I have set them to #2 and #1, respectively.

The model name of G5 was wrong. It is R88D-KT01L.

 

I have another problem. The values of Motor[2].DesPos and Motor[2].Act.Pos keep increasing and the motor does not stop even though nothing is commanded, just by connecting ACC-24E3 and G5 analog servo. The servo cannot be enabled (Motor[2].AmpEna is false).

Where does the value of Motor[2].DesPos come from?

 

I also have questions about the encoder settings. Is the settings below correct?

EncTable[2].type=1

EncTable[2].index1=12

EncTable[2].index2=8

EncTable[2].ScaleFactor=0.001/1048576

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...