siemens 802D sl, 840D, 840D sl, 840Di, 840Di sl User Manual

...
Page 1
Brief Description 1
Programming 2
Cycles and Contour Definition 3
Start-Up 4
840Di/840Di sl/810D
ISO Dialects for SINUMERIK
Description of Functions
Boundary Conditions 5
Data Descriptions (MD, SD) 6
Signal Descriptions 7
Example 8
Data Fields, Lists 9
Alarms 10
References A
Index
Valid for
Software Version
SINUMERIK 840D/DE powerline 7.4 SINUMERIK 840Di/DiE powerline 3.3 SINUMERIK 810D/DE powerline 7.4 SINUMERIK 840D sl/DE sl 1.4 SINUMERIK 840Di sl/DiE sl 1.4 SINUMERIK 802D sl 1.4
03.2007 Edition
Page 2
p
y
3
SINUMERIK®- Dokumentation
Printing history
Brief details of this edition and previous editions are listed below.
The status of each edition is shown by the code in the “Remarks” column.
Status code in the “Remarks” column:
A New documentation......
B Unrevised reprint with new order no......
C Revised edition with new status......
Edition Order No. Remarks
08.99 6FC5297--5AE10--0BP0 A
04.00 6FC5297--5AE10--0BP1 C
10.00 6FC5297--6AE10--0BP0 C
09.01 6FC5297--6AE10--0BP1 C
12.01 6FC5297--6AE10--0BP2 C 1 1.02 6FC5297--6AE10--0BP3 C
07.04 6FC5297--6AE10--0BP4 C
03.07 6FC5397--7BP10--0BA0 C
Trademarks
Any product names mentioned may be trademarks or product designations of Siemens or their suppliers, whose use by third parties for their own purposes may infringe the rights of the trademark owners.
Exclusion of liability
We have checked the contents of the documentation for consistency with the hardware and software described. Since deviations cannot be precluded entirely, we cannot guarantee complete conformance. The information in this document is regularly checked and necessary corrections are included in reprints. Suggestions for improvement are also welcome.
©
Siemens AG 1999--2007 All rights reserved.
Printed in the Federal Re
ublic of German
Siemens--Aktiengesellschaft
Page 3

Preface

SINUMERIK--Documentation
The SINUMERIK documentation is organized in 3 parts:
S General documentation
S User documentation
S Manufacturer/service documentation
A monthly updated publications overview with respective available languages can be found in the Internet under:
http://www
Select the menu items ”Support” --> ”Technical Documentation” -->¨ ”Overview of Publications”.
The Internet version of DOConCD (DOConWEB) is available under:
http://www
Information about training courses and FAQs (Frequently Asked Questions) can be found in internet under:
http://www.siemens.com/motioncontrol
Target group
This publication is intended for:
S Project engineers
S Technologists (from machine manufacturers)
S System startup engineers (Systems/Machines)
S Programmers
Standard version
.siemens.com/motioncontrol
.automation.siemens.com/doconweb
under menu option ”Support”
This documentation only describes the functionality of the standard version. Extensions or changes made by the machine tool manufacturer are documented by the machine tool manufacturer.
Other functions not described in this documentation might be executable in the control. This does not, however, represent an obligation to supply such functions with a new control or when servicing.
Further, for the sake of simplicity, this documentation does not contain all detailed information about all types of the product and cannot cover every conceivable case of installation, operation or maintenance.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
iii
Page 4
Preface
Technical Support
If you have any technical questions, please contact our hotline:
Phone +49 180 5050 222 +86 1064 719 990 +1 423 262 2522
Fax +49 180 5050 223 +86 1064 747 474 +1 423 262 2289
Internet http:// www.siemens.c om/automation/support--request
E--Mail mailto:adsupport@siemens.com
Note
Country specific telephone numbers for technical support are provided under the following Internet address:
03.07
Europe / Africa Asia / Australia America
htpp://www
.siemens.com/automation/service&support
Questions about the manual
If you have any queries (suggestions, corrections) in relation to this documentation, please send a fax or e--mail to the following address:
Fax +49 9131 98 63315
E--Mail mailto:motioncontrol.docu@siemens.com
A fax form is available at the end of this document.
SINUMERIK Internet address
http://www.siemens.com/sinumerik
Safety Guidelines
This manual contains notices you have to observe in order to ensure your personal safety, as well as to prevent damage to property. The notices referring to your personal safety are highlighted in the manual by a safety alert symbol, notices referring only to property damage have no safety alert symbol. These notices shown below are graded according to the degree of danger.
iv
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 5
03.07
!
!
!
Preface
Danger
indicates that death or severe personal injury will result if proper precautions are not taken.
Warning
indicates that death or severe personal injury may result if proper precautions are not taken.
Caution
with a safety alert symbol, indicates that minor personal injury can result if proper precautions are not taken.
Caution
without a safety alert symbol, indicates that property damage can result if proper precautions are not taken.
Notice
indicates that an unintended result or situation can occur if the corresponding information is not taken into account.
If more than one degree of danger is present, the warning notice representing the highest degree of danger will be used. A notice warning of injury to persons with a safety alert symbol may also include a warning relating to property damage.
Qualified Personnel
The device/system may only be set up and used in conjunction with this documentation. Commissioning and operation of a device/system may only be performed by qualified personnel. Within the context of the safety notes in this documentation qualified persons are defined as persons who are authorized to commission, ground and label devices, systems and circuits in accordance with established safety practices and standards.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
v
Page 6
Preface
Prescribed Usage
Note the following:
Warning
!
This device may only be used for the applications described in the catalog or the technical description and only in connection with devices or components from other manufacturers which have been approved or recommended by Siemens. Correct, reliable operation of the product requires proper transport, storage, positioning and assembly as well as careful operation and maintenance.
Further notes
Note
03.07
Is an important item of information about the product, handling of the product or section of the documentation which requires particular attention.
Machine manufacturer
This pictorial symbol always appears in this document to indicate that the machine manufacturer can affect or modify the function described. Never ignore information provided by the machine manufacturer!
vi
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 7
03.07

Contents

Contents
1 Brief Description 1-11.......................................................
2 Programming 2-13..........................................................
2.1 Activation of functions 2-13............................................
2.1.1 Switchover from ISO mode to Siemens mode 2-15.......................
2.2 G commands 2-17...................................................
2.2.1 G code display 2-22..................................................
2.2.2 Display of non-modal G codes 2-23....................................
2.2.3 G code output to PLC (as from SW 6.4) 2-23............................
2.2.4 Zero offset 2-25.....................................................
2.2.5 Uncoupling the frames between the Siemens and the ISO modes
(with powerline 7.04.02 or solution line 1.4 and higher) 2-26...............
2.2.6 Writing a zero offset with G10 2-30.....................................
2.2.7 Decimal point programming 2-31.......................................
2.2.8 Rapid lift with G10.6 2-33.............................................
2.2.9 Multiple threads with G33 2-35.........................................
2.2.10 Threads with variable lead (G34) 2-35..................................
2.2.11 Dwell time in spindle revolutions G04 2-36..............................
2.2.12 Scaling and mirroring: G51, G51.1 (ISO Dialect M) 2-36...................
2.2.13 G60: Oriented positioning 2-39........................................
2.2.14 2D/3D rotation G68 / G69 (ISO Dialect M) 2-40..........................
2.2.15 Double-slide or double-turret machining G68 / G69 2-42..................
2.2.16 Polar coordinates: G15 (ISO Dialect M) 2-46............................
2.2.17 Polar coordinate interpolation G12.1 / G13.1 (G112/G1 13) 2-47............
2.2.18 Cylindrical interpolation G07.1 (G107) 2-48..............................
2.2.19 Interrupt program with M96 / M97 (ASUB) 2-50..........................
2.2.20 Comments 2-54.....................................................
2.2.21 Block skip 2-54......................................................
2.2.22 Auxiliary function output 2-55..........................................
2.2.23 Align first reference point: G28 2-56....................................
2.2.24 Enable/disable feed-forward control using G08 P.. 2-56...................
2.2.25 Compressor in ISO dialect mode 2-57..................................
2.2.26 Automatic corner override G62 2-58....................................
2.3 Subprogram and macro technology 2-61................................
2.3.1 Subprogram technology: M98 2-61.....................................
2.3.2 Siemens language commands in ISO Dialect mode 2-64..................
2.3.3 Extending the subprogram call for contour preparation
with CONTPRON 2-65...............................................
2.3.4 Macro commands with G65, G66 and G67 2-68..........................
2.3.5 Mode changing in macro calls with G65/G66 2-71........................
2.3.6 Macro call with M function 2-72........................................
2.3.7 Macro call with G function 2-74........................................
2.3.8 High-speed cycle cutting G05 P.. 2-76..................................
2.3.9 Switchover modes for DryRun and skip levels 2-77.......................
2.3.10 Eight-digit program numbers 2-78......................................
2.3.11 System variable for level stack in ISO mode 2-80........................
2.4 Tool change and tool offsets 2-83......................................
2.4.1 Tool offsets: T, D, M (ISO Dialect M) 2-83...............................
2.4.2 Possible H numbers 2-84.............................................
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
vii
Page 8
Contents
2.4.3 Tool offset: T (ISO dialect T) 2-88......................................
2.4.4 Tool-changing cycle 2-92..............................................
3 Cycles and Contour Definition 3-93...........................................
3.1 Calling cycles in the external CNC system using G commands 3-93........
3.2 Global user data (GUD) 3-96..........................................
3.3 Drilling cycles (ISO Dialect M) 3-99.....................................
3.3.1 Overview and parameter description 3-99...............................
3.3.2 Description of shell cycle CYCLE381M 3-102.............................
3.3.3 Description of shell cycle CYCLE383M 3-102.............................
3.3.4 Description of shell cycle CYCLE384M 3-104.............................
3.3.5 Description of shell cycle CYCLE387M 3-105.............................
3.4 Turning and drilling cycles (ISO Dialect T) 3-106..........................
3.4.1 Turning cycles G70 to G76 3-106.......................................
3.4.2 Turning cycles G77 to G79 3-113.......................................
3.4.3 Drilling cycles G80 to G89 3-115........................................
3.4.4 Description of shell cycle CYCLE383T 3-118.............................
3.4.5 Description of shell cycle CYCLE384T 3-119.............................
3.4.6 Description of shell cycle CYCLE385T 3-120.............................
03.07
3.5 System variables 3-121................................................
3.6 Programming contour definitions (ISO Dialect T) 3-124.....................
3.6.1 End point programming with angles 3-125................................
3.6.2 Straight line with angle 3-126...........................................
3.6.3 Two straight lines 3-127................................................
3.6.4 Three straight lines 3-129..............................................
3.6.5 Polygon turning with G51.2 3-131.......................................
3.6.6 Contour repetition G72.1 / G72.2 3-132..................................
4Start-Up 4-135................................................................
4.1 Machine data 4-135...................................................
4.1.1 Active G command to PLC 4-142.......................................
4.1.2 Tool change, tool data 4-142............................................
4.1.3 G00 always with exact stop 4-142.......................................
4.1.4 Response to syntax errors 4-143........................................
4.1.5 Selection of code system A, B, C (ISO Dialect T) 4-144....................
4.1.6 Fixed feedrates F0 -- F9 4-145..........................................
4.1.7 Parallel axes G17<axis name>.. (G18 / G19) 4-146........................
4.1.8 Insertion of chamfers and radii 4-147....................................
4.1.9 Rotary axis function 4-148.............................................
4.1.10 Program coordination between two channels and M functions 4-150.........
4.2 Default assignment of machine data for ISO Dialect 4-151..................
5 Boundary Conditions 5-153...................................................
5.1 Restrictions 5-153.....................................................
5.1.1 Program commands 5-154.............................................
5.1.2 Tool management 5-156...............................................
5.1.3 Control system response to Power ON, Reset and block search 5-157.......
6 Data Descriptions (MD, SD) 6-159..............................................
6.1 General machine data 6-159...........................................
viii
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 9
03.07
Contents
6.2 Channel-specific machine data 6-175....................................
6.3 Axis-specific setting data 6-185.........................................
6.4 Channel-specific setting data 6-186.....................................
7 Signal Descriptions 8-191.....................................................
8 Example 8-191...............................................................
9 Data Fields, Lists 9-193.......................................................
9.1 Machine data 9-193...................................................
9.2 Setting data 9-195....................................................
10 Alarms 10-197................................................................
Index I-201..................................................................
Commands I-203.............................................................
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
ix
Page 10
Contents
03.07
Notes
x
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 11

Brief Description

Introduction
Parts programs can be read in from external CNC systems, and can then be edited and executed.
This manual describes the startup measures and procedures necessary to run NC programs created on an external CNC system. Functional differences are also explained.
Note
For a detailed description of the external programming functions, please refer to the original documentation of the external CNC system.
Terms used
The following terms are defined for this manual:
1
S ISO Dialect M is similar to the G code of the “Fanuc16 Milling” control
S ISO Dialect T is similar to the G code of the “Fanuc16 Turning” control
System B
S ISO Dialect Original is equivalent to the original Fanuc16 control
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
1-11
Page 12
Brief Description
Notes
03.07
1-12
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 13

Programming

2.1 Activation of functions

Machine data 18800 $MN_EXTERN_LANGUAGE is used to activate the external language. The language type, ISO Dialect-M or T is selected with machine data 10880 $MN_EXTERN_CNC_SYSTEM. The external language can be activated separately for each channel. For example, channel 1 can operate in ISO mode but channel 2 is active in Siemens mode.
Switchover
The following two G commands from Group 47 are used to switch between Siemens mode and ISO Dialect mode:
S G290 Siemens NC programming language active
S G291 ISO Dialect NC programming language active
2
The active tool, tool offsets and zero offsets remain active here (see Subsection 2.2.4 and Section 2.4).
G290 and G291 must be programmed in a separate NC program block.
Siemens mode
The following conditions apply when Siemens mode is active:
S Siemens G commands are interpreted on the control by default.
S It is not possible to extend the Siemens programming system with ISO Dialect
S Downloadable MD files can be used to switch the control to ISO Dialect mode.
functions because some of the G functions have different meanings.
In this case, the user sees the ISO Dialect mode by default.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-13
Page 14
Programming
2.1 Activation of functions
ISO Dialect mode
The following conditions apply when ISO Dialect mode is active:
S Only ISO Dialect G codes can be programmed, not Siemens G codes.
S It is not possible to use a mixture of ISO Dialect code and Siemens code in the
same NC block.
S It is not possible to switch between ISO Dialect M and ISO Dialect T via
G command
S If further Siemens functions are to be used, it is necessary to switch to Siemens
mode first (exception: program branches and subprogram calls, see Subsection 2.3.2)
Power ON/Reset
Table 10-1 shows the possible combinations of machine data $MN_EXTERN_ CNC_SYSTEM and $MC_GCODE_RESET_VALUE. This specifies the Power ON/Reset response.
03.07
Table 2-1 Activation of functions
After Power ON/Reset...
Siemens mode active, switch­over to ISO Dialect M possible
Siemens mode active, switch-over to ISO Dialect T possible
ISO Dialect M active, switchover to Siemens mode possible
ISO Dialect T active, switchover to Siemens mode possible
Modal G commands
Modal G commands which have the same function in both systems (Siemens and ISO Dialect) are treated as follows. When these G codes are programmed in one language, the equivalent G code in the other language is determined and activated. The following G codes are affected.
$MC_GCODE_RESET_ VALUES[46] =
1 G290 Siemens mode 1 ISO Dialect M
1 G290 Siemens mode 2 ISO Dialect T
2 G291 ISO Dialect mode 1 ISO Dialect M
2 G291 ISO Dialect mode 2 ISO Dialect T
$MN_EXTERN_CNC_ SYSTEM =
2-14
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 15
03.07
2.1 Activation of functions
Data management
ISO programs which have been read in are stored in the NC data management system as main programs in the default path: _N_WKS_DIR/_N_SHOPMILL_WPD.
You can change the entry by editing the file DINO.INI in the USER directory. You will find further information in the publication
References: /IAM/, IM4: Installation and Startup Guide, Section 3.1.

2.1.1 Switchover from ISO mode to Siemens mode

G290/291
G commands 290/291 can be used from the parts program to change mode. On switchover, the display of current G codes also changes.
Programming
G65/66
Non-modal and modal macro: The programmed subprogram is called. Switchover to Siemens mode only takes place when the PROC instruction is used in the first line of the subprogram. If a program of this type is terminated with M17 or RET, when the subprogram returns, the mode is switched back to ISO mode.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-15
Page 16
Programming
2.1 Activation of functions
Siemens subprogram call in ISO mode
Modal and non-modal subprogram calls, e.g.
N100 CALL “SHAFT”
or
N100 MCALL SHAFT
or
N100 SHAFT
Modal and non-modal subprogram calls with parameter passing
N100 MCALL SHAFT(”ABC”, 33.5) or
N100 SHAFT(“ABC”, 33.5)
Subprogram calls with path name
N100 CALL “/_N_SPF_DIR/SHAFT
or
N100 MCALL /_N_SPF_DIR/SHAFT
or
N100 PCALL /_N_SPF_DIR/SHAFT
03.07
Siemens mode is selected implicitly on subprogram calls, and the system is switched back to ISO Dialect mode at the end of the subprogram.
Modal, non-modal cycles
If a modal or non-modal cycle is programmed in ISO mode, a shell cycle will be called. This call results in switchover to Siemens mode.
2-16
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 17
03.07
2.2 G commands
The G codes of ISO Dialect T refer to G code system B (see also 4.1.5).
The active G codes in ISO mode can be read using system variable $P_EXTGG[...]. The numbers alongside the G code specify the respective value in $P_EXTGG[...]. Machine data 20154 EXTERN_GCODE_RESET_VALUES[n]: 0, ..., 30 is used to specify the G codes that are effective on start-up when the NC channel is not operating in Siemens mode.
Programming

2.2 G commands

Table 2-2 The default setting is indicated by
ISO Dialect T ISO Dialect M Description 840D sl 802D sl
Group 1
G001)1 G001)1
G01 2 G01 2 Linear motion x x
G02 3 G02 3 Circle/helix, clockwise x x
G02.2 6 Involute, clockwise x x
G03 4 G03 4 Circle/helix, counterclockwise x x
G03.2 7 Involute, counterclockwise x x
G33 5 G33 5 Thread cutting with constant lead x x
G34 9 Thread cutting with variable lead x x
G77 6 Longitudinal turning cycle x x
G78 7 Thread cutting cycle x x
G79 8 Face turning cycle x x
Group 2
1)
G17
G18 2 ZX plane x x
G19 3 YZ plane x x
G96 1 Constant cutting rate ON x x
1)
G97
Group 3
G90
G91 2 G91 2 Incremental programming x x
Group 4
G68 1 Double turret/slide on x x
G69
2
1)
1 G90
1)
2
1)
G22 1 Working area limitation, protection zone 3 ON x x
1)
G23
Rapid traverse x x
XY plane x x
1
Constant cutting rate OFF x x
Absolute programming x x
1
Working area limitation, protection zone 3 OFF x x
2
Double turret/slide off x x
1)
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-17
Page 18
Programming
2.2 G commands
03.07
Table 2-2 The default setting is indicated by
ISO Dialect T 802D sl840D slDescriptionISO Dialect M
Group 5
G93 3 Inverse-time feedrate (rpm) x x
G94 1
1)
G95
Group 6
G20
G21 2 G21 (G71) 2 Input system metric x x
Group 7
G40
G41 2 G41 2 Compensation to left of contour x x
G42 3 G42 3 Compensation to right of contour x x
Group 8
Group 9
G22 1 Working area limitation, protection zone 3 ON x x
G23
Group 10
G80
G83 2 Face deep hole drilling x x
G84 3 Face tapping x x
G85 4 End face drilling cycle x x
2
1)
1 G201)(G70) 1
1)
1 G40
1)
2
1)
1
1)
G94
G95 2 Revolutional feedrate in [mm/rev, inch/rev] x x
1)
G43 1 Tool length compensation positive ON x x
G44 2 Tool length compensation negative ON x x
1)
G49
G73 1 Deep hole drilling cycle with chipbreaking x x
G74 2 Counterclockwise tapping cycle x x
G76 3 Fine drilling cycle x x
1)
G80
G81 5 Counterbore drilling cycle x x
G82 6 Countersink drilling cycle x x
G83 7 Deep hole drilling cycle with swarf removal x x
G84 8 Clockwise tapping cycle x x
G85 9 Drilling cycle x x
G86 10 Drilling cycle, retraction with G00 x x
G87 11 Reverse countersinking x x
G89 13 Drilling cycle, retraction with machining feed x x
Feed in [mm/min, inch/min] x x
1
Input system inch x x
Deselect cutter radius compensation x x
1
Tool length compensation OFF x x
3
Working area limitation, protection zone 3 OFF x x
Cycle OFF x x
4
Drilling cycle OFF x x
1)
2-18
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 19
03.07
Programming
2.2 G commands
Table 2-2 The default setting is indicated by
ISO Dialect T 802D sl840D slDescriptionISO Dialect M
G87 5 Side deep hole drilling x x
G88 6 Side tapping x x
G89 7 Side drilling x x
1)
G98
G99 2 Return to point R for fixed cycles x x
Group 11
1)
G98
G99 2 Return to point R for drilling cycles x x
Group 12
G66 1 G66 1 Modal macro call x x
G67
Group 13
Group 14
G54
G55 2 G55 2 Select zero offset x x
G56 3 G56 3 Select zero offset x x
G57 4 G57 4 Select zero offset x x
G58 5 G58 5 Select zero offset x x
G59 6 G59 6 Select zero offset x x
G54 P{1...48}1 G54 P{1...48}1 Extended zero offsets x x
G54 P0 1 G54 P0 1 “External ZO extOffset” x x
Group 15
Group 16
G17 1 XY plane x x
G18
G19 3 YZ plane x x
1
1)
G50
G51 2 Scaling ON x x
1)
2 G67
1)
1 G54
1)
2
1)
G96 1 Constant cutting rate ON x x
1)
G97
1)
G54.1 7 Extended zero offset x x
G61 1 Exact stop modal x x
G62 4 Automatic corner override x x
G63 2 Tapping mode x x
1)
G64
Return to starting point for fixed cycles x x
1
Return to starting point for drilling cycles x x
Scaling OFF x x
1
2
Delete modal macro call x x
Constant cutting rate OFF x x
2
Select zero offset x x
1
Continuous-path mode x x
3
ZX plane x x
1)
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-19
Page 20
Programming
2.2 G commands
03.07
Table 2-2 The default setting is indicated by
ISO Dialect T 802D sl840D slDescriptionISO Dialect M
G68 1 Rotation ON 2D 3D x -- --
1)
G69
Group 17
1)
G15
G16 2 Polar coordinates ON x x
Group 18 (non-modal)
G04 1 G04 1 Dwell time in [s] or spindle revolutions x x
G05 20 G05 18 High-speed cycle cutting x x
G05.1 22 G05.1 20 High speed cycle --> call CYCLE305 x x
G07.1 18 G07.1 16 Cylindrical interpolation x x
G08 12 Feedforward control ON/OFF x -- --
G09 2 Exact stop x x
G10 2 G10 3 Write zero offset/tool offset x x
G10.6 19 G10.6 17 Rapid lift ON/OFF (T)
G11 4 Terminate parameter input x x
G27 16 G27 13 Referencing check (available soon) x x
G28 3 G28 5 Approach 1st reference point x x
G30 4 G30 6 Approach 2nd/3rd/4th reference point x x
G30.1 21 G30.1 19 Floating reference position x x
G31 5 G31 7 Measurement with touch-trigger probe x x
G52 6 G52 8 Programmable zero offset x x
G53 17 G53 9 Approach position in machine coordinate
G60 24 G60 22 Oriented positioning x -- --
G65 7 G65 10 Call macro x x
G70 8 Finishing cycle x x
G71 9 Stock removal cycle longitudinal axis x x
G72 10 Stock removal cycle transverse axis x x
G72.1 14 Contour repetition with rotation x -- --
G72.2 15 Contour repetition, linear x -- --
G73 11 Repeat contour x x
G74 12 Deep hole drilling and recessing in longitudinal
G75 13 Deep hole drilling and recessing in facing axis
Rotation OFF x -- --
2
Polar coordinates OFF x x
1
Retraction from contour (POLF) (M)
system
axis (Z)
(X)
1)
x x
x x
x x
x x
2-20
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 21
03.07
Programming
2.2 G commands
Table 2-2 The default setting is indicated by
ISO Dialect T 802D sl840D slDescriptionISO Dialect M
G76 14 Multiple thread cutting cycle x x
G92 15 G92 11 Preset actual value memory, spindle speed
G92.1 23 G92.1 21 Reset actual value, reset WCS x x
Group 20
1)
G50.2
G51.2 2 Polygon turning ON x -- --
Group 21
G13.1
G12.1 2 TRANSMIT ON x x
Group 22
Group 25
Group 31
G290
G291 2 G291 2 Select ISO Dialect mode x x
1)
1)
1
1
G50.1 1 Mirroring on programmed axis OFF x x
G51.1 2 Mirroring on programmed axis ON x x
G13.1 1 Polar coordinates, interpolation x x
G12.1 2 Polar coordinates, interpolation x x
1 G290
1)
limitation
Polygon turning OFF x -- --
TRANSMIT OFF x x
Select Siemens mode x x
1
1)
x x
Table 2-3 G commands are functionally identic al in Siemens mode and in ISO Dialect mode
G commands in Siemens
mode
Group 1: G00, G01, G02, G03, G33
Corresponding G commands
in ISO Dialect T
Group 1: G00, G01, G02, G03, G33
Corresponding G commands in
ISO Dialect M
Group 1: G00, G01, G02, G03, G33
Group 6: G17, G18, G19 Group 16: G17, G18, G19 Group 2: G17, G18, G19
Group 7: G40, G41, G42 Group 7: G40, G41, G42 Group 7: G40, G41, G42
Group 8: G54 to G554 Group 14: G54 to G59 G54 P1
to P48
Group 14: G54 to G59, G54 P1 to P48
Group 10: G60, G64 Group 15: G60, G64
Group 13: G700, G710 Group 6: G20, G21 Group 6: G20, G21
Group 14: G90, G91 Group 3: G90, G91 Group 3: G90, G91
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-21
Page 22
Programming
2.2 G commands
Table 2-3 G commands are functionally identic al in Siemens mode and in ISO Dialect mode
03.07
G commands in Siemens
mode
Group 15: G94
G95 G96 G961 G97 G971
Note
If individual G codes of the groups in T able 2-3 cannot be mapped, the default setting in machine data 20154: $MC_EXTERN_GCODE_RESET_VALUES and/or 20152: $MC_GCODE_RESET_VALUES is activated.
Example: ISO mode
N5 G00 X100. Y100.
N10 G90 ;Activate G90 in ISO mode Group 3
Corresponding G commands
in ISO Dialect T
Group 5: G94 Group 2: G97 Group 5: G95 Group 2: G97 Group 5: G95 Group 2: G96 Group 5: G94 Group 2: G96 Group 5: G95 Group 2: G97 Group 5: G94 Group 2: G97
;In Siemens mode Group 14
Corresponding G commands in
ISO Dialect M
Group 5: G94 Group 13: G97 Group 5: G95 Group 13: G97 Group 5: G95 Group 13: G96 Group 5: G94 Group 13: G96 Group 5: G95 Group 13: G97 Group 5: G94 Group 13: G97
N15 G290 ;Switch over to Siemens, G90 is active
N20 G91 ;Activate G91 in ISO mode Group 3
N25 G291 ;Switch over to ISO mode
N30 G291 ;G91 is active

2.2.1 G code display

In the G code display, the G codes for the currently active language are displayed. G290/G291 also causes the G code display to switch over.
Example:
The Siemens standard cycles are called up using some of the ISO Dialect mode G functions (e.g. G28). DISPLOF is programmed at the start of the cycle, with the result that the ISO Dialect G commands remain active for the display.
PROC CYCLE328 SAVE DISPLOF
N10 ...
...
N99 RET
;In Siemens mode Group 14
2-22
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 23
03.07
Sequence:
S External main program calls Siemens shell cycle.
Siemens mode is selected implicitly on the shell cycle call.
S DISPLOF freezes the block display at the call block;
the G code display remains in external mode. This display is refreshed while the Siemens cycle is running.

2.2.2 Display of non-modal G codes

As of SW 6.4 the external non-modal G codes (group 18) will no longer be reset on block change if these G codes call up subprograms. The G codes remain visible on the display until the next jump out of this subprogram.
Switching to external language mode in the subprogram and programming another G code from group 18 overwrites the previous value and the new value is retained until the return jump.
Programming
2.2 G commands
Example:
Main program
N05 G00 X0 Y0
Display group 18
empty
N08 G27 X10 -- > calls Cycle328 empty N09 M0 empty N40 M30 empty
Subprogram Cycle328 Display group 18
N100 G290 G27 N102 X=$C_X
G27
N103 M0 G27 N104 G291 G27 N105 G30 X10 Y12 Z13 G30 N120 M99 G30

2.2.3 G code output to PLC (as from SW 6.4)

The behavior of G group transfer to PLC is described in machine data $MC_GCODE_GROUPS_TO_PLC_MODE.
The previous behavior was for the G group to be the array index of a 64 byte field (DBB 208 -- DBB 271). That way, up to the 64th G group can be reached. Only the G groups of the standard or external language can be displayed.
The new behavior is for the data storage in the PLC to be up to 8 bytes (DBB 208
-- DBB 215), i.e. up to 8 G groups can be output.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-23
Page 24
Programming
2.2 G commands
This method has the array index of machine data
22515: $MC_GCODE_GROUPS_TO_PLC[ ] or 22512: $MC_EXTERN_GCODE_GROUPS_TO_PLC[ ]
equal to the array index of the data storage in the PLC (DBB 208 -- DBB215). The G code group from MD $MC_GCODE_GROUPS_TO_PLC[ ] is output in DBB 208.
The advantage is that Siemens mode and ISO mode G codes can be output simultaneously.
Because only the G code of one language can be output in a DBB2xx, each index (0 --7) can only be set on one of the two machine data, and the value 0 must be entered in the other MD. Errors are signaled with Alarm 4045.
Example
$MC_GCODE_GROUPS_TO_PLC[0]=3 $MC_GCODE_GROUPS_TO_PLC[1]=0 $MC_GCODE_GROUPS_TO_PLC[2]=0 $MC_GCODE_GROUPS_TO_PLC[3]=0 $MC_GCODE_GROUPS_TO_PLC[4]=1 $MC_GCODE_GROUPS_TO_PLC[5]=2 $MC_GCODE_GROUPS_TO_PLC[6]=0 $MC_GCODE_GROUPS_TO_PLC[7]=0
03.07
$MC_EXTERN_GCODE_GROUPS_TO_PLC[0]=0 $MC_EXTERN_GCODE_GROUPS_TO_PLC[1]=3 $MC_EXTERN_GCODE_GROUPS_TO_PLC[2]=18 $MC_EXTERN_GCODE_GROUPS_TO_PLC[3]=1 $MC_EXTERN_GCODE_GROUPS_TO_PLC[4]=0 $MC_EXTERN_GCODE_GROUPS_TO_PLC[5]=0 $MC_EXTERN_GCODE_GROUPS_TO_PLC[6]=6 $MC_EXTERN_GCODE_GROUPS_TO_PLC[7]=31
The following G codes are then available on the PLC
DBB 208 = group 03 Siemens DBB 209 = group 03 ISO dialect DBB 210 = group 18 ISO dialect DBB 211 = group 01 ISO dialect DBB 212 = group 01 Siemens DBB 213 = group 02 Siemens DBB 214 = group 06 ISO dialect DBB 215 = group 31 ISO dialect
2-24
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 25
03.07
Example of faulty configuration:
$MC_GCODE_GROUPS_TO_PLC[0]=3 $MC_GCODE_GROUPS_TO_PLC[1]=0 $MC_GCODE_GROUPS_TO_PLC[2]=0
$MC_EXTERN_GCODE_GROUPS_TO_PLC[0]=3 -->
$MC_EXTERN_GCODE_GROUPS_TO_PLC[1]=0 $MC_EXTERN_GCODE_GROUPS_TO_PLC[2]=18
The method enables simultaneous display of G codes of standard mode and ISO dialect mode.

2.2.4 Zero offset

Programming
2.2 G commands
Alarm 4045, channel K1 conflict between machine data {S$MC_GCODE_GROUPS_TO_PLC} and machine data {S$MC_EXTERN_GCODE_GROUPS_TO_PLC}
The zero offsets (ZO) of Siemens mode are shown in Fig. 2-1.
Progr. frame G52 ZO $P_BFRAME G51 scale
Settable frame G54 -- G59 ZO $P_UIFR G54 P1..100 ZO
Channel-specific base frame
$P_CHBFRAME[3] G68 3DRot
$P_CHBFRAME[2] G68 2DRot / 3DRot
$P_CHBFRAME[1] Mirroring on progr. axis
$P_CHBFRAME[0] G92 Preset actual value memory $P_CHBFRAME[0] ZO extOffset
Fig. 2-1 Instantaneous mapping of the ISO functions onto the Siemens frames
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-25
Page 26
Programming
2.2 G commands
The zero offsets that are available in ISO mode are mapped onto the existing Siemens frames. No separate frames exist for ISO mode. Active zero offsets are incorporated in both language modes. Changes in ISO mode have an immediate effect in Siemens mode and vice-versa.
Zero offsets exist in both ISO Dialect T and ISO Dialect M:
S G52 is a programmable, additive ZO that remains active until the end of the
program or a reset
S G54 to G59 are settable zero offsets
S G54 P1...P100 are additional settable zero offsets
S G54 P0 is an “external ZO” extOffset
03.07
2.2.5 Uncoupling the frames b etween the Siemens and the ISO mo­des
(with powerline 7.04.02 or solution line 1.4 and higher)
In the ISO mode, various G codes occupied the programmable frame $P_FRAME, the settable frame $P_UIFR and three base frame $P_CHBFRAME[ ]. If you switch from the ISO mode to the Siemens mode, these frames will not be available to the user of the Siemens language. This pertains to:
G52 Programmable zero offset --> progr. frame $P_PFRAME
G51 Scaling --> progr. frame $P_BFRAME SCALE
G54--G59 Zero offset --> settable frame $P_UIFR
G54 P1..100 Zero offset --> settable frame $P_UIFR
G68 3D rotation --> base frame $P_CHBFRAME[3]
G68 2D rotation --> base frame $P_CHBFRAME[2]
G51.1 Mirroring --> base frame $P_CHBFRAME[1]
G92 Set actual value--> base frame $P_CHBFRAME[0]S
G10L2P0Ext.zerooffset-->baseframe$P_CHBFRAME[0]S
To uncouple the concerned frames between the Siemens and the ISO modes, four new system frames are provided: $P_ISO1FRAME to $P_ISO4FRAME. The fra­mes are created with the machine data 28082: $MC_MM_SY­STEM_FRAME_MASK, bits 7 to 10. The reset behavior is set using the machine data 24006: $MC_CHSFRAME_RESET_MASK, bits 7 to 10.
2-26
Fig. 2-2 shows the G codes in the ISO mode and the assignment of the frames if the system frames $P_ISO1FRAME to $P_ISO4FRAME, $P_SETFRAME and $P_EXTFRAME are created.
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 27
03.07
Programming
2.2 G commands
$P_ISO4FRAME G51 Scale
$P_PFRAME G52 ZO
Settable frames G54 - G59 ZO $P_UIFR G54 P1..100 ZO
$P_ISO3FRAME G68 3DRot
$P_ISO2FRAME G68 2DRot / 3DRot
$P_ISO1FRAME G51.1 Mirroring on progr. axis
$P_EXTFRAME G10 L2 P0 ExtOffset
ZO $P_SETFRAME G92 Set actual va­lue
Fig. 2-2 Mapping of the ISO functions to the ISO frames and Siemens frames
Note
If the new frames are created, the ISO G codes will write to these frames; if they are not created, the frames are written as described in Section 2.2.4.
The tables on the following pages illustrate which G codes write to which frames, how they are created and how the reset behavior of the frames must be set to achieve a compatible behavior to the ISO mode original. The reset behavior can be set deviating from the ISO mode original using the MDs mentioned above. This can be necessary when switching from the ISO mode to the Siemens mode.
G51: Scaling
G51 X10 writes to $P_ISO4FRAME
Component TRANS, SCALE
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-27
Page 28
Programming
2.2 G commands
Creates $MC_MM_SYSTEM_FRAME_MASK Bit10 = 1
Reset behavior Delete frame
$MC_CHSFRAME_RESET_MASKBit 10 = 0
G52:Programmable zero offset
G52 X10 writes to $P_PFRAME
Component TRANS
Creates Always present
Reset behavior Is deleted in case of RESET
G54 -- G59 P1...100: Settable zero offset
03.07
G68 3DRot
G68 2DRot
G52 -- G59 $P_UIFER
Component TRANS
Creates Always present
Reset behavior G54 is active after RESET
$MC_EXTERN_GCODE_RESET_VALUES[13] = 1
G68XYIJKR $P_ISO3FRAME
Component TRANS, SCALE
Creates $MC_MM_SYSTEM_FRAME_MASK Bit 9 = 1
Reset behavior Delete frame
$MC_CHSFRAME_RESET_MASKBit 9 = 0
G68XYR $P_ISO2FRAME
Component TRANS, SCALE
Creates $MC_MM_SYSTEM_FRAME_MASK Bit 8 = 1
Reset behavior Delete frame
$MC_CHSFRAME_RESET_MASKBit 8 = 0
2-28
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 29
03.07
G51.1: Mirroring
G51.1 X Y $P_ISO1FRAME
Component TRANS, MIRROR
Creates $MC_MM_SYSTEM_FRAME_MASK Bit 7 = 1
Reset behavior Delete frame
G92: Set actual value
G92XYR $P_SETFRAME
Component TRANS
Creates $MC_MM_SYSTEM_FRAME_MASK Bit 0 = 1
Reset behavior Frame is maintained after RESET
Programming
2.2 G commands
$MC_CHSFRAME_RESET_MASKBit 7 = 0
$MC_CHSFRAME_RESET_MASKBit 0 = 1
G10L2P0
G54.1
G10L2P0 $P_EXTFRAME
Component TRANS
Creates $MC_MM_SYSTEM_FRAME_MASK Bit 1 = 1
Reset behavior Delete frame
$MC_CHSFRAME_RESET_MASKBit 1 = 0
If all frames are created, it is no longer necessary for the ISO mode that the fra­mes are configured using the FINE component. The machine data 18600: $MN_MM_FRAME_FINE_TRANS need not be set to ”1”. If you switch from the ISO mode to the Siemens mode and if the Siemens mode uses a function which requires a fine offset (e.g. G58, G59), $MN_MM_FRAME_FINE_TRANS must re­main ”1”.
G54.1 Pxx is provided as an alternative notation to G54 Pxx. The functionality is identical. With G54.1 the P address must always be programmed in the block. If P is not programmed, alarm 12080 (syntax error) is produced.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-29
Page 30
Programming
2.2 G commands
Display of extended zero offset G54 Pxx
Previously, it was not possible to program G54.1 P.. in ISO dialect T . G code group 14 in ISO dialect T has now been extended with G code G54.1 and G54.1 is now displayed by default if P is programmed.
Previously, when programming G54 Pxx or G54.1 Pxx, G54.1 was displayed in the G code display in ISO dialect M.
MD $MC_EXTERN_FUNCTION_MASK bit 11 can now be used to activate the display of the programmed P after the point in the G code display.
03.07
Programmed
G54 P1 Display G54P1 G54.1
G54 P28 Display G54P28 G54.1
G54.1 P28 Display G54P28 G54.1
G54 P48 Display G54P48 G54.1
G54.1 P48 Display G54P48 G54.1

2.2.6 Writing a zero offset with G10

G10 can be used from the parts program to write the zero offsets.
G10 L2 P1...P6 X.. Y.. ; G54.. G59 G10 L20 P1...P100 ; Additional, settable ZO G10 L2 P0 External ZO extOffset
These zero offsets are mapped onto the same frames as the zero offsets that already exist in ISO Dialect M.
Note
Bit 11 = 1 Bit 11 = 0
2-30
There are no additional zero offsets with the 802D sl.
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 31
03.07
Programming
2.2 G commands
Note
For uncoupling the frames between the Siemens and the ISO modes (solution line), see Section 2.2.5.
The G10 command is extended for ISO dialect T:
Writing of system data G10 Pxx X Y Z ;writing of tool offset data
Depending on machine data $MC_EXTERN_FUNCTION_MASK, bit1, G10 Pxx is used to write either tool geometry or tool wear.
$MC_EXTERN_FUNCTION_MASK, bit1 = 0:
P > 100 write geometry values P < 100 write wear values
$MC_EXTERN_FUNCTION_MASK, bit 1=1:
P > 10000 write geometry values P < 10000 write wear values

2.2.7 Decimal point programming

There are two notations for the interpretation of programming values without a decimal point in ISO Dialect mode:
S Pocket calculator type notation
Values without decimal points are interpreted as mm, inch or degrees.
S Standard notation
Values without decimal points are multiplied by a conversion factor.
The setting is defined by MD 10884, see Chapter 4 “Startup”.
There are two different conversion factors, IS-B and IS-C. This evaluation refers to addresses X Y Z U V W A B C I J K Q R and F.
Example of linear axis in mm: X 100.5 corresponds to value with decimal point: 100.5 mm X 1000 pocket calculator type notation: 1000 mm
standard notation: IS-B: 1000* 0.001= 1 mm
IS-C: 1000* 0.0001 = 0.1 mm
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-31
Page 32
Programming
2.2 G commands
ISO dialect Milling
Table 2-4 Different conversion factors for IS-B and IS-C
Address Unit IS-B IS-C
Linear axis mm
Rotary axis deg 0.001 0.0001
F feed G94 (mm/inch per min.) mm
F feed G95 (mm/inch per min.) mm
F thread pitch mm
C chamfer mm
R radius, G10 toolcorr mm
Q mm
I, J, K interpolation parameters mm
G04 X or U s 0.001 0.001
A contour angle deg 0.001 0.0001
G74, G84 thread drilling cycles $MC_EXTERN_FUNCTION_MASK Bit8 = 0 F feedrate like G94, G95 Bit8 = 1 F thread pitch
inch
inch
inch
inch
inch
inch
inch
inch
0.001
0.0001
1
0.01
0.01
0.0001
0.01
0.0001
0.001
0.0001
0.001
0.0001
0.001
0.0001
0.001
0.0001
03.07
0.0001
0.00001
1
0.01
0.01
0.0001
0.01
0.0001
0.0001
0.00001
0.0001
0.00001
0.0001
0.00001
0.0001
0.00001
ISO dialect Turning
Table 2-5 Different conversion factors for IS-B and IS-C
Address Unit IS-B IS-C
Linear axis mm
Rotary axis deg 0.001 0.0001
F feed G94 (mm/inch per min.) mm
F feed G95 (mm/inch per rev) $MC_EXTERN_FUNCTION_MASK
Bit8 = 0 mm
Bit8 = 1 mm
F thread pitch mm
C chamfer mm
R radius, G10 toolcorr mm
inch
inch
inch
inch
inch
inch
inch
0.001
0.0001
1
0.01
0.01
0.0001
0.0001
0.000001
0.0001
0.000001
0.001
0.0001
0.001
0.0001
0.0001
0.00001
1
0.01
0.01
0.0001
0.0001
0.000001
0.0001
0.000001
0.0001
0.00001
0.0001
0.00001
2-32
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 33
03.07
Programming
2.2 G commands
Table 2-5 Different conversion factors for IS-B and IS-C
Address IS-CIS-BUnit
I, J, K interpolation parameters mm
inch
G04 X or U 0.001 0.001
A contour angle 0.001 0.0001
G76, G78 thread drilling cycles $MC_EXTERN_FUNCTION_MASK Bit8 = 0 F feedrate like G94, G95 Bit8 = 1 F thread pitch
G84, G88 thread drilling cycles $MC_EXTERN_FUNCTION_MASK
Bit9 = 0 G95 F mm
inch
Bit8 = 1 G95 F mm
inch
0.001
0.0001
0.01
0.0001
0.0001
0.000001
0.0001
0.00001
0.01
0.0001
0.0001
0.000001

2.2.8 Rapid lift with G10.6

G10.6 <AxisPosition> is used to activate a retraction position for the rapid lifting of a tool (e.g., in the event of a tool break). The retraction motion itself is started with a digital signal. The second NC fast input is used as the start signal. Machine data $MN_EXTERN_INTERRUPT_NUM_RETRAC is used to select a different fast input (1 -- 8).
In Siemens mode, the activation of the retraction motion comprises a number of part program commands.
N10 G10.6 X19.5 Y33.3
generates internally in the NCK
N10 SETINT (2) PRIO=1 CYCLE3106 LIFTFAST ; Activate interrupt input N30 LFPOS ; Select lift mode N40 POLF[X]=19.5 POLF[Y]=33.3 ; Program lift positions
N70 POLFMASK(X, Y) ; Activate retraction
G10.6 is used to group these part program commands internally in a command set.
In order to activate an interrupt input (SETINT(2)), an interrupt program (ASUP) must also be defined. If one has not been programmed, the part program will not be able to continue as it will be interrupted with a reset alarm once the retraction motion is complete. The interrupt program (ASUP) CYCLE3106.spf is always used for fast retraction with G10.6. If the part program memory does not contain program CYCLE3106.spf, alarm 14011 “Program CYCLE3106 not available or not enabled for processing” is output in a part program set with G10.6.
; for x19.5 and y33.3
;ofxandyaxis
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-33
Page 34
Programming
2.2 G commands
The behavior of the control following fast retraction is specified in ASUP CYCLE3106.spf. If the axes and spindle are to be stopped following fast retraction, M0 and M5 must be programmed accordingly in CYCLE3106.spf. If CYCLE3106.spf is a dummy program, which only contains M17, the part program will continue uninterrupted following fast retraction.
If G10.6 <AxisPosition> is programmed to activate fast retraction, when the input signal of the second NC fast input changes from 0 to 1, the motion currently in progress is interrupted and the position programmed in set G10.6 is approached at rapid traverse. The positions are approached absolutely or incrementally according to the program settings in set G10.6.
The function is deactivated with G10.6 (without positional data). Fast retraction by means of the input signal of the second NC fast input is disabled.
Siemens
To some extent, the fast retraction function with G10.6 can be achieved using function POLF[<AxisName>] = <RetractionPosition>. This function will also retract the tool to the programmed position. However, it does not support the remainder of the ISO dialect original functionality. If the interrupt point cannot be approached directly, obstructions must be bypassed manually.
03.07
Restrictions
References: /PGA/, Programming Guide Advanced,
Chapter “Extended Stop and Retract”
Only one axis can be programmed for fast retraction.
2-34
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 35
03.07

2.2.9 Multiple threads with G33

Syntax G33 X.. Z.. F.. Q.. is used to program multiple threads in ISO dialect T and M mode, whereby:
X.. Z.. = Thread end position F.. = Lead Q.. = Initial angle
Threads with offset slides are programmed by entering starting points, which are offset from one another, in set G33. The starting point offset is entered at address “Q” as an absolute angular position. The corresponding setting data ($SD_THREAD_START_ANGLE) is changed accordingly.
Example: Q45000 means: Start offset 45.000 degrees
Range of values: 0.0000 to 359.999 degrees
The initial angle must always be programmed as an integer value. The input resolution for angular data is 0.001 degrees.
Programming
2.2 G commands
Example:
N200 X50 Z80 G01 F.8 G95 S500 M3
N300 G33 Z40 F2 Q180000
This produces a thread with a lead of 2 mm and a starting point offset of 180 degrees.

2.2.10 Threads with variable lead (G34)

Syntax G34 X.. Z.. F.. K.. is used to program threads with variable lead in ISO dialect T and M mode, whereby
X.. Z.. = Thread end position F.. = Lead K.. = Lead increase (positive value)/
lead decrease (negative value)
G34 is used to increment or decrement the lead by the value programmed at address K on each spindle revolution.
Example:
N200 X50 Z80 G01 F.8 G95 S500 M3
N300 G91 G34 Z25.5 F2 K0.1
The programmed distance of 25.5 mm corresponds to 10 spindle revolutions.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-35
Page 36
Programming
2.2 G commands

2.2.11 Dwell time in spindle revolutions G04

MD 20734: $MC_EXTERN_FUNCTION_MASK, bit 2 defines how the programmed dwell time will be interpreted in a G04 block. The hold time can be programmed using G04 X U or P .
Bit 2 =0: Dwell time is always interpreted in [s]. Bit 2 =1: If G95 is active, dwell time is interpreted in spindle
revolutions.
In the case of standard notation, X and U values without a decimal point are converted into internal units depending on IS-B or IS-C. P is always interpreted in internal units.
Example:
N5 G95 G04 X1000 Standard notation 1000 * 0.001 = 1 spindle revolution
pocket calculator notation: 1000 spindle revolutions
03.07

2.2.12 Scaling and mirroring: G51, G51.1 (ISO Dialect M)

G51 selects scaling and mirroring, G51.1. There are two scaling modes:
S Axial scaling with parameters I, J, K
If I, J, K is not programmed in the G51 block, the default value from the setting data is effective. Negative axial scaling factors have the additional effect of mirroring.
S Scaling in all axes with scale factor P
If P is not programmed in the G51 block, the default value from the setting data is effective. Negative P values are not possible. The scale factors are multiplied by either 0.001 or 0.00001.
Note
If a factor other than “1” is programmed for parameters I, J, K or if the address is missing (default value is active for I, J, K), the contour is also scaled.
Example
2-36
00512 (parts program) N10 G17 G90 G00 X0 Y0 Approach start position
N30 G90 G01 G94 F6000 N32 M98 P0513 1) Contour programmed as in the
subprogram
N34 G51 X0. Y0. I-1000 J1000 2) Mirror contour around X
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 37
03.07
Programming
2.2 G commands
N36 M98 P0513 N38 G51 X0. Y0. I-1000 J-1000 3) Mirror contour around X and Y
N40 M98 P0513 N42 G51 X0. Y0. I1000 J-1000 4) Mirror contour around Y
N44 M98 P0513 N46 G50 Deselect scaling and mirroring
N50 G00 X0 Y0
N60 M30
00513 (subprogram)
N10 G90 X10. Y10.
N20 X50
N30 Y50
N40 X10. Y10.
N50 M99
50
10
0
-- 1 0
-- 5 0
-- 5 0 -- 1 0
Fig. 2-3 Scaling and mirroring
2)
3)
Starting point
0
10
1)
4)
50
System parameter settings for the scaling and mirroring example:
MD 22910 $MC_WEIGHTING_FACTOR_FOR_SCALE = 0 MD 22914 $MC_AXES_SCALE_ENABLE = 1 MD 10884 $MN_EXTERN_FLOATINGPOINT_PROG = 0 MD 10886 $MN_EXTERN_INCREMENT_SYSTEM = 0
Axial scaling is not possible when MD $MC_AXES_SCALE_ENABLE = 0.
The reference point during scaling is always the workpiece zero; it is not possible to program a reference point.
Mirroring
G51.1 selects mirroring. Mirroring is performed around a mirror axis that runs parallel to X, Y or Z and whose position is programmed with X, Y or Z. G51.1 X0 is used to mirror about the X axis and G51.1 X10 is used to mirror about an axis that runs parallel to the X axis at a distance of 10 mm.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-37
Page 38
Programming
2.2 G commands
All axes in the channel and not just the geometry axes can be mirrored. G51.1 functions additively, i.e. following N5 G51.1 X10 and N10 G51.1 Y10, mirroring in X and V is active.
Example: G51.1 X80. Mirroring is performed around a mirror axis that runs parallel to Y and that crosses the X axis at position 80.
03.07
Y
Mirrored
G51.1 X80
60
Fig. 2-4 Mirroring around a mirror axis parallel to Y
80
Original
100
X
If the standard notation is active (see Subsection 2.2.7), the axis positions without a decimal point are interpreted in internal units.
Mirroring is deselected with G50.1 X0 Y0. It can also be deselected for individual axes. Following G50.1 X0, mirroring is only deselected for the X axis; mirroring around all other axes remains active.
G51.1 and G50.1 must be in a block of their own. G51.1 is mapped onto channel-specific base frame [1]. For this purpose, MD 28081 $MC_MM_NUM_BASE_FRAMES >=2 must be set. When base frame[1] is changed in Siemens mode, it directly affects the function in ISO mode. If the frame is deleted in every frame component, this corresponds to a G50.1 X0 Y0.. in all axes.
2-38
G51.1 is deselected on a Reset.
Note
For uncoupling the frames between the Siemens and the ISO modes (solution line), see Section 2.2.5.
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 39
03.07

2.2.13 G60: Oriented positionin g

Does not work with SINUMERIK 802D sl.
G60 is used in the ISO dialect original for backlash compensation. With Sinumerik, it is achieved using the internal backlash compensation; therefore, there is no G function in the Siemens mode, which corresponds to G60 in the ISO dialect origi­nal.
It is not possible to replace G60 by a G macro call, since it is not possible to ex­ecute two subroutine calls in one NC block. Since the oriented positioning (back­lash) must be performed before executing the NC block, the call of a G macro at the end of the block would be too late.
Since G60 is used for backlash compensation and this function can be activated via the axial machine data $MA_BACKLASH[ ], G60 is skipped in the ISO mode without triggering a reaction.
If the programmed G60 is to be taken into account when running envelope cycles, this information is provided to the cycle variable $C_G60_PROG. If G60 is pro­grammed, $C_G60_PROG = 1 is set; $C_G60_PROG is canceled with return to the subroutine. If you require, in addition, the information in a block whether the cycle call is also programmed, you can take this information from the cycle variable $C_G_PROG. The information from these two system variables can be used to add a G60 functionality to the envelope cycles. The information whether a modal cycle is active can also be obtained from the system variable $P_MC ($P_MC = 1
--> a modal subroutine is active).
Programming
2.2 G commands
$C_G60_PROG is only set to ”1” if G60 is programmed in an NC block such as if G60 were a modal G function.
Example:
N32 G00 X0. Y0. Z0. R0. N33 G60 X11.8407 Y2.4418 ;$C_G60_PROG = 1, $C_G_PROG = 0, $P_MC = 0
N34 G60 G83 X11.8407 Y2.4418 Z-6.9051 R-5.9 Q0.25F8
;$C_G60_PROG = 1, ;$C_G_PROG = 1, $P_MC = 1
N35 G60 X9.3969 Y2.6099 ;$C_G60_PROG = 1, $C_G_PROG = 0, $P_MC = 1 N36 X6.4128 Y2.4511 ;$C_G60_PROG = 0, $C_G_PROG = 0, $P_MC = 1 N37 G60 X4.0368 Y2.3131 ;$C_G60_PROG = 1, $C_G_PROG = 0, $P_MC = 1 N38 G60 X1.3995 Y2.5461 :$C_G60_PROG = 1, $C_G_PROG = 0, $P_MC = 1 N39 G80 ;$C_G60_PROG = 0, $C_G_PROG = 0, $P_MC = 0
cycle383m.spf
PROG CYCLE383M
....
$C_G60_PROG == 1
IF
;G60 functionality
ENDIF
;Continue with the envelope cycle functionality
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-39
Page 40
Programming
2.2 G commands

2.2.14 2D/3D rotation G68 / G69 (ISO Dialect M)

Does not work with SINUMERIK 802D sl.
2D rotation
The coordinate system is rotated about the vertical axis of the selected plane.
Programming
G68 X.. Y.. R..
X.. Y ..: Coordinates of the pivot point related to the current
workpiece zero. If a coordinate is not programmed, the pivot point is taken from the actual value memory. The value is always interpreted as an absolute value.
R: The angle of rotation is interpreted as an absolute or
incremental value depending on G90/G91. If an angle is not programmed, the angle from setting data $SA_DEFAUL T_ROT_FACTOR_R is active. G68mustbeinablockofitsown.
03.07
G69 Rotation Off; Additional codes can be programmed
G68 is mapped onto channel-specific base frame 2. For this purpose, machine data MD 28081: $MC_MM_NUM_BASE_FRAMES >= 3 must be set.
A programmed angle R is not entered in setting data 42150: $SA_DEFAULT_ROT_FACTOR_R. This setting data can only be written manually and is effective provided that no R has been programmed in the G68 block.
Note
For uncoupling the frames between the Siemens and the ISO modes (solution line), see Section 2.2.5.
3D rotation
G code G68 has been expanded for 3D rotation.
Programming
in this block.
2-40
G68 X.. Y.. Z.. I.. J.. K.. R..
X.. Y .. Z..: Coordinates of the pivot point related to the current
workpiece zero. If a coordinate is not programmed the pivot point is at the workpiece zero. The value is always interpreted as an absolute value. The coordinates of the pivot point act like a zero offset. A G90/91 in the block has no effect
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 41
03.07
Programming
2.2 G commands
on the G68 command.
I.. J.. K..: Vector in the pivot point. The coordinate system is rotated
about this vector by the angle R.
R: Angle of rotation, always interpreted as an absolute value.
If an angle is not programmed, the angle from setting data 42150 $SA_DEFAULT_ROT_FACTOR_R is active. G68mustbeinablockofitsown.
The distinction between 2D and 3D rotation is determined solely by programming the vector I, J, K. If no vector exists in the block, G68 2DRot is selected. If a vector exists in the block, G68 3DRot is selected.
If a vector of length 0 (I0, Y0, K0) is programmed, the alarm 12560 “Programmed value lies outside the permissible limits” is output.
With G68, two rotations can be connected in series. If a G68 is not already active in a block containing G68, the rotation is written into channel-specific base frame 2. If G68 is already active, the rotation is written in channel-specific base frame 3. This means that both rotations are activated in sequence.
Note
For uncoupling the frames between the Siemens and the ISO modes (solution line), see Section 2.2.5.
With G69, 3D rotation is terminated. If two rotations are active, they are both deactivated with G69. G69 does not have to be in a block of its own.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-41
Page 42
Programming
2.2 G commands

2.2.15 Double-slide or double-turret machining G68 / G69

Does not work with SINUMERIK 802D sl.
Function G68/G69 is used to control the two-sided machining of turned parts (both machining with a double slide in two channels and machining in one channel with two tools with a fixed connection at a distance x).
MD $MN_EXTERN_DOUBLE_TURRET_ON is used to define whether machining in the two channels is synchronized (= FALSE) or if one of two fixed-connection tools is used alternately for machining (= TRUE).
On fixed-connection tools, G68 is used to activate the distance x entered in MD 42162: $SC_EXTERN_DOUBLE_TURRET_DIST as an additive zero offset in the X axis. As the second tool machines the opposite side of the turned part, G68 also activates mirroring about the Z axis (directional reversal of the X axis). The next set with axis motions activates the zero offset and mirroring for the second tool.
G69 disables zero offset and machining continues with the first tool.
G68 and G69 must only be programmed in the set.
03.07
The sign of the offset must be taken into account for tool length offset in the X axis for the second tool. The sign must be entered as if the X axis was not mirrored or setting data $SC_MIRROR_TOOL_LENGTH (mirror tool length offset) and $SC_MIRROR_TOOL_WEAR (mirror tool length offset wear values) must be set.
Machine data $MN_MIRROR_REF_AX must = 0 or = 1 in order to always mirror the X or first axis.
Programming G68 when G68 is already active will read over the G function. The same is true of G69.
2-42
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 43
03.07
2.2 G commands
Double-turret head: $MN_EXTERN_DOUBLE_TURRET_ON = TRUE
The example below illustrates machining with two fixed-connection tools. In order for the function to be effective, machine data $MN_EXTERN_ DOUBLE_TURRET_ON must be set to TRUE.
If setting data 42162: $SC_EXTERN_DOUBLE_TURRET_DIST = 0, alarm “12728 Distance for double turret not set” will be output.
Programming
120
Tool offset
ToolT1
80 φ
Tool offset
ToolT2
X
60
180
120 φ
Fig. 2-5 Machining with 2 fixed-connection tools
Example:
φ
40
220
Z
N100 X40. Z180. G1 F1 G95 S1000 M3 T1
N110 G68
; Activate mirroring about Z and additive zero offset (220 mm)
N120 X80. Z120. T2
N130 G69
; Deactivate mirroring and additive zero offset
N140 X120. Z60 T1
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-43
Page 44
Programming
2.2 G commands
Double-slide machining: $MN_EXTERN_DOUBLE_TURRET_ON = FALSE
Setting $MN_EXTERN_DOUBLE_TURRET_ON to FALSE activates channel synchronization with G68. If G68 is programmed in one channel, machining will cease until G68 is detected in the second channel. This function is used to synchronize the first and second channels. No other synchronizations are performed. In order for both tools to be synchronized during subsequent machining, the motions and feeds programmed in the two channels must be identical.
Wait mark 1 is used for G68 and wait mark 2 for G69 in order to synchronize the first 2 channels. Therefore, the first two M functions may not be used simultaneously for channel synchronization in the same part program (see Subsection 4.1.10).
G68 is only effective in the first two channels. If G68 is programmed in another channel and machine data $MN_EXTERN_DOUBLE_TURRET_ON = FALSE, G68 is read over.
The function is used to produce thin turned parts. The two tools should therefore execute the same motion on the respective opposite side of the turned part, mirroring about the Z axis. For this purpose, the same traversing motions and feeds must be programmed in both channels.
03.07
Example of synchronous machining with two channels.
X
Tool channel 1
40
φ
10
15
Tool channel 2
Fig. 2-6 Synchronous machining with 2 channels
Example: Channel 1:
N10 ....
-“-
N1000 G68
N1010 G01 X30 Z120 G95 F1.2 S1000 M3
; Start synchronization
40
30
Z
φ
2-44
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 45
03.07
Programming
2.2 G commands
N1020 X15 Z80
N1030 Z65
N1040 Z25 X40
N1050 G69
; Synchronization OFF
Channel 2:
N10 .....
-“-
N2000 G68
N2010 X30 Z120 G01 G95 F1.2 S1000 M3
N2020 X15 Z80
N2030 Z65
N2040 X40 Z25
N2050 G69
; Start synchronization
; Synchronization OFF
In ISO dialect original, channel synchronization will also be performed if G68 is active.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-45
Page 46
Programming
2.2 G commands

2.2.16 Polar coordinates: G15 (ISO Dialect M)

In ISO Dialect mode, NC program sections programmed with polar coordinates must commence with start command G16. Until the end command G15 is reached, the coordinates of the end points are interpreted as the polar coordinate values for radius and angle in the current plane.
The first axis of the plane is the polar radius, the second axis is the polar angle, i.e. X is the radius and Y is the angle for G17.
After G16 a new pole is set in each block up to G15, with the result as follows for G17:
S G90 X The pole is at the workpiece zero
S G91 X The pole is at the current position
S No X in the block The pole is at the workpiece zero
If the pole is moved from the current position to the workpiece zero, the radius is calculated as the distance from the current position to the workpiece zero.
03.07
Example:
G1 F200 feed
N5 G17 G90 X0 Y0
N10 G16 X100. Y45.
N15 G91 X100 G90 Y0 Pole is the current position, position X 170,711
N20 Y90. No X in block, pole is at workpiece zero,
The polar radius is always traversed as an absolute distance; the polar angle can be interpreted as an absolute or incremental value.
Programmed angle
In the case of active polar coordinate programming, the programmed angle can be read via the system variable $P_AP. This variable is inserted in the shell cycle. Before the new pole is set, with incremental programming, the angle must be stored because the angle will be deleted.
Polar programming is terminated by G15. The polar radius is set to 0.
Polar coordinates ON, pole is the workpiece zero, Position X 70,711 Y 70,711 in the Cartesian coordinate system
Y 70,711
Radius = SORT(X*X +Y*Y) = 184,776
2-46
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 47
03.07
Programming
2.2 G commands

2.2.17 Polar coordinate interpolation G12.1 / G13.1 (G112/G113)

G12.1 and G13.1 are used to switch on and switch off an interpolation in the processing level between an axis of rotation and a linear axis. A second linear axis passes vertically through this plane. This function corresponds to the Transmit function in Siemens mode. In Siemens mode, two Transmit transformations can be parameterized. For G12.1 the first TRANSMIT data block is always the one which must correspond to the second transformation record.
Note
For a detailed description of the TRANSMIT function please refer to the following documentation:
/FB2/ Description of Functions, Extended Functions, Chapter M1 and
/PGA/ Programming Guide, Advanced, Chapter “Transformations”
Example:
N204
N205
N206
Fig. 2-7 Example of polar coordinate interpolation
N203
N208
N207
Rotary axis C
N201
N202
N200
X axis
Z axis
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-47
Page 48
Programming
2.2 G commands
00001
N010 T0101
N0100 G90 G00 X60.0 C0 Z..
N0200 G12.1
N0201 G42 G01 X20.0 F1000
N0202 C10.0 ;
N0203 G03 X10.0 C20.0 R10.0
N0204 G01 X-20.0
N0205 C-10.0
N0206 G03 X-10.0 C-20.0 I10.0 J0
N0207 G01 X20.0
N0208 C0
N0209 G40 X60.0
N0210 G13.1
N0300 Z..
N0400 X.. C..
N0900 M30
03.07
;TRANSMIT selection
;TRANSMIT deselection
Note
Geo axis exchange (parallel axes with G17 (G18, G19)) must not be active.

2.2.18 Cylindrical in terpolation G07.1 (G107)

Function G07.1 (cylindrical interpolation) can be used to mill any kind of grooving on cylindrical bodies. The path of the grooving is programmed by reference to the developed, level surface of the cylinder barrel. Cylindrical interpolation is started in function G07.1 by specifying the cylindrical radius G07.1 C<cylindrical radius> and ended with G07.1 C0 (radius = 0).
Note
The function is mapped internally onto the Siemens functionality TRACYL. In ISO Dialect mode, G07.1 always activates the first TRACYL transformation and the first transformation record. The second TRACYL function cannot be activated in ISO Dialect mode. For a detailed description and the parameter setting for the first TRACYL function, please refer to the following documentation:
/FB2/ Description of Functions, Extended Functions, Chapter M1 and
2-48
/PGA/ Programming Guide, Advanced, Chapter “Transformations”
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 49
03.07
Restrictions
Example
Programming
2.2 G commands
In Siemens mode the axis of rotation for cylindrical interpolation must be defined in machine data. In ISO Dialect mode the axis of rotation for cylindrical interpolation is defined by
programming G07.1 <axis of rotation>... .
C
Radius
Z
Z
mm
N05
120
N10
90
70 50
0
30
Fig. 2-8 Example of cylindrical interpolation G07.1
N20
N30
60 70
N40
N50
150
Programming example in ISO Dialect mode:
%0001
N05 G00 G90 Z100.0 C0
N10 G01 G91 G18 Z0 C0
N20 G07.1 C57299
;Select cylindrical interpolation with radius
; 57.299 mm
N30 G90 G01 G42 Z120.0 D01 F250
N40 C30.0
N60
N70
N80
Degr.
230190
270
360
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-49
Page 50
Programming
2.2 G commands
N50 G02 Z90.0 C60.0 R30.0
N60 G01 Z70.0
N70 G03 Z60.0 C70.0 R10.0
N80 G01 C150.0
N90 G03 Z70.0 C190.0 R75.0
N100 G01 Z110.0 C230.0
N110 G02 Z120.0 C270.0 R75.0
N120 G01 C360.0
N130 G40 Z100.0
N140 G07.1 C0 N150 M30 ;
Programming example in Siemens mode: The Y axis is assigned to the axis of rotation as a linear axis.
%0001
N05 G00 G90 Z100 C0
N10 G01 G91 G18 Z0 C0;
N20 TRACYL(114.598)
N30 G90 G01 G42 Z120 D01 F250
N40 Y30
N50 G02 Z90 Y60 RND=30
N60 G01 Z70
N70 G03 Z60.0 Y70 RND=10
N80 G01 Y150
N90 G03 Z70 Y190 RND=75
N100 G01 Z110 Y230
N110 G02 Z120 Y270 RND=75
N120 G01 Y360
N130 G40 Z100
N140 TRAFOOF N150 M30 ;
03.07
;Deselect cylindrical interpolation
;Select cylindrical interpolation with
; radius 57.299 mm
;Deselect cylindrical interpolation

2.2.19 Interrupt program with M96 / M97 (ASUB)

M96
A subprogram can be defined as an interrupt routine with M96 P <program number>.
This program is started by an external signal. The first high-speed NC input of the 8 inputs available in Siemens mode is always used to start the interrupt routine. Machine data $MN_EXTERN_INTERRUPT_NUM_ASUP lets you select an other fast input (1 -- 8).
The function is mapped onto standard syntax: SETINT(x) <CYCLE396> [PRIO=1].
2-50
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 51
03.07
M97
Programming
2.2 G commands
In shell cycle CYCLE396, the interrupt program programmed with Pxxxx is called in ISO mode. The program number is in $C_PI. At the end of the shell cycle, machine data 10808: $MN_EXTERN_INTERRUPT_BITS_M96 BIT1 is evaluated, resulting either in positioning at the interruption point with REPOSA or in continuation with the next block. The new cycle variable $C_PI contains the value programmed with “P” without leading zeroes. These must be added to fill out to four digits in the shell cycle before the subprogram is called.
Example: N0020 M96 P5
Call in shell cycle progName = “000” << $C_PI ISOCALLprogName
See treatment of 8-digit program numbers, if MD $MC_EXTERN_FUNCTION_MASK, bit 6 is set.
M97 is used to suppress starting of the interrupt routine. The interrupt routine can then only be started by the external signal following activation with M96.
This corresponds to Standard syntax: ENABLE(x).
x = content of $MN_EXTERN_INTERRUPT_NUM_ASUP
If the interrupt program programmed with M96 Pxx is called up directly with the interrupt signal (without the intermediate step with CYCLE396), machine data 20734: $MC_EXTERN_FUNCTION_MASK BIT10 must be set. The subprogram programmed with Pxx is then called on a 0 --> 1 signal transition in Siemens mode.
The M function numbers for the interrupt function are set via machine data. With machine data 10804: $MN_EXTERN_M_NO_SET_INT , the M number is used to activate an interrupt routine and with MD 10806: $MN_EXTERN_M_NO_DISABLE_INT the M number is used to suppress an interrupt routine.
Only non-standard M functions are permitted to be set. M functions M96 and M97 are set as defaults. To activate the function, bit 0 must be set in machine data 10808: $MN_EXTERN_INTERRUPT_BITS_M96. These M functions will not be output to the PLC in this case. If bit 0 is not set, the M functions will be interpreted as conventional auxiliary functions.
On completion of the “Interrupt” program, the end position of the parts program block that follows the interruption block is approached. If processing of the parts program has to continue starting from the interruption point, there must be a REPOS instruction at the end of the “Interrupt” program, e.g. REPOSA. For this purpose the interrupt program must be written in Siemens mode.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-51
Page 52
Programming
2.2 G commands
The M functions for activating and deactivating an interrupt program must be in a block of their own. If further addresses other than “M” and “P” are programmed in the block, alarm 12080 (syntax error) is output.
Note about machining cycles
For ISO dialect original, you can set whether a machining cycle will be interrupted by an interrupt routine immediately or not until the end. The shell cycles must evaluate machine data 10808: $MN_INTERRUPT_BITS_M96 bit 3 for that purpose. If bit=1, the interrupt must be disabled at the beginning of the cycle with DISABLE(1) and reactivated at the end of the cycle with ENABLE(1) to avoid interrupting the machining cycle. Because the interrupt program is only started on a 0/1 signal transition, the interrupt input must be monitored with a disabled interrupt during the cycle runtime with a synchronized action in the shell cycle. If the interrupt signal switches from 0 to 1, the interrupt signal after the ENABLE(1) must be set once again at the end of the shell cycle, so that the interrupt program will then start. To permit writing to the interrupt input in the shell cycle, the machine data 10361: $MN_FASTO_DIG_SHORT_CIRCUIT[1] must be parameterized.
03.07
Machine data
MD $MN_EXTERN_INTERRUPT_BITS_M96:
Bit 0: = 0: Interrupt program is not possible, M96/M97 are conventional
Bit 1: = 0: Execution of parts program continues from the final position
Bit 2: = 0: The interrupt signal interrupts the current block immediately and
Bit 3: = 0: The machining cycle is interrupted on an interrupt signal
Bit 3 must be evaluated in the shell cycles and the cycle sequence must be adapted accordingly.
M functions
= 1: Activation of an interrupt program with M96/M97 permitted
of the next block after the interruption block
= 1: Continue parts program as from interruption position
(evaluated in interrupt program (ASUB), return with/without REPOSL)
starts the interrupt routine
= 1: The interrupt routine is not started until the block has been
completed.
= 1: The interrupt program is not started until the machining cycle
has been completed.
(evaluated in the shell cycles)
2-52
Bit 1 must be evaluated in the interrupt program. If bit 1 = TRUE, on completion of the program, REPOSL must be used to reposition at the interruption point.
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 53
03.07
Example:
N1000 M96 P1234 ; Activate ASUB 1234.spf in the case of a rising
“ “
N3000 M97 ; Deactivate the ASUB
Rapid lifting (LIFTFAST) is not performed before the interrupt program is called. On the rising flank of the interrupt signal, depending on machine data MD 10808: $MN_EXTERN_INTERRUPT_BITS_M96, the interrupt program is started immediately.
Limitations in Siemens mode
The interrupt routine is handled like a conventional subprogram. This means that in order to execute the interrupt routine, at least one subprogram level must be free. (12 program levels are available in Siemens mode, there are 5 in ISO Dialect mode.)
Programming
2.2 G commands
; edge on the first high-speed input, program 1234.spf ; is activated
The interrupt routine is only started on a signal transition of the interrupt signal from 0 to 1. If the interrupt signal remains permanently set to 1, the interrupt routine will not be restarted.
Limitations in ISO Dialect mode
One program level is reserved for the interrupt routine so that all permissible program levels can be reserved before the interrupt program is called.
Depending on the machine data, the interrupt program will also be started when the signal is permanently on.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-53
Page 54
Programming
2.2 G commands

2.2.20 Comments

In ISO dialect mode, round brackets are interpreted as comment characters. In Siemens mode, “;” is interpreted as a comment. To simplify matters, “;” is also interpreted as a comment in ISO dialect model. If the comment start character “(” is used again within a comment, the comment will not be terminated until all open brackets have been closed again.
Example:
N5 (comment) X100 Y100 N10 (comment(comment)) X100 Y100 N15 (comment(comment) X100) Y100
In blocks N5 and N10 X100 Y100 is executed, in block N15 only Y100, as the first bracket is closed only after X100. Everything up to this position is interpreted as a comment.
03.07

2.2.21 Block skip

The skip character “/” can be anywhere within the block, even in the middle. If the programmed skip level is active at the moment of compiling, the block will not be compiled from this position to the end of the block. An active skip level therefore has the same effect as an end of block.
Example:
N5 G00 X100. /3 YY100 ----> Alarm 12080, N5 G00 X100. /3 YY100 ----> No alarm when skip level 3 is active
Skip characters within a comment are not interpreted as skip characters.
Example:
N5 G00 X100. ( /3 part1 ) Y100 ;even when skip level 3 is active, the
The skip level can be /1 to /9. Skip values <1 >9 give rise to alarm 14060 The function is mapped onto the existing Siemens skip levels. In contrast to ISO Dialect Original, / and /1 are separate skip levels and therefore have to be activated separately.
;Y axis will be traversed
2-54
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 55
03.07

2.2.22 Auxiliary function output

M
ISO Dialect mode
M functions are output to the PLC as auxiliary functions. Only M98 and M99 are exceptions. All other predefined M functions are transferred to the PLC as auxiliary functions. The following are predefined M functions: M17, M40, M41, M42, M43, M44, M45, M70, M96, M97, M98, M99.
Spindle axis changeover using M29
In ISO Dialect mode the spindle is switched to axis operation with the aid of M29. The M function number can also be set variably with machine data. MD 20095 $MC_EXTERN_RIGID_TAPPING_M_NR is used to preset the M function number. The machine data is only effective in external language mode and is initialized with M29. It may only be assigned M function numbers which are not used as default M functions. M function numbers M0-M5, M30, M98, M99 are not allowed. The same function is executed in Siemens mode with M70. MD 20094 $MC_SPIND_RIGID_TAPPING_M_NR is used to preset the M function number. The machine data is only effective in Siemens mode and is initialized with M70. This allows an M function other than M70 to be used for the spindle switchover in Siemens mode. The machine data may only be assigned M function numbers which are not used as default M functions. The following are not allowed: M0--M5, M17, M19, M30, M40--M45.
Programming
2.2 G commands
H
All H functions are output to the PLC as auxiliary functions with ISO Dialect M. In ISO Dialect T, G code system A, H is the incremental distance of the 4th axis provided that a 4th axis exists.
T
T functions are output to the PLC as auxiliary functions. T has the additional meaning of a tool selection.
D
Die The D function is output to the PLC as an auxiliary function. With ISO Dialect M, tool length compensation is activated with address D.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-55
Page 56
Programming
2.2 G commands
B
If B is not an axis, the B function is output to the PLC as an auxiliary function with address extension H1=. Example: B1234 is output as H1=1234.

2.2.23 Align first reference po in t : G28

CYCLE328 is called up automatically when ISO Dialect command “G28 <Axis>” is read in. <Axis> specifies the intermediate position (incremental or absolute) via which the reference point is to be approached. The intermediate position and the reference position are then approached in positioning mode.
The cycle is only valid for the axes supported by ISO Dialect:
S ISO Dialect M: X, Y , Z (A, B, C, U, V, W)
S ISO Dialect T: X, Z, Y (C)
03.07
The cycle always runs with radius programming (DIAMOF). When the cycle is terminated, the G commands that were active before the cycle was called are effective again.
Before the 1st reference point is approached, various machine data must be set, see Chapter 4 “Start-Up”.

2.2.24 Enable/disable feed-forward control using G08 P..

Does not work with SINUMERIK 802D sl.
Feed-forward control reduces speed-related overtravel during contouring to virtually nil. Traversing with feed-forward control enables higher contouring precision and thus better finished results.
Note
Machine data is used to define the type of feed-forward control and which path axes are to be traversed under pilot actuation. Default: Speed-dependent feed-forward control. Option: Acceleration-dependent feed-forward control.
Example:
2-56
N0010 G08 P1 ; Enable feed-forward control
N0020 G1 X10 Y50 F900
N0030 G1 X10 Y50 F900
N1000 G08 P0
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
; Disable feed-forward control
© Siemens AG, 2007. All rights reserved
Page 57
03.07
If G08 is programmed without “P”, alarm 12470 is produced.
To make it more convenient to use G08 P1 to activate other functions such as SOFT, BRISK etc., G08 P.. is used to call the CYCLE308.spf cycle.
G08 P1 has to be in a block of its own.

2.2.25 Compressor in ISO dialect mode

The commands COMPON, COMPCURV, COMPCAD are commands in the Siemens language and activate a compressor function grouping several linear blocks to form one machining section. It is now possible to compress linear blocks, too, in ISO dialect mode with this function, if this function is activated in Siemens mode. The blocks must consist of only the following commands:
S Block number
S G01, modal or in the block
Programming
2.2 G commands
S Axis assignments
S Feedrate
S Comments
If a block contains other commands (e.g. aux. functions, other G codes, etc.), compression is not performed. Value assignments with $x for G, axes, and feedrate are possible, as is the Skip function.
Example: These blocks are compressed
N5 G290
N10 COMPON
N15 G291
N20 G01 X100. Y100. F1000
N25 X100 Y100 F$3
N30 X$3 /1 Y100
N35 X100 (axis 1)
These blocks are not compressed
N5 G290
N10 COMPON
N20 G291
N25 G01 X100 G17 ;G17
N30 X100 M22 ;aux. function in the block
N35 X100 S200 ;spindle speed in the block
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-57
Page 58
Programming
2.2 G commands

2.2.26 Automatic corner override G62

At inside corners with active tool radius compensation it is often better to reduce the feedrate.
G62 only acts at inside corners with active tool radius compensation and active continuous-path operation. It only takes account of corners whose inside angle is smaller than $SC_CORNER_SLOWDOWN_CRIT. The inside angle is determined from the bend in the contour.
The feedrate is reduced by factor $SC_CORNER_SLOWDOWN_OVR:
traveled feedrate = F * $SC_CORNER_SLOWDOWN_OVR * feedrate override.
The feedrate override is now composed of the multiplied feedrate override from the machine control panel and the override from synchronized actions.
The feedrate reduction is started at distance 42520: $SC_CORNER_SLOWDOWN_START before the corner. It ends at distance 42522: $SC_CORNER_SLOWDOWN_END after the corner (see Fig. 2-9). An appropriate path is used at curved contours.
03.07
Y
Layer to be milled off
Tool center point path
$SC_CORNER_SLOWDOWN_START
$SC_CORNER_SLOWDOWN_END
Inside angle $SC_CORNER_SLOWDOWN_CRIT
Path velocity v
F
F * $SC_CORNER_SLOWDOWN_OVR
$SC_CORNER_SLOWDOWN_START
$SC_CORNER_SLOWDOWN_END
Workpiece
Feedrate reduction at corners
Path s
X
2-58
Fig. 2-9 Parameterization of feedrate reduction G62, example of a 90_ corner
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 59
03.07
Parameterization
The override value is set in the following setting data:
42520: $SC_CORNER_SLOWDOWN_START 42522: $SC_CORNER_SLOWDOWN_END 42524: $SC_CORNER_SLOWDOWN_OVR 42526: $SC_CORNER_SLOWDOWN_CRIT
The setting data has default value 0.
S If $SC_CORNER_SLOWDOWN_CRIT == 0, the corner deceleration will only
take effect at reversing points.
S If $SC_CORNER_SLOWDOWN_START and
$SC_CORNER_SLOWDOWN_END are equal to 0, the feedrate reduction will be approached with the permissible dynamic response.
S If $SC_CORNER_SLOWDOWN_OVR == 0, a brief stop will be inserted.
S $SC_CORNER_SLOWDOWN_CRIT refers to geometry axes with G62. It
defines the maximum inside angle in the current machining plane up to which the corner deceleration will be applied. -- G62 is not active on rapid traverse.
Programming
2.2 G commands
Activation
The function is activated with G62 or G621. The G code is activated either with the corresponding parts program command or with $MC_GCODE_RESET_VALUES[56].
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-59
Page 60
Programming
2.2 G commands
Examples
$TC_DP1[1,1]=120
$TC_DP3[1,1]=0. ;length offset vector
$TC_DP4[1,1]=0.
$TC_DP5[1,1]=0.
N1000 G0 X0 Y0 Z0 F5000 G64 SOFT
N1010 STOPRE
N1020 $SC_CORNER_SLOWDOWN_START = 5.
N1030 $SC_CORNER_SLOWDOWN_END = 8.
N1040 $SC_CORNER_SLOWDOWN_OVR = 20.
N1050 $SC_CORNER_SLOWDOWN_CRIT = 100.
N2010 X00 Y30 G90 T1 D1 G64
N2020 X40 Y0 G62 G41 ;Inside corner to N2030,
N2030 X80 Y30 ;Inside corner to N2040 127 degrees
N2040 Y70 ;Inside corner to N2050 53 degrees
N2050 X40 Y40 ;Outside corner to N2060
N2060 X20 Y70 ;Inside corner to N2070 97 degrees
N2070 X00 Y60 ;Inside corner to N2080 90 degrees
N2080 X20 Y20 ;Outside corner to N2090,
N2090 G1 X00 Y00 G40 FENDNORM
03.07
;but TRC still being selected
;irrelevant because TRC
;deselection
M30
2-60
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 61
03.07

2.3 Subprogram and macro technology

2.3 Subprogram and macro technology

2.3.1 Subprogram technology: M98

Subprogram calls
Subprogram calls are programmed with M98 in ISO Dialect. For the program syntax, see Fig. 2-10.
M98 P xxxxyyyy
Program number (max. 4 digits) Number of repetitions (max. 4 digits)
Fig. 2-10 Description of parameters allowed
Programming
The program syntax M98 Pxxxxyyyy is used to call a subprogram with the number yyyy and repeat it xxxx times. If the xxxx is not programmed, the subprogram is executed only once. The subprogram name always consists of 4 digits or is extended to 4 digits by adding 0’s. For example, if M98 P21 is programmed, the parts program memory is searched for program name 0021.spf and the subprogram is executed once. To execute the subprogram 3 times, program M98 P30021.
SW 6 upwards
Until now the number of program executions (number of repeats) has been programmed in ISO Dialect M/T in conjunction with the subprogram number at address “P”.
As an alternative, the number of subprogram executions can now also be programmed at address “L”. The number of the subprogram is still programmed as Pxxxx. If the number of executions is programmed at both addresses, the number of executions programmed at address “L” is valid. The number of subprogram executions lies between 1 and 9999.
Example:
N20 M98 P20123 ;Subprogram 123.spf will be executed twice N40 M98 P55 L4 ;Subprogram 55.spf will be executed four times N60 M98 P30077 L2 ;Subprogram 77.spf will be executed twice
;The number of executions programmed ;at address “P” =3 is ignored
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-61
Page 62
Programming
2.3 Subprogram and macro technology
Subprogram termination
M99 terminates the subprogram. If M99 Pxxxx is programmed, execution resumes at block number Nxxxx on the return jump to the main program. The block number must always begin with “N”. The system initially searches forwards for the block number (from the subprogram call towards the end of the program). If a matching block number is not found, the parts program is then scanned backwards (towards the start of the program).
If M99 appears without a block number (Pxxxx) in a subprogram, the subprogram is terminated and the processor jumps back to the main program to the block following the subprogram call.
If M99 appears without a block number (Pxxxx) in a main program, the processor jumps back to the start of the main program and runs the program again.
These M commands are not output to the PLC.
Subprogram return jump with “RET”
03.07
Valid only for ISO Dialect T.
In the Siemens shell cycles for stock removal (as in ISO Dialect), it is necessary after roughing to resume program execution in the main program after the contour definition. To achieve this, the shell cycle must contain a subprogram return jump to the block after the end of the contour definition. The RET command has been extended with two optional parameters for skipping the blocks with the contour definition in the stock removal cycles after the subprogram call (with G71--G73).
The command RET (STRING: <block number/label>) is used to resume program execution in the calling program (main program) at the block with <blocknumber/label>.
If program execution is to be resumed at the next block after <block number/label>, the 2nd parameter in the RET command must be > 0; RET ( <block number/label>, 1). If a value > 1 is programmed for the 2nd parameter, the subprogram also jumps back to the block after the block with <block number/label>.
In G70--G73 cycles, the contour to be machined is stored in the main program. The extended RET command is required in order to resume execution after the contour definition in the main program at the end of G70 (finish cut via contour with stock removal cycle). To jump to the next NC block after the contour definition at the end of the shell cycle for G70, the shell cycle must be terminated with the following return syntax:
2-62
RET (“N” << $C_Q, 1)
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 63
03.07
Example
Programming
2.3 Subprogram and macro technology
Search direction:
The search direction for <block number/label> is always forwards first (towards the end of the program) and then backwards (towards the start of the program).
N10 X10. Y20.
N20 G71 P30 Q60 U1 W1 F1000 S1500
N10 ... ;Shell cycle for stock removal cycle
N20 DEF STRING[6]BACK
N30 ...
N90 N100 RET (”N”<<$C_Q, 1) ;Return jump to block after
;contour def. -> N70
N30 X50. Z20.
N40 X60.
N50 Z55.
N60 X100. Z70.
N70 G70 P30 Q60
N80 G0 X150. Z200.
N90 M30
Note
M30 in Siemens mode: is interpreted as a return jump in a subprogram.
M30 in ISO Dialect mode: is also interpreted as the end of the parts program in a subprogram.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-63
Page 64
Programming
2.3 Subprogram and macro technology

2.3.2 Siemens language commands in ISO Dialect mode

Certain Siemens language commands are also required in ISO Dialect mode for Shopmill. These commands are executed in ISO Dialect mode. They include subprogram calls with and without passed parameters (not calls with Lxx, because address L has a different meaning for ISO Dialect), program section repetition and control structures. All other Siemens language commands are denied with an alarm in ISO Dialect mode.
The following Siemens language commands can be programmed when ISO Dialect mode is active:
REPEAT:
REPEAT <Block number> [<Block number>] [P..] REPEAT UNTIL REPEATB <Block number> [P..]
Only block numbers, not labels are allowed as start and end identifiers.
IF -- ELSE -- ENDIF FOR -- ENDFOR WHILE -- ENDWHILE IF<Condition> -- GOTO F<Condition> CASE
03.07
Modal and non-modal subprogram calls
N100 CALL “SHAFT” or N100 MCALL SHAFT or N100 SHAFT
Modal and non-modal subprogram call with parameter passing
N100 MCALL SHAFT (“ABC”; 33.5) or N100 SHAFT (“ABC”; 33.5) subprogram call specifying path N100 CALL”/_N_SPF_DIR/SHAFT or N100 MCALL/_N_SPF_DIR/SHAFT or N100 PCALL/_N_SPF_DIR/SHAFT
2-64
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 65
03.07
2.3 Subprogram and macro technology

2.3.3 Extending the subprogram call for contour preparation with CONTPRON

In ISO Dialect, the contour definition for stock removal cycles G70 -- G73 is not stored separately in a subprogram (as in SINUMERIK), but appears in the parts program (main program). When the cycles are called, the contour definition section is defined by a start and end block number. The cycles receive this block number as a passed parameter. The indirect subprogram call has been extended for Siemens adaptation cycles.
Previously, subprograms were called indirectly with CALL <program name>.
The indirect subprogram call has been extended as follows for access to the contour definition in the main program:
CALL [<program name>] BLOCK <start label> TO <end label>
If no program name or an empty string is specified as the program name, i.e. CALL BLOCK <start label> TO <end label>, the search for the program section (start/end label) is made in the program which is currently selected. The search for the labels is also performed in the selected program with MDA, ASUB etc. (i.e. in the case of MDA, the search for the labels is performed not in the MDA buffer but in the program with the selected program name). Programming this syntax directly in a main program has the same effect as repeating a program section in a loop with REPEA T <start label> <end label>, i.e. the search for the start and end label is performed in the program containing the CALL BLOCK ... command.
Programming
If a program name is specified, e.g. CALL <progName> BLOCK <start label> TO <end label>, the system searches for the program section (surrounded by the start/end label) in subprogram “progName”.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-65
Page 66
Programming
2.3 Subprogram and macro technology
Example
Nxx G71 Pxx Q1110 U.. W.. ;ISO Dialect G function calls
; _N_CYCLE395_SPF
N10 .......
.......
Nxxx CYCLE95(....., “N”<<$C_P, “N”<<$C_Q)
PROC CYCLE95(....., STRING[20] startlab, STRING[20]
N10 ........
.........
Nxxx CONTPRON(...)
N.... CALL “” BLOCK startlab TO endelab
N.... CALL BLOCK startlab TO endelab
EXECUTE(...)
........
Nxx M17
Nxxx .....
Nxxx RET (”N”<<$C_Q, 1) ;Return jump to the next block after
N1120 ....
03.07
; shell cycle CYCLE395.spf
;Stock removal cycle with additional ; parameters for start and end label
endelab)
; Read contour definition or
;call the contour program
; the contour definition
Nxxx M30
Note
The actual CONTPRON and EXECUTE calls do not have to be modified.
Search for start block number
Does not work with SINUMERIK 802D sl.
The start block number (start label) of the contour definition is always searched first toward the end of the program (forward) and then toward the start of the program (backward).
If the same block number is programmed more than once, the next block number (label) after the current block in the program in which the contour definition is contained, is recognized as the start of the contour definition (see example). The current block is usually the block in which the stock removal cycle (shell cycle) was called in the main program.
2-66
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 67
03.07
Programming
2.3 Subprogram and macro technology
Example
In stock removal cycle CYCLE395, the contour definition which appears between blocks N10 - N30 in the main program is to be used (with CALL BLOCK N10 TO N30 in CYCLE395). N40 is the current program line in the main program.
The contour definition block is printed in bold lettering in the example.
N5 G1 F500
N10 X10. Y20.
N20 X30.
N30 Y10.
N40 G71 P10 Q30...
;Call shell cycle for stock removal cycle
... ;(In the stock removal cycle ... ;“CALL BLOCK N10 TO N30” is programmed) ... ;The contour definition is found in the
;lines printed in bold
N50 G90 G54
N60 F1000 G94
N10 X50. Y10.
N20 X33. Y11.
N30 X10.
N50 ....
N.. .....
N800 G71 P10 Q30
;Call shell cycle for stock removal cycle
... ;(In the stock removal cycle, “CALL BLOCK N10 TO
;N30” is programmed) ... ;The contour definition is found in ... ;the lines printed in italics
N999 ....
N10 X15.
N20 Y25.
N30 X33.
N1010 ....
N1020 .....
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-67
Page 68
Programming
2.3 Subprogram and macro technology

2.3.4 Macro commands with G65, G66 and G67

ISO Dialect
In ISO Dialect mode, macros are called in the parts program with G65 Pxx, G66 Pxx. A macro is a set of parts program blocks that are terminated with M17.
When the subprogram is called, the mode is switched from ISO mode to Siemens mode.
The following commands are used for selection and deselection:
S G65 Macro call, non-modal
S G66 Macro call, modal
S G67 Deselect modal macro call
Siemens
03.07
G commands G65 Pxx and G66 Pxx are used to start macro xx. G65 calls subprogram Pxx once. G66 activates the Pxx subprogram call modally, and the subprogram is then executed in every block containing axis movements (same as MCALL xx). G67 deactivates the modal subprogram call again (equivalent to G80 for cycle calls).
In a parts program block with G65 or G66, the address Pxx is interpreted as the program number of the subprogram containing the macro functionality. Address Lxx can be used to define the number of passes of the macro. If a number of passes is not programmed in the calling block, the macro is executed once. All further addresses in this parts program block are interpreted (as in ISO Dialect “Macro B”) as passed parameters, and their programmed values are saved in system variables $C_A--$C_Z. These system variables can be read in the subprograms and evaluated for the macro functionality. If further macros are called with parameters within a macro (subprogram), the passed parameters must be saved in internal variables in the subprogram before the new macro call.
As in the case of the machining cycles, the language mode is switched implicitly to Siemens mode to allow the definition of internal variables. Therefore, if a further macro call appears in the subprogram, ISO Dialect mode must be selected again first.
2-68
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 69
03.07
System variables for the addresses I, J, K
Because addresses I, J, and K can be programmed up to ten times in a block by macro call, an array index must be used to access the system variables for these addresses. The syntax for these three system variables is then $C_I[..], $C_J[..], $C_K[..]. The values are stored in the array in the order programmed. The number of addresses I, J, K programmed in the block is stored in variables $C_I_NUM, $C_J_NUM, $C_K_NUM.
The passed parameters I, J, K for macro calls are treated as one block, even if individual addresses are not programmed. If a parameter is programmed again or a following parameter has been programmed with reference to the sequence I, J, K, it belongs to the next block.
To recognize the programming sequence in ISO mode, system variables $C_I_ORDER, $C_J_ORDER, $C_K_ORDER are set. These are identical arrays to $C_I, $C_K and contain the associated number of parameters.
Note
Programming
2.3 Subprogram and macro technology
The transfer parameters can only be read in the subroutine.
Example:
N5 I10 J10 K30 J22 K55 I44 K33
set1 set2 set3
$C_I[0]=10
$C_I[1]=44
$C_I_ORDER[0]=1
$C_I_ORDER[1]=3
$C_J[0]=10
$C_J[1]=22
$C_J_ORDER[0]=1
$C_J_ORDER[1]=2
$C_K[0]=30
$C_K[1]=55
$C_K[2]=33
$C_K_ORDER[0]=1
$C_K_ORDER[1]=2
$C_K_ORDER[2]=3
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-69
Page 70
Programming
2.3 Subprogram and macro technology
Cycle parameter $C_x_PROG
In ISO dialect 0 mode, the programmed values can be evaluated differently depending on the programming method (integer or real value). The different evaluation is activated via machine data.
If the MD is set, the control will behave as in the following example:
X100. ;X axis is traveled 100 mm (100. with point => real value Y200 ;Y axis is traveled 0.2 mm (200 without point => integer value
If the addresses programmed in the block are passed as parameters for cycles, the programmed values are always real values in the $C_x variables. In the case of integer values, the cycles do not indicate the programming method (real/integer) and therefore no evaluation of the programmed value with the correct conversion factor.
To indicate whether REAL or INTEGER has been programmed, there is the system variable $C_TYP_PROG. $C_TYP_PROG has the same structure as $C_ALL_PROG and $C_INC_PROG. For each address (A--Z) there is one bit. If the value is programmed as an INTEGER, the bit is set to 0, for REAL it is set to 1. If the value is programmed in variable $<number>, bit 2 = 1 is set.
03.07
Example:
P1234 A100. X100 --> $C_TYP_PROG == 1. Only bit 0 is set because only A is programmed as a REAL.
P1234 A100. C20. X100 --> $C_TYP_PROG == 5. Only bits 1 and 3 are set (A and C).
Restrictions:
Up to ten I, J, K parameters can be programmed in each block. Variable $C_TYP_PROG only contains one bit each for I, J, K. For that reason bit 2 is always set to 0 for I, J, and K in $C_TYP_PROG. It is therefore not possible to ascertain whether I, J or K have been programmed as REAL or INTEGER.
Parameters P, L, O, N can only be programmed as integers. A real value generates an NC alarm. For that reason the bit in $C_TYP_PROG is always 0.
Modal macro calls
With modal macro calls, the programmed addresses are only copied into the system variables in the block containing the call (block with G66). The macro is then executed in every block with an axis movement until it is deselected by G67 or a new macro call is programmed with G66. Only the macro parameters are passed in the block containing the call (= block with G66) for modal macros. The macro is executed for the first time in the next block containing an axis movement. (Same procedure as MCALL xx in Siemens mode)
2-70
Example of a macro call:
_N_M10_MPF:
N10 M3 S1000 F1000
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 71
03.07
2.3 Subprogram and macro technology
N20 X100. Y50. Z33.
N30 G65 P10 F55 X150. Y100. S2000
N40 X50.
N50 ....
N200 M30
Example of a subprogram as macro in Siemens mode:
_N_10_SPF:
N10 DEF REAL X_AXIS, Y_AXIS, SPEED, FEEDRATE
N15 X_AXIS = $C_X Y_AXIS = $C_Y SPEED = $C_S FEEDRATE = $C_F
N20 G01 F=FEEDRATE G95 S=SPEED
...
M17

2.3.5 Mode changing in macro calls with G65/G66

Until now, automatic switchover to Siemens mode was performed for macro calls with G65/G66. The user now has the choice whether switchover to Siemens mode takes place when the macro starts or not. Switchover to Siemens mode only takes place when the PROC<program name> instruction is used in the first line of the macro program. If this instruction is missing, ISO mode will remain active during execution of the macro program.
Programming
The user can therefore decide whether to create local variables (with DEF...) for the purpose of storing transfer variables. It is necessary to switch to Siemens mode to do this using the PROC instruction. The user can also specify that the macro program (e.g. an existing ISO Dialect M/T macro) is executed in ISO mode.
Example of a macro call:
_N_M10_MPF:
N10 M3 S1000 F1000
N20 X100. Y50. Z33.
N30 G65 P10 F55 X150. Y100. S2000
N40 X50.
N50....
N200 M30
Example of a subprogram as macro in Siemens mode:
_N_0010_SPF:
PROC 0010 ;Switchover to Siemens mode
N10 DEF REAL X_AXIS, Y_AXIS, SPEED, FEEDRATE
N15 X_AXIS=$C_X Y_AXIS=$C_Y SPEED=$C_S FEEDRATE=$C_F
N20 G01 F=FEEDRATE G95 S=SPEED
....
N80 M17
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-71
Page 72
Programming
2.3 Subprogram and macro technology
Example of a subprogram as macro in ISO mode:
_N_0010_SPF:
G290 ;Switchover to Siemens mode
;If transfer variables have to be read
N15 X_AXIS=$C_X Y_AXIS=$C_Y SPEED=$C_S
N20 G01 F=$C_F G95 S=$C_S
N10 G1 X=$C_X Y=$C_Y
G291 ;switch to ISO mode
N15 M3 G54 T1
N20
....
N80 M99

2.3.6 Macro call with M function

03.07
Restrictions
A macro can be called using M numbers in the same way as G65 (see 2.3.5).
10 M function substitutions are configured with machine data 10814: $MN_EXTERN_M_NO_MAC_CYCLE and 10815: $MN_EXTERN_M_NO_MAC_CYCLE_NAME.
Parameter transfer is executed in exactly the same way as with G65. Repetitions can be programmed with address L.
Only one M function substitution (and/or only one subprogram call) can be executed in each line of a parts program. Conflicts with other subprogram calls are output with alarm 12722. No further M function substitutions are made in the replaced subprogram.
Otherwise, the same restrictions apply as for G65
Conflicts with predefined and other defined M numbers are rejected with an alarm.
2-72
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 73
03.07
Configuration examples
Subprogram M101_MACRO call with M function M101
$MN_EXTERN_M_NO_MAC_CYCLE[0] = 101 $MN_EXTERN_M_NO_MAC_CYCLE_NAME[0] = “M101_MACRO”
Subprogram M6_MAKRO call with M function M6.
$MN_EXTERN_M_NO_MAC_CYCLE[1] = 6 $MN_EXTERN_M_NO_MAC_CYCLE_NAME[1] = “M6_MACRO”
Programming example for tool change with M function:
PROC MAIN
...
N10 M6 X10 V20
...
N90 M30
PROC M6_MACRO
...
N0010 R10 = R10 + 11.11
N0020 IF $C_X_PROG == 1 GOTOF N40 ($C_X_PROG)
N0030 SETAL(61000) ;programmed variable incorrectly
N0040 IF $C_V == 20 GTOF N60 ($C_V)
N0050 SETAL(61001)
N0060 M17
Programming
2.3 Subprogram and macro technology
;transferred
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-73
Page 74
Programming
2.3 Subprogram and macro technology

2.3.7 Macro call with G function

A macro can be called using G numbers in the same way as G65 (see 2.3.5).
50 G function substitutions are configured with machine data 10816: $MN_EXTERN_G_NO_MAC_CYCLE and 10817: $MN_EXTERN_G_NO_MAC_CYCLE_NAME.
The parameters programmed in the block are saved in the $C_ variables. Address L is used to define the number of times a macro is repeated. The number of the programmed G_macro is stored in variable $C_G. All other G functions programmed in the block are treated like normal G functions. The sequence in which addresses and G functions are programmed in the block is irrelevant and has no effect on the functionality.
All ISO G codes, even G codes with a decimal point (= real value) can be replaced by a macro call.
G functions that are replaced by a macro do not exist in the control and can be redefined with 10822: $MN_NC_USER_EXTERN_GCODES_TAB[ ].
03.07
Restrictions
Only one G/M function substitution (and/or only one subprogram call) can be executed in each line of a parts program. Conflicts with other subprogram calls, e.g. when a modal subprogram call is active, are signaled with alarm 12722.
If a G macro is active no more G/M macros or M subprograms are called. M macros/subprograms are then executed as M functions, and G macros as G functions if the relevant G function exists. Otherwise alarm 12470 is output.
Otherwise, the same restrictions apply as for G65
Configuration examples
Subprogram G21_MAKRO call with G function G21
$MN_EXTERN_G_NO_MAC_CYCLE[0] = 21 $MN_EXTERN_G_NO_MAC_CYCLE_NAME[0] = “G21_MACRO”
$MN_EXTERN_G_NO_MAC_CYCLE[1] = 123 $MN_EXTERN_G_NO_MAC_CYCLE_NAME[1] = “G123_MACRO” $MN_EXTERN_G_NO_MAC_CYCLE[2] = 421 $MN_EXTERN_G_NO_MAC_CYCLE_NAME[2] = “G123_MACRO”
2-74
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 75
03.07
Programming
2.3 Subprogram and macro technology
Programming example:
PROC MAIN
...
N0090 G291 ;ISO mode
N0100 G1 G21 X10 Y20 F1000 G90 ;G21_MACRO.spf, G1, and
;G90 calls activated
;before G21_MACRO.spf
;is called
...
N0500 G90 X20 Y30 G123 G1 G54 ;G123_MACRO.spf, G1,
;G54, and G90 calls
;activated before
:G123_MACRO.spf
;is called
...
N0800 G90 X20 Y30 G421 G1 G54 ;G421_MACRO.spf, G1,
;G54, and G90 calls
;activated before
;G123_MACRO.spf is called
...
N0900 M30
PROC G21_MACRO
...
N0010 R10 = R10 + 11.11
N0020 IF $C_X_PROG == 0
N0030 SETAL(61000) ;programmed variable incorrectly
;transferred
N0040 ENDIF
N0050 IF $C_V_PROG == 0
N0060 SETAL(61001)
N0070 ENDIF
N0080 IF $C_F_PROG == 0
N0090 SETAL(61002)
N0100 ENDIF
N0110 G90 X=$C_X V=$C_V
N0120 G291
N0130 G21 M6 X100 ;G21->activates metric system of
;units (no macro call)
N0140 G290
...
N0150 M17
PROC G123_MACRO
...
N0010 R10 = R10 + 11.11
N0020 IF $C_G == 421 GOTOF label_G421
;macro functionality for G123
N0040 G91 X=$C_X Y=$C_Y F500
...
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-75
Page 76
Programming
2.3 Subprogram and macro technology
...
N1990 GOTOF label_end
N2000 label_G421: ;macro functionality for G421
N2010 G90 X=$C_X
Y=$C_Y F1000
N2020
...
...
N3000 G291
N2010 G123 ;alarm 12470 because G123 is not a G function
N4000 label_end: G290
N4010 M17
03.07
;and a macro cannot be called when a macro is
;active. Exception: the macro was called as
;a subprogram with CALL G123_MACRO.

2.3.8 High-speed cycle cutting G05 P..

G05 P.. high-speed cycle cutting takes the form of a subprogram call.
Programming G05 P.. L..
Pxxxxx Subprogram number, max. 10 characters
When called it is not necessary to fill with zeros as is the case with M98.
Lxxxx Number of passes. If L is not programmed, L1 is assumed.
Example: G05 P10123 L3 10123.mpf is passed through three times.
This call can be used to fetch any subprogram. This subprogram can be a precompiled program, but does not have to be. However, only a Siemens parts program can be precompiled.
There is not equivalent of ISO Dialect function G05 in Siemens mode. CYCLE305 enables users to program their own functionality in the context of the Siemens functionality.
CYCLE305.spf is called when programming G05 in the following cases:
S G05 without P in the block is skipped without an alarm.
S G05.1 with and without P is skipped without an alarm.
2-76
S G05 P0 or P01 are reserved for high-speed remote buffer B. This function is not
supported.
In the cases mentioned, all addresses programmed in the block are defined in cycle parameter $C_xx. When CYCLE305 is called there is no automatic change of mode from ISO to Siemens. If it is intended to process CYCLE305.spf in Siemens mode, the first program line must contain a PROC instruction as in the case of macro calls with G65/G66.
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 77
03.07
2.3 Subprogram and macro technology
All functions programmed in the block are executed, as previously mentioned in the case of programming G05, that is to say, programmed axes are traversed, auxiliary functions are produced, etc. The programmed addresses are defined in the cycle parameters only for the purpose of supplementary information.
If G05 and a subprogram call (M98 P..) are programmed in the same block, alarm 12722 is produced.

2.3.9 Switchover modes for DryRun and skip levels

Switching over the skip levels (DB21.DBB2) always meant intervening in the program run which until now resulted in a momentary drop in velocity along the path. The same applies when the dry run mode DryRunOff (DryRun = dry-run feedrate DB21.DBB0.BIT6) it switched to DryRunOn and vice versa.
This drop in voltage can now be avoided with a new switchover mode which has a restricted functionality.
Programming
With machine data assignment $MN_SLASH_MASK==2 a drop in voltage is no longer necessary when switching skip levels (i.e. a new value in PLC-->NCK-Chan interface DB21.DBB2).
Note
The NCK processes blocks in two stages, preliminary or preprocessing and main processing. The result of preprocessing is put into the preprocessing memory. The main processing stage takes the oldest block from the pre--processing memory and traverses its geometry.
Attention
With machine data assignment $MN_SLASH_MASK==2, preprocessing is switched over when the skip levels are switched! All blocks in the preprocessing memory are executed with the old skip level. As a rule, the user has no influence over the level of the preprocessing memory. The user observes the following: The
new skip level can take effect at any time after switchover!
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-77
Page 78
Programming
2.3 Subprogram and macro technology
Note
The parts program command STOPRE empties the preprocessing memory. If the skip level is switched over before STOPRE, it is certain that all blocks after STOPRE will be switched over. The same applies to an implicit STOPRE.
Switching over DryRun mode results in the same restrictions.
With machine data assignment 10704: $MN_DRYRUN_MASK==2 no drop in velocity is necessary when DryRun mode is changed. However, here too, only preprocessing is switched over, which results in the above restrictions. Analogously the following applies: Caution DryRun mode can become active
any time after switchover!

2.3.10 Eight-digit program numbers

03.07
Eight-digit program number selection is activated with machine data $MC_EXTERN_FUNCTION_MASK, bit6=1. This function has an effect on M98 (see Subsection 2.3.1), G65/66 (see Subsection 2.3.5), and M96 see Subsection
2.2.19).
y: Number of program runs x : Program number
Subprogram call M98
$MC_EXTERN_FUNCTION_MASK, bit 6 = 0 M98 Pyyyyxxxx or M98 Pxxxx Lyyyy Program number max. four digits Extension of program number always to four digits with 0 E.g.: M98 P20012 calls 0012.mpf 2 passes
$MC_EXTERN_FUNCTION_MASK, bit 6 = 1 M98 Pxxxxxxxx Lyyyy No extension with 0 even if the program number is less than four digits long. It is not possible to program the number of passes and program number in P (Pyyyyxxxxx), the number of passes must always be programmed with L! E.g.: M98 P123 calls 123.mpf 1 pass
M98 P20012 calls 20012.mpf 1 pass,
Caution: This is no longer compatible with the ISO dialect original
M98 P123 L2 calls 0123.mpf 2 passes
2-78
M98 P12345 L2 calls 12345.mpf 2 passes
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 79
03.07
Modal and block-by-block macro G65/G66
$MC_EXTERN_FUNCTION_MASK, bit6 = 0 G65 Pxxxx Lyyyy Extension of program number always to four digits with 0. Program number with more than four digits triggers an alarm.
$MC_EXTERN_FUNCTION_MASK, bit6 = 1 G65 Pxxxxxxxx Lyyyy No extension with 0 even if the program number is less than four digits long. Program number with more than eight digits triggers an alarm.
Interrupt M96
Does not work with SINUMERIK 802D sl.
$MC_EXTERN_FUNCTION_MASK, bit6 = 0 M96 Pxxxx Extension of program number always to four digits with 0
Programming
2.3 Subprogram and macro technology
$MC_EXTERN_FUNCTION_MASK, bit6 = 1 M96 Pxxxx No extension with 0 even if the program number is less than four digits long. Program number with more than eight digits triggers an alarm.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-79
Page 80
Programming
2.3 Subprogram and macro technology

2.3.11 System variable for level stack in ISO mode

In standard mode, the current program level is displayed in system variable $P_STACK. Every subroutine call and return affects this variable. However, there are subroutine calls in ISO mode for which the current user variable level does not change. The implementation of level-specific variables using GUDs requires knowledge of the current program level in ISO mode. System variable $P_IPO_STACK supplies the current program level in ISO dialect mode.
Table 2-6 shows all possible subroutine and macro calls in ISO mode and how they affect the current program level.
Calls in ISO mode are mapped to calls in standard mode so that variable $P_STACK contains the same information as before even in ISO mode.
The maximum possible number of subroutine calls remains unchanged.
System variable $P_IPO_STACK is always incremented when a subroutine programmed in ISO mode as a macro call with G65, G66, G code or M macro starts. On return from this type of ISO macro, $P_IPO_STACK is decremented again. If no ISO macros are active, $P_IPO_STACK = 0. $P_IPO_STACK therefore supplies the number of currently active ISO macros.
03.07
When a subroutine defined with M96 Pxx is called, variable $P_IPO_STACK is also incremented on the basis of MD $MC_EXTERN_FUNCTION_MASK bit 11.
If $MC_EXTERN_FUNCTION_MASK
bit 12 = 0, $P_IPO_STACK is not modified by the interrupt program. If bit 12 = 1, $P_IPO_STACK is incremented by the interrupt program.
Cycle calls with e.g., G81, G77 etc. or functions implemented internally with cycles, e.g., G05, G72.1, etc. and subroutine calls with M98 Pxx have no effect on $P_IPO_STACK.
Example: Subroutine calls in ISO and standard mode.
M98 indicates subroutine calls without level incrementation. G65 P indicates macro calls with level incrementation.
Table 2-6 Subroutine and macro calls
$P_STACK
1 1 O111 .mpf
1 1 N5 M98 P2222
2 1 O2222.mpf
2 1 G65 P3333
3 2 O3333.mpf
3 2 M99
2 1 M99
$P_IPO_STACK Level 1 Level 2 Level 3
2-80
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 81
03.07
Programming
2.3 Subprogram and macro technology
Table 2-6 Subroutine and macro calls
$P_STACK Level 3Level 2Level 1$P_IPO_STACK
M98 does not increment the levels. O1111.mpf and O2222.mpf work with the same $P_ISO_STACK content, G65 does increment the levels, so that the content seen by O3333.mpf is different. $P_STACK continues to display the levels in standard mode.
$P_STACK $P_IPO_STACK Level 1 Level 2 Level 3
1 1 O1111 .mpf
1 1 N5 G65 P2222
2 2 O2222.mpf
2 2 M98 P3333
3 2 O3333.mpf
3 2 M99
2 1 M99
Switching from ISO mode to standard mode
$P_STACK $P_IPO_STACK Level 1 Level 2 Level 3
1 1 O1111 .mpf
1 1 G291
1 1 N5 M98 P2222
2 1 O2222.mpf
2 1 G290
2 1 3333( )
3 2 3333.mpf
3 2 M30
2 1 G291
2 1 M99
1 1 N10 M30
Switching from standard mode to ISO mode
1 1 1111. mpf
1 1 N5 G290
1 1 N10 2222( )
2 2 2222.mpf
2 2 G291
2 2 M98 P3333
3 2 O3333.mpf
3 2 M99
2 2 G290
2 2 M17
1 1 N15 M30
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-81
Page 82
Programming
2.3 Subprogram and macro technology
List of possible subroutine and macro calls in ISO mode
M98 Pxxxx Subroutine call Level does not change M98 Pxxxx Lyyyy Up call with iteration Level does not change
G65 P Non-modal macro Level incremented G66 P Modal macro Level incremented
G05 UP call CYCLE305 Level does not change
M macro subst 10814: EXTERN_M_NO_MAC_CYCLE Level incremented M Up subst. 0715: M_NO_FCT_CYCLE Level does not change T subst 10717: T_NO_FCT_CYCLE_NAME Level does not change G subst 10816: EXTERN_G_NO_MAC_CYCLE Level incremented
M96 Interrupt ASUP Level changes depending on
$MC_EXTERN_FUNC­TION_MASK, bit12
03.07
Shell cycles: Level is not incremented G code cycles: G22 G23 G27 G28 G30 G30.1 G72.1 G50 Level is not incremented G code cycles, Shell cycles: $P_ISO_STACK has no relevance for the user as write access is not supported for these cycles.
Depending on machine data $MC_EXTERN_FUNCTION_MASK, bit 12, variable $P_ISO_STACK is incremented when an interrupt program (ASUP) is called.
Bit12 = 0 Variable $P_ISO_STACK does not change when an interrupt
program defined with M96 Pxx is called
Bit12 = 1 Variable $P_ISO_STACK is incremented when an interrupt
program defined with M96 Pxx is called
2-82
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 83
03.07
2.4 Tool change and tool offsets

2.4.1 Tool offsets: T, D, M (ISO Dialect M)

Tool data T/D number H number
As Siemens and ISO dialect programs are intended to run alternately in the control they must be implemented with the Siemens tool data memory. In each offset memory that exists for a tool, the length, geometry and wear in each case are specified. In Siemens mode, the offset memory is addressed with T (tool number) and D (cutting edge number), or T/D number for short. In ISO Dialect M programs, the offset memory is addressed with D (radius) or H (length). This is referred to below as the H number. In order to establish a unique assignment between this H number and a T/D number, an element $TC_DPH[t,d] has been added to the offset data set. The H number of the ISO Dialect is entered in this element.
Programming

2.4 Tool change and tool offsets

Table 2-7 Example: Tool offset data set
T
1 1 10
1 2 11
1 3 12 100.00 250.00
2 1 13
2 2 14
2 3 15
D/cutting edge H number
$TC_DPH
Radius Length
Example: Siemens program ISO Dialect program N5 T1 N5 T1 N10 G41 D3 N10 G41 H12 or G41 D12
When the H value is programmed in the ISO dialect M program, the system searches for and activates the matching $TC_DPH in the active T after the correction block.
If the correction block does not contain an H number, the compensation cannot be activated in ISO Dialect mode.
If an H is programmed but a correction block with the corresponding H number is not found or the associated tool T is not selected, an alarm is output.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-83
Page 84
Programming
2.4 Tool change and tool offsets

2.4.2 Possible H numbers

H=0
H0 is a correction with the compensation value 0. If H0 is programmed while G43/G44 is active, G43/G44 remains active, but with tool length 0. H0 must not, however, be programmed while G41/G42 is active.
H = unique
An H number in a TO unit must exist only once otherwise clear addressing of the compensation block is not possible. In case an H number has been allocated for a second time, alarm “17183 channel %1 block %2 H number already exists in T= %3 with D=%4” is given when writing from the program,. The alarm is compensation block compatible with NC Start clear.
Example:
03.07
N5 $TC_DPH[1,1] = 5 N10 $TC_DPH[2,1] = 5
An attempt to allocate an H number twice via OPI (HMI, PLC) will lead to a negative acknowledgment when writing.
Changing the offset memory
Existing tool offsets can be overwritten with G10. New tool offsets are not created by G10.
Tool length compensation, geometry: G10 L10 Pxx Ryy Tool length compensation, wear: G10 L11 Pxx Ryy Tool radius compensation, geometry: G10 L12 Pxx Ryy Tool radius compensation, wear: G10 L13 Pxx Ryy
P specifies the H number of the compensation memory and R specifies the value. L1 can be programmed instead of L11.
Active plane
Setting data $SC_TOOL_LENGTH_CONST must be assigned value 17 if the assignment of tool length offsets to geometry axes is to be independent of plane selection. Length 1 is then always assigned to the Z axis.
2-84
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 85
03.07
Selecting the tool length
The tool length and the tool radius are always programmed with D or H.
Example:
Programming
2.4 Tool change and tool offsets
T D/cutting edge H number
$TC_DPH
2 3 4 10 15
Radius Length
ISO Dialect M: T2 G43 H4 or D4 ;Length selection G42 D4 or H4 ;Radius selection
The offset value must be entered twice for ISO Dialect M programs which are programmed with different D and H numbers.
Example:
T D/cutting edge H number
$TC_DPH
2 3 4 10 15
2 4 5 10 15
Radius Length
ISO Dialect M: T2 G43 H4 ;Length offset from T2 D3 G42 D5 ;Radius and length offset from T2 D4
Flat D number
If flat D numbers are active, the T is programmed independently of the H number. The H number is no longer checked for compatibility with the selected tool.
An H number must be assigned to every offset memory, even with flat D numbers.
Tool management
If tool management is active, replacement tools have the same H number. Duplo numbers are used in order to differentiate. Offset D1 is activated for the currently selected tool on H99 with active tool management.
In ISO Dialect M, only numerical expressions are permitted as tool identifiers. Strings are no longer permitted as identifiers. Example: T = “2”, selection with T2.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-85
Page 86
Programming
2.4 Tool change and tool offsets
Tool length compensation in multiple axes
Tool length offsets can be activated on multiple axes. However, the resulting tool length compensation cannot be displayed.
The Siemens T and D numbers appear in the display for active T and D numbers. New OPI variables which can be displayed are available for the active ISO Dialect H and D number.
Machine data 22220: $MC_AUXFU_T_SYNC_TYPE is used to define whether the output to PLC takes place during or after the movement. Machine data 20110: $MC_RESET_MODE_MASK, bit 6 can be used to activate tool length compensation beyond a reset.
MD 20156: $MC_EXTERN_RESET_GCODE_MODE[7] defines whether the G code of group 8 (G43, G44, G49) is maintained after reset or whether the settings defined in MD 20254 $MC_EXTERN_RESET_GCODE[7] become effective after reset. Both machine data are set by default such that G49 is active and the length com­pensation is deselected after reset.
03.07
Example: Tool selection in ISO dialect M:
; (Fanuc 0 M tool offset with T, cutting edge number
; (the offsets are written)
; (with G10)
G290
; Tool offset memory T2 cutting edge 1:
N5000 $TC_DP1[2,1]=10 ;type
N5000 $ TC_DP1[2,1]=7 ;ISO H number
; Tool offset memory T3 cutting edge 2:
N5000 $TC_DP1[3,2]=10 ;type
N5000 $TC_DP1[3,2]=3 ;ISO H number
; Tool offset memory T4 cutting edge 3:
N5000 $TC_DP1[4,3]=10 ;type
N5000 $TC_DP1[4,3]=8 ;ISO H number
G291
;Write tools offsets
;------------------------
;T2 cutting edge 1
G10 L12 P7 R5
; T3 cutting edge 2
G10 L10 P3 R15
G10 L12 P3 R10
2-86
N8 G01 G40 F5000 X0 Y0 Z0
N10 X50.
N15 50
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 87
03.07
Programming
2.4 Tool change and tool offsets
N17 Z10.
N20 X0
N25 Y0
N30 X-10 Y-10
N30 T2 ;Tool 2
N33 G43 H7 Z0 ;H number 7
N35 G41 X0 Y0 Z0 D7
N40 X50.
N45 Y50.
N48 Z10.
N50 X0
N55 Y0
N60 G40 X-10 Y-10
N65 T3
N68 G43 H3 Z0
N70 G42 X0 Y0 Z0 D3
N75 X50.
N77 Y50.
N78 Z10.
N80 X0
N85 Y0
N90 G40 X-10 Y-10
N95 T4
N98 G43 H8 Z0
N100 G41 X0 Y0 Z0 D8
N105 X50.
N110 Y50.
N112 Z10.
N115 X0
N120 Y0
N125 G40 X-10 Y-10
M30
Machine data 20382: $MC_TOOL_CORR_MOVE_MODE defines whether the compensation is applied in the block containing the selection or the next time the axis is programmed.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-87
Page 88
Programming
2.4 Tool change and tool offsets

2.4.3 Tool offset: T (ISO dialect T)

Tool data are stored in the Siemens tool data memory. Every tool comprises four entries, one each for the X axis, Z axis, radius and cutting edge position. The range of values for tool length and radius offset is
¦ 999.999 mm. The range of values for the cutting edge position is 0 -- 9, where 0
and 9 are identical. The meaning is equivalent to the tool point direction on Siemens turning tools.
T is used for selection. T contains the tool number and offset number.
The offset is addressed either with the Siemens cut number D or with the H number from $TC_DPH. Addressing with D is only possible for “flat D numbers”. If tool management is used, H is always used for addressing.
Txxxxyyyy: xxxx=Tool number, yyyy=offset number
Machine data 10890: $MN_EXTERN_TOOLPROG_MODE, bit 0 defines how the T value is interpreted.
The number of digits in the tool number is defined in machine data 10888: $MN_EXTERN_DIGITS_TOOL_NO. The digits are counted from left to right. Subsequent digits indicate the offset number.
03.07
Bit 0=1 in MD 10890 sets the offset number to the same value as the tool number.
Example:
$MN_EXTERN_TOOLPROG_MODE=0 $MN_EXTERN_DIGITS_TOOL_NO=2 T1234 ;Auxiliary function T1234 on PLC
;Tool number 12 ;Offset selection D34/H34
T123 ;Auxiliary function T123 on PLC
;Tool number 12 ;Offset selection D3/H3
$MN_EXTERN_TOOLPROG_MODE, Bit 0=1 T12 ;Auxiliary function T12 on PLC
;Tool number 12 ;Offset selection 12
Machine data 20382: $MC_TOOL_CORR_MOVE_MODE is used to select when the offset is applied: immediately when the set is selected or not until the axis is programmed.
MD 20110: $MC_RESET_MODE_MASK, bit 6 is used to define whether the offset is maintained in the event of a rest or deselected.
2-88
MD 20360: $MC_TOOL_PARAMETER_DEF_MASK, Bit 0 is used to activate the calculation of the wear value for the transverse axis as a diameter value. The geometry offset is always applied as a radius.
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 89
03.07
Programming
2.4 Tool change and tool offsets
Example: Tool selection, ISO dialect T:
G290
N5000 ;Definition of tool offset memory D1:
N5000 $TC_DP1[1,1]=10 ;Type
N5000 $TC_DP2[1,1]=9 ;Cutting edge position
N5000 $TC_DP6[1,1]=5 ;Radius
N5000 ;Definition of tool offset memory D2:
N5000 $TC_DP1[2,1]=10 ;Type
N5000 $TC_DP2[2,1]=1 ;Cutting edge position
N5000 $TC_DP6[2,1]=5 ;Radius
G291
;Write tool offset data
N3 G10 P1 X10 Z20 Y30
N5 G10 P2 X20 Y20 Z100
N10 G00 G18 X0 Y0 Z0
N10 T0101 ;Tool 1, cut 1
N15 G00 X10 Y10 Z10
N20 T0201 ;Tool 1, cut 1
N25 G00 X10 Y10 Z10
...
M30
Changing the offset memory
Although existing tool offsets can be overwritten with G10, new tool offsets are not created with G10.
G10 P<100 / 10000 X Y R Q Geometry G10 P>100 / 10000 X Y R Q Wear
P100/10000 ;MD 20734: EXTERN_FUNCTION_MASK, bit 1 is used to select
;whether a differentiation is made on the basis of geometry or
;wear if P<100 or 10000. X Y Z ;Absolute or incremental offset values, depending on G90/91 U V W ;Incremental offset values R ;Radius Q ;Cutting position
Tool offset selection with $TC_DPH
Previously, the “flat D number” function was always active for ISO dialect T. D numbers are unique and command Txxyy or G10 Pyy is used to address the Siemens cut number with yy. In order to use tool management, structured D numbers must be addressed in ISO dialect T. Exactly as in ISO dialect M, every cut is assigned a parameter $TC_DPH[ ], which enables a cut to be addressed uniquely within a TO unit.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-89
Page 90
Programming
2.4 Tool change and tool offsets
The function is switched on by setting MD 10890: $MN_EXTERN_TOOLPROG_ MODE bit 2=1. When the function is active, the tool offset must always be addressed with the H number in ISO dialect T. Programs, which address the cut number, no longer run. Parameter $TC_DPH[ ] is only created if $MN_EXTERN_TOOLPROG_MODE bit 2=1. H numbers must be assigned uniquely within a TO in order to prevent alarms.
There are 3 options:
$MN_MM_TYPE_OF_CUTTING_EDGE=1 Flat D number
1. Flat D number + $MN_EXTERN_TOOLPROG_MODE bit 2=0
The offset is always addressed with cut D. G290 N605 $TC_DP1[1]= 500 N615 $TC_DP1[2]= 500 N625 $TC_DP1[3]= 500 N635 $TC_DP1[4]= 500
G291 N650 G10 P2 X10 ; Write geometry cut 2 N655 G10 P102 X1 ; Write wear cut 2
03.07
N670 T0102 ;Select cut 2 N675 T0105 ;Alarm because cut 5 is not available.
2. Flat D number + $MN_EXTERN_TOOLPROG_MODE bit 2=1
The offset is always addressed with the H number; G290 N705 $TC_DP1[1]= 500 N708 STC_DPH[1]=11
N710 $TC_DP1[2]= 500 N715 STC_DPH[2]=22 N720 $TC_DP1[3]= 500 N725 STC_DPH[3]=33 N730 $TC_DP1[4]= 500 N735 STC_DPH[4]=44
G291 N740 G10 P22 X10. ; Write geometry cut 2 N745 G10 P122 X1. ; Write wear cut 2 N747 G10 P55 X10. ; Alarm 12550, because cut is
; not available with H55
N750 T0122 ; Cut 2 is selected N752 T0155 ; Alarm 12550, because cut is
; not available with H55
2-90
$MN_MM_TYPE_OF_CUTTING_EDGE=0 Structured D number
3. Structured D number + $MN_EXTERN_TOOLPROG_MODE bit 2=1
The offset is always addressed with the H number.
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 91
03.07
Programming
2.4 Tool change and tool offsets
G290 N805 $TC_DP1[1,1]= 500 N808 STC_DPH[1,1]=11
N810 $TC_DP1[1,2]= 500 N815 STC_DPH[1.2]=22
N820 $TC_DP1[2,1]= 500 N825 STC_DPH[2,1]=33
N830 $TC_DP1[2,2]= 500 N835 STC_DPH[2,2]=44
G291 N840 G10 P22 X10 ; Write geometry T1 cut 2. N845 G10 P122 X1 ; Write wear T1 cut 2. N847 G10 P55 X1 ; Alarm 12550, because cut is
; not available with H55
N850 T0122 ; Select T1 cut 2. N855 T0244 ; Select T2 cut 2. Alarm, because no cut with H22 is available
;inT2.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
2-91
Page 92
Programming
2.4 Tool change and tool offsets

2.4.4 Too l-changing cycle

ISO Dialect mode
MD 10717 T_NO_FCT_CYCLE_NAME is used to assign a subprogram to the T command. Every block that contains a T command is executed and the subprogram is subsequently called up. The T value is not output; the T command must be programmed again in the cycle.
System variable $C_T_PROG or $C_D_PROG can be used in the subprogram to check whether the T or D command was programmed. The values can be read out with system variable $C_T or $C_D. If another T command is programmed in the subprogram, no substitution takes place, but the T word is output to the PLC.
The machine data 10715 M_NO_FCT_CYCLE and 10716: M_NO_FCT_CYCLE_NAME can be used to assign a subprogram to an M function (e.g. M06).
The mapping of M and T programming onto cycle calls has the same effect in ISO Dialect mode as in Siemens mode.
03.07
If T and M6 are programmed in the same block, the programmed T number can be scanned with $P_TOOL in the cycle called by M6. The M/T call is also mapped onto the cycle call in the block search. The start of the change cycle after the end of the search run must be initiated by the PLC.
Sequence:
N20 T1234
N30 M6 ;Change tool
N40 H3 G43 ;Activate tool length compensation in T1234
N50 T333 ;Tool preselection
N60 G1 X10 ;Offset T1234 is active
N70 M6 ;Load tool 333, D0 H0 active
N80 H4 ;Activate new tool length compensation
N90 .....
2-92
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 93

Cycles and Contour Definition

3.1 Calling cycles in the external CNC system using G commands

General description
The functionality of the ISO Dialect cycles is implemented in the standard Siemens cycles: A shell cycle is called from the ISO Dialect program. All addresses programmed in the block are passed to this shell cycle in the form of system variables. The shell cycle matches the data to the standard Siemens cycle and calls it by name. Machine manufacturers can replace these shell cycles with their own cycles.
Cycle parameters
3
V a rious cycle parameters in channel-specific GUD (Global User Data) must be initialized for the machining cycles. The names and meanings of the GUD are listed in Section 3.2.
Procedure for cycle call via G command
Part program e.g. ISO Dialect
N10 G... N20 X.. Y.. N30 ... N40 ...
Fig. 3-1 General cycle call in ISO Dialect mode
(external CNC system)
Shell cycle
Siemens standard cycle
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
3-93
Page 94
Cycles and Contour Definition
3.1 Calling cycles in the external CNC system using G commands
Shell cycle
The modifications required due to the ISO Dialect programming syntax are made in the shell cycle. This means that the existing SINUMERIK cycles do not have to be changed. The name of the shell cycle is permanently defined.
Procedure:
1. The cycle (e.g. G81) is programmed in I SO Dialect mode
2. Siemens mode is activated automatically and the associated shell cycle is called (see Fig. 3-2)
3. The shell cycle calls the associated Siemens standard cycle
It is not necessary to program G290. The external CNC system is automatically activated on the return jump.
Important
The cycles must only be called with G commands.
This ensures that the appropriate cycle parameters are passed to the shell cycle.
03.07
The shell cycle must not be activated directly with CALL CYCLE3xx!
Modal cycles
If a modal cycle is active, the shell cycle is called in every NC block. If no axis positions (X, Y or Z) are programmed in the NC block, the Siemens standard cycle is not called.
Addresses programmed in the block (F etc.) are activated via the shell cycle. If no feedrate was programmed, for example, the current feedrate is used as the path feed.
Cycle parameters can be programmed in the following blocks while a modal cycle is active. These parameters are copied into the system variables so that the shell cycle uses the modified parameters. Modal cycles are, in contrast to modal macros, already executed in the calling block (e.g. block with G81 etc.).
Deselecting the cycle:
Deselection is performed with G80 or with a function of the 1st G group.
3-94
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 95
03.07
Cycles and Contour Definition
3.1 Calling cycles in the external CNC system using G commands
Example:
N10 G81 X10. Y20. Z-15. R5 F1000
Drilling position X10mm, Y20mm
Drilling depth Z-15mm
Reference plane 5mm
Drilling feed F.. (mm/min or mm/rev)
N20 X50. Y30. R10 Drilling position X50mm, Y30mm,
New reference plane 10mm
N30 G80 Delete cycle G81
Write cycle variable depending on addresses programmed in set
Previously, if modal cycles were active, all programmed addresses in the set were always written to the cycle variables. During the cycle, the variables are evaluated and decisions are made about how the variables must be used on the basis of the cycle logic.
In some cases, this means that the cycle parameters will be written even if they may not be interpreted as cycle parameters on the basis of the programming syntax.
Therefore, for the following functions, none or only some of the programmed addresses are written to the cycle parameters:
M98 P3 L2 X10 Y20 Addresses Pxx and Lxx are not written
to the cycle parameters.
G05 P5 L2 X10 Y20 Addresses Pxx and Lxx are not written
to the cycle parameters.
G05 P1 L2 X10 Y20 If a modal cycle is active, alarm 12722
will be output because the call is for the modal cycle for which the programmed values are actually intended.
G54 P10 X10 Y20 M44 Address Pxx is not written to the cycle
parameters.
G31 P98 X30 F100 Addresses Pxx, Fxx and the axis values are
not written to the cycle parameters.
G31 P1 X30 Y20 F100 None of the programmed addresses are written
to the cycle parameters.
G51 P1000 I2 J3 K2 X30 Y40 None of the programmed addresses are written
to the cycle parameters.
G50 P10000 X10 Y30 All parameters are written to the cycle
parameters.
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
3-95
Page 96
Cycles and Contour Definition

3.2 Global user data (GUD)

3.2 Global user data (GUD)
Table 3-1 GUD7 for programmed cycle values (ISO Dialect program data)
GUD Description/use CYCLE
Real values
_ZFPR[0] Initial plane (current position on 1st call with G..), retraction position
active on G98
_ZFPR[1] Reference plane, retraction position active on G99 (retraction only
possible to initial position with G87).
_ZFPR[2] Final drilling depth, absolute 381M, 383M,
_ZFPR[3] Retraction position, depending on G98/G99 (initial plane/R plane) 381M, 383M,
_ZFPR[4] Drilling feed 381M, 383M,
_ZFPR[5] Dwell time (s) at final depth (G82/G89/G76/G87) 381M, 384M,
_ZFPR[6] 1st drilling depth (single drilling depth) incr. (G73/G83) 383M
_ZFPR[7] 1st drilling depth, absolute (G73/G83) 383M
_ZFPR[8] Lift-off/infeed distance (G76) 387M
_ZFPR[9] Speed for tapping (G74/G84) 384M
_ZFPR[10] Programmable prestop clearance when re--plunge--cutting into the
drill hole G83 Values: > 0 The value programmed will apply.
= 0 The value is calculated automatically.
_ZFPR[20] Initial plane (current position on 1st call) 383T, 384T,
_ZFPR[21] R plane 383T, 384T,
_ZFPR[22] Final drilling depth, absolute 383T, 384T,
_ZFPR[23] Retraction position (1=G98, 2=G99) 383T, 384T,
_ZFPR[24] Thread pitch/drilling feed 376T, 383T,
_ZFPR[25] Dwell time at final depth 383T, 384T,
_ZFPR[26] Speed for tapping 384T
_ZFPR[27] End point X 371T, 372T,
_ZFPR[28] End point Z 371T, 372T,
_ZFPR[29] Start point offset X (taper thread) 371T, 372T,
_ZFPR[30] Thread start point X 376T
_ZFPR[31] Thread start point Z 376T
_ZFPR[32] First drilling depth 383T
03.07
381M, 383M, 384M, 387M
381M, 383M, 384M, 387M
384M, 387M
384M, 387M
384M, 387M
387M
383M
385T
385T
385T
385T
384T, 385T
385T
373T, 376T
373T, 376T
376T
3-96
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 97
03.07
Cycles and Contour Definition
3.2 Global user data (GUD)
Table 3-1 GUD7 for programmed cycle values (ISO Dialect program data)
GUD CYCLEDescription/use
Integer values
_ZFPI[0] Current G code of ISO Dialect drilling cycle 381M, 383M,
_ZFPI[1] M function for spindle start (M3, M4) after spindle stop 381M, 384M
_ZFPI[20] Current G code of threading cycle/drilling cycle 383T, 384T,
_ZFPI[21] Spindle direction (3=M3, 4=M4) 383T, 384T,
_ZFPI[22] Stock removal mode Roughing 370T, 371T,
_ZFPI[23] Machining mode Deep hole/Drilling 383T
Table 3-2 GUD7 for cycle setting data (ISO Dialect setting data)
GUD Description/use
Real values
_ZSFR[0] Safety clearance to reference plane 381M, 383M
_ZSFR[1] Retraction amount for chipbreaking (G73) 383M
_ZSFR[2] Angle offset for oriented spindle stop, tool must be oriented in +X
direction (G76) Retraction direction:
--X G17 plane XY
--Z G18 plane ZX
--Y G19 plane YZ
_ZSFR[20] Safety clearance to reference plane 383T, 384T
_ZSFR[21] Safety clearance to chip break 383T , 385T
Integer values
_ZSFI[0] 0=Drilling axis is perpendicular to plane (default)
1=Drilling axis always “Z”
_ZSFI[1] 0= Rigid tapping
1= Tapping with compensating chuck 2= Deep hole tapping with chipbreaking 3= Deep hole tapping with swarf removal
_ZSFI[2] Retraction speed factor (1--200%) for tapping (G74/G84) 384M
_ZSFI[3] Polar coordinates 0 = OFF 1 = ON 381M, 383M,
_ZSFI[20] Deep hole drilling with chip breaking/removal 383T, 385T
_ZSFI[22] Factor for retraction speed 384T
_ZSFI[23] Dwell time with G95, 0=seconds, 1=revolution 383T
_ZSFI[24] Number of noncuts 376T
_ZSFI[25] Cutting edge angle 376T
_ZSFI[26] Thread run-out distance (n*pitch) 376T
_ZSFI[27] Min. infeed depth 376T
_ZSFI[28] Final machining allowance 376T
_ZSFI[29] Distance traversed for grooving cycle 374T
384M
385T
385T
372T, 373T
387M
381M, 383M, 384M, 387M
384M,387M
384M, 387M
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
3-97
Page 98
Cycles and Contour Definition
3.2 Global user data (GUD)
Table 3-2 GUD7 for cycle setting data (ISO Dialect setting data)
GUD Description/use
_ZSFI[30] Cutting depth for stock removal cycle 371T, 372T
_ZSFI[31] Distance traversed for stock removal cycle 371T, 372T
_ZSFI[32] X axis infeed value for contour repetition 373T
_ZSFI[33] Z axis infeed value for contour repetition 373T
_ZSFI[34] Number of divisions for contour repetition 373T
_ZSFI[39] G code system 2=B, 1=A, 3=C 300, 328,
03.07
330, 370T, 371T, 372T, 373T, 374T, 376T
3-98
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Page 99
03.07
3.3 Drilling cycles (ISO Dialect M)

3.3.1 Overview and parameter description

The drilling cycles are modal. While a drilling mode is active, you only have to program the new parameters in order to make parameter modifications.
There is no traversing movement if:
S No value is programmed in the NC block for X, Y and Z
S The number of repetitions K=0 was programmed
The retraction position is valid for all drilling cycles
S G98 Retraction to initial plane
S G99 Retraction to reference plane
Cycles and Contour Definition

3.3 Drilling cycles (ISO Dialect M)

Overview
Table 3-3 Overview of drilling cycles
External cycle call Description
G73 X.. Y.. Z.. R.. F.. Q.. Deep hole drilling cycle with chipbreaking
G74 X.. Y.. Z.. R.. F.. P.. Counterclockwise tapping cycle
G76 X.. Y.. Z.. R.. F.. Q.. P.. Fine drilling cycle
G80 Cycle off; the cycle is also deselected by programming a G
function of the 1st G group.
G81 X.. Y.. Z.. R.. F.. Drilling cycle; drilling, retraction with G00
G82 X.. Y.. Z.. R.. F.. P.. Drilling cycle; drilling, dwell, retraction with G00
G83 X.. Y.. Z.. R.. F.. Q.. Deep hole drilling cycle with swarf removal
G84 X.. Y.. Z.. R.. F.. P.. Clockwise tapping cycle
G85 X.. Y.. Z.. R.. F.. Drilling cycle; drilling, retraction with drilling feed
G86 X.. Y.. Z.. F.. R.. K.. Drilling cycle, retraction with G00
G87 X.. Y.. Z.. F.. R.. P.. Q.. K.. Reverse countersinking
G89 X.. Y.. Z.. F.. R.. P .. K.. Drilling cycle, retraction with machining feed
© Siemens AG, 2007. All rights reserved SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
3-99
Page 100
Cycles and Contour Definition
3.3 Drilling cycles (ISO Dialect M)
03.07
Cycle call from ISO Dialect M mode
G81 G82 G85 G86 G89
G73 G83
G84 G74
G76 G87
Switchover to Siemens mode
Fig. 3-2 Assignment of the cycle call in ISO Dialect M mode via shell cycle for Siemens
standard cycle
Shell cycle
CYCLE381M
CYCLE383M
CYCLE384M
CYCLE387M
Siemens standard cycle
CYCLE82 CYCLE85 CYCLE88
CYCLE83
CYCLE3841
CYCLE86 CYCLE861
Example: ISO Dialect M
N10 G81 X100. Z-50. R20 F100
G81 automatically calls the shell cycle CYCLE381M. The calculations are performed in the shell cycle and the standard drilling cycle CYCLE81 is then called.
Parameter description
G7V or G8V X.. Y.. Z.. R.. P.. Q.. F.. K..
Drill-hole
position
Number of repetitions
If K was not programmed, the cycle is executed once
Machining feed
Const. single drilling depth for G73, G83
Lift-off distance for G76
Dwell time at drill-hole depth for G82, G84, G76, G89
Reference plane Drill-hole depth
3-100
Fig. 3-3 Description of parameters allowed for G17 (X/Y plane)
SINUMERIK 802D sl840D/840D sl/840Di/840Di sl810D ISO Dialects (FBFA) -- 03.07 Edition
© Siemens AG, 2007. All rights reserved
Loading...