OmniTurn   CNC Lathes Made in Oregon
 Fast... Precise... Affordable... Home Contact

The World’s Most Cost-Effective Turning Machines

OmniTurn ZipLoader M-functions

The OmniTurn ZipLoader is controlled by the CNC via M-functions in the part program.

There are just a few M-functions for the loader's automatic operation (to load and eject parts, for example), but there are several m-functions useful for setup and troubleshooting.

The following list describes the various m-functions.

M-functions used in programs:

M-functions used for setup:

The m43 command can be edited to change the retract behavior.

To edit the m43 command follow these steps:

  1. At the CNC "splash" screen, press and hold the Ctrl key, then press "C" key (Ctrl-C).
  2. At the K:\CNC> prompt, type C: then press Enter
  3. At the C:\RUNFILES> prompt, type EDIT M43.USR then press Enter

The standard program editor will open, with the m43.usr program displayed as shown below. Edit as required, then save & exit as usual.

The code above is the standard m43; to increase the distance the shuttle retracts, increase the delay.2 to .4 or .5 (1/2 second).

The code below will retract the shuttle all the way to home. Note that delay.2 has been edited to waiton3.

M57 & M59 - To Select Feed & Eject Speed

M57: Shuttle speed remains constant at speed set by Push1 flow control; Push2 sensor does not change shuttle speed. This feature allows Push2 speed to be set much faster than Push1 speed, to eject parts that have smaller diameter than pushrod without needing to turn down the pushrod tip to clear the collet.
Put M57 near top of program on a block by itself.

M59: Default eject speed is the speed set by Push1 flow control. M59 selects speed set by Push2 flow control. Delicate parts sometimes benefit from slow eject speed, and parts smaller in diameter than the pushrod need fast eject speed to clear the collet while the pushrod stops behind the collet.
Put M59 on a block by itself just before M48 selects the Push2 speed for eject.

Inertial Eject: Parts that are smaller in diameter than the pushrod can be ejected by inertia, without the need turn down the pushrod tip to clear the collet.

For this appllication, Push2 speed is set much faster than the Push1 speed. The pushrod can be shortened to prevent hitting the collet, or the eject sensor can be set to the left so stock pushrod stops before hitting back of collet.

Use M57 so the part can be loaded at the (slow) Push1 speed; use M59 to eject at (fast) Push2 speed.

Edit M43.usr (scroll up) so shuttle will retract about two inches to left of Eject sensor. (Instead of editing M43, you can use two or more to retract sufficiently).

M48 opens collet and pushes shuttle toward collet. When Eject sensor lights, shuttle will stop, then retract. Inertia will carry the part through the collet.

M97 - Jump to Sub-routine, Conditional

M97 is used to cause the part program to execute a sub-routine in response to an input from an external source, like a bar-feeder or auto-loader.


After the sub-routine completes (M99), the program resumes execution at the block immediately following the block that has the M97 that called the sub-routine.

If the sub-routine includes M30, the program ends; if sub-routine includes M31, the program ends and Cycle Repeat is cancelled.

Download PDF
Back to Support
Back to Top