523,733 active members*
1,822 visitors online*
Register for free
IndustryArena Forum > MetalWorking Machines > Haas Machines > Haas Mills > Stopping and Restarting in a Program
Results 1 to 6 of 6
  1. #1
    Join Date
    Oct 2004

    Stopping and Restarting in a Program

    Sitting here sipping chicken soup as a hopeful remedy for a wee bit too much Yellow Tail Shiraz last night, I've decided to admit to all Zone Members that I really don't know some very basic things about CNC'ing or machining in general.

    And therefore to begin;

    On the Haas MiniMill as my reference, what G-codes can I add to a program to be able to stop and restart the operation in the middle of the program?

  2. #2
    Join Date
    Jan 2004

    Cool Stop Hey Whats that Sound.............

    What sort of stop do you require? Are you wanting the machine to stop for specific period of time and then restart, like a dwell (G04 on my non HAAS machine) or do you want it to stop while you the operator does some action like move a clamp (G05 on mine). On my controller I also have M00 which is a pause as well as M01 which is an optional stop. Your controller may have an optional stop switch which works in conjuction with the M01 (HAAS may be different). These are the 4 most common ways ro stop or pause the machine that I have. The manual for your mill should outline the options you have and how to apply them. Look up PAUSE and DWELL in your operators manual as your G & M codes may vary. You also may have a feedhold button on the panel to allow you to stop the machine, generally I think it would finish executing the current block before stopping which is what my controller does.

    Cheers and Happy New Year:cheers:


  3. #3
    Moderator HuFlungDung's Avatar
    Join Date
    Mar 2003
    Are your referring to a planned or unplanned stop?

    M00 is a planned stop.
    M01 is an optional planned stop, which can be bypassed by pushing the optional stop button, which toggles the control to bypass the stop if you decide you do not need it.

    Unplanned stop: press 'single' and wait for the current move to complete. You can then stop the spindle and coolant if you wish, via the buttons.

    What other situations were you thinking of?
    First you get good, then you get fast. Then grouchiness sets in.

    (Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)

  4. #4
    Gold Member
    Join Date
    Jul 2005
    Quote Originally Posted by Dugg View Post
    .....restart the operation in the middle of the program?
    As mentioned M01, M00, Single Block and Feed Hold all stop program execution which requires a press of the Cycle Start button to continue. But perhaps you mean you want to restart somewhere part way through a program that has been stopped by using the Reset or E-stop button

    This can be done with Haas machines which have Program Restart as a standard feature. Setting 36 has to be turned on, you CURSOR down in MEM mode until you reach the program line where you want to restart then press Cycle Start. The control starts running through and interpreting the program and you will see lines scrolling past but the machine does not move; it is getting all the conditions set regarding tool number, offsets, etc. When the control reaches the line you want to restart at the machines moves back to the last coordinate position before this line then starts program execution in a normal manner from this point.

    If this is what you want play with it carefully; i.e. use 5% Rapids and Single Block until you are familiar with Restart. It is possible to crash the machine under some conditions even when everything is set up according to the manual. Also it should go without saying that any material that should have been machined away before the restart line MUST be machined away.

    Be VERY VERY CAREFUL if your machine dates from around 2004 plus or minus a year or so; there where some program glitches related to Restart around this time. In some cases the machine would simply hang-up and not do anything. In other cases it would fire up without first interpreting the program correctly and just start running the program from the restart point without making sue the correct tool is in the spindle and the correct offsets are being used.

  5. #5
    Join Date
    Nov 2005
    If can also be of any help: mine is a Jan 04 model (SL30) Lathe and when restarting make absolute certain to have the turret jogged to a safe enough position to do a full rotation of the turret. If you restart the program from a tool and it's offset anywhere in the program mine, firstly indexes to the previous tool used on the program then it rapids to the last rapid point of that (previous) tool, then it indexes to the tool you are calling up of course reading all you work offsets and tool geometries for that tool. On top of this if your still with us, make it a rule to start from a safe offset or tool offset callup point of your program. I am sure others would agree. Takes abit of experience but, mate, it's worth it.

    Cheers buddy, happy new year, to you too Geoff


  6. #6
    Join Date
    Jan 2007
    Dugg, I'm new here so please forgive my inexperience with the use of forums.

    I agree with scappini, I have been programming for twenty years, mostly manual G-code but a fair amount of CAM system as well. If you were to compare 50 of my programs side by side you would swear they were post-processed from a CAM system because I program very very consistently.

    Whether lathe or mill programming, I always break each program into manageable, logical "processes". For instance, Face, Rough Turn, Drill, Finish Turn, Thread, Cutoff and I use a "man-readable" comment (that will show my age!) as such at the beginning of the process with a sequence number.

    In lathe programs I always program a rapid to a safe tool change position after the comment, call up the tool, start the spindle, then move to the clearance point while picking up the offset. After machining that process, rapid back to the tool change position, canceling the offset and end the process with an M01. One note: I always program the beginning and end of the process in absolute mode so the program can be started from any safe place away from the part.

    It looks like this:

    G90 G95 G00 X8. Z10.
    M3 S600 T0606
    X2.05 Z.1
    G1 ...etc...
    G0 X8. Z10 T0

    Most of the time this is a must because each tool has a fairly specific job in a lathe of course but sometimes you will face and rough turn, etc. with the same tool. By breaking the program into smaller processes you can easily turn on the Optional Stop and measure, etc. after each process.

    Once you are ready to begin again, say after examining/measuring a close tolerance bearing journal diameter and adjusting the tool offset, you simply search for the appropriate sequence number and press cycle start even if you had to jog the turret away from the part to measure it.

    This becomes even more useful in maching center programming where one tool may work in many areas of the part and perform several functions. What is really nice is that most controls nowadays don't freak out if you call for a tool change to the same tool that is in the spindle. This allows me to use a block-skip ahead of a "go home" or tool change position move with a program stop on the end of the line. The net effect is that when the block-skip option is on, the program goes from one process to the next seamlessly. It looks like this for a Haas VF3 in metric mode:

    ...some previous process for 1/2 carbide end mill
    G0 Z25. M9
    /G53 X-500. Y0 Z0 M0
    T1 D1 H1 M6 (1/2 Carbide End Mill)
    (Rough Small Pocket)
    M3 S2500
    G90 G95 G0 X... next process for 1/2 inch carbide end mill
    G43 Z25. M8

    Make liberal use of comments, it helps when the program is run, obviously, but is invaluable the next time the job is set up, especially if it is months or years later.

    I hope I have not insulted you intelligence, I'm sure you already know much of what I have explained here but I don't want to assume anything. The main thing I am trying to say is to develop a programming style and be consistent with it; it helps so much to know what to expect as far as what is coming up next in the program.


Posting Permissions

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