Banner
Issue 59
Spring 2004
Copyright 2004

In this issue:
  1. New format for The Optional Stop
  2. Instructor note: Teaching CNC with the Key Concepts approach - part one
  3. Time saver: Loading multiple programs
  4. G-code primer: How does G28 work?
  5. Manager's corner: Facilitating self-study courses

The Optional Stop is published by CNC Concepts, Inc. and is distributed free of charge to people subscribing to our email list and downloading it from our website (www.cncci.com). Information is aimed at CNC instructors teaching live CNC classes and at CNC users. 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 (newsletter@cncci.com) 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.

Come visit our website!

Of special interest:
 
Curriculum ad
eBooks ad Click to get more information about this ebook Click to get more information about this ebook
CD rom ad

New Format for The Optional Stop

We've been publishing The Optional Stop since 1990. In its original form it was a printed newsletter and sent by bulk U.S. Mail. In the Winter of 2001, we stopped sending this newsletter by mail and simply posted it on our website in a downloadable (Adobe Acrobat) format.

We've received many emails from people saying they forget to come and download The Optional Stop from our website when the new issue is available. Due to the amount of spam people receive, we've been reluctant to email it. But with all the requests we've received, we're giving this new format a try. Please let us know what you think.

Note that we've changed the focus a little. In the past, this newsletter has been dedicated solely to helping CNC users. We're expanding the focus to include CNC educators - including instructors that teach live CNC classes and managers/Human resources people that are educating their personnel.

This new format should provide some unique benefits. Since it's in email format, and since we're using HTML (web page language), we'll be able to include links to internet sites that, when clicked, will automatically invoke your browser and bring up the web page in question. For example, here is a quick way to see all issues of The Optional Stop (back to issue fifty) that are published on our website.

M01

Top of page

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

Part one - Introducing the key concepts approach

It is truly amazing how much a Human Being can learn, even when the learning environment is not at its most optimum. Aptitude, of course, has a lot to do with learning. A student with a high degree of aptitude will pick things up quickly, even from a poor instructor. Conversely, instructor with a high degree of aptitude will be able to get through to just about any student.

One constant goal when preparing/improving a curriculum is to maximize the potential for learning, especially for students that don't have the highest aptitude. In most cases, you want to target your presentations to the lowest level of student that will be attending your class. While bright students may pick things up very quickly, you must at least be prepared to work with students that do not have a high degree of aptitude.

Your general approach to teaching will have a big impact on how universal your course appeal will be in this regard. Without a well planned approach, your presentations will be like a ship drifting at sea. They may have meaning, but will never go anywhere.

All students need a light at the end of the tunnel. They need to know where they stand as they go through your course. In part one of this article, we introduce a proven method for teaching CNC courses that we call the key concepts approach. This can be applied to just about any form of CNC machine tool. Indeed it can be applied to any teaching curriculum. In upcoming issues of The Optional Stop, we'll show how the specific key concepts related to a CNC programming curriculum.

The key concepts approach is relatively simple to understand and implement. It involves determining the most important principles that are related to your curriculum and categorizing all presentations and learning activities for the course accordingly. We call each important principle a key concept.

Each key concept should be broad enough to minimize the number of new general ideas a student must master in order to successfully complete your course. We recommend having no more than ten key concepts for a given class. If you come up with more, you're probably not keeping them broad enough.

An example

Here is an example of how we've applied the key concepts approach to CNC programming. With our key concepts approach (the same method we use in our CNC teaching curriculums), there are six key concepts related to G-code level (manual) programming. They include:

  1. Know your machine from a programmer's viewpoint
  2. Prepare to write programs
  3. Understand the motion types you have available
  4. Understand the compensation types that minimize tooling problems
  5. Format programs using a strict structure
  6. Know the special features that can minimize programming time and effort

Think of any topic related to manual programming. It's going to fit nicely into one of these key concepts. Axis direction? That's part of key concept number one. Tool length compensation? That's part of key concept number four. Canned cycles? That's in key concept number six. Circular motion? That's in key concept number two.

Remember, if you come up with a topic that doesn't fit into one of you're key concepts, you either don't have enough key concepts, or they are not broad enough. As stated, the goal is to minimize the number of new things a student must learn (staying pretty broad) without becoming so general that a given key concept will take too long to present.

These same key concepts can be applied to any form of CNC machine tool. This will be especially helpful to students and instructors that are working with multiple machine types. Consider, for example, the various compensation types. With machining centers they include tool length and cutter radius compensation. With turning centers, they include wear offsets and tool nose radius compensation. While specific presentations will be dramatically different based upon machine type, the general reasoning for them is consistent from machine to machine.

It is best if you can begin each key concept by relating the general mentality behind the key concept. Again, stay general at first, explaining why the key concept is important. As you progress, let your presentation get more and more specific. In key concept number four, for example, you might begin by describing why compensation is required. Explain it's benefits. Again, stay general at this point. Only discuss things that apply to all compensation types. Once students understand why compensation is required, go into each specific compensation type in greater detail.

Reviewing class material

Another great benefit of the key concepts approach is that it facilitates review. You don't have to get every detail across on the first try. Just be sure they truly understand the general presentations. If students are getting confused with the details, back off a little. You'll be reviewing the material at some future time, and you can dig in deeper once students have had some time to absorb the material.

Again, it will probably be impossible to relate every detail of every key concept the very first time through. When describing the feature constant surface speed for turning centers, at first I'm only concerned with making sure students know what it does and how it works, and maybe the related CNC words. During a review (after discussing these ideas again), I'll dig deeper, explaining why constant surface speed can be a cycle time waster if it is not properly programmed. As long as students understand, I'll show a more efficient way of programming it.

You've got to be flexible. In the constant surface speed example, some students truly are bright enough to catch on to every detail the very first time. If most of the students in the class understand, by all means, go until they begin to become confused. Then back off and save the details for a future review.

When does the class end?

Another benefit of the key concepts approach is that it allows you to be flexible with how much material you get through. In many classes I've attended, there comes a point when the instructor realizes that they're not going to get through all of the material. They begin to speed up their presentations in hopes of completing the course.

By comparison, the key concepts approach allows more flexibility with regard to when the class ends. Since you're constantly working from general to specific, and since you decide how detailed to get in each presentation based upon student aptitude, you'll be able to let the class end at any time after you've covered the key concepts.

Admittedly, some classes will have students with more aptitude than others, meaning you'll be able to cover more (detailed) material. But as long as students understand the general presentations related to the key concepts, and as long as they have good support materials (manual), they will have proficiency with the material in the class. And with a good manual that reinforces class presentations, they'll be able to review on their own should the need arise.

Conclusion to part one

As we've demonstrated, the key concepts approach will help you to organize any curriculum. While we've been pretty specific, discussing how the key concepts can be applied to teaching CNC, you should be able to see how this approach can be applied to teaching just about anything. In future issues of The Optional Stop we'll be describing in detail the key concepts related to CNC. If you'd like to learn more about our CNC curriculums for teaching live CNC classes, please visit the CNC curriculums page on our website.

M01

Top of page

Time saver: Loading multiple programs from one file

Many jobs require more than one program. It is not uncommon that a main program (that is the one being executed by pressing the Cycle Start button) will require several subprograms. If more than but a few programs are required for a job, it can be somewhat cumbersome to load each one individually, and of course, it becomes possible to forget to load a needed program.

Fanuc allows you to load more than one program as long as they are contained in the same file. The format for this file requires end-of-file delimiters (a percent sign) at the top and bottom of the file. Here is the required format:

  • % (End-of-file delimiter)
  • O0001 (Main program)
  • .
  • .
  • .
  • M30 (End of main program)
  • O1000 (First subprogram)
  • .
  • .
  • .
  • M99 (End of subprogram)
  • O1001 (Second subprogram)
  • .
  • .
  • .
  • M99 (End of subprogram)
  • O1002 (Third subprogram)
  • .
  • .
  • .
  • M99 (End of subprogram)
  • O1003 (Fourth subprogram)
  • .
  • .
  • .
  • M99 (End of subprogram)
  • % (End-of-file delimiter)

Again, notice all commands are surrounded in this program by percent signs.

There is one more thing you need to know to make this work. A parameter controls when the control will stop loading a program. This parameter can be set to stop loading when an M30, M02, or M99 is seen. Or it can be set to have the control continue loading programs until the end-of-program delimiter is seen. The latter, of course, is required for this to work.

For a 15 series Fanuc control (15T or 15M), for example, parameter #2200, bit three handles this choice. It must be set to a one (1) to have the control load multiple programs from one file. As you know, parameters vary from one control model to another, so you must reference your Fanuc Operators manual to find this parameter for your control. Look for the category MDI/CRT/EDIT.

Once the parameter is set properly, use your normal method for loading programs.

M01

Top of page

G code primer: How does G28 work?

G28, Fanuc's zero return command, tends to be one of the more misunderstood Fanuc programming words. The zero return position is, of course, the machine's reference position. A light (axis origin light) will come on for each axis that is sent to the zero return position. The zero return position is quite important: most programs begin from this location, most machines require that you (manually) send the machine to this position as part of powering up, and it's a point of reference for fixture offset (machining centers) and geometry offset (turning centers) entries. Admittedly, G28 is among the most complicated programming words. Here we attempt to clear up the confusion.

G28 is a two-step command. In a way, it's like a canned cycle. Two things will happen whenever a G28 is commanded. First the machine will move (at rapid) the axis or axes included in the G28 command to an intermediate position. Then the machine will rapid the axis or axes to the zero return position. At this point the related axis origin light/s will come on. By the way, if you have the single block switch on, you actually have to press the cycle start button twice to complete the G28 command - once for the intermediate position move, and a second time for the move to the zero return position.

The intermediate position is what confuses most people. In absolute mode, which most programmers prefer for general purpose programming, the intermediate position is specified relative to program zero. In incremental mode, it is specified relative to the tool's current position. Maybe the best way to gain an understanding is to give a few examples.

For machining centers:

Consider this command.

G91 G28 Z0

In step one of G28, the tool will move to an intermediate position that is incrementally nothing (zero) from its current position in Z. In step two, it will go to the zero return position in Z (only). Note that X and Y will not move. For all intents and purposes, we're telling the machine to move the tool straight to its zero return position in Z.

G91 G28 X0 Y0 Z0

In step one of G28, the tool will move to an intermediate position that is incrementally nothing (zero) from its current position in X, Y, and Z. In step two, it will go to the zero return position in X, Y, and Z (together). For all intents and purposes, we're telling the machine to move the tool straight to its zero return position in X, Y, and Z.

G91 G28 X0 Y0 Z3.0

In step one of G28, the tool will move to an intermediate position that is incrementally nothing (zero) from its current position in X, Y. But in Z, it will move up three inches. Maybe the tool is in a pocket you need to clear before moving in X and Y. In step two, it will go to the zero return position in X, Y, and Z (together).

Watch out! Here's what can happen in absolute mode. Consider this command.

G28 X0 Y0 Z0

Assuming the machine is currently in absolute mode (G90), step one of G28 tells the machine to move to the program zero point (probably a crash). Then, in step two, the machine will move to the zero return position (if it still can). Some programmers don't like to program (ever) in incremental mode. While I don't consider using the incremental mode with G28 to be straying too far from absolute programming, there is a way to stay in the absolute mode when using G28. Consider these commands.

  • G90 G00 X1.0 Y1.0 (Rapid to hole position)
  • G01 Z-0.5 F5.0 (Drill hole)
  • G00 Z0.1 (Rapid out of hole)
  • G28 Z0.1 (First, stay right where you are in Z, then go to the zero return position in Z)

While this works, I don't like it. I show it just for the sake of explanation. Essentially, we're looking back in the program to the tool's last absolute position so we can include it in the G28 command. Again, this does work, but someday you'll probably change a tool's last position. In this case you better also remember to change the related G28 command or you'll be in for a big surprise!

For turning centers:

Consider this command.

G28 W0

In step one of G28, the tool will move to an intermediate position that is incrementally nothing (zero) from its current position in Z. In step two, it will go to the zero return position in Z (only). Note that X will not move. For all intents and purposes, we're telling the machine to move the tool straight to its zero return position in Z.

G28 U0 W0

In step one of G28, the tool will move to an intermediate position that is incrementally nothing (zero) from its current position in X and Z. In step two, it will go to the zero return position in X Z (together). For all intents and purposes, we're telling the machine to move the tool straight to its zero return position in X and Z.

G28 U3.0 Z0

In step one of G28, the tool will move to an intermediate position that is incrementally nothing (zero) from its current position in Z. But in X, it will increase in diameter by three inches (1.5 inch move). Maybe the tool is below an obstruction (like a tailstock) you need to clear before moving in Z. In step two, it will go to the zero return position in X Z (together).

Watch out! Here's what can happen in absolute mode. Consider this command.

G28 X0 Z0

Note that now we're commanding G28 in absolute mode. Step one of G28 tells the machine to move to the program zero point (probably a crash). Then, in step two, the machine will move to the zero return position (if it still can).

Some programmers don't like to program (ever) in incremental mode. While I don't consider using the incremental mode for G28 to be straying too far from absolute programming, there is a way to stay in the absolute mode when using G28. Consider these commands.

  • G00 X3.2 Z0.005 (Rapid to facing position)
  • G01 X-0.06 F0.012 (Face part)
  • G00 Z0.1 (Retract in Z)
  • X3.2 (Retract in X)
  • G28 X3.2 Z0.1 (First, stay right where you are in X and Z, then go to the zero return position in X and Z)

While this works, I don't like it. I show it just for the sake of explanation. Essentially, we're looking back in the program to the tool's last absolute position so we can include it in the G28 command. Again, this does work, but someday you'll probably change a tool's last position. In this case you better also remember to change the related G28 command or you'll be in for a big surprise!

What about G53?

Most current model Fanuc and Fanuc-compatible controls allow G53 - movement relative to the zero return position. For machining centers that allow G53, the command

G53 X0 Y0 Z0

will send the machine (at rapid) straight to the zero return position in X, Y, and Z. Unfortunately, older controls do not allow G53. Since G28 works on all Fanuc and Fanuc-compatible controls, most programmers prefer to use the (complicated) G28 command so they can run their programs on all machines their company owns.

M01

Top of page

Manager's corner: Facilitating self-study courses

If you're a manager or Human Resources person that needs to train personnel, you have three alternatives.

  • You can provide a training class (either on-site or at a local technical school).
  • You can expect people to learn on-the-job
  • You can provide a self-study course

Many companies opt for self-study courses. Many excellent ones are available. With textbook based self-study courses, a student simply reads material and is tested based upon what they read. These tend to be the least expensive, but require a great deal of motivation from the student.

There are also CD-rom and video training courses. With these courses, the student is still working completely on their own, but the material is presented in a more palatable manner, minimizing the need for reading.

And finally, there are on-line CNC courses. Depending upon the supplier, students may still be completely on their own. (With our on-line CNC courses, students get help from an instructor if/when they need it.)

Regardless of which style of self-study course you choose, you cannot expect everything to go perfectly during training. Again, students vary when it comes to their motivation level. As a concerned manager, you must ensure that students are truly learning what they are supposed to.

In general, this is what we mean by facilitate. Provide the guidance that students need to ensure that they are learning. Be sure that a knowledgeable person is available to the student as they progress through the course. This person can be responsible for distributing course materials, making sure the student doesn't jump ahead in the course. They can also provide the exercises and assignments as students need them. And they can check the student's work to confirm that they truly understand. Most importantly, they can answer questions that students have as they go through a course.

M01

Top of page