Siemens Sinumerik 840D sl Programming Manual

Siemens Sinumerik 840D sl Programming Manual

Job planning
Hide thumbs Also See for Sinumerik 840D sl:
Table of Contents
 
SINUMERIK
SINUMERIK 840D sl/828D
Valid for 
SINUMERIK 840D sl / 840DE sl
SINUMERIK 828D 
Software Version
CNC-Software2.7 CNC software version2.7
02/2011
6FC5398-2BP40-1BA0
Preface
Transformations
Oscillation
Grinding
Tables
Appendix
10 
11 
12 
13 
14 
15 
16 
17 
Table of Contents
loading

Summary of Contents for Siemens Sinumerik 840D sl

  • Page 1: Table Of Contents

    Flexible NC programming   2  File and Program Management 3  Protection zones SINUMERIK 4  Special Motion Commands Coordinate transformation 5  SINUMERIK 840D sl/828D (FRAMES) Job planning 6  Transformations 7  Tool offsets 8  Programming Manual Path traversing behavior 9  Axis couplings 10 ...
  • Page 2 Note the following: WARNING Siemens products may only be used for the applications described in the catalog and in the relevant technical documentation. If products and components from other manufacturers are used, these must be recommended or approved by Siemens. Proper transport, storage, installation, assembly, commissioning, operation and maintenance are required to ensure that the products operate safely and without any problems.
  • Page 3: Programming Manual

    Training For information about the range of training courses, refer under: • www.siemens.com/sitrain SITRAIN - Siemens training for products, systems and solutions in automation technology • www.siemens.com/sinutrain SinuTrain - training software for SINUMERIK FAQs You can find Frequently Asked Questions in the Service&Support pages under Product Support.
  • Page 4 Preface SINUMERIK You can find information on SINUMERIK under the following link: www.siemens.com/sinumerik Target group This publication is intended for: • Programmers • Project engineers Benefits With the programming manual, the target group can develop, write, test, and debug programs and software user interfaces.
  • Page 5: Job Planning

    Preface Information on structure and contents "Fundamentals" and "Advanced" Programming Manual The description of the NC programming is divided into two manuals: 1. Fundamentals This "Fundamentals" Programming Manual is intended for use by skilled machine operators with the appropriate expertise in drilling, milling and turning operations. Simple programming examples are used to explain the commands and statements which are also defined according to DIN 66025.
  • Page 6 Preface Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 7 Table of contents Preface.................................3 Flexible NC programming .........................17 Variables............................ 17 1.1.1 General information about variables ..................17 1.1.2 System variables ........................18 1.1.3 Predefined user variables: Arithmetic parameters (R) ............... 21 1.1.4 Predefined user variables: Link variables .................. 23 1.1.5 Definition of user variables (DEF) ....................
  • Page 8 Table of contents 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P)..........99 1.12 Check structures........................106 1.12.1 Program loop with alternative (IF, ELSE, ENDIF) ..............107 1.12.2 Continuous program loop (LOOP, ENDLOOP) ............... 109 1.12.3 Count loop (FOR ... TO ..., ENDFOR) ..................110 1.12.4 Program loop with condition at start of loop (WHILE, ENDWHILE) .........
  • Page 9 Table of contents 1.25.2.9 RET subprogram return ......................185 1.25.2.10Parameterizable subprogram return jump (RET ...) ..............186 1.25.3 Subprogram call ........................193 1.25.3.1 Subprogram call without parameter transfer ................193 1.25.3.2 Subprogram call with parameter transfer (EXTERN) .............. 195 1.25.3.3 Number of program repetitions (P) ..................197 1.25.3.4 Modal subprogram call (MCALL) .....................
  • Page 10 Table of contents Coordinate transformation (FRAMES) ....................289 Coordinate transformation via frame variables ................ 289 5.1.1 Predefined frame variable ($P_BFRAME, $P_IFRAME, $P_PFRAME, $P_ACTFRAME) ..291 Frame variables / assigning values to frames ................. 297 5.2.1 Assigning direct values (axis value, angle, scale) ..............297 5.2.2 Reading and changing frame components (TR, FI, RT, SC, MI) ..........
  • Page 11 Table of contents 6.8.2 Cylinder surface transformation (TRACYL) ................375 6.8.3 Inclined axis (TRAANG) ......................383 6.8.4 Inclined axis programming (G05, G07) ..................386 Cartesian PTP travel ....................... 388 6.9.1 PTP for TRANSMIT ......................... 393 6.10 Constraints when selecting a transformation................397 6.11 Deselect transformation (TRAFOOF) ..................
  • Page 12 Table of contents Path traversing behavior .........................463 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL)........463 Feedrate response (FNORM, FLIN, FCUB, FPO) ..............470 Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE)..........................475 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF)....... 478 Preventing program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) ......
  • Page 13 Table of contents 10.1.3 Actions (DO) ..........................565 10.2 Operators for conditions and actions..................566 10.3 Main run variables for synchronized actions ................568 10.3.1 System variables ........................568 10.3.2 Implicit type conversion ......................570 10.3.3 GUD variables ......................... 571 10.3.4 Default axis identifier (NO_AXIS) ....................
  • Page 14: Punching And Nibbling

    Table of contents 10.5.3 Default parameter initialization ....................640 10.5.4 Control processing of technology cycles (ICYCOF, ICYCON) ..........641 10.5.5 Cascading technology cycles ....................642 10.5.6 Technology cycles in non-modal synchronized actions ............642 10.5.7 Check structures (IF) ....................... 643 10.5.8 Jump instructions (GOTO, GOTOF, GOTOB) .................
  • Page 15 Table of contents User stock removal programs .........................725 15.1 Supporting functions for stock removal ................... 725 15.2 Generate contour table (CONTPRON)..................726 15.3 Generate coded contour table (CONTDCON)................. 732 15.4 Determine point of intersection between two contour elements (INTERSEC) ......736 15.5 Execute the contour elements of a table block-by-block (EXECTAB) ........
  • Page 16 16.1.39 High speed cutting (HSC) - CYCLE_HSC ................823 Tables ..............................825 17.1 Operations ..........................825 17.2 Operations: Availability for SINUMERIK 828D ................ 877 17.3 Currently set language in the HMI ................... 899 Appendix ..............................901 List of abbreviations......................... 901 Overview..........................906 Glossary ..............................909 Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 17: Flexible Nc Programming

    Flexible NC programming Variables 1.1.1 General information about variables The use of variables, especially in conjunction with arithmetic functions and check structures, enables part programs and cycles to be set up with extremely high levels of flexibility. For this purpose the system makes three different types of variable available. •...
  • Page 18: Flexible Nc Programming

    Flexible NC programming 1.1 Variables See also System variables System variables [Page 18] Predefined user variables: Arithmetic parameters (R) Predefined user variables: Arithmetic parameters (R) [Page 21] Predefined user variables: Link variables Predefined user variables: Link variables [Page 23] Attribute: Initialization value Attribute: Initialization value [Page 34] Attribute: Limit values (LLI, ULI) Attribute: Limit values (LLI, ULI) [Page 37] Attribute: Physical unit (PHU) Attribute: Physical unit (PHU) [Page 39] Attribute: Access rights (APR, APW, APRP, APWP, APRB, APWB) Attribute: Access rights...
  • Page 19 Flexible NC programming 1.1 Variables Prefix system In order that they can be specifically identified, the names of system variables are usually preceded by a prefix comprising the $ sign followed by one or two letters and an underscore. $ + 1. Letter Significance: Data type System variables which are read/written during preprocessing Machine data...
  • Page 20 Flexible NC programming 1.1 Variables Use of machine and setting data in synchronized actions When machine and setting data are used in synchronized actions, the prefix can be used to define whether the machine or setting data will be read/written synchronous to the preprocessing run or the main run.
  • Page 21: Predefined User Variables: Arithmetic Parameters (R)

    Flexible NC programming 1.1 Variables 1.1.3 Predefined user variables: Arithmetic parameters (R) Function Arithmetic parameters or R-parameters are predefined user variables with the designation R, defined as an array of the REAL data type. For historical reasons, notation both with array index, e.g.
  • Page 22 Flexible NC programming 1.1 Variables Number of the R-parameter : Type: Range of 0 - MAX_INDEX values: Note MAX_INDEX is calculated from the parameterized number of R-parameters: MAX_INDEX = (MD28050 $MN_MM_NUM_R_PARAM) Array index Any expression can be used as an array index, as long as the result of the expression can be converted into the INT data type (INT, REAL, BOOL, CHAR).
  • Page 23: Predefined User Variables: Link Variables

    Flexible NC programming 1.1 Variables 1.1.4 Predefined user variables: Link variables Function Link variables can be used in the context of the "NCU-Link" function for cyclic data exchange between NCUs which are linked on a network. They facilitate data-format-specific access to the link variables memory.
  • Page 24 Flexible NC programming 1.1 Variables Address index in bytes, counted from the start of the link variable memory : Data type: Range of values: 0 - MAX_INDEX Note • MAX_INDEX is calculated from the parameterized size of the link variables memory: MAX_INDEX = (MD18700 $MN_MM_SIZEOF_LINKVAR_DATA) - 1 •...
  • Page 25: Definition Of User Variables (Def)

    Flexible NC programming 1.1 Variables NCU2 NCU2 uses link variable $A_DLR[ 16 ] to read the actual current value of axis AX2 from the link variables memory cyclically in the interpolation cycle in a static synchronized action. If the actual current value is greater than 23.0 A, alarm 61000 is displayed. Program code N222 IDS=1 WHEN $A_DLR[16] >...
  • Page 26 Flexible NC programming 1.1 Variables User variables must be defined before they can be used (read/write). The following rules must be observed in this context: • GUD have to be defined in a definition file, e.g. _N_DEF_DIR/_M_SGUD_DEF. • PUD and LUD have to be defined in a definition section of the part program. •...
  • Page 27 Flexible NC programming 1.1 Variables Point in time at which the variable is reinitialized (optional) : Power On INIPO: End of main program, NC reset or Power On INIRE: NewConfig or end of main program, NC reset or INICF: Power On End of main program, NC reset following local PRLOC: change or Power On See "Attribute: Initialization value [Page 34]"...
  • Page 28 ; Access rights: Part program: Write/read = 3 = end user OPI: Write = 0 = Siemens, read = 3 = end user ; Initialization value: ZEIT_1 = 12.0, ZEIT_2 = 45.0 DEF NCK APWP 3 APRP 3 APWB 0 APRB 3 STRING[5] GUD5_NAME = "COUNTER"...
  • Page 29 Flexible NC programming 1.1 Variables Example 2: Program-global and program-local user variables (PUD/LUD) Program code Comment PROC MAIN ; Main program DEF INT VAR1 ; PUD definition SUB2 ; Subprogram call Program code Comment PROC SUB2 ; Subprogram SUB2 DEF INT VAR2 ;...
  • Page 30 Flexible NC programming 1.1 Variables General conditions Global user variables (GUD) In the context of the definition of global user variables (GUD), the following machine data has to be taken into account: Identifier: $MN_ Significance 11140 GUD_AREA_ SAVE_TAB Additional save for GUD blocks MM_NUM_GUD_MODULES Number of GUD files in the active file system 18118...
  • Page 31: Redefinition Of System Variables, User Variables, And Nc Language Commands (Redef)

    Flexible NC programming 1.1 Variables If this is not the case, the variable has to be loaded at the start of the part program or, as in the following example, the AXNAME(...) function (see "") has to be used. Program code Comment DEF NCK STRING[5] ACHSE="X"...
  • Page 32 Flexible NC programming 1.1 Variables Significance Command for the redefinition of a specific system variable, user REDEF: variable, and NC language command attribute Name of a predefined variable or an NC language command : Preprocessing stop : Preprocessing stop while reading SYNR: Preprocessing stop while writing SYNW:...
  • Page 33 Flexible NC programming 1.1 Variables Point in time at which the variable is reinitialized : POWER ON INIPO: End of main program, NC reset or POWER ON INIRE: NewConfig or end of main program, NC reset or INICF: POWER ON End of main program, NC reset following local PRLOC: change or POWER ON...
  • Page 34: Attribute: Initialization Value

    Flexible NC programming 1.1 Variables General conditions Granularity A redefinition is always applied to the entire variable which is uniquely identified by its name. Array variables do not, for example, support the assignment of different attributes to individual array elements. See also General information about variables General information about variables [Page 17] 1.1.7...
  • Page 35 Flexible NC programming 1.1 Variables Reinitialization time During redefinition a point in time can be specified at which the variable should be reinitialized, i.e. reset to the initialization value. • INIPO (POWER ON) The variable is reinitialized at POWER ON. •...
  • Page 36 Flexible NC programming 1.1 Variables Table 1-1 Programmable setting data Number Identifier G command 43790 $SA_OSCILL_START_POS 1) This G command is used to address the setting data. General conditions Initialization value: Global user variables (GUD) • Only INIPO (POWER ON) can be defined as the initialization time for global user variables (GUD) with the NCK range of validity.
  • Page 37: Attribute: Limit Values (Lli, Uli)

    Flexible NC programming 1.1 Variables Implicit initialization value: AXIS data type For variables of the AXIS data type the following implicit initialization value is used: • System data: "First geometry axis" • Synchronized action GUD (Designation: SYG_A*), PUD, LUD: Axis identifier from machine data: MD20082 $MC_AXCONF_CHANAX_DEFAULT_NAME Implicit initialization value: Tool and magazine data Initialization values for tool and magazine data can be defined using the following machine data: MD17520 $MN_TOOL_DEFAULT_DATA_MASK...
  • Page 38 Flexible NC programming 1.1 Variables If the implicit initialization value is outside the definition range specified by the programmed limit values, the variable is initialized with the limit value which is closest to the implicit initialization value: • Implicit initialization value < lower limit value (LLI) ⇒ initialization value = lower limit value •...
  • Page 39: Attribute: Physical Unit (Phu)

    Flexible NC programming 1.1 Variables 1.1.9 Attribute: Physical unit (PHU) A physical unit can only be specified for variables of the following data types: • • REAL Programmable physical units (PHU) The physical unit is specified as fixed point number: PHU The following physical units can be programmed: ...
  • Page 40 Flexible NC programming 1.1 Variables Meaning Physical unit [ m/s], [ feet/s ] Peripheral speed Resistance [ ohm ] Inductance [ mH ] [ Nm ] Torque [ Nm/A ] Torque constant Current controller gain [ V/A ] [ Nm/(rad*s) ] Speed controller gain Speed [ rpm ]...
  • Page 41: Attribute: Access Rights (Apr, Apw, Aprp, Apwp, Aprb, Apwb)

    Flexible NC programming 1.1 Variables NOTICE Compatibility of units When using variables (assignment, comparison, calculation, etc.) the compatibility of the units involved is not checked. Should conversion be required, this is the sole responsibility of the user/machine manufacturer. See also General information about variables General information about variables [Page 17] 1.1.10 Attribute: Access rights (APR, APW, APRP, APWP, APRB, APWB)
  • Page 42: Protection Zones

    Flexible NC programming 1.1 Variables Redefinition (REDEF) of system and user variables Access rights (APR.../APW...) can be redefined for the following variables: • System data Machine data Setting data FRAME Process data Leadscrew error compensation data (LEC) Sag compensation (CEC) Quadrant error compensation (QEC) Magazine data Tool data...
  • Page 43 Flexible NC programming 1.1 Variables Redefinition (REDEF) of NC language commands The access or execution right (APX) can be redefined for the following NC language commands: • G functions/Preparatory functions References: /PG/ Programming Manual, Fundamentals; Chapter: G functions/Preparatory functions • Predefined functions References: /PG/ Programming Manual, Fundamentals;...
  • Page 44 Flexible NC programming 1.1 Variables • APRP 3/APWP 3 During part program processing the end user password has to be set. The cycle has to be stored in the _N_CUS_DIR (user), _N_CMA_DIR or _N_CST_DIR directory. The execution rights must be set to at least end user for the _N_CUS_DIR, _N_CMA_DIR or _N_CST_DIR directories in machine data MD11162 $MN_ACCESS_EXEC_CUS, MD11161 $MN_ACCESS_EXEC_CMA or MD11160 $MN_ACCESS_EXEC_CST respectively.
  • Page 45 Flexible NC programming 1.1 Variables For continuous access protection, the machine data for the execution rights and the access protection for the corresponding directories have to be modified consistently. In principle, the procedure is as follows: • Creation of the necessary definition files: _N_DEF_DIR/_N_SACCESS_DEF _N_DEF_DIR/_N_MACCESS_DEF _N_DEF_DIR/_N_UACCESS_DEF...
  • Page 46: Overview Of Definable And Redefinable Attributes

    Flexible NC programming 1.1 Variables 1.1.11 Overview of definable and redefinable attributes The following tables show which attributes can be defined (DEF) and/or redefined (REDEF) for which data types. System data Data type Init. value Limit values Physical unit Access rights Machine data REDEF Setting data...
  • Page 47: Definition And Initialization Of Array Variables (Def, Set, Rep)

    Flexible NC programming 1.1 Variables 1.1.12 Definition and initialization of array variables (DEF, SET, REP) Function A user variable can be defined as a 1- up to a maximum of a 3-dimensional array. • 1­dimensional: DEF [] •...
  • Page 48 Flexible NC programming 1.1 Variables Syntax (DEF...=SET...) Using a value list: • During definition: DEF [,,]=SET(,, etc.) Equivalent to: DEF [,,]=(,, etc.) Note SET does not have to be specified for initialization via a value list. •...
  • Page 49 Flexible NC programming 1.1 Variables Variable name. : Array sizes or array indices [,,]: Array size or array index for 1st dimension : Type: INT (for system variables, also AXIS) Range of values: Max. array size: 65535 Array index: 0 ≤ n ≤ 65534 Array size or array index for 2nd dimension : Type:...
  • Page 50 Flexible NC programming 1.1 Variables Array index The implicit sequence of the array elements, e.g. in the case of value assignment using SET or REP, is right to left due to iteration of the array index. Example: Initialization of a 3-dimensional array with 24 array elements: DEF INT FELD[2,3,4] = REP(1,24) 1st array element FELD[0,0,0] = 1...
  • Page 51 Flexible NC programming 1.1 Variables Example: Initializing complete variable arrays For the actual assignment, refer to the diagram. Program code N10 DEF REAL FELD1[10,3]=SET(0,0,0,10,11,12,20,20,20,30,30,30,40,40,40,) N20 ARRAY1[0,0] = REP(100) N30 ARRAY1[5,0] = REP(-100) N40 FELD1[0,0]=SET(0,1,2,-10,-11,-12,-20,-20,-20,-30, , , ,-40,-40,-50,-60,-70) N50 FELD1[8,1]=SET(8.1,8.2,9.0,9.1,9.2) See also Definition and initialization of array variables (DEF, SET, REP): Further Information Definition and initialization of array variables (DEF, SET, REP): Further Information [Page 52] General information about variables General information about variables [Page 17]...
  • Page 52: Definition And Initialization Of Array Variables (Def, Set, Rep): Further Information

    Flexible NC programming 1.1 Variables 1.1.13 Definition and initialization of array variables (DEF, SET, REP): Further Information Further information (SET) initialization during definition • Starting with the 1st array element, as many array elements are assigned with the values from the value list as there are elements programmed in the value list. •...
  • Page 53 Flexible NC programming 1.1 Variables Further information (REP) initialization during definition • All or the optionally specified number of array elements are initialized with the specified value (constant). • Variables of the FRAME data type cannot be initialized. Example: Program code Comments DEF REAL varName[10]=REP(3.5,4) ;...
  • Page 54 Flexible NC programming 1.1 Variables NOTICE Value assignments to axial machine data In the case of value assignments to axial machine data using SET or REP, the AXIS data type array index is ignored or not processed. Memory requirements Data type Memory requirement per element 1 byte BOOL...
  • Page 55: Data Types

    Flexible NC programming 1.1 Variables 1.1.14 Data types The following data types are available in the NC: Data type Significance Value Range Integer with sign -2147483648 ... +2147483647 REAL Real number (LONG REAL to IEEE) -308 +308 ±( ∼ 2,2*10 …...
  • Page 56: Indirect Programming

    Flexible NC programming 1.2 Indirect programming Indirect programming 1.2.1 Indirectly programming addresses Function When indirectly programming addresses, the extended address (index) is replaced by a variable with a suitable type. Note It is not possible the indirectly program addresses for: •...
  • Page 57 Flexible NC programming 1.2 Indirect programming Example 2: Indirectly programming an axis Direct programming: Program code Comments FA[U]=300 ; Feed rate 300 for axis "U". Indirect programming: Program code Comments DEF AXIS AXVAR2=U ; Defining a variable, type AXIS and value assignment. FA[AXVAR2]=300 ;...
  • Page 58 Flexible NC programming 1.2 Indirect programming Example 5: Indirectly programming an axis Direct programming: Program code G2 X100 I20 Indirect programming: Program code Comments DEF AXIS AXVAR1=X ; Defining a variable, type AXIS and value assignment. G2 X100 IP[AXVAR1]=20 ; Indirect programming the center point data for the axis, whose address name is saved in the variable with the name AXVAR1.
  • Page 59: Indirectly Programming G Codes

    Flexible NC programming 1.2 Indirect programming 1.2.2 Indirectly programming G codes Function Indirect programming of G codes permits cycles to be effectively programmed. Syntax G[]= Meaning G command with extension (index) G[...]: Index parameter: G function group : Type: Variable for the G code number : Type: INT or REAL...
  • Page 60: Indirectly Programming Position Attributes (Bp)

    Flexible NC programming 1.2 Indirect programming Example 2: Level selection (G function group 6) Program code Comment N2010 R10=$P_GG[6] ; read active G function of G function group 6 N2090 G[6]=R10 References For information on the G function groups, refer to: Programming Manual, Fundamentals;...
  • Page 61 Flexible NC programming 1.2 Indirect programming Significance The following positioning commands can be []: programmed together with the key word BP: POS, POSA,SPOS, SPOSA Also possible: • All axis and spindle identifiers present in the channel: • Variable axis/spindle identifier AX Axis/spindle that is to be positioned : Key word for positioning...
  • Page 62 Flexible NC programming 1.2 Indirect programming Example For an active synchronous spindle coupling between the leading spindle S1 and the following spindle S2, the following replacement cycle to position the spindle is called using the SPOS command in the main program. Positioning is realized using the instruction in N2230: SPOS[1]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE) SPOS[2]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)
  • Page 63: Indirectly Programming Part Program Lines (Execstring)

    Flexible NC programming 1.2 Indirect programming 1.2.4 Indirectly programming part program lines (EXECSTRING) Function Using the part program command EXECSTRING, it is possible to execute a previously generated string variable as part program line. Syntax EXECSTRING is programmed in a separate part program line: EXECSTRING () Meaning Command to execute a string variable as part program line...
  • Page 64: Arithmetic Functions

    Flexible NC programming 1.3 Arithmetic functions Arithmetic functions Function The arithmetic functions are primarily for R parameters and variables (or constants and functions) of type REAL. The types INT and CHAR are also permitted. Operator / arithmetic function Meaning Addition Subtraction Multiplication Division Notice: (type INT)/(type INT)=(type REAL);...
  • Page 65 Flexible NC programming 1.3 Arithmetic functions Variable value within the defined value range BOUND () (see "Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) [Page 71]") Translation CTRANS() Rotation CROT () Change of scale CSCALE() Mirroring CMIRROR() Programming The usual mathematical notation is used for arithmetic functions. Priorities for execution are indicated by parentheses.
  • Page 66 Flexible NC programming 1.3 Arithmetic functions Example 2: Initializing complete variable arrays Program code Comment R1=R1+1 ; New R1 = old R1 +1 R1=R2+R3 R4=R5-R6 R7=R8*R9 R10=R11/R12 R13=SIN(25.3) R14=R1*R2+R3 ; Multiplication or division takes precedence over addition or subtraction. R14=(R1+R2)*R3 ;...
  • Page 67: Comparison And Logic Operations

    Flexible NC programming 1.4 Comparison and logic operations Comparison and logic operations Function Comparison operations can be used , for example, to formulate a jump condition. Complex expressions can also be compared. The comparison operations are applicable to variables of type CHAR, INT, REAL and BOOL. The code value is compared with the CHAR type.
  • Page 68 Flexible NC programming 1.4 Comparison and logic operations Bit-by-bit logic operator Significance Bit-serial AND B_AND Bit-serial OR B_OR Bit-serial negation B_NOT Bit-serial exclusive OR B_XOR Note In arithmetic expressions, the execution order of all the operators can be specified by parentheses, in order to override the normal priority rules.
  • Page 69: Precision Correction On Comparison Errors (Trunc)

    Flexible NC programming 1.5 Precision correction on comparison errors (TRUNC) Precision correction on comparison errors (TRUNC) Function The TRUNC command truncates the operand multiplied by a precision factor. Settable precision for comparison commands Program data of type REAL are displayed internally with 64 bits in IEEE format. This display format can cause decimal numbers to be displayed imprecisely and lead to unexpected results when compared with the ideally calculated values.
  • Page 70 Flexible NC programming 1.5 Precision correction on comparison errors (TRUNC) Examples Example 1: Precision considerations Program code Comments N40 R1=61.01 R2=61.02 R3=0.01 Assignment of initial values N41 IF ABS(R2-R1) > R3 GOTOF ERROR Jump would have been executed up until now N42 M30 End of program N43 ERROR: SETAL(66000)
  • Page 71: Variable Minimum, Maximum And Range (Minval, Maxval And Bound)

    Flexible NC programming 1.6 Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) Function The MINVAL and MAXVAL commands can be used to compare the values of two variables. The smaller value (in the case of MINVAL) or the larger value (in the case of MAXVAL) respectively is delivered as a result.
  • Page 72 Flexible NC programming 1.6 Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) Note MINVAL, MAXVAL, and BOUND can also be programmed in synchronized actions. Note Behavior if values are equal If the values are equal MINVAL/MAXVAL are set to this equal value. In the case of BOUND the value of the variable to be tested is returned again.
  • Page 73: Priority Of The Operations

    Flexible NC programming 1.7 Priority of the operations Priority of the operations Function Each operator is assigned a priority. When an expression is evaluated, the operators with the highest priority are always applied first. Where operators have the same priority, the evaluation is from left to right.
  • Page 74: Possible Type Conversions

    Flexible NC programming 1.8 Possible type conversions Possible type conversions Function Type conversion on assignment The constant numeric value, the variable, or the expression assigned to a variable must be compatible with the variable type. If this is this case, the type is automatically converted when the value is assigned.
  • Page 75: String Operations

    Flexible NC programming 1.9 String operations String operations Sting operations In addition to the classic operations "assign" and "comparison" the following string operations are possible: • Type conversion to STRING (AXSTRING) [Page 76]  • Type conversion from STRING (NUMBER, ISNUMBER, AXNAME) [Page 77]  •...
  • Page 76: Type Conversion To String (Axstring)

    Flexible NC programming 1.9 String operations 1.9.1 Type conversion to STRING (AXSTRING) Function Using the function "type conversion to STRING" variables of different types can be used as a component of a message (MSG). When using the << operator this is realized implicitly for data types INT, REAL, CHAR and BOOL (see "Concatenation of strings (<<) [Page 78]")..
  • Page 77: Type Conversion From String (Number, Isnumber, Axname)

    Flexible NC programming 1.9 String operations 1.9.2 Type conversion from STRING (NUMBER, ISNUMBER, AXNAME) Function A conversion is made from STRING to REAL using the NUMBER command. The ability to be converted can be checked using the ISNUMBER command. A string is converted into the axis data type using the AXNAME command. Syntax =NUMBER("") =ISNUMBER("")
  • Page 78: Concatenation Of Strings (<<)

    Flexible NC programming 1.9 String operations Example Program code Comments DEF BOOL BOOL_ERG DEF REAL REAL_ERG DEF AXIS AXIS_ERG BOOL_ERG=ISNUMBER("1234.9876Ex-7") ; BOOL_ERG == TRUE BOOL_ERG=ISNUMBER("1234XYZ") ; BOOL_ERG == FALSE REAL_ERG=NUMBER("1234.9876Ex-7") ; REAL_ERG == 1234.9876Ex-7 AXIS_ERG=AXNAME("X") ; AXIS_ERG == X 1.9.3 Concatenation of strings (<<) Function The function "concatenation strings"...
  • Page 79: Conversion To Lower/Upper Case Letters (Tolower, Toupper)

    Flexible NC programming 1.9 String operations Examples Example 1: Concatenation of strings Program code Comments DEF INT IDX=2 DEF REAL VALUE=9.654 DEF STRING[20] STRG="INDEX:2" IF STRG=="Index:"<
  • Page 80: Determine Length Of String (Strlen)

    Flexible NC programming 1.9 String operations Example Because user inputs can be initiated on the operator interface, they can be given standard capitalization (upper or lower case): Program code DEF STRING [29] STRG IF "LEARN.CNC"==TOUPPER(STRG) GOTOF LOAD_LEARN 1.9.5 Determine length of string (STRLEN) Function The STRLEN command can be used to determine the length of a character string.
  • Page 81: Search For Character/String In The String (Index, Rindex, Mindex, Match)

    Flexible NC programming 1.9 String operations 1.9.6 Search for character/string in the string (INDEX, RINDEX, MINDEX, MATCH) Function This functionality searches for single characters or a string within a string. The function results specify where the character/string is positioned in the string that has been searched. Syntax INT_ERG=INDEX(STRING,CHAR) ;...
  • Page 82: Selection Of A Substring (Substr)

    Flexible NC programming 1.9 String operations Program code Comments PFADIDX = INDEX (INPUT, "/") +1 ; Therefore the following applies: PFADIDX = 1 PROGIDX = RINDEX (INPUT, "/") +1 ; Therefore the following applies: PROGIDX = 12 The SUBSTR function introduced in the next section can be used to break-up variable INPUT in the components "path"...
  • Page 83: Selection Of A Single Character (Stringvar, Stringfeld)

    Flexible NC programming 1.9 String operations 1.9.8 Selection of a single character (STRINGVAR, STRINGFELD) Function This functionality selects a single character from a string. This applies both to read access and write access operations. Syntax CHAR_ERG = STRINGVAR [IDX] ; Result type: CHAR CHAR_ERG = STRINGFELD [IDX_FELD, IDX_CHAR] ;...
  • Page 84: Formatting A String (Sprint)

    Flexible NC programming 1.9 String operations Example 2: Single character access with call-by-reference parameter Program code Comments DEF STRING [50] STRG DEF CHAR CHR1 EXTERN UP_CALL (VAR CHAR1) Call-by-reference parameters! … CHR1 = STRG [5] UP_CALL (CHR1) Call-by-reference STRG [5] = CHR1 1.9.9 Formatting a string (SPRINT) Function...
  • Page 85 Flexible NC programming 1.9 String operations Format descriptions available Conversion into the "TRUE" string, if the value to be converted: • is not equal to 0. • is not an empty string (for string values). Conversion into the "FALSE" string, if the value to be converted: •...
  • Page 86 Flexible NC programming 1.9 String operations Conversion into a string with a decimal number with 6 decimal places and a total %F: length of at least characters. Where relevant, the decimal places are rounded- off or filled with 0. Missing characters are filled up to the total length using spaces, left-justified.
  • Page 87 Flexible NC programming 1.9 String operations Conversion into a string with a decimal number in the exponential representation. %.E: The mantissa is saved, normalized with one pre-decimal place and decimal places. Where relevant, the decimal places are rounded-off or filled with 0. The exponent starts with the keyword "EX".
  • Page 88 Flexible NC programming 1.9 String operations Conversion into a string with a decimal number – depending on the value range – in %G: a decimal or exponential notation (like %G). The string has a total length of at least characters. The missing characters are filled with spaces, left-justified. Example with decimal notation: N10 DEF REAL REAL_VAR=1.234567890123456EX-04 N20 DEF STRING[80] RESULT...
  • Page 89 Flexible NC programming 1.9 String operations Converting a REAL value into an INTEGER value taking into account decimal %.P: places. The INTEGER value is output as a 32-bit binary number. If the value to be converted cannot be represented with 32 bits, then processing is interrupted with an alarm.
  • Page 90 Flexible NC programming 1.9 String operations Conversion of a REAL value corresponding to the setting in machine data %.P: MD10751 $MN_SPRINT_FORMAT_P_DECIMAL into a string with: • an integer number of + places or • a decimal number with a maximum of pre-decimal places and precisely ...
  • Page 91 Flexible NC programming 1.9 String operations Inserting characters of a string (starting with the first character). The total %.S: length of the generated string has at least characters. The missing places are filled with spaces. Example: N10 DEF STRING[16] STRING_VAR="ABCDEFG" N20 DEF STRING[80] RESULT N30 RESULT=SPRINT("CONTENT OF STRING_VAR:%10.5S", STRING_VAR) Result: The character string "CONTENT OF STRING_VAR:xxxxxABCDE"...
  • Page 92 Flexible NC programming 1.9 String operations Note The table indicates that the NC data types AXIS and FRAME cannot be directly used in the SPRINT function. However it is possible: • to convert the AXIS data type into a string using the AXSTRING function – which can then be processed with SPRINT.
  • Page 93: Program Jumps And Branches

    Flexible NC programming 1.10 Program jumps and branches 1.10 Program jumps and branches 1.10.1 Return jump to the start of the program (GOTOS) Function The GOTOS command can be used to jump back to the beginning of a main or sub program in order to repeat the program.
  • Page 94: Program Jumps To Jump Markers (Gotob, Gotof, Goto, Gotoc)

    Flexible NC programming 1.10 Program jumps and branches Example Program code Comments N10 ... ; Beginning of the program N90 GOTOS ; Jump to beginning of the program 1.10.2 Program jumps to jump markers (GOTOB, GOTOF, GOTO, GOTOC) Function Jump markers (labels) can be set in a program, that can be jumped to from another location within the same program using the commands GOTOF, GOTOB, GOTO or GOTOC.
  • Page 95 Flexible NC programming 1.10 Program jumps and branches Jump destination parameter : : Jump destination is the jump marker (label) set in the program with a user-defined name: : : Jump destination is main block or sub-block number (e.g.: 200, N300) STRING type Variable jump destination.
  • Page 96 Flexible NC programming 1.10 Program jumps and branches Examples Example 1: Jumps to jump markers Program code Comments N10 … N20 GOTOF Label_1 ; Jump towards the end of the program to the jump marker "Label_1". N30 … N40 Label_0: R1=R2+R3 ;...
  • Page 97: Program Branch (Case

    Flexible NC programming 1.10 Program jumps and branches Example 4: Jump with jump condition Program code Comments N40 R1=30 R2=60 R3=10 R4=11 R5=50 R6=20 ; Assignment of the initial values. N41 LA1: G0 X=R2*COS(R1)+R5 Y=R2*SIN(R1)+R6 ; Jump marker LA1 set. N42 R1=R1+R3 R4=R4-1 N43 IF R4>0 GOTOB LA1 ;...
  • Page 98 Flexible NC programming 1.10 Program jumps and branches Jump instruction with jump destination towards the end of the GOTOF: program. Instead ofGOTOF all other GOTO commands can be programmed (refer to the subject "Program jumps to jump markers"). A branch is made to this jump destination if the value of the :...
  • Page 99: Repeat Program Section (Repeat, Repeatb, Endlabel, P)

    Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Function Program section repetition allows you to repeat existing program sections within a program in any order. The program lines or program sections to be repeated are identified by jump markers (labels). Note Jump markers (labels) Jump markers are always located at the beginning of a block.
  • Page 100 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Note It is not possible to nest the REPEAT statement with the two jump markers in parentheses. If the appears before the REPEAT statement and the ...
  • Page 101 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Significance Command for repeating a program line REPEATB: Command for repeating a program section REPEAT: The identifies: : • the program line to be repeated (in the case of REPEATB) •...
  • Page 102 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Examples Example 1: Repeat individual program line Program code Comments N10 POSITION1: X10 Y20 N20 POSITION2: CYCLE(0,,9,8) ; Position cycle N30 ... N40 REPEATB POSITION1 P=5 ; Execute BLOCK N10 five times. N50 REPEATB POSITION2 ;...
  • Page 103 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Example 4: Repeat section between jump marker and ENDLABEL Program code Comments N10 G1 F300 Z-10 N20 BEGIN1: N30 X10 N40 Y10 N50 BEGIN2: N60 X20 N70 Y30 N80 ENDLABEL: Z10 N90 X0 Y0 Z0 N100 Z-10 N110 BEGIN3: X20...
  • Page 104 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Further information • Program section repetitions can be nested. Each call uses a subprogram level. • If M17 or RET is programmed during processing of a program section repetition, the repetition is canceled.
  • Page 105 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) • If jumps and program section repetitions are mixed, the blocks are executed purely sequentially. For example, if a jump is performed from a program section repetition, processing continues until the programmed end of the program section is found. Example: Program code N10 G1 F300 Z-10...
  • Page 106: Check Structures

    Flexible NC programming 1.12 Check structures 1.12 Check structures Function The control processes the NC blocks as standard in the programmed sequence. This sequence can be variable by programming alternative program blocks and program loops. These check structures are programmed using the check structure elements (key words) IF...ELSE, LOOP, FOR, WHILE and REPEAT.
  • Page 107: Program Loop With Alternative (If, Else, Endif)

    Flexible NC programming 1.12 Check structures Runtime response In interpreter mode (active as standard), it is possible to shorten program processing times more effectively by using program branches than can be obtained with check structures. There is no difference between program branches and check structures in precompiled cycles.
  • Page 108 Flexible NC programming 1.12 Check structures Significance Introduces the IF loop. Introduces the alternative program block. ELSE: Marks the end of the IF loop and results in a return jump to the ENDIF: beginning of the loop. Condition that determines which program block is executed. : Example Tool change subprogram...
  • Page 109: Continuous Program Loop (Loop, Endloop)

    Flexible NC programming 1.12 Check structures 1.12.2 Continuous program loop (LOOP, ENDLOOP) Function Endless loops are used in endless programs. At the end of the loop, there is always a branch back to the beginning. Syntax LOOP ENDLOOP Significance Initiates the endless loop. LOOP: Marks the end of the loop and results in a return jump to the beginning of the ENDLOOP:...
  • Page 110: Count Loop (For

    Flexible NC programming 1.12 Check structures 1.12.3 Count loop (FOR ... TO ..., ENDFOR) Function The count loop is used if an operation must be repeated with a fixed number of runs. Syntax FOR = TO ENDFOR Significance Initiates the count loop.
  • Page 111 Flexible NC programming 1.12 Check structures Examples Example 1: INTEGER variable or R parameter as count variable INTEGER variable as count variable: Program code Comments DEF INT iVARIABLE1 R10=R12-R20*R1 R11=6 FOR iVARIABLE1 = R10 TO R11 ; Count variable = INTEGER variable R20=R21*R22+R33 ENDFOR R parameter as count variable:...
  • Page 112: Program Loop With Condition At Start Of Loop (While, Endwhile)

    Flexible NC programming 1.12 Check structures 1.12.4 Program loop with condition at start of loop (WHILE, ENDWHILE) Function For a WHILE loop, the condition is at the beginning of the loop. The WHILE loop is executed as long as the condition is fulfilled. Syntax WHILE ...
  • Page 113: Program Loop With Condition At The End Of The Loop (Repeat, Until)

    Flexible NC programming 1.12 Check structures 1.12.5 Program loop with condition at the end of the loop (REPEAT, UNTIL) Function For a REPEAT loop, the condition is at the end of the loop. The REPEAT loop is executed once and repeated continuously until the condition is fulfilled. Syntax REPEAT UNTIL ...
  • Page 114: Program Example With Nested Check Structures

    Flexible NC programming 1.12 Check structures 1.12.6 Program example with nested check structures Program code Comments LOOP IF NOT $P_SEARCH ; No block search G01 G90 X0 Z10 F1000 WHILE $AA_IM[X] <= 100 G1 G91 X10 F500 ; Hole drilling template Z–F100 ENDWHILE ELSE...
  • Page 115: Program Coordination (Init, Start, Waitm, Waitmc, Waite, Setm, Clearm)

    Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Function Channels A channel can process its own program independently of other channels. It can control the axes and spindles temporarily assigned to it via the program.
  • Page 116 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) • Relative path specification The same rules apply to relative path definition Example: as for program calls. INIT(2,"DRESS") INIT(3,"UNDER_1_SPF") With subprogram calls "_SPF" must be added to the program name. Parameters Variables, which all channels can access (NCK-specific global variables), can be used for data exchange between programs.
  • Page 117 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Note All the above commands must be programmed in separate blocks. The number of markers depends on the CPU used. Channel numbers Up to 10 channels can be specified as channel numbers (integer value) for the channels requiring coordination.
  • Page 118 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Example: program coordination Channel 1: _N_MPF100_MPF Program code Comments N10 INIT(2,"MPF200") N11 START(2) ; Processing in channel 2 N80 WAITM(1,1,2) ; Wait for WAIT marker 1 in channel 1 and in channel 2 additional processing in channel 1 N180 WAITM(2,1,2) ;...
  • Page 119 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Example: Program from workpiece Program code N10 INIT(2,"/_N_WKS_DIR/_N_SHAFT1_WPD/_N_CUT1_MPF") Example: INIT command with relative path specification Program /_N_MPF_DIR/_N_MAIN_MPF is selected in channel 1 Program code Comments N10 INIT(2,"MYPROG") ;...
  • Page 120: Interrupt Routine (Asub)

    Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14 Interrupt routine (ASUB) 1.14.1 Function of an interrupt routine Note The terms "asynchronous subprogram (ASUB)" and "interrupt routine" are used interchangeably in the description below to refer to the same functionality. Function A typical example should clarify the function of an interrupt routine: The tool breaks during machining.
  • Page 121: Creating An Interrupt Routine

    Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.2 Creating an interrupt routine Create interrupt routine as subprogram The interrupt routine is identified as a subprogram in the definition. Example: Program code Comments PROC LIFT_Z ; Program name "ABHEB_Z" N10 ... ;...
  • Page 122: Assign And Start Interrupt Routine (Setint, Prio, Blsync)

    Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.3 Assign and start interrupt routine (SETINT, PRIO, BLSYNC) Function The control has signals (inputs 1...8) that initiate that the program being executed is interrupted and a corresponding interrupt routine can be started. The assignment as to which input starts which program is realized in the part program using the SETINT command.
  • Page 123 Flexible NC programming 1.14 Interrupt routine (ASUB) Examples Example 1: Assign interrupt routines and define the priority Program code Comments N20 SETINT(3) PRIO=1 ABHEB_Z ; If input 3 switches, then interrupt routine "ABHEB_Z" should start. N30 SETINT(2) PRIO=2 ABHEB_X ; If input 2 switches, then interrupt routine "ABHEB_X"...
  • Page 124: Deactivating/Reactivating The Assignment Of An Interrupt Routine (Disable, Enable)

    Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.4 Deactivating/reactivating the assignment of an interrupt routine (DISABLE, ENABLE) Function A SETINT instruction can be deactivated with DISABLE and reactivated with ENABLE without losing the input  →  interrupt routine assignment. Syntax DISABLE() ENABLE() Significance Command: Deactivating the interrupt routine assignment of input ...
  • Page 125: Delete Assignment Of Interrupt Routine (Clrint)

    Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.5 Delete assignment of interrupt routine (CLRINT) Function An input  →  interrupt routine defined using SETINT can be deleted with CLRINT. Syntax CLRINT() Significance Command: Deleting the interrupt assignment of input CLRINT(): Parameter: Input number : Type:...
  • Page 126: Fast Retraction From The Contour (Setint Liftfast, Alf)

    Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.6 Fast retraction from the contour (SETINT LIFTFAST, ALF) Function For a SETINT instruction with LIFTFAST, when the input is switched, the tool is moved away from the workpiece contour using fast retraction. The further sequence is then dependent on whether the SETINT instruction includes an interrupt routine in addition to LIFTFAST: With interrupt routine:...
  • Page 127 Flexible NC programming 1.14 Interrupt routine (ASUB) Name of the subprogram (interrupt routine) that is to be executed. : Command: Fast retraction from contour LIFTFAST: ALF=… : Command: Programmable traverse direction (in motion block) Regarding the possibilities of programming with ALF refer to the subject " Traversing direction for fast retraction from the contour [Page 128] ".
  • Page 128: Traversing Direction For Fast Retraction From The Contour

    Flexible NC programming 1.14 Interrupt routine (ASUB) Subprogram: Subprogram Comments PROC W_CHANGE SAVE Subprogram where the actual operating state is saved N10 G0 Z100 M5 Tool changing position, spindle stop N20 T11 M6 D1 G41 Change tool N30 REPOSL RMB M3 Reposition at the contour and return jump into the main program (this is programmed in a block)
  • Page 129 Flexible NC programming 1.14 Interrupt routine (ASUB) With G41 activated (machining direction to the left of the contour) the tool vertically moves away from the contour. Reference plane for defining the traversing direction for LFTXT At the point of application of the tool to the programmed contour, the tool is clamped at a plane which is used as a reference for specifying the liftoff movement with the corresponding code number.
  • Page 130 Flexible NC programming 1.14 Interrupt routine (ASUB) Code numbers with traversing direction for LFTXT Starting from the reference plane, you will find the code numbers with traversing directions in the following diagram. The retraction in the tool direction is defined for ALF=1. The "fast retraction"...
  • Page 131: Motion Sequence For Interrupt Routines

    Flexible NC programming 1.14 Interrupt routine (ASUB) Code numbers with traversing directions for LFWP For LFWP, the direction in the working/machining plane has the following assignment: • G17: X/Y plane ALF=1: Retraction in the X direction ALF=3: Retraction in the Y direction •...
  • Page 132: Axis Replacement, Spindle Replacement (Release, Get, Getd)

    Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Function One or more axes or spindles can only ever be interpolated in one channel. If an axis has to alternate between two different channels (e.g., pallet changer) it must first be enabled in the current channel and then transferred to the other channel.
  • Page 133 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) GET request without preprocessing stop If, following a GET request without preprocessing stop, the axis is enabled again with RELEASE(axis) or WAITP(axis), a subsequent GET will induce a GET with preprocessing stop.
  • Page 134 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Example 2: Axis exchange without synchronization If the axis does not have to be synchronized no preprocessing stop is generated by GET. Programming Comments N01 G0 X0 N02 RELEASE(AX5) N03 G64 X10 N04 X20 N05 GET(AX5)
  • Page 135 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Description Release axis: RELEASE When enabling the axis please note: 1. The axis must not be involved in a transformation. 2. All the axes involved in an axis link (tangential control) must be enabled. 3.
  • Page 136 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Varying the axis replacement behavior The transfer point of axes can be set as follows using machine data: • Automatic axis replacement between two channels then also takes place when the axis has been brought to a neutral state by WAITP (response as before) •...
  • Page 137: Transfer Axis To Another Channel (Axtochan)

    Flexible NC programming 1.16 Transfer axis to another channel (AXTOCHAN) 1.16 Transfer axis to another channel (AXTOCHAN) Function The AXTOCHAN language command can be used to request an axis in order to move it to a different channel. The axis can be moved to the corresponding channel both from the NC part program and from a synchronized action.
  • Page 138 Flexible NC programming 1.16 Transfer axis to another channel (AXTOCHAN) Further information AXTOCHAN in the NC program A GET is only executed in the event of the axis being requested for the NC program in the same channel (this means that the system waits for the state to actually change). If the axis is requested for another channel or is to become the neutral axis in the same channel, the request is sent accordingly.
  • Page 139: Activate Machine Data (Newconf)

    Flexible NC programming 1.17 Activate machine data (NEWCONF) 1.17 Activate machine data (NEWCONF) Function The NEWCONF command is used to set all machine data of the "NEW_CONFIG" effectiveness level active. The function can also be activated in the HMI user interface by pressing the "MD data effective"...
  • Page 140: Write File (Write)

    Flexible NC programming 1.18 Write file (WRITE) 1.18 Write file (WRITE) Function Using the WRITE command, sets/data can be written from the NC program to the end of a specified file in the passive file system (log file). This can also be the program that is presently being executed.
  • Page 141 Flexible NC programming 1.18 Write file (WRITE) Significance Command for appending a block or data to the end of the specified file. WRITE: Parameter 1: Variable for returning the error value : Type. Value: 0 No error Path not allowed Path not found File not found Incorrect file type...
  • Page 142 Flexible NC programming 1.18 Write file (WRITE) Parameter 2: The name of the file in the passive file system in which the : specified block or specified data is to be added. Type: STRING The following points should be noted when specifying the file name: •...
  • Page 143 Flexible NC programming 1.18 Write file (WRITE) Note When writing into the passive file system of the NCK, the WRITE command implicitly inserts an "LF" character (LINE FEED = new line) at the end of the output string. This behavior does not apply for output on an external device/file. If an "LF" is also to be output, then this must be explicitly specified in the output string.
  • Page 144 Flexible NC programming 1.18 Write file (WRITE) Example 3: Implicit/explicit "LF" a, writing into the passive file system with implicitly generated "LF" Program code N110 DEF INT ERROR N120 WRITE(ERROR,"/_N_MPF_DIR/_N_MYPROTFILE_MPF","MY_STRING") N130 WRITE(ERROR,"/_N_MPF_DIR/_N_MYPROTFILE_MPF","MY_STRING") N140 M30 Output result: MY_STRING MY_STRING b, writing into an external file without implicitly generated "LF" Program code N200 DEF STRING[30] DEV_1 N210 DEF INT ERROR...
  • Page 145 Flexible NC programming 1.18 Write file (WRITE) Output result: MY_STRING MY_STRING See also Output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) Output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) [Page 710] Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 146: Delete File (Delete)

    Flexible NC programming 1.19 Delete file (DELETE) 1.19 Delete file (DELETE) Function The DELETE command can be used to delete all files, irrespective of whether these were created using the WRITE command or not. Files that were created using a higher access authorization can also be deleted with DELETE.
  • Page 147 Flexible NC programming 1.19 Delete file (DELETE) Name of the file to be deleted : Type: STRING The following points should be noted when specifying the file name: • The specified file name must not contain any blank spaces or control characters (characters with ASCII code ≤...
  • Page 148: Read Lines In The File (Read)

    Flexible NC programming 1.20 Read lines in the file (READ) 1.20 Read lines in the file (READ) Function The READ command reads one or several lines in the specified file and stores the information read in an STRING type array. In this array, each read line occupies an array element. Note The file must be stored in the NCK's static user memory (passive file system).
  • Page 149 Flexible NC programming 1.20 Read lines in the file (READ) Significance Command for reading lines from the specified file and storing these READ: lines in a variable array. Variable for returning the error value (call-by-reference parameter) : Type. Value: No error Path not allowed Path not found File not found...
  • Page 150 Flexible NC programming 1.20 Read lines in the file (READ) Name of the file to be read (call-by-value parameter) : Type: STRING The following points should be noted when specifying the file name: • The specified file name must not contain any blank spaces or control characters (characters with ASCII code ≤...
  • Page 151 Flexible NC programming 1.20 Read lines in the file (READ) Result variable (call-by-reference parameter) : Variable array in which the read text is stored. Type: STRING (max. length: 255) If fewer lines are specified in the parameter than the array size [,] of the result variable, the remaining array elements will not be modified.
  • Page 152: Check For Presence Of File (Isfile)

    Flexible NC programming 1.21 Check for presence of file (ISFILE) 1.21 Check for presence of file (ISFILE) Function The ISFILE command can be used to check whether a file exists in the NCK's static user memory (passive file system). Syntax =ISFILE("") Significance Command for checking if the specified file exists in the passive file...
  • Page 153 Flexible NC programming 1.21 Check for presence of file (ISFILE) Result variable to which the result of the check is assigned. : Type. BOOL Value: TRUE File exists FALSE File does not exist Example Program code Comment N10 DEF BOOL RESULT ;...
  • Page 154: Read Out File Information (Filedate, Filetime, Filesize, Filestat, Fileinfo)

    Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) Function The FILEDATE, FILETIME, FILESIZE, FILESTAT, and FILEINFO commands can be used to read out specific file information such as date/time of the last write access, current file size, file status or all of this information.
  • Page 155 Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) The FILEINFO command returns all file information for the specified FILEINFO: file which can be read out using FILEDATE, FILETIME, FILESIZE, and FILESTAT. Variable for returning the error value (call-by-reference parameter) : Type.
  • Page 156 Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) Name of the file from which the file information is to be read out. : Type: STRING The following points should be noted when specifying the file name: •...
  • Page 157 Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) Result variable (call-by-reference parameter) : Variable in which the requested file information is stored. Type: STRING With: FILEDATE Format: "dd.mm.yy" ⇒ string length must be 8. FILETIME Format: "hh:mm.ss"...
  • Page 158: Checksum Calculation Using An Array (Checksum)

    Flexible NC programming 1.23 Checksum calculation using an array (CHECKSUM) 1.23 Checksum calculation using an array (CHECKSUM) Function The CHECKSUM command can be used to calculate the checksum using an array. This checksum can be compared with the result of an earlier checksum calculation to ascertain whether the array data has changed.
  • Page 159 Flexible NC programming 1.23 Checksum calculation using an array (CHECKSUM) Name of the array to be used to generate the checksum (call-by- : value parameter) Type: STRING Max. string length: Permissible arrays are 1- to 3-dimensional arrays of the following types: BOOL, CHAR, INT, REAL, STRING Note:...
  • Page 160: Roundup (Roundup)

    Flexible NC programming 1.24 Roundup (ROUNDUP) 1.24 Roundup (ROUNDUP) Function Input values, type REAL (fractions with decimal point) can be rounded up to the next higher integer number using the ROUNDUP" function. Syntax ROUNDUP() Significance Command to roundup an input value ROUNDUP: Input value, type REAL :...
  • Page 161: Subprogram Technique

    Flexible NC programming 1.25 Subprogram technique 1.25 Subprogram technique 1.25.1 General information 1.25.1.1 Subprogram Function The term "subprogram" has its origins during the time when part programs were split strictly into main and subprograms. Main programs were the part programs selected for processing on the control and then launched.
  • Page 162: Subprogram Names

    Flexible NC programming 1.25 Subprogram technique Application As in all high-level programming languages, in the NC language, subprograms are used to swap out program sections used more than once to independent, self-contained programs. Subprograms offer the following advantages: • Increase the transparency and readability of programs •...
  • Page 163: Nesting Of Subprograms

    Flexible NC programming 1.25 Subprogram technique Using the program name When using the program name, e.g. in the context of a subprogram call, all combinations of prefix, program name, and suffix are possible. Example: The subprogram with the program name "SUB_PROG" can be started using the following calls: 1.
  • Page 164: Search Path

    13. In the event of an interrupt, the 4 program levels it requires (14 to 17) will be available to it. Siemens cycles Siemens cycles need 3 program levels. Therefore, a Siemens cycle must be called at the latest in: •...
  • Page 165: Formal And Actual Parameters

    Flexible NC programming 1.25 Subprogram technique 1.25.1.5 Formal and actual parameters Formal and actual parameters occur in conjunction with the definition and calling of subprograms with parameter transfer. Formal parameter When a subprogram is defined, the parameters to be transferred to it (known as the formal parameters) have to be defined with type and parameter name.
  • Page 166: Parameter Transfer

    Flexible NC programming 1.25 Subprogram technique 1.25.1.6 Parameter transfer Definition of a subprogram with parameter transfer A subprogram with parameter transfer is defined using the PROC keyword and a complete list of all the parameters expected by the subprogram. Incomplete parameter transfer When the subprogram is called, not all the parameters defined in the subprogram interface have to be transferred explicitly.
  • Page 167 Flexible NC programming 1.25 Subprogram technique CAUTION Call-by-reference parameter transfer Parameters transferred using call-by-reference must not be left out of the subprogram call. CAUTION AXIS data type AXIS data type parameters must not be left out of the subprogram call. Checking the transfer parameters System variable $P_SUBPAR [ n ] where n = 1, 2, etc., can be used to check whether a parameter has been transferred explicitly or left out in the subprogram.
  • Page 168: Definition Of A Subprogram

    Flexible NC programming 1.25 Subprogram technique 1.25.2 Definition of a subprogram 1.25.2.1 Subprogram without parameter transfer Function When defining subprograms without parameter transfer, the definition line at the beginning of the program can be omitted. Syntax [PROC ] Significance Definition operation at the beginning of a program PROC: Name of the program...
  • Page 169: Subprogram With Call-By-Value Parameter Transfer (Proc)

    Flexible NC programming 1.25 Subprogram technique 1.25.2.2 Subprogram with call-by-value parameter transfer (PROC) Function A subprogram with call-by-value parameter transfer is defined using the PROC keyword followed by the name of the program and a complete list of all the parameters expected by the subprogram, with type and name.
  • Page 170: Subprogram With Call-By-Reference Parameter Transfer (Proc, Var)

    Flexible NC programming 1.25 Subprogram technique Example Definition of a subprogram with 2 REAL type parameters Program code Comment PROC SUB_PROG (REAL LENGTH, REAL WIDTH) ; Parameter 1: Type: REAL, name: LENGTH Parameter 2: Type: REAL, name: WIDTH N100 RET ;...
  • Page 171 Flexible NC programming 1.25 Subprogram technique Note Call-by-reference parameter transfer is then only necessary if the transferred variable was defined in the calling program (LUD). Channel-global or NC-global variables do not have to be transferred, since these cannot be accessed directly from within the subprogram. Syntax PROC ...
  • Page 172: Save Modal G Functions (Save)

    Flexible NC programming 1.25 Subprogram technique Example Definition of a subprogram with 2 parameters as reference to REAL type: Program code Comment PROC SUB_PROG(VAR REAL LENGTH, VAR REAL WIDTH) ; Parameter 1: Reference to type: REAL, name: LENGTH Parameter 2: Reference to type: REAL, name: WIDTH N100 RET 1.25.2.4...
  • Page 173: Suppress Single Block Execution (Sblof, Sblon)

    Flexible NC programming 1.25 Subprogram technique Main program: Program code Comment N10 G0 X... Y... G90 ; Modal G function G90: Absolute dimensions N20 ... N50 CONTOUR (12.4) ; Subprogram call N60 X... Y... ; Modal G function G90 reactivated using SAVE General conditions Frames The behavior of frames regarding subprograms with the SAVE attribute depends on the frame...
  • Page 174 Flexible NC programming 1.25 Subprogram technique Syntax Single block suppression for the complete program: PROC ... SBLOF Single block suppression within the program: SBLOF SBLON Significance First instruction in a program PROC: Command to deactivate single block execution SBLOF: SBLOF can be written in a PROC block or alone in the block. Command to activate single block execution SBLON: SBLON must be in a separate block.
  • Page 175 Flexible NC programming 1.25 Subprogram technique Examples Example 1: Single block suppression within a program Program code Comment N10 G1 X100 F1000 N20 SBLOF ; Deactivate single block N30 Y20 N40 M100 N50 R10=90 N60 SBLON ; Reactivate single block N70 M110 N80 ...
  • Page 176 Flexible NC programming 1.25 Subprogram technique Example 3: An ASUB, which is started by the PLC in order to activate a modified zero offset and tool offsets, is to be executed invisibly. Program code N100 PROC ZO SBLOF DISPLOF N110 CASE $P_UIFRNUM OF 0 GOTOF _G500 1 GOTOF _G54 2 GOTOF _G55...
  • Page 177 Flexible NC programming 1.25 Subprogram technique Program code Comments N140 SBLOF N150 R0 = 2 Example 5: Single block suppression for program nesting Initial situation: Single block execution is active. Program nesting: Program code Comments N10 X0 F1000 ; Execution is stopped in this block. N20 UP1(0) PROC UP1(INT _NR) SBLOF ;...
  • Page 178 Flexible NC programming 1.25 Subprogram technique Further Information Single block disable for unsynchronized subprograms In order to execute an ASUB in one step, a PROC instruction must be programmed in the ASUB with SBLOF. This also applies to the function "Editable system ASUB" (MD11610 $MN_ASUP_EDITABLE).
  • Page 179: Suppress Current Block Display (Displof, Displon, Actblocno)

    Flexible NC programming 1.25 Subprogram technique 1.25.2.6 Suppress current block display (DISPLOF, DISPLON, ACTBLOCNO) Function The current program block is displayed as standard in the block display. The display of the current block can be suppressed in cycles and subprograms using the DISPLOF command. Instead of the current block, the call of the cycle or the subprogram is displayed.
  • Page 180 Flexible NC programming 1.25 Subprogram technique Command for revoking suppression of the display of the current block DISPLON: Location: At the end of the program line with the PROC operation Effective: Up to the return jump from the subprogram or end of program.
  • Page 181 Flexible NC programming 1.25 Subprogram technique Example 2: Block display for alarm output Subprogram SUBPROG1 (with ACTBLOCNO): Program code Comments PROC SUBPROG1 DISPLOF ACTBLOCNO N8000 R10 = R33 + R44 N9040 R10 = 66 X100 ; Output Alarm 12080 N10000 M17 Subprogram SUBPROG2 (without ACTBLOCNO): Program code Comments...
  • Page 182 Flexible NC programming 1.25 Subprogram technique Example 3: Revoking suppression of the current block display Subprogram SUB1 with suppression: Program code Comment PROC SUB1 DISPLOF ; Suppress current block display in SUB1 subprogram. Instead, the block is to be displayed with the SUB1 call.
  • Page 183: Identifying Subprograms With Preparation (Prepro)

    Flexible NC programming 1.25 Subprogram technique 1.25.2.7 Identifying subprograms with preparation (PREPRO) Function All files can be identified with the PREPRO keyword at the end of the PROC operation line during power up. Note This type of program preparation depends on the relevant set machine data. Please follow the manufacturer's instructions.
  • Page 184: Subprogram Return M17

    Flexible NC programming 1.25 Subprogram technique 1.25.2.8 Subprogram return M17 Function The return command M17 (or the part program end command M30) appears at the end of a subprogram. It prompts the return to the calling program at the part program block following the subprogram call.
  • Page 185: Ret Subprogram Return

    Flexible NC programming 1.25 Subprogram technique 1.25.2.9 RET subprogram return Function The RET command can also be used in the subprogram as a substitute for the M17 return jump command. RET must be programmed in a separate part program block. Like M17, RET prompts the return to the calling program at the part program block following the subprogram call.
  • Page 186: 10Parameterizable Subprogram Return Jump (Ret

    Flexible NC programming 1.25 Subprogram technique Subprogram: Program code Comment PROC SUB_PROG N100 RET ; Prompts return jump to block N60 in the main program. 1.25.2.10 Parameterizable subprogram return jump (RET ...) Function Usually, an RET or M17 end of subprogram returns to the program from which the subprogram was called and processing continues with the program line following the subprogram call.
  • Page 187 Flexible NC programming 1.25 Subprogram technique Significance Subprogram end (use instead of M17) RET: Return jump parameter 1 : Declares as jump destination the block where program execution should be resumed. If the return jump parameter 3 is not programmed, then the jump destination is in the program from which the current subprogram was called.
  • Page 188 Flexible NC programming 1.25 Subprogram technique Return jump parameter 3 : in order to reach the program level in which program execution should be continued. Type: Value: The program is resumed at the "current program level  - 1"...
  • Page 189 Flexible NC programming 1.25 Subprogram technique Examples Example 1: Resuming in the main program after ASUB execution Programming Comment N10010 CALL "UP1" ; Program level 0 (main program) N11000 PROC UP1 ; Program level 1 N11010 CALL "UP2" N12000 PROC UP2 ;...
  • Page 190 Flexible NC programming 1.25 Subprogram technique Subprogram subProg1: Program code Comments PROC subProg1 N2000 R10=R20+100 N2010 ... N2200 RET("subProg2") ; Return jump into the main program at block N1400 Subprogram subProg2: Program code Comments PROC subProg2 N2000 R10=R20+100 N2010 ... N2200 RET("iVar1") ;...
  • Page 191 Flexible NC programming 1.25 Subprogram technique Further information The different effects of return jump parameters 1 to 3 are explained in the following graphics. 1st return jump parameter 1 = "N200", return jump parameter 2 = 0 After the RET command, program execution is continued with block N200 in the main program.
  • Page 192 Flexible NC programming 1.25 Subprogram technique 3rd return jump parameter 1 = "N220", return jump parameter 3 = 2 After the RET command, two program levels are jumped through and program execution is continued with block N220. Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 193: Subprogram Call

    Flexible NC programming 1.25 Subprogram technique 1.25.3 Subprogram call 1.25.3.1 Subprogram call without parameter transfer Function A subprogram is called either with address L and subprogram number or by specifying the program name. A main program can also be called as a subprogram. The end of program M2 or M30 set in the main program is evaluated as M17 in this case (end of program with return to the calling program).
  • Page 194 Flexible NC programming 1.25 Subprogram technique Examples Example 1: Subprogram call without parameter transfer Example 2: Calling a main program as a subprogram Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 195: Subprogram Call With Parameter Transfer (Extern)

    Flexible NC programming 1.25 Subprogram technique 1.25.3.2 Subprogram call with parameter transfer (EXTERN) Function For a subprogram call with parameter transfer, variables or values can be transferred directly (but not VAR parameters). Subprograms with parameter transfer must be declared with EXTERNAL in the main program before they are called in the main program (e.g., at the beginning of the program).
  • Page 196 Flexible NC programming 1.25 Subprogram technique Examples Example 1: Subprogram call preceded by declaration Program code Comments N10 EXTERNAL BORDERS(REAL,REAL,REAL) ; Specify the subprogram. N40 BORDER(15.3,20.2,5) ; Call the subprogram with parameter transfer. Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 197: Number Of Program Repetitions (P)

    Flexible NC programming 1.25 Subprogram technique Example 2: Subprogram call without declaration Program code Comments N10 DEF REAL LENGTH, WIDTH, DEPTH N20 … N30 LENGTH=15.3 WIDTH=20.2 DEPTH=5 N40 BORDER(LENGTH,WIDTH,DEPTH) ; or: N40 BORDER(15.3,20.2,5) 1.25.3.3 Number of program repetitions (P) Function If a subprogram is to be executed several times in succession, the desired number of program repetitions can be entered at address P in the block with the subprogram call.
  • Page 198 Flexible NC programming 1.25 Subprogram technique Significance Subroutine call : Address to program program repetitions Number of program repetitions : Type: Value range: 1 … 9999 (unsigned) Example Program code Comments N40 FRAME P3 ; The BORDER subprogram is to be executed three times one after the other.
  • Page 199: Modal Subprogram Call (Mcall)

    Flexible NC programming 1.25 Subprogram technique 1.25.3.4 Modal subprogram call (MCALL) Function For a modal subprogram call with MCALL, the subprogram is automatically called and executed after each block with path motion. This allows subprogram calls to be automated, which are to be executed at different workpiece positions (for example to create drilling patterns).
  • Page 200 Flexible NC programming 1.25 Subprogram technique Example 2: Program code N10 G0 X0 Y0 N20 MCALL L70 N30 L80 In this example, the following NC blocks with programmed path axes are in subprogram L80. L70 is called by L80. Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 201: Indirect Subprogram Call (Call)

    Flexible NC programming 1.25 Subprogram technique 1.25.3.5 Indirect subprogram call (CALL) Function Depending on the prevailing conditions at a particular point in the program, different subprograms can be called. The name of the subprogram is stored in a variable of type STRING.
  • Page 202: Indirect Subprogram Call With Specification Of The Calling Program Part (Call Block

    Flexible NC programming 1.25 Subprogram technique 1.25.3.6 Indirect subprogram call with specification of the calling program part (CALL BLOCK ... TO ...) Function CALL and the keyword combination BLOCK ... TO is used to call a subprogram indirectly and execute the program part designated by the start and end labels. Syntax CALL ...
  • Page 203: Indirect Call Of A Program Programmed In Iso Language (Isocall)

    ISOCALL. The ISO mode set in the machine data is then activated. The original execution mode becomes effective again at the end of the program. If no ISO mode is set in the machine data, the subprogram is called in Siemens mode. For further information about the ISO mode, see...
  • Page 204 N1010 G1 X10 Z20 N1020 X30 R5 N1030 Z50 C10 N1040 X50 N1050 M99 N0010 DEF STRING[5] PROGNAME = “0122“ ; Siemens part program (cycle) N2000 R11 = $AA_IW[X] N2010 ISOCALL PROGNAME N2020 R10 = R10+1 ; Execute program 0122.spf in the...
  • Page 205: Calling Subroutine With Path Specification And Parameters (Pcall)

    Flexible NC programming 1.25 Subprogram technique 1.25.3.8 Calling subroutine with path specification and parameters (PCALL) Function With PCALL you can call subprograms with the absolute path and parameter transfer. Syntax PCALL (,…,) Significance Keyword for subprogram call with absolute path name PCALL: Absolute path name beginning with "/", including :...
  • Page 206: Extend Search Path For Subprogram Calls (Callpath)

    Flexible NC programming 1.25 Subprogram technique 1.25.3.9 Extend search path for subprogram calls (CALLPATH) Function The search path for subprogram calls can be extended using the CALLPATH command. This means that also subprograms can be called from a non-selected workpiece directory without having to specify the complete, absolute path name of the subprogram.
  • Page 207 Flexible NC programming 1.25 Subprogram technique Example Program code CALLPATH ("/_N_WKS_DIR/_N_MYWPD_WPD") This means that the following search path is set (position 5. is new): 1. Current directory / subprogram name 2. Current directory / subprogram identifier_SPF 3. Current directory / subprogram identifier_MPF 4.
  • Page 208: 10Execute External Subroutine (Extcall)

    Flexible NC programming 1.25 Subprogram technique 1.25.3.10 Execute external subroutine (EXTCALL) Function Using the EXTCALL command, it is possible to subsequently download a part program from an external program memory (local drive, network drive, USB drive) and execute it as subprogram.
  • Page 209 Flexible NC programming 1.25 Subprogram technique Note Path specification: Short designations The following short designations can be used to specify the path: • LOCAL_DRIVE: for local drive • CF_CARD: for CompactFlash Card • USB: for USB front connection CF_CARD: and LOCAL_DRIVE: can be alternatively used. Note Execute from external source via USB drive If external part programs are to be transferred from an external USB drive via a USB...
  • Page 210 Flexible NC programming 1.25 Subprogram technique The "MAIN.MPF" main program is stored in NC memory and is selected for execution. The "SCHRUPPEN.SPF" or "SCHRUPPEN.MPF" subprogram to subsequently loaded is on the local drive in the directory "/user/sinumerik/data/prog/WKS.DIR/WST1.WPD". The subprogram path is preset in SD42700: SD42700 $SC_EXT_PROG_PATH = "LOCAL_DRIVE:WKS.DIR/WST1.WPD"...
  • Page 211 Flexible NC programming 1.25 Subprogram technique Adjustable reload memory (FIFO buffer) A reload memory is required in the NCK in order to run a program in "Execution from external source" mode (main program or subprogram). The size of the reload memory is preset to 30 Kbytes and, like all other memory-related machine data, can only be changed to match requirements by the machine manufacturer.
  • Page 212: Cycles

    Flexible NC programming 1.25 Subprogram technique 1.25.4 Cycles 1.25.4.1 Parameterizing user cycles Function You can use the cov.com and uc.com files to parameterize your own cycles: cov.com Overview of cycles uc.com Cycle call description The cov.com file is included with the standard cycles at delivery and is to be expanded accordingly.
  • Page 213 Flexible NC programming 1.25 Subprogram technique User cycle description in the uc.com file Header line per cycle: as in the cov.com file with preceding "//": //C () Example: //C25 (MY_CYCLE_1) user cycle_ Description line per parameter: ( / / ...
  • Page 214 Flexible NC programming 1.25 Subprogram technique Example For the following two cycles a cycle parameterization is to be newly created: PROC MY_CYCLE_1 (REAL PAR1, INT PAR2, CHAR PAR3, STRING[10] PAR4) The cycle has the following transfer parameters: PAR1: ; Real value in range –1000.001 <= PAR2 <= 123.456, default with PAR2: ;...
  • Page 215 Flexible NC programming 1.25 Subprogram technique Display screen form for cycle MY_CYCLE_1 Display screen form for cycle SPECIAL CYCLE Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 216: Macro Technique (Define

    Flexible NC programming 1.26 Macro technique (DEFINE ... AS) 1.26 Macro technique (DEFINE ... AS) CAUTION Use of macros can significantly alter the control's programming language! Therefore, exercise caution when using macros. Function A macro is a sequence of individual statements, which have together been assigned a name of their own.
  • Page 217 Flexible NC programming 1.26 Macro technique (DEFINE ... AS) Rules when defining a macro • Any identifier, G, M, H functions and L program names can be defined in a macro. • Macros can also be defined in the NC program. •...
  • Page 218 Flexible NC programming 1.26 Macro technique (DEFINE ... AS) Example 3: External macro file The macro file must be downloaded into the NC after reading-in the external macro file into the control. Only then can macros be used in the NC program. Program code Comments %_N_UMAC_DEF...
  • Page 219: File And Program Management

    File and Program Management Program memory Function Files and programs (e.g. main programs and subprograms, macro definitions) are saved in the non-volatile program memory ( → passive file system). References: Function Manual, Extended Functions; Memory Configuration (S7) A number of file types are also stored here temporarily; these can be transferred to the work memory as required (e.g.
  • Page 220: File And Program Management

    File and Program Management 2.1 Program memory Standard directories Its standard complement of directories is as follows: Folder Contents _N_DEF_DIR Data modules and macro modules _N_CST_DIR Standard cycles _N_CMA_DIR Manufacturer cycles _N_CUS_DIR User cycles _N_WKS_DIR Workpieces _N_SPF_DIR Global subprograms _N_MPF_DIR Main programs _N_COM_DIR Comments...
  • Page 221 File and Program Management 2.1 Program memory Workpiece directories (..._WPD) To make data and program handling more flexible certain data and programs can be grouped together or stored in individual workpiece directories. A workpiece directory contains all files required for machining a workpiece. These can be main programs, subprograms, any initialization programs and comment files.
  • Page 222 File and Program Management 2.1 Program memory Creating a workpiece directory without a path name If the path name is missing, files with the _SPF extension are stored in directory / _N_SPF_DIR, files with the _INI extension are stored in the RAM and all other files are stored in directory/_N_MPF_DIR.
  • Page 223 File and Program Management 2.1 Program memory The directories are searched for the called program in the following sequence: Folder Significance name Current directory / Workpiece main directory or standard directory _N_MPF_DIR name_SPF Current directory / name_MPF Current directory / name_SPF /_N_SPF_DIR / Global subprograms...
  • Page 224: Working Memory (Chandata, Complete, Initial)

    File and Program Management 2.2 Working memory (CHANDATA, COMPLETE, INITIAL) Working memory (CHANDATA, COMPLETE, INITIAL) Function The working memory contains the current system and user data with which the control is operated (active file system), e.g.: • Active machine data •...
  • Page 225 File and Program Management 2.2 Working memory (CHANDATA, COMPLETE, INITIAL) Create initialization program at an external PC The data area identifier and the data type identifier can be used to determine the areas, which are to be treated as a unit when the data are saved: _N_AX5_TEA_INI Machine data for axis 5 _N_CH2_UFR_INI...
  • Page 226 File and Program Management 2.2 Working memory (CHANDATA, COMPLETE, INITIAL) Save initialization program (COMPLETE, INITIAL) The files of the working memory can be saved on an external PC and then read in again from there. • The files are saved with COMPLETE. •...
  • Page 227: Structuring Instruction In Step Editor (Seform)

    File and Program Management 2.3 Structuring instruction in step editor (SEFORM) Structuring instruction in step editor (SEFORM) Function The structuring instruction SEFORM is evaluated in the step editor (editor-based program support) to generate the step view for HMI Advanced. The step view is used to improve the readability of the NC subprogram.
  • Page 228 File and Program Management 2.3 Structuring instruction in step editor (SEFORM) Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 229: Protection Zones

    Protection zones Definition of the protection zones (CPROTDEF, NPROTDEF) Function You can use protection zones to protect various elements on the machine, their components and the workpiece against incorrect movements. Tool-oriented protection zones: For parts that belong to the tool (e.g. tool, toolholder) Workpiece-oriented protection zones: For parts that belong to the workpiece (e.g.
  • Page 230 Protection zones 3.1 Definition of the protection zones (CPROTDEF, NPROTDEF) Meaning Define local variable, data type INTEGER DEF INT NOT_USED: (see Chapter "Motion synchronous actions [Page 559]") The required plane is selected before CPROTDEF or G17/G18/G19: NPROTDEF with G17/G18/G19 and must not be altered before EXECUTE.
  • Page 231 Protection zones 3.1 Definition of the protection zones (CPROTDEF, NPROTDEF) General conditions During definition of the protection zones: • no cutter or tool nose radius compensation must be active. • no transformation must be active. • no frame must be active. Neither must reference point approach (G74), fixed point approach (G75), block preprocessing stop nor program end be programmed.
  • Page 232 Protection zones 3.1 Definition of the protection zones (CPROTDEF, NPROTDEF) External protection zones External protection zones (only possible for workpiece-related protection zones) must be defined in the clockwise direction. Protection zones symmetrical around the center of rotation For protection zones symmetrical around the axis or rotation (e.g. spindle chuck), you must describe the complete contour and not only up to the center of rotation! Tool-related protection zones Tool-related protection zones must always be convex.
  • Page 233: Activating/Deactivating Protection Zones (Cprot, Nprot)

    Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Activating/deactivating protection zones (CPROT, NPROT) Function Activating and preactivating previously defined protection zones for collision monitoring and deactivating protection zones. The maximum number of protection zones, which can be active simultaneously on the same channel, is defined in machine data.
  • Page 234 Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Example Possible collision of a milling cutter with the measuring probe is to be monitored on a milling machine. The position of the measuring probe is to be defined by an offset when the function is activated.
  • Page 235 Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Program code Comment CPROTDEF(1,TRUE,3,0,–100) ; Protection zone c–SB1 G01 X–20 Y–20 X–20 Y–20 EXECUTE(PROTECTB) CPROTDEF(2,TRUE,3,–100,–150) ; Protection zone c–SB2 G01 X0 Y–10 G03 X0 Y10 J10 X0 Y–10 J–10 EXECUTE(PROTECTB) CPROTDEF(3,TRUE,3,–150,–170) ; Protection zone c–SB3 G01 X0 Y–27,5 G03 X0 Y27,5 J27,5 X0 Y27,5 J–27,5...
  • Page 236 Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Further information Activation status () • =2 A protection zone is generally activated in the part program with status = 2. The status is always channel-specific even for machine-oriented protection zones. • =1 If a PLC user program provides for a protection zone to be effectively set by a PLC user program, the required preactivation is implemented with status = 1.
  • Page 237: Checking For Protection Zone Violation, Working Area Limitation And Software Limits (Calcposi)

    Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Function The CALCPOSI function is for checking whether, starting from a defined starting point, the geometry axes can traverse a defined path without violating the axis limits (software limits), working area limitations, or protection zones.
  • Page 238 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Hundreds digit 100: The positive limit value is violated (only if the units digit is 1 or 2, i.e. for software limits and working area limits) 100: An NCK protection zone is violated (only if the units digit is 3).
  • Page 239 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) FALSE or parameters not specified: _BASE_SYS When evaluating the position and length data, the G code of group 13 (G70, G71, G700, G710; inch/metric) is evaluated. If G70 is active and the basic system is metric (or G71 is active and inch), the WCS system variables $AA_IW[X] and $AA_MW[X]) are provided in the basic system and must, if...
  • Page 240 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Program code Comments N10 def real _STARTPOS[3] N20 def real _MOVDIST[3] N30 def real _DLIMIT[5] N40 def real _MAXDIST[3] N50 def int _SB N60 def int _STATUS N70 cprotdef(2, true, 0) Tool-related protection zone N80 g17 g1 x–y0...
  • Page 241 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Program code Comments N120 cprotdef(4, false, 0) Workpiece-related protection zone N130 g17 g1 x0 y15 N140 x10 N150 y25 N160 x0 N170 y15 N180 execute(_SB) N190 nprotdef(3, false, 0) Machine-related protection zone N200 g17 g1 x10 y5...
  • Page 242 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Program code Comments N480 _MOVDIST[0] = 0. N490 _MOVDIST[1] =–. N500 _MOVDIST[2] = 0. ;Various function calls N510 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,14) N520 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,, 6) N530 _DLIMIT[1] = 2.
  • Page 243 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Results of the tests in the example: Block No. _STATUS _MAXDIST _MAXDIST Remarks N... [0] (= X) [1] (= Y) 3123 8.040 4.594 Protection zone SB N3 violated. 1122 20.000 11.429...
  • Page 244 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) For certain kinematic transformations (e.g. TRANSMIT), the position of the machine axes cannot be determined uniquely from the positions in the workpiece coordinate system (WCS) (non-uniqueness).
  • Page 245: Special Motion Commands

    Special Motion Commands Approaching coded positions (CAC, CIC, CDC, CACP, CACN) Function You can traverse linear and rotary axes via position numbers to fixed axis positions saved in machine data tables using the following commands. This type of programming is called "approach coded positions".
  • Page 246: Special Motion Commands

    Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Function Random curved workpiece contours cannot be precisely defined in an analytic form. This is the reason that these type of contours are approximated using a limit number of points along curves, e.g.
  • Page 247 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Syntax General: ASPLINE X... Y... Z... A... B... C... BSPLINE X... Y... Z... A... B... C... CSPLINE X... Y... Z... A... B... C... For a B spline, the following can be additionally programmed: PW=...
  • Page 248 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Distance between nodes (only B spline): The distances between nodes are suitably calculated internally. The control can also machine pre-defined node clearances that are specified in the so-called parameter-interval-length using the PL command.
  • Page 249 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Examples Example 1: B spline Program code 1 (all weights 1) N10 G1 X0 Y0 F300 G64 N20 BSPLINE N30 X10 Y20 N40 X20 Y40 N50 X30 Y30 N60 X40 Y45 N70 X50 Y0...
  • Page 250 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Example 2: C spline, zero curvature at the start and at the end Program code N10 G1 X0 Y0 F300 N15 X10 N20 BNAT ENAT N30 CSPLINE X20 Y10 N40 X30 N50 X40 Y5...
  • Page 251 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Example 3: Spline interpolation (A spline) and coordinate transformation (ROT) Main program: Program code Comments N10 G00 X20 Y18 F300 G64 ; Approach starting point N20 ASPLINE ;...
  • Page 252 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Further Information Advantages of spline interpolation By using spline interpolation, the following advantages can be obtained contrary to using straight line blocks G01: •...
  • Page 253 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Spline type Properties and use B spline Features: • Does not run through the specified intermediate points along the curve, but only close to them. The intermediate points to not attract the curve. The curve characteristic can be additionally influenced by weighting the intermediate points using a factor.
  • Page 254 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Spline type Properties and use C spline Features: • The passes precisely through the specified intermediate points along the curve. • The curve characteristic is tangential with continuous curvature. •...
  • Page 255 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Comparison of three spline types with identical interpolation points Minimum number of spline blocks The G codes ASPLINE, BSPLINE and CSPLINE link block end points with splines. For this purpose, a series of blocks (end points) must be simultaneously calculated.
  • Page 256 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, Combine short spline blocks Spline interpolation can result in short spline blocks, which reduce the path velocity unnecessarily. The "Combine short spline blocks" function allows you to combine these blocks such that the resulting block length is sufficient and does not reduce the path velocity.
  • Page 257: Spline Grouping (Splinepath)

    Special Motion Commands 4.3 Spline grouping (SPLINEPATH) Spline grouping (SPLINEPATH) Function The axes to be interpolated in the spline group are selected using the SPLINEPATH command. Up to eight path axes can be involved in a spline interpolation grouping. Note If SPLINEPATH is not explicitly programmed, then the first three axes of the channel are traversed as spline group.
  • Page 258 Special Motion Commands 4.3 Spline grouping (SPLINEPATH) Example: Spline group with three path axes Program code Comments N10 G1 X10 Y20 Z30 A40 B50 F350 N11 SPLINEPATH(1,X,Y,Z) ; Spline group N13 CSPLINE BAUTO EAUTO X20 Y30 Z40 A50 B60 ; C spline N14 X30 Y40 Z50 A60 B70 ;...
  • Page 259: Nc Block Compression (Compon, Compcurv, Compcad, Compof)

    Special Motion Commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) Function CAD/CAM systems normally produce linear blocks, which meet the configured accuracy specifications. In the case of complex contours, a large volume of data and short path sections can result.
  • Page 260 Special Motion Commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) Meaning Command to activate the compressor function COMPON. COMPON: Effective: modal Command to activate the compressor function COMPCURV. COMPCURV: Effective: modal Command to activate the compressor function COMPCAD. COMPCAD: Effective: modal COMPOF :...
  • Page 261 Special Motion Commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) Examples Example 1: COMPON Program code Comment N10 COMPON ; Compressor function COMPON on. N11 G1 X0.37 Y2.9 F600 ; G1 before end point and feed. N12 X16.87 Y–.698 N13 X16.865 Y–.72 N14 X16.91 Y–.799 …...
  • Page 262: Polynomial Interpolation (Poly, Polypath, Po, Pl)

    Special Motion Commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Polynomial interpolation (POLY, POLYPATH, PO, PL) Function It actually involves a polynomial interpolation (POLY) and not a spline interpolation type. Its main purpose is to act as an interface for programming externally generated spline curves where the spline sections can be programmed directly.
  • Page 263 Special Motion Commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) a2, a3, a4, a5 : The coefficients a , and a are written with their value; value range as for path dimension. The last coefficient in each case can be omitted if it equals zero. PL : Length of the parameter interval where polynomials are defined (definition range of...
  • Page 264 Special Motion Commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Example Program code Comment N10 G1 X… Y… Z… F600 N11 POLY PO[X]=(1,2.5,0.7) PO[Y]=(0.3,1,3.2) PL=1.5 ; Polynomial interpolation on N12 PO[X]=(0,2.5,1.7) PO[Y]=(2.3,1.7) PL=3 N20 M8 H126 … N25 X70 PO[Y]=(9.3,1,7.67) PL=5 ;...
  • Page 265 Special Motion Commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Shape of the curves X(p) and Y(p) Shape of the curve in the XY plane Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 266 Special Motion Commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Description The equation used to express the polynomial function is generally as follows: f(p)= a p + a +. . . + a with : Constant coefficients p: Parameter In the control, polynomials up to a maximum of the 5th degree can be programmed: f(p)= a p + a By assigning concrete values to these coefficients, it is possible to generate various curve...
  • Page 267 Special Motion Commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) The constant coefficient (a ) of the denominator polynomial is always assumed to be 1. The programmed end point is independent of G90 / G91. X(p) and Y(p) are calculated as follows from the programmed values: X(p) = (10 - 10 * p ) / (1 + p Y(p) = 20 * p / (1 + p...
  • Page 268: Settable Path Reference (Spath, Upath)

    Special Motion Commands 4.6 Settable path reference (SPATH, UPATH) Settable path reference (SPATH, UPATH) Function During polynomial interpolation, the user may require two different relationships between the velocity determining FGROUP axes and the other path axes: The latter should either be controlled, synchronized to the path S or synchronized to the curve parameter U of the FGROUP axes.
  • Page 269 Special Motion Commands 4.6 Settable path reference (SPATH, UPATH) Program code Comment N10 G1 X… Y… Z… F500 N20 G643 ; Block-internal corner rounding with G643 N30 XO Y0 N40 X20 Y0 ; Edge length (mm) for the axes N50 X20 Y20 N60 X0 Y20 N70 X0 Y0 N100 M30...
  • Page 270 Special Motion Commands 4.6 Settable path reference (SPATH, UPATH) Further information During polynomial interpolation - and therefore this always involves polynomial interpolation in a strict sense (POLY), all spline interpolation types (ASPLINE, BSPLINE, CSPLINE) and linear interpolation with compressor function (COMPON, COMPCURV) - the positions of all path axes i are specified by the polynomial pi(U).
  • Page 271: Measurements With Touch Trigger Probe (Meas, Meaw)

    Special Motion Commands 4.7 Measurements with touch trigger probe (MEAS, MEAW) Measurements with touch trigger probe (MEAS, MEAW) Function The "Measure with touch-trigger probe" is used to approach actual positions on the workpiece. On the probe's switching edge, the positions for all axes programmed in the measurement block are measured and written to the appropriate memory cell for each axis.
  • Page 272 Special Motion Commands 4.7 Measurements with touch trigger probe (MEAS, MEAW) Reading measurement results The measurement results for the axes acquired with probes are available in the following variables: • $AA_MM[] Measurement results in the machine coordinate system • $AA_MW[] Measurement results in the workpiece coordinate system No internal preprocessing stop is generated when these variables are read.
  • Page 273 Special Motion Commands 4.7 Measurements with touch trigger probe (MEAS, MEAW) Example Program code Comment N10 MEAS=1 G1 F1000 X100 Y730 Z40 ; Measurement block with probe at first measuring input and linear interpolation. A preprocessing stop is automatically generated. Further Information Measuring job status If an evaluation of whether or not the probe has been triggered is required in the program,...
  • Page 274: Extended Measuring Function (Measa, Meawa, Meac) (Option)

    Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Extended measuring function (MEASA, MEAWA, MEAC) (option) Function Several probes and several measuring systems can be used for the axial measuring. The MEASA or MEAWA command can be used to acquire up to four measures values for the respective programmed axis;...
  • Page 275 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Note MEASA and MEAWA are non-modal; they can be programmed together in one block. However, if MEASA/MEAWA is programmed together with MEAS/MEAW in the same block, an error message is output. Significance Command: Axial measurement with deletion of distance-to-go MEASA...
  • Page 276 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Examples Example 1: Axial measurement with deletion of distance-to-go in mode 1 (evaluation in chronological sequence) a) with 1 measuring system Program code Comments N100 MEASA[X]=(1,1,-1) G01 X100 F100 ;...
  • Page 277 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Example 2: Axial measurement with deletion of distance-to-go in mode 2 (evaluation in programmed sequence) Program code Comments N100 MEASA[X]=(2,1,-1,2,-2) G01 X100 F100 ; Measuring in mode 2 with active measuring system.
  • Page 278 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) b) Measuring with deletion of distance-to-go after 10 measured values Program code Comments N10 WHEN $AC_FIFO1[4]>=10 DO MEAC[x]=(0) DELDTG(x) ; Delete distance-to- N20 MEAC[x]=(1,1,1,-1) G01 X100 F500 N30 MEAC [X]=(0) N40 R1 = $AC_FIFO1[4] ;...
  • Page 279 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Operating mode The first digit (tens decade) of the operating mode selects the required measuring system. If only one measuring system is installed, but a second programmed, the installed system is automatically selected.
  • Page 280 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Note MEASA cannot be programmed in synchronized actions. As an alternative, MEAWA plus the deletion of distance-to-go can be programmed as a synchronized action. If the measuring task with MEAWA is started from synchronized actions, the measured values will only be available in the machine coordinate system.
  • Page 281 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Measurement job with two measuring systems If a measuring job is executed by two measuring systems, each of the two possible trigger events of both measuring systems of the relevant axis is acquired. The assignment of the reserved variables is therefore preset: Measured value from $AA_MM1[]...
  • Page 282 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) The FIFO memory is a circular buffer in which measured values are written to $AC_FIFO variables according to the circular principle, see the chapter titled "Motion-synchronous actions". Note FIFO contents can be read only once from the circulating storage. If these measured data are to be used multiply, they must be buffered in user data.
  • Page 283: Special Functions For Oem Users (Oma1

    Special Motion Commands 4.9 Special functions for OEM users (OMA1 ... OMA5, OEMIPO1, OEMIPO2, G810 ... G829) Special functions for OEM users (OMA1 ... OMA5, OEMIPO1, OEMIPO2, G810 ... G829) OEM addresses The meaning of OEM addresses is determined by the OEM user. Their functionality is incorporated by means of compile cycles.
  • Page 284: Feed Reduction With Corner Deceleration (Fendnorm, G62, G621)

    Special Motion Commands 4.10 Feed reduction with corner deceleration (FENDNORM, G62, G621) 4.10 Feed reduction with corner deceleration (FENDNORM, G62, G621) Function With automatic corner deceleration the feed rate is reduced according to a bell curve before reaching the corner. It is also possible to parameterize the extent of the tool behavior relevant to machining via setting data.
  • Page 285: Programmed End-Of-Motion Criterion (Finea, Coarsea, Ipoenda, Ipobrka, Adisposa)

    Special Motion Commands 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Function Similar to the block change criterion for path interpolation (G601, G602, and G603) it is also possible to program the end-of-motion criterion for single­axis interpolation in a part program or in synchronized actions for command/PLC axes.
  • Page 286 Special Motion Commands 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Reference of the tolerance window : Range of values: 0 Tolerance window not active Tolerance window with respect to set position Tolerance window with respect to actual position Type: Size of the tolerance window :...
  • Page 287 Special Motion Commands 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Further information System variable for end-of-motion criterion The effective end-of-motion criterion can be read using the system variable $AA_MOTEND. References: /LIS2sl/ List Manual, Book 2 Block-change criterion: "Braking ramp" (IPOBRKA) If, when activating the block change criterion "brake ramp", a value is programmed for the optional block change instant in time, then this becomes effective for the next positioning motion and is written into the setting data synchronized to the main run.
  • Page 288: Programmable Servo Parameter Set (Scpara)

    Special Motion Commands 4.12 Programmable servo parameter set (SCPARA) 4.12 Programmable servo parameter set (SCPARA) Function The parameter set (comprising MDs) in the part program and in synchronized actions can be programmed using SCPARA (up until now, only via the PLC). DB3n DBB9 bit3 To ensure no conflicts occur between PLC and NCK, an additional bit is defined on the PLC ...
  • Page 289: Coordinate Transformation (Frames)

    Coordinate transformation (FRAMES) Coordinate transformation via frame variables Function In addition to the programming options already described in the Programming Guide "Fundamentals", you can also define coordinate systems with predefined frame variables. The following coordinate systems are defined: MCS: Machine coordinate system BCS: Basic coordinate system BZS: Basic origin system SZS: Settable zero system...
  • Page 290: Coordinate Transformation (Frames)

    Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables Value assignments and reading the actual values Frame variable/frame relationship A coordinate transformation can be activated by assigning the value of a frame to a frame variable. Example: $P_PFRAME=CTRANS(X,10) Frame variable: $P_PFRAME means: current programmable frame.
  • Page 291: Predefined Frame Variable ($P_Bframe, $P_Iframe, $P_Pframe, $P_Actframe)

    Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables 5.1.1 Predefined frame variable ($P_BFRAME, $P_IFRAME, $P_PFRAME, $P_ACTFRAME) $P_BFRAME Current basic frame variable that establishes the reference between the basic coordinate system (BCS) and the basic origin system (BOS). For the basic frame described via $P_UBFR to be immediately active in the program, either •...
  • Page 292 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables $P_IFRAME Current, settable frame variable that establishes the reference between the basic origin system (BOS) and the settable zero system (SZS). • $P_IFRAME corresponds to $P_UIFR[$P_IFRNUM] • After G54 is programmed, for example, $P_IFRAME contains the translation, rotation, scaling and mirroring defined by G54.
  • Page 293 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables $P_PFRAME Current, programmable frame variable that establishes the reference between the settable zero system (SZS) and the workpiece coordinate system (WCS). $P_PFRAME contains the resulting frame, that results • from the programming of TRANS/ATRANS, ROT/AROT, SCALE/ASCALE, MIRROR/ AMIRROR or •...
  • Page 294 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables $P_ACTFRAME Current, resulting complete frame that results from chaining • the current basic frame variable $P_BFRAME, • the currently settable frame variable $P_IFRAME with system frames and • the currently programmable frame variable $P_IFRAME with system frames. System frames, see Section "Frames that Act in the Channel"...
  • Page 295 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables Basic frame and settable frame are effective after Reset if MD 20110 RESET_MODE_MASK is set as follows: Bit0=1, bit14=1 --> $P_UBFR (basic frame) acts Bit0=1, bit5=1 --> $P_UIFR [$P_UIFRNUM](settable frame) acts Predefined settable frames $P_UBFR The basic frame is programmed with $P_UBFR, but it is not simultaneously active in the parts program.
  • Page 296 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables Assignment to G commands As standard, five settable frames $P_UIFR[0]... $P_UIFR[4] or five equivalent G commands – G500 and G54 to G57 , can be saved using their address values. $P_IFRAME=$P_UIFR[0] corresponds to G500 $P_IFRAME=$P_UIFR[1] corresponds to G54 $P_IFRAME=$P_UIFR[2] corresponds to G55 $P_IFRAME=$P_UIFR[3] corresponds to G56...
  • Page 297: Frame Variables / Assigning Values To Frames

    Coordinate transformation (FRAMES) 5.2 Frame variables / assigning values to frames Frame variables / assigning values to frames 5.2.1 Assigning direct values (axis value, angle, scale) Function You can directly assign values to frames or frame variables in the NC program. Syntax $P_PFRAME=CTRANS (X, axis value, Y, axis value, Z, axis value, …) $P_PFRAME=CROT (X, angle, Y, angle, Z, angle, …)
  • Page 298 Coordinate transformation (FRAMES) 5.2 Frame variables / assigning values to frames Example Translation, rotation and mirroring are activated by value assignment to the current programmable frame. N10 $P_PFRAME=CTRANS(X,10,Y,20,Z,5):CROT(Z,45):CMIRROR(Y) Frame-red components are pre-assigned other values With CROT, pre-assign all three UIFR components with values Program code Comments $P_UIFR[5] = CROT(X, 0, Y, 0, Z, 0)
  • Page 299 Coordinate transformation (FRAMES) 5.2 Frame variables / assigning values to frames Description You can program several arithmetic rules in succession. Example: $P_PFRAME=CTRANS(…):CROT(…):CSCALE… Please note that the commands must be connected by the colon chain operator: (...):(...). This causes the commands firstly to be linked and secondly to be executed additively in the programmed sequence.
  • Page 300: Reading And Changing Frame Components (Tr, Fi, Rt, Sc, Mi)

    Coordinate transformation (FRAMES) 5.2 Frame variables / assigning values to frames 5.2.2 Reading and changing frame components (TR, FI, RT, SC, MI) Function This feature allows you to access individual data of a frame, e.g., a specific offset value or angle of rotation.
  • Page 301: Linking Complete Frames

    Coordinate transformation (FRAMES) 5.2 Frame variables / assigning values to frames Description Calling frame By specifying the system variable $P_UIFRNUM you can access the current zero offset set with $P_UIFR or G54, G55, ... ($P_UIFRNUM contains the number of the currently set frame). All other stored settable $P_UIFR frames are called up by specifying the appropriate number $P_UIFR[n].
  • Page 302 Coordinate transformation (FRAMES) 5.2 Frame variables / assigning values to frames Syntax Assigning frames DEF FRAME SETTING1 Assign the values of the user frame SETTING1=CTRANS(X,10) SETTING1 to the current programmable $P_PFRAME=SETTING1 frame. DEF FRAME SETTING4 The current programmable frame is SETTING4=$P_PFRAME stored temporarily and can be $P_PFRAME=SETTING4...
  • Page 303: Defining New Frames (Def Frame)

    Coordinate transformation (FRAMES) 5.2 Frame variables / assigning values to frames 5.2.4 Defining new frames (DEF FRAME) Function In addition to the predefined settable frames described above, you also have the option of creating new frames. This is achieved by creating variables of type FRAME to which you can assign a name of your choice.
  • Page 304: Coarse And Fine Offsets (Cfine, Ctrans)

    Coordinate transformation (FRAMES) 5.3 Coarse and fine offsets (CFINE, CTRANS) Coarse and fine offsets (CFINE, CTRANS) Function Fine offset A fine offset of the basic frames and of all other settable frames can be programmed with command CFINE (X, ..,Y, ...). A fine offset can only be made if MD18600 $MN_MM_FRAME_FINE_TRANS=1.
  • Page 305 Coordinate transformation (FRAMES) 5.3 Coarse and fine offsets (CFINE, CTRANS) Significance Fine offset for multiple axes. Additive offset (translation). CFINE(x, value, y, value, z, value) Coarse offset for multiple axes. Absolute offset (translation). CTRANS(x, value, y, value, z, value) Zero shift of the axes (max. 8) x y z Translation part Value...
  • Page 306: External Zero Offset

    Coordinate transformation (FRAMES) 5.4 External zero offset External zero offset Function This is another way of moving the zero point between the basic and workpiece coordinate system. Only linear translations can be programmed with the external zero offset. Programming The $AA_ETRANS offset values are programmed by assigning the axis-specific system variables.
  • Page 307: Preset Offset (Preseton)

    Coordinate transformation (FRAMES) 5.5 Preset offset (PRESETON) Preset offset (PRESETON) Function For special applications, it may be necessary to assign an already referenced machine axis a new actual value using PRESETON. This corresponds to a zero offset in the machine coordinate system.
  • Page 308 Coordinate transformation (FRAMES) 5.5 Preset offset (PRESETON) Example Geometry axis: A, associated machine axis: X1 Program code Comment N10 G0 A100 ; Axis A travels to position 100 N20 PRESETON(X1,50) ; At position 100, machine axis X1 receives the new actual value 50 =>...
  • Page 309: Frame Calculation From Three Measuring Points In Space (Meaframe)

    Coordinate transformation (FRAMES) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Frame calculation from three measuring points in space (MEAFRAME) Function MEAFRAME is an extension of the 840D language used for supporting measuring cycles. The function MEAFRAME calculates the frame from three ideal and the corresponding measured points.
  • Page 310 Coordinate transformation (FRAMES) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Note Quality of the measurement In order to map the measured coordinates onto the ideal coordinates using a rotation and a translation, the triangle formed by the measured points must be congruent to the ideal triangle.
  • Page 311 Coordinate transformation (FRAMES) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Program code Comments N200 CORR_FRAME=MEAFRAME(IDEAL_POINT,MEAS _POINT,FIT_QUALITY) N230 IF FIT_QUALITY < 0 SETAL(65000) GOTOF NO_FRAME ENDIF N240 IF FIT_QUALITY > FIT_QUALITY_LIMIT SETAL(65010) GOTOF NO_FRAME ENDIF N250 IF CORR_FRAME[X,RT] > ROT_FRAME_LIMIT Limiting the 1st RPY angle SETAL(65020) GOTOF NO_FRAME...
  • Page 312 Coordinate transformation (FRAMES) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Example of concatenating frames Chaining of MEAFRAME for offsets The MEAFRAME( ) function provides an offset frame. If this offset frame is concatenated with a set frame $P_UIFR[1] that was active when the function was called, e.g., G54, one receives a settable frame for further conversions for the procedure or machining.
  • Page 313: Ncu Global Frames

    Coordinate transformation (FRAMES) 5.7 NCU global frames NCU global frames Function Only one set of NCU global frames is used for all channels on each NCU. NCU global frames can be read and written from all channels. The NCU global frames are activated in the respective channel.
  • Page 314: Channel-Specific Frames ($P_Chbfr, $P_Ubfr)

    Coordinate transformation (FRAMES) 5.7 NCU global frames 5.7.1 Channel-specific frames ($P_CHBFR, $P_UBFR) Function Settable frames or basic frames can be read and written by an operator action or from the PLC: • via the parts program, or • via the operator panel interface. The fine offset can also be used for global frames.
  • Page 315: Frames Active In The Channel

    Coordinate transformation (FRAMES) 5.7 NCU global frames 5.7.2 Frames active in the channel Function Frames active in the channel are entered from the parts program via the associated system variables of these frames. System frames also belong here. The current system frame can be read and written via these system variables in the parts program.
  • Page 316 Coordinate transformation (FRAMES) 5.7 NCU global frames $P_CHBFRAME[n] Current channel basic frames System variable $P_CHBFRAME[n] can be used to read and write the current channel basic frame field elements. The resulting complete basic frame is calculated in the channel as a result of the write operation.
  • Page 317 Coordinate transformation (FRAMES) 5.7 NCU global frames $P_CHBFRMASK and $P_NCBFRMASK complete basic frame The system variables $P_CHBFRMASK and $P_NCBFRMASK can be used to select, which basic frames to include in the calculation of the "complete" basic frame. The variables can only be programmed in the program and read via the operator panel interface.
  • Page 318 Coordinate transformation (FRAMES) 5.7 NCU global frames P_ACTFRAME Current complete frame The resulting current complete frame $P_ACTFRAME is now a chain of all basic frames, the current settable frame and the programmable frame. The current frame is always updated whenever a frame component is changed. $P_ACTFRAME corresponds to $P_PARTFRAME : $P_SETFRAME : $P_EXTFRAME : $P_ACTBFRAME : $P_IFRAME : $P_TOOLFRAME : $P_WPFRAME : $P_TRAFRAME : $P_PFRAME : $P_CYCFRAME...
  • Page 319 Coordinate transformation (FRAMES) 5.7 NCU global frames Frame chaining The current frame consists of the total basic frame, the settable frame, the system frame, and the programmable frame according to the current total frame mentioned above. Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 320 Coordinate transformation (FRAMES) 5.7 NCU global frames Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 321: Transformations

    Transformations General programming of transformation types General function You can choose to program transformation types with suitable parameters in order to adapt the control to various machine kinematics. These parameters can be used to declare both the orientation of the tool in space and the orientation movements of the rotary axes accordingly for the selected transformation.
  • Page 322 Transformations 6.1 General programming of transformation types Orientation transformation Three, four and five axis transformations (TRAORI) For the optimum machining of surfaces configured in space in the working area of the machine, machine tools require other axes in addition to the three linear axes X, Y and Z. The additional axes describe the orientation in space and are called orientation axes in subsequent sections.
  • Page 323 Transformations 6.1 General programming of transformation types Kinematic transformations TRANSMIT and TRACYL For milling on turning machines, either 1. Face machining in the turning clamp with TRANSMIT or 2. Machining of grooves with any path on cylindrical bodies with TRACYL can be programmed for the transformation declared.
  • Page 324: Orientation Movements For Transformations

    Transformations 6.1 General programming of transformation types 6.1.1 Orientation movements for transformations Travel movements and orientation movements The traversing movements of the programmed orientations are determined primarily by the type of machine. For three-, four-, and five-axis type transformations with TRAORI, the rotary axes or pivoting linear axes describe the orientation movements of the tool.
  • Page 325 Transformations 6.1 General programming of transformation types Machine type Programming of orientation Three-axis transformation Programming of tool orientation only in the plane, which is machine types 1 and 2 perpendicular to the rotary axis. There are two translatory axes (linear axes) and one axis of rotation (rotary axis).
  • Page 326 Transformations 6.1 General programming of transformation types TRACYL Activation of the cylinder surface transformation Machining of grooves with A rotary axis any path on cylindrical An infeed axis vertical to the axis of rotation bodies A longitudinal axis parallel to the axis of rotation TRAANG Activation of the inclined axis transformation Machining with an oblique...
  • Page 327: Overview Of Orientation Transformation Traori

    Transformations 6.1 General programming of transformation types 6.1.2 Overview of orientation transformation TRAORI Programming types available in conjunction with TRAORI Machine type Programming with active transformation TRAORI Machine types 1, 2, or 3 The axis sequence of the orientation axes and the orientation direction of two-axis swivel head or the tool can either be configured on a two-axis rotary table or a...
  • Page 328 Transformations 6.1 General programming of transformation types Machine type Programming with active transformation TRAORI Interpolation of the orientation vector on a taper peripheral surface Orientation changes to a taper peripheral surface anywhere in space using interpolation: - ORIPLANE in the plane (large radius circle interpolation) - ORICONCW on a taper peripheral surface in the clockwise direction - ORICONCCW on a taper peripheral surface in the counter-clockwise direction...
  • Page 329: Three, Four And Five Axis Transformation (Traori)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) Three, four and five axis transformation (TRAORI) 6.2.1 General relationships of universal tool head Function To obtain optimum cutting conditions when machining surfaces with a three-dimensional curve, it must be possible to vary the setting angle of the tool. Figure 6-2 The machine design to achieve this is stored in the axis data.
  • Page 330 Transformations 6.2 Three, four and five axis transformation (TRAORI) 5-Axis Transformation Cardanic tool head Three linear axes (X, Y, Z) and two orientation axes (C, A) define the setting angle and the operating point of the tool here. One of the two orientation axes is created as an inclined axis, in our example A' - in many cases, placed at 45°.
  • Page 331 Transformations 6.2 Three, four and five axis transformation (TRAORI) The following possible relations are generally valid: A' lies below the angle φ to the X axis B' lies below the angle φ to the Y axis C' lies below the angle φ to the Z axis Angle φ...
  • Page 332: Three, Four And Five Axis Transformation (Traori)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.2 Three, four and five axis transformation (TRAORI) Function The user can configure two or three translatory axes and one rotary axis. The transformations assume that the rotary axis is orthogonal on the orientation plane. Orientation of the tool is possible only in the plane perpendicular to the rotary axis.
  • Page 333 Transformations 6.2 Three, four and five axis transformation (TRAORI) Tool orientation Depending on the orientation direction selected for the tool, the active working plane (G17, G18, G19) must be set in the NC program in such a way that tool length offset works in the direction of tool orientation.
  • Page 334: Variants Of Orientation Programming And Initial Setting (Orireset)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.3 Variants of orientation programming and initial setting (ORIRESET) Orientation programming of tool orientation with TRAORI In conjunction with a programmable TRAORI orientation transformation, in addition to the linear axes X, Y, Z, the axis identifiers A.., B..., C... can also be used to program axis positions or virtual axes with angles or vector components.
  • Page 335: Programming Of The Tool Orientation (A

    Transformations 6.2 Three, four and five axis transformation (TRAORI) Examples 1. Example of machine kinematics CA (channel axis names C, A) ORIRESET(90, 45) ;C at 90 degrees, A at 45 degrees ORIRESET(, 30) ;C at $MC_TRAFO5_ROT_AX_OFFSET_1/2[0], A at 30 degrees ORIRESET( ) ;C at $MC_TRAFO5_ROT_AX_OFFSET_1/2[0], ;A at $MC_TRAFO5_ROT_AX_OFFSET_1/2[1]...
  • Page 336 Transformations 6.2 Three, four and five axis transformation (TRAORI) 6. Programming of rotary axis of taper as normalized vector using A6, B6, C6 or of intermediate orientation on the peripheral surface of a taper using A7, B7, C7, see "Orientation programming along the peripheral surface of a taper (ORIPLANE, ORICONxx)".
  • Page 337 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming Programming of rotary axis motion G1 X Y Z A B C Programming in Euler angles G1 X Y Z A2= B2= C2= Programming of directional vector G1 X Y Z A3== B3== C3== Programming the surface normal vector at block G1 X Y Z A4== B4== C4== start...
  • Page 338 Transformations 6.2 Three, four and five axis transformation (TRAORI) Example: Comparison without and with 5-axis transformation Description 5-axis programs are usually generated by CAD/CAM systems and not entered at the control. So the following explanations are directed mainly at programmers of postprocessors. The type of orientation programming is defined in G code group 50: ORIEULER via Euler angle ORIRPY via RPY angle (rotation sequence ZYX)
  • Page 339 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming in Euler angles ORIEULER The values programmed during orientation programming with A2, B2, C2 are interpreted as Euler angles (in degrees). The orientation vector results from turning a vector in the Z direction firstly with A2 around the Z axis, then with B2 around the new X axis and lastly with C2 around the new Z axis.
  • Page 340 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming in RPY angles ORIRPY The values programmed with A2, B2, C2 for orientation programming are interpreted as an RPY angle (in degrees). Note In contrast to Euler angle programming, all three values here have an effect on the orientation vector.
  • Page 341 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming of directional vector The components of the direction vector are programmed with A3, B3, C3. The vector points towards the tool adapter; the length of the vector is of no significance. Vector components that have not been programmed are set equal to zero.
  • Page 342: Face Milling (3D-Milling A4, B4, C4, A5, B5, C5)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) Definition of tool orientation with LEAD= and TILT= Figure 6-3 6.2.5 Face milling (3D-milling A4, B4, C4, A5, B5, C5) Function Face milling is used to machine curved surfaces of any kind. Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 343 Transformations 6.2 Three, four and five axis transformation (TRAORI) For this type of 3D milling, you require line-by-line definition of 3D paths on the workpiece surface. The tool shape and dimensions are taken into account in the calculations, which are normally performed in CAM.
  • Page 344: Orientation Axis Reference (Oriwks, Orimks)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.6 Orientation axis reference (ORIWKS, ORIMKS) Function For orientation programming in the workpiece coordinate system using • Euler or RPY angle or • orientation vector the course of the rotary motion can be set using ORIMKS/ORIWKS. Note Machine manufacturer The type of interpolation for the orientation is specified with machine data:...
  • Page 345 Transformations 6.2 Three, four and five axis transformation (TRAORI) Singular positions Note ORIWKS Orientation movements in the singular setting area of the 5-axis machine require vast movements of the machine axes. (For example, with a rotary swivel head with C as the rotary axis and A as the swivel axis, all positions with A = 0 are singular.) Machine manufacturer To avoid overloading the machine axes, the velocity control vastly reduces the tool path...
  • Page 346: Programming Orientation Axes (Oriaxes, Orivect, Orieuler, Orirpy, Orirpy2, Orivirt1, Orivirt2)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.7 Programming orientation axes (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2) Function The orientation axes function describes the orientation of the tool in space and is achieved by programming the offset for the rotary axes. An additional, third degree of freedom can be achieved by also rotating the tool about itself.
  • Page 347 Transformations 6.2 Three, four and five axis transformation (TRAORI) ORIRPY2 Orientation programming via RPY angle. The rotation sequence is ZYX and: A2 is the rotation angle around Z B2 is the rotation angle around Y C2 is the rotation angle around X A2= B2= C2= Angle programming of virtual axes ORIVIRT1...
  • Page 348: Orientation Programming Along The Peripheral Surface Of A Taper (Oriplane, Oriconcw, Oriconccw, Oriconto, Oriconio)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.8 Orientation programming along the peripheral surface of a taper (ORIPLANE, ORICONCW, ORICONCCW, ORICONTO, ORICONIO) Function With extended orientation it is possible to execute a change in orientation along the peripheral surface of a taper in space.
  • Page 349 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming The end orientation is either defined by specifying the angle programming in the Euler or RPY angle using A2, B2, C2 or by programming the rotary axis positions using A, B, C. Further programming details are needed for orientation axes along the peripheral surface of a taper: •...
  • Page 350 Transformations 6.2 Three, four and five axis transformation (TRAORI) Parameter ORIPLANE Interpolation in the plane (large-radius circular interpolation) ORICONCW Interpolation on the peripheral surface of a taper in the clockwise direction ORICONCCW Interpolation on the peripheral surface of a taper in the counterclockwise direction ORICONTO Interpolation on the peripheral surface of a taper with...
  • Page 351 Transformations 6.2 Three, four and five axis transformation (TRAORI) Description If changes of orientation along the peripheral surface of a taper anywhere in space are to be described, the vector about which the tool orientation is to be rotated must be known. The start and end orientation must also be specified.
  • Page 352: Specification Of Orientation For Two Contact Points (Oricurve, Po[Xh]=, Po[Yh]=, Po[Zh]=)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.9 Specification of orientation for two contact points (ORICURVE, PO[XH]=, PO[YH]=, PO[ZH]=) Function Programming the change in orientation using the second curve in space ORICURVE Another way to program changes in orientation, besides using the tool tip along a curve in space, is to program the motion of a second contact point of the tool using ORICURVE.
  • Page 353 Transformations 6.2 Three, four and five axis transformation (TRAORI) Parameters ORICURVE Interpolation of the orientation specifying a movement between two contact points of the tool XH YH ZH Identifiers of the coordinates of the second contact point of the tool of the additional contour as a curve in space Possible polynomials Apart from using the appropriate end points, the curves...
  • Page 354: Orientation Polynomials (Po[Angle], Po[Coordinate])

    Transformations 6.3 Orientation polynomials (PO[angle], PO[coordinate]) Orientation polynomials (PO[angle], PO[coordinate]) Function Irrespective of the polynomial interpolation from G-code group 1 that is currently active, two different types of orientation polynomial can be programmed up to the 5th degree for a 3-axis to 5-axis transformation.
  • Page 355 Transformations 6.3 Orientation polynomials (PO[angle], PO[coordinate]) Meaning Angle in the plane between start and end orientation PO[PHI] Angle describing the tilt of the orientation from the plane between start and end PO[PSI] orientation Angle of rotation created by rotating the rotation vector of one of the G codes of PO[THT] group 54 that is programmed using THETA Lead angle LEAD...
  • Page 356: Rotations Of The Tool Orientation (Orirota, Orirotr, Orirott, Orirotc, Theta)

    Transformations 6.4 Rotations of the tool orientation (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) Rotations of the tool orientation (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) Function If you also want to be able to change the orientation of the tools on machine types with movable tools, program each block with end orientation.
  • Page 357 Transformations 6.4 Rotations of the tool orientation (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) Significance Angle of rotation to an absolute direction of rotation. ORIROTA Angle of rotation relative to the plane between the start and end ORIROTR orientation. Angle of rotation as a tangential rotation vector to the change of orientation ORIROTT Angle of rotation as a tangential rotation vector to the path tangent ORIROTC...
  • Page 358 Transformations 6.4 Rotations of the tool orientation (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) Description ORIROTA The angle of rotation THETA is interpolated with reference to an absolute direction in space. The basic direction of rotation is defined in the machine data. ORIROTR The angle of rotation THETA is interpreted relative to the plane defined by the start and end orientation.
  • Page 359: Orientations Relative To The Path

    Transformations 6.5 Orientations relative to the path Orientations relative to the path 6.5.1 Orientation types relative to the path Function By using this expanded function, relative orientation is not only achieved at the end of the block, but across the entire trajectory. The orientation achieved in the previous block is transferred to the programmed end orientation using large-radius circular interpolation.
  • Page 360 Transformations 6.5 Orientations relative to the path Note Machine manufacturer Please refer to the machine manufacturer's instructions. Other settings can be made for orientations relative to the path via configurable machine and setting data. For more detailed information, please refer to References: /FB3/ Function Manual, Special Functions;...
  • Page 361: Rotation Of The Tool Orientation Relative To The Path (Oripath, Oripaths, Angle Of Rotation)

    Transformations 6.5 Orientations relative to the path 6.5.2 Rotation of the tool orientation relative to the path (ORIPATH, ORIPATHS, angle of rotation) Function With a 6-axis transformation, the tool can be rotated about itself with a third rotary axis to orientate the tool as desired in space.
  • Page 362: Interpolation Of The Tool Rotation Relative To The Path (Orirotc, Theta)

    Transformations 6.5 Orientations relative to the path Significance Tool orientation relative to the path Tool orientation in relation to path ORIPATH Tool orientation relative to the path; blip in orientation characteristic is smoothed ORIPATHS Angle relative to the surface normal vector in the plane that is defined by the LEAD path tangent and the surface normal vector Rotation of orientation in the Z direction or rotation about the path tangent...
  • Page 363 Transformations 6.5 Orientations relative to the path Significance Interpolation of the rotation of tool relative to the path in 6-axis transformation Initiate tangential rotation vector relative to path tangent ORIROTC Angle of rotation in degrees reached by the end of the block THETA=value Angle of rotation with end angle Θ...
  • Page 364: Smoothing Of Orientation Characteristic (Oripaths A8=, B8=, C8=)

    Transformations 6.5 Orientations relative to the path Interpolation in the plane (large-radius circular interpolation) ORIPLANE Interpolation on the peripheral surface of a taper in the ORICONCW clockwise direction Interpolation on the peripheral surface of a taper in the ORICONCCW counterclockwise direction Interpolation on the peripheral surface of a taper with tangential ORICONTO transition...
  • Page 365 Transformations 6.5 Orientations relative to the path Syntax Further programming details are needed at the corner of the contour for constant tool orientations relative to the path as a whole. The direction and path length of this motion is programmed via the vector using the components A8=X, B8=Y C8=Z. N...
  • Page 366: Compression Of The Orientation (Compon, Compcurv, Compcad)

    Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) Compression of the orientation (COMPON, COMPCURV, COMPCAD) Function NC programs, in which orientation transformation (TRAORI) is active and tool orientations are programmed (no matter what type), can be compressed if kept within specified limits. Programming Tool orientation If orientation transformation (TRAORI) is active, for 5-axis machines, tool orientation can be...
  • Page 367 Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) Programming tool orientation using rotary axis positions Tool orientation can be also specified using rotary axis positions, e.g. with the following structure: N... X=<...> Y=<...> Z=<...> A=<...> B=<...> C=<...> THETA=<...> F=<...> In this case, compression is executed in two different ways, dependent on whether large radius circular interpolation is executed.
  • Page 368 Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) Example In the example program below, a circle approached by a polygon definition is compressed. The tool orientation moves on the outside of the taper at the same time. Although the programmed orientation changes are executed one after the other, but in an unsteady way, the compressor function generates a smooth motion of the orientation.
  • Page 369: Smoothing The Orientation Characteristic (Orison, Orisof)

    Transformations 6.7 Smoothing the orientation characteristic (ORISON, ORISOF) Smoothing the orientation characteristic (ORISON, ORISOF) Function The "Smoothing the orientation characteristic (ORISON)" function can be used to smooth oscillations affecting orientation over several blocks. The aim is to achieve a smooth characteristic for both the orientation and the contour.
  • Page 370 Transformations 6.7 Smoothing the orientation characteristic (ORISON, ORISOF) Example Program code Comments TRAORI() ; Activation of orientation transformation. ORISON ; Activation of orientation smoothing. $SC_ORISON_TOL=1.0 ; Orientation tolerance smoothing = 1.0 degrees. X10 A3=1 B3=0 C3=1 X10 A3=–1 B3=0 C3=1 X10 A3=1 B3=0 C3=1 X10 A3=–1 B3=0 C3=1 X10 A3=1 B3=0 C3=1...
  • Page 371: Kinematic Transformation

    Transformations 6.8 Kinematic transformation Kinematic transformation 6.8.1 Milling on turned parts (TRANSMIT) Function The TRANSMIT function enables the following: • Face machining on turned parts in the turning clamp (drill-holes, contours). • A cartesian coordinate system can be used to program these machining operations. •...
  • Page 372 Transformations 6.8 Kinematic transformation TRANSMIT transformation types The TRANSMIT machining operations have two parameterizable forms: • TRANSMIT in the standard case with (TRAFO_TYPE_n = 256) • TRANSMIT with additional Y linear axis (TRAFO_TYPE_n = 257) The extended transformation type 257 can be used, for example, to compensate clamping compensations of a tool with real Y axis.
  • Page 373 Transformations 6.8 Kinematic transformation Example Program code Comments N10 T1 D1 G54 G17 G90 F5000 G94 Tool selection N20 G0 X20 Z10 SPOS=45 Approach the starting position N30 TRANSMIT Activate TRANSMIT function N40 ROT RPL=–45 Set frame N50 ATRANS X–2 Y10 N60 G1 X10 Y–10 G41 OFFN=1OFFN Square roughing;...
  • Page 374 Transformations 6.8 Kinematic transformation Description Pole There are two ways of passing through the pole: • Traversal along linear axis • Traverse to the pole, rotate the rotary axis at the pole and traveling away from the pole Make the selection using MD 24911 and 24951. TRANSMIT with additional Y linear axis (transformation type 257): This transformation variant of the polar transformation makes use of the redundancy for a machine with another linear axis in order to perform an improved tool compensation.
  • Page 375: Cylinder Surface Transformation (Tracyl)

    Transformations 6.8 Kinematic transformation 6.8.2 Cylinder surface transformation (TRACYL) Function The TRACYL cylinder surface transformation function can be used to: Machine • longitudinal grooves on cylindrical bodies, • Transverse grooves on cylindrical objects, • grooves with any path on cylindrical bodies. The path of the grooves is programmed with reference to the unwrapped, level surface of the cylinder.
  • Page 376 Transformations 6.8 Kinematic transformation Axis utilization The following axes cannot be used as a positioning axis or a reciprocating axis: • The geometry axis in the peripheral direction of the cylinder peripheral surface (Y axis) • The additional linear axis for groove side compensation (Z axis). Syntax TRACYL(d) or TRACYL(d, n) or for transformation type 514...
  • Page 377 Transformations 6.8 Kinematic transformation Example: Tool definition The following example is suitable for testing the parameterization of the TRACYL cylinder transformation: Program code Comments Tool parameters Significance Comment Number (DP) $TC_DP1[1,1]=120 Tool type Milling tool $TC_DP2[1,1]=0 Tool nose position only for turning tools Program code Comments Geometry...
  • Page 378 Transformations 6.8 Kinematic transformation Example: Making a hook-shaped groove Activate cylinder surface transformation: Program code Comments N10 T1 D1 G54 G90 F5000 G94 ; Tool selection, clamping compensation N20 SPOS=0 ; Approach the starting position N30 G0 X25 Y0 Z105 CC=200 N40 TRACYL (40) ;...
  • Page 379 Transformations 6.8 Kinematic transformation Description Without groove wall offset (transformation type 512): The control transforms the programmed traversing movements of the cylinder coordinate system to the traversing movements of the real machine axes: • Rotary axis • Infeed axis perpendicular to rotary axis •...
  • Page 380 Transformations 6.8 Kinematic transformation Groove traversing-section In the case of axis configuration 1, longitudinal grooves along the rotary axis are subject to parallel limits only if the groove width corresponds exactly to the tool radius. Grooves in parallel to the periphery (transverse grooves) are not parallel at the beginning and end.
  • Page 381 Transformations 6.8 Kinematic transformation With additional linear axis and groove wall offset (transformation type 514): On a machine with a second linear axis, this transformation variant makes use of redundancy in order to perform improved tool compensation. The following conditions then apply to the second linear axis: •...
  • Page 382 Transformations 6.8 Kinematic transformation A parts program for milling a groove generally comprises the following steps: 1. Selecting a tool 3. Select suitable coordinate offset (frame) 4. Position 6. Select TRC 7. Approach block (position TRC and approach groove side) 8.
  • Page 383: Inclined Axis (Traang)

    Transformations 6.8 Kinematic transformation 6.8.3 Inclined axis (TRAANG) Function The inclined axis function is intended for grinding technology and facilitates the following performance: • Machining with an oblique infeed axis • A Cartesian coordinate system can be used for programming purposes. •...
  • Page 384 Transformations 6.8 Kinematic transformation Transformation off TRAFOOF Number of agreed transformations Angle α omitted or zero If α (angle) is omitted (e.g., TRAANG(), TRAANG(, n) ), the transformation is activated with the parameterization of the previous selection. On the first selection, the default settings according to the machine data apply.
  • Page 385 Transformations 6.8 Kinematic transformation Description The following machining operations are possible: 1. Longitudinal grinding 2. Face grinding 3. Grinding of a specific contour 4. Oblique plunge-cut grinding. Machine manufacturer The following settings are defined in machine data: • The angle between a machine axis and the oblique axis, •...
  • Page 386: Inclined Axis Programming (G05, G07)

    Transformations 6.8 Kinematic transformation Axis configuration To program in the Cartesian coordinate system, it is necessary to inform the control of the correlation between this coordinate system and the actually existing machine axes (MU,MZ): • Assignment of names to geometry axes •...
  • Page 387 Transformations 6.8 Kinematic transformation Significance Approach starting position Activates oblique plunge-cutting Example Programming Comments N.. G18 ; Program angle for inclined axis N50 G07 X70 Z40 F4000 ; Approach starting position N60 G05 X70 F100 ; Oblique plunge-cutting N70 ... Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 388: Cartesian Ptp Travel

    Transformations 6.9 Cartesian PTP travel Cartesian PTP travel Function This function can be used to program a position in a cartesian coordinate system, however, the movement of the machine occurs in the machine coordinates. The function can be used, for example, when changing the position of the articulated joint, if the movement runs through a singularity.
  • Page 389 Transformations 6.9 Cartesian PTP travel Significance The PTP and CP commands act in a modal manner. CP is the default setting. If modal applies when programming the STAT value, TU programming is = <...> non-modal. Another difference is that programming a STAT value only has an effect during vector interpolation, while programming TU is also evaluated during active rotary axis interpolation.
  • Page 390 Transformations 6.9 Cartesian PTP travel PTP transversal with generic 5-axis transformation Assumption: This is based on a right-angled CA kinematics. Program code Comments TRAORI ; Transformation CA kinematics on ; Activate PTP traversing N10 A3 = 0 B3 = 0 C3 = 1 ;...
  • Page 391 Transformations 6.9 Cartesian PTP travel Programming the axis angle (TU=) To be able to clearly approach axis angles < ± 360 degrees, this information must be programmed using the command "TU=". The axes traverse by the shortest path: • when no TU is programmed for a position, •...
  • Page 392 Transformations 6.9 Cartesian PTP travel Further behavior Mode change The "Cartesian PTP travel" function is only useful in the AUTO and MDA modes of operation. When changing the mode to JOG, the current setting is retained. When the G code PTP is set, the axes will traverse in MCS. When the G code CP is set, the axes will traverse in WCS.
  • Page 393: Ptp For Transmit

    Transformations 6.9 Cartesian PTP travel 6.9.1 PTP for TRANSMIT Function PTP for TRANSMIT can be used to approach G0 and G1 blocks time-optimized. Rather than traversing the axes of the Basic Coordinate System linearly (CP), the machine axes are traversed linearly (PTP). The effect is that the machine axis motion near the pole causes the block end point to be reached much faster.
  • Page 394 Transformations 6.9 Cartesian PTP travel Example of circumnavigation of the pole with PTP and TRANSMIT Figure 6-8 Program code Comments N001 G0 X30 Z0 F10000 T1 D1 G90 Initial setting, absolute dimension N002 SPOS=0 N003 TRANSMIT Transformation TRANSMIT N010 PTPG0 For each G0 block, automatically PTP followed by CP N020 G0 X30 Y20...
  • Page 395 Transformations 6.9 Cartesian PTP travel Example of the retraction from the pole with PTP and TRANSMIT N070 X20 Y2 N060 X0 Y0 N050 X10 Y0 Figure 6-9 Programming Comments N001 G0 X90 Z0 F10000 T1 D1 G90 Initial setting N002 SPOS=0 N003 TRANSMIT Transformation TRANSMIT N010 PTPG0...
  • Page 396 Transformations 6.9 Cartesian PTP travel Description PTP and PTPG0 PTPG0 is considered for all transformations that can process PTP. PTPG0 is not relevant is all other cases. G0 blocks are processed in CP mode. The selection of PTP or PTPG0 is performed in the parts program or by the deselection of CP in the machine data $MC_GCODE_RESET_VALUES[48].
  • Page 397: Constraints When Selecting A Transformation

    Transformations 6.10 Constraints when selecting a transformation 6.10 Constraints when selecting a transformation Function Transformations can be selected via a parts program or MDA. Please note: • No intermediate movement block is inserted (chamfer/radii). • Spline block sequences must be excluded; if not, a message is displayed. •...
  • Page 398: Deselect Transformation (Trafoof)

    Transformations 6.11 Deselect transformation (TRAFOOF) 6.11 Deselect transformation (TRAFOOF) Function The TRAFOOF command deactivates all active transformations and frames. Note Frames required after this must be activated by renewed programming. Please note: The same restrictions as for selection are applicable to deselecting the transformation (see section "Constraints when selecting a transformation").
  • Page 399: Chained Transformations (Tracon, Trafoof)

    Transformations 6.12 Chained transformations (TRACON, TRAFOOF) 6.12 Chained transformations (TRACON, TRAFOOF) Function Two transformations can be chained so that the motion components for the axes from the first transformation are used as input data for the chained second transformation. The motion parts from the second transformation act on the machine axes.
  • Page 400 Transformations 6.12 Chained transformations (TRACON, TRAFOOF) Significance This activates the chained transformation. If another transformation was TRACON previously activated, it is implicitly disabled by means of TRACON(). The most recently activated (chained) transformation will be disabled. TRAFOOF Number of the chained transformation: 0 or 1 for first/single chained transformation.
  • Page 401: Tool Offsets

    Tool offsets Offset memory Function Structure of the offset memory Every data field can be invoked with a T and D number (except "Flat D No."); in addition to the geometrical data for the tool, it contains other information such as the tool type. Flat D number structure The "Flat D No.
  • Page 402: Tool Offsets

    Tool offsets 7.1 Offset memory Tool parameter Meaning of system variables Remarks number (DP) Geometry Radius Radius 1 / length 1 Milling/turning/grinding tool $TC_DP6 diameter d Slotting saw $TC_DP6 Length 2 / corner radius, tapered milling tool Milling tools $TC_DP7 Slot width b corner radius slotting saw $TC_DP7...
  • Page 403 Tool offsets 7.1 Offset memory Tool parameters $TC-DP1 to $TC-DP23 with contour tools Note The tool parameters not listed in the table, such as $TC_DP7, are not evaluated, i.e. their content is meaningless. Tool parameter number Significance Cutting Dn Remarks (DP) $TC_DP1 Tool type...
  • Page 404: Additive Offsets

    Tool offsets 7.2 Additive offsets Additive offsets 7.2.1 Selecting additive offsets (DL) Function Additive offsets can be considered as process offsets that can be programmed in the machining. They refer to the geometrical data of a cutting edge and are therefore a component of tool cutting data.
  • Page 405 Tool offsets 7.2 Additive offsets Example The same cutting edge is used for 2 bearing seats: Program code Comments N110 T7 D7 ; The revolver is positioned to location 7. D7 and DL=1 are activated and moved through in the next block. N120 G0 X10 Z1 N130 G1 Z-6 N140 G0 DL=2 Z-14...
  • Page 406: Specify Wear And Setup Values ($Tc_Scpxy[T,D], $Tc_Ecpxy[T,D])

    Tool offsets 7.2 Additive offsets 7.2.2 Specify wear and setup values ($TC_SCPxy[t,d], $TC_ECPxy[t,d]) Function Wear and setting-up values can be read and written to using system variables. The logic is based on the logic of the corresponding system variables for tools and tool noses. System variables System variable Significance...
  • Page 407: Delete Additive Offsets (Deldl)

    Tool offsets 7.2 Additive offsets 7.2.3 Delete additive offsets (DELDL) Function The DELDL command deletes the additive offsets for the cutting edge of a tool (to release memory space). Both the defined wear values and the setup values are deleted. Syntax DELDL[,] DELDL[]...
  • Page 408: Special Handling Of Tool Offsets

    Tool offsets 7.3 Special handling of tool offsets Special handling of tool offsets Function The evaluation of the sign for tool length and wear can be controlled using setting data SD42900 to SD42960. The same applies to the behavior of the wear components when mirroring geometry axes or changing the machining plane, and also to temperature compensation in tool direction.
  • Page 409 Tool offsets 7.3 Special handling of tool offsets Further Information Activation of modified setting data When the setting data described above are modified, the tool components are not reevaluated until the next time a tool edge is selected. If a tool is already active and the data of this tool are to be reevaluated, the tool must be selected again.
  • Page 410: Mirroring Of Tool Lengths

    Tool offsets 7.3 Special handling of tool offsets 7.3.1 Mirroring of tool lengths Function When setting data SD42900 $SC_MIRROR_TOOL_LENGTH and SD42910 $SC_MIRROR_TOOL_WEAR are not set to zero, then you can mirror the tool length components and components of the basis dimensions with wear values and their associated axes.
  • Page 411: Wear Sign Evaluation

    Tool offsets 7.3 Special handling of tool offsets 7.3.2 Wear sign evaluation Function When setting data SD42920 $SC_WEAR_SIGN_CUTPOS and SD42930 $SC_WEAR_SIGN are set not equal to zero, then you can invert the sign evaluation of the wear components. SD42920 $SC_WEAR_SIGN_CUTPOS Setting data not equal to zero: For tools with the relevant tool nose position (turning and grinding tools, tool types 400), then the sign evaluation of the wear components in the machining plane depends on the tool nose position.
  • Page 412: Coordinate System Of The Active Machining Operation (Towstd, Towmcs, Towwcs, Towbcs, Towtcs, Towkcs)

    Tool offsets 7.3 Special handling of tool offsets 7.3.3 Coordinate system of the active machining operation (TOWSTD, TOWMCS, TOWWCS, TOWBCS, TOWTCS, TOWKCS) Function Depending on the kinematics of the machine or the availability of an orientable toolholder, the wear values measured in one of these coordinate systems are converted or transformed to a suitable coordinate system.
  • Page 413 Tool offsets 7.3 Special handling of tool offsets Further Information Distinguishing features The most important distinguishing features are shown in the following table: G code Wear value Active orientable toolholder Initial value, tool length Wear values are subject to rotation. TOWSTD Wear value in MCS.
  • Page 414 Tool offsets 7.3 Special handling of tool offsets Inclusion of wear values in calculation The setting data SD42935 $SC_WEAR_TRANSFORM defines which of the three wear components: • Wear • Total offsets fine • Total offsets coarse should be subject to a rotation using adapter transformation or a tool holder that can be orientated if one of the following G codes is active: •...
  • Page 415: Tool Length And Plane Change

    Tool offsets 7.3 Special handling of tool offsets 7.3.4 Tool length and plane change Function When setting data SD42940 $SC_TOOL_LENGTH_CONST is set not equal to zero, then you can assign the tool length components – such as lengths, wear and basic dimension – to the geometry axes for turning and grinding tools when changing the plane.
  • Page 416: Online Tool Offset (Putftocf, Fctdef, Putftoc, Ftocon, Ftocof)

    Tool offsets 7.4 Online tool offset (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) Online tool offset (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) Function When the "Online tool offset" function is active, a tool length offset resulting from the machining is applied immediately on grinding tools. An application example is CD dressing, where the grinding wheel is dressed in parallel to machining.
  • Page 417 Tool offsets 7.4 Online tool offset (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) Syntax Activate/deactivate online tool offset in the destination channel: FTOCON FTOCOF Write online tool offset: • Continuous, non-modal: FCTDEF(,,,,,,) PUTFTOCF(,,,,) • Discrete: PUTFTOC(,,,) Significance Activate online tool offset FTOCON: FTOCON must be written in the channel in which the online tool offset is to take effect.
  • Page 418 Tool offsets 7.4 Online tool offset (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) Call the "Continuous non-modal write of online tool offset" function PUTFTOCF: Parameter: Number of the polynomial function : Type: Note: Must match the setting for FCTDEF. Variable reference value from which the offset is
  • Page 419 Tool offsets 7.4 Online tool offset (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) Example Surface grinding machine with: • Y: Infeed axis for grinding wheel • V: Infeed axis for dressing roller • Machining channel: Channel 1 with axes X, Z, Y •...
  • Page 420 Tool offsets 7.4 Online tool offset (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) Dressing program in channel 2: Program code Comments … N40 FCTDEF(1,–1000,1000,–$AA_IW[V],1) ; Define function: Straight line with gradient = 1 N50 PUTFTOCF(1,$AA_IW[V],3,1) ; Continuously write online tool offset: Derived from the motion of the V axis, the length 3 of the active grinding wheel is compensated in channel 1.
  • Page 421: Activate 3D Tool Offsets (Cut3Dc

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Activate 3D tool offsets (CUT3DC..., CUT3DF...) 7.5.1 Activating 3D tool offsets (CUT3DC, CUT3DF, CUT3DFS, CUT3DFF, ISD) Function Tool orientation change is taken into account in tool radius compensation for cylindrical tools. The same programming commands apply to 3D tool radius compensation as to 2D tool radius compensation.
  • Page 422 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Significance Activation of 3D radius offset for circumferential milling CUT3DC 3D tool offset for face milling with constant orientation. CUT3DFS The tool orientation is determined by G17 - G19 and is not influenced by frames.
  • Page 423: Tool Offset Peripheral Milling, Face Milling

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 7.5.2 3D tool offset peripheral milling, face milling Circumferential milling The type of milling used here is implemented by defining a path (guide line) and the corresponding orientation. In this type of machining, the shape of the tool on the path is not relevant.
  • Page 424 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Example: NC blocks were computed using a 10 mm milling tool. In this case, a milling tool diameter of 9.9 mm can be used for machining – whereby a modified roughness profile can be expended. Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 425: 3D Tool Offset Tool Shapes And Tool Data For Face Milling

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 7.5.3 3D tool offset Tool shapes and tool data for face milling Mill shapes, tool data An overview of the tool shapes, which may be used for face milling operations and tool data limit values are listed in the following.
  • Page 426: Tool Offset Compensation On The Path, Path Curvature, Insertion Depth (Cut3Dc, Isd)

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Tool data Tool parameters Tool dimensions Geometry Wear $TC_DP6 $TC_DP15 $TC_DP7 $TC_DP16 $TC_DP11 $TC_DP20 Tool length offset The tool tip is the reference point for length offset (intersection longitudinal axis/surface). 3D tool offset, tool change A new tool with modified dimensions (R, r, a) or a different shaft may only be specified with the programming of G41 or G42 (transition G40 to G41 or G42, reprogramming of G41 or G42).
  • Page 427 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) This borderline case is monitored by the control that detects abrupt changes in the machining point on the basis of angular approach motions between the tool and normal surface vectors. The control inserts linear blocks at these positions so that the motion can be executed. These linear blocks are calculated on the basis of permissible angular ranges for the side angle stored in the machine data.
  • Page 428 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Milling tool reference point The milling tool reference point (FH) is obtained by projecting the programmed machining point onto the tool axis. Further Information Pocket milling with inclined side walls for circumferential milling with CUT3DC In this 3D tool radius compensation, a deviation of the mill radius is compensated by infeed toward the normals of the surface to be machined.
  • Page 429: Tool Offset Inside/Outside Corners And Intersection Procedure (G450/G451)

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 7.5.5 3D tool offset Inside/outside corners and intersection procedure (G450/G451) Function Inside corners/outside corners Inside and outside corners are handled separately. The terms inner corner and outer corner are dependent on the tool orientation. When the orientation changes at a corner, for example, the corner type may change while machining is in progress.
  • Page 430: 3D Tool Offset 3D Circumferential Milling With Limitation Surfaces

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Further Information Intersection procedure for 3D compensation With 3D circumferential milling, G code G450/G451 is now evaluated i.e. the point of intersection of the offset curves can be approached. Up to SW 4 a circle was always inserted at the outside corners.
  • Page 431: Tool Offset Taking Into Consideration A Limitation Surface (Cut3Dcc, Cut3Dccd)

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 7.5.7 3D tool offset Taking into consideration a limitation surface (CUT3DCC, CUT3DCCD) Function 3D circumferential milling with real tools In 3D circumferential milling with a continuous or constant change in tool orientation, the tool center point path is frequently programmed for a defined standard tool.
  • Page 432 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Example Tool dimensions of a toroidal miller with reduced radius as compared with the standard tool. Tool type R = shank radius r = corner radius Standard tool with corner rounding R = $TC_DP6 r = $TC_DP7 Real tool with corner rounding:...
  • Page 433 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Contrary to all other tool offsets of G code group 22, tool parameter $TC_DP6 specified for CUT3DCCD does not influence the tool radius and the resulting compensation. The compensation offset is the sum of: •...
  • Page 434 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 3D radius compensation with CUT3DCC, contour on the machining surface If CUT3DCC is active with a torus milling tool, the programmed path refers to a fictitious cylindrical milling tool having the same diameter. The resulting path reference point is shown in the following diagram for a torus milling tool.
  • Page 435: Tool Orientation (Oric, Orid, Osof, Osc, Oss, Osse, Oris, Osd, Ost)

    Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Function The term tool orientation describes the geometric alignment of the tool in space. The tool orientation on a 5-axis machine tool can be set by means of program commands.
  • Page 436 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Programming tool orientation: Command Significance Orientation and path movement in parallel ORIC: Orientation and path movement consecutively ORID: No orientation smoothing OSOF: Orientation constantly OSC: Orientation smoothing only at beginning of block OSS: Orientation smoothing at beginning and end of block OSSE:...
  • Page 437 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Examples Example 1: ORIC If ORIC is active and there are two or more blocks with changes in orientation (e.g.A2=... B2=... C2=...) programmed between traversing blocks N10 andN20, then the inserted circle block is distributed among these intermediate blocks according to the absolute changes in angle.
  • Page 438 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Example 2: ORID If ORID is active, then all blocks between the two traversing blocks are executed at the end of the first traversing block. The circle block with constant orientation is executed immediately before the second traversing block.
  • Page 439 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Example 3: Changing the orientation at an inner corner Program code ORIC N10 X …Y… Z… G1 F500 N12 X …Y… Z… A2=… B2=… C2=… N15 X …Y… Z… A2=… B2=… C2=… Further Information Behavior at outer corners A circle block with the radius of the cutter is always inserted at an outside corner.
  • Page 440 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) If an orientation change is required at outside corners, this can be performed either at the same time as interpolation or separately together with the path movement. When ORID is programmed, the inserted blocks are executed first without path motion.
  • Page 441: Free Assignment Of D Numbers, Cutting Edge Numbers

    Tool offsets 7.7 Free assignment of D numbers, cutting edge numbers Free assignment of D numbers, cutting edge numbers 7.7.1 Free assignment of D numbers, cutting edge numbers (CE address) D number The D numbers can be used as contour numbers. You can also address the number of the cutting edge via the address CE.
  • Page 442: Free Assignment Of D Numbers: Rename D Numbers (Getdno, Setdno)

    Tool offsets 7.7 Free assignment of D numbers, cutting edge numbers Significance = TRUE: The D numbers are assigned uniquely to the state checked areas. = FALSE: There was a D number collision or the parameters are invalid. Tno1, Tno2 and Dno return the parameters that caused the collision.
  • Page 443: Free Assignment Of D Numbers: Determine T Number To The Specified D Number (Getacttd)

    Tool offsets 7.7 Free assignment of D numbers, cutting edge numbers Example for renaming a D number Programming Comments $TC_DP2[1.2]=120 $TC_DP3[1,2] = 5.5 $TC_DPCE[1,2] = 3 Cutting edge number CE N10 def int DNoOld, DNoNew = 17 N20 DNoOld = GETDNO(1,3) N30 SETDNO(1,3,DNoNew) The new D value 17 is then assigned to cutting edge CE=3.
  • Page 444: Free Assignment Of D Numbers: Invalidate D Numbers (Dzero)

    Tool offsets 7.7 Free assignment of D numbers, cutting edge numbers 7.7.5 Free assignment of D numbers: Invalidate D numbers (DZERO) Function The DZERO command is used for support during retooling. Compensation data sets tagged with this command are no longer verified by the CHKDNO command. These data sets can be accessed again by setting the D number once more with SETDNO.
  • Page 445: Tool Holder Kinematics

    Tool offsets 7.8 Tool holder kinematics Tool holder kinematics Prerequisites A toolholder can only orientate a tool in all possible directions in space if • two rotary axes V and V are present. • the rotary axes are mutually orthogonal. •...
  • Page 446 Tool offsets 7.8 Tool holder kinematics For machines with resolved kinematics (both the tool and the part can rotate), the system variables have been extended with the entries • $TC_CARR18[m] to $TC_CARR23[m]. Parameters Function of the system variables for orientable toolholders Designation x component y component...
  • Page 447 Tool offsets 7.8 Tool holder kinematics Extensions of the system variables for orientable toolholders User: Intended use in user measuring cycles $TC_CARR35[m] Axis name 1 $TC_CARR36[m] Axis name 2 $TC_CARR37[m] Identifier $TC_CARR38[m] $TC_CARR39[m] $TC_CARR40[m] Position Fine Parameters that can be added to the values offset in the basic parameters.
  • Page 448 Tool offsets 7.8 Tool holder kinematics Parameter extensions Parameters of the rotary axes The system variables have been extended by the entries $TC_CARR24[m] to $TC_CARR33[m] and described as follows: Offset of rotary axes Changing the position of the rotary axis v or v for the initial setting of the oriented toolholder.
  • Page 449 Tool offsets 7.8 Tool holder kinematics Example The toolholder used in the following example can be fully described by a rotation around the Y axis. Program code Comments N10 $TC_CARR8[1]=1 ; Definition of the Y component of the first rotary axis of toolholder 1.
  • Page 450 Tool offsets 7.8 Tool holder kinematics Further Information Resolved kinematics For machines with resolved kinematics (both the tool as well as the workpiece can be rotated), the system variables have been expanded by the entries $TC_CARR18[m] up to $TC_CARR23[m] and are described as follows: The rotatable tool table consisting of: •...
  • Page 451: Tool Length Compensation For Orientable Toolholders (Tcarr, Tcoabs, Tcofr, Tcofrx, Tcofry, Tcofrz)

    Tool offsets 7.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) Function When the spatial orientation of the tool changes, its tool length components also change. After a reset, e.g., through manual setting or change of the toolholder with a fixed spatial orientation, the tool length components also have to be determined again.
  • Page 452 Tool offsets 7.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, Significance Request toolholder with the number "m" TCARR=[]: Determine tool length components from the orientation of the current TCOABS: toolholder Determine tool length components from the orientation of the active TCOFR: frame Orientable toolholder from active frame with a tool pointing in the Z...
  • Page 453 Tool offsets 7.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, Recalculation of tool length compensation (TCOABS) for a frame change In order to make a new calculation of the tool length compensation when frames are changed, the tool has to be selected again.
  • Page 454: Online Tool Length Compensation (Toffon, Toffof)

    Tool offsets 7.10 Online tool length compensation (TOFFON, TOFFOF) 7.10 Online tool length compensation (TOFFON, TOFFOF) Function Use the system variable $AA_TOFF[ ] to overlay the effective tool lengths in accordance with the three tool directions three-dimensionally in real time. The three geometry axis identifiers are used as index .
  • Page 455 Tool offsets 7.10 Online tool length compensation (TOFFON, TOFFOF) Examples Example 1: Selecting the tool length compensation Program code Comment MD21190 $MC_TOFF_MODE = 1 ; Absolute values are approached. MD21194 $MC_TOFF_VELO[0] =1000 MD21196 $MC_TOFF_VELO[1] =1000 MD21194 $MC_TOFF_VELO[2] =1000 MD21196 $MC_TOFF_ACCEL[0] =1 MD21196 $MC_TOFF_ACCEL[1] =1 MD21196 $MC_TOFF_ACCEL[2] =1 N5 DEF REAL XOFFSET...
  • Page 456 Tool offsets 7.10 Online tool length compensation (TOFFON, TOFFOF) Further information Block preparation During block preparation in preprocessing, the current tool length offset active in the main run is also taken into consideration. To allow extensive use to be made of the maximum permissible axis velocity, it is necessary to stop block preparation with a STOPRE preprocessing stop while a tool offset is established.
  • Page 457: Cutting Data Modification For Tools That Can Be Rotated (Cutmod)

    Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Function Using the function "cutting data modification for rotatable tools", the changed geometrical relationships, that are obtained relative to the workpiece being machined when rotating tools (predominantly turning tools, but also drilling and milling tools) can be taken into account with the tool compensation.
  • Page 458 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Meaning Command to switch-in the function "cutting data modification for tools that can CUTMOD be rotated" The following values can be assigned to the CUTMOD command: The function is deactivated.
  • Page 459 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Example The following example refers to a tool with tool nose position 3 and a toolholder that can be orientated, which can rotate the tool around the B axis. The numerical values in the comments specify the end of block positions in the machine coordinates (MCS) in the sequence X, Y, Z.
  • Page 460 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Explanations: In blockN180, initially the tool is selected for CUTMOD=0 and non-rotated toolholders that can be orientated. As all offset vectors of the toolholder that can be orientated are 0, the position that corresponds to the tool lengths specified in $TC_DP3[1,1] and $TC_DP4[1,1] is approached.
  • Page 461 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) System variables The following system variables are available: System variables Significance $P_CUTMOD_ANG / Supplies the (non-rounded) angle in the active machining plane, that was $AC_CUTMOD_ANG used as basis for the modification of the cutting data (tool nose position, cut direction, clearance angle and holder angle) for the functions activated using CUTMOD and/or $SC_CUTDIRMOD.
  • Page 462 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Modified cutting data: If a tool rotation is active, the modified data are made available in the following system variables: System variable Significance $P_AD[2] Tool nose position $P_AD[10] Holder angle $P_AD[11]...
  • Page 463: Path Traversing Behavior

    Path traversing behavior Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Function The following axis follows the path of the leading axis along the tangent. This allows alignment of the tool parallel to the contour. Using the angle programmed in the TANGONinstruction, the tool can be positioned relative to the tangent.
  • Page 464: Path Traversing Behavior

    Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Application Tangential control can e.g. be used in the applications: • Tangential positioning of a rotatable tool during nibbling • Tracking the workpiece alignment for a bandsaw (see the following diagram). •...
  • Page 465 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, Meaning Preparatory operation for the definition of tangential tracking: TANG: Activate tangential control for the specified following axis TANGON: Deactivate tangential control for the specified following axis TANGOF: Activate the "Insert intermediate block at contour corners" TLIFT: function Delete definition of tangential tracking...
  • Page 466 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Examples Example 1: Defining and activating tangential tracking Program code Comment N10 TANG(C,X,Y,1,"B","P") ; Definition of a tangential tracking: Rotary axis C should follow geometry axes X and Y. N20 TANGON(C,90) ;...
  • Page 467 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, Example 4: Tangential tracking with automatic optimization Y1 is geometry axis 2. Program code Comment N80 G0 C0 N100 F=50000 N110 G1 X1000 Y500 N120 TRAORI N130 G642 ; Smoothing and maintaining the maximum permitted path deviation: N171 TRANS X50 Y50...
  • Page 468 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Limit angle using the working area limitation For path movements, which oscillate back and forth, the tangent jumps through 180° at the turning point on the path and the orientation of the following axis changes accordingly. This behavior is generally inappropriate: The return movement should be traversed at the same negative offset angle as the approach movement: To do this, limit the working area of the following axis (G25, G26).
  • Page 469 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, Optimization possibility If the automatic optimization is selected (="P") and if the parameter smoothing distance () and angular tolerance () are specified for the following axis, then for tangential tracking, velocity steps of the slave axis as a result of steps in the leading axis contour are smoothed.
  • Page 470: Feedrate Response (Fnorm, Flin, Fcub, Fpo)

    Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) Feedrate response (FNORM, FLIN, FCUB, FPO) Function To permit flexible definition of the feed characteristic, the feed programming according to DIN 66205 has been extended by linear and cubic characteristics. The cubic characteristics can be programmed either directly or as interpolating splines.
  • Page 471 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) Example: Various feed profiles This example shows you the programming and graphic representation of various feed profiles. Program code Comments N1 F1000 FNORM G1 X8 G91 G64 ; Constant feedrate profile, incremental dimension data N2 F2000 X7 ;...
  • Page 472 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) FNORM The feed address F defines the path feed as a constant value according to DIN 66025. Please refer to Programming Manual "Fundamentals" for more detailed information on this subject. FLIN The feed characteristic is approached linearly from the current feed value to the programmed F value until the end of the block.
  • Page 473 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) FCUB The feed is approached according to a cubic characteristic from the current feed value to the programmed F value until the end of the block. The control uses splines to connect all the feed values programmed non-modally that have an active FCUB.
  • Page 474 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) Restrictions The functions for programming the path traversing characteristics apply regardless of the programmed feed characteristic. The programmed feed characteristic is always absolute regardless of G90 or G91. Feed response FLIN and FCUB are active with G93 and G94.
  • Page 475: Program Sequence With Preprocessing Memory (Stopfifo, Startfifo, Fifoctrl, Stopre)

    Path traversing behavior 8.3 Program sequence with preprocessing memory (STOPFIFO, Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) Function Depending on its expansion level, the control system has a certain quantity of so-called preprocessing memory in which prepared blocks are stored prior to program execution and then output as high-speed block sequences while machining is in progress.
  • Page 476 Path traversing behavior 8.3 Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) Syntax Table 8-1 Identify machining step: STOPFIFO STARTFIFO Table 8-2 Automatic preprocessing memory control: FIFOCTRL Table 8-3 Preprocessing stop: STOPRE Note The STOPFIFO, STARTFIFO, FIFOCTRL, and STOPRE commands have to be programmed in a separate block.
  • Page 477 Path traversing behavior 8.3 Program sequence with preprocessing memory (STOPFIFO, Note The preprocessing memory is not filled or filling is interrupted if the machining step contains commands that require unbuffered operation (search for reference, measuring functions, etc.). Note The control generates an internal preprocessing stop in the event of access to status data ($SA...).
  • Page 478: Conditionally Interruptible Program Sections (Delayfston, Delayfstof)

    Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Function Conditionally interruptible part program sections are called stop delay sections. No stopping should occur and the feed should not be changed within certain program sections. Essentially, short program sections - e.g.
  • Page 479 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, Selection of a number of stop events, which induce at least short stopping: Event name Response interruption parameters RESET immediate IS: DB21,… DBX7.7 and DB11, … DBX20.7 PROG_END Alarm 16954 NC prog.: M30 INTERRUPT delayed IS: FC-9 and ASUP DB10, ...
  • Page 480 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Example: Nesting stop delay sections in two program levels Program code Comments N10010 DELAYFSTON() ; Blocks with N10xxx program level 1. N10020 R1 = R1 + 1 N10030 G4 F1 ;...
  • Page 481 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, Program code Comments N500 G33 Z0 X5 K3 N600 G0 X100 N700 DELAYFSTOF() N800 GOTOB MY_LOOP Details on SERUPRO type block searches and feeds in conjunction with G331/G332 Feed for tapping without compensating chuck, see: References: Function Manual Basic Functions;...
  • Page 482 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Overlapping/nesting: If two stop delay sections overlap, one from the NC commands and the other from machine data MD 11550: STOP_MODE_MASK, the largest possible stop delay section will be generated. The following features regulate the interaction between NC commands DELAYFSTON and DELAYFSTOF with nesting and end of subroutine: 1.
  • Page 483: Preventing Program Position For Serupro (Iptrlock, Iptrunlock)

    Path traversing behavior 8.5 Preventing program position for SERUPRO (IPTRLOCK, Preventing program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) Function For some complicated mechanical situations on the machine it is necessary to the stop block search SERUPRO. By using a programmable interruption pointer it is possible to intervene before an untraceable point with "Search at point of interruption".
  • Page 484 Path traversing behavior 8.5 Preventing program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) Example Nesting of untraceable program sections in two program levels with implicit IPTRUNLOCK. Implicit IPTRUNLOCK in subprogram 1 ends the untraceable section. Program code Comment N10010 IPTRLOCK() N10020 R1 = R1 + 1 N10030 G4 F1 ;...
  • Page 485 Path traversing behavior 8.5 Preventing program position for SERUPRO (IPTRLOCK, Rules for nesting: The following features regulate the interaction between NC commands IPTRLOCK and IPTRUNLOCK with nesting and end of subroutine: 1. IPTRLOCK is activated implicitly at the end of the subroutine in which IPTRUNLOCK is called.
  • Page 486: Repositioning To A Contour (Reposa, Reposl, Reposq, Reposqa, Reposh, Reposha, Disr, Dispr, Rmi, Rmb, Rme, Rmn)

    Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Function If you interrupt the program run and retract the tool during the machining operation because, for example, the tool has broken or you wish to check a measurement, you can reposition at any selected point on the contour under control by the program.
  • Page 487 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, Significance Approach path Approach along line on all axes REPOSA Approach along line REPOSL Approach along quadrant with radius DISR REPOSQ DISR=… Approach on all axes along quadrant with radius DISR REPOSQA DISR=…...
  • Page 488 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, Example: Approach along a straight line, REPOSA, REPOSL The tool approaches the repositioning point along a straight line. All axes are automatically traversed with command REPOSA. With REPOSL you can specify which axes are to be moved.
  • Page 489: Control System

    Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, Example: Approach in circle quadrant, REPOSQ, REPOSQA The tool approaches the repositioning point along a quadrant with a radius of DISR=…. The control system automatically calculates the intermediate point between the start and repositioning points.
  • Page 490 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, Specifying the repositioning point (not for SERUPRO approaching with RMN) With reference to the NC block in which the program run has been interrupted, it is possible to select one of three different repositioning points: •...
  • Page 491 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, DISPR sign The sign DISPR is evaluated. In the case of a plus sign, the behavior is as previously. In the case of a minus sign, approach is behind the interruption point or, with RMB, behind the block start point.
  • Page 492 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, Approach from the nearest path point RMN When REPOSA is interpreted, the repositioning block with RMN is not started again in full after an interruption, but only the distance-to-go processed. The nearest path point of the interrupted block is approached.
  • Page 493 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, Approaching with a new tool The following applies if you have stopped the program run due to tool breakage: When the new D number is programmed, the machining program is continued with modified tool offset values at the repositioning point.
  • Page 494 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, Approach contour The motion with which the tool is repositioned on the contour can be programmed. Enter zero for the addresses of the axes to be traversed. The REPOSA, REPOSQA and REPOSHA commands automatically reposition all axes.
  • Page 495: Influencing The Motion Control

    Path traversing behavior 8.7 Influencing the motion control Influencing the motion control 8.7.1 Percentage jerk correction (JERKLIM) Function Using the NC command JERKLIM, the maximum jerk of an axis for path motion - set using machine data - can be reduced or increased in critical program sections. Precondition The acceleration mode SOFT must be active.
  • Page 496: Percentage Velocity Correction (Velolim)

    Path traversing behavior 8.7 Influencing the motion control Example Program code Comment N60 JERKLIM[X]=75 ; The axis slide in the X direction should only be accelerated/decelerated with a maximum of 75% of the jerk permissible for the axis. 8.7.2 Percentage velocity correction (VELOLIM) Function Using the NC command VELOLIM, the maximum possible velocity of an axis/spindle in axis operation or the maximum possible gear unit-stage dependent speed of a spindle in spindle...
  • Page 497 Path traversing behavior 8.7 Influencing the motion control Meaning Command for velocity correction VELOLIM: Machine axis or spindle whose velocity or speed limit value should : be adapted. VELOLIM for spindles Using machine data (MD30455 $MA_MISC_FUNCTION_MASK, bit 6), when programming in the part program, it can be set as to whether VELOLIM is effective independent of whether used as spindle or axis (bit 6 = 1) - or is able to be programmed separately for each operating mode (bit 6 = 0).
  • Page 498 Path traversing behavior 8.7 Influencing the motion control Diagnostics VELOLIM diagnostics in spindle operation Active speed limiting using VELOLIM (less than 100 %) can be identified in spindle operation by reading the system variables $AC_SMAXVELO and $AC_SMAXVELO_INFO. In the case of limiting, $AC_SMAXVELO supplies the speed limit generated by VELOLIM. In this case, variable $AC_SMAXVELO_INFO returns the value "16"...
  • Page 499: Program Example For Jerklim And Velolim

    Path traversing behavior 8.7 Influencing the motion control 8.7.3 Program example for JERKLIM and VELOLIM The following program presents an application example for the percentage jerk and velocity limit: Program code Comments N1000 G0 X0 Y0 F10000 SOFT G64 N1100 G1 X20 RNDM=5 ACC[X]=20 ACC[Y]=30 N1200 G1 Y20 VELOLIM[X]=5 ;...
  • Page 500: Programmable Contour/Orientation Tolerance (Ctol, Otol, Atol)

    Path traversing behavior 8.8 Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) Function The CTOL, OTOL, and ATOL commands can be used to adapt the machining tolerances defined for the compressor functions (COMPON, COMPCURV, COMPCAD), the smoothing types G642, G643, G645, OST, and the orientation ORISON using machine and setting data in the NC program.
  • Page 501 Path traversing behavior 8.8 Programmable contour/orientation tolerance (CTOL, OTOL, Command for programming an axis-specific tolerance ATOL ATOL is valid for: • All compressor functions • ORISON orientation smoothing • All rounding types except G641, G644, OSD Name of the axis for which an axis tolerance is to be programmed : The value for the axis tolerance will be specified as a length or an :...
  • Page 502 Path traversing behavior 8.8 Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) Further information Read tolerance values For more advanced applications or for diagnostics, the currently valid tolerances for the compressor functions (COMPON, COMPCURV, COMPCAD), the smoothing types G642, G643, G645, OST, and the orientation smoothing ORISON can be read via system variables irrespective of how they might have come about.
  • Page 503 Path traversing behavior 8.8 Programmable contour/orientation tolerance (CTOL, OTOL, • Without preprocessing stop in the part program via system variables: $P_CTOL Programmed contour tolerance $P_OTOL Programmed orientation tolerance $PA_ATOL Programmed axis tolerance Note If no tolerance values have been programmed, the $P variables will return the value "-1". Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 504: Tolerance For G0 Motion (Stolf)

    Path traversing behavior 8.9 Tolerance for G0 motion (STOLF) Tolerance for G0 motion (STOLF) G0 tolerance factor G0 motion (rapid traverse, infeed motion), contrary to workpiece machining, can be implemented with a higher tolerance. This has the advantage that the execution times for G0 motion are shortened.
  • Page 505 Path traversing behavior 8.9 Tolerance for G0 motion (STOLF) System variables The G0 tolerance factor, effective in the part program or in the actual IPO block, can be read using system variables. • In synchronized actions or with preprocessing stop in the part program via system variable: $AC_STOLF Active G0 tolerance factor...
  • Page 506 Path traversing behavior 8.9 Tolerance for G0 motion (STOLF) Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 507: Axis Couplings

    Axis couplings Coupled motion (TRAILON, TRAILOF) Function When a defined leading axis is moved, the coupled motion axes (= following axes) assigned to it traverse through the distances described by the leading axis, allowing for a coupling factor. Together, the leading axis and following axis represent coupled axes. Applications •...
  • Page 508: Axis Couplings

    Axis couplings 9.1 Coupled motion (TRAILON, TRAILOF) Significance Command for activating and defining a coupled axis grouping TRAILON Active: modal Parameter 1: Axis name of trailing axis Note: A coupled-motion axis can also act as the leading axis for other coupled-motion axes.
  • Page 509 Axis couplings 9.1 Coupled motion (TRAILON, TRAILOF) Example The workpiece is to be machined on two sides with the axis configuration shown in the diagram. To do this, you create two combinations of coupled axes. Program code Comments … N100 TRAILON(V,Y) ;...
  • Page 510 Axis couplings 9.1 Coupled motion (TRAILON, TRAILOF) Dynamics limit The dynamics limit is dependent on the type of activation of the coupled axis grouping: • Activation in part program If activation is performed in the part program and all leading axes are active as program axes in the activated channel, the dynamic response of all coupled-motion axes is taken into account during traversing of the leading axis to avoid overloading the coupled-motion axes.
  • Page 511: Curve Tables (Ctab)

    Axis couplings 9.2 Curve tables (CTAB) Curve tables (CTAB) Function Curve tables can be used to program position and velocity relationships between two axes (leading and following axis). Curve tables are defined in the part program. Application Curve tables replace mechanical cams. The curve table forms the basis for the axial master value coupling by creating the functional relationship between the leading and the following value: With appropriate programming, the control calculates a polynomial that corresponds to the cam from the relative positions of the leading and following axes.
  • Page 512: Define Curve Tables (Ctabdef, Catbend)

    Axis couplings 9.2 Curve tables (CTAB) 9.2.1 Define curve tables (CTABDEF, CATBEND) Function A curve table represents a part program or a section of a part program enclosed by CTABDEF at the start and CTABEND at the end. Within this part program section, unique following axis positions are assigned to individual positions of the leading axis using motion operations;...
  • Page 513 Axis couplings 9.2 Curve tables (CTAB) Significance Start of curve table definition CTABDEF( ) End of curve table definition CTABEND Axis whose motion is to be calculated using the curve table Axis providing the master values for the calculation of the following ...
  • Page 514 Axis couplings 9.2 Curve tables (CTAB) Program code Comments ENDIF … CTABEND Example 2: Definition of a non-periodic curve table Program code Comments N100 CTABDEF(Y,X,3,0) ; Beginning of the definition of a ;non-periodic curve table with number 3. N110 X0 Y0 ;...
  • Page 515 Axis couplings 9.2 Curve tables (CTAB) Example 3: Definition of a periodic curve table Definition of a periodic curve table with number 2, master value range 0 to 360, following axis motion from 0 to 45 and back to 0: Program code Comments N10 DEF REAL DEPPOS...
  • Page 516 Axis couplings 9.2 Curve tables (CTAB) Further information Starting and end value of the curve table The starting value for the beginning of the definition range of the curve table are the first associated axis positions specified (the first traverse statement) within the curve table definition.
  • Page 517 Axis couplings 9.2 Curve tables (CTAB) Activating ASPLINE, BSPLINE, CSPLINE If an ASPLINE, BSPLINE or CSPLINE is activated within a curve table definition CTABDEF ... CTABEND, at least one starting point should be programmed before this spline activation. Immediate activation after CTABDEF should be avoided, otherwise the spline will depend on the current axis position before the curve table definition.
  • Page 518: Check For Presence Of Curve Table (Ctabexists)

    Axis couplings 9.2 Curve tables (CTAB) Revoking the curve table definition Once the operations relating to the curve table definition have been excluded, the part program section can be used as a real part program again. Loading curve tables using "Execution from external source" If curve tables are executed from an external source, the selection of the size of the reload buffer (DRAM) in MD18360 $MN_MM_EXT_PROG_BUFFER_SIZE has to support the simultaneous storage of the entire curve table definition in the reload buffer.
  • Page 519: Delete Curve Tables (Ctabdel)

    Axis couplings 9.2 Curve tables (CTAB) 9.2.3 Delete curve tables (CTABDEL) Function CTABDEL can be used to delete curve tables. Note Curve tables that are active in an axis coupling cannot be deleted. Syntax CTABDEL() CTABDEL(,) CTABDEL(,,) CTABDEL () CTABDEL(,,) Significance Command for deleting curve tables...
  • Page 520: Locking Curve Tables To Prevent Deletion And Overwriting (Ctablock, Ctabunlock)

    Axis couplings 9.2 Curve tables (CTAB) 9.2.4 Locking curve tables to prevent deletion and overwriting (CTABLOCK, CTABUNLOCK) Function Locks can be set to protect curve tables against unintentional deletion and overwriting. Once a lock has been set, it can be revoked at any time. Syntax Lock: CTABLOCK()
  • Page 521: Curve Tables: Determine Table Properties (Ctabid, Ctabislock, Ctabmemtyp, Ctabperiod)

    Axis couplings 9.2 Curve tables (CTAB) When a curve table range CTABLOCK(,)/ CTABUNLOCK(,) is locked/unlocked, is used to specify the number of the last curve table in the range. has to be greater than . Specification of memory location (optional) ...
  • Page 522 Axis couplings 9.2 Curve tables (CTAB) Significance Returns the table number entered as the

    th curve table in the CTABID specified memory. Example: CTABID(1,"SRAM") returns the number of the first curve table in the static NC memory. In this context the first curve table is the curve table with the highest table number.

  • Page 523: Read Curve Table Values (Ctabtsv, Ctabtev, Ctabtsp, Ctabtep, Ctabssv, Ctabsev, Ctab, Ctabinv, Ctabtmin, Ctabtmax)

    Axis couplings 9.2 Curve tables (CTAB) 9.2.6 Read curve table values (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) Function The following curve table values can be read in the part program: • Following axis and leading axis values at the start and end of a curve table •...
  • Page 524 Axis couplings 9.2 Curve tables (CTAB) Read leading axis value for specified following axis value CTABINV: () Define following axis minimum value: CTABTMIN: • In the entire definition range of the curve table • In a defined interval to Define following axis maximum value: CTABTMAX: •...
  • Page 525 Axis couplings 9.2 Curve tables (CTAB) Program code Comment N10 DEF REAL STARTPOS N20 DEF REAL ENDPOS N30 DEF REAL STARTPARA N40 DEF REAL ENDPARA N50 DEF REAL MINVAL N60 DEF REAL MAXVAL N70 DEF REAL GRADIENT N100 CTABDEF(Y,X,1,0) ; Beginning of table definition N110 X0 Y10 ;...
  • Page 526 Axis couplings 9.2 Curve tables (CTAB) Further information Use in synchronized actions All commands for reading curve table values can also be used in synchronized actions (see also the chapter titled "Motion-synchronous actions"). When using the CTABINV, CTABTMIN, and CTABTMAX commands, make sure that: •...
  • Page 527 Axis couplings 9.2 Curve tables (CTAB) CTAB with periodic curve tables If the specified is outside the definition range, the master value is evaluated modulo of the definition range and the corresponding following value is output: Approximate value for CTABINV The CTABINV command, therefore, requires an approximate value for the expected master value.
  • Page 528: Curve Tables: Check Use Of Resources (Ctabno, Ctabnomem, Ctabfno, Ctabsegid, Ctabseg, Ctabfseg, Ctabmseg, Ctabpolid, Ctabpol, Ctabfpol, Ctabmpol)

    Axis couplings 9.2 Curve tables (CTAB) 9.2.7 Curve tables: Check use of resources (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) Function The programmer can use these commands to obtain up-to-date information about the use of resources for curve tables, table segments, and polynomials. Syntax CTABNO CTABNOMEM()
  • Page 529 Axis couplings 9.2 Curve tables (CTAB) Determine the maximum possible number of curve polynomials in CTABMPOL the specified Number (ID) of curve table Specification of memory location (optional) Static NC memory "SRAM" Dynamic NC memory "DRAM"...
  • Page 530: Axial Leading Value Coupling (Leadon, Leadof)

    Axis couplings 9.3 Axial leading value coupling (LEADON, LEADOF) Axial leading value coupling (LEADON, LEADOF) Note This function is not available for SINUMERIK 828D! Function With the axial master value coupling, a leading and a following axis are moved in synchronism. It is possible to assign the position of the following axis via a curve table or the resulting polynomial uniquely to a position of the leading axis –...
  • Page 531 Axis couplings 9.3 Axial leading value coupling (LEADON, LEADOF) Syntax LEADON(FAxis,LAxis,n) LEADOF(FAxis,LAxis) or deactivation without specifying the leading axis: LEADOF(FAxis) The master value coupling can be activated and deactivated both from the part program and during the movement from synchronized actions, see section "Motion synchronous actions" . Significance Activate master value coupling LEADON...
  • Page 532 Axis couplings 9.3 Axial leading value coupling (LEADON, LEADOF) Actions The actions that occur include, for example, the following synchronized actions: • Activate coupling, LEADON(following axis, leading axis, curve table number) • Deactivate coupling, LEADOF(following axis, leading axis) • Set actual value, PRESETON(axis, value) •...
  • Page 533 Axis couplings 9.3 Axial leading value coupling (LEADON, LEADOF) Description Master value coupling requires synchronization of the leading and the following axes. This synchronization can only be achieved if the following axis is inside the tolerance range of the curve definition calculated from the curve table when the master value coupling is activated. The tolerance range for the position of the following axis is defined via machine data MD 37200: COUPLE_POS_POL_COARSE A_LEAD_TYPE.
  • Page 534 Axis couplings 9.3 Axial leading value coupling (LEADON, LEADOF) Actual value and setpoint coupling Setpoint coupling provides better synchronization of the leading and following axis than actual value coupling and is therefore set by default. Setpoint coupling is only possible if the leading and following axis are interpolated by the same NCU.
  • Page 535 Axis couplings 9.3 Axial leading value coupling (LEADON, LEADOF) Create master value As an option, master values can be generated with other self-programmed methods. The master values generated in this way are written to and read from variables - $AA_LEAD_SP Master value position - $AA_LEAD_SV Master value velocity...
  • Page 536: Electronic Gear (Eg)

    Axis couplings 9.4 Electronic gear (EG) Electronic gear (EG) Function The "Electronic gear" function allows you to control the movement of a following axis according to linear traversing block as a function of up to five leading axes. The relationship between each leading axis and the following axis is defined by the coupling factor.
  • Page 537 Axis couplings 9.4 Electronic gear (EG) Syntax EGDEF(following axis,leading axis1,coupling type1,leading axis2,coupling type2,...) Significance Definition of an electronic gear EGDEF Axis that is influenced by the leading axes Following axis Axes that influence the following axis Leading axis1 ,..., Leading axis5 Coupling type Coupling type1 The coupling type does not need to be the same for all leading...
  • Page 538: Switch-In The Electronic Gearbox (Egon, Egonsyn, Egonsyne)

    Axis couplings 9.4 Electronic gear (EG) 9.4.2 Switch-in the electronic gearbox (EGON, EGONSYN, EGONSYNE) Function There are 3 ways to switch-in an EG axis group. Syntax Variant 1: The EG axis group is selectively switched-in without synchronization with: EGON(FA,"block change mode",LA1,Z1,N1,LA2,Z2,N2,...,LA5,Z5,N5) Variant 2: The EG axis group is selectively activated with synchronization with: EGONSYN(FA,"block change mode",SynPosFA,[,LAi,SynPosLAi,Zi,Ni])
  • Page 539 Axis couplings 9.4 Electronic gear (EG) Version 2: Following axis The following modes can be used: Block change mode Block change takes place immediately "NOC" Block change is performed in "Fine "FINE" synchronism" Block change is performed in "Coarse "COARSE" synchronism"...
  • Page 540 Axis couplings 9.4 Electronic gear (EG) Further Information Description of the switch-in versions Version 1: The positions of the leading axes and following axis at the instant the grouping is switched on are stored as "Synchronized positions". The "Synchronized positions" can be read with the system variable $AA_EG_SYN.
  • Page 541: Switching-In The Electronic Gearbox (Egofs, Egofc)

    Axis couplings 9.4 Electronic gear (EG) Response of the Electronic gear at Power ON, RESET, mode change, block search • No coupling is active after POWER ON. • The status of active couplings is not affected by RESET or operating mode switchover. •...
  • Page 542: Deleting The Definition Of An Electronic Gear (Egdel)

    Axis couplings 9.4 Electronic gear (EG) Version 3: Syntax Description The electronic gear is deactivated. The following spindle EGOFC(following continues to traverse at the speed/velocity that applied at spindle1) the instant of deactivation. This call triggers a preprocessing stop. Note This version is only permitted for spindles.
  • Page 543: Synchronous Spindle

    Axis couplings 9.5 Synchronous spindle Synchronous spindle Function Synchronous operation involves a following spindle (FS) and a leading spindle (LS), referred to as the synchronous spindle pair. The following spindle imitates the movements of the leading spindle when a coupling is active (synchronous operation) in accordance with the defined functional interrelationship.
  • Page 544: Coupof, Coupofs, Coupres, Waitc)

    Axis couplings 9.5 Synchronous spindle 9.5.1 Synchronous spindle: Programming (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) Function The synchronous spindle function facilitates synchronous traversing of two spindles (following spindle FS and leading spindle LS), e.g. for workpiece transfer on-the-fly. The function supports the following modes: •...
  • Page 545 Axis couplings 9.5 Synchronous spindle Multi-edge machining can even be supported by means of the specification of a transformation ratio not equal to 1 between the leading and following spindles. Syntax COUPDEF(,,,,,) COUPON(,,) COUPONC(,) COUPOF(,,,) COUPOFS(,) COUPOFS(,,) COUPRES(,) COUPDEL(,) WAITC(,,,) Note...
  • Page 546 Axis couplings 9.5 Synchronous spindle Deactivating a coupling with stop of following spindle. COUPOFS: Block change as quickly as possible with immediate block change: COUPOFS(,) Block change only after passing the switch-off position: COUPOFS(,,) Reset coupling parameters to configured MD and SD COUPRES: Delete user-defined coupling COUPDEL:...
  • Page 547 Axis couplings 9.5 Synchronous spindle Examples Example 1: Machining with leading and following spindles Programming Comment ; Leading spindle = master spindle = spindle 1 ; Following spindle = spindle 2 N05 M3 S3000 M2=4 S2=500 ; Leading spindle rotates at 3000 rpm, following spindle at 500 rpm.
  • Page 548 Axis couplings 9.5 Synchronous spindle Example 3: Examples of transfer of a movement for difference in speed 1. Activate coupling during previous programming of following spindle with COUPON Programming Comment ; Leading spindle = master spindle = spindle 1 ; Following spindle = spindle 2 N05 M3 S100 M2=3 S2=200 ;...
  • Page 549 Axis couplings 9.5 Synchronous spindle NOTICE Leading spindle and axis operation If, prior to the coupling being defined, the leading spindle is in axis operation, the velocity limit value from machine data MD32000 $MA_MAX_AX_VELO (maximum axis velocity) will still apply even after the coupling is activated.
  • Page 550 Axis couplings 9.5 Synchronous spindle Transformation ratio, TFS / TLS The transformation ratio is specified as a speed ratio between the following spindle (numerator) and the leading spindle (denominator). The numerator must be programmed. In the absence of a programmed value, the denominator is set to = 1.0. Example: Following spindle S2 and leading spindle S1, transformation ratio = 1 / 4 = 0.25.
  • Page 551 Axis couplings 9.5 Synchronous spindle Activate synchronized mode COUPON, POSFS • Activation of coupling with any angle reference between LS and FS: - COUPON(S2,S1) - COUPON(S2,S1,) - COUPON(S2) • Activation of coupling with angular offset Position-synchronized coupling for profiled workpieces. refers to the 0°...
  • Page 552 Axis couplings 9.5 Synchronous spindle Difference in speed for COUPONC Transfer of a movement for difference in speed When a synchronous spindle coupling is activated with COUPONC a currently active speed is overlaid on the following spindle (M3 S... or M4 S...). Note Enabling overlaying Overlay of a spindle speed ( M3 S...
  • Page 553 Axis couplings 9.5 Synchronous spindle Programmable block change behavior WAITC WAITC can be used to define block change behavior, for example after a change to coupling parameters or positioning actions, with a variety of synchronism conditions (coarse, fine, IPOSTOP). If no synchronism conditions are specified, the block change behavior specified in the COUPDEF definition will apply.
  • Page 554 Axis couplings 9.5 Synchronous spindle Reset coupling parameters, COUPRES COUPRES activates the coupling values parameterized in the machine and setting data: • COUPRES(S2,S1) (with specification of leading spindle) • COUPRES(S2) (without specification of leading spindle) System variables Current coupling status of following spindle The current coupling status of a following spindle can be read using the following system variable: $AA_COUP_ACT[]...
  • Page 555: Master/Slave Group (Masldef, Masldel, Maslon, Maslof, Maslofs)

    Axis couplings 9.6 Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Function The master/slave coupling in SW 6.4 and lower permitted coupling of the slave axes to their master axis only while the axes involved are stopped. Extension of SW 6.5 permits coupling and uncoupling of rotating, speed-controlled spindles and dynamic configuration.
  • Page 556 Axis couplings 9.6 Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Examples Example 1: Dynamic configuration of a master/slave coupling Dynamic configuration of a master/slave coupling from the part program: The axis relevant after axis container rotation must become the master axis. Program code Comments MASLDEF(AUX,S3)
  • Page 557 Axis couplings 9.6 Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Example 3: Coupling sequence, position 3/container CT1 To enable coupling with another spindle after container rotation, the previous coupling must be uncoupled, the configuration cleared, and a new coupling configured. Initial situation: After rotation by one slot: References:...
  • Page 558 Axis couplings 9.6 Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Further Information General This instruction is executed directly for spindles in speed control mode. MASLOF The slave spindles rotating at this instant keep their speeds until a new speed is programmed. Dynamic configuration extension Definition of a master/slave group from the part program.
  • Page 559: Motion Synchronous Actions

    Motion synchronous actions 10.1 Basics Function Synchronized actions allow actions to be executed such that they are synchronized to machining blocks. The time at which the actions are executed can be defined by conditions. The conditions are monitored in the interpolation cycle. The actions are therefore responses to real-time events, their execution is not limited by block boundaries.
  • Page 560: Motion Synchronous Actions

    Motion synchronous actions 10.1 Basics Programming A synchronized action is programmed on its own in a separate block and triggers a machine function as of the next executable block (e.g. traversing movement with G0, G1, G2, G3). Synchronized actions comprise up to 5 command elements with different tasks: Syntax: DO ...
  • Page 561: Area Of Validity And Machining Sequence (Id, Ids)

    Motion synchronous actions 10.1 Basics Coordinating synchronized actions/technology cycles The following commands are available to coordinate synchronized actions/technology cycles: Command Significance Cancel synchronized actions CANCEL() → See " Cancel synchronized actions " Disable synchronized actions LOCK() Unlock synchronized actions UNLOCK() Reset technology cycle RESET Regarding LOCK, UNLOCK and RESET: →...
  • Page 562 Motion synchronous actions 10.1 Basics Sequence of execution Modal synchronized actions that are statically effective are processed in the interpolation clock cycle in the sequence of their ID or IDS number (ID= or IDS=). Non-modal synchronized actions (without ID number) are executed in the programmed sequence after execution of the modal synchronized actions.
  • Page 563: Cyclically Checking The Condition (When, Whenever, From, Every)

    Motion synchronous actions 10.1 Basics 10.1.2 Cyclically checking the condition (WHEN, WHENEVER, FROM, EVERY) Function A keyword is used to define cyclic checking of the condition of a synchronized action. If no keyword is programmed, the actions of the synchronized action is performed once in every IPO cycle.
  • Page 564 Motion synchronous actions 10.1 Basics Examples Example 1: No keyword Program code Comments DO $A_OUTA[1]=$AA_IN[X] ; Actual value output to analog output. Example 2: WHENEVER Program code Comments WHENEVER $AA_IM[X] > 10.5*SIN(45) DO … ; Comparison with an expression calculated during preprocessing WHENEVER $AA_IM[X] >...
  • Page 565: Actions (Do)

    Motion synchronous actions 10.1 Basics Possible conditions • Comparison of main run variables (analog/digital inputs/outputs, etc.) • Boolean gating of comparison results • Computation of real-time expressions • Time/distance from beginning of block • Distance from block end • Measured values, measurement results •...
  • Page 566: Operators For Conditions And Actions

    Motion synchronous actions 10.2 Operators for conditions and actions 10.2 Operators for conditions and actions Comparison Variables or partial expressions can be (==, <>, <, >, <=, >=) compared in conditions. The result is always of data type BOOL. All the usual comparison operators are permissible.
  • Page 567 Motion synchronous actions 10.2 Operators for conditions and actions • Real-time expressions Programming Comments ID=1 WHENEVER ($AA_IM[Y]>30) AND Selecting a position window ($AA_IM[Y]<40) DO $AA_OVR[S1]=80 ID=67 DO $A_OUT[1]=$A_IN[2] XOR $AN_MARKER[1] Evaluate 2 boolean signals ID=89 DO $A_OUT[4]=$A_IN[1] OR ($AA_IM[Y]>10) Output the result of a comparison •...
  • Page 568: Main Run Variables For Synchronized Actions

    Motion synchronous actions 10.3 Main run variables for synchronized actions 10.3 Main run variables for synchronized actions 10.3.1 System variables Function NC data can be read and written with the help of system variables. A distinction is made between preprocessing and main run system variables. Preprocessing variables are always executed at the preprocessing time.
  • Page 569 Motion synchronous actions 10.3 Main run variables for synchronized actions Data types Main run variables can feature the following data types: Integer for whole values with prefix signs REAL Real for rational counting BOOL Boolean TRUE and FALSE CHAR ASCII character STRING Character string with alpha-numerical characters AXIS...
  • Page 570: Implicit Type Conversion

    Motion synchronous actions 10.3 Main run variables for synchronized actions 10.3.2 Implicit type conversion Function During value assignments and parameter transfers, variables of different data types are assigned or transferred. The implicit type conversion triggers an internal type conversion of values. Possible type conversions To REAL BOOL...
  • Page 571: Gud Variables

    Motion synchronous actions 10.3 Main run variables for synchronized actions Examples of implicit type conversions Type conversion from INTEGER to BOOL $AC_MARKER[1]=561 ID=1 WHEN $A_IN[1] == TRUE DO $A_OUT[0]=$AC_MARKER[1] Type conversion from REAL to BOOL R401 = 100.542 WHEN $A_IN[0] == TRUE DO $A_OUT[2]=$R401 Type conversion from BOOL to INTEGER ID=1 WHEN $A_IN[2] == TRUE DO $AC_MARKER[4] = $A_OUT[1]] Type conversion from BOOL to REAL...
  • Page 572 Motion synchronous actions 10.3 Main run variables for synchronized actions The index is used to specify the data block (access rights) and the value to specify the number of synchronized-action GUDs for each data type (REAL, INT, etc.). A 1- dimensional array variable with the following naming scheme is then created in the relevant data block for each data type.: SYG_[]: Index...
  • Page 573: Default Axis Identifier (No_Axis)

    Motion synchronous actions 10.3 Main run variables for synchronized actions Access rights The access rights defined in a GUD definition file remain valid and refer only to the GUD variables defined in this GUD definition file. Deletion behavior If the content of a particular GUD definition file is reactivated, the old GUD data block in the active file system is deleted first.
  • Page 574: Synchronized Action Marker ($Ac_Marker[N])

    Motion synchronous actions 10.3 Main run variables for synchronized actions Significance Subprogram definition PROC Subprogram name for recognition Parameter n PARn Initialization of formula parameter with default axis identifier NO_AXIS Example: Definition of axis variables in the main program Program code DEF AXIS AXVAR UP( , AXVAR) 10.3.5...
  • Page 575: Synchronized Action Parameters ($Ac_Param[N])

    Motion synchronous actions 10.3 Main run variables for synchronized actions 10.3.6 Synchronized action parameters ($AC_PARAM[n]) Function The synchronized action parameter $AC_PARAM[n] is used for calculations and as intermediate memory in synchronized actions. These variables can either be saved in the memory of the active or passive file system.
  • Page 576: Read And Write Nc Machine And Nc Setting Data

    Motion synchronous actions 10.3 Main run variables for synchronized actions Arithmetic parameters Using arithmetic parameters allows for: • storage of values that you want to retain beyond the end of program, NC reset, and Power • display of stored value in the R parameter display. Examples Program code Comments...
  • Page 577 Motion synchronous actions 10.3 Main run variables for synchronized actions Read MD and SD values at the preprocessing time They are addressed from within the synchronized action using the $ characters and evaluated by the preprocessing time. ID=2 WHENEVER $AA_IM[z]<$SA_OSCILL_REVERSE_POS2[Z]-6 DO $AA_OVR[X]=0 ;Here, reversal range 2, assumed to remain static during operation, is addressed for oscillation.
  • Page 578: Timer Variable ($Ac_Timer[N])

    Motion synchronous actions 10.3 Main run variables for synchronized actions 10.3.9 Timer variable ($AC_Timer[n]) Function System variable $AC_TIMER[n] permits actions to be started after defined periods of delay. Timer variable: Data type:REAL Channel-specific timer of data type REAL $AC_TIMER[n] Unit in seconds Index of timer variable Setting timers Incrementation of a timer variable is started by means of value assignment:...
  • Page 579: Fifo Variables ($Ac_Fifo1[N]

    Motion synchronous actions 10.3 Main run variables for synchronized actions 10.3.10 FIFO variables ($AC_FIFO1[n] ... $AC_FIFO10[n]) Function 10 FIFO variables (circulating buffer store) are available to store associated data sequences. Data type: REAL Application: • Cyclical measurement • Pass execution Each element can be accessed in read or write FIFO variables The number of available FIFO variables is defined in machine data...
  • Page 580 Motion synchronous actions 10.3 Main run variables for synchronized actions Example: Circulating memory During a production run, a conveyor belt is used to transport products of different lengths (a, b, c, d). The conveyor belt of transport length therefore carries a varying number of products depending on the lengths of individual products involved in the process.
  • Page 581: Information About Block Types In The Interpolator

    Motion synchronous actions 10.3 Main run variables for synchronized actions 10.3.11 Information about block types interpolator ($AC_BLOCKTYPE, $AC_BLOCKTYPEINFO, $AC_SPLITBLOCK) Function The following system variables are available for synchronized actions to provide information about a block current executing in the main run: •...
  • Page 582 Motion synchronous actions 10.3 Main run variables for synchronized actions $AC_BLOCKTYPE $AC_BLOCKTYPEINFO Value: Value: Not equal to 0 Meaning: Original block Intermediate block Trigger for intermediate block: Corner rounding with: G641 G642 G643 G644 TLIFT block with: linear movement of tangential axis and without lift motion nonlinear movement of tangential axis (polynomial) and without lift motion...
  • Page 583 Motion synchronous actions 10.3 Main run variables for synchronized actions $AC_SPLITBLOCK Value: Significance: Unchanged programmed block (a block generated by the compressor is also dealt with as a programmed block) There is an internally generated block or a shortened original block The last block in a chain of internally generated blocks or shortened original blocks is available Example: Counting blending blocks...
  • Page 584: Actions In Synchronized Actions

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4 Actions in synchronized actions 10.4.1 Overview of possible actions in synchronized actions Actions in synchronized actions consist of value assignments, function or parameter calls, keywords or technology cycles. Complex executions are possible using operators. Possible applications include: •...
  • Page 585 Motion synchronous actions 10.4 Actions in synchronized actions Synchronized action Description FTCDEF(polynomial, LL, UL , coefficient) Definition of polynomials DO SYNFCT(Polyn., Output, Input) Activation of synchronized functions: adaptive control DO FTOC Online tool offset DO G70/G71/G700/G710 Define dimension system for positioning tasks (dimensions either in inches or metric) DO POS[axis]= / DO MOV[axis]= Start/position/stop command axes...
  • Page 586: Output Of Auxiliary Functions

    Motion synchronous actions 10.4 Actions in synchronized actions Synchronized action Description $AN_IPO_ACT_LOAD= actual IPO computation time $AN_IPO_MAX_LOAD= longest IPO computation time $AN_IPO_MIN_LOAD= shortest IPO computation time $AN_IPO_LOAD_PERCENT= actual IPO computation time in the ratio to the IPO clock cycle $AN_SYNC_ACT_LOAD= actual computation time for synchronized actions over all channels $AN_SYNC_MAX_LOAD= longest computation time for synchronized actions over all channels...
  • Page 587: Set Read-In Disable (Rdisable)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.3 Set read-in disable (RDISABLE) Function Using RDISABLE, when the condition is fulfilled, the additional block processing is held in the main program. Programmed synchronized motion actions are still executed, the following blocks are still prepared.
  • Page 588: Cancel Preprocessing Stop (Stopreof)

    Motion synchronous actions 10.4 Actions in synchronized actions As a result of the synchronized action, the X axis is taken from the path, a REORG (REPOSA) is executed. The RDISABLE function acts on the REPOSA operation. The X axis travels to its position, then a move is made to Y20 in N115. The REORG can be prevented, if RELEASE(X) or WAITP(X) is programmed in N101, as the X axis is then enabled for traversing, e.g.
  • Page 589: Delete Distance-To-Go (Deldtg)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.5 Delete distance-to-go (DELDTG) Function Delete distance-to-go can be triggered for a path and for specified axes depending on a condition. The possibilities are: • Fast, prepared delete distance-to-go • Unprepared delete distance-to-go Prepared delete distance-to-go with DELDTG permits a fast response to the triggering event and is therefore used for time-critical applications, e.g.
  • Page 590 Motion synchronous actions 10.4 Actions in synchronized actions Example of fast axial deletion of distance-to-go Program code Comments Cancelation of a positioning movement: ID=1 WHEN $A_IN[1]==1 DO MOV[V]=3 FA[V]=700 Start axis WHEN $A_IN[2]==1 DO DELDTG(V) Delete distance-to-go, the axis is stopped using MOV=0 Delete distance-to-go depending on the input voltage: WHEN $A_INA[5]>8000 DO DELDTG(X1)
  • Page 591: Polynomial Definition (Fctdef)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.6 Polynomial definition (FCTDEF) Function FCTDEF can be used to define 3rd order polynomials in the form y=a These polynomials are used by the online tool offset (FTOC) and the evaluation function (SYNFCT).
  • Page 592 Motion synchronous actions 10.4 Actions in synchronized actions Example of a polynomial for straight section: With upper limit 1000, lower limit -1000, ordinate section a =$AA_IM[X] and linear gradient 1 the polynomial is: FCTDEF(1, -1000,1000,$AA_IM[X],1) Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 593 Motion synchronous actions 10.4 Actions in synchronized actions Example of laser output control One of the possible applications of polynomial definition is the laser output control. Laser output control means: Influencing the analog output in dependence on, for example, the path velocity. Program code Comments $AC_FCTLL[1]=0.2...
  • Page 594: Synchronized Function (Synfct)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.7 Synchronized function (SYNFCT) Function SYNFCT calculates the output value of a polynomial 3 grade weighted using the input variables. The result is in the output variables and has maximum and minimum limits. The evaluation function is used •...
  • Page 595 Motion synchronous actions 10.4 Actions in synchronized actions Example of adaptive control (additive) Additive influence on the programmed feedrate A programmed feedrate is to be controlled additive using the current of the X axis (infeed axis): The feedrate should only vary by +/- 100 mm/min and the current fluctuates by +/-1A around the working point of 5A.
  • Page 596 Motion synchronous actions 10.4 Actions in synchronized actions Example of adaptive control (multiplicative) Influence the programmed feedrate by multiplication The aim is to influence the programmed feedrate by multiplication. The feedrate must not exceed certain limits – depending on the load on the drive: •...
  • Page 597: Closed-Loop Clearance Control With Limited Correction ($Aa_Off_Mode)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.8 Closed-loop clearance control with limited correction ($AA_OFF_MODE) Note This function is not available for SINUMERIK 828D! Function The integrating calculation of the clearance values is realized with a limit range check: $AA_OFF_MODE = 1 NOTICE The loop gain of the higher-level control loop depends on the setting of the interpolation cycle.
  • Page 598 Motion synchronous actions 10.4 Actions in synchronized actions Example Subprogram "AON": Clearance control on Program code Comment PROC AON $AA_OFF_LIMIT[Z]=1 ; Specifies limit value. FCTDEF(1, -10, +10, 0, 0.6, 0.12) ; Polynomial definition ID=1 DO SYNFCT(1,$AA_OFF[Z],$A_INA[3]) ; Clearance control active. ID=2 WHENEVER $AA_OFF_LIMIT[Z]<>0 ;...
  • Page 599 Motion synchronous actions 10.4 Actions in synchronized actions Further Information Position offset in the basic coordinate system Using the system variable $AA_OFF[axis] motion can be superimposed on every axis in the channel. It acts as a position offset in the basic coordinate system. The position offset programmed in this way is overlaid immediately in the axis concerned, whether the axis is being moved by the program or not.
  • Page 600: Online Tool Offset (Ftoc)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.9 Online tool offset (FTOC) Function FTOC permits overlaid movement for a geometry axis after a polynomial programmed with FCTDEF depending on a reference value that might, for example, be the actual value of an axis.
  • Page 601 Motion synchronous actions 10.4 Actions in synchronized actions Execute the "Continuous modal write of online tool offset" function DO FTOC: Parameter: Number of the polynomial function : Type: Range of 1 to 3 values: Note: Must match the setting for FCTDEF. Main run variable for which a function value is to
  • Page 602 Motion synchronous actions 10.4 Actions in synchronized actions Example The length of the active grinding wheel is to be compensated. Program code Comments FCTDEF(1,-1000,1000,-$AA_IW[V],1) ; Function definition. ID=1 DO FTOC(1,$AA_IW[V],3,1) ; Select online tool offset: Actual value of the V axis is the input value for polynomial 1.Result is added in channel 1 as compensation value to length 3 of the active grinding disk.
  • Page 603: Online Tool Length Compensation ($Aa_Toff)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.10 Online tool length compensation ($AA_TOFF) Function Use the system variable $AA_TOFF[ ] to overlay the effective tool lengths in accordance with the three tool directions three-dimensionally in real time. The three geometry axis identifiers are used as the index. This defines the number of active directions of compensation by the geometry axes active at the same time.
  • Page 604 Motion synchronous actions 10.4 Actions in synchronized actions Examples Example 1: Selecting the tool length compensation Program code Comment N10 TRAORI(1) ; Transformation on. N20 TOFFON(Z) ; Activation of online tool length compensation for the Z tool direction. N30 WHEN TRUE DO $AA_TOFF[Z]=10 G4 F5 ;...
  • Page 605: Positioning Movements

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.11 Positioning movements Function Axes can be positioned completely unsynchonized with respect to the parts program from synchronized actions. Programming positioning axes from synchronized actions is advisable for cyclic sequences or operations that are strongly dependent on events. Axes programmed from synchronized actions are called command axes.
  • Page 606: Position Axis (Pos)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.12 Position axis (POS) Function Unlike programming from the part program, the positioning axis movement has no effect on execution of the part program. Syntax POS[axis]=value Significance Start/position command axis DO POS Name of the axis to be traversed Axis The value to traverse by (depending on traverse mode)
  • Page 607 Motion synchronous actions 10.4 Actions in synchronized actions Example 2: Program environment influences the positioning travel of the positioning axis (no G function in the action component of the synchronized action): Program code Comments N100 R1=0 N110 G0 X0 Z0 N120 WAITP(X) N130 ID=1 WHENEVER $R==1 DO POS[X]=10 N140 R1=1...
  • Page 608: Position In Specified Reference Range (Posrange)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.13 Position in specified reference range (POSRANGE) Function The POSRANGE( ) function can be used to determine whether the current interpolated setpoint position of an axis is in a window around a specified reference position. The position specifications can refer to coordinates systems which can be specified.
  • Page 609: Start/Stop Axis (Mov)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.14 Start/stop axis (MOV) Function With MOV[axis]=value it is possible to start a command axis without specifying an end position. The axis is moved in the programmed direction until another movement is set by another motion or positioning command or until the axis is stopped with a stop command.
  • Page 610: Axis Replacement (Release, Get)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.15 Axis replacement (RELEASE, GET) Function For a tool change, the corresponding command axes can be requested as an action of a synchronized action using GET(axis). The axis type assigned to this channel and the interpolation right thus linked to this time can be queried using the $AA_AXCHANGE_TYPE system variable.
  • Page 611 Motion synchronous actions 10.4 Actions in synchronized actions Program sequence in the second channel: Program code Comments WHEN TRUE DO GET(Z) ;Move Z axis to second channel WHENEVER($AA_TYP[Z]==0) DO RDISABLE ;Read-in disable as long as Z axis is in other channel N210 G4 F0.1 WHEN TRUE DO GET(Z) ;Z axis is NC program axis...
  • Page 612 Motion synchronous actions 10.4 Actions in synchronized actions Example: Axis replacement in technology cycle The U axis U ($MA_AUTO_GET_TYPE=2) has been declared in the first and second channel and channel 1 currently has the interpolation right. The following technology cycle is started in channel 2: Program code Comments...
  • Page 613 Motion synchronous actions 10.4 Actions in synchronized actions Using GET to request an axis from another channel If, when the GET action is activated, another channel is authorized to write (has the interpolation right) to the axis ($AA_AXCHANGE_TYP[] == 2), axis replacement is used to get the axis from this channel ($AA_AXCHANGE_TYP[]==6) and assign it to the requesting channel as soon as possible.
  • Page 614: Axial Feed (Fa)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.16 Axial feed (FA) Function The axial feed for command axes acts modal. Syntax FA[]= Example Program code Comments ID=1 EVERY $AA_IM[B]>75 DO POS[U]=100 FA[U]=990 Enter fixed feedrate value. Generate feedrate value from main run variables: ID=1 EVERY $AA_IM[B]>75 DO POS[U]=100 FA[U]=$AA_VACTM[W]+100 10.4.17...
  • Page 615: Axis Coordination

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.18 Axis coordination Function Typically, an axis is either moved from the part program or as a positioning axis from a synchronized action. If the same axis is to be traversed alternately from the part program as a path or positioning axis and from synchronized actions, however, a coordinated transfer takes place between both axis movements.
  • Page 616: Set Actual Values (Preseton)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.19 Set actual values (PRESETON) Function When PRESETON (axis, value) is executed, the current axis position is not changed but a new value is assigned to it. PRESETON from synchronized actions can be programmed for •...
  • Page 617: Withdrawing The Enable For The Axis Container Rotation (Axctswec)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.20 Withdrawing the enable for the axis container rotation (AXCTSWEC) Function Using the command AXCTSWEC an already issued enable signal to rotate the axis container can be withdrawn again. The command triggers a preprocessing stop with reorganization (STOPRE).
  • Page 618 Motion synchronous actions 10.4 Actions in synchronized actions Example Sample program: Program code Comment N100 Id=1 DO CTSWEC ; See the technology cycle below. ; init NEXT: N200 G0 X30 Z1 N210 G95 F.5 N220 M3 S1000 N230 G0 X25 N240 G1 Z-10 N250 G0 X30 N260 M5...
  • Page 619 Motion synchronous actions 10.4 Actions in synchronized actions General conditions Using a container axis before calling AXCTSWEC As program processing is not stopped with AXCTSWE, when programming synchronized action DO AXCTSWEC the following should be carefully observed: Example: Program code Comment N10 AXCTSWE(CT3) ;...
  • Page 620: Spindle Motions

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.21 Spindle motions Function Spindles can be positioned completely unsynchronized with respect to the part program from synchronized actions. This type of programming is advisable for cyclic sequences or operations that are strongly dependent on events. If conflicting commands are issued for a spindle via simultaneously active synchronized actions, the most recent spindle command takes priority.
  • Page 621: Coupled Motion (Trailon, Trailof)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.22 Coupled motion (TRAILON, TRAILOF) Function When the coupling is activated from the synchronized action, the leading axis can be in motion. In this case the following axis is accelerated up to the set velocity. The position of the leading axis at the time of synchronization of the velocity is the starting position for coupled- axis motion.
  • Page 622 Motion synchronous actions 10.4 Actions in synchronized actions Example Program code Comments $A_IN[1]==0 DO TRAILON(Y,V,1) Activation of the 1st coupled motion group if the digital input is 1 $A_IN[2]==0 DO TRAILON(Z,W,-1) Activation of the 2nd coupled axis group G0 Z10 Infeed Z and W axes in the opposite ;axis direction G0 Y20...
  • Page 623: Leading Value Coupling (Leadon, Leadof)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.23 Leading value coupling (LEADON, LEADOF) Note This function is not available for SINUMERIK 828D! Function The axial leading value coupling can be programmed in synchronized actions without restriction. The changing of a curve table for an existing coupling without a previous resynchronization is optionally possible only in synchronized actions.
  • Page 624 Motion synchronous actions 10.4 Actions in synchronized actions Activate access with synchronized actions RELEASE The axis to be coupled is released for synchronized action access by invoking the RELEASE function for the axis. Example: RELEASE (XKAN) ID=1 every SR1==1 to LEADON(CACH,XKAN,1) OVW=0 (default value) ) Without a resynchronization, no new curve table can be specified for an existing coupling.
  • Page 625 Motion synchronous actions 10.4 Actions in synchronized actions Program code Comments N100 R3=1500 ; Length of a part to be cut off N200 R2=100000 R13=R2/300 N300 R4=100000 N400 R6=30 ; Start position Y axis N500 R1=1 ; Start condition for conveyor axis N600 LEADOF(Y,X) ;...
  • Page 626: Measuring (Meawa, Meac)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.24 Measuring (MEAWA, MEAC) Function Compared with use in traverse blocks of the part program, the measuring function can be activated and deactivated as required. For further information concerning measuring, see special motion commands "Extended measuring function"...
  • Page 627: Initialization Of Array Variables (Set, Rep)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.25 Initialization of array variables (SET, REP) Function Array variables can be initialized or described with particular values in synchronized actions. Note Only variables that can be described in synchronized actions are possible. Machine data cannot therefore be initialized.
  • Page 628: Set/Delete Wait Markers (Setm, Clearm)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.26 Set/delete wait markers (SETM, CLEARM) Function Wait markers can be set or deleted in synchronized actions in order to e.g. coordinate channels with one another. Syntax DO SETM() DO CLEARM() Significance Command to set the wait marker for the channel SETM...
  • Page 629: Fault Responses (Setal)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.27 Fault responses (SETAL) Function Fault responses can be programmed using synchronized actions. Status variables are interrogated and the corresponding actions initiated. Some possible responses to error conditions are: • Stop axis (override=0) •...
  • Page 630: Travel To Fixed Stop (Fxs, Fxst, Fxsw, Focon, Focof)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.28 Travel to fixed stop (FXS, FXST, FXSW, FOCON, FOCOF) Function The commands for the function "travel to fixed stop" are programmed using the part program commands FXS, FXST and FXSW in synchronized actions/technology cycles. Activation can take place without movement, the torque is immediately limited.
  • Page 631 Motion synchronous actions 10.4 Actions in synchronized actions Examples Example 1: Travel to fixed stop (FXS), initiated using a synchronized action Program code Comments Y axis: ; Static synchronized actions Activate: N10 IDS=1 WHENEVER (($R1==1) AND $AA_FXS[y]==0)) D $R1=0 FXS[Y]=1 FXST[Y]=10 FA[Y]=200 POS[Y]=150 ;...
  • Page 632: Determining The Path Tangent In Synchronized Actions

    Motion synchronous actions 10.4 Actions in synchronized actions Further Information Multiple selection If the function is called once more due to incorrect programming after activating (FXS[axis] = 1)) the following alarm is output: Alarm 20092 "Travel to fixed stop is still active" Programming, that either interrogates $AA_FXS[ ] or a dedicated bit memory (here R1) in the condition, avoids activating the function "Part program fragment"...
  • Page 633: Determining The Current Override

    Motion synchronous actions 10.4 Actions in synchronized actions Parameters The tangent angle is always output positive in the range 0.0 to 180.0 degrees. If there is no following block in the main run, the angle -180.0 degrees is output. The system variable $AC_TANEB should not be read for blocks generated by the system (intermediate blocks).
  • Page 634: Time Use Evaluation Of Synchronized Actions

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.31 Time use evaluation of synchronized actions Function In a interpolation cycle, synchronized actions have to be both interpreted and motions calculated by the NC. The system variables presented below provide synchronized actions with information about the current time shares that synchronized actions have of the interpolation cycle and about the computation time of the position controllers.
  • Page 635 Motion synchronous actions 10.4 Actions in synchronized actions The system variables always contain the values of the previous IPO cycle. current IPO computing time (incl. synchronized actions of all $AN_IPO_ACT_LOAD channels) longest IPO computing time (incl. synchronized actions of all $AN_IPO_MAX_LOAD channels) shortest IPO computing time (incl.
  • Page 636: Technology Cycles

    Motion synchronous actions 10.5 Technology cycles 10.5 Technology cycles Function As an action in synchronized actions, you can invoke programs. These must consist only of functions that are permissible as actions in synchronized actions. Programs structured in this way are called technology cycles. Technology cycles are stored in the control as subprograms.
  • Page 637 Motion synchronous actions 10.5 Technology cycles Sequence Technology cycles are started as soon as their conditions have been fulfilled. Each line in a technology cycle is processed in a separate IPO cycle. Several IPO cycles are required to execute positioning axes. Other functions are executed in one cycle. Blocks are sequentially executed in the technology cycle.
  • Page 638 Motion synchronous actions 10.5 Technology cycles Axis program AXIS_Y: Program code POS[Y]=10 FA[Y]=200 POS[Y]=-10 Axis program AXIS_Z: Program code POS[Z]=90 FA[Z]=250 POS[Z]=-90 Example 2: Various program sequences in the technology cycle Program code PROC CYCLE N10 DEF REAL VALUE=12.3 N15 DEFINE ABC AS G01 Both blocks are read over without the variables and/or macros being set-up.
  • Page 639: Context Variable ($P_Teccycle)

    Motion synchronous actions 10.5 Technology cycles 10.5.1 Context variable ($P_TECCYCLE) Function The $P_TECCYCLE variables can be used to divide programs into synchronized action programs and preprocessing programs. It is then possible to process blocks or program sequences that are written correctly (in terms of syntax) or alternatively process them as the part program cycle.
  • Page 640: Call-By-Value Parameters

    Motion synchronous actions 10.5 Technology cycles 10.5.2 Call-by-value parameters Function Technology cycles can be defined using call-by-value parameters. Simple data types such as INT, REAL, CHAR, STRING, AXIS and BOOL can be used as parameters. Note Formal parameters that are transferred as call-by-value cannot be arrays. Actual parameters can also comprise default parameters (see "Default parameter initialization [Page 640]").
  • Page 641: Control Processing Of Technology Cycles (Icycof, Icycon)

    Motion synchronous actions 10.5 Technology cycles 10.5.4 Control processing of technology cycles (ICYCOF, ICYCON) Function The ICYCOF and ICYCON language commands are used to control the time processing of technology cycles. All blocks of a technology cycle are processed in just one interpolation cycle using ICYCOF. All actions which require several cycles result in parallel processes with ICYCOF.
  • Page 642: Cascading Technology Cycles

    Motion synchronous actions 10.5 Technology cycles 10.5.5 Cascading technology cycles Function Up to 8 technology cycles can be processed switched in line. Several technology cycles can then be programmed in one synchronized action. Syntax ID=1 WHEN $AA_IW[X]>50 DO TEC1($R1) TEC2 TEC3(X) Sequence of execution The technology cycles are processed in order (in a cascade) working from left to right in accordance with the aforementioned programming.
  • Page 643: Check Structures (If)

    Motion synchronous actions 10.5 Technology cycles 10.5.7 Check structures (IF) Function IF check structures can be used in synchronized actions for branches in the processing sequence of technology cycles. Syntax IF $R1=1 [ELSE] optional $R1=0 ENDIF 10.5.8 Jump instructions (GOTO, GOTOF, GOTOB) Function Jump instructions (GOTO, GOTOF, GOTOB) are possible in technology cycles.
  • Page 644: Lock, Unlock, Reset (Lock, Unlock, Reset)

    Motion synchronous actions 10.5 Technology cycles Jump instructions and jump destinations Firstly jump forwards and then backwards GOTO Jump forwards GOTOF Jump backwards GOTOB Jump marker Label: Jump destination for this block Block number Block number is subblock N100 Block number is main block :100 10.5.9 Lock, unlock, reset (LOCK, UNLOCK, RESET)
  • Page 645 Motion synchronous actions 10.5 Technology cycles Interlocking synchronized actions Modal synchronized actions with ID numbers  = 1 ... 64 can be interlocked from the PLC. The associated condition is no longer evaluated and execution of the associated function is locked in the NCK. All synchronized actions can be locked indiscriminately with one signal in the PLC interface.
  • Page 646: Delete Synchronized Action (Cancel)

    Motion synchronous actions 10.6 Delete synchronized action (CANCEL) 10.6 Delete synchronized action (CANCEL) Function The CANCEL command can be used to cancel (delete) a modal or a static synchronized action from the part program. If a synchronized action is canceled while the positioning axis movement that was activated from it is still active, the positioning axis movement is interrupted.
  • Page 647: Control Behavior In Specific Operating States

    Motion synchronous actions 10.7 Control behavior in specific operating states 10.7 Control behavior in specific operating states POWER ON No synchronized actions are ever active during POWER ON. Static synchronized actions can be activated by an asynchronized subprogram (ASUB) started by the PLC. Mode change Synchronized actions activated by keyword IDS remain active after a change in operating mode.
  • Page 648 Motion synchronous actions 10.7 Control behavior in specific operating states NC Stop Static synchronized actions remain active for NC stop. Movements started from static synchronized actions are not canceled. Synchronized actions that are local to the program and belong to the active block remain active, movements started from them are stopped. End of program End of program and synchronized action do not influence one another.
  • Page 649 Motion synchronous actions 10.7 Control behavior in specific operating states Program interruption using an asynchronous subprogram ASUB ASUB start: Modal and static motion-synchronous actions remain active and are also operative in the asynchronous subprogram. ASUB end: If the asynchronous subprogram is not resumed with REPOS, the modal and static motion- synchronous actions that were modified in the asynchronous subprogram will remain active in the main program.
  • Page 650 Motion synchronous actions 10.7 Control behavior in specific operating states Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 651: Oscillation

    Oscillation 11.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Function An oscillating axis travels back and forth between two reversal points 1 and 2 at a defined feedrate, until the oscillating motion is deactivated. Other axes can be interpolated as desired during the oscillating motion. A continuous infeed can be achieved via a path movement or with a positioning axis, however, there is no relationship between the oscillating movement and the infeed movement.
  • Page 652 Oscillation 11.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Significance Name of oscillating axis Activate/deactivate oscillation Value: 1 Switch oscillation on Switch oscillation off Define position of reversal point 1 OSP1 Define position of reversal point 2 OSP2 Note: If incremental movement is active, the position will be calculated incrementally...
  • Page 653 Oscillation 11.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Define feedrate The feedrate is the defined feedrate of the positioning axis. If no feedrate is defined, the value stored in the machine data applies. Specify setting and reset options OSCTRL Option values 0 to 3 encrypt the behavior at the reversal points on deactivation.
  • Page 654 Oscillation 11.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Examples Example 1: Oscillating axis to oscillate between two reversal points Oscillating axis Z is to oscillate between position 10 and 100. Reversal point 1 is to be approached with exact stop fine, reversal point 2 with exact stop coarse.
  • Page 655 Oscillation 11.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Example 2: Oscillation with online modification of the reversal position The setting data necessary for asynchronous oscillation can be set in the part program. If the setting data are described directly in the program, the change takes effect during preprocessing.
  • Page 656 Oscillation 11.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Oscillation reversal points The current offsets must be taken into account when oscillation positions are defined: • Absolute specification OSP1[Z]= Position of reversal point = sum of offsets + programmed value •...
  • Page 657: Oscillation Controlled By Synchronized Actions (Oscill)

    Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) 11.2 Oscillation controlled by synchronized actions (OSCILL) Function With this mode of oscillation, an infeed motion may only be executed at the reversal points or within defined reversal areas. Depending on requirements, the oscillation movement can be •...
  • Page 658 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) Motion-synchronous actions when ... , do ... WHEN… … DO whenever ... , do ... WHENEVER … DO Example No infeed must take place at reversal point 1. At reversal point 2, the infeed is to start at a distance of ii2 before reversal point 2 and the oscillating axis is not to wait at the reversal point for the end of the partial infeed.
  • Page 659 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) 2. Motion-synchronous action Program code Comment WHENEVER If the actual position of $AA_IM[Z]<$SA_OSCILL_REVERSE_POS2[Z] DO -> oscillating axis Z in MCS is less $AA_OVR[X]=0 $AC_MARKER[0]=0 than the start of reversal range 2, then always set the axial override of the infeed axis X to 0% and the bit memory with index 0 to the value 0.
  • Page 660 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) Description 1. Define oscillation parameters The parameters for oscillation should be defined before the movement block containing the assignment of infeed and oscillating axes and the infeed definition (see "Asynchronized oscillation"). 2. Define motion-synchronized actions The following synchronization conditions can be defined: Suppress infeed until the oscillating axis is located within a reversal area (ii1, ii2) or at a reversal point (U1, U2).
  • Page 661 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) Define motion-synchronized actions The synchronized-motion actions listed below are used for general oscillation. You are given example solutions for individual tasks, which you can use as modules for creating user-specific oscillation movements Note In individual cases, the synchronization conditions can be programmed differentially.
  • Page 662 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) Assign oscillating and infeed axes as well as partial and complete infeed Infeed in reversal point range The infeed motion must start within a reversal area before the reversal point is reached. These synchronized actions inhibit the infeed movement until the oscillating axis is within the reversal area.
  • Page 663 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) Stop oscillation movement at the reversal point The oscillation axis is stopped at the reversal point, the infeed motion starts at the same time. The oscillating motion is continued when the infeed movement is complete. At the same time, this synchronized action can be used to start the infeed movement if this has been stopped by a previous synchronized action, which is still active.
  • Page 664 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) Next partial infeed When infeed is complete, a premature start of the next partial infeed must be inhibited. A channel-specific marker ($AC_MARKER[Index]) is used for this purpose. It is enabled at the end of the partial infeed (partial distance-to-go ≡ 0) and deleted when the axis leaves the reversal area.
  • Page 665: Punching And Nibbling

    Punching and nibbling 12.1 Activation, deactivation 12.1.1 Punching and nibbling on or off (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) Function Activate/deactivate punching and nibbling PON and SON are used to activate the punching and nibble functions. SPOF terminates all punching- and nibble-specific functions.
  • Page 666 Punching and nibbling 12.1 Activation, deactivation Note Condition: A second I/O pair has to be defined for the punching functionality in the machine data ( → see machine manufacturer's specifications). Syntax PON G... X... Y... Z... SON G... X... Y... Z... SONS G...
  • Page 667 Punching and nibbling 12.1 Activation, deactivation Examples Example 1: Activate nibbling Program code Comment N70 X50 SPOF ; Position without punch initiation. N80 X100 SON ; Activate nibbling, initiate a stroke before the motion (X=50) and on completion of the programmed movement (X=100).
  • Page 668 Punching and nibbling 12.1 Activation, deactivation Further information Punching and nibbling with leader (PONS/SONS) Punching and nibbling with leader is not possible in more than one channel simultaneously. PONS or SONS can only be activated in one channel at a time. Travel-dependent acceleration (PUNCHACC) Example: PUNCHACC(2,50,10,100)
  • Page 669 Punching and nibbling 12.1 Activation, deactivation Punching and nibbling on the spot A stroke is initiated only if the block contains traversing information for the punching or nibbling axes (axes in active plane). However, to initiate a stroke at the same position, one of the punching/nibbling axes can be programmed with a traversing path of 0.
  • Page 670: Automatic Path Segmentation

    Punching and nibbling 12.2 Automatic path segmentation 12.2 Automatic path segmentation Function Segmentation into path segments When punching or nibbling is activated, both SPP as well as also SPN segment the total traversing section programmed for the path axes into a number of path segments with the same length (equidistant path segmentation).
  • Page 671 Punching and nibbling 12.2 Automatic path segmentation Example 1 The programmed nibbling segments should be automatically split-up into path segments. Program code Comments N100 G90 X130 Y75 F60 SPOF Positioning at starting point 1 N110 G91 Y125 SPP=4 SON Nibbling on; maximum path segment length for automatic path segmentation: 4 mm (3.81 lb)
  • Page 672 Punching and nibbling 12.2 Automatic path segmentation Example 2 Automatic path segmentation should be made for the individual series of holes. The maximum path segment length (SPP value) is specified for the segmentation. Program code Comments N100 G90 X75 Y75 F60 PON Position to starting point 1;...
  • Page 673: Path Segmentation For Path Axes

    Punching and nibbling 12.2 Automatic path segmentation 12.2.1 Path segmentation for path axes Length of SPP path segment SPP is used to specify the maximum distance between strokes and thus the maximum length of the path segments in which the total traversing distance is to be divided. The command is deactivated with SPOF or SPP=0.
  • Page 674 Punching and nibbling 12.2 Automatic path segmentation Number of SPN path segments SPN defines the number of path segments to be generated from the total traversing distance. The length of the segments is calculated automatically. Since SPN is non-modal, punching or nibbling must be activated beforehand with PON or SON respectively.
  • Page 675: Path Segmentation For Single Axes

    Punching and nibbling 12.2 Automatic path segmentation 12.2.2 Path segmentation for single axes If single axes are defined as punching/nibbling axes in addition to path axes, then the automatic path segmentation function can be activated for them. Response of single axis to SPP The programmed path segment length (SPP) basically refers to the path axes.
  • Page 676 Punching and nibbling 12.2 Automatic path segmentation 1. Single axis without path segmentation The single axis traverses the total distance in the first of the generated blocks. 2. With/without path segmentation The response of the single axis depends on the interpolation of the path axes: •...
  • Page 677: Grinding

    Grinding 13.1 Grinding-specific tool monitoring in the part program (TMON, TMOF) Function With the TMON command, you can activate geometry and speed monitoring for grinding tools (type 400 - 499) in the NC part program. Monitoring remains active until deactivated in the part program using the TMOF command.
  • Page 678 Grinding 13.1 Grinding-specific tool monitoring in the part program (TMON, TMOF) Further Information Grinding-specific tool parameters Parameters Significance Data type $TC_TPG1 Spindle number $TC_TPG2 Chaining rule The parameters are automatically kept identical for the lefthand and righthand grinding wheel side. $TC_TPG3 Minimum wheel radius REAL...
  • Page 679: Additional Functions

    Additional functions 14.1 Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) Function AXNAME is used e.g. to generate cycles that are generally valid, if the names of the axes are not known. AX is used to indirectly program geometry and synchronous axes. The axis identifier is saved in a type AXIS variable or is supplied from a command such as AXNAME or SPI.
  • Page 680: Additional Functions

    Additional functions 14.1 Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) Significance Converts an input string into axis identifiers; the input string must AXNAME contain a valid axis name. Variable axis identifier Converts the spindle number into an axis identifier; the transfer parameter must contain a valid spindle number.
  • Page 681 Additional functions 14.1 Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) Example 2: AXSTRING When programming with AXSTRING[SPI(n)], the axis index of the axis, which is assigned to the spindle, is no longer output as spindle number, but instead the string "Sn" is output. Program code Comments AXSTRING[SPI(2)]...
  • Page 682: Replaceable Geometry Axes (Geoax)

    Additional functions 14.2 Replaceable geometry axes (GEOAX) 14.2 Replaceable geometry axes (GEOAX) Function The "Replaceable geometry axes" function allows the geometry axis grouping configured via machine data to be modified from the part program. Here any geometry axis can be replaced by a channel axis defined as a synchronous special axis.
  • Page 683 Additional functions 14.2 Replaceable geometry axes (GEOAX) Examples Example 1: Switching two axes alternating as geometry axis A tool slide can be traversed using channel axes X1, Y1, Z1, Z2: The geometry axes are configured so that after powering-up, initially Z1 is effective as 3rd geometry axis under the geometry axis name "Z"...
  • Page 684 Additional functions 14.2 Replaceable geometry axes (GEOAX) Program code Comments N10 GEOAX() ; The basic configuration of the geometry axes is effective. N20 G0 X0 Y0 Z0 U0 V0 W0 ; All axes in rapid traverse to position 0. N30 GEOAX(1,U,2,V,3,W) ;...
  • Page 685 Additional functions 14.2 Replaceable geometry axes (GEOAX) Restrictions • It is not possible to switch the geometry axes over during: Active transformation Active spline interpolation Active tool radius compensation Active fine tool compensation • If the geometry axis and the channel axis have the same name, it is not possible to change the particular geometry axis.
  • Page 686 Additional functions 14.2 Replaceable geometry axes (GEOAX) Tool length compensation An active tool length compensation is also effective after the changeover operation. However, for geometry axes that have been newly added or those where the position has been replaced, it is still considered not to have been moved through. For the first motion command for these geometry axes, the resulting traversing distance correspondingly comprises the sum of the tool length compensation and the programmed traversing distance.
  • Page 687: Axis Container (Axctswe, Axctswed, Axctswec)

    Additional functions 14.3 Axis container (AXCTSWE, AXCTSWED, AXCTSWEC) 14.3 Axis container (AXCTSWE, AXCTSWED, AXCTSWEC) Function For rotary indexing machines and multi-spindle machines, the axes holding the workpiece move from one machining unit to the next. Since the machining units are allocated to different channels, the axes holding the workpiece must be dynamically reassigned to the corresponding channel if there is a change in station/position.
  • Page 688 Additional functions 14.3 Axis container (AXCTSWE, AXCTSWED, AXCTSWEC) Significance Request to rotate an axis container AXCTSWE: Program processing is not stopped with AXCTSWE. If all of the enable signals of all channels for the axes of the container are available in the control, the container is rotated with the container- specific increment saved in the SD41700 $SN_AXCT_SWWIDTH[].
  • Page 689 Additional functions 14.3 Axis container (AXCTSWE, AXCTSWED, AXCTSWEC) General conditions Using a container axis before calling AXCTSWEC As program processing is not stopped with AXCTSWE, when programming synchronized action DO AXCTSWEC the following should be carefully observed: Example: Program code Comment N10 AXCTSWE(CT3) ;...
  • Page 690 Additional functions 14.3 Axis container (AXCTSWE, AXCTSWED, AXCTSWEC) Further Information Axis container The following can be assigned via the axis container: • Local axes and/or • Link axes Axis containers with link axes are a NCU-cross device (NCU-global) that is coordinated via the control.
  • Page 691 Additional functions 14.3 Axis container (AXCTSWE, AXCTSWED, AXCTSWEC) AXCTSWED( ) The command AXCTSWED is used to simplify commissioning the part program or synchronized action. Axis container rotation is realized immediately when the AXCTSWED command is executed. It is not necessary that the other channels, which have axes in this axis container, issue enable signals.
  • Page 692 Additional functions 14.3 Axis container (AXCTSWE, AXCTSWED, AXCTSWEC) Withdrawing the enable for axis container rotation (AXCTSWEC) If required, the enable of the actual channel for axis container rotation can be withdrawn: • by programming AXCTSWEC in the part program, or •...
  • Page 693: Wait For Valid Axis Position (Waitenc)

    Additional functions 14.4 Wait for valid axis position (WAITENC) 14.4 Wait for valid axis position (WAITENC) Function Using the language command WAITENC, the NC program waits until the synchronized or restored axis positions are available for the axes configured with MD34800 $MA_WAIT_ENC_VALID = 1.
  • Page 694 Additional functions 14.4 Wait for valid axis position (WAITENC) Example WAITENC is e.g. used in an event-controlled user program, .../_N_CMA_DIR/ _N_PROG_EVENT_SPF, as shown in the following application example. Application example:Tool retraction after POWER OFF with orientation transformation Machining with tool orientation was interrupted due to a power failure. When powering up again, the event-controlled user program .../_N_CMA_DIR/ _N_PROG_EVENT_SPF is called.
  • Page 695: Check Scope Of Nc Language Present (Stringis)

    Additional functions 14.5 Check scope of NC language present (STRINGIS) 14.5 Check scope of NC language present (STRINGIS) Function Using the function STRINGIS(...) it can be checked as to whether the specified string is available as element of the NC programming language in the actual language scope. Definition INT STRINGIS(STRING ) Syntax...
  • Page 696 No specific assignment possible 1) Depending on the control, under certain circumstances, only a subset of the Siemens NC language commands are known, e.g. SINUMERIK 802D sl. For these controls, for strings that are principally Siemens NC language commands, a value of 0 is returned.
  • Page 697 Additional functions 14.5 Check scope of NC language present (STRINGIS) Examples In the following examples it is assumed that the NC language elements specified as string - as long as nothing else is noted - can in principle be programmed in the control. 1.
  • Page 698 Additional functions 14.5 Check scope of NC language present (STRINGIS) 13.The string "MYVAR" is defined as LUD variable: 211 == STRINGIS("MYVAR") 14.String "XYZ" is a command that is not known in the NCK, GUD variable, macro or cycle name: 000 == STRINGIS("XYZ") Tool magazine management If the tool magazine management function is not active, STRINGIS supplies for the system parameters of the tool magazine management, independent of the machine data...
  • Page 699: Function Call Isvar And Read Machine Data Array Index

    Additional functions 14.6 Function call ISVAR and read machine data array index 14.6 Function call ISVAR and read machine data array index Function The ISVAR command is a function as defined in the NC language that has a • Function value of type BOOL •...
  • Page 700 Additional functions 14.6 Function call ISVAR and read machine data array index Example: Function call ISVAR Program code Comments DEF INT VAR1 DEF BOOL IS_VAR=FALSE ; Transfer parameter is a general variable N10 IS_VAR=ISVAR("VAR1") ; IS_VAR is in this case, TRUE DEF REAL VARARRAY[10,10] DEF BOOL IS_VAR=FALSE ;...
  • Page 701: Learn Compensation Characteristics (Qeclrnon, Qeclrnof)

    Additional functions 14.7 Learn compensation characteristics (QECLRNON, QECLRNOF) 14.7 Learn compensation characteristics (QECLRNON, QECLRNOF) Function Quadrant error compensation (QEC) reduces contour errors that occur on reversal of the traversing direction due to mechanical non-linearities (e.g. friction, backlash) or torsion. On the basis of a neural network, the optimum compensation data can be adapted by the control during a learning phase in order to determine the compensation characteristics automatically.
  • Page 702 Additional functions 14.7 Learn compensation characteristics (QECLRNON, QECLRNOF) Meaning Activate "Learn quadrant error compensation" function QECLRNON (axis 1,…4) Deactivate "Learn quadrant error compensation" function QECLRNO Learning cycle QECLRN.SPF Sample NC program for assigning system variables and for QECDAT.MPF parameterizing the learning cycle Sample NC program for the circularity test QECTEST.MPF Description...
  • Page 703: Interactively Call The Window From The Part Program (Mmc)

    Additional functions 14.8 Interactively call the window from the part program (MMC) 14.8 Interactively call the window from the part program (MMC) Function You can use the MMC command to display user-defined dialog windows (dialog displays) on the HMI from the part program. The dialog window appearance is defined in a pure text configuration (COM file in cycles directory), while the HMI system software remains unchanged.
  • Page 704: Program Runtime/Part Counter

    Additional functions 14.9 Program runtime/part counter 14.9 Program runtime/part counter 14.9.1 Program runtime/part counter (overview) Information on the program runtime and workpiece counter are provided to support the machine tool operator. This information can be processed as system variables in the NC and/or PLC program. This information is also available to be displayed on the operator interface.
  • Page 705: Program Runtime

    Additional functions 14.9 Program runtime/part counter 14.9.2 Program runtime Function The "program runtime" function provides internal NC timers to monitor technological processes, which can be read into the part program and into synchronized actions via the NC and channel-specific system variables. The trigger for the runtime measurement ($AC_PROG_NET_TIME_TRIGGER) is the only system variable of the function that can be written to and is used to selectively measure program sections.
  • Page 706 Additional functions 14.9 Program runtime/part counter System variable Meaning Activity $AC_ACT_PROG_NET_TIME Actual net runtime of the current NC program in • Always active seconds. • Only AUTOMATIC mode Is automatically reset to "0" when a new NC program starts. $AC_OLD_PROG_NET_TIME Net runtime in seconds of the program that has just be correctly ended with M30 $AC_OLD_PROG_NET_TIME_COUNT...
  • Page 707 Additional functions 14.9 Program runtime/part counter Note Machine manufacturer Machine data MD27860 $MC_PROCESSTIMER_MODE is used to switch-in the timer that can be activated. The behavior of active time measurements for certain functions (e.g. GOTOS, override = 0%, active test run feed, program test, ASUB, PROG_EVENT, …) is configured using machine data MD27850 $MC_PROG_NET_TIMER_MODE and MD27860 $MC_PROCESSTIMER_MODE.
  • Page 708 Additional functions 14.9 Program runtime/part counter Examples Example 1: Measuring the duration of "mySubProgrammA" Program code N50 DO $AC_PROG_NET_TIME_TRIGGER=2 N60 FOR ii= 0 TO 300 N70 mySubProgrammA N80 DO $AC_PROG_NET_TIME_TRIGGER=1 N95 ENDFOR N97 mySubProgrammB N98 M30 After the program has processed line N80, the net runtime of "mySubProgrammA" is located in $AC_OLD_PROG_NET_TIME.
  • Page 709: Workpiece Counter

    Additional functions 14.9 Program runtime/part counter 14.9.3 Workpiece counter Function The "Workpiece counter" function makes available various counters which can be used in particular internally in the control to count workpieces. The counters exist as channel-specific system variables with read and write access in a range of values from 0 to 999,999,999.
  • Page 710: Output To An External Device/File (Extopen, Write, Extclose)

    Additional functions 14.10 Output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) 14.10 Output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) Function Using this function, it is possible to write data from a part program to an external device/an external file; for instance, to log production data or to control additional equipment at a control system.
  • Page 711 Additional functions 14.10 Output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) Syntax DEF INT DEF STRING[] … EXTOPEN(,"",,,) … ="output data" WRITE(,"",) … EXTCLOSE(,"") Significance Command to open an external device/file EXTOPEN: : Parameter 1: Variable for returning the error value By using the error value, it can be evaluated in the program as to whether the operation was successful and processing is then appropriately continued.
  • Page 712 "/"). The following logical device names have been defined: Local CompactFlash Card (pre- "LOCAL_DRIVE": defined) reserved drive name for use in "CYC_DRIVE": SIEMENS cycles (pre-defined) Available network drives "/dev/ext/1",... Note: "/dev/ext/9": it is necessary to configure in the extdev.ini file! reserved drive names for use in "/dev/cyc/1", "/...
  • Page 713 Additional functions 14.10 Output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) Note: For the logical device names "/dev/ext/1...9", "/ dev/v24" and "/dev/cyc/1...2" upper case/ lower case is ignored; upper case/lower case is significant for specifying a path to a file. Only uppercase letters are permissible for "LOCAL_DRIVE"...
  • Page 714 Additional functions 14.10 Output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) : Parameter 5: Write mode for the WRITE commands to this file/device (optional) Type: STRING Values: "APP": Attaching The file is always kept regarding its contents; write calls are attached at the end.
  • Page 715 SINUMERIK 828D, the user CompactFlash Card. Note For SINUMERIK 840D sl, the option "Additional xxx MB HMI user memory on CF card of the NCU" is required for output to the LOCAL_DRIVE device. For SINUMERIK 828D a user CompactFlash Card must be available and an option is not required here.
  • Page 716 Optionally, the write mode ("O" = Overwrite, "A" = Append) can be defined using the LOCAL_DRIVE_FILE_MODE data. The default value is "A". Note A copy template for the extdev.ini configuration file is available in directory /siemens/ sinumerik/nck. Note Changes to the extdev.ini file only become effective after an NCK restart/boot.
  • Page 717 ; … ; SINUMERIK 828 only (USB) ; /dev/ext/9 = "usb, / [ , O]" ; default: Partition number = 1 ; SIEMENS only ; /dev/cyc/1= "//[USERNAME[/DOMAIN][%PASSWORD]@]SERVER/SHARE, /mydir/, A" ; /dev/cyc/2= "//[USERNAME[/DOMAIN][%PASSWORD]@]SERVER/SHARE/mydir, /, A" LOCAL_DRIVE_MAX_FILESIZE = 50000 LOCAL_DRIVE_FILE_MODE = "O"...
  • Page 718 Maximum number of opened external devices A maximum of 10 output devices can be simultaneously opened across all NC channels. In addition, there are two entries reserved for Siemens cycles. A maximum of 5 tasks can be simultaneously active for these devices.
  • Page 719: Alarms (Setal)

    : The valid range for alarm numbers lies between 60000 and 69999, of which 60000 to 64999 are reserved for SIEMENS cycles and 65000 to 69999 are available to users. When programming user cycle alarms, in addition, a character string
  • Page 720 Additional functions 14.11 Alarms (SETAL) Note Alarm texts must be configured in the operator interface. Note If an alarm is to be output in the language active at the user interface, then the user requires information about the language that is currently set at the HMI. This information can be interrogated in the part program and in the synchronized actions using system variable $AN_LANGUAGE_ON_HMI (see "Currently set language in the HMI [Page 899]").
  • Page 721: Drive-Integrated Extended Stop And Retract (Esr)

    Additional functions 14.12 Drive-integrated extended stop and retract (ESR) 14.12 Drive-integrated extended stop and retract (ESR) 14.12.1 Configuring drive-integrated stopping (ESRS) Function The drive parameters for "stopping" of the drive-integrated ESR function are configured using the ESRS(...) function. Syntax ESRS(,[,...,,]) Significance Function to write to the drive parameters for the ESR function ESRS(...):...
  • Page 722: Configuring Drive-Integrated Retraction (Esrs)

    Additional functions 14.12 Drive-integrated extended stop and retract (ESR) 14.12.2 Configuring drive-integrated retraction (ESRS) Function The drive parameters for "retraction" of the drive-integrated ESR function are configured using the ESRR(...) function. Syntax ESRR(,,[,...,,,]) Significance Function to write to the drive parameters for the ESR function ESRR(...): "retract".
  • Page 723 Additional functions 14.12 Drive-integrated extended stop and retract (ESR) For the drive, the retraction velocity is converted into a time. For , (timer) [s]: ..., p0892 = / : Unit:...
  • Page 724 Additional functions 14.12 Drive-integrated extended stop and retract (ESR) Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 725: User Stock Removal Programs

    User stock removal programs 15.1 Supporting functions for stock removal Functions Preprogrammed stock removal programs are provided for stock removal. Beyond this, you have the possibility of generating your own stock removal programs using the following listed functions: • Generate contour table (CONTPRON) •...
  • Page 726: User Stock Removal Programs

    User stock removal programs 15.2 Generate contour table (CONTPRON) 15.2 Generate contour table (CONTPRON) Function Contour preparation is activated using the command CONTPRON. The NC blocks that are subsequently called are not executed, but are split-up into individual movements and stored in the contour table.
  • Page 727 User stock removal programs 15.2 Generate contour table (CONTPRON) Example 1 Generating a contour table with: • Name "KTAB" • Max. 30 contour elements (circles, straight lines) • One variable for the number of relief cut elements that occur • One variable for fault messages NC program: Program code...
  • Page 728 User stock removal programs 15.2 Generate contour table (CONTPRON) Contour table KTAB: Index Column Line (10) 82.40535663 -1111 104.0362435 146.3099325 116.5650512 Explanation of the column contents: Pointer to next contour element (to the row number of that column) Pointer to previous contour element Coding the contour mode for motion Possible values for X = abc G90 = 0...
  • Page 729 User stock removal programs 15.2 Generate contour table (CONTPRON) Example 2 Generating a contour table with • Name KTAB • Max. 92 contour elements (circles, straight lines) • Mode: Longitudinal turning, outer machining • Preparation, forwards and backwards NC program: Program code Comments N10 DEF REAL KTAB[92,11]...
  • Page 730 User stock removal programs 15.2 Generate contour table (CONTPRON) Contour table KTAB: After contour preparation is finished, the contour is available in both directions. Index Column Line (10) -1111 -1111 Explanation of column contents and comments for lines 0, 1, 6, 8, 83, 85 and 91 The explanations of the column contents given in example 1 apply.
  • Page 731 User stock removal programs 15.2 Generate contour table (CONTPRON) Always in last line of table: 9) Predecessor: Line n is the contour table start (backwards) 10) Successor: Line n contains the contour start (backwards) Further Information Permitted traversing commands, coordinate system The following G commands can be used for the contour programming: •...
  • Page 732: Generate Coded Contour Table (Contdcon)

    User stock removal programs 15.3 Generate coded contour table (CONTDCON) 15.3 Generate coded contour table (CONTDCON) Function With the contour preparation activated with CONTDCON, the following NC blocks that are called are saved in a coded form in a 6-column contour table to optimize memory use. Each contour element corresponds to one row in the contour table.
  • Page 733 User stock removal programs 15.3 Generate coded contour table (CONTDCON) Example Generating a contour table with: • Name "KTAB" • Contour elements (circles, straight lines) • Mode: Turning • Machining direction: Upwards NC program: Program code Comments N10 DEF REAL KTAB[9,6] Contour table with name KTAB and 9 table cells.
  • Page 734 User stock removal programs 15.3 Generate coded contour table (CONTDCON) Contour table KTAB: Column index Line index Contour End point End point Center point Center point Feedrate mode abscissa ordinate abscissa ordinate 11031 111031 11031 11032 11031 11031 11031 Explanation of the column contents: Line 0 Coding for the starting point: Column 0: (units digit): G0 = 0...
  • Page 735 User stock removal programs 15.3 Generate coded contour table (CONTDCON) Further Information Permitted traversing commands, coordinate system The following G groups and G commands can be used for the contour programming: G group 1: G0, G1, G2, G3 G group 10: G60, G64, G641, G642 G group 11: G group 13:...
  • Page 736: Determine Point Of Intersection Between Two Contour Elements (Intersec)

    User stock removal programs 15.4 Determine point of intersection between two contour elements (INTERSEC) 15.4 Determine point of intersection between two contour elements (INTERSEC) Function INTERSEC determines the point of intersection of two normalized contour elements from the contour tables generated using CONTPRON. Syntax =INTERSEC([], [],,...
  • Page 737 User stock removal programs 15.4 Determine point of intersection between two contour elements (INTERSEC) The values defined with CONTPRON must be observed when transferring the contours: Parameter Significance Coding of contour mode for the movement Contour start point abscissa Contour start point ordinate Contour end point abscissa Contour end point ordinate Center point coordinates for abscissa (only for circle contour)
  • Page 738: Execute The Contour Elements Of A Table Block-By-Block (Exectab)

    User stock removal programs 15.5 Execute the contour elements of a table block-by-block (EXECTAB) 15.5 Execute the contour elements of a table block-by-block (EXECTAB) Function Using the command EXECTAB, you can execute the contour elements of a table – that were generated e.g.
  • Page 739: Calculate Circle Data (Calcdat)

    User stock removal programs 15.6 Calculate circle data (CALCDAT) 15.6 Calculate circle data (CALCDAT) Function Using the CALCDAT command, you can calculate the radius and the circle center point coordinates from the three or four points known along the circle The specified points must be different.
  • Page 740 User stock removal programs 15.6 Calculate circle data (CALCDAT) Example Using three points it should be determined as to whether they are located on a circle segment. Program code Comments N10 DEF REAL PT[3,2]=(20,50,50,40,65,20) ; Variable to specify the points along a circle N20 DEF REAL RES[3] ;...
  • Page 741: Deactivate Contour Preparation (Execute)

    User stock removal programs 15.7 Deactivate contour preparation (EXECUTE) 15.7 Deactivate contour preparation (EXECUTE) Function The command EXECUTE is used to deactivate the contour preparation and at the same time the system returns to the normal execution mode. Syntax EXECUTE() Significance Command to terminate contour preparation EXECUTE...
  • Page 742 User stock removal programs 15.7 Deactivate contour preparation (EXECUTE) Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 743: Programming Cycles Externally

    Programming cycles externally 16.1 Technology cycles 16.1.1 Introduction Contents This chapter describes the technology cycles from version 2.6 onwards for creating external NC programs. Structure The documentation is structured as follows: • Programming Cycle name and call sequence of the transfer parameters •...
  • Page 744: Programming Cycles Externally

    Programming cycles externally 16.1 Technology cycles Compatibility The technology cycles from version 2.6 onwards are a further development of the cycle packages for SINUMERIK 840D sl up to GIV 1.5 (cycles up to version 7.5). NC programs with cycle calls for these earlier software versions will still run. Most cycles have been extended by new transfer parameters or the range of existing parameters has been extended in order that new functions can be programmed (e.g.
  • Page 745: Drilling, Centering - Cycle81

    Programming cycles externally 16.1 Technology cycles 16.1.2 Drilling, centering - CYCLE81 Programming CYCLE81(REAL RTP, REAL RFP, REAL SDIS, REAL DP, REAL DPR, REAL _DTB, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param Param Explanation Mask intern Retraction plane (abs) Reference point (abs) Safety clearance (to be added to reference point, enter without sign) _SDIS Drilling depth (abs)/ centering diameter (abs), see _GMODE...
  • Page 746: Drilling, Counterboring - Cycle82

    Programming cycles externally 16.1 Technology cycles 16.1.3 Drilling, counterboring - CYCLE82 Programming CYCLE82(REAL RTP, REAL RFP, REAL SDIS, REAL DP, REAL DPR, REAL DTB, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param Param Explanation Mask intern Retraction plane (abs) Reference point (abs) Safety clearance (to be added to reference point, enter without sign) SDIS Drilling depth (abs), see _AMODE...
  • Page 747: Reaming - Cycle85

    Programming cycles externally 16.1 Technology cycles 16.1.4 Reaming - CYCLE85 Programming CYCLE85(REAL RTP, REAL RFP, REAL SDIS, REAL DP, REAL DPR, REAL DTB, REAL FFR, REAL RFF, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param Param Explanation Mask intern Retraction plane (abs) Reference point (abs) Safety clearance (to be added to reference point, enter without sign) SDIS...
  • Page 748: Deep-Hole Drilling - Cycle83

    Programming cycles externally 16.1 Technology cycles 16.1.5 Deep-hole drilling - CYCLE83 Programming CYCLE83(REAL RTP, REAL RFP, REAL SDIS, REAL DP, REAL DPR, REAL FDEP, REAL FDPR, REAL _DAM, REAL DTB, REAL DTS, REAL FRF, INT VARI, INT _AXN, REAL _MDEP, REAL _VRT, REAL _DTD, REAL _DIS1, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param Mask Param intern...
  • Page 749 Programming cycles externally 16.1 Technology cycles Param Mask Param intern Explanation Display mode _DMODE UNITS: Machining plane G17/G18/G19 0 = Compatibility, the level effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) Alternative mode _AMODE...
  • Page 750: Boring - Cycle86

    Programming cycles externally 16.1 Technology cycles 16.1.6 Boring - CYCLE86 Programming CYCLE86(REAL RTP, REAL RFP, REAL SDIS, REAL DP, REAL DPR, REAL DTB, INT SDIR, REAL RPA, REAL RPO, REAL RPAP, REAL POSS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param Param Explanation...
  • Page 751: Tapping Without Compensating Chuck - Cycle84

    Programming cycles externally 16.1 Technology cycles 16.1.7 Tapping without compensating chuck - CYCLE84 Programming CYCLE84(REAL RTP, REAL RFP, REAL SDIS, REAL DP, REAL DPR, REAL DTB, INT SDAC, REAL MPIT, REAL PIT, REAL POSS, REAL SST, REAL SST1, INT _AXN, INT _PITA, INT _TECHNO, INT _VARI, REAL _DAM, REAL _VRT, STRING[15] _PITM, STRING[5] _PTAB, STRING[20] _PTABA, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 752 0 = 1 cut 1 = Chip breaking (deep hole tapping) 2 = Swarf removal (deep hole tapping) THOUSANDS: ISO/SIEMENS mode not relevant for input mask 1 = Call from ISO compatibility 0 = Call from SIEMENS context Maximum depth infeed (for swarf removal/chipbreaking only)
  • Page 753 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Display mode _DMODE UNITS: Machining plane G17/G18/G19 0 = Compatibility, the plane effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) TENS: Reserved HUNDREDS: Reserved...
  • Page 754: Tapping With Compensating Chuck - Cycle840

    Programming cycles externally 16.1 Technology cycles 16.1.8 Tapping with compensating chuck - CYCLE840 Programming CYCLE840(REAL RTP, REAL RFP, REAL SDIS, REAL DP, REAL DPR, REAL DTB, INT SDR, INT SDAC, INT ENC, REAL MPIT, REAL PIT, INT _AXN, INT _PITA, INT _TECHNO, STRING[15] _PITM, STRING[5] _PTAB, STRING[20] _PTABA, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 755 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Technology _TECHN UNITS: Exact stop response 0 = Exact stop active as before cycle call 1 = Exact stop G601 2 = Exact stop G602 3 = Exact stop G603 TENS: Forward control 0 = with/without forward control active as before cycle call 1 = with forward control FFWON...
  • Page 756: Thread Milling - Cycle78

    Programming cycles externally 16.1 Technology cycles 16.1.9 Thread milling - CYCLE78 Programming CYCLE78(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _ADPR, REAL _FDPR, REAL _LDPR, REAL _DIAM, REAL _PIT, INT _PITA, REAL _DAM, REAL _MDEP, INT _VARI, INT _CDIR, REAL _GE, REAL _FFD, REAL _FRDP, REAL _FFR, REAL _FFP2, INT _FFA, STRING[15] _PITM, STRING[20] _PTAB, STRING[20] _PTABA, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 757 Programming cycles externally 16.1 Technology cycles No. Param Mask Param intern Explanation Milling direction _CDIR 0 = Climbing 1 = Conventional 4 = Conventional + climbing (combined roughing + finishing) Retraction distance before thread milling (inc) Drilling feedrate (mm/min or in/min or mm/rev) _FFD Drilling feedrate for remaining drilling depth (mm/min or mm/rev) _FRDP...
  • Page 758: Freely Programmable Positions - Cycle802

    Programming cycles externally 16.1 Technology cycles 16.1.10 Freely programmable positions - CYCLE802 Programming CYCLE802(INT _XA, INT _YA, REAL _X0, REAL _Y0, REAL _X1, REAL _Y1, REAL _X2, REAL _Y2, REAL _X3, REAL _Y3, REAL _X4, REAL _Y4, REAL _X5, REAL _Y5, REAL _X6, REAL _Y6, REAL _X7, REAL _Y7, REAL _X8, REAL _Y8, INT _VARI, INT _UMODE, INT _DMODE) Parameters Param...
  • Page 759 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Reserved _UMODE Display mode _DMODE UNITS: machining plane G17/18/19 0 = Compatibility, the level effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) Note Positions that are not required for parameters X1/Y1 to X8/Y8 can be ignored.
  • Page 760: Row Of Holes - Holes1

    Programming cycles externally 16.1 Technology cycles 16.1.11 Row of holes - HOLES1 Programming HOLES1(REAL SPCA, REAL SPCO, REAL STA1, REAL FDIS, REAL DBH, INT NUM, INT _VARI, INT _UMODE, STRING[200] _HIDE, INT _NSP, INT _DMODE) Parameters Param Param Explanation Mask intern Reference point for row of holes along the 1st axis (abs) SPCA...
  • Page 761: Grid Or Frame - Cycle801

    Programming cycles externally 16.1 Technology cycles 16.1.12 Grid or frame - CYCLE801 Programming CYCLE801(REAL _SPCA, REAL _SPCO, REAL _STA, REAL _DIS1, REAL _DIS2, INT _NUM1, INT _NUM2, INT _VARI, INT _UMODE, REAL _ANG1, REAL _ANG2, STRING[200] _HIDE, INT _NSP, INT _DMODE) Parameters Param Mask Param intern Explanation...
  • Page 762: Circle Of Holes - Holes2

    Programming cycles externally 16.1 Technology cycles 16.1.13 Circle of holes - HOLES2 Programming HOLES2(REAL CPA, REAL CPO, REAL RAD, REAL STA1, REAL INDA, INT NUM, INT _VARI, INT _UMODE, STRING[200] _HIDE, INT _NSP, INT _DMODE) Parameters Param Param Explanation Mask intern Center point for circle of holes along the 1st axis (abs) Center point for circle of holes along the 2nd axis (abs)
  • Page 763: Face Milling - Cycle61

    Programming cycles externally 16.1 Technology cycles 16.1.14 Face milling - CYCLE61 Programming CYCLE61(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _PA, REAL _PO, REAL _LENG, REAL _WID, REAL _MID, REAL _MIDA, REAL _FALD, REAL _FFP1, INT _VARI, INT _LIM, INT _DMODE, INT _AMODE) Parameters Param Param...
  • Page 764 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Limits _LIM UNITS: Limit 1st axis negative 0 = no 1 = yes TENS: Limit 1st axis positive 0 = no 1 = yes HUNDREDS: Limit 2nd axis negative 0 = no 1 = yes THOUSANDS: Limit 2nd axis positive...
  • Page 765: Milling A Rectangular Pocket - Pocket3

    Programming cycles externally 16.1 Technology cycles 16.1.15 Milling a rectangular pocket - POCKET3 Programming POCKET3(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _LENG, REAL _WID, REAL _CRAD, REAL _PA, REAL _PO, REAL _STA, REAL _MID, REAL _FAL, REAL _FALD, REAL _FFP1, REAL _FFD, INT _CDIR, INT _VARI, REAL _MIDA, REAL _AP1, REAL _AP2, REAL _AD, REAL _RAD1, REAL _DP1, INT _UMODE, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 766 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Maximum plane infeed, for unit, see _AMODE _MIDA Length of premachining (inc) _AP1 Width of premachining (inc) _AP2 Depth of premachining (inc) Radius of helical path on helical insertion _RAD1 Maximum insertion angle for oscillation Helical pitch on helical insertion...
  • Page 767 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Alternative mode _AMODE UNITS: Pocket depth (Z1) 0 = Absolute (compatibility mode) 1 = Incremental TENS: Unit for plane infeed (DXY) 0 = mm 1 = % of tool diameter HUNDREDS: Insertion depth for chamfering (ZFS) 0 = Absolute 1 = Incremental...
  • Page 768: Milling A Circular Pocket - Pocket4

    Programming cycles externally 16.1 Technology cycles 16.1.16 Milling a circular pocket - POCKET4 Programming POCKET4(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _CDIAM, REAL _PA, REAL _PO, REAL _MID, REAL _FAL, REAL _FALD, REAL _FFP1, REAL _FFD, INT _CDIR, INT _VARI, REAL _MIDA, REAL _AP1, REAL _AD, REAL _RAD1, REAL _DP1, INT _UMODE, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 769 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Maximum plane infeed, see _AMODE, 0 = 0.8 · tool diameter _MIDA ∅ Diameter/radius of premachining (inc) _AP1 Depth of premachining (inc) Radius of helical path on helical insertion _RAD1 Helical pitch on insertion on helical path _DP1...
  • Page 770: Rectangular Spigot Milling - Cycle76

    Programming cycles externally 16.1 Technology cycles 16.1.17 Rectangular spigot milling - CYCLE76 Programming CYCLE76(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _DPR, REAL _LENG, REAL _WID, REAL _CRAD, REAL _PA, REAL _PO, REAL _STA, REAL _MID, REAL _FAL, REAL _FALD, REAL _FFP1, REAL _FFD, INT _CDIR, INT _VARI, REAL _AP1, REAL _AP2, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 771 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Mode for evaluation of programmed geometrical data _GMODE UNITS: Reserved TENS: Reserved HUNDREDS: Select machining or just calculation of start point 0 = Compatibility mode 1 = Normal machining THOUSANDS: Dimensioning of spigot acc.
  • Page 772: Circular Spigot Milling - Cycle77

    Programming cycles externally 16.1 Technology cycles 16.1.18 Circular spigot milling - CYCLE77 Programming CYCLE77(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _DPR, REAL _CDIAM, REAL _PA, REAL _PO, REAL _MID, REAL _FAL, REAL _FALD, REAL _FFP1, REAL _FFD, INT _CDIR, INT _VARI, REAL _AP1, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param...
  • Page 773 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Mode for evaluation of programmed geometrical data _GMODE UNITS: Reserved TENS: Reserved HUNDREDS: Select machining/only calculation of start point 0 = Compatibility mode 1 = Normal machining THOUSANDS: Reserved TEN THOUSANDS: Complete machining/remachining 0 = Compatibility mode (process _AP1 as before) 1 = Complete machining...
  • Page 774: Multiple-Edge - Cycle79

    Programming cycles externally 16.1 Technology cycles 16.1.19 Multiple-edge - CYCLE79 Programming CYCLE79(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, INT _NUM, REAL _SWL, REAL _PA, REAL _PO, REAL _STA, REAL _RC, REAL _AP1, REAL _MIDA, REAL _MID, REAL _FAL, REAL _FALD, REAL _FFP1, INT _CDIR, INT _VARI, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param...
  • Page 775 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Machining type _VARI UNITS: Machining 1 = Roughing 2 = Finishing 3 = Finishing of edge 5 = Chamfer TENS: Width across flats or edge length 0 = Width across flats 1 = Edge length Chamfer width (inc) Insertion depth (tool tip) on chamfering (abs/inc), see _AMODE)
  • Page 776: Longitudinal Slot - Slot1

    Programming cycles externally 16.1 Technology cycles 16.1.20 Longitudinal slot - SLOT1 Programming SLOT1 (REAL RTP, REAL RFP, REAL SDIS, REAL _DP, REAL _DPR, INT NUM, REAL LENG, REAL WID, REAL _CPA, REAL _CPO, REAL RAD, REAL STA1, REAL INDA, REAL FFD, REAL FFP1, REAL _MID, INT CDIR, REAL _FAL, INT VARI, REAL _MIDF, REAL FFP2, REAL SSF, REAL _FALD, REAL _STA2, REAL _DP1, INT _UMODE, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 777 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Machining type VARI UNITS: 0 = Reserved 1 = Roughing 2 = Finishing 4 = Edge finishing (only machine the edge) 5 = Chamfer TENS: Approach 0 = Predrilled, infeed with G0 (slot is premachined) 1 = Vertically, infeed with G1 2 = Helically 3 = Oscillating...
  • Page 778 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Display mode _DMODE UNITS: Machining plane G17/18/19 0 = Compatibility, the levels effective before cycle call remain active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) TENS: Reserved HUNDREDS: Reserved...
  • Page 779: Circumferential Slot - Slot2

    Programming cycles externally 16.1 Technology cycles 16.1.21 Circumferential slot - SLOT2 Programming SLOT2(REAL RTP, REAL RFP, REAL SDIS, REAL _DP, REAL _DPR, INT NUM, REAL AFSL, REAL WID, REAL _CPA, REAL _CPO, REAL RAD, REAL STA1, REAL INDA, REAL FFD, REAL FFP1, REAL _MID, INT CDIR, REAL _FAL, INT VARI, REAL _MIDF, REAL FFP2, REAL SSF, REAL _FFCP, INT _UMODE, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 780 Programming cycles externally 16.1 Technology cycles Param Mask Param intern Explanation Reserved _MIDF Reserved FFP2 Reserved Reserved _FFCP Reserved _UMODE Chamfer width (inc) Insertion depth (tool tip) on chamfering (abs/inc), see _AMODE) _ZFS Geometrical mode _GMODE UNITS: Reserved TENS: Reserved HUNDREDS: Select machining or just calculation of start point 0 = Compatibility mode 1 = Normal machining...
  • Page 781: Mill Open Slot - Cycle899

    Programming cycles externally 16.1 Technology cycles 16.1.22 Mill open slot - CYCLE899 Programming CYCLE899(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _LENG, REAL _WID, REAL _PA, REAL _PO, REAL _STA, REAL _MID, REAL _MIDA, REAL _FAL, REAL _FALD, REAL _FFP1, INT _CDIR, INT _VARI, INT _GMODE, INT _DMODE, INT _AMODE, INT _UMODE, REAL _FS, REAL _ZFS) Parameters Param...
  • Page 782 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Machining _VARI UNITS: 1 = Roughing 2 = Finishing 3 = Finishing of base 4 = Finishing of edge 5 = Rough-finishing 6 = Chamfer TENS: Reserved HUNDREDS: Reserved THOUSANDS: 1 = Vortex milling 2 = Plunge cutting...
  • Page 783: Elongated Hole - Longhole

    Programming cycles externally 16.1 Technology cycles 16.1.23 Elongated hole - LONGHOLE Programming LONGHOLE (REAL RTP,REAL RFP,REAL SDIS,REAL _DP,REAL _DPR, INT NUM,REAL LENG,REAL _CPA,REAL _CPO,REAL RAD,REAL STA1, REAL INDA,REAL FFD,REAL FFP1,REAL MID,INT _VARI,INT _UMODE, INT _GMODE,INT _DMODE,INT _AMODE) Parameters Param Param Explanation Mask intern...
  • Page 784 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Geometrical mode _GMODE UNITS: Reserved TENS: Reserved HUNDRED: Select machining or just calculate start point 0 = Compatibility mode 1 = Normal machining THOUSANDS: Dimensioning of reference point, slot length 0 = middle 1 = Inner left-hand +L 2 = Inner right-hand -L...
  • Page 785: Thread Milling - Cycle70

    Programming cycles externally 16.1 Technology cycles 16.1.24 Thread milling - CYCLE70 Programming CYCLE70(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _DIATH, REAL _H1, REAL _FAL, REAL _PIT, INT _NT, REAL _MID, REAL _FFR, INT _TYPTH, REAL _PA, REAL _PO, REAL _NSP, INT _VARI, INT _PITA, STRING[15] _PITM, STRING[20] _PTAB, STRING[20] _PTABA, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 786 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Evaluation of thread pitch _PITA 0 = Compatibility mode 1 = Pitch in mm 2 = Pitch in threads per inch (TPI) 3 = Pitch in inches 4 = Pitch as MODULE String as marker for pitch input (for the interface only) _PITM String for thread table ("", "ISO", "BSW", "BSP", "UNC") (for the interface only)
  • Page 787: Engraving Cycle - Cycle60

    Programming cycles externally 16.1 Technology cycles 16.1.25 Engraving cycle - CYCLE60 Programming CYCLE60(STRING[200] _TEXT, REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _DPR, REAL _PA, REAL _PO, REAL _STA, REAL _CP1, REAL _CP2, REAL _WID, REAL _DF, REAL _FFD, REAL _FFP1, INT _VARI, INT _CODEP, INT _UMODE, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param...
  • Page 788 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Machining (Alignment and reference point for engraved text) _VARI UNITS: Reference point 0: Rectangular 1: Polar TENS: Text alignment 0: Text on one line 1: Text in an upward pointing arc 2: Text in a downward curving arc HUNDREDS: Reserved THOUSANDS: : Reference point of the text, horizontal...
  • Page 789 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Display mode _DMODE UNITS: Machining plane G17/18/19 0 = Compatibility, the plane effective before cycle call remains active 1 = G17 2 = G18 3 = G19 TENS: Type of feedrate: G group (G94/G95) for surface and depth feedrate 0 = Compatibility mode 1 = G code as before cycle call.
  • Page 790: Contour Call - Cycle62

    Programming cycles externally 16.1 Technology cycles 16.1.26 Contour call - CYCLE62 Programming CYCLE62(STRING[140] _KNAME, INT _TYPE, STRING[32] _LAB1, STRING[32] _LAB2) Parameters Param Param Explanation Mask intern Contour name or subroutine name does not have to be programmed in PRG/ _KNAME _TYPE = 2 Determination of contour input _TYPE...
  • Page 791: Path Milling - Cycle72

    Programming cycles externally 16.1 Technology cycles 16.1.27 Path milling - CYCLE72 Programming CYCLE72(STRING[141] _KNAME, REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _MID, REAL _FAL, REAL _FALD, REAL _FFP1, REAL _FFD, INT _VARI, INT _RL, INT _AS1, REAL __LP1, REAL _FF3, INT _AS2, REAL _LP2, INT _UMODE, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param...
  • Page 792 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Machining direction 40 = Center of contour (G40, approach and retract: straight line or vertical) 41 = Left of contour (G41, approach and retract: straight line or circle) 42 = Right of contour (G42, approach and retract: straight line or circle) Contour approach movement _AS1 UNITS:...
  • Page 793 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Display mode _DMODE UNITS: Machining plane G17/G18/G19 0 = Compatibility, the level effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) TENS: Type of feedrate: G group (G94/G95) for surface and depth feedrate 0 = Compatibility mode...
  • Page 794: Predrilling A Contour Pocket - Cycle64

    Programming cycles externally 16.1 Technology cycles 16.1.28 Predrilling a contour pocket - CYCLE64 Programming CYCLE64(STRING[100] _PRG, INT _VARI, REAL _RP, REAL _Z0, REAL _SC, REAL _Z1, REAL _F, REAL _DXY, REAL _UXY, REAL _UZ, INT _CDIR, STRING[20] _TR, INT _DR, INT _UMODE, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param...
  • Page 795 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Display mode _DMODE UNITS: Machining plane G17/18/19 0 = Compatibility, the plane effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) TENS: Technology mode) 1 = Predrilling...
  • Page 796: Milling A Contour Pocket - Cycle63

    Programming cycles externally 16.1 Technology cycles 16.1.29 Milling a contour pocket - CYCLE63 Programming CYCLE63(STRING[100] _PRG, INT _VARI, REAL _RP, REAL _Z0, REAL _SC, REAL _Z1, REAL _F, REAL _FZ, REAL _DXY, REAL _DZ, REAL _UXY, REAL _UZ, INT _CDIR, REAL _XS, REAL _YS, REAL _ER, REAL _EP, REAL _EW, REAL _FS, REAL _ZFS, STRING[20] _TR, INT _DR, INT _UMODE, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 797 Programming cycles externally 16.1 Technology cycles Param Mask Param intern Explanation Starting point X, absolute Starting point Y, absolute Helical insertion: Radius Helical insertion: Pitch Oscillating insertion: Maximum insertion angle Chamfer width (inc) for chamfering Insertion depth of tool tip when chamfering (see AMODE HUNDREDS) _ZFS Reference tool name when machining residual material Reference tool D number when machining residual material...
  • Page 798: Stock Removal - Cycle951

    Programming cycles externally 16.1 Technology cycles 16.1.30 Stock removal - CYCLE951 Programming CYCLE951(REAL _SPD, REAL _SPL, REAL _EPD, REAL _EPL, REAL _ZPD, REAL _ZPL, INT _LAGE, REAL _MID, REAL _FALX, REAL _FALZ, INT _VARI, REAL _RF1, REAL _RF2, REAL _RF3, REAL _SDIS, REAL _FF1, INT _NR, INT _DMODE, INT _AMODE) Parameters Param Mask...
  • Page 799 Programming cycles externally 16.1 Technology cycles Param Mask Param intern Explanation Machining type _VARI UNITS: Stock removal direction (longitudinal or transverse) in the coordinate system 1 = Longitudinal 2 = Transverse TENS: 1 = Roughing to finishing allowance 2 = Finishing HUNDREDS: 0 = With rounding at the contour, without residual corners 1 = Without rounding at the contour...
  • Page 800 Programming cycles externally 16.1 Technology cycles Param Mask Param intern Explanation Alternative mode _AMODE UNITS: Intermediate point in X 0 = Absolute, value of transverse axis in the diameter 1 = Incremental, value of transverse axis in the radius TENS: Intermediate point in Z 0 = Absolute 1 = Incremental HUNDREDS: End point in X...
  • Page 801: Groove - Cycle930

    Programming cycles externally 16.1 Technology cycles 16.1.31 Groove - CYCLE930 Programming CYCLE930(REAL _SPD, REAL _SPL, REAL _WIDG, REAL _WIDG2, REAL _DIAG, REAL _DIAG2, REAL _STA, REAL _ANG1, REAL _ANG2, REAL _RCO1, REAL _RCI1, REAL _RCI2, REAL _RCO2, REAL _FAL, REAL _IDEP1, REAL _SDIS, INT _VARI, INT _DN, INT _NUM, REAL _DBH, REAL _FF1, INT _NR, REAL _FALX, REAL _FALZ, INT _DMODE, INT _AMODE) Parameters...
  • Page 802 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Machining type _VARI UNITS: Reserved TENS: Machining process 1 = Roughing 2 = Finishing 3 = Roughing and finishing HUNDREDS: Position longitudinal/transverse external/internal +Z/+Z and +X/-X 1 = Longitudinal/external +Z 2 = Transverse/internal -X 3 = Longitudinal/internal +Z 4 = Transverse/internal +X...
  • Page 803 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Alternative mode _AMODE UNITS: Dimensioning for top of groove (for interface only) 0 = At reference point 1 = Opposite the reference point TENS: Depth 0 = Absolute 1 = Incremental HUNDREDS: Dimensioning for width (for interface only) 0 = At outer diameter (top) 1 = At inner diameter (bottom)
  • Page 804: Undercut Forms - Cycle940

    Programming cycles externally 16.1 Technology cycles 16.1.32 Undercut forms - CYCLE940 Various undercuts can be programmed using the CYCLE940 cycle. In some cases, these differ significantly regarding the parameterization. The additional columns in the table indicate which parameters are required for which undercut type.
  • Page 805 Programming cycles externally 16.1 Technology cycles Explanation Param Param Prog. for form Mask intern Machining type _VARI UNITS: Machining 1 = Roughing 2 = Finishing 3 = Roughing + finishing TENS: Machining strategy 0 = Parallel to contour 1 = Longitudinal Undercut forms E and F are always machined in a single pass like finishing.
  • Page 806 Programming cycles externally 16.1 Technology cycles Explanation Param Param Prog. for form Mask intern Display mode _DMODE UNITS: Machining plane G17/18/19 0 = Compatibility, the level effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) Alternative mode...
  • Page 807: Thread Turning - Cycle99

    Programming cycles externally 16.1 Technology cycles 16.1.33 Thread turning - CYCLE99 Programming CYCLE99(REAL _SPL, REAL _SPD, REAL _FPL, REAL _FPD, REAL _APP, REAL _ROP, REAL _TDEP, REAL _FAL, REAL _IANG, REAL _NSP, INT _NRC, INT _NID, REAL _PIT, INT _VARI, INT _NUMTH, REAL _SDIS, REAL _MID, REAL _GDEP, REAL _PIT1, REAL _FDEP, INT _GST, INT _GUD, REAL _IFLANK, INT _PITA, STRING[15] _PITM, STRING[20] _PTAB, STRING[20] _PTABA, INT _DMODE, INT _AMODE)
  • Page 808 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Machining type _VARI UNITS: Technology 1 = External thread with linear infeed 2 = Internal thread with linear infeed 3 = External thread with degressive infeed, cross-section of cut remains constant 4 = Internal thread with degressive infeed, cross-section of cut remains constant TENS: Reserved HUNDREDS: Infeed type...
  • Page 809 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern String as marker for pitch input (for the interface only) _PITM String for thread table (for the interface only) _PTAB String for selection in the thread table (for the interface only) _PTABA Display mode _DMODE...
  • Page 810: Thread Chain - Cycle98

    Programming cycles externally 16.1 Technology cycles 16.1.34 Thread chain - CYCLE98 Programming CYCLE98(REAL _PO1, REAL _DM1, REAL _PO2, REAL _DM2, REAL _PO3, REAL _DM3, REAL _PO4, REAL _DM4, REAL APP, REAL ROP, REAL TDEP, REAL FAL, REAL _IANG, REAL NSP, INT NRC, INT NID, REAL _PP1, REAL _PP2, REAL _PP3, INT _VARI, INT _NUMTH, REAL _VRT, REAL _MID, REAL _GDEP, REAL _IFLANK, INT _PITA, STRING[15] _PITM1, STRING[15] _PITM2, STRING[15] _PITM3, INT _DMODE,INT _AMODE)
  • Page 811 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Number of non-cuts Pitch for 1st section of thread, see _PITA _PP1 Pitch for 2nd section of thread, see _PITA _PP2 Pitch for 3rd section of thread, see _PITA _PP3 Machining _VARI...
  • Page 812 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern String as marker for pitch input (for the interface only) _PITM2 String as marker for pitch input (for the interface only) _PITM3 Display mode _DMODE UNITS: Machining plane G17/18/19 0 = Compatibility, the level effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle)
  • Page 813: Cut-Off - Cycle92

    Programming cycles externally 16.1 Technology cycles 16.1.35 Cut-off - CYCLE92 Programming CYCLE92(REAL _SPD, REAL _SPL, REAL _DIAG1, REAL _DIAG2, REAL _RC, REAL _SDIS, REAL _SV1, REAL _SV2, INT _SDAC, REAL _FF1, REAL _FF2, REAL _SS2, REAL _DIAGM, INT _VARI, INT _DN, INT _DMODE, INT _AMODE) Parameters Param Param...
  • Page 814 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Alternative mode _AMODE UNITS: Depth for speed reduction (_DIAG1) 0 = Absolute, value of transverse axis in the diameter 1 = Incremental, value of transverse axis in the radius TENS: Final depth (_DIAG2) 0 = Absolute, value of transverse axis in the diameter 1 = Incremental, value of transverse axis in the radius...
  • Page 815: Contour Grooving - Cycle952

    Programming cycles externally 16.1 Technology cycles 16.1.36 Contour grooving - CYCLE952 Programming CYCLE952(STRING[100] _PRG, STRING[100] _CON, STRING[100] _CONR, INT _VARI, REAL _F, REAL _FR, REAL _RP, REAL _D, REAL _DX, REAL _DZ, REAL _UX, REAL _UZ, REAL _U, REAL _U1, INT _BL, REAL _XD, REAL _ZD, REAL _XA, REAL _ZA, REAL _XB, REAL _ZB, REAL _XDA, REAL _XDB, INT _N, REAL _DP, REAL _DI, REAL _SC, INT _DN, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
  • Page 816 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Feedrate for roughing/finishing Infeed abscissa groove turning Feedrate for insertion into relief cuts, roughing Infeed ordinate groove turning Retraction plane for internal machining (abs, always diameter) Roughing infeed (see _AMODE UNITS) X infeed (see _AMODE UNITS) Z infeed (see _AMODE UNITS) Finishing allowance X, (see _VARI TEN THOUSANDS)
  • Page 817 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Geometrical mode (evaluation of programmed geometrical data) _GMODE UNITS: Reserved TENS: Reserved HUNDREDS: Select machining/only calculation of start point 0 = Normal machining (no compatibility mode needed) 1 = Normal machining 2 = Calculate start point - no machining (only for call from ShopMill/ShopTurn) THOUSANDS: Limit 0 = no...
  • Page 818 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Alternative mode _AMODE UNITS: Select infeed 0 = DX and DZ infeed for stock removal parallel to contour 1 = D infeed TENS: Infeed strategy 0 = Variable cutting depth (90 ... 100 %) 1 = Constant cutting depth HUNDREDS: Cut segmentation 0 = Uniform...
  • Page 819: Swiveling - Cycle800

    Programming cycles externally 16.1 Technology cycles 16.1.37 Swiveling - CYCLE800 Programming CYCLE800(INT _FR, STRING[32] _TC, INT _ST, INT _MODE, REAL _X0, REAL _Y0, REAL _Z0, REAL _A, REAL _B, REAL _C, REAL _X1, REAL _Y1, REAL _Z1, INT _DIR, REAL _FR_I , INT _DMODE) Parameters Param Param...
  • Page 820 Programming cycles externally 16.1 Technology cycles Param Param Explanation Mask intern Swivel mode: Evaluation of swivel angle and swivel sequence (bit-coded) _MODE Bit: 7 6 0 0: Swivel angle by axis -> see parameters _A, _B, _C 0 1: Solid angle -> see parameters _A, _B 1 0: Projection angle ->...
  • Page 821 Programming cycles externally 16.1 Technology cycles Note If the following transfer parameters are programmed indirectly (as parameters), the input mask is not reset: _FR, _ST, _TC, _MODE, _DIR 1) Can be selected when function is set up in IBN SWIVEL 2) Can be selected if direction reference to rotary axis 1 or 2 is set in IBN SWIVEL If direction reference is "no"...
  • Page 822: High Speed Settings - Cycle832

    Programming cycles externally 16.1 Technology cycles 16.1.38 High Speed Settings - CYCLE832 Programming CYCLE832(_TOL, _TOLM, _V832) Note CYCLE832 does not relieve the machine manufacturer from optimization tasks that are necessary when commissioning the machine. This involves the optimization of the axes involved in the machining process and NCU settings (pre-control, jerk limiting, etc.).
  • Page 823: High Speed Cutting (Hsc) - Cycle_Hsc

    Programming cycles externally 16.1 Technology cycles 16.1.39 High speed cutting (HSC) - CYCLE_HSC Programming CYCLE_HSC(_Mode, _TOL, _RTOL) Parameters Param Param Explanation Mask intern _MODE Machining type (technology) The machining type parameter is transferred in plain text as string to CYCLE_HSC ( upper and lower case notation is permitted).
  • Page 824 Programming cycles externally 16.1 Technology cycles Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 825: Tables

    Tables 17.1 Operations Legend: Effectiveness of the operation: modal non-modal Reference to the document containing the detailed description of the operation: PGsl Programming Manual, Fundamentals PGAsl Programming Manual, Job Planning BNMsl Programming Manual Measuring Cycles BHDsl Operating Manual, Turning BHFsl Operating Manual, Milling FB1 ( ) Function Manual, Basic Functions (with the alphanumeric abbreviation of the corresponding...
  • Page 826 Tables 17.1 Operations Operation Meaning Description see PGAsl Assignment operator Arithmetic functions [Page 64]  PGAsl >= Comparison operator, greater than or equal to Arithmetic functions [Page 64]  PGAsl Operator for division Arithmetic functions [Page 64]  PGsl Block is skipped (1st skip level) …...
  • Page 827 Tables 17.1 Operations Operation Meaning Description see PGAsl, FB1(K2) ADDFRAME Inclusion and possible activation of a measured frame Frame calculation from three measuring points in space (MEAFRAME) [Page 309]  PGsl ADIS Rounding clearance for path functions G1, G2, G3, ...  ...
  • Page 828 Tables 17.1 Operations Operation Meaning Description see PGsl AROT Programmable rotation   PGsl AROTS Programmable frame rotations with solid angles   PGAsl Macro definition Macro technique (DEFINE ... AS) [Page 216]  PGsl ASCALE Programmable scaling   PGAsl ASIN Arithmetic function, arc sine Arithmetic functions [Page 64] ...
  • Page 829 Tables 17.1 Operations Operation Meaning Description see PGAsl AXTOSPI Converts axis identifier into a spindle index Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) [Page 679]  PGAsl Axis name Programming of the tool orientation (A..., B..., C..., LEAD, TILT) [Page 335]  PGAsl Tool orientation: RPY or Euler angle Programming of the tool orientation (A..., B..., C...,...
  • Page 830 Tables 17.1 Operations Operation Meaning Description see PGsl Fast non-smoothed path acceleration BRISK   PGsl BRISKA Switch on brisk path acceleration for the programmed axes   PGAsl BSPLINE B-spline Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) [Page 246] ...
  • Page 831 Tables 17.1 Operations Operation Meaning Description see PGAsl CANCEL Cancel modal synchronized action Delete synchronized action (CANCEL) [Page 646]  PGAsl CASE Conditional program branch Program branch (CASE ... OF ... DEFAULT ...) [Page 97]  PGAsl Direct approach of a position Approaching coded positions (CAC, CIC, CDC, CACP, CACN) [Page 245] ...
  • Page 832 Tables 17.1 Operations Operation Meaning Description see PGsl Circular interpolation through intermediate point   PGAsl CLEARM Reset one/several markers for channel coordination Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) [Page 115]  PGAsl CLRINT Deselect interrupt: Delete assignment of interrupt routine (CLRINT) [Page 125] ...
  • Page 833 Tables 17.1 Operations Operation Meaning Description see PGAsl COUPOF ELG group/synchronous spindle pair ON Synchronous spindle: Programming (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) [Page 544]  PGAsl COUPOFS Deactivate ELG group/synchronous spindle pair with stop of following spindle Synchronous spindle: Programming (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) [Page 544] ...
  • Page 834 Tables 17.1 Operations Operation Meaning Description see PGsl Circle with tangential transition   PGAsl CTAB Define following axis position according to leading axis position from curve table Read curve table values (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) [Page 523]  PGAsl CTABDEF Table definition ON...
  • Page 835 Tables 17.1 Operations Operation Meaning Description see PGAsl CTABMEMTYP Returns the memory in which curve table number n is created Curve tables: Determine table properties (CTABID, CTABISLOCK, CTABMEMTYP, CTABPERIOD) [Page 521]  PGAsl CTABMPOL Max. number of polynomials still possible in the memory Curve tables: Check use of resources (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL,...
  • Page 836 Tables 17.1 Operations Operation Meaning Description see PGAsl CTABSSV Returns the initial value of the following axis of a segment of the curve table Read curve table values (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) [Page 523]  PGAsl CTABTEP Returns the value of the leading axis at...
  • Page 837 Tables 17.1 Operations Operation Meaning Description see PGAsl CUT3DCCD 3D tool offset circumferential milling with limitation surfaces with differential tool 3D tool offset Taking into consideration a limitation surface (CUT3DCC, CUT3DCCD) [Page 431]  PGAsl CUT3DF 3D tool offset face milling Activate 3D tool offsets (CUT3DC..., CUT3DF...) [Page 421] ...
  • Page 838 Tables 17.1 Operations Operation Meaning Description see PGAsl CYCLE82 Technological cycle: drilling, counterboring Drilling, counterboring - CYCLE82 [Page 746] PGAsl CYCLE83 Technological cycle: deep-hole drilling Deep-hole drilling - CYCLE83 [Page 748] PGAsl CYCLE84 Technological cycle: rigid tapping Tapping without compensating chuck - CYCLE84 [Page 751] PGAsl CYCLE85...
  • Page 839 Tables 17.1 Operations Operation Meaning Description see PGsl Tool offset number   PGsl With D0, offsets for the tool are ineffective.   PGsl Absolute non-modal axis-specific diameter programming   PGsl Absolute dimensions for rotary axes, approach position directly   PGAsl Variable definition Definition of user variables (DEF) [Page 25] ...
  • Page 840 Tables 17.1 Operations Operation Meaning Description see PGsl Diameter programming: OFF DIAMOF Normal position, see machine   manufacturer PGsl DIAMOFA Axis-specific modal diameter programming: OFF   Normal position, see machine manufacturer PGsl DIAMON Diameter programming: ON   PGsl DIAMONA Axis-specific modal diameter programming: ON  ...
  • Page 841 Tables 17.1 Operations Operation Meaning Description see PGAsl Keyword for synchronized action, triggers action when condition is fulfilled Actions (DO) [Page 565]  PGsl DRFOF Deactivation of handwheel offsets (DRF)   PGsl DRIVE Velocity-dependent path acceleration   PGsl DRIVEA Activate bent acceleration characteristic curve for the programmed axes  ...
  • Page 842 Tables 17.1 Operations Operation Meaning Description see PGAsl EGONSYNE Turn on electronic gear, with specification of approach mode Switching-in the electronic gearbox (EGOFS, EGOFC) [Page 541]  PGAsl ELSE Program branch, if IF condition not fulfilled Program loop with alternative (IF, ELSE, ENDIF) [Page 107] ...
  • Page 843 Tables 17.1 Operations Operation Meaning Description see PGAsl EXECSTRING Transfer of a string variable with the executing part program line Indirectly programming part program lines (EXECSTRING) [Page 63]  PGAsl EXECTAB Execute an element from a motion table Indirectly programming part program lines (EXECSTRING) [Page 63] ...
  • Page 844 Tables 17.1 Operations Operation Meaning Description see PGAsl FENDNORM Corner deceleration OFF Feed reduction with corner deceleration (FENDNORM, G62, G621) [Page 284]  PGsl Feedforward control OFF FFWOF   PGsl FFWON Feedforward control ON   PGsl FGREF Reference radius for rotary axes or path reference factors for orientation axes  ...
  • Page 845 Tables 17.1 Operations Operation Meaning Description see PGAsl Feedrate normal to DIN 66025 FNORM Feedrate response (FNORM, FLIN, FCUB, FPO) [Page 470]  PGAsl FOCOF Deactivate travel with limited torque/ force Travel to fixed stop (FXS, FXST, FXSW, FOCON, FOCOF) [Page 630]  PGAsl FOCON Activate travel with limited torque/force...
  • Page 846 Tables 17.1 Operations Operation Meaning Description see PGsl FXSW Monitoring window for travel to fixed stop   PGsl Tooth feedrate Operation Meaning Description see PGsl Linear interpolation with rapid traverse (rapid traverse motion)   PGsl Linear interpolation with feedrate (linear interpolation)  ...
  • Page 847 Tables 17.1 Operations Operation Meaning Description see PGsl Tool radius compensation right of contour   PGsl Suppression of current work offset (non-modal)   PGsl 1st adjustable work offset   PGsl 2. Adjustable work offset   PGsl 3. Adjustable work offset  ...
  • Page 848 Tables 17.1 Operations Operation Meaning Description see PGsl Inverse-time feedrate rpm   PGsl Linear feedrate F in mm/min or inch/min and degree/min   PGsl Revolutional feedrate F in mm/rev or inch/rev   PGsl Constant cutting rate (as for G95) ON  ...
  • Page 849 Tables 17.1 Operations Operation Meaning Description see PGsl G341 Initial infeed on perpendicular axis (z), then approach in plane   PGsl G347 Soft approach with semicircle   PGsl G348 Soft retraction with semicircle   PGsl Transition circle G450   PGsl G451 Intersection of equidistances  ...
  • Page 850 Tables 17.1 Operations Operation Meaning Description see PGsl G700 Inch dimensions for geometric and   technological specifications (lengths,   feedrate) PGsl Metric dimensions for geometric and G710 technological specifications (lengths,   feedrate) G751 Approach fixed point via intermediate PGsl point PGAsl G group reserved for the OEM user G810...
  • Page 851 Tables 17.1 Operations Operation Meaning Description see GETEXET Reading of the loaded T number GETFREELOC Find a free space in the magazine for a given tool GETSELT Return selected T number GETT Get T number for tool name FB1(W1) GETTCOR Read out tool lengths and/or tool length components FB1(W1)
  • Page 852 Tables 17.1 Operations Operation Meaning Description see PGAsl ICYCOF All blocks of a technology cycle are processed in one interpolation cycle Control processing of technology cycles (ICYCOF, following ICYCOF ICYCON) [Page 641]  PGAsl ICYCON Each block of a technology cycle is processed in a separate interpolation Control processing of technology cycles (ICYCOF, cycle following ICYCON...
  • Page 853 Tables 17.1 Operations Operation Meaning Description see PGAsl IPOBRKA Motion criterion from braking ramp activation Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) [Page 285]  PGAsl IPOENDA End of motion when “IPO stop” reached Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) [Page 285] ...
  • Page 854 Tables 17.1 Operations Operation Meaning Description see PGsl KONT Travel around contour on tool offset   PGsl KONTC Approach/retract with continuous- curvature polynomial   PGsl KONTT Approach/retract with continuous- tangent polynomial   PGAsl Subprogram number Subprogram call without parameter transfer [Page 193]  PGAsl LEAD Lead angle...
  • Page 855 Tables 17.1 Operations Operation Meaning Description see PGAsl LOCK Disable synchronized action with ID (stop technology cycle) Lock, unlock, reset (LOCK, UNLOCK, RESET) [Page 644]  PGAsl LONGHOLE Technological cycle: elongated hole Elongated hole - LONGHOLE [Page 783] PGAsl LOOP Introduction of an endless loop Continuous program loop (LOOP, ENDLOOP) [Page 109] ...
  • Page 856 Tables 17.1 Operations Operation Meaning Description see PGAsl MASLOF Deactivation of a temporary coupling Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) [Page 555]  PGAsl MASLOFS Deactivation of a temporary coupling with automatic slave axis stop Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) [Page 555] ...
  • Page 857 Tables 17.1 Operations Operation Meaning Description see PGAsl MINVAL Smaller value of two variables (arithm. function) Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) [Page 71]  PGAsl MIRROR Programmable mirroring   PGAsl Call the dialog window interactively from the part program on the HMI Interactively call the window from the part program (MMC) [Page 703] ...
  • Page 858 Tables 17.1 Operations Operation Meaning Description see PGAsl OEMIPO2 OEM interpolation 2 Special functions for OEM users (OMA1 ... OMA5, OEMIPO1, OEMIPO2, G810 ... G829) [Page 283] PGAsl Keyword in CASE branch Program branch (CASE ... OF ... DEFAULT ...) [Page PGsl OFFN Allowance on the programmed contour...
  • Page 859 Tables 17.1 Operations Operation Meaning Description see PGAsl ORID Orientation changes are performed before the circle block Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) [Page 435]  PGAsl ORIEULER Orientation angle via Euler angle Programming orientation axes (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2) [Page 346] ORIMKS...
  • Page 860 Tables 17.1 Operations Operation Meaning Description see PGAsl Smoothing of the orientation ORISOF characteristic OFF Smoothing the orientation characteristic (ORISON, ORISOF) [Page 369] PGAsl ORISON Smoothing of the orientation characteristic ON Smoothing the orientation characteristic (ORISON, ORISOF) [Page 369] PGAsl ORIVECT Large-radius circular interpolation (identical to ORIPLANE)
  • Page 861 Tables 17.1 Operations Operation Meaning Description see PGAsl OSP1 Oscillating: Left reversal point Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) [Page 651]  PGAsl OSP2 Oscillation right reversal point Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) [Page 651]  PGAsl Tool orientation smoothing at end of block...
  • Page 862 Tables 17.1 Operations Operation Meaning Description see PGAsl Punching with delay ON PDELAYON Punching and nibbling on or off (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) [Page 665]  PGAsl Physical unit of a variable Definition of user variables (DEF) [Page 25] PGAsl 1.
  • Page 863 Tables 17.1 Operations Operation Meaning Description see PGsl POSA Position axis across block boundary   POSM Position magazine PGsl POSP Positioning in sections (oscillating)   PGAsl POSRANGE Determine whether the currently interpolated position setpoint of an axis Position in specified reference range (POSRANGE) is located in a window at a predefined [Page 608] ...
  • Page 864 Tables 17.1 Operations Operation Meaning Description see PGAsl QECLRNON Quadrant error compensation learning Learn compensation characteristics (QECLRNON, QECLRNOF) [Page 701]  PGsl Fast additional (auxiliary) function output   PGAsl R... Arithmetic parameter also as settable address identifier and with numerical Predefined user variables: Arithmetic parameters (R) extension [Page 21] ...
  • Page 865 Tables 17.1 Operations Operation Meaning Description see PGAsl REPOSL Linear repositioning Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) [Page 486]  PGAsl REPOSQ Repositioning in a quadrant Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) [Page 486] ...
  • Page 866 Tables 17.1 Operations Operation Meaning Description see PGsl Programmable rotation   PGsl ROTS Programmable frame rotations with solid angles   PGAsl ROUND Rounding of decimal places Arithmetic functions [Page 64]  PGAsl ROUNDUP Rounding up of an input value Roundup (ROUNDUP) [Page 160]  PGsl Polar radius  ...
  • Page 867 Tables 17.1 Operations Operation Meaning Description see PGAsl Spline degree Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) [Page 246]  PGAsl SEFORM Structuring operation in the Step editor to generate the step view for HMI Structuring instruction in step editor (SEFORM) [Page Advanced 227] ...
  • Page 868 Tables 17.1 Operations Operation Meaning Description see PGAsl SLOT1 Technological cycle: longitudinal groove Longitudinal slot - SLOT1 [Page 776] PGAsl SLOT2 Technological cycle: circumferential groove Circumferential slot - SLOT2 [Page 779] PGsl SOFT Soft path acceleration   PGsl SOFTA Activate soft axis acceleration for the programmed axes  ...
  • Page 869 Tables 17.1 Operations Operation Meaning Description see PGAsl SPRINT Returns an input string formatted Formatting a string (SPRINT) [Page 84] PGAsl SQRT Square root (arithmetic function) Arithmetic functions [Page 64]  PGsl Oscillation retraction path for synchronized action   PGsl Oscillation retraction path with external input axial for synchronized action  ...
  • Page 870 Tables 17.1 Operations Operation Meaning Description see PGAsl STRINGVAR Selection of a single character from the progr. string Selection of a single character (STRINGVAR, STRINGFELD) [Page 83]  PGAsl STRLEN Define string length Determine length of string (STRLEN) [Page 80]  PGAsl SUBSTR Define index of character in input string Selection of a substring (SUBSTR) [Page 82] ...
  • Page 871 Tables 17.1 Operations Operation Meaning Description see PGAsl TCARR Request toolholder (number "m") Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) [Page 451]  Load tool from buffer into magazine PGAsl Determine tool length components from TCOABS the orientation of the current toolholder Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY,...
  • Page 872 Tables 17.1 Operations Operation Meaning Description see PGsl TOFFL Tool length offset in the direction of the tool length component L1, L2 or L3   PGAsl TOFFOF Deactivate online tool offset Online tool length compensation (TOFFON, TOFFOF) [Page 454]  PGAsl TOFFON Activate online tool length offset Online tool length compensation (TOFFON, TOFFOF)
  • Page 873 Tables 17.1 Operations Operation Meaning Description see PGAsl TOUPPER Convert the letters of a string into uppercase Conversion to lower/upper case letters (TOLOWER, TOUPPER) [Page 79]  PGAsl TOWBCS Wear values in basic coordinate system (BCS) Coordinate system of the active machining operation (TOWSTD, TOWMCS, TOWWCS, TOWBCS, TOWTCS, TOWKCS) [Page 412] ...
  • Page 874 Tables 17.1 Operations Operation Meaning Description see PGAsl TRANSMIT Pole transformation (face machining) Milling on turned parts (TRANSMIT) [Page 371]  PGAsl TRAORI 4-axis, 5-axis transformation, generic transformation Three, four and five axis transformation (TRAORI) [Page 332]  PGAsl TRUE Logical constant: True Definition of user variables (DEF) [Page 25] ...
  • Page 875 Tables 17.1 Operations Operation Meaning Description see PGAsl WAITMC Wait for marker in specified channel; exact stop only if the other channels Program coordination (INIT, START, WAITM, WAITMC, have not yet reached the marker. WAITE, SETM, CLEARM) [Page 115]  PGsl WAITP Wait for end of travel of the positioning axis...
  • Page 876 Tables 17.1 Operations Operation Meaning Description see PGAsl WRITE Write text to file system Appends a block to the end of the Write file (WRITE) [Page 140] specified file. PGAsl WRTPR Delays the machining job without interrupting continuous-path mode PGsl Axis name  ...
  • Page 877: Operations: Availability For Sinumerik 828D

    Tables 17.2 Operations: Availability for SINUMERIK 828D 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling ● ● ● ● ● ● ●...
  • Page 878 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling APRP ● ● ● ● ● ● ● ● ● ● ● ●...
  • Page 879 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling BRISK ● ● ● ● ● ● BRISKA ● ● ● ● ●...
  • Page 880 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling COARSEA ● ● ● ● ● ● COMPCAD ○ ○ ○ COMPCURV ○...
  • Page 881 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling CTABISLOCK CTABLOCK CTABMEMTYP CTABMPOL CTABMSEG CTABNO CTABNOMEM CTABPERIOD CTABPOL CTABPOLID CTABSEG CTABSEGID CTABSEV CTABSSV CTABTEP...
  • Page 882 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling ● ● ● ● ● ● DEFINE ● ● ● ● ● ●...
  • Page 883 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling DYNROUGH ● ● ● ● ● ● DYNSEMIFIN ● ● ● ● ●...
  • Page 884 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling FCUB ● ● ● ● ● ● ● ● ● ● ● ●...
  • Page 885 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling ● ● ● ● ● ● ● ● ● ● ● ● ●...
  • Page 886 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling ● ● ● ● ● ● ● ● ● ● ● ● G110 ●...
  • Page 887 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling G710 ● ● ● ● ● ● G751 ● ● ● ● ●...
  • Page 888 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling ICYCON ● ● ● ● ● ● ● ● ● ● ● ●...
  • Page 889 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling LEAD Tool orientation Orientation polynomial LEADOF LEADON LENTOAX ● ● ● ● ●...
  • Page 890 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling MEAC MEAFRAME ● ● ● ● ● ● MEAS ● ● ● ●...
  • Page 891 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling ORICONCCW ORICONCW ORICONIO ORICONTO ORICURVE ORID ORIEULER ORIMKS ORIPATH ORIPATHS ORIPLANE ORIRESET ORIROTA ORIROTC ORIROTR...
  • Page 892 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling OST1 OST2 OTOL ● ● ● ● ● ● ● ● ● OVRA ●...
  • Page 893 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling ● ● ● ● ● ● PTPG0 ● ● ● ● ● ●...
  • Page 894 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling ROUNDUP ● ● ● ● ● ● ● ● ● ● ● ●...
  • Page 895 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling SONS SPATH ● ● ● ● ● ● SPCOF ● ● ● ●...
  • Page 896 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling ● ● ● ● ● ● TANG TANGDEL TANGOF TANGON (828D: _TCA) ●...
  • Page 897 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling TOWMCS ● ● ● TOWSTD ● ● ● TOWTCS ● ● ● TOWWCS ●...
  • Page 898 Tables 17.2 Operations: Availability for SINUMERIK 828D 828D control version Operation PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 basic T basic M Turning Milling Turning Milling WALCS7 ● ● ● ● ● ● WALCS8 ● ● ● ● ●...
  • Page 899: Currently Set Language In The Hmi

    Tables 17.3 Currently set language in the HMI 17.3 Currently set language in the HMI The table below lists all of the languages available at the user interface. The currently set language can be queried in the part program and in the synchronized actions using the following system variable: $AN_LANGUAGE_ON_HMI = ...
  • Page 900 Tables 17.3 Currently set language in the HMI Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 901: Appendix

    Appendix List of abbreviations Output Automation system ASCII American Standard Code for Information Interchange ASIC Application Specific Integrated Circuit: User switching circuit ASUB Asynchronous subprogram Job planning Statement list Operating mode Mode group Mode group Ready to run Human Machine Interface Binary Coded Decimals: Decimal numbers encoded In binary code Handheld unit Binary files (Binary Files)
  • Page 902 Appendix A.1 List of abbreviations Data Carrier Detect Dynamic Data Exchange Data Terminal Equipment Deutsche Industrie Norm (German Industry Standard) Data Input/Output: Data transfer display Directory: Directory Dynamic Link Library Data transmission equipment Disk Operating System Dual-Port Memory Dual-Port RAM DRAM Dynamic Random Access Memory Differential Resolver Function: Differential resolver function (DRF)
  • Page 903 Appendix A.1 List of abbreviations AuxF Auxiliary function Human Machine Interface: Operator functionality of SINUMERIK for operation, programming and simulation. High-resolution Measuring System Main Spindle Drive Hardware Startup Drive module pulse enable IK (GD) Implicit communication (global data) Interpolative Compensation: Interpolatory compensation Interface Module Interconnection module Interface Module Receive: Interconnection module for receiving data Interface Module Send: Interconnection module for sending data...
  • Page 904 Appendix A.1 List of abbreviations Numerical Control: Numerical Control Numerical Control Kernel: NC kernel with block preparation, traversing range, etc. Numerical Control Unit: Hardware unit of the NCK Name for the operating system of the NCK Interface signal NURBS Non-Uniform Rational B-Spline Zero offset Organization block in the PLC Original Equipment Manufacturer...
  • Page 905 Appendix A.1 List of abbreviations SRAM Static RAM (non-volatile) TNRC Tool Nose Radius Compensation Leadscrew error compensation Serial Synchronous Interface: Synchronous serial interface Software System Files System files Testing Data Active: Identifier for machine data Tool Offset: Tool offset Tool Offset Active: Identifier (file type) for tool offsets TRANSMIT TRANSform Milling Into Turning: Coordinate conversion on turning machine for milling operations...
  • Page 906: Overview

    Appendix A.2 Overview Overview Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 907 Appendix A.2 Overview Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 908 Appendix A.2 Overview Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...
  • Page 909: Glossary

    Glossary Absolute dimensions A destination for an axis movement is defined by a dimension that refers to the origin of the currently active coordinate system. See →  Incremental dimension Acceleration with jerk limitation In order to optimize the acceleration response of the machine whilst simultaneously protecting the mechanical components, it is possible to switch over in the machining program between abrupt acceleration and continuous (jerk-free) acceleration.
  • Page 910 Glossary Auxiliary functions Auxiliary functions enable → part programs to transfer →  parameters to the →  PLC, which then trigger reactions defined by the machine manufacturer. Axes In accordance with their functional scope, the CNC axes are subdivided into: • Axes: interpolating path axes •...
  • Page 911 Glossary Basic Coordinate System Cartesian coordinate system which is mapped by transformation onto the machine coordinate system. The programmer uses axis names of the basic coordinate system in the →  part program. The basic coordinate system exists parallel to the →  machine coordinate system if no →  transformation is active.
  • Page 912 Glossary See →  NC Component of the NC for the implementation and coordination of communication. Compensation axis Axis with a setpoint or actual value modified by the compensation value Compensation memory Data range in the control, in which the tool offset data are stored. Compensation table Table containing interpolation points.
  • Page 913 Glossary Coordinate system See →  Machine coordinate system, →  Workpiece coordinate system Central processing unit, see →  PLC C-Spline The C-Spline is the most well-known and widely used spline. The transitions at the interpolation points are continuous, both tangentially and in terms of curvature. 3rd order polynomials are used.
  • Page 914 Glossary Differential Resolver Function: NC function which generates an incremental zero offset in Automatic mode in conjunction with an electronic handwheel. Drive The drive is the unit of the CNC that performs the speed and torque control based on the settings of the NC.
  • Page 915 Glossary Feed override The programmed velocity is overriden by the current velocity setting made via the →  machine control panel or from the →  PLC (0 to 200%). The feedrate can also be corrected by a programmable percentage factor (1-200%) in the machining program. Finished-part contour Contour of the finished workpiece.
  • Page 916 Glossary High-level CNC language The high-level language offers: →  user-defined variables, →  system variables, →  macro techniques. High-speed digital inputs/outputs The digital inputs can be used for example to start fast CNC program routines (interrupt routines). The digital CNC outputs can be used to trigger fast, program-controlled switching functions (SINUMERIK 840D).
  • Page 917 Glossary Intermediate blocks Motions with selected →  tool offset (G41/G42) may be interrupted by a limited number of intermediate blocks (blocks without axis motions in the offset plane), whereby the tool offset can still be correctly compensated for. The permissible number of intermediate blocks which the control reads ahead can be set in system parameters.
  • Page 918 Glossary Servo gain factor, a control variable in a control loop. Leading axis The leading axis is the →  gantry axis that exists from the point of view of the operator and programmer and, thus, can be influenced like a standard NC axis. Leadscrew error compensation Compensation for the mechanical inaccuracies of a leadscrew participating in the feed.
  • Page 919 Glossary Machine coordinate system A coordinate system, which is related to the axes of the machine tool. Machine zero Fixed point of the machine tool to which all (derived) measuring systems can be traced back. Machining channel A channel structure can be used to shorten idle times by means of parallel motion sequences, e.g.
  • Page 920 Glossary Mirroring Mirroring reverses the signs of the coordinate values of a contour, with respect to an axis. It is possible to mirror with respect to more than one axis at a time. Mode group Axes and spindles that are technologically related can be combined into one mode group. Axes/spindles of a BAG can be controlled by one or more →...
  • Page 921 Glossary The scope for implementing individual solutions (OEM applications) for the SINUMERIK 840D has been provided for machine manufacturers, who wish to create their own operator interface or integrate process-oriented functions in the control. Operator Interface The user interface (UI) is the display medium for a CNC in the form of a screen. It features horizontal and vertical softkeys.
  • Page 922 Glossary Path axis Path axes include all machining axes of the →  channel that are controlled by the →  interpolator in such a way that they start, accelerate, stop, and reach their end point simultaneously. Path feedrate Path feed affects →  path axes. It represents the geometric sum of the feed rates of the →  geometry axes involved.
  • Page 923 Glossary Polar coordinates A coordinate system, which defines the position of a point on a plane in terms of its distance from the origin and the angle formed by the radius vector with a defined axis. Polynomial interpolation Polynomial interpolation enables a wide variety of curve characteristics to be generated, such as straight line, parabolic, exponential functions (SINUMERIK 840D).
  • Page 924 Glossary Programming key Character and character strings that have a defined meaning in the programming language for →  part programs. Protection zone Three-dimensional zone within the →  working area into which the tool tip must not pass. Quadrant error compensation Contour errors at quadrant transitions, which arise as a result of changing friction conditions on the guideways, can be virtually entirely eliminated with the quadrant error compensation.
  • Page 925 Glossary Safety Functions The control is equipped with permanently active montoring functions that detect faults in the →  CNC, the →  PLC, and the machine in a timely manner so that damage to the workpiece, tool, or machine is largely prevented. In the event of a fault, the machining operation is interrupted and the drives stopped.
  • Page 926 Glossary Transformation ratio Standard cycles Standard cycles are provided for machining operations, which are frequently repeated: • Cycles for drilling/milling applications • for turning technology The available cycles are listed in the "Cycle support" menu in the "Program" operating area. Once the desired machining cycle has been selected, the parameters required for assigning values are displayed in plain text.
  • Page 927 Glossary Synchronized axis A synchronized axis is the →  gantry axis whose set position is continuously derived from the motion of the →  leading axis and is, thus, moved synchronously with the leading axis. From the point of view of the programmer and operator, the synchronized axis "does not exist". System memory The system memory is a memory in the CPU in which the following data is stored: •...
  • Page 928 Glossary Tool nose radius compensation Contour programming assumes that the tool is pointed. Because this is not actually the case in practice, the curvature radius of the tool used must be communicated to the control which then takes it into account. The curvature center is maintained equidistantly around the contour, offset by the curvature radius.
  • Page 929 Glossary User-defined variable Users can declare their own variables for any purpose in the →  part program or data block (global user data). A definition contains a data type specification and the variable name. See →  System variable. Variable definition A variable definition includes the specification of a data type and a variable name.
  • Page 930 Glossary Workpiece coordinate system The workpiece coordinate system has its starting point in the →  workpiece zero-point. In machining operations programmed in the workpiece coordinate system, the dimensions and directions refer to this system. Workpiece zero The workpiece zero is the starting point for the →  workpiece coordinate system. It is defined in terms of distances to the →...
  • Page 931 Index Symbols $AN_LANGUAGE_ON_HMI $AN_POWERON_TIME $AN_SETUP_TIME * (arithmetic function) $MC_COMPESS_VELO_TOL / (arithmetic function) $P_AD + (arithmetic function) $P_CTOL =(b2, b3, b4, b5) $P_CUT_INV =(xe, x2, x3, x4, x5) $P_CUTMOD =(ye, y2, y3, y4, y5) $P_CUTMOD_ANG =(ze, z2, z3, z4, z5) $P_OTOL =(a2, a3, a4, a5) $P_SIM == (comparison operator)
  • Page 932 Index $TC_TPG1 ... 9 and after motion Numerics Angle of rotation Angle of rotation 1, 2 0 character Angle offset/angle increment of the rotary axes 3D circumferential milling with limitation surfaces Angle reference 3D face milling Approach from the nearest path point Path curve using surface normal vectors 3D tool offset APRB...
  • Page 933 Index Specified reference position Axis replacement CACN Accept axis CACP Get and release using synchronized actions CALCDAT Preconditions CALL Release axis Call-by-value parameters Set up variable response For technology cycles without preprocessing stop CALLPATH Without synchronization CANCEL AXNAME Cartesian PTP travel AXSTRING CASE AXTOCHAN...
  • Page 934 Index -coding CTABPERIOD -preparation CTABPOL Repositioning CTABPOLID -table CTABSEG Contour call - CYCLE62 CTABSEGID Contour element CTABSEV travel CTABSSV Contour grooving - CYCLE952 CTABTEP Contour preparation CTABTEV Fault feedback signal CTABTMAX CONTPRON CTABTMIN Conversion routines CTABTSP Corner deceleration at all corners CTABTSV Corner deceleration at inside corners CTABUNLOCK...
  • Page 935 Index CYCLE840 EGDEF CYCLE85 EGDEL CYCLE86 EGOFC CYCLE899 EGOFS CYCLE92 EGON CYCLE930 EGONSYN CYCLE940 EGONSYNE CYCLE951 Electronic gear CYCLE952 Elongated hole - LONGHOLE CYCLE98 ELSE CYCLE99 ENABLE Cycles ENAT Parameterizing user cycles End angle Cylinder surface curve transformation ENDFOR Cylinder surface transformation ENDIF ENDLABEL Endless loop...
  • Page 936 Index Axis FTOCOF Movement FTOCON FENDNORM FGROUP axes FXST FIFO variables FXSW FIFOCTRL File -information FILEDATE G codes FILEINFO Indirect programming FILESIZE G0 tolerance factor FILESTAT FILETIME FINE Fine offset G450 FINEA G451 First basic frame in the channel Fixed stop G621 FLIN G810 ...
  • Page 937 Index JERKLIM Identification number Jump -condition -destination IFRAME -instructions II1,II2 Marker Inclined axis, TRAANG -marker INDEX To beginning of program Indirect programming Jump statement of addresses CASE of G codes INICF INIPO INIRE Kinematic transformation TRANSMIT, TRACYL and INIT TRAANG INITIAL Kinematic type Initial tool orientation setting ORIRESET...
  • Page 938 Index Macro NC block compressor Marker variables MASLDEF NCU-global basic frames MASLDEL NCU-global settable frames MASLOF Nesting depth MASLOFS of check structures MASLON NEWCONF Master value Nibbling Coupling Master value coupling Actual value and setpoint coupling NPROT from static synchronized actions NPROTDEF Synchronization of leading and following axis NUMBER...
  • Page 939 Index Machine kinematics Override Orientation programming Current Travel movements and orientation movements Resulting Variants of orientation programming Overview ORIEULER Frames active in the channel ORIMKS OVRA ORIPATH ORIPATHS ORIPLANE ORIRESET(A, B, C) P... ORIROTA Parameter ORIROTC Actual ORIROTR Formal ORIROTT -transfer for subprogram call ORIRPY Transfer on subprogram call...
  • Page 940 Index Indirect programming Position synchronism PTP for TRANSMIT Positioning movements PTPG0 POSP POSRANGE PUNCHACC Punching Predrilling a contour pocket – CYCLE63 PUTFTOC Predrilling a contour pocket – CYCLE64 PUTFTOCF PREPRO Preprocessing Memory Preprocessing stop Preset actual value memory Preset offset QECDAT PRESETON QECLRN...
  • Page 941 Index RESET SETDNO Residual time SETINT For a workpiece SETM Resolved kinematics Setpoint value coupling Setup value Reversal SIEMENS cycles Point Simulation RINDEX Single axis motion Single block -suppression Singular positions Rotary axes SLOT1 Direction vectors V1, V2 SLOT2 Distance vectors l1, l2...
  • Page 942 Index String SYNFCT() evaluation function -concatenation SYNR formatting SYNRW -length SYNW -operations System STRINGIS -dependent availability STRINGVAR System variables STRLEN Subprogram -call with parameter transfer -call without parameter transfer -call, indirect TANG -call, modal TANGDEL Name Tangential control Programmable search path TANGOF -repetition TANGON...
  • Page 943 Index Tool Chained transformations -compensation memory Initial tool orientation setting regardless of -length compensation kinematics -monitoring, grinding-specific Kinematic transformations -offsets, additive Orientation transformation -orientation for frame change Three, four and five axis transformation (TRAORI) Orientation, smoothing -parameters Three-axis, four-axis transformations -radius compensation TRANSMIT Tool offset...
  • Page 944 Index WAITMC Wear value WHEN WHEN-DO WHENEVER WHENEVER-DO WHILE Winlimit Work offset External zero offset PRESETON Working memory Data areas Workpiece Counter -directories -main directory WRITE xe, ye, ze XH YH ZH xi, yi, zi α Job planning Programming Manual, 02/2011, 6FC5398-2BP40-1BA0...

This manual is also suitable for:

Sinumerik 840de slSinumerik 828d

Table of Contents