Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

Possible to speed up Fanuc control?


Recommended Posts

Hi all,

I'm running 3 parts at a time using local subprograms that are called with M98 Qxxx. There is a bit of 3D work so the programs are long. My issue is when it searches for the subprogram, the control will take up to 20 seconds per sub, per part. Other than separating the sub into separate programs ( I really want to to keep everything in the same program), Is there a way to allow the control to zip thru the code faster to find the correct sub? The machine is a 2018 Doosan DNM5700 with a "Doosan Fanuc i Series" controller.

 

Thanks for your time.

Link to comment
Share on other sites

Can you make them one program and run it from an external card? Does it have a Data server? If it does then try running the complete program from the Data Server. I am not aware of any way to speed the search process on a Fanuc when in local memory short of making everything one program or putting the sub in the main program and using WHILE/DO. Kind of one those it is what it is why people get a Data Sever or run from a Card when having to run larger programs than the local memory can hold. 

Link to comment
Share on other sites
16 minutes ago, crazy^millman said:

Can you make them one program and run it from an external card? Does it have a Data server? If it does then try running the complete program from the Data Server. I am not aware of any way to speed the search process on a Fanuc when in local memory short of making everything one program or putting the sub in the main program and using WHILE/DO. Kind of one those it is what it is why people get a Data Sever or run from a Card when having to run larger programs than the local memory can hold. 

Hey thanks for looking at this, currently I'm running it from a 2gb external card, only because the machine memory isn't enough for this program. And no it doesn't have a data server.

Link to comment
Share on other sites
36 minutes ago, Tinger said:

Hey thanks for looking at this, currently I'm running it from a 2gb external card, only because the machine memory isn't enough for this program. And no it doesn't have a data server.

Then you might be at the limits of what you can accomplish. Hopefully someone who works directly for a MTB can chime in. You can also reach out to Fanuc directly and see if they can offer you some suggestions on things to try. 

Is the program format like so:

MAIN PROGRAM

TOOL 1

M98 SUB

M98 SUB

M98 SUB

TOOL 2

M98 SUB

M98 SUB

M98 SUB

Or is it like so:

MAIN PROGRAM

M98 PART 1 G54

M98 PART 2 G55

M98 PART 3 G56

If doing either way then combine them, into one program on the card for all 3 parts and trying running that. Now you have one only one search of 20 seconds and done. Problem of course is tool breakage and other things, but this is where I will slow things down and do processes and methods to give predictable tool life. Then from there know my failure points. Tools only last 10 parts then replace them at 9 part no matter what. They only last 29 part. I will replace them at 24 part run. Tools only last 101 parts. I will replace them at 90 parts. Tool life is probably one of the biggest areas people don't take the total cost of manufacturing into account. How long does the programs run is your cost to manufacture the part is most shops. Tooling is normally part of the hourly rate unless it is job that eats up a lot of tools then that cost is part of that specific job. Either way uptime is the goal here and if people are stressing out about 20 seconds between subs then they are probably stressing about keeping the machine running as much as possible. Problem will be they are not seeing the Forrest for the trees. Take a the total tooling cost of $2250 on a 1000 parts. That means each part has $2.25 of cost associated to it. Now take a shop rate of $100/hr. If the program run for 2 hours per part it gives 6 hours of run time. If running one shift then you have 12 hours a day of uptime on your machine if everything goes well. Now lets say you keep trying to get that extra part or parts out of the tools and end up loosing 4-6 hours week because of that. What have you really lost and what have you really gained? Again the tooling cost per part is $2.25 and your trying to get it maybe down to $2.00 per part by pushing the tools past the point of return on their cost. That is a saving of $250, but what people forgot is real cost of running equipment. Take the shop rate of $100/hr that is a lost of $400 to $600 if that is the time lost per week if what most people think. No sorry it is not the true loss was $800 to $1200 because that is the total loss because of time that couldn't be put else where. Lets say you lose 2 parts week again trying to push the tools to save that $250. What is the real cost there? Just in time that is a 3 times the original runtime cost for every part scrapped. There is the original time, the replacement time and the time that could not be put toward another part. Again using the $100/hr as our base the company lost $1200 by trying to save $250 by not keeping track of the tool life and replacing correctly and helping to create a stable manufacturing process.  What do I know I am the crazy person in the room when I start talking like this at most places.

Link to comment
Share on other sites
52 minutes ago, Leon82 said:

M198 or are you setting dnc file from program library?

 

I am setting the file from program library.

Here is a sample of the code;

N1
( T2 _ 2.0 SHOULDER MILL ALUMILL _ H2 _ D2 _ WEAR COMP _ TOOL DIA. - 2. )
(FACE TOP.)
G0 G20 G17 G40 G49 G80 G90 G53 Z0.
G05.1 Q1 R5
T2 M6
G0 G90 G54.1 P1 X.9324 Y2.0622 S10000 M3
G43 H2 Z1.1 M8 T3
M98 Q1001
(FACE TOP.)
/ G90 G54.1 P2 X.9324 Y2.0622 Z1.1
/ M98 Q1001
(FACE TOP.)
/ G90 G54.1 P3 X.9324 Y2.0622 Z1.1
/ M98 Q1001
M9
M5
G05.1 Q0
G90 G53 Z0.
M01
Link to comment
Share on other sites

It may not be possible. Maybe a baud rate increase?

Our matsuura PC4 will read a program and compare it against the tool list to spit the pallet back out if there is a broken tool. With a million character program this takes about 30 seconds. If you're on the offset screen you will actually see outputting blink. So you may be limited by hardware communication speed.

Link to comment
Share on other sites
59 minutes ago, Tinger said:

I am setting the file from program library.

Here is a sample of the code;


N1
( T2 _ 2.0 SHOULDER MILL ALUMILL _ H2 _ D2 _ WEAR COMP _ TOOL DIA. - 2. )
(FACE TOP.)
G0 G20 G17 G40 G49 G80 G90 G53 Z0.
G05.1 Q1 R5
T2 M6
G0 G90 G54.1 P1 X.9324 Y2.0622 S10000 M3
G43 H2 Z1.1 M8 T3
M98 Q1001
(FACE TOP.)
/ G90 G54.1 P2 X.9324 Y2.0622 Z1.1
/ M98 Q1001
(FACE TOP.)
/ G90 G54.1 P3 X.9324 Y2.0622 Z1.1
/ M98 Q1001
M9
M5
G05.1 Q0
G90 G53 Z0.
M01

As I thought by tool. How many tools to run each part? 

Link to comment
Share on other sites
12 minutes ago, crazy^millman said:

As I thought by tool. How many tools to run each part? 

Five.

The first two are instantaneous, its really just the last two tools and especially the last tool. It will move to cutting position, wait 17 seconds, cut, move to P2, wait 17 seconds, cut etc...

Link to comment
Share on other sites

Yes, but those 17 seconds are adding up so the issue becomes how to you eliminate that wasted motion and get one program just like you have it without a lot of work? Transform by points will allow this process of calling the same operation, but getting 3 fixture offsets in the same place without making a sub program. I have used it many times to run the same program with different offsets using Transform and having the tools run through each part and then go on to the next tool for each part.

Here is a 2021 file as an example with one part and 40 work offsets.

5th Axis Transform Example

 

  • Like 2
Link to comment
Share on other sites

Some confusion here, you say you are using M98 but the programs are on a card. M98 only calls from main memory not a memory card. You must use M198 to call from a card. I work for Doosan and have used M198 from a card many times and never experienced a wait that long, ever. More like 2 seconds. Seriously. M198 does not use the Q value to look for an N Number though. I would break up very large programs by tool or toolpath.

  • Like 2
Link to comment
Share on other sites

He's running the program from the card calling an internal sub.  Done this many times.

You are best to split up the subs into separate programs on the card, and execute the main from memory calling the subs with M198's.  The search time is what is killing you.  I don't know of any way to speed that up.  I have ran into the same thing doing mid program restarts.  It used to take just as long to search the restart line, as it did to just execute code and cut air up to that point. 

Just an idea, if you are running from the card, and the programs can be posted without edits, ditch the subs and just run it from the card as one long program.   But if you would like the flexibility to run it however, you will need to split it up into individual subs for each operation.

  • Like 2
Link to comment
Share on other sites

If this is a Fanuc Oi-F then you have an option to run programs from a card as if they were in regular memory. Fanuc does not advertise this for obvious reasons. Full search, edit and save capability. The option itself is already on the control. What you would need to buy is the PC software to setup the card, about $100. I have cards that are 1 and 4 gig in size and this works flawlessly. This option looks at a card as just another chunk of regular memory.

  • Like 2
Link to comment
Share on other sites
48 minutes ago, PAnderson said:

If this is a Fanuc Oi-F then you have an option to run programs from a card as if they were in regular memory. Fanuc does not advertise this for obvious reasons. Full search, edit and save capability. The option itself is already on the control. What you would need to buy is the PC software to setup the card, about $100. I have cards that are 1 and 4 gig in size and this works flawlessly. This option looks at a card as just another chunk of regular memory.

This is what I'm doing. I'm using an external card but it treats it as internal memory. The main program contains the subs after the M30. it's all one program. I was just hoping there would be a way around breaking it out into separate programs to increase the speed.

Link to comment
Share on other sites
1 minute ago, Tinger said:

This is what I'm doing. I'm using an external card but it treats it as internal memory. The main program contains the subs after the M30. it's all one program. I was just hoping there would be a way around breaking it out into separate programs to increase the speed.

As I recall, I ran a main in main memory and called each tool or toolpath from the card using M198 and swear there was no issue calling a program speedwise. Yes, searching through a program itself did incur a speed penalty. The last time I did this I called 3 programs from the card, 1 tool each program. All programs totaled about 60 meg.

  • Like 2
Link to comment
Share on other sites
5 hours ago, Tinger said:

This is what I'm doing. I'm using an external card but it treats it as internal memory. The main program contains the subs after the M30. it's all one program. I was just hoping there would be a way around breaking it out into separate programs to increase the speed.

So just to clarify M198 searches all within main program and memory?

On a Haas control there are 2 separate calls,

M98 calls sub stored outside of main program

M97 calls sub stored within main program after M30

Link to comment
Share on other sites
4 minutes ago, AHarrison1 said:

So just to clarify M198 searches all within main program and memory?

On a Haas control there are 2 separate calls,

M98 calls sub stored outside of main program

M97 calls sub stored within main program after M30

M98 PXXXX is for sub stored separately. (Same as Haas M98)

M98 QXXXX is for sub stored within the same program. (Same as Haas M97)

My machine is a Doosan, I don't know if this is standard on fanuc or MTB specific.

6 minutes ago, cncappsjames said:

M98 Q is like a GOTO almost. It has to internally scan through the program. This is the slowest method. I'd have 1 program, run M198. THere's no processing penalty that way.

 

JM2CFWIW

I didn't know I could use a M198 in place of a M98 Q.... I will try this out....

Link to comment
Share on other sites
16 minutes ago, cncappsjames said:

M98 Q is like a GOTO almost. It has to internally scan through the program. This is the slowest method. I'd have 1 program, run M198. THere's no processing penalty that way.

 

JM2CFWIW

When I try this I get a parameter setting error. Is there a parameter that needs switched for this to work?

Link to comment
Share on other sites

M198P0001 is the format you need.

 

Example:-

N0201T2M6
M1 
( 12MM DIA GARR KNUCKLE FINE 50 OUT SHUNK )
( ROUGH OD ) 
G10G90L12P2R6. 
G05.1Q1
 
G54G0G17G40G49G69G80G90X-7.294Y-68.898S10000M3 
T3M8 
G43Z10.H2
M198P0001
 
 
N0301T3M6
M1 
( 10MM DIA R0.5 BULL NOSE - 25MM FLUTE - 35MM OUT )
( FINISH Z0 )
G10G90L12P3R5. 
G05.1Q1
 
G54G0G17G40G49G69G80G90X9.75Y49.S10000M3 
T4M8 
G43Z10.H3
Z1.
M198P0002
 

 

 

And sub prog #1 example:-

%
O0001( SUB FOR VMC-0864 )
( 12MM DIA GARR KNUCKLE FINE 50 OUT SHUNK )
( ROUGH OD )

Z1.
G1 Z-13.738 F1500.
X-7.043 Y-68.8 Z-14.421
X-6.525 Y-68.596 Z-14.723
G3 X-5.959 Y-67.301 Z-15. I-.365 J.931 F7500.
G1 X-7.915 Y-62.308
CODE
CODE
CODE
CODE
CODE
Z-18.446
Y-57.158 Z-22.615
X41.3
Y-55.572 Z-19.597
G0 Z-18.597
Z10. M9
G28 Z10. M19
G05.1 Q0
G49
M99

Link to comment
Share on other sites
5 minutes ago, Newbeeee™ said:

M198P0001 is the format you need.

 

Example

N0201T2M6
M1 
( 12MM DIA GARR KNUCKLE FINE 50 OUT SHUNK )
( ROUGH OD ) 
G10G90L12P2R6. 
G05.1Q1
 
G54G0G17G40G49G69G80G90X-7.294Y-68.898S10000M3 
T3M8 
G43Z10.H2
M198P0001
 
 
N0301T3M6
M1 
( 10MM DIA R0.5 BULL NOSE - 25MM FLUTE - 35MM OUT )
( FINISH Z0 )
G10G90L12P3R5. 
G05.1Q1
 
G54G0G17G40G49G69G80G90X9.75Y49.S10000M3 
T4M8 
G43Z10.H3
Z1.
M198P0002
 
 
N0401T4M6
 

And sub prog #1

 

%
O0001( SUB FOR VMC-0864 )
( 12MM DIA GARR KNUCKLE FINE 50 OUT SHUNK )
( ROUGH OD )

Z1.
G1 Z-13.738 F1500.
X-7.043 Y-68.8 Z-14.421
X-6.525 Y-68.596 Z-14.723
G3 X-5.959 Y-67.301 Z-15. I-.365 J.931 F7500.
G1 X-7.915 Y-62.308
CODE
CODE
CODE
CODE
CODE
Z-18.446
Y-57.158 Z-22.615
X41.3
Y-55.572 Z-19.597
G0 Z-18.597
Z10. M9
G28 Z10. M19
G05.1 Q0
G49
M99

Your sub has a % at the beginning? Does this mean this is a separate program? Or would you have it after the M30 in the parent program?

Link to comment
Share on other sites
1 minute ago, Tinger said:

Your sub has a % at the beginning? Does this mean this is a separate program? Or would you have it after the M30 in the parent program?

This was kept separate together with sub #2, and sub#3 etc, as they would get copied and paste onto the PCMCIA card.

The main prog is obvioulsy separate, becuase that goes into the control.

The subs are separate becuase they're on the PCMCIA card.

 

You may have to change a parameter too to make this work.

If you do, James (CNCAPPSJAMES) is the one to thank for all of this info 

 

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us

×
×
  • Create New...