ISO programming and G-codes

ISO programming, G-codes, file names, program structure and subprograms


In the first part of today’s lesson we completed the topic “Programming Method”. We saw the three programming possibilities: G-codes, SHOPMILL/TURN and ISO.

We have already seen the comparison with SHOPMILL programming in the previous lesson, and now I would like to make a clarification regarding pure ISO programming. Few people in fact know that on SIEMENS 840D control, by appropriately setting parameter 18800 there is the possibility of programming in pure ISO codes. First, however, a premise must be made for those who have recently approached the world of CNC programming.

What is ISO programming?

ISO programming of machine tools is basically programming that follows the ISO6983 standard in which the main programming functions are defined. Some numerical controls have tried to be more faithful to the ISO format, while others have only taken guidelines from it and still others have created their own proprietary languages. The reason numerical control builders have needed to create their own language, more or less similar to the ISO standard, is related to the fact that the standard has not been able to keep up to date with the needs of the builders and technology, thus leaving a gap especially regarding advanced functions and fixed cycles.

So programming a SIEMENS machine in pure ISO format can only be justified in the face of real needs for compatibility with other machines, but aware that you are greatly reducing the possibilities and functionality. As mentioned in the video, if you set ISO programming using parameter 18800, the control will only accept programming in ISO format, and in case we want to execute a SIEMENS command, within the ISO program you can program the function G290 to open a SIEMENS parenthesis and G291 to close it.

G290 Enables writing in SIEMENS language within an ISO program
G291 Reactivates ISO language programming

I provide below an example of a program written in ISO format:

Iso cnc programming - Example of program written in ISO format

In blue I have put there the SIEMENS functions that can still be programmed upon activation using the G290 function. Now that we understand at least broadly I’ll try to answer a question that I imagine is fairly obvious.

What differences are there between G-code and ISO programming?

G-code programming is basically Siemens’ proprietary format in which it has maintained a structure and some rules respecting where possible the ISO standard, but expanding and modifying with its own functions to make the numerical control more complete and versatile. To be more concrete I give you below the same group of functions in the ISO version and in the G-codes version. In particular it is group n°1 that defines the trajectory functions, thus the most important group.


Name Description
G00 Rapid movement
G01 Linear interpolation
G02 Clockwise circular interpolation
G02.2 Clockwise evolving interpolation
G03 Counterclockwise circular interpolation
G03.2 Counterclockwise evolving interpolation
G33 Constant pitch threading


Name Description
G00 Rapid movement
G01 Linear interpolation
G02 Clockwise circular interpolation
G03 Counterclockwise circular interpolation
CIP Circular interpolation with middle point definition
ASPLINE Akima-Spline
CSPLINE Cubic spline
POLY # Polynomial: polynomial interpolation
G33 Constant pitch threading
G331 Tapping
G332 Retraction (Tapping)
OEMIPO1 ## Circle with tangential round
OEMIPO2 ## Thread pitch increase (progressive change)
CT Decrease in thread pitch (degressive change)
G34 Thread pitch increase (progressive change)
G35 Decrease in thread pitch (degressive change)
INVCW Clockwise evolving interpolation
INVCCW Counterclockwise evolving interpolation

At this stage it is not important to dwell on or understand the individual functions, but I have given you the two tables so that you can see the difference between the available functions. In the ISO format we have only 7 functions available versus the 19 functions available in Siemens G-code programming. Hence why it is not at all recommended to program a Siemens control in ISO format, because we would not have available all the functions and capabilities that make the Siemens numerical control truly versatile and complete.

Also, activating with parameter 18800 the ISO programming should be done with due care and only by consulting the machine builder, because the tool tables and offsets would also be changed, and it should be evaluated correctly by analyzing each subprogram and function of the machine. So we will continue with the course in SIEMENS G-code programming knowing that there is the possibility of programming in pure ISO format but with reduced possibilities and functionality compared to G-code programming.

Name of programs and subprograms

In the lesson we saw the rules for defining program and subprogram names. I will briefly review below the rules on file names and specifically regarding main .MPF programs and .SPF subprograms.

Main Programs (.MPF)

⦁ Maximum 24 characters
⦁ No spaces
⦁ No arithmetic signs
⦁ The first two characters must be letters or under-score ( rule applies only to files generated by serial transfer with name encoding at the head of the file)

Subprograms (.SPF)

⦁ Maximum 24 characters
⦁ Minimum 2 characters
⦁ No spaces
⦁ No arithmetic signs
⦁ First two characters must be letters or under-score (file is created anyway without alarms but when called it generates an alarm)
⦁ In the case of a name consisting of numbers only, you should prefix the address L. Example: L100.SPF

Name of file generated by serial transmission

In machines where the transmission of programs from PC to control is still done by serial connection, it is possible to define the file name and its location directly at the head of the program, but it must comply with the following rules in addition to what has already been said for .MPF file names:

⦁ Minimum 3 characters
⦁ The first two characters must be letters or under-score
⦁ In the first block of the program enter the file name after the following characters %_N_
⦁ Example: %_N_PIECE1_N


Download, install and configure SINUTRAIN

Course introduction and instructions for installing, downloading and configuring SINUTRAIN


Program syntax

Siemens functions and ISO format functions, address sequence and block numbering

Back to: Basic milling programming in G-codes