Delta Tau Forums
feed override with external Time-Base PPNC - Printable Version

+- Delta Tau Forums (http://forums.deltatau.com)
+-- Forum: Delta Tau Data Systems (http://forums.deltatau.com/forumdisplay.php?fid=1)
+--- Forum: Power PMAC (http://forums.deltatau.com/forumdisplay.php?fid=2)
+--- Thread: feed override with external Time-Base PPNC (/showthread.php?tid=2863)



feed override with external Time-Base PPNC - andreychip - 03-28-2019

Hello!
In the PPNC program, we use the ā€œ% nā€ adjustment in plc OverridePLC as Coord [1] .DesTimeBase = Sys.ServoPeriod * RapidOverrideInput / 100.
How to adjust the "feed override" with External Time-Base ?
my settings:
EncTable[13].type=1
EncTable[13].pEnc=Clipper[1].Chan[1].ServoCapt.a

plc spindle
EncTable[13].ScaleFactor=1/(256*RTIF)
RTIF=SpindleCtsRev*VS_SPINDLE_MAX_LIM_M/60000;
plc OverridePLC
Coord[1].pDesTimeBase= EncTable[13].DeltaPos.a; //TIMEBASE_M =FPR_TIMEBASE
Coord[1].TimeBaseSlew=1 //MED_SLEW;
The program works.
How to adjust the "feed override" with External Time-Base ?

best regards
Andrey.


RE: feed override with external Time-Base PPNC - Eric Hotchkiss - 03-28-2019

Is there a reason you would want to mix feedrate override with external time base? The whole point of external time base would be to go at the same speed an the encoder. I'd assume you'd want to slow down the motor that is the time base master, not the slave coordinate system.

Normally feedrate override is accomplished by changing Coord[x].DesTimeBase so that Coord[x].TimeBase changes based on Coord[x].TimeBaseSlew. When using external time base, Coord[x].DesTimeBase will still change from %n, but it will have no affect on Coord[x].TimeBase as it is set based on encoder velocity.

We can probably still make this happen if an extra ECT entry is used to multiply in Coord[x].DesTimeBase. Although this would probably require a RTI PLC or servo algorithm to repeated values from Coord[x].DesTimeBase to Sys.Idata[] where the ECT can actually point. This strategy would ignore Coord[x].TimeBaseSlew.


RE: feed override with external Time-Base PPNC - andreychip - 03-28-2019

(03-28-2019, 09:12 AM)Eric Hotchkiss Wrote: Is there a reason you would want to mix feedrate override with external time base? The whole point of external time base would be to go at the same speed an the encoder. I'd assume you'd want to slow down the motor that is the time base master, not the slave coordinate system.

Normally feedrate override is accomplished by changing Coord[x].DesTimeBase so that Coord[x].TimeBase changes based on Coord[x].TimeBaseSlew. When using external time base, Coord[x].DesTimeBase will still change from %n, but it will have no affect on Coord[x].TimeBase as it is set based on encoder velocity.

We can probably still make this happen if an extra ECT entry is used to multiply in Coord[x].DesTimeBase. Although this would probably require a RTI PLC or servo algorithm to repeated values from Coord[x].DesTimeBase to Sys.Idata[] where the ECT can actually point. This strategy would ignore Coord[x].TimeBaseSlew.
Thanks for the answer.
It makes sense. This mode is often used in lathes. In the previous version, the NC-PRO 2 was implemented in the PLC program. Today I found one of the ways. I used a free address
EncTable [16] .DeltaPos = EncTable [13] .DeltaPos * 0.01 * varOverraid;
Coord [1] .pDesTimeBase = EncTable [16] .DeltaPos.a;
varOverraid = 0 -150%
it all worked.
best regards Andrey.


RE: feed override with external Time-Base PPNC - Eric Hotchkiss - 03-28-2019

I'm a little confused. I can't set write to EncTable [16].DeltaPos, are you setting:
Enctable[16].pEnc=Enctable[13].PrevEnc and changing Enctable[16].ScaleFactor with varOverraid?


RE: feed override with external Time-Base PPNC - andreychip - 03-28-2019

(03-28-2019, 12:13 PM)Eric Hotchkiss Wrote: I'm a little confused. I can't set write to EncTable [16].DeltaPos, are you setting:
Enctable[16].pEnc=Enctable[13].PrevEnc and changing Enctable[16].ScaleFactor with varOverraid?
If you declare the table EncTable [16], you will not be able to write.
best regards Andrey.


RE: feed override with external Time-Base PPNC - curtwilson - 03-28-2019

Here's how it's commonly done with G93, G94, and G95 codes:

N93000: // G93: inverse time mode
dwell 0; // Stop pre-computation and motion
Coord[1].InvTimeMode = 1; // Enable inverse time calcs
Coord[1].TimeBaseSlew = 0.001; // Low value for gradual change
Coord[1].FeedTime = 60000; // F values are minute/F-command
Coord[1].pDesTimeBase = Coord[1].DesTimeBase.a; // Use cmd % value
return;

N94000: // G94: length per minute mode
dwell 0; // Stop pre-computation and motion
Coord[1].InvTimeMode = 0; // Not inverse time
Coord[1].TimeBaseSlew = 0.001; // Low value for gradual change
Coord[1].FeedTime = 60000; // F values are per minute
Coord[1].pDesTimeBase = Coord[1].DesTimeBase.a; // Use cmd % value
return;

N95000: // G95: length per rev mode
dwell 0; // Stop pre-computation and motion
Coord[1].InvTimeMode = 0; // Not compatible with inverse time
Coord[1].TimeBaseSlew = 1.0; // High value to track master
Coord[1].FeedTime = 60000 / SpindleRtRpm; // Time for rev in real time
Coord[1].pDesTimeBase = EncTable[i].DeltaPos.a; // Use encoder freq
return;


RE: feed override with external Time-Base PPNC - andreychip - 03-28-2019

(03-28-2019, 05:39 PM)curtwilson Wrote: Here's how it's commonly done with G93, G94, and G95 codes:

N93000: // G93: inverse time mode
dwell 0; // Stop pre-computation and motion
Coord[1].InvTimeMode = 1; // Enable inverse time calcs
Coord[1].TimeBaseSlew = 0.001; // Low value for gradual change
Coord[1].FeedTime = 60000; // F values are minute/F-command
Coord[1].pDesTimeBase = Coord[1].DesTimeBase.a; // Use cmd % value
return;

N94000: // G94: length per minute mode
dwell 0; // Stop pre-computation and motion
Coord[1].InvTimeMode = 0; // Not inverse time
Coord[1].TimeBaseSlew = 0.001; // Low value for gradual change
Coord[1].FeedTime = 60000; // F values are per minute
Coord[1].pDesTimeBase = Coord[1].DesTimeBase.a; // Use cmd % value
return;

N95000: // G95: length per rev mode
dwell 0; // Stop pre-computation and motion
Coord[1].InvTimeMode = 0; // Not compatible with inverse time
Coord[1].TimeBaseSlew = 1.0; // High value to track master
Coord[1].FeedTime = 60000 / SpindleRtRpm; // Time for rev in real time
Coord[1].pDesTimeBase = EncTable[i].DeltaPos.a; // Use encoder freq
return;

Thanks for the help !