Jump to content
OMRON Forums

Cannot achieve proper velocity using jog commands


sbondhus

Recommended Posts

I have a motor set up to use the following parameters, but it's not driving the way I'd expect:

 

Motor[x].JogSpeed = 0.04; // mm/ms

Motor[x].JogTa = 1; // temporarily reduced to eliminate Ta as cause of slow movement

Motor[x].JogTs = 1; // same note as .JogTa

 

When I issue a jog command to move 100 mm (i.e. Position window reads 120mm, I command "j=220") and I observe the velocity in the velocity window in the IDE, it shows that I'm only moving at 0.017 mm/ms (~42% of the desired 0.040). I am not hitting the specified MaxDac limit. Observing values for the inner- and outer-loop encoders shows that they're tracking as expected, scaled to mm.

 

I've tried doing a full reset ($$$***) or power cycle to clear any remaining values from previous projects.

 

What else could be limiting the velocity?

Link to comment
Share on other sites

  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

Hi,

 

Are you using a non-default Motor[x].PosSf?

 

We do scale position to mm instead of default motor encoder units. I've tried setting the scaling in the Motor vs Encoder setup tables with the same run results. For our original setup we had PosSf=1 (scaling done in the encoder table), but I also tried doing the scaling in the Motor setup. Both had the same problem.

 

Just today I tried setting the clocks back to the default speeds. It appears that because our clock speeds were reduced (Phase, servo, RTI, and background), the maximum jog speed was also reduced (apparently to by the same ratio as our servo cycle). Is this a bug, or am I missing a setting somewhere? It seems silly to me that Motor[x].JogSpeed is relative to the clock speed, especially since it is defined in units of "Motor units / msec".

 

Our clock setup is done in a .phm file in the Global Includes directory. The relevant lines are as follows:

Gate2[0].PwmPeriod = 7371;  //Max Freq = 8kHz  (117964.8/(2*PwmPeriod + 3))
Gate2[0].PhaseClockDiv = 1;  // 4kHz
Gate2[0].PhaseServoDir = 0;
Gate2[0].ServoClockDiv = 3;  // 1kHz

//Clock (from ACC5E)
Cid[4].dir=1;
Sys.BgSleepTime = 4000;  // 250 Hz
Sys.BgWDTReset =  0 ;
Sys.CompEnable =  0 ;
Sys.CompMotor =  0 ;
Sys.FirstEnc =  0 ;
Sys.MaxCoords =  16 ;
Sys.MaxMotors =  32 ;
Sys.MaxRtPlc =  0 ;
Sys.PhaseCycleExt =  0 ;
Sys.PreCalc =  1 ;
Sys.RtIntPeriod =  3 ; // 250 Hz
Sys.ServoPeriod = 1 ; //1ms (1 kHz)

Link to comment
Share on other sites

Thank you for good observation. I think the key in your original post was the 42% speed.

 

In Power PMAC, if you change the clocks, lets say from default Servo frequency of 2.25kHz to any other frequency, in your case 1kHz, the feedrate override value should be set to 100%. You can do this by issuing a &*%100 command which sets the feedrate override for all coordinate systems.

 

New Servo Frequency / Original Servo Frequcney = 1kHz/2.25kHz = 44.4%

Link to comment
Share on other sites

Thank you for good observation. I think the key in your original post was the 42% speed.

 

In Power PMAC, if you change the clocks, lets say from default Servo frequency of 2.25kHz to any other frequency, in your case 1kHz, the feedrate override value should be set to 100%. You can do this by issuing a &*%100 command which sets the feedrate override for all coordinate systems.

 

New Servo Frequency / Original Servo Frequcney = 1kHz/2.25kHz = 44.4%

 

I added the "&*%100" command to pp_startup.txt, and that fixed the issue. Thank you for the help!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...