587,698 active members*
3,416 visitors online*
Register for free
Login
Page 1 of 2 12
Results 1 to 20 of 35
  1. #1
    Join Date
    Dec 2009
    Posts
    10

    Kiwa excel 510 toolchange HELP!!

    Hi there,

    As my title already showed, I have a problem with my KIWA excel 510. The machine was build in 1990 with a fanuc OM control system. The machine has a carousel with 16 tools vertically placed.

    I must admit I am new in the cnc world and because a lack of good machine documentation and experience, I accidently modified/deleted the toolchange macro (O9001).

    After a good search I found some useful information, so I was able to program a part of the macro back in the system. Now when I call in the toolchange progam (T01 M16) the following happens:

    The carousel comes forward, picks out the present tool, drops down, rotates to the new tool and comes to a hold. So it stays in the drop down position.

    TOOL CHANGE MACRO:

    O9001;
    G80 G40 M9;
    G91 G30 Z0 M19;
    M6 T#149;
    M99;

    I know something is missing but don't see what. Maybe someone has the same machine with a good macro? All suggestions are greatly appreciated!


    Ben
    The Netherlands

  2. #2
    Join Date
    Jun 2008
    Posts
    1511
    Does the control call the 9001 program with the M6 code? Does the new tool actually get clamped then just sits there?

    Stevo

  3. #3
    Join Date
    Dec 2009
    Posts
    10
    Quote Originally Posted by stevo1 View Post
    Does the control call the 9001 program with the M6 code? Does the new tool actually get clamped then just sits there?

    Stevo
    Hi Stevo,

    Thanks for your reply! The control does call the 9001 program. On my machine I call it with T01 M16

    When ik call the program the toolchange starts:

    Carrousel comes forward and picks out the current tool,
    Rotates to the next holder and then comes to a hold.

    So it should be moving upward to clamp the new tool and then retract the
    carrousel, this doesn't happen.

    When I'm in jog mode at toolchange position (G30 Z0) the whole cycle works fine. I know something is wrong with the code.

    Ben

  4. #4
    Join Date
    Jun 2008
    Posts
    1511
    Ok I have a few questions. First one is kind of insignificant. Whey M16 and not M6? It should not matter because obviously you have parameter 240 set to 16 so the M16 is used but I was just curious.

    Now you say when you are in jog mode and G30Z0 position that the cycle works fine. What are you typing to make the cycle work? Are you just moving it to G30Z0 then typing in M6?

    Now from a code standpoint there are a few things we can try. Depending on how your machine is setup to function. G30 is for your return from 2nd,3rd,4th reference positions and I ass u me that your tool change position is Z0 and the carrousel does the work of up and down without moving Z correct?? If that is the case then a simple G91G28Z0 would be more appropriate but not a necessity. Take your M19 and put it in the next line.

    Now depending on how your code is completed in the ladder typically all that is needed is a M6. You have M6T#149. Now I ass u me that you got that maybe from an example of a tool change program however if your machine or program does not set #149 to the modal T then it will mug things up. If you were to start the tool change process and stop it before the M6T#149 block then look at what the value of #149 is set to. I have seen variables set to the modal T thru the PMC data before but this is typically done via tool change macro and you don’t have it coded. It would be something like #149=#4120 to capture the modal T and set it to #149. However most tool changes will change with a M6 already knowing the modal T via ladder. If you would like to use #149 to track the tool in the spindle then that is ok it can be added to the macro.

    I would start with something like this.
    O9001;
    G80 G40 M9;
    G91G28Z0
    M19;
    M6
    #149=#4120---(optional to track the tool)
    M99;

    If your code needs #149 and it is not being set when you look at #149 then put #149=#4120 at the beginning of your program and then put the T#149 back in the M6 line.

    Stevo

  5. #5
    Join Date
    Dec 2009
    Posts
    10
    Thanks steve for your help!

    First of all I bought the machine via auction. When I first took a look at the programs located in the memory, I noticed that all toolchanges were called with this M16. I don't really know why this is done, but I do know it worked before. The previous machine operator must have had his reasons.

    When I am in jog mode I can operate the ATC via the specific switches located on the control panel. This can only be done after I enter a G30 Z0 in MDI mode. So the spindle has to be in this position to make (manual operated) toolchange possible.

    The carrousel is the one that moves the tools up and down. The Z axis stays in the G30 Z0 position during the whole toolchange.

    You are correct about the T#149. I have found this on an other thread for a KIWA machine. I (maybe dumb) assumed that this was a neccesity in the code. Now when the toolchange starts, it stops in my M6 T#149 line, which is a strange coincidence maybe. Realising that the T#149 might be the one messing up the toolchange cycle?!

    I will remove the T#149, see what is does and check the other things you have mentioned. I'll keep you informed!

    Ben

  6. #6
    Join Date
    Jun 2008
    Posts
    1511
    Ben,
    I believe you will probably find that to be the problem. Once it pauses on the M6T#149 go look at what common variable #149 is set to. My guess is it is set to null. This in turn is trying to call null. As an example if #149 was set to say 2 then the line of code would represent M6T2.

    The document attached will tell you how to view the variables on your control.

    Stevo
    Attached Files Attached Files

  7. #7
    Join Date
    Feb 2006
    Posts
    1792
    Use of T#149 is making me curious. Read the attached document. It applies to 0i control, but you may expect a similar thing on your control also (?). The given example pertains to a lathe. But a similar thing happens on a milling machine also.
    Attached Files Attached Files

  8. #8
    Join Date
    Jun 2008
    Posts
    1511
    Quote Originally Posted by sinha_nsit View Post
    Use of T#149 is making me curious. Read the attached document. It applies to 0i control, but you may expect a similar thing on your control also (?). The given example pertains to a lathe. But a similar thing happens on a milling machine also.
    Hey Sinha....good info on the T#149.

    As you know #149 is one of your common variables. These pertain to all Fanuc controls that are using macro programming. When these are put into macros or tool change programs they are usually done so by the MTB. As to what your document is specifying is that you can call a sub via T() code and it will set #149 to the modal T. Which IIRC can be done on any Fanuc control. This is typically used when an M6 function is not used or not allowed. Some machines were set up to call the tool sole based on the T() command with no M6. I have also used this so I can write a pre-called tool to a permanent common variable so I can track it. Or if you want to avoid or skip specific tool pockets in the magazine.

    I am sure there may be more reasons for using this and would be curious to hear them.

    However according to the rules of sub called with the T-code when Ben’s programming is running it is a macro/sub and will treat the T#149 as a common T and not call program 9000. This will also be true because it is being used with the M6 function. Now given the fact that 9000 is not being called that tells me that #149 is not being set to modal T which in turn would leave #149 null and mug up the tool change call.

    Because of a lot of this is the main reason most macros are not just easily transferable to any machine. Most programs can look good in theory but 1 parameter setting different from 1 machine to the next can cause unforeseen problems. In this case we are adding a M16 into the mix along with it. Which in reality means nothing other than 16 is set in the parameter for the 9001 macro call instead of 6 but to some people they would think it pertains to the O series control or Kiwa machines.

    I am going purely based on what the conditions say is allowed and what is not. I do not setup any of my tool change macros in this manner and never run this syntax through any of my controls so I can’t speak with 100% certainty. I have used the sub call with a T on unique occasions otherwise pretty much anything you want to do can be easily done in the tool change macro without adding confusion with the T subprogram call function.

    I apologize….I just kind of kept rambling. For some reason this morning I felt the need to over explain which probably was not a good idea on a issue I am not 100% on. Go ahead take turns (nuts)

    Stevo

  9. #9
    Join Date
    Feb 2006
    Posts
    1792
    My document is 100% based on 0i Operator's Manual. So, it holds good irrespective of what MTB might be doing. Of course, other control versions may have certain differences, of which I am not sure.

    Actually, I always suspect Fanuc manuals. It was difficult to believe that a common variable automatically gets defined in this manner (After all, what is so special about number 149!). So, I tested it on the machine. Yes, Fanuc was correct this time!

  10. #10
    Join Date
    Feb 2006
    Posts
    1792
    Quote Originally Posted by stevo1 View Post
    As to what your document is specifying is that you can call a sub via T() code and it will set #149 to the modal T.
    Stevo
    The second part of this sentence in not exactly what I meant. Only #149 gets defined. It has to be used in conjunction with a T-word, inside the subprogram. A simple M06 would not do anything.

  11. #11
    Join Date
    Dec 2009
    Posts
    10

    Not been able to test it

    Hi guys!

    Sadly I haven't been able to test all the things you have opted. I went away
    for buisiness yesterday and because I follow classes once a week, I'm not
    at work today also. The fist oppertunity will be friday. I'll keep you informed on the progress!

    Thanks for all the help!

  12. #12
    Join Date
    Feb 2006
    Posts
    1792
    Quote Originally Posted by stevo1 View Post
    However according to the rules of sub called with the T-code when Ben’s programming is running it is a macro/sub and will treat the T#149 as a common T and not call program 9000.
    Stevo
    A parameter setting decides whether or not subprogram call (of O9000) with a T-word is permitted. On 0i control, it is 6001#5 (to be set to 1 for such a function). On other control versions, the parameter number might be different.

  13. #13
    Join Date
    Jun 2008
    Posts
    1511
    Quote Originally Posted by sinha_nsit View Post
    The second part of this sentence in not exactly what I meant. Only #149 gets defined. It has to be used in conjunction with a T-word, inside the subprogram. A simple M06 would not do anything.
    Not sure I understand exactly what you mean. It specifies that if a T is called in a subprogram that the T will be treated as a standard T call and program 9000 will NOT be called.

    M6 inside a subcall/macro as long as it has a modal T will do a tool change. It does not need a T value in the same block. I do believe that this will also depend on how the MTB wrote the M6 in the ladder but I have not run a Fanuc that did not do this.

    Quote Originally Posted by sinha_nsit View Post
    A parameter setting decides whether or not subprogram call (of O9000) with a T-word is permitted. On 0i control, it is 6001#5 (to be set to 1 for such a function). On other control versions, the parameter number might be different.
    Yup I know. On Ben’s machine it is parameter 40.5

    Stevo

  14. #14
    Join Date
    Feb 2006
    Posts
    1792
    Quote Originally Posted by stevo1 View Post
    M6 inside a subcall/macro as long as it has a modal T will do a tool change. It does not need a T value in the same block. Stevo
    Correct.
    But, in this case (subprogram call with a T code), T#149 has to be explicitly programmed inside the subprogram, to make it a modal T value, before or in the M06 block.

  15. #15
    Join Date
    Jun 2008
    Posts
    1511
    My apologize Sinha I misunderstood you. I thought you were saying that the T() has to be used inside of a subprogram in order to call the 9000 and have #149 set.

    A simple M6 may work depending on how the MTB setup the tool change via ladder. In 98% of my tool change programs I have just an M6 to call the tool. It will call the modal T. The other 2% will not do so. I had to set a variable to the modal T then call it with the M6 similar to what we are discussing. Or I will use the specific macro that will transfer arguments to the called program. So when I program M6T5 then #20 will be set to 5 and in the tool change macro I simply program M6T#20.

    I apologize Ben…do you have any updates. Sinha and I are starting to hijack your thread here .

    Stevo

  16. #16
    Join Date
    Dec 2009
    Posts
    10

    Update

    No problem at all!

    I think it is good to keep the brainwaves flowing, in all this information might be my answer!

    Yesterday I have been able to experiment a littlebit further with the machine. As suggested I deleted the T#149 thing in the sub and tried to make a toolchange via a program. Sadly simply deleting this didn't do the trick. Nothing changed and the program still stops at the M6 line (so caroussel is down and has rotated to the specified toolposition).

    I find it very strange that it stops during this M6 command. Maybe a hardware problem, some kind of conflict or parameter fault? Fact is however that the toolchange cycle works fine in Jog mode (operated with the button on the control panel).

    I have uploaded a picture of the control panel with the ATC button pointed.

    Regards,

    Ben
    Attached Thumbnails Attached Thumbnails HdwBTRS232_Fanuc_Controller.jpg  

  17. #17
    Join Date
    Dec 2009
    Posts
    10

    Red face Reading it all again

    Hi guys,

    It takes some time for me to really understand the information stated
    in this topic. Now having read all the information again I have some questions:

    What sub is usually used to make a toolchange O9000 or O9001 (or doesn't is really matter)? Reading the info sinha uploaded a sub called via a T code can only call the O9000 with it's limitations?

    Maybe I can reprogram the machine to make a toolchange the usual way. So what should the structure be?

    Call the sub with: M06 T.... (using M06 as a subcaller and not M16)

    Then make the sub this way:

    O9000 /O9001?
    G80 G40 M9
    G91 G30 Z0
    M19
    M6 (is T#149 still necessary?)
    M99

    And what parameters should I change or check to make this "fresh start" work? Or are there things I have forgotten and should check first before freewheeling on?

    Maybe I ask things twice, sorry for that! I'm really new to this stuff and unfortunately need intensive guidance!!(nuts)

    Thanks anyway for all the effort!

  18. #18
    Join Date
    Feb 2006
    Posts
    1792
    First of all, my comments are based on 0i control. On other control versions, parameters/system variables are likely to be different. So, you have to find out yourself the relevant numbers.

    O9000 (not O9001) is called by a T-code. If sub call by a T-code is enabled, no M-code is needed to call the sub; use just the T-code. The first thing you should check is whether a T-code, such as T01, calls O9000. This would be the starting point.

  19. #19
    Join Date
    Jun 2008
    Posts
    1511
    Ok first thing is you should check parameter 40.5 to see if your control is set to call program 9000 with the T code. If you want to start over and make things more standard then set it so 9000 is not called. My guess is that it is not set to call 9000. If 9001 is being called with the M16 parameter 240 is set to 16. To make it conventional set parameter 240 equal to 6 instead of 16. Now your tool change program 9001 will be called with M6 instead of M16.

    It really makes no difference what program you want to call for a tool change. The only difference between all of the program is that programs 9001-9003 called with an M-code do not pass arguments over to variables. Programs 9020-9029 called with a M-code will pass arguments to variables. Example using 9001 if you program M6T15 #20=null. Using program 9020 #20=15.

    Let’s say you want to keep program 9001 as your tool change program. Here is how I would code it with a few extras. First off I would start using a variable to track the current tool in the spindle so that you can skip the M6 in the tool change program if you are calling up the tool that is already in the spindle. Let’s use #535, so manually set #535 to the current tool in the spindle.

    O9020(TOOL CHANGE PROGRAM)
    #20=#4120--(sets #20 equal to modal T)
    G40G80—(tool dia cancel & canned cycle cancel)
    IF[#20EQ#535]GOTO1--(skips tool change if calling tool in spindle)
    G91G28Z0M9—(tool change position in Z & coolant off)
    M19--(tool orientation)
    G28Y0M5—(tool change position in Y & spindle stop)
    M6—(tool call of modal T value)
    N1—(address to jump to if calling current tool in the spindle)
    G90G49Z#5043—(cancel tool offsets no tool movement)
    #535=#20—(sets #535 equal to the tool that was called to the spindle)
    M99

    The M6 alone may or may not work alone so we can try it this way. If it does not work then put #20 in the same line (M6T#20).

    You also never did say if you checked #149’s value when doing a tool change.

    Thinking more about this one of the reason’s you might have M16 as the tool call instead of M6 is because the MTB may have written the ladder to alarm out if calling a tool that is currently in the spindle. I have a machine like this and it was the biggest PITA to get around this. God only knows why some idiot would write this into the ladder. It is rare but could be the case. We will find out.

    Stevo

  20. #20
    Generally most faults to do with the tool change on 2nd hand machines are hardware related. Mostly proximity switch faults.

    I was not sure by your description which type of tool change you have. So I cannot pinpoint the switch you should check.

    Please describe the type of tool changer you have, also whereabouts in the tool change cycle it gets stuck.
    ************************************************** *********
    *~~Darwinian Man, though well-behaved, At best is only a monkey shaved!~~*
    ************************************************** *********
    *__________If you feel inclined to pay for the support you receive__________*
    *_______Please give to charity https://www.oxfam.org.au/get-involved/_______*
    ************************************************** *********

Page 1 of 2 12

Similar Threads

  1. Excel/Kiwa 510 manual
    By suppulint in forum Fanuc
    Replies: 12
    Last Post: 02-22-2024, 06:20 AM
  2. Kiwa Excel 610
    By mattg2711 in forum DNC Problems and Solutions
    Replies: 4
    Last Post: 04-11-2012, 03:29 AM
  3. KIWA excel 510 toolchange macro help
    By bensoli in forum Uncategorised MetalWorking Machines
    Replies: 0
    Last Post: 12-29-2009, 06:49 PM
  4. Kiwa Excel Center 4
    By coma152 in forum DIY CNC Router Table Machines
    Replies: 0
    Last Post: 12-02-2004, 02:42 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •