Complex tasks? No problem

SINUMERIK high-level programming

CNC programmers increasingly face special tasks that take them to the limits of classic (DIN 66025) and graphical CNC programming. CNC high-level programming language with SINUMERIK provides valuable support in this area.

High-level language for the CNC

Special tasks in CNC programming are common:

  • configurable CNC programs for component families that differ only in a few geometric sizes
  • certain components that require their own technology cycle because not all special tasks can be handled using standard cycles
  • a simple operator message to be generated from an ongoing CNC program that cannot be fully implemented using the instruction set offered by DIN 66025 or graphical CNC programming 
  • logging of machining parameters and measurement results
  • ...

In all these situations, the use of a CNC high-level language offers new possibilities for reacting quickly and flexibly.

Unlike hardware-dependent assembler programming, high-level computer languages can be used to model complex program sequences in an easily readable format — that is, very transparently. This also applies to CNC programming. CNC high-level language complements machine-dependent DIN 66025 programming (G00, G01, G02, …). In the CNC market, the SINUMERIK high-level programming language offers fundamental properties of third-generation high-level computer languages such as C, C++, Visual Basic, Pascal or Java. In practice this means that it is possible to significantly increase the flexibility of CNC machining programs, allowing CNC programmers to implement challenging CNC applications.

 

A key prerequisite for programming using high-level languages is commands that are readable ("mnemonic") for the programmer, such as REPEAT, WHILE, CASE, etc. In addition, the programmer defines which variables are used in the program and which variable types they are to be assigned to. The variable type defines whether the variable should contain an axis position (floating-point number, type: REAL), a counter (whole number, type: INTEGER) or the result of a comparison (type: BOOLEAN). Control structures, such as conditional branches (IF, ELSE) or iteration loops (WHILE, REPEAT UNTIL), are also important for the mapping of the program sequence. Beyond the basic forms of calculation, high-level languages additionally offer higher-order mathematical functions, such as sine/cosine or a logarithm function. The operational scope also covers Boolean algebra, with functions such as AND, OR and NOT.

 

When it comes to complex tasks, programmers use the flow diagram technique. First, the basic step-by-step sequence of the program is modeled and checked; then it is optimized "in theory" in an abstract, easy-to-follow format. 

 

Not until the last step does the programmer translate the flow diagrams into concrete commands. The commands of high-level languages facilitate extremely efficient translation of flow diagrams.

 

A major benefit of the SINUMERIK high-level language is that it is a built-in feature of every SINUMERIK. This means that any CNC programmer can use it directly in the CNC editor without additional software. Alongside solutions for special tasks, this language also offers key benefits when it comes to training: working with the SINUMERIK high-level language increases the flexibility of CNC programs and gives trainees a fundamental understanding of how to handle higher-level programming languages. This enhances CNC training and increases aspiring specialists’ job opportunities.

 

The SINUMERIK high-level language

The SINUMERIK high-level language includes all the fundamental properties of third-generation programming languages. Following are a few examples:

 

Abstract data types

The following types of variables can be defined in SINUMERIK CNC programs:

NC code

Comment

INT 

Whole number 

REAL 

Floating-point number 

BOOL

Logical value 

CHAR 

ASCII character 

STRING 

Character string 

AXIS 

CNC axis name 

FRAME

Coordinate displacement

Example

Control structures

The following control structures can be used in the SINUMERIK CNC high-level language:

 
NC code
Comment
IF, ELSE, ENDIF
Conditional branch
LOOP, ENDLOOP 
Infinite programming loop
FOR, ENDFOR 
For loop
WHILE, ENDWHILE 
Program loop
REPEAT UNTIL
Program loop
Example

Operations in the SINUMERIK CNC high-level language

The following operations can be used in CNC programs (excerpt):

NC code
Comment
Comparative operation
 
== 
(equal to)
<> 
(not equal to)
(greater then)
(less than)
>= 
(greater than or equal to)
<=
(less than or equal to)
Arithmetic operation
 
+, -, *, / 
 
SIN(), COS(), TAN(), ASIN(), ACOS(), ATAN() 
 
SQRT(), POT() 
 
LN(), EXP() 
 
TRUNC(), ROUND()
 
Example

Would you like to contact the CNC4you team?

Questions or suggestions? Write us!

Do you have a suggestion for a video tutorial, a workpiece or an online article? We are curious about it!  

Related Content