sbondhus Posted April 25, 2014 Posted April 25, 2014 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?
Omron Forums Support Posted April 29, 2014 Posted April 29, 2014 Hi, Are you using a non-default Motor[x].PosSf?
sbondhus Posted April 30, 2014 Author Posted April 30, 2014 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)
Sina.Sattari Posted May 1, 2014 Posted May 1, 2014 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%
sbondhus Posted May 2, 2014 Author Posted May 2, 2014 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!
Recommended Posts