Issue 65
Fall 2005
Copyright 2005

In this issue:
  1. Instructors notes: Lesson plans available for our CNC curriculums
  2. Instructor note: Teaching CNC with the key concepts approach - part seven
  3. Downtime saver: A lightning protection system
  4. G-code primer: The varied uses for M99
  5. Parameter preference: How do you enter the parameter setting mode?
  6. Safety Tip: The safe approach procedure

The Optional Stop is published quarterly by CNC Concepts, Inc. and is distributed free of charge to people subscribing to our (email) distribution list and to those downloading it from our website ( Information is aimed at CNC users and instructors teaching live CNC classes. All techniques given in this newsletter are intended to help CNC people. However, CNC Concepts, Inc. can accept no responsibility for the use or misuse of the techniques given.

To subscribe: Simply email us ( and let us know you'd like to be added to our distribution list.

To unsubscribe: Respond to this email, typing REMOVE in the subject. Please accept our apologies if we have disturbed you.

Quick links to our website:

Of special interest on our website:
{short description of image}
Ad for machine shop calculator
{short description of image}
eBooks ad Click to get more information about this ebook Click to get more information about this ebook
Ad for CNC manuals Link to CNC turing center programming and operation manual Link to CNC machining center programming and operation manual
Machining center programming and operation CD-rom course

Instructor Notes: Lesson plans now available for our CNC curriculums

Here are a few points of interest to instructors that are using our CNC curriculums.

Lesson plans

We've replaced the (very thick) Instructor Notes manuals with much more concise and easier-to-use Lesson Plans manuals. (The Instructor Notes manuals are still included as an Adobe Acrobat file on the CDs, so you can print them is you want to - but be ready for a lot of printing!)

As the name implies, the Lesson Plans manuals provide concise information to help you teach each lesson. We've provided one two-sided sheet of paper for each lesson - and there's one to help you introduce each Key Concept. The Lesson Plans manual for the machining center curriculum, for example, contains 34 sheets (68 pages) - one sheet of paper for each of the ten Key Concepts and each of the twenty-four lessons.

You can download and print the Lesson Plans manuals right from our website. And of course, we've added them to the CDs that come with our curriculums. Here are the links directly to the manuals:

Again, we've consolidated what you'll need to get ready to teach each lesson (or introduce each key concept) into one concise sheet of paper per lesson:

  • Lesson name
  • Lesson number
  • Approximate time needed to present the lesson
  • Presentation links slide from the slide show (list of topics)
  • Lesson objective
  • Key points to make for each topic
  • Suggestions for if you are teaching only setup and/or operation (not programming)
  • Suggestions for what to do at the machine to stress the points made in the lesson
  • Suggestions for a lab exercise (if appropriate)
  • Suggested homework assignment
  • Suggestions for exercises to be done

At the end of each manual, we've provided a summary of the approximate presentation time needed for each lesson - though these times will likely vary with each class you teach based upon student aptitude, the number of questions they have, whether you choose to skip or add material, etc.

Are you looking for on-line assessment?

Dean Duplessis, Precision Metals Manufacturing Instructor for Northern Maine Community College (which is also a HAAS Technical Education Center) suggests that you include ExamView Assessment Suite in your search. He's provided me with some examples of what can be done and it's quite impressive. He's using this software to develop exams and study guides for his students that they can review on-line - anytime of the night or day.

Our on-line classes help with your CNC program

I teach six on-line classes related to CNC. These classes are hosted by They include:

While my basic courses (programming and setup & operation) probably parallel your existing CNC classes, you may not have materials related to the two more advanced classes (advanced techniques and parametric programming).

If you have an interest in using one of my classes within your program, please contact me by phone (847-639-8847) or email to discuss the details.

End of article (M01)

Top of page

Instructor note: Teaching CNC with the Key Concepts approach - part seven

Part seven - Key concept number Six: Special Programming Features

Here are some links that allow you to review other parts of this article:

  • Part one: Introduction to the key concepts approach
  • Part two: Key concept number one - know your machine
  • Part three: Key concept number two - preparation for programming
  • Part four: Key concept number three - Understanding the motion types
  • Part five: Key concept number four - You must understand the compensation types
  • Part Six: Key concept number five - You must provide structure to your programs

At this point in your class, students should be able to write programs on their own. But they have been exposed to only the most rudimentary tools to do so. Point out that writing programs with only the tools you have seen so far will be quite tedious (I like to point out, for example, that drilling 50 holes using only G00 and G01 will take at least 150 commands).

In Key Concept number six, you’ll be showing several features that shorten programs, make programming easier, and in general, facilitate the programming process. A good review of all material presented so far may be in order. Confirm that students are truly ready to learn about more advanced CNC programming features.

Point out that while it is important for students to understand the various special programming features that are available, not all will be of immediate importance. What may be quite helpful and often-used for one programmer may never be needed by another. You should place an emphasis on the most popular features.

Especially in the area of hole machining, students may have been questioning the difficulty related to drilling several holes – they may have asked if there’s an easier way. In this Key Concept, you’re going to be showing the easier ways to accomplish programming tasks.

The number of lessons included in this Key Concept will vary based upon the kind of CNC machine you are presenting. For our machining center curriculum, we recommend four lessons:

  • Hole-machining canned cycles
  • Working with subprograms
  • Other special programming features
  • Programming rotary devices

For our turning center curriculum, we recommend seven lessons:

  • One-pass canned cycles
  • G71/G70 – rough turning and boring multiple repetitive cycles followed by finishing
  • G72-G75 – other multiple repetitive cycles
  • G76 – Threading multiple repetitive cycle
  • Working with subprograms
  • Other special features of programming
  • Special machine types and accessories

You can see our specific recommendations for each topic in our recently completed Lesson Plans manuals. We won't duplicate the suggestions here.

Here are two links that bring you to our CNC curriculum page and our CNC educators page. Use these two links to learn more about how you can use our key concepts approach in your own classes.

End of article (M01)

Top of page

Downtime saver: A lightning protection system

by John Copeland of Rabun Labs, Inc.

Editor's note: Mr. Copeland, of course, has a vested interest in this lightning protection system. But since we didn't even know that such systems existed, we thought this might be of interest to our readers. Please contact Rabun Labs, Inc. directly for information and pricing.

A CNC machine shop had a very large government contract and had been downloading data for weeks to fulfill it. A lightning strike came through the data line and destroyed the server and several pc boards. Loss to the equipment was $50K. Loss in contract down time was $1M. A good lightning detection and equipment-protection systems could have prevented both.

End of article (M01)

Top of page

G-code primer: The varied uses for M99

Idea for this article came from posts in our CNC Tech Talk forum

With Fanuc controls, M99 can be used for several purposes. Here are the ones we know of:

As an end of sub-program command

The is the most common application for M99. As you probably know, a sub-program is called with M98. In the M98 command, a P word specifies the sub-program being called. The command:

  • N050 M98 P1000

Will call program O1000. At the end of this sub-program, an M99 tells the control to go back to the main program to the command after the calling M98 and continue executing.

To end a main program (rewind and continue)

M99 can also be used to end a main program when you want the machine to return to the beginning of the program and continue executing (without stopping). This is commonly needed in bar feeding turning centers to keep the bar advancing. (An end-of-bar signal from the bar feeder is what stops the machine at the completion of the bar.)

Another such application is with pallet changing machining centers that have two pallets. Since there is often no relationship between the two jobs running on the machine, it makes sense to use sub-programs to control the pallet changing system:

  • O0001
  • N005 M98 P1000 (run pallet A)
  • N010 M60 (pallet change)
  • N015 M98 P4003 (run pallet B)
  • N020 M60 (pallet change)
  • N025 M99 (return to beginning and continue

In this application, M99 is being used as part of a control program that runs both pallets. The program for one of the pallets is O1000. The program for the other is O4003. Both of these sub-programs must also end with M99.

If you're wondering about safety, most pallet-changing machining centers have a stand-by on the pallet changer that must be pressed before a pallet change can occur - so if a person is in the middle of loading parts when an M60 is executed, the machine will wait for the stand-by button to be pressed before it will change pallets.

As an unconditional branch command (like a GOTO statement)

In a main program (not a sub-program), an M99 can be used to change the order of program execution. A P word within the M99 command tells the machine the sequence number (acting as a statement label) to which to branch. The command

  • N060 M99 P150

tells the machine to go to line N150 and continue. Again, this command must be in a main program. (If it is in a sub-program, the machine will go back to the main program and continue executing from line N150 of the main program - we know of no feasible application for this function).

M99 used as an unconditional branch can be helpful when you want to change the machining order in a program. Maybe you have a poor process - or you just want to see if there is an improvement if one tool in the program is run before another. With just a few changes to the program, you can make the machine bounce from tool to tool to get the machining order you want.

End of article (M01)

Top of page

Parameter preference: How do you enter the parameter setting mode?

In past issues of The Optional Stop Newsletter, we've discussed several times when you might want to check the current setting of a given parameter to determine whether the machine is functioning as it should. We've also discussed times when parameters must be changed. While we've discussed the specific parameters (and sometimes even the specific parameter numbers) in detail, we've never actually told you how to change parameters.

Write down the current and new value

Our first suggestion is extremely important. You'll want to have the ability to reset the parameter to its original value. You might need to do so if you make a mistake when typing the new parameter value - or if your change didn't have the desired effect. This is especially important with eight-bit binary parameters, which have a series of ones and zeros. An example:

  • 10011100

This might the value of parameter number 202. You might only have to change bit number two (the third bit from the right), meaning the new value will be 10011000. Again, it will be difficult to remember how to set this parameter back to its original value if you haven't written it down.

The parameter-write-enable (pwe) switch

This switch allows you to enter the parameter setting mode. With older controls like the 3, 5, and 6 series Fanuc controls (6MB for example), it is a physical switch. You must open the Fanuc control door and find the switch. It is a toggle switch, and is commonly placed at the lower left corner of the main (largest) circuit board. There may be several similar switches, so be sure to find the one labeled PWE.

Newer controls, including all current models, don't use a physical switch. Instead, they use a software switch. You'll find this switch on the SETTING page. With smaller display screens (9 inch, for example), you may have to use the page down button to find the item named PWE (again, PWE stands for parameter write enable). A setting of zero (0) stands for off. A setting of one (1) stands for on. When you first see the PWE setting, its value will be zero.

Turning on the switch

If you have a physical PWE switch, of course, you simply flip it to turn it on. If you have a software switch, you must set the PWE item to one (1).

When you set the PWE item to one (you must be in the MDI mode), the machine will go into alarm state and show alarm number 101. It is trying to tell you that you'll only be able to change parameters until you turn off the PWE switch. Simply ignore the alarm and press the key that brings you to the parameter page. While the word ALARM will still be flashing on display, you'll be able to change parameter settings.

Turning off the switch

When you're finished, you must turn off the PWE switch. If you have a physical PWE switch, of course, you simply flip it to turn it off. If you have a software switch, you must set the PWE item to zero (0). You must also press the RESET button to clear the alarm.

End of article (M01)

Top of page

Safety tip: The safe approach procedure

As you know, CNC machines have extremely fast motion rates. When you're verifying a program (new or proven programs), you also know that each tool will rapid to within a very small distance (usually 0.1 inch) of the workpiece during approach.

Remember - even with proven programs - there are several setup-related considerations related to whether the tool will stop where it is supposed to. Was the tool measured correctly? Has its offsets been entered correctly? Has program zero been correctly assigned? And with new programs, of course, the program commands for the approach may be incorrect.

You must find a way to take full control of each tool's approach movement. By this we mean that you must be able to slow the motion rate to a crawl in order to judge whether the motion will stop at the appropriate position. Don't give up until you find a way to fully control this motion.

Some machine tool builders make it easier than others. With one we know of (Okuma), it is as simple as turning on the single block switch. When single block is turned on, the feedrate override switch controls the rate for all motion (including rapid). And you can slow rapid motion to a crawl.

With others, its a little more difficult. Some machine tool builders provide a very good rapid override switch. During rapid motion, you can use this multi-position switch like a rheostat, and again, you can slow rapid motion to a crawl.

Unfortunately, some machine tool builders provide a poor rapid override switch - having but three or four positions (like 100%, 50%, 25%, and 10%). With this kind of rapid override switch, you don't have fine control of rapid motion - and you may not be able to slow rapid motion to a crawl.

For machines with limited rapid override switches, dry run can be used to take control of all motion. When dry run is turned on, a multi-position switch (usually feedrate override) is used to control motion rate - and again, you can slow rapid motion to a crawl when dry run is turned on. But you must remember to turn off dry run prior to allowing the machine to begin cutting. While dry run nicely slows rapid motion, it accelerates feedrate motions.

Use single block to go step-by-step

Since the safe approach procedure can be a little nerve-wracking, you'll want to be able to stop and take a breather after each motion. Single block, of course, provides you with the ability.

The distance-to-go display really helps

All Fanuc controls have a distance-to-go display. You find it on the program check page. As the name implies, this function provides you with a real-time display of how much further the tool will move in the current command.

Keep a finger ready to press feed hold

Pressing the feed hold button, of course, will stop motion. When the tool is within about 0.5 inch of the surface being approached, you can press feed hold and then look at the distance-to-go display. It must, of course, be less than 0.5 inch.

End of article (M01)

Top of page