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

Advertisement

SINUMERIK SINUMERIK 840D sl/SINUMERIK 828D Job Planning
SINUMERIK
SINUMERIK 840D sl/
SINUMERIK 828D
Valid for
Control System
SINUMERIK 840D sl/840DE sl
SINUMERIK 828D
Software
NCU system software for 840D sl/840DE sl
NCU System software for 828D
06/2009
6FC5398-2BP20-0BA0
Preface
(FRAMES)
Transformations
Oscillation
Grinding
programs
Tables
Appendix
Version
2.6
2.6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
A

Advertisement

Table of Contents
loading

Summary of Contents for Siemens SINUMERIK 840D sl

  • Page 1: Table Of Contents

    Preface SINUMERIK SINUMERIK 840D sl/SINUMERIK 828D Job Planning Flexible NC programming File and program management Protection zones SINUMERIK Special motion commands Coordinate transformation SINUMERIK 840D sl/ (FRAMES) SINUMERIK 828D Job Planning Transformations Tool offsets Programming Manual Path traversing behavior Axis couplings...
  • 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: Preface

    ● Researching documentation online Information on DOConCD and direct access to the publications in DOConWeb. ● Compiling individual documentation on the basis of Siemens contents with the My Documentation Manager (MDM), refer to http://www.siemens.com/mdm. My Documentation Manager provides you with a range of features for generating your own machine documentation.
  • Page 4 If you have any questions, please contact our hotline: Europe/Africa Phone +49 180 5050 - 222 +49 180 5050 - 223 €0.14/min. from German landlines, mobile phone prices may differ Internet http://www.siemens.de/automation/support-request Americas Phone +1 423 262 2522 +1 423 262 2200 E-mail mailto:techsupport.sea@siemens.com...
  • Page 5: Job Planning

    If you have any queries (suggestions, corrections) in relation to this documentation, please fax or e-mail us: Fax: +49 9131- 98 2176 E-mail: mailto:docu.motioncontrol@siemens.com A fax form is available in the appendix of this document. SINUMERIK Internet address http://www.siemens.com/sinumerik "Fundamentals" and "Job Planning" Programming Manual The description of the NC programming is divided into two manuals: 1.
  • Page 6 Preface Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 7 Table of contents Preface ..............................3 Flexible NC programming ........................15 Variables ............................15 1.1.1 General information about variables....................15 1.1.2 System variables..........................16 1.1.3 Predefined user variables: Arithmetic parameters (R)..............19 1.1.4 Predefined user variables: Link variables ..................21 1.1.5 Definition of user variables (DEF) ....................24 1.1.6 Redefinition of system variables, user variables, and NC language commands (REDEF) ..31 1.1.7...
  • Page 8 Table of contents 1.12.2 Continuous program loop (LOOP, ENDLOOP)................. 111 1.12.3 Count loop (FOR ... TO ..., ENDFOR) ..................112 1.12.4 Program loop with condition at start of loop (WHILE, ENDWHILE).......... 114 1.12.5 Program loop with condition at the end of the loop (REPEAT, UNTIL) ........115 1.12.6 Program example with nested check structures ...............
  • Page 9 Table of contents 1.25.3.4 Modal subprogram call (MCALL) ....................210 1.25.3.5 Indirect subprogram call (CALL) ....................212 1.25.3.6 Indirect subprogram call with specification of the calling program part (CALL BLOCK ... TO ...) ......................214 1.25.3.7 Indirect call of a program programmed in ISO language (ISOCALL) ........216 1.25.3.8 Calling subroutine with path specification and parameters (PCALL).........217 1.25.3.9 Extend search path for subprogram calls (CALLPATH) ............218 1.25.3.10 Execute external subroutine (EXTCALL)...................220...
  • Page 10 Table of contents 5.2.4 Defining new frames (DEF FRAME) ..................329 Coarse and fine offsets (CFINE, CTRANS) ................330 External zero offset ........................332 Preset offset (PRESETON)....................... 333 Frame calculation from three measuring points in space (MEAFRAME) ......... 335 NCU global frames........................339 5.7.1 Channel-specific frames ($P_CHBFR, $P_UBFR) ..............
  • Page 11 Table of contents Tool offsets ............................447 Offset memory..........................447 Additive offsets...........................451 7.2.1 Selecting additive offsets (DL) ....................451 7.2.2 Specify wear and setup values ($TC_SCPxy[t,d], $TC_ECPxy[t,d]) .........453 7.2.3 Delete additive offsets (DELDL)....................454 Special handling of tool offsets ....................455 7.3.1 Mirroring of tool lengths ......................457 7.3.2 Wear sign evaluation .........................458 7.3.3...
  • Page 12 Table of contents 8.7.1 Percentage jerk correction (JERKLIM) ..................563 8.7.2 Percentage velocity correction (VELOLIM)................564 8.7.3 Program example for JERKLIM and VELOLIM................. 565 Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) ........566 Axis couplings............................571 Coupled motion (TRAILON, TRAILOF)..................571 Curve tables (CTAB) .........................
  • Page 13 Table of contents 10.4 Actions in synchronized actions....................663 10.4.1 Overview of possible actions in synchronized actions...............663 10.4.2 Output of auxiliary functions.......................666 10.4.3 Set read-in disable (RDISABLE)....................667 10.4.4 Cancel preprocessing stop (STOPREOF) .................668 10.4.5 Delete distance-to-go (DELDTG)....................669 10.4.6 Polynomial definition (FCTDEF) ....................671 10.4.7 Synchronized function (SYNFCT)....................674 10.4.8...
  • Page 14 Table of contents 12.2.1 Path segmentation for path axes ....................757 12.2.2 Path segmentation for single axes.................... 759 Grinding ..............................761 13.1 Grinding-specific tool monitoring in the part program (TMON, TMOF)........761 Additional functions..........................765 14.1 Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL)....765 14.2 Replaceable geometry axes (GEOAX) ..................
  • Page 15: 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 16: Flexible Nc Programming

    Flexible NC programming 1.1 Variables User variables are subdivided into: – Predefined user variables Predefined user variables are variables which have already been defined in the system and whose number simply has to be parameterized by the user via specific machine data.
  • Page 17 Flexible NC programming 1.1 Variables Main run variables Main run variables are system variables which are read and written in the context of the main run; in other words at the point in time at which the part program block in which the system variable is programmed is executed.
  • Page 18 Flexible NC programming 1.1 Variables 2nd letter Significance: Visibility NCK-global variable (NCK) Channel-specific variable (Channel) Axis-specific variable (Axis) General conditions Exceptions to the rules of the prefix system The following system variables deviate from the rules of the prefix system described above: ●...
  • Page 19: Predefined User Variables: Arithmetic Parameters (R)

    Flexible NC programming 1.1 Variables Note Writing machine data When writing an item of machine or setting data, it is important to ensure that the access level which is active when the part program/cycle is executed permits write access and that the data is set to take "IMMEDIATE"...
  • Page 20 Flexible NC programming 1.1 Variables Significance Identifier when used as a preprocessing variable, e.g. in the part program Identifier when used as a main run variable, e.g. in synchronized actions Type: REAL Range of values: For a non-exponential notation: ± (0.000 0001 to 9999 9999) Note: A maximum of 8 decimal places are permitted.
  • Page 21: Predefined User Variables: Link Variables

    Flexible NC programming 1.1 Variables Example Assignments to R-parameters and use of R-parameters in mathematical functions: Program code Comment R0=3.5678 Assignment in preprocessing R[1]=-37.3 Assignment in preprocessing R3=-7 Assignment in preprocessing $R4=-0.1EX-5 Assignment in main run: R4 = -0.1 * 10^-5 $R[6]=1.874EX8 Assignment in main run: R6 = 1.874 * 10^8 R7=SIN(25.3)
  • Page 22 Flexible NC programming 1.1 Variables Syntax $A_DLB[<index>] $A_DLW[<index>] $A_DLD[<index>] $A_DLR[<index>] Significance Link variable for BYTE data format (1 byte) $A_DLB: Data type: UINT Range of values: 0 to 255 Link variable for WORD data format (2 bytes) $A_DLW: Data type: Range of values: -32768 to 32767 Link variable for DWORD data format (4 bytes) $A_DLD:...
  • Page 23 Flexible NC programming 1.1 Variables Example An automation system contains 2 NCUs (NCU1 and NCU2). Machine axis AX2 is connected to NCU1. It is traversed as a link axis of NCU2. NCU1 writes the actual current value ($VA_CURR) of axis AX2 cyclically to the link variables memory.
  • Page 24: Definition Of User Variables (Def)

    Flexible NC programming 1.1 Variables 1.1.5 Definition of user variables (DEF) Function The DEF command is used to define user-specific variables and assign values to them. To set them apart from system variables, these are called user-defined variables or user variables (user data).
  • Page 25 Flexible NC programming 1.1 Variables Syntax DEF <range> <type> <PP_stop> <init_time> <phys_unit> <limit_values> <access_rights> <name>[<value_1>,<value_2>,<value_3>]=<init_value> Significance Command for defining GUD, PUD, LUD user variables DEF: Range of validity, only relevant for GUD: <range>: NC-global user variable NCK: Channel-global user variable CHAN: Data type: <type>:...
  • Page 26 Flexible NC programming 1.1 Variables Physical unit (optional) <phys_unit>: PHU <unit>: See "Attribute: Physical unit (PHU) (Page 39)" Lower and upper limit value (optional) <limit values>: LLI <limit value>: Lower limit value (lower limit) ULI <limit value>: Upper limit value (upper limit) See "Attribute: Limit values (LLI, ULI) (Page 38)"...
  • Page 27 ; 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 28 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 LUD DEFINITION IF (VAR1==1) Read PUD VAR1=VAR1+1...
  • Page 29 Flexible NC programming 1.1 Variables Program code Comment OVRA[SPINDLE]=80 Spindle override = 80% SPINDLE=(S3) 3rd spindle 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...
  • Page 30 Flexible NC programming 1.1 Variables Program-global user variables (PUD) NOTICE Visibility of program-local user variables (PUD) Program-local user variables (PUD) defined in the main program will only be visible in subprograms if the following machine data is set: MD11120 $MN_LUD_EXTENDED_SCOPE = 1 If MD11120 = 0 the program-local user variables defined in the main program will only be visible in the main program.
  • Page 31: Redefinition Of System Variables, User Variables, And Nc Language Commands (Redef)

    Flexible NC programming 1.1 Variables 1.1.6 Redefinition of system variables, user variables, and NC language commands (REDEF) Function The REDEF command can be used to change system variable, user variable and NC language command attributes. A fundamental condition of redefinition is that it has to post- date the corresponding definition.
  • Page 32 Flexible NC programming 1.1 Variables Preprocessing stop <PP stop>: Preprocessing stop while reading SYNR: Preprocessing stop while writing SYNW: Preprocessing stop while reading/writing SYNRW: Physical unit <phys_unit>: PHU <unit>: See "Attribute: Physical unit (PHU) (Page 39)" Note Cannot be redefined for: •...
  • Page 33 Flexible NC programming 1.1 Variables Point in time at which the variable is reinitialized <init_time>: 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 Definition of user variables (DEF) (Page 24) 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 Number Identifier G command OSP1 43700 $SA_OSCILL_REVERSE_POS1 OSP2 43710 $SA_OSCILL_REVERSE_POS2 OST1 43720 $SA_OSCILL_DWELL_TIME1 OST2 43730 $SA_OSCILL_DWELL_TIME2 43740 $SA_OSCILL_VELO 43750 $SA_OSCILL_NUM_SPARK_CYCLES OSNSC 43760 $SA_OSCILL_END_POS OSCTRL 43770 $SA_OSCILL_CTRL_MASK 43780 $SA_OSCILL_IS_ACTIVE 43790 $SA_OSCILL_START_POS 1) This G command is used to address the setting data. General conditions Initialization value: Global user variables (GUD) ●...
  • Page 37 Flexible NC programming 1.1 Variables Initialization value: CHAR data type For variables of the CHAR data type, instead of the ASCII code (0 to 255), the corresponding ASCII character can be programmed in quotation marks, e.g. "A". Initialization value: STRING data type In the case of variables of the STRING data type, the character string must be enclosed in quotation marks, e.g.
  • Page 38: Attribute: Limit Values (Lli, Uli)

    Flexible NC programming 1.1 Variables 1.1.8 Attribute: Limit values (LLI, ULI) An upper and a lower limit of the definition range can only be defined for the following data types: ● INT ● REAL ● CHAR Definition (DEF) of user variables: Limit values and implicit initialization values If no explicit initialization value is defined when defining a user variable of one of the above data types, the variable is set to the data type's implicit initialization value.
  • Page 39: Attribute: Physical Unit (Phu)

    Flexible NC programming 1.1 Variables Redefinition (REDEF) of user variables: Limit values and current actual values If, when the limit values of a user variable are redefined, they change to the extent that the current actual value is outside the new definition range, an alarm will be issued and the limit values will be rejected.
  • Page 40 Flexible NC programming 1.1 Variables <unit> Significance Physical unit Revolutional feedrate [ mm/rev ], [ inch/rev ] Temperature compensation [ mm ], [ inch ] 1) 2) Force [ N ] Mass [ kg ] Moment of inertia [ kgm Percent [ % ] Frequency...
  • Page 41: Attribute: Access Rights (Apr, Apw, Aprp, Apwp, Aprb, Apwb)

    Flexible NC programming 1.1 Variables Note Level overflow due to format conversion The internal storage format for all user variables (GUD/PUD/LUD) with physical units of length is metric. Excessive use of these types of variable in the NCK's main run, e.g in synchronized actions, can lead to a CPU time overflow at interpolation level when the measuring system is switched over, generating alarm 4240.
  • Page 42: Protection Zones

    Flexible NC programming 1.1 Variables Definition (DEF) of user variables Access rights (APR.../APW...) can be defined for the following variables: ● Global user data (GUD) Redefinition (REDEF) of system and user variables Access rights (APR.../APW...) can be redefined for the following variables: ●...
  • 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 Note Restrictions affecting APR The following restrictions need to be borne in mind when using APR: • A restriction on the access rights for reading system and user variables in part programs/cycles with APR 0 to 7 has no effect. •...
  • Page 46 Flexible NC programming 1.1 Variables ● For access to protected elements from cycles, the execution and write rights for cycle directories _N_CST_DIR, _N_CMA_DIR, and _N_CST_DIR have to be modified. Execution rights – MD11160 $MN_ACCESS_EXEC_CST – MD11161 $MN_ACCESS_EXEC_CMA – MD11162 $MN_ACCESS_EXEC_CUS Write rights –...
  • Page 47: 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 REDEF Machine data Setting data...
  • Page 48: 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 <data type> <variable name>[<n>] ●...
  • Page 49 Flexible NC programming 1.1 Variables Syntax (DEF) DEF <data type> <variable name>[<n>,<m>,<o>] STRING[<string length>] <variable name>[<n>,<m>] Syntax (DEF...=SET...) Using a value list: ● During definition: DEF <data type> <variable name>[<n>,<m>,<o>]=SET(<value1>,<value2>, etc.) Equivalent to: DEF <data type> <variable name>[<n>,<m>,<o>]=(<value1>,<value2>, etc.) Note SET does not have to be specified for initialization via a value list.
  • Page 50 Flexible NC programming 1.1 Variables Significance Command to define variables DEF: Data type of variables <data type>: Range of values: • for system variables: BOOL, CHAR, INT, REAL, STRING, AXIS • for GUD or LUD variables: BOOL, CHAR, INT, REAL, STRING, AXIS, FRAME Maximum number of characters for a STRING data <string length>:...
  • Page 51 Flexible NC programming 1.1 Variables Value, which the array elements should be written <value>: when initializing with REP. Number of array elements to be written with the <number_array_elements>: specified <value>. The following apply to the remaining array elements, dependent on the point in time: •...
  • Page 52 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) FELD[0,0,0] = 1 1st array element...
  • Page 53 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) Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 54 Flexible NC programming 1.1 Variables 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 55 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 56 Flexible NC programming 1.1 Variables Further information (general) Value assignments to axial machine data In principle axial machine data have an array index of the AXIS data type. In the case of value assignments to an axial item of machine data using SET or REP, this array index is ignored or not processed.
  • Page 57: Data Types

    Flexible NC programming 1.1 Variables 1.1.13 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) ±(∼2.2*10 … ∼1.8*10 -308 +308 BOOL Truth value TRUE (1) and FALSE (0) 1, 0...
  • Page 58: Indirect Programming

    Flexible NC programming 1.2 Indirect programming Indirect programming 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: • N (block number) •...
  • Page 59 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 60 Flexible NC programming 1.2 Indirect programming Example 4: Indirectly programming an axis Direct programming: Program code X1=100 X2=200 Indirect programming: Program code Comments DEF AXIS AXVAR1 AXVAR2 ; Defining two type AXIS variables. AXVAR1=(X1) AXVAR2=(X2) ; Assigning the axis names. AX[AXVAR1]=100 AX[AXVAR2]=200 ;...
  • Page 61 Flexible NC programming 1.2 Indirect programming Example 6: Indirectly programming array elements Direct programming: Program code Comments DEF INT ARRAY1[4,5] ; Defining array 1 Indirect programming: Program code Comments DEFINE DIM1 AS 4 ; For array dimensions, array sizes must be specified as fixed values.
  • Page 62: Indirectly Programming G Codes

    Flexible NC programming 1.2 Indirect programming 1.2.1 Indirectly programming G codes Function Indirect programming of G codes permits cycles to be effectively programmed. Syntax G[<group>]=<number> Significance G command with extension (index) G[...]: Index parameter: G function group <group>: Type: Note: Only modal G function groups can be indirectly programmed.
  • Page 63: Programming Manual

    Flexible NC programming 1.2 Indirect programming Example 2: Level selection (G function group 6) Program code Comments 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 64 Flexible NC programming 1.2 Indirect programming Significance The following positioning commands can be <POSITIONING COMMAND>[]: programmed together with the key word BP: POS, POSA,SPOS, SPOSA Also possible: • All axis and spindle identifiers present in the channel: <axis/spindle> • Variable axis/spindle identifier AX Axis/spindle that is to be positioned <axis/spindle>: Key word for positioning...
  • Page 65 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 66: Indirectly Programming Part Program Lines (Execstring)

    Flexible NC programming 1.2 Indirect programming 1.2.3 Indirectly programming part program lines (EXECSTRING) Function Part program command EXECSTRING passes a string as a parameter that already contains the part program line to run. Syntax EXECSTRING (<string_variable>) Parameters Transfer of a string variable with the part program line to EXECSTRING: Parameters with the part program line actually to be <string variable>:...
  • Page 67: 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 Significance Addition Subtraction Multiplication Division Notice: (type INT)/(type INT)=(type REAL);...
  • Page 68 Flexible NC programming 1.3 Arithmetic functions MINVAL () Lower value of two variables (see "Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) (Page 75)") MAXVAL () Larger value of two variables (see "Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) (Page 75)") BOUND () Variable value within the defined value range (see "Variable minimum, maximum and range (MINVAL,...
  • Page 69 Flexible NC programming 1.3 Arithmetic functions Example 2: Initializing complete variable arrays Program code Comments 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 70: 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 71 Flexible NC programming 1.4 Comparison and logic operations Logic operator Significance Negation Exclusive OR 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 72 Flexible NC programming 1.4 Comparison and logic operations Examples Example 1: Relational operators IF R10>=100 GOTOF DEST R11=R10>=100 IF R11 GOTOF DEST The result of the R10>=100 comparison is first buffered in R11. Example 2: Logic operators IF (R10<50) AND ($AA_IM[X]>=17.5) GOTOF DESTINATION IF NOT R10 GOTOB START NOT only refers to one operand.
  • Page 73: 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 74 Flexible NC programming 1.5 Precision correction on comparison errors (TRUNC) Compatibility For compatibility reasons, the check for relative quality for (>) and (<) can be deactivated by setting machine data MD10280 $MN_ PROG_FUNCTION_MASK Bit0 = 1. Note Comparisons with data of type REAL are subject to a certain imprecision for the above reasons.
  • Page 75: 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 76 Flexible NC programming 1.6 Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) Result variable for the BOUND command <return value>: If the value of the test variable is within the defined range of values, the result variable is set to the value of the test variable. If the value of the test variable is greater than the maximum value, the result variable is set to the maximum value of the definition range.
  • Page 77: 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 78: 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 79: 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) ● Type conversion from STRING (NUMBER, ISNUMBER, AXNAME) ● Concatenation of strings (<<) ●...
  • Page 80: 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 83)").
  • Page 81: Type Conversion From String (Number, Isnumber, Axname)

    Flexible NC programming 1.9 String operations Examples Example 1: MSG("Position:"<<$AA_IM[X]) Example 2: AXSTRING Program code Comments DEF STRING[32] STRING_ERG STRING_ERG=AXSTRING(X) ; STRING_ERG == "X" 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.
  • Page 82 Flexible NC programming 1.9 String operations Variable for the result of the interrogation with ISNUMBER <BOOL_ERG>: Type: BOOL Value: TRUE ISNUMBER supplies the value TRUE, if the <string> represents a valid REAL number in compliance with the language rules. FALSE If ISNUMBER supplies the value FALSE, when calling NUMBER with the same <string>, an alarm is initiated.
  • Page 83: Concatenation Of Strings (<<)

    Flexible NC programming 1.9 String operations 1.9.3 Concatenation of strings (<<) Function The function "concatenation strings" allows a string to be configured from individual components. The concatenation is realized using the operator "<<". This operator has STRING as the target type for all combinations of basic types CHAR, BOOL, INT, REAL, and STRING. Any conversion that may be required is carried out according to existing rules.
  • Page 84 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:"<<IDX GOTOF NO_MSG MSG("Index:"<<IDX<<"/value:"<<VALUE) ; Display: "Index:2/value:9.654" NO_MSG: Example 2: Explicit type conversion with << Program code Comments DEF REAL VALUE=3.5...
  • Page 85: Conversion To Lower/Upper Case Letters (Tolower, Toupper)

    Flexible NC programming 1.9 String operations 1.9.4 Conversion to lower/upper case letters (TOLOWER, TOUPPER) Function The "conversion to lower/upper case letters" function allows all of the letters of a string to be converted into a standard representation. Syntax <STRING_ERG>=TOUPPER("<string>") <STRING_ERG>=TOLOWER("<string>") Significance Using the TOUPPER command, all of the letters in a character string TOUPPER:...
  • Page 86: Determine Length Of String (Strlen)

    Flexible NC programming 1.9 String operations 1.9.5 Determine length of string (STRLEN) Function The STRLEN command can be used to determine the length of a character string. Syntax <INT_ERG>=STRLEN("<STRING>") Significance The STRLEN command determines the length of the specified character STRLEN: string.
  • Page 87: 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 88 Flexible NC programming 1.9 String operations Example Breaking up an input into path and block names Program code Comments DEF INT PFADIDX, PROGIDX DEF STRING[26] INPUT DEF INT LISTIDX INPUT = "/_N_MPF_DIR/_N_EXECUTE_MPF" LISTIDX = MINDEX (INPUT, "M,N,O,P") + 1 ; The value returned in LISTIDX is 3; because "N"...
  • Page 89: Selection Of A Substring (Substr)

    Flexible NC programming 1.9 String operations 1.9.7 Selection of a substring (SUBSTR) Function This functionality extracts a substring from a string. For this purpose, the index of the first character and the desired string length (if applicable) are specified. If no length information is specified, then the string data refers to the remaining string.
  • Page 90: 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 91 Flexible NC programming 1.9 String operations Examples Example 1: Single character access to system data, machine data, etc. Program code Comments DEF STRING [50] STRG DEF CHAR ACK … STRG = $P_MMCA ACK = STRG [0] Evaluating the acknowledgement components Example 2: Single character access with call-by-reference parameter Program code Comments...
  • Page 92: Program Jumps And Branches

    Flexible NC programming 1.10 Program jumps and branches 1.10 Program jumps and branches 1.10 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 93: Program Jumps To Jump Markers (Gotob, Gotof, Goto, Gotoc)

    Flexible NC programming 1.10 Program jumps and branches Supplementary conditions ● GOTOS internally initiates a STOPRE (pre-processing stop). ● For a subprogram with data definitions (LUD variables) with the GOTOS a jump is made to the first program block after the definition section, i.e. data definitions are not executed again.
  • Page 94 Flexible NC programming 1.10 Program jumps and branches Syntax GOTOB <jump destination> IF <jump condition> = TRUE GOTOB <jump destination> GOTOF <jump destination> IF <jump condition> = TRUE GOTOF <jump destination> GOTO <jump destination> IF <jump condition> = TRUE GOTO <jump destination> GOTOC <jump destination>...
  • Page 95 Flexible NC programming 1.10 Program jumps and branches Note Jump markers (labels) Jump markers (labels) are always located at the beginning of a block. If a program number exists, the jump marker is located immediately after the block number. The following rules apply when naming jump markers: •...
  • Page 96 Flexible NC programming 1.10 Program jumps and branches Example 2: Indirect jump to the block number Program code Comments N5 R10=100 N10 GOTOF "N"<<R10 ; Jump to the block whose block number is located in R10. N90 ... N100 ... ;...
  • Page 97: Program Branch (Case

    Flexible NC programming 1.10 Program jumps and branches 1.10.3 Program branch (CASE ... OF ... DEFAULT ...) Function The CASE function provides the possibility of checking the actual value (type: INT) of a variable or an arithmetic function and, depending on the result, to jump to different positions in the program.
  • Page 98 Flexible NC programming 1.10 Program jumps and branches <jump A branch is made to this jump destination if the value of the destination_1>: variable or arithmetic function corresponds to the first specific constant. The jump destination can be specified as follows: <jump marker>: Jump destination is the jump marker (label) set in the program with a user-defined name:...
  • 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) 1.11 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).
  • Page 100 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) 3. Repeat section between two jump markers: <start jump marker>: ... <end jump marker>: ... REPEAT <start jump marker> <end jump marker> P=<n> Note It is not possible to nest the REPEAT statement with the two jump markers in parentheses. If the <start jump marker>...
  • 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 <jump marker> identifies: <jump marker>: • 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 3: Repeat section between two jump markers Program code Comments N5 R10=15 N10 Begin: R10=R10+1 ; Width N20 Z=10-R10 N30 G1 X=R10 F200 N40 Y=R10 N50 X=-R10 N60 Y=-R10 N70 END: Z=10 N80 Z10 N90 CYCLE(10,20,30)
  • Page 104 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Example 5: Milling, machine drill position with different technologies Program code Comments N10 CENTER DRILL() ; Load centering drill. N20 POS_1: ; Drilling positions 1 N30 X1 Y1 N40 X2 N50 Y2 N60 X3 Y3 N70 ENDLABEL:...
  • Page 105 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 106 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 107: Check Structures

    Flexible NC programming 1.12 Check structures 1.12 Check structures 1.12 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 108 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 109: Program Loop With Alternative (If, Else, Endif)

    Flexible NC programming 1.12 Check structures 1.12.1 Program loop with alternative (IF, ELSE, ENDIF) Function A construction with IF and ELSE is used if the program loop should contain an alternative program block: If the IF condition is fulfilled, then the program block following the IF is executed.
  • Page 110 Flexible NC programming 1.12 Check structures Example Tool change subprogram Program code Comments PROC L6 ; Tool change routine N500 DEF INT TNR_AKTUELL ; Variable for active T number N510 DEF INT TNR_VORWAHL ; Variable for pre-selected T number ; Determine current tool N520 STOPRE N530 IF $P_ISTEST ;...
  • Page 111: 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 112: 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 <variable> = <initial value> TO <end value> ENDFOR Significance Initiates the count loop.
  • Page 113 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 114: 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 <condition>...
  • Page 115: 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 <significance>...
  • Page 116: 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 117: 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, 1.13 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 118 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Example: Up to SW 3: INIT(2,"/_N_WKS_DIR/_DRESS_MPF") At least one executable block must be programmed between an init command G01F0.1 (without synchronization) and an NC start. START With subprogram calls "_SPF" must be added to the path.
  • Page 119 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) WAITMC (marker No., n, n, Sets the marker "marker no." in the same channel. An exact stop is initiated only if the other channels have not yet reached the marker.
  • Page 120 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Channel numbers Up to 10 channels can be specified as channel numbers (integer value) for the channels requiring coordination. Channel names Channel names must be converted into numbers using variables (see "Variables and arithmetic parameters").
  • Page 121 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 122 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 123 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Example: Channel name and channel number with integer variable $MC_CHAN_NAME[0]= "CHAN_X" ;name of 1st channel $MC_CHAN_NAME[1]= "CHAN_Y" ;name of 2nd channel Program code Comments START(1, 2) ; Execute start in the 1st and 2nd channels Similar to this, programming with the channel identifiers: Program code Comments...
  • Page 124: Interrupt Routine (Asub)

    Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14 Interrupt routine (ASUB) 1.14 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 125: Creating An Interrupt Routine

    Flexible NC programming 1.14 Interrupt routine (ASUB) When the interrupt routine has finished being executed and the machine is ready to continue operation, the control jumps back to the main program and continues machining at the point of interruption – depending on the REPOS command (see "Repositioning at contour (Page 553) ").
  • Page 126: Assign And Start Interrupt Routine (Setint, Prio, Blsync)

    Flexible NC programming 1.14 Interrupt routine (ASUB) Example: Program code PROC LIFT_Z SAVE N10 ... N50 M17 Assign additional interrupt routines (SETINT) SETINT instructions can be programmed within the interrupt routine (see "Assign and start interrupt routine (SETINT)" (Page 126)) therefore activating additional interrupt routines. They are triggered via the input.
  • Page 127 Flexible NC programming 1.14 Interrupt routine (ASUB) Syntax SETINT(<n>) PRIO=<value> <NAME> SETINT(<n>) PRIO=<value> <NAME> BLSYNC SETINT(<n>) PRIO=<value> <NAME> LIFTFAST Significance Command: Assign input <n> to an interrupt routine. The assigned SETINT(<n>): interrupt routine starts when input <n> switches. Note: If an input that is already assigned is allocated to a new routine, then the old assignment is automatically cancelled.
  • Page 128 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 129: 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(<n>) ENABLE(<n>) Significance Command: Deactivating the interrupt routine assignment of input <n>...
  • Page 130: 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(<n>) Significance Command: Deleting the interrupt assignment of input <n> CLRINT(<n>): Parameter: Input number <n>: Type:...
  • Page 131: 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 132 Flexible NC programming 1.14 Interrupt routine (ASUB) Significance Command: Assign input <n> to an interrupt routine. The assigned SETINT(<n>): interrupt routine starts when input <n> switches. <n>: Parameter: Input number Type: Range of values: 1 ... 8 PRIO= : Defining the priority Priority value <value>: Range of values:...
  • Page 133 Flexible NC programming 1.14 Interrupt routine (ASUB) Example A broken tool should be automatically replaced by a daughter tool. Machining is then continued with the new tool. Main program: Main program Comments N10 SETINT(1) PRIO=1 W_WECHS LIFTFAST ; When input 1 is switched, the tool is immediately retracted from the contour with rapid lift (code No.
  • Page 134: Traversing Direction For Fast Retraction From The Contour

    Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.7 Traversing direction for fast retraction from the contour Retraction movement The following G code defines the retraction movement plane: ● LFTXT The retraction movement plane is defined by the path tangent and the tool direction (default setting).
  • Page 135 Flexible NC programming 1.14 Interrupt routine (ASUB) 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 136 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 137: 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 138: 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) 1.15 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 139 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Significance RELEASE (axis name, axis name, Release the axis (axes) etc.): Accept the axis (axes) GET (axis name, axis name, etc.): Directly accept the axis (axes) GETD (axis name, axis name, etc.): Axis assignment in system: AX1, AX2, ...
  • Page 140 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Examples Example 1: Axis exchange between two channels Of the 6 axes, the following are used for machining in channel 1: 1st, 2nd, 3rd and 4th axis. The 5th and 6th axes in channel 2 are used for the workpiece change. Axis 2 should be exchanged between two channels and after POWER ON can be assigned to channel 1.
  • Page 141 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 142 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Requirements Preconditions for axis replacement ● The axis must be defined in all channels that use the axis in the machine data. ● It is necessary to define to which channel the axis will be assigned after POWER ON in the axis-specific machine data.
  • Page 143 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Automatic "GET" If an axis is in principle available in a channel but is not currently defined as a "channel axis", GET is executed automatically. If the axis/axes is/are already synchronized no preprocess stop is generated.
  • Page 144: 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) 1.16 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 145 Flexible NC programming 1.16 Transfer axis to another channel (AXTOCHAN) Example AXTOCHAN in the NC program Axes X and Y have been declared in the first and second channels. Currently, channel 1 has the interpolation right and the following program is started in that channel. Program code Comments N110 AXTOCHAN(Y,2)
  • Page 146: Activate Machine Data (Newconf)

    Flexible NC programming 1.17 Activate machine data (NEWCONF) 1.17 Activate machine data (NEWCONF) 1.17 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 147: Write File (Write)

    If no such file exists in the NC, one will be created and can be written to using the WRITE command. The storage location is the static NC memory. In the case of SINUMERIK 840D sl this is the CompactFlash Card. Unlike SINUMERIK 840D this increases the runtime of the WRITE command by approx.
  • Page 148 Flexible NC programming 1.18 Write file (WRITE) Significance Command for appending a block or data to the end of the specified WRITE: file. Variable for returning the error value. <error>: Type. Value: No error Path not allowed Path not found File not found Incorrect file type File is full...
  • Page 149 Flexible NC programming 1.18 Write file (WRITE) The name of the file in which the specified block or specified data is to <file name>: be added. 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 150 Flexible NC programming 1.18 Write file (WRITE) General conditions ● Maximum file size (→ machine manufacturer) The maximum possible file size of log files is set with the machine data: MD11420 $MN_LEN_PROTOCOL_FILE The maximum file length is applicable for all files created using the WRITE command. If it is exceeded an error message is output and the block or data is not saved.
  • Page 151: Delete File (Delete)

    Flexible NC programming 1.19 Delete file (DELETE) 1.19 Delete file (DELETE) 1.19 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 152 Flexible NC programming 1.19 Delete file (DELETE) Name of the file to be deleted <file name>: 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 153: 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) 1.20 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.
  • Page 154 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) <error>: Type. Value: No error Path not allowed Path not found File not found...
  • Page 155 Flexible NC programming 1.20 Read lines in the file (READ) Name of the file to be read (call-by-value parameter) <file name>: 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 156 Flexible NC programming 1.20 Read lines in the file (READ) Start line of the section of the file to be read (call-by-value <start line>: parameter) Type: Value: Reads the number of lines specified with the <number of lines> parameter before the end of the file.
  • Page 157: 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) 1.21 Function The ISFILE command can be used to check whether a file exists in the NCK's static user memory (passive file system). Syntax <result>=ISFILE("<file name>") Significance...
  • Page 158 Flexible NC programming 1.21 Check for presence of file (ISFILE) Result variable to which the result of the check is assigned. <result>: Type. BOOL Value: TRUE File exists FALSE File does not exist Example Program code Comment N10 DEF BOOL RESULT ;...
  • Page 159: 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, 1.22 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 160 Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) Variable for returning the error value (call-by-reference parameter) <error>: Type. Value: No error Path not allowed Path not found File not found Incorrect file type Insufficient access rights String length of the result variable (<result>) is too small.
  • Page 161 Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) Result variable (call-by-reference parameter) <result>: 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 162: 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) 1.23 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 163 Flexible NC programming 1.23 Checksum calculation using an array (CHECKSUM) Name of the array to be used to generate the checksum (call-by- <array>: 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 164: Roundup (Roundup)

    Flexible NC programming 1.24 Roundup (ROUNDUP) 1.24 Roundup (ROUNDUP) 1.24 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(<value>) Significance Command to roundup an input value ROUNDUP: Input value, type REAL <value>:...
  • Page 165: Subprogram Technique

    Flexible NC programming 1.25 Subprogram technique 1.25 Subprogram technique 1.25 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 166: 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 167: 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 168 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: ● Part program processing: program level 12 ●...
  • Page 169: Search Path

    Flexible NC programming 1.25 Subprogram technique 1.25.1.4 Search path When a subprogram is called without a path being specified, the control will search the following directories in the sequence indicated: Sequence Directory Description Current directory Directory containing the calling program /_N_SPF_DIR / Global subprogram directory /_N_CUS_DIR /...
  • Page 170: Parameter Transfer

    Flexible NC programming 1.25 Subprogram technique Actual parameters When a subprogram is called, absolute values or variables (known as actual parameters) have to be transferred to it. As such, the actual parameters assign up-to-date values to the interface of the subprogram when the latter is called.
  • Page 171 Flexible NC programming 1.25 Subprogram technique Main program: Program code Comment PROC MAIN_PROG N30 SUB_PROG(1.0,2.0,3.0) ; Subprogram call with complete parameter transfer: X=1.0, Y=2.0, Z=3.0 … N100 M30 Examples for the subprogram call in N30 with incomplete parameter transfer: N30 SUB_PROG( ,2.0,3.0) ;...
  • Page 172 Flexible NC programming 1.25 Subprogram technique 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. The index n refers to the sequence of the formal parameters.
  • Page 173: 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 <program name>] Significance Definition operation at the beginning of a program PROC: Name of the program...
  • Page 174: 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 175 Flexible NC programming 1.25 Subprogram technique Syntax PROC <program name> (<parameter type> <parameter name>, etc.) Significance Definition operation at the beginning of a program PROC: Name of the program <program name>: Data type of the parameter (e.g. REAL, INT, BOOL) <parameter type>: Name of the parameter <parameter name>:...
  • Page 176: Subprogram With Call-By-Reference Parameter Transfer (Proc, Var)

    Flexible NC programming 1.25 Subprogram technique 1.25.2.3 Subprogram with call-by-reference parameter transfer (PROC, VAR) Function A subprogram with call-by-reference 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 the VAR keyword, type and name.
  • Page 177 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 <program name>...
  • Page 178: Save Modal G Functions (Save)

    Flexible NC programming 1.25 Subprogram technique Note With arrays of an undefined array length, subprograms can process arrays of variable length as formal parameter. When defining a two-dimensional array as a formal parameter, for example, the length of the 1st dimension is not specified. However, the comma must be written.
  • Page 179 Flexible NC programming 1.25 Subprogram technique Significance Saves the modal G functions before the subprogram call and restores after the SAVE: end of the subprogram. Example The modal G function G91 is effective in the CONTOUR subprogram (incremental dimension). The modal G function G90 is effective in the main program (absolute dimension). G90 is again effective in the main program after the end of the subprogram due to the subprogram definition with SAVE.
  • Page 180: Suppress Single Block Execution (Sblof, Sblon)

    Flexible NC programming 1.25 Subprogram technique 1.25.2.5 Suppress single block execution (SBLOF, SBLON) Function Single block suppression for the complete program Programs designated with SBLOF are completely executed just like a block when single block execution is active, i.e. single block execution is suppressed for the complete program. SBLOF is in the PROC line and is valid up to the end of the subprogram or until it is interrupted.
  • Page 181 Flexible NC programming 1.25 Subprogram technique Restrictions ● Single block suppression and block display The current block display can be suppressed in cycles/subprograms using DISPLOF. IfDISPLOF is programmed together withSBLOF, then the cycle/subprogram call continues to be displayed on single-block stops within the cycle/subprogram. ●...
  • Page 182 Flexible NC programming 1.25 Subprogram technique Example 2: A cycle is to act like a command for a user Main program: Program code N10 G1 X10 G90 F200 N20 X-4 Y6 N30 CYCLE1 N40 G1 X0 N50 M30 Cycle CYCLE1: Program code Comments N100 PROC CYCLE1 DISPLOF SBLOF...
  • Page 183 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 184 Flexible NC programming 1.25 Subprogram technique Example 4: Is not stopped with MD10702 Bit 12 = 1 Initial situation: ● Single block execution is active. ● MD10702 $MN_IGNORE_SINGLEBLOCK_MASK Bit12 = 1 Main program: Program code Comments N10 G0 X0 ; Stop in this part program line. N20 X10 ;...
  • Page 185 Flexible NC programming 1.25 Subprogram technique 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 186 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 187: 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 188 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 189 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 190 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 191 Flexible NC programming 1.25 Subprogram technique Example 4: Display response in the case of different DISPLON/DISPLOF combinations ① The part program lines from program level 0 are displayed in the current block display. ② The part program lines from program level 3 are displayed in the current block display. ③...
  • Page 192: 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 193: 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 194: Ret Subprogram Return

    Flexible NC programming 1.25 Subprogram technique 2. Subprogram with M17 in the last traversing block Program code Comment N10 G64 F2000 G91 X10 Y10 N20 X10 Z10 M17 ; Return jump without interruption of continuous- path mode. 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.
  • Page 195: Parameterizable Subprogram Return Jump (Ret

    Flexible NC programming 1.25 Subprogram technique Example Main program: Program code Comment PROC MAIN_PROGRAM ; Beginning of the program N50 SUB_PROG ; Subprogram call: SUB_PROG N60 ... N100 M30 ; End of program Subprogram: Program code Comment PROC SUB_PROG N100 RET ;...
  • Page 196 Flexible NC programming 1.25 Subprogram technique Syntax RET("<destination block>") RET("<destination block>",<block after destination block>) RET("<destination block>",<block after destination block> <number of return jump levels>) RET("<destination block>", ,<number of return jump levels>) RET("<destination block>",<block after destination block>,<number of return jump levels>, <return jump to the beginning of the program>) RET( , ,<number of return jump levels>,<return jump to the beginning of the program>)
  • Page 197 Flexible NC programming 1.25 Subprogram technique <block after Return jump parameter 2 destination block>: Refers to the return jump parameter 1. Type: Value: Return jump is made to the block that was specified using return jump parameter 1. > 0 Return jump is made to the block that follows the block specified with return jump parameter.
  • Page 198 Flexible NC programming 1.25 Subprogram technique Note For a subprogram return jump with a character string to specify the destination block search, initially, a search is always made for a jump marker in the calling program. If a jump destination is to be uniquely defined using a character string, it is not permissible that the character string matches the name of a jump marker, as otherwise the subprogram return jump would always be made to the jump marker and not to the character string (refer to example 2).
  • Page 199 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 200 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 201 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 202 Flexible NC programming 1.25 Subprogram technique 2nd return jump parameter 1 = "N200", return jump parameter 2 = 1 After the RET command, program execution is continued with the block (N210) that follows block N200 in the main program. 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.
  • Page 203: 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 204 Flexible NC programming 1.25 Subprogram technique Significance Address for the subprogram call Name of the subprogram <number>: Type: Value: Maximum 7 decimal places Notice: Leading zeros are significant in names (⇒ L123, L0123 and L00123 are three different subprograms). Name of the subprogram (or main program) <program name>: Examples Example 1: Subprogram call without parameter transfer...
  • Page 205: Subprogram Call With Parameter Transfer (Extern)

    Flexible NC programming 1.25 Subprogram technique Example 2: Calling a main program as a subprogram 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 206 Flexible NC programming 1.25 Subprogram technique Syntax EXTERNAL <program name>(<type_Par1>,<type_Par2>,<type_Par3>) <program name>(<value_Par1>,<value_Par2>,<value_Par3>) CAUTION The subprogram call must always be programmed in a separate NC block. Significance Name of subprogram <program name>: Keyword to declare a subprogram EXTERN: with parameter transfer. Note: You only have to specifyEXTERNALif the subprogram is in the workpiece...
  • Page 207 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, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 208: 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 209 Flexible NC programming 1.25 Subprogram technique Syntax <program name> P<value> Significance Subroutine call <program name>: Address to program program repetitions Number of program repetitions <value>: 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 210: 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 211 Flexible NC programming 1.25 Subprogram technique Examples Example 1: Program code Comment N10 G0 X0 Y0 N20 MCALL L70 ; Modal subroutine call. N30 X10 Y10 ; The programmed position is approached and then subprogram L70 is executed. N40 X50 Y50 ;...
  • Page 212: 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 213 Flexible NC programming 1.25 Subprogram technique Example Direct call with STRING constant: Program code Comment … CALL "/_N_WKS_DIR/_N_SUBPROG_WPD/_N_PART1_SPF" ; Direct call to subprogram PART1 with CALL. … Indirect call via variable: Program code Comment … DEF STRING[100] PROGNAME ; Define variable. PROGNAME="/_N_WKS_DIR/_N_SUBPROG_WPD/_N_PART1_SPF"...
  • Page 214: 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 <program name>...
  • Page 215 Flexible NC programming 1.25 Subprogram technique Example Main program: Program code Comment DEF STRING[20] STARTLABEL, ENDLABEL ; Variable definition for the start and end labels. STARTLABEL="LABEL_1" ENDLABEL="LABEL_2" CALL "CONTUR_1" BLOCK STARTLABEL TO ENDLABEL ; Indirect subprogram call and identifier associated with the calling program part.
  • Page 216: 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 217: 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 <path/program name>(<parameter 1>,…,<parameter n>) Significance Keyword for subprogram call with absolute path name PCALL: Absolute path name beginning with "/", including <path/program name>:...
  • Page 218: 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 219 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 220: Execute External Subroutine (Extcall)

    Flexible NC programming 1.25 Subprogram technique 1.25.3.10 Execute external subroutine (EXTCALL) Function EXTCALL can be used to reload a program from the HMI in "Execution from external source" mode. All programs that can be accessed via the directory structure of HMI can be reloaded and run.
  • Page 221 Flexible NC programming 1.25 Subprogram technique RESET, POWER ON RESET and POWER ON cause external subprogram calls to be interrupted and the associated load memory to be erased. A subprogram selected for "Execution from external source" remains selected for "Execution from external source"...
  • Page 222 Flexible NC programming 1.25 Subprogram technique 2. Execution from network drive Systems: SINUMERIK solution line/powerline with HMI sl/HMI Advanced/HMI Embedded The "Contour2.spf" program to be reloaded is stored on the network drive in the directory "\\R4711\\Workpieces". Program code N... EXTCALL("\\R4711\Workpieces\Contour2.spf") External program path The path for the external subprogram directory can be preset using setting data: SD42700 $SC_EXT_PROG_PATH...
  • Page 223 Flexible NC programming 1.25 Subprogram technique ● If the called subprogram is not found on the program memory currently being searched (e.g., CompactFlash card), the next program memory (e.g., network drive) is searched in accordance with points 1 and 2. ●...
  • Page 224 Flexible NC programming 1.25 Subprogram technique Note Execution from external source via RS-232 interface with SINUMERIK powerline In HMI Embedded, the "Execution from external source" softkey can be used to transfer external programs across the RS-232 interface onto the NC. Adjustable reload memory (FIFO buffer) A reload memory is required in the NCK in order to run a program in "Execution from external source"...
  • Page 225: Cycles

    Flexible NC programming 1.25 Subprogram technique 1.25.4 Cycles 1.25.4.1 Cycles: Setting parameters for user cycles Function You can use the cov.com and uc.com files to parameterize your own cycles. The cov.com file is included with the standard cycles at delivery and is to be expanded accordingly.
  • Page 226 Flexible NC programming 1.25 Subprogram technique Syntax For each newly added cycle a line must be added with the following syntax: C<number> (<cycle_name>) comment_text Number: an integer as long as it has not already been used in the file; Cycle name: The program name of the cycle to be included Comment text: Optionally a comment text for the cycle Example: C25 (MY_CYCLE_1) usercycle_1...
  • Page 227 Flexible NC programming 1.25 Subprogram technique Associated file uc.com: Programming %_N_UC_COM ;$PATH=/_N_CUS_DIR //C25(MY_CYCLE_1) usercycle_1 (R/-1000.001 123.456 / 100 /Parameter_2 of cycle) (I/0 999999 / 1 / Integer value) (C//"A" / Character parameter) (S///Subprogram name) //C26(SPECIALCYCLE) (R///Entire length) (I/*123456/3/Machining type) Example: both cycles Display screen for cycle MY_CYCLE_1 Display screen for cycle SPECIAL CYCLE Job Planning...
  • Page 228 Flexible NC programming 1.25 Subprogram technique Syntax description for the uc.com file - user cycle description Header line for each cycle: as in the cov.com file preceded by "//" //C <number> (<cycle_name>) comment_text Example: //C25(MY_CYCLE_1) usercycle_ Line for description for each parameter: (<data_type_id>...
  • Page 229: Macro Technique (Define

    Flexible NC programming 1.26 Macro technique (DEFINE ... AS) 1.26 Macro technique (DEFINE ... AS) 1.26 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 230 Flexible NC programming 1.26 Macro technique (DEFINE ... AS) Significance DEFINE ... AS : Keyword combination to define a macro Macro name <macro name>: Only identifiers are permissible as macro names. The macro is called from the NC program using the macro name. Programming instruction that should be included in the macro.
  • Page 231 Flexible NC programming 1.26 Macro technique (DEFINE ... AS) Example 2: Macro definitions in a macro file Program code Comments DEFINE M6 AS L6 ; A subprogram is called at tool change to handle the necessary data transfer. The actual M function is output in the subprogram (e.g., M106).
  • Page 232 Flexible NC programming 1.26 Macro technique (DEFINE ... AS) Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 233: 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 234: 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 235 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 236 File and program management 2.1 Program memory Creating a workpiece directory with a path name ($PATH=…) The destination path $PATH=… is specified within the second line of the file. The file is then stored at the specified path. Example: Program code %_N_SHAFT_MPF ;$PATH=/_N_WKS_DIR/_N_SHAFT_WPD N40 G0 X…...
  • Page 237 File and program management 2.1 Program memory Search paths for subprogram call If the search path is not specified explicitly in the part program when a subprogram (or initialization file) is called, the calling program searches in a fixed search path. Subprogram call with absolute path Example: Program code...
  • Page 238 File and program management 2.1 Program memory Programming search paths for subprogram call (CALLPATH) The CALLPATH part program command is used to extend the search path of a subprogram call. Example: Program code CALLPATH ("/_N_WKS_DIR/_N_MYWPD_WPD") The search path is stored in front of position 5 (user cycle) in accordance with the specified programming.
  • Page 239: 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 240 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 241 File and program management 2.2 Working memory (CHANDATA, COMPLETE, INITIAL) CAUTION CHANDATA statement In the part program, the CHANDATA instruction may only be set for that channel in which the NC program is executed; i.e. the instruction can be used to protect NC programs so that they are not executed in the wrong channel.
  • Page 242: 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 243: 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 244 Protection zones 3.1 Definition of the protection zones (CPROTDEF, NPROTDEF) Significance Define local variable, data type INTEGER DEF INT NOT_USED: (see Section "Motion-synchronous action") Define channel-specific protection zones (for NCU 572/573 only) CPROTDEF: Defining machine-specific protection zones NPROTDEF: End definition EXECUTE: Number of defined protection zone <n>:...
  • Page 245 Protection zones 3.1 Definition of the protection zones (CPROTDEF, NPROTDEF) Reference point for contour description The workpiece-oriented protection zones are defined in the basic coordinate system. The tool-oriented protection zones are defined with reference to the tool carrier reference point F. Contour definition of protection zones The contour of the protection zones is specified with up to 11 traversing movements in the selected plane.
  • Page 246 Protection zones 3.1 Definition of the protection zones (CPROTDEF, NPROTDEF) Tool-related protection zones must always be convex. If a concave protected zone is desired, this should be subdivided into several convex protection zones. Constraints During definition of the protection zones: ●...
  • Page 247: 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 248 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 249 Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Program code Comments DEF INT PROTECTB ; Definition of a Help variable Definition of protection zone G17 ; Set orientation NPROTDEF(1,FALSE,3,10,–10)G01 X0 Y–10 ; Protection zone n–SB1 Y–10 EXECUTE(PROTECTB) NPROTDEF(2,FALSE,3,5,–5) ; Protection zone n–SB2 G01 X40 Y–5 Y–5 EXECUTE(PROTECTB)
  • Page 250 Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Further information Activation status (<state>) ● <state>=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. ● <state>=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 251 Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Status after booting Protection zones can be activated straight after booting and subsequent reference point approach. The system variable $SN_PA_ACTIV_IMMED[<n>] or $SC_PA_ACTIV_IMMED[<n>] must be set to TRUE for this purpose. They are always activated with Status = 2 and have no offset.
  • Page 252: 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 253 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Tens digit The initial value violates the limit The specified straight line violates the limit. This value is also returned if the end point does not violate any limit itself but the path from the starting point to the end point would cause a limit value to be violated (e.g.
  • Page 254 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Starting value for abscissa [0], ordinate [1] and applicate [2] in _STARTPOS the (WCS) Incremental path definition for abscissa [0], ordinate [1] and _MOVEDIST applicate [2] [0] - [2]: Minimum clearances assigned to the geometry axes.
  • Page 255 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Example In the example (refer to the diagram), X software limits and working area limits are shown. In addition, three protection zones are defined, the two channel-specific protection zones C2 and C4 and well as the NCK protection zone N3.
  • Page 256 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 257 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Program code Comments ;Various function calls Other starting point N420 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST) N430 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,3) N440 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,1) N450 _STARTPOS[0] = 5.
  • Page 258 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 259 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) As in the normal traversing operation, the monitoring of the software limits and the operating range limits depends on the active settings (interface signals for selecting the software limits 1 or software limits 2, GWALIMON/WALIMOF, setting data for the specific activation of the operating range limits and for the specification whether or not the radius of the active tool is to be considered for the monitoring of the operating range limits).
  • Page 260 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 261: 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 262: Special Motion Commands

    Special motion commands 4.1 Approaching coded positions (CAC, CIC, CDC, CACP, CACN) Example: Approach coded positions of a positioning axis Programming code Comments N10 FA[B]=300 ; Feedrate for positioning axis B N20 POS[B]=CAC(10) ; Approach coded position from position number 10 N30 POS[B]=CIC(-4) ;...
  • Page 263: Spline Interpolation (Aspline, Bspline, Cspline, Bauto, Bnat, Btan, Eauto, Enat, Etan, Pw, Sd, Pl)

    Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) 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 264 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) 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=<n>...
  • Page 265 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Spline degree (only B spline): A third degree polygon is used as standard, However, a second degree polygon can also be used by programming SD=2. Distance between nodes (only B spline): The distances between nodes are suitably calculated internally.
  • Page 266 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Note The programmable transitional behavior has no influence on the B spline. The B spline is always tangential to the check polygon at its start and end points. Supplementary conditions ●...
  • Page 267 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Program code 3 (check polygon) Comments N10 G1 X0 Y0 F300 G64 ; N/A N30 X10 Y20 N40 X20 Y40 N50 X30 Y30 N60 X40 Y45 N70 X50 Y0 Job Planning...
  • Page 268 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) 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...
  • Page 269 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) 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 270 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Further information Advantages of spline interpolation By using spline interpolation, the following advantages can be obtained contrary to using straight line blocks G01: ●...
  • Page 271 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Properties and use of the various spline types Spline type Properties and use A spline Properties: The passes precisely through the specified intermediate points along the •...
  • Page 272 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) 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 273 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) 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 274 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) 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 275 Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Note An alarm is output if the tolerated value is undershot and likewise when one of the axes involved in the spline is programmed as a positioning axis. Combine short spline blocks Spline interpolation can result in short spline blocks, which reduce the path velocity unnecessarily.
  • Page 276: 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 277 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 278: 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 279 Special motion commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) Significance 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 280 Special motion commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) Examples Example 1: COMPON Program code Comments 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 281: Polynomial Interpolation (Poly, Polypath, Po, Pl)

    Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Polynomial interpolation (POLY, POLYPATH, PO, PL) Function Polynomial interpolation (POLY) is not spline interpolation in the true sense. Its main purpose is to act as an interface for programming externally generated spline curves where the spline sections can be programmed directly.
  • Page 282 Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Length of the parameter interval where polynomials are defined (definition range of the function f(p)). The interval always starts at 0, p can assume values from 0 to PL. Theoretical value range for PL: 0.0001 …...
  • Page 283 Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) The programmed polynomials are also interpolated as polynomials as standard for both axis groups. Examples: POLYPATH("VECT") Only the orientation axes are selected for polynomial interpolation - all other axes traverse linearly.
  • Page 284 Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Example: Curve in the X/Y plane. Program code N9 X0 Y0 G90 F100 N10 POLY PO[Y]=(2) PO[X]=(4,0.25) PL=4 Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 285 Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Description The control system is capable of traveling curves (paths), in which every selected path axis is operating as a polynomial function up to the 5th order. The equation used to express the polynomial function is generally as follows: f(p)= a p + a f(p)= a...
  • Page 286 Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) It is possible to program polynomials without the POLY G code being active. In this case, however, the programmed polynomials are not interpolated; instead the respective programmed end point of each axis is approached linearly (G1). The polynomial interpolation is then activated by programming POLY.
  • Page 287 Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) If polynomial interpolation is active and a denominator polynomial is programmed with zeros within the interval [0,PL], this is rejected and an alarm is output. Denominator polynomials have no effect on the motion of special axes. Note Tool radius compensation can be activated with G41, G42 in conjunction with polynomial interpolation and can be applied in the same way as in linear or circular interpolation modes.
  • Page 288: 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 of the FGROUP axes or synchronized to the curve parameters.
  • Page 289 Special motion commands 4.6 Settable path reference (SPATH, UPATH) Example 1 The following example shows a square with 20 mm side lengths and corners rounded-off with G643. The maximum deviations from the precise contour are defined for each axis using machine data MD33100 $MA_COMPRESS_POS_TOL[...].
  • Page 290 Special motion commands 4.6 Settable path reference (SPATH, UPATH) Programming N10 G1 X0 A0 F1000 SPATH N20 POLY PO[X]=(10,10) A10 Programming N10 G1 X0 F1000 UPATH N20 POLY PO[X]=(10,10) A10 In block N20, path S of the FGROUP axes is dependent on the square of curve parameter U. Therefore, different position arise for synchronized axis A along path X, according to whether SPATH or UPATH is active.
  • Page 291 Special motion commands 4.6 Settable path reference (SPATH, UPATH) Control behavior for reset and machine/option data After reset, MD 20150: GCODE_RESET_VALUES [44] makes certain G codes effective (45th G code group). The initial state for the type of the smoothing is specified with MD 20150: GCODE_RESET_VALUES [9] (10th G code group).
  • Page 292: 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 293 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[<axis>] Measurement results in the machine coordinate system ● $AA_MW[<axis>] Measurement results in the workpiece coordinate system No internal preprocessing stop is generated when these variables are read.
  • Page 294 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 295: 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 296 Special motion commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Syntax MEASA[<axis>]=(<mode>,<TE1>,...,<TE4>) MEAWA[<axis>]=(<mode>,<TE1>,...,<TE4>) MEAC[<axis>]=(<mode>,<measurement memory>,<TE1>,...,<TE4>) 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.
  • Page 297 Special motion commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) <TE> Trigger event to initiate measurement Type: Range of values: -2, -1, 1, 2 Significance: (+)1 Rising edge of probe 1 Falling edge of probe 1 (+)2 Rising edge of probe 2 Falling edge of probe 2 <measurement Number of FIFO (circulating storage)
  • Page 298 Special motion commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) b) with 2 measuring systems Program code Comments N200 MEASA[X]=(31,1,-1) G01 X100 F100 ; Measuring in mode 1 with both measuring systems. Wait for measuring signal with rising/falling edge from probe 1 for travel path to X=100.
  • Page 299 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 300 Special motion commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Example 3: Continuous axial measurement in mode 1 (evaluation in chronological sequence) a) Measurement of up to 100 measured values Program code Comments N110 DEF REAL MEASVALUE[100] N120 DEF INT loop=0 N130 MEAC[X]=(1,1,-1) G01 X1000 F100 ;...
  • Page 301 Special motion commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Further information Measurement job A measuring task can be programmed in the part program or from a synchronized action (see the chapter titled "Motion-synchronous actions"). Please note that only one measuring job can be active at any given time for each axis.
  • Page 302 Special motion commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) The second digit (units decade) selects the required measuring mode. The measuring process is thus adapted to the options supported by the relevant control: ● Mode 1 Trigger events are evaluated in the chronological sequence in which they occur. When this mode is selected, only one trigger event can be programmed for six-axis modules.
  • Page 303 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 304 Special motion commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Geometry axes/Transformations If axial measurement is to be started for a geometry axis, the same measuring job must be programmed explicitly for all remaining geometry axes. The same applies to axes involved in a transformation.
  • Page 305 Special motion commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Measuring job status for MEASA, MEAWA If an evaluation is required in the program, the measuring task status can be checked via $AC_MEA[n], where <n> = number of probe. Once all the trigger events of probe <n> that are programmed in a block have occurred, this variable returns a value of "1".
  • Page 306 Special motion commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Recognized programming errors The following programming errors are detected and indicated appropriately: ● MEASA/MEAWA programmed with MEAS/MEAW in the same block Example: N01 MEAS=1 MEASA[X]=(1,1) G01 F100 POS[X]=100 ● MEASA/MEAWA with number of parameters <2 or >5 Example: N01 MEAWA[X]=(1) G01 F100 POS[X]=100 ●...
  • Page 307: Special Functions For Oem Users (Oemipo1, Oemipo2, G810 To G829)

    Special motion commands 4.9 Special functions for OEM users (OEMIPO1, OEMIPO2, G810 to G829) Special functions for OEM users (OEMIPO1, OEMIPO2, G810 to G829) Function OEM addresses The meaning of OEM addresses is determined by the OEM user. Their functionality is incorporated by means of compile cycles.
  • Page 308: 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) 4.10 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 309: 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, 4.11 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 310 Special motion commands 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Examples Example 1: End-of-motion on reaching the interpolator stop Program code Comments N110 G01 POS[X]=100 FA[X]=1000 ACC[X]=90 IPOENDA[X] Traversing to position X100 when input 1 is active, with a path velocity of 1000 rpm, an acceleration value of 90% and end-of-...
  • Page 311 Special motion commands 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Example 3: Block change criterion, braking ramp in synchronized actions Program code Comments ; In the technology cycle: FINEA ; End of motion criteria, exact stop fine. POS[X]=100 ;...
  • Page 312 Special motion commands 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Block change criterion in braking ramp The percentage value is entered in the setting data synchronous to the main run: SD43600 $SA_IPOBRAKE_BLOCK_EXCHANGE If no value is specified, the current value of this setting data is effective. The range is adjustable from 0% to 100%.
  • Page 313: Programmable Servo Parameter Set (Scpara)

    Special motion commands 4.12 Programmable servo parameter set (SCPARA) 4.12 Programmable servo parameter set (SCPARA) 4.12 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 314 Special motion commands 4.12 Programmable servo parameter set (SCPARA) Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 315: Coordinate Transformation Via Frame Variables

    Coordinate transformation (FRAMES) Coordinate transformation via frame variables Function In addition to the programming options already described in the Programming Manual "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 316 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables What is a predefined frame variable? Predefined frame variables are keywords whose use and effect are already defined in the control language and that can be processed in the NC program. Possible frame variable: ●...
  • Page 317: Predefined Frame Variable ($P_Bframe, $P_Iframe, $P_Pframe, $P_Actframe)

    Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables Reading the actual values The current actual values of the coordinate system can be read out via predefined variables in the parts program: $AA_IM[axis]: Read actual value in MCS $AA_IB[axis]: Read actual value in BCS $AA_IBN[axis]: Read actual value in BOS $AA_IEN[axis]: Read actual value in SZS $AA_IW[axis]: Read actual value in WCS...
  • Page 318 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 319 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 320 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 321 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 322 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables Predefined settable frames $P_UIFR[n] The predefined frame variable $P_UIFR[n] can be used to read or write the settable zero offsets G54 to G599 from the parts program. These variables produce a one-dimensional array of type FRAME called $P_UIFR[n]. Assignment to G commands As standard, five settable frames $P_UIFR[0]...
  • Page 323: 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, …) $P_UIFR[..]=CROT (X, angle, Y, angle, Z, angle, …) $P_PFRAME=CSCALE (X, scale, Y, scale, Z, scale, …)
  • Page 324 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 325 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 326: 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. You can modify these values or assign them to another variable. Syntax R10=$P_UIFR[$P_UIFNUM,X,RT] Assign the angle of rotation RT around the X axis...
  • Page 327 Coordinate transformation (FRAMES) 5.2 Frame variables/assigning values to frames Value range for RT rotation Rotation around 1st geometry axis: -180° to +180° Rotation around 2nd geometry axis: -90° to +90° Rotation around 3rd geometry axis: -180° to +180° Description Calling frame By specifying the system variable $P_UIFRNUM you can access the current zero offset set with $P_UIFR or G54, G55, ...
  • Page 328: Linking Complete Frames

    Coordinate transformation (FRAMES) 5.2 Frame variables/assigning values to frames 5.2.3 Linking complete frames Function A complete frame can be assigned to another frame or frames can be chained to each other in the NC program. Frame chaining is suitable for the description of several workpieces, arranged on a pallet, which are to be machined in the same process.
  • Page 329: Defining New Frames (Def Frame)

    Coordinate transformation (FRAMES) 5.2 Frame variables/assigning values to frames Frame chains The frames are chained in the programmed sequence. The frame components (translations, rotations, etc.) are executed additively in succession. $P_IFRAME=$P_UIFR[15]:$P_UIFR[16] $P_UIFR[15] contains, for example, data for zero offsets. The data of $P_UIFR[16], e.g., data for rotations, are subsequently processed additively.
  • Page 330: 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 331 Coordinate transformation (FRAMES) 5.3 Coarse and fine offsets (CFINE, CTRANS) Access to the individual components of the fine offset is achieved through component specification FI (Translation Fine). DEF REAL FINEX ;Definition of the FINEX variable FINEX=$P_UIFR[$P_UIFNUM, x, FI] ;Fetching the fine offset ;using the FINEX variable FINEX=$P_UIFR[3, x, FI]$P ;Fetching the fine offset...
  • Page 332: 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 333: Preset Offset (Preseton)

    Coordinate transformation (FRAMES) 5.5 Preset offset (PRESETON) Preset offset (PRESETON) Function In special applications, it can be necessary to assign a new programmed actual value to one or more axes at the current position (stationary). CAUTION The reference point becomes invalid with the function PRESETON. You should therefore only use this function for axes which do not require a reference point.
  • Page 334 Coordinate transformation (FRAMES) 5.5 Preset offset (PRESETON) Example The actual values are assigned to the machine coordinate system – the values refer to the machine axes. N10 G0 A760 N20 PRESETON(A1,60) Axis A travels to position 760. At position 760, machine axis A1 is assigned the new actual value 60.
  • Page 335: 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 336 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 337 Coordinate transformation (FRAMES) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Program code Comments N100 G01 G90 F5000 N110 X0 Y0 Z0 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...
  • Page 338 Coordinate transformation (FRAMES) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Program code Comments N700 G500 Deactivate settable frame as with zero frame (no value entered, pre-assigned). No_FRAME Deactivate settable frame, as pre-assigned with zero frame (no value entered). Example of concatenating frames Chaining of MEAFRAME for offsets The MEAFRAME( ) function provides an offset frame.
  • Page 339: 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 340: Channel-Specific Frames ($P_Chbfr, $P_Ubfr)

    Coordinate transformation (FRAMES) 5.7 NCU global frames NCU-global settable frames $P_UIFR[n] All settable frames G500, G54...G599 can be configured NCU globally or channel- specifically. Machine manufacturer All settable frames can be reconfigured as global frames with the aid of machine data $MN_MM_NUM_GLOBAL_USER_FRAMES.
  • Page 341: Frames Active In The Channel

    Coordinate transformation (FRAMES) 5.7 NCU global frames Channel-specific frames $P_CHBFR[n] System variable $P_CHBFR[n] can be used to read and write the basic frames. When a basic frame is written, the chained total basic frame is not activated until the execution of a G500, G54...G599 instruction.
  • Page 342 Coordinate transformation (FRAMES) 5.7 NCU global frames Frames active in the channel Overview Current system frames For: $P_PARTFRAME TCARR and PAROT $P_SETFRAME PRESET and scratching $P_EXTFRAME External zero offset $P_NCBFRAME[n] Current NCU-global basic frames $P_CHBFRAME[n] Current channel basic frames $P_BFRAME Current first basic frame in the channel $P_ACTBFRAME Complete basic frame...
  • Page 343 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 344 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 345 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 346 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, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 347: 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 348 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 349 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 350: 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 351 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 352 Transformations 6.1 General programming of transformation types Generic 5/6-axis transformations Machine type Programming of orientation transformation Generic five/six-axis Programming of orientation transformation. Kinematics with transformation machine three linear axes and three orthogonal rotary axes. types 4 The rotary axes are parallel to two of the three linear axes. Two-axis swivel head with The first rotary axis is moved by two Cartesian linear axes.
  • Page 353 Transformations 6.1 General programming of transformation types TRAANG Activation of the inclined axis transformation Machining with an oblique A rotary axis infeed axis An infeed axis with parameterizable angle A longitudinal axis parallel to the axis of rotation Cartesian PTP travel The machine moves in machine coordinates and is programmed with: TRAORI Activation of transformation...
  • Page 354: 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 two- The axis sequence of the orientation axes and the orientation axis swivel head or two-axis direction of the tool can either be configured on a rotary table or a combination...
  • Page 355 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 356: 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. The machine design to achieve this is stored in the axis data.
  • Page 357 Transformations 6.2 Three, four and five axis transformation (TRAORI) In the examples shown here, you can see the arrangements as illustrated by the CA machine kinematics with the Cardanic tool head! Machine manufacturer The axis sequence of the orientation axes and the orientation direction of the tool can be set up using the machine data as appropriate for the machine kinematics.
  • Page 358 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 359: Three, Four And Five Axis Transformation (Traori)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) The axis sequence of the rotary axes and the orientation direction of the tool can be set up using the machine data as appropriate for the machine kinematics. There are the following possible relationships: Axes: Axis sequences: 1st rotary axis...
  • Page 360 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming TRAORI(n) TRAORI(n,X,Y,Z,A,B) TRAFOOF Parameter Activates the first specified orientation transformation TRAORI: Activates the orientation transformation specified by n TRAORI(n): The number of the transformation (n = 1 or 2), TRAORI(1) corresponds to orientation transformation on Component of orientation vector to which tool points X,Y,Z:...
  • Page 361: Variants Of Orientation Programming And Initial Setting (Orireset)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) Example of generic transformations The basic orientation of the tool is indicated as follows: TRAORI(1,0,0,1) Z direction TRAORI(1,0,1,0) Y direction TRAORI(1,0,1,1) Y/Z direction (corresponds to the position -45°) Offset for orientation axes When orientation transformation is activated an additional offset can be programmed directly for the orientation axes.
  • Page 362 Transformations 6.2 Three, four and five axis transformation (TRAORI) Changes in tool orientation can even be programmed using orientation vectors in some cases. In such cases, the ultimate orientation of each block can be set either by means of direct programming of the vector or by programming the rotary axis positions. Note Variants of orientation programming for three- to five-axis transformation In respect of three- to five-axis transformation, the following variants:...
  • Page 363 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 364: Programming Of The Tool Orientation (A

    Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.4 Programming of the tool orientation (A..., B..., C..., LEAD, TILT) Function The following options are available when programming tool orientation: 1. Direct programming the motion of rotary axes. The change of orientation always occurs in the basic or machine coordinate system.
  • Page 365 Transformations 6.2 Three, four and five axis transformation (TRAORI) Definition of tool orientation via G code Note Machine manufacturer Machine data can be used to switch between Euler or RPY angles. If the machine data is set accordingly, changeovers are possible both depending on the active G code of group 50 and irrespective of this.
  • Page 366 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming G1 X Y Z A B C Programming of rotary axis motion G1 X Y Z A2= B2= C2= Programming in Euler angles G1 X Y Z A3== B3== C3== Programming of directional vector G1 X Y Z A4== B4== C4== Programming the surface normal vector at block...
  • Page 367 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 368 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 369 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 370 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 371 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming the tool orientation with LEAD= and TILT= The resultant tool orientation is determined from: ● Path tangent ● Surface normal vector at the start of the block A4, B4, C4 and at the end of the block A5, B6, C5 ●...
  • Page 372: Face Milling (3D-Milling A4, B4, C4, A5, B5, C5)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) 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. For this type of 3D milling, you require line-by-line definition of 3D paths on the workpiece surface.
  • Page 373 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming the path curvature Surface description The path curvature is described by surface normal vectors with the following components: A4, B4, C4 Start vector at block start A5, B5, C5 End vector at block end If a block only contains the start vector, the surface normal vector will remain constant throughout the block.
  • Page 374: 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 375 Transformations 6.2 Three, four and five axis transformation (TRAORI) Description With ORIMKS, the movement executed by the tool depends on the machine kinematics. In the case of a change in orientation of a tool tip at a fixed point in space, linear interpolation takes place between the rotary axis positions.
  • Page 376 Transformations 6.2 Three, four and five axis transformation (TRAORI) Machine manufacturer To avoid overloading the machine axes, the velocity control vastly reduces the tool path velocity near the singular positions. With machine data $MC_TRAFO5_NON_POLE_LIMIT $MC_TRAFO5_POLE_LIMIT the transformation can be parameterized in such a way that orientation movements close to the pole are put through the pole and rapid machining is possible.
  • Page 377: 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 378 Transformations 6.2 Three, four and five axis transformation (TRAORI) Parameter ORIAXES Linear interpolation of machine or orientation axes ORIVECT Large-radius circular interpolation (identical to ORIPLANE) ORIMKS Rotation in the machine coordinate system ORIWKS Rotation in the workpiece coordinate system Description, see the Rotations of the tool orientation section A= B= C= Programming the machine axis position...
  • Page 379 Transformations 6.2 Three, four and five axis transformation (TRAORI) JOG mode Interpolation for orientation angles in this mode of operation is always linear. During continuous and incremental traversal via the traversing keys, only one orientation axis can be traversed. Orientation axes can be traversed simultaneously using the handwheels. For manual travel of the orientation axes, the channel-specific feed override switch or the rapid traverse override switch work at rapid traverse override.
  • Page 380: 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. The orientation vector is interpolated on the peripheral surface of a taper using the ORICONxx modal command.
  • Page 381 Transformations 6.2 Three, four and five axis transformation (TRAORI) Note Programming direction vector A6, B6, C6 for the rotary axis of the taper The programming of an end orientation is not absolutely necessary. If no end orientation is specified, a full outside taper with 360 degrees is interpolated. Programming the opening angle of the taper with NUT=angle An end orientation must be specified.
  • Page 382 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 383 Transformations 6.2 Three, four and five axis transformation (TRAORI) Example of different changes to orientation … N10 G1 X0 Y0 F5000 N20 TRAORI(1) ; Orientation transformation on. N30 ORIVECT ; Interpolate tool orientation as a vector. … ; Tool orientation in the plane. N40 ORIPLANE ;...
  • Page 384 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming of circles in a plane G2/G3, CIP and CT The extended orientation corresponds to the interpolation of circles in a plane. For the corresponding programming options for circles with centers or radii such as G2/G3, circle via intermediate point CIP and tangential circles CT, see References: Programming Manual Fundamentals, "Programming motion commands".
  • Page 385: 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 386 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 387: 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 388 Transformations 6.3 Orientation polynomials (PO[angle], PO[coordinate]) In both cases, with 6-axis transformations, a polynomial can also be programmed for the rotation using N… PO[THT]=(c2, c3, c4, c5) Interpolation of the rotation relative to the path N… PO[THT]=(d2, d3, d4, d5) Interpolation absolute, relative and tangential to the change of orientation of the orientation vector.
  • Page 389 Transformations 6.3 Orientation polynomials (PO[angle], PO[coordinate]) Description Orientation polynomials cannot be programmed: ● If ASPLINE, BSPLINE, CSPLINE spline interpolations are active. Type 1 polynomials for orientation angles are possible for every type of interpolation except spline interpolation, that is, linear interpolation with rapid traverse G00 or with feedrate G01 with polynomial interpolation using POLY and circular/involute interpolation G02, G03, CIP, CT, INVCW and INCCCW...
  • Page 390: 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 391 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 392 Transformations 6.4 Rotations of the tool orientation (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) When interpolating block N40, the angle of rotation from initial value of 0 degrees to final value of 90 degrees is interpolated linearly. In block N50, the angle of rotation changes from 90 degrees to 180 degrees, according to parabola θ(u) = +90u .
  • Page 393: 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 394 Transformations 6.5 Orientations relative to the path Polynomials up to the 5th degree can be programmed in addition to the THETA angle of rotation using PO[THT]=(...). 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.
  • Page 395: 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 396 Transformations 6.5 Orientations relative to the path The values of the angles at the end of block are programmed using LEAD=value, TILT=value or THETA=value. In addition to the constant angles, polynomials can be programmed for all three angles up to the 5th degree. N...
  • Page 397: Interpolation Of The Tool Rotation Relative To The Path (Orirotc, Theta)

    Transformations 6.5 Orientations relative to the path 6.5.3 Interpolation of the tool rotation relative to the path (ORIROTC, THETA) Function Interpolation with rotation vectors The rotation vector of the tool rotation, programmed with ORIROTC, relative to the path tangent can also be interpolated with an offset that can be programmed using the THETA angle of rotation.
  • Page 398 Transformations 6.5 Orientations relative to the path Note Interpolation of the rotation vector ORIROTC Initiating rotation of the tool relative to the path tangent in the opposite direction to the tool orientation, is only possible with a 6-axis transformation. With active ORIROTC Rotation vector ORIROTA cannot be programmed.
  • Page 399 Transformations 6.5 Orientations relative to the path Angle programming of virtual axes A2= B2= C2= Orientation programming using virtual orientation axes ORIVIRT1 ORIVIRT2 (definition 1), definition according to MD $MC_ORIAX_TURN_TAB_1 (definition 2), definition according to MD $MC_ORIAX_TURN_TAB_2 Direction vector programming of direction axis A3= B3= C3= Interpolation in the plane (large-radius circular interpolation) ORIPLANE...
  • Page 400: Smoothing Of Orientation Characteristic (Oripaths A8=, B8=, C8=)

    Transformations 6.5 Orientations relative to the path 6.5.4 Smoothing of orientation characteristic (ORIPATHS A8=, B8=, C8=) Function Changes of orientation that take place with constant acceleration on the contour can cause unwanted interruptions to the path motions, particularly at the corner of a contour. The resulting blip in the orientation characteristic can be smoothed by inserting a separate intermediate block.
  • Page 401 Transformations 6.5 Orientations relative to the path Significance Tool orientation relative to the path; blip in orientation characteristic is ORIPATHS smoothed Vector components for direction and path length A8= B8= C8= Retracting movement in tool direction X, Y, Z Note Programming direction vectors A8, B8, C8 If the length of this vector is exactly zero, no retracting movement is executed.
  • Page 402: 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 the orientation is programmed using direction vectors, can be compressed if kept within specified limits. Note The orientation movement is only compressed if large-radius circular interpolation is active and depends, therefore, on the G code for orientation interpolation.
  • Page 403 Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) General structure of an NC block that be compressed The general structure of an NC block that can be compressed can therefore look like this: N... X=<...> Y=<...> Z=<...> A3=<...> B3=<...> C3=<...> THETA=<...> F=<...> N...
  • Page 404 Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) Activation/deactivation Compressor functions are activated using the modal G codes COMPON, COMPCURV or COMPCAD. COMPOF terminates the compressor function. See "NC block compression (COMPON, COMPCURV, COMPCAD) (Page 278) ". Note Orientation motion is only compressed when large radius circular interpolation is active (i.e. tool orientation is changed in the plane which is determined by start and end orientation).
  • Page 405 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 406: 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 407 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 408 Transformations 6.7 Smoothing the orientation characteristic (ORISON, ORISOF) Further information Number of blocks The orientation characteristic is smoothed over a configured number of blocks set in machine data MD28590 $MC_MM_ORISON_BLOCKS. Note If smoothing of the orientation characteristic is activated with ORISON without sufficient block memory having been configured for it (MD28590 <...
  • Page 409: 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 410 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 411 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 412: Cylinder Surface Transformation (Tracyl)

    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 413 Transformations 6.8 Kinematic transformation TRACYL transformation types There are three forms of cylinder surface coordinate transformation: ● TRACYL without groove wall offset (TRAFO_TYPE_n=512) ● TRACYL with groove wall offset: (TRAFO_TYPE_n=513) ● TRACYL with additional linear axis and groove wall offset: (TRAFO_TYPE_n=514) The groove wall offset is parameterized with TRACYL using the third parameter.
  • Page 414 Transformations 6.8 Kinematic transformation Syntax TRACYL(d) or TRACYL(d, n) or for transformation type 514 TRACYL(d, n, groove side offset) TRAFOOF Rotary axis The rotary axis cannot be programmed as it is occupied by a geometry axis and thus cannot be programmed directly as channel axis. Significance Activates the first TRACYL function specified in the channel TRACYL(d)
  • Page 415 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 416 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 417 Transformations 6.8 Kinematic transformation Program code Comments N140 G1 Z105 G40 ; Retract from groove wall N150 G1 X25 ; Retract N160 TRAFOOF N170 G0 X25 Y0 Z105 CC=200 ; Approach the starting position N180 M30 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: ●...
  • Page 418 Transformations 6.8 Kinematic transformation With groove wall offset (transformation type 513): Kinematics as above, but an additional longitudinal axis parallel to the peripheral direction The linear axes are positioned perpendicular to one another. The velocity control makes allowance for the limits defined for the rotations. 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.
  • Page 419 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 420 Transformations 6.8 Kinematic transformation To avoid damage to the groove side OFFN acts only when the tool radius compensation is active. Furthermore, OFFN should also be >= the tool radius to avoid damage occurring to the opposite side of the groove. A parts program for milling a groove generally comprises the following steps: 1.
  • Page 421 Transformations 6.8 Kinematic transformation Special features ● TRC selection: TRC is not programmed in relation to the groove side, but relative to the programmed groove center line. To prevent the tool traveling to the left of the groove side, G42 is entered (instead of G41).
  • Page 422: 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 423 Transformations 6.8 Kinematic transformation Significance Activate transformation with the parameterization of the previous TRAANG( ) or selection. TRAANG( ,n) Activates the first specified inclined axis transformation TRAANG(α) Activates the nth agreed inclined axis transformation. The maximum TRAANG(α,n) value of n is 2. TRAANG(α,1) corresponds to TRAANG(α). Angle of the inclined axis αA Permissible values for α...
  • Page 424 Transformations 6.8 Kinematic transformation Example Program code Comments N10 G0 G90 Z0 MU=10 G54 F5000 -> ; Tool selection, clamping compensation, -> G18 G64 T1 D1 Plane selection N20 TRAANG(45) ; Activate inclined axis transformation N30 G0 Z10 X5 ; Approach the starting position N40 WAITP(Z) ;...
  • Page 425 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 426: 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 427 Transformations 6.8 Kinematic transformation Syntax The commands G07/G05 are used to make it easier to program the inclined axes. Positions can be programmed and displayed in the Cartesian coordinate system. Tool compensation and zero offset are included in Cartesian coordinates. After the angle for the inclined axis is programmed in the NC program, the starting position can be approached (G07) and then the oblique plunge-cutting (G05) performed.
  • Page 428: 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 429 Transformations 6.9 Cartesian PTP travel Non-uniqueness of orientation with vectors When programming the orientation with vectors, there is non-uniqueness in the rotary axis positions available. The rotary axis positions to be approached can be selected by programming STAT = <...>. If If STAT = 0 is programmed (this is equivalent to the default setting), the positions which are at the shortest distance from the start positions are approached.
  • Page 430 Transformations 6.9 Cartesian PTP travel Example Initial setting N10 G0 X0 Y-30 Z60 A-30 F10000 → Elbow up Transformation on N20 TRAORI(1) N30 X1000 Y0 Z400 A0 Re-orientation without transformation N40 X1000 Z500 A0 STAT='B10' TU='B100' PTP → Elbow down Transformation active again N50 X1200 Z400 CP N60 X1000 Z500 A20...
  • Page 431 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 432 Transformations 6.9 Cartesian PTP travel Programming the position (STAT=) A machine position is not uniquely determined just by positional data with Cartesian coordinates and the orientation of the tool. Depending on the kinematics involved, there can be as many as eight different and crucial articulated joint positions. These are specific to the transformation.
  • Page 433 Transformations 6.9 Cartesian PTP travel Example of evaluation of TU for generic 5/6-axis transformation and target positions Variable TU contains a bit, which indicates the traversing direction for every axis involved in the transformation. The assignment of TU bits matches the channel axis view of the round axes.
  • Page 434 Transformations 6.9 Cartesian PTP travel Overlaid movements DRF offset or external zero offset are only possible to a limited extent in Cartesian PTP travel. When changing from PTP to CP movement, there must be no overrides in the BCS. Smoothing between CP and PTP motion A programmable transition rounding between the blocks is possible with G641.
  • Page 435: 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 436 Transformations 6.9 Cartesian PTP travel Example of circumnavigation of the pole with PTP and TRANSMIT 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 N030 X-30 Y-20...
  • Page 437 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 Programming Comments N001 G0 X90 Z0 F10000 T1 D1 G90 Initial setting N002 SPOS=0 N003 TRANSMIT Transformation TRANSMIT N010 PTPG0 For each G0 block, automatically...
  • Page 438 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 439 Transformations 6.9 Cartesian PTP travel PTP for TRACON: PTP can also be used with TRACON, provided the first chained transformation supports PTP. Meaning of STAT= and TU= for TRANSMIT If a rotary axis is to turn by 180 degrees or the contour for CP passes through the pole, rotary axes depending on the machine data $MC_TRANSMIT_POLE_SIDE_FIX_1/2 [48] can be turned by -/+ 180 degrees and traversed in clockwise or counter-clockwise direction.
  • Page 440: Constraints When Selecting A Transformation

    Transformations 6.10 Constraints when selecting a transformation 6.10 Constraints when selecting a transformation 6.10 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 441 Transformations 6.10 Constraints when selecting a transformation Frame change All statements, which refer exclusively to the base coordinate system, are permissible (FRAME, tool radius compensation). However, a frame change with G91 (incremental dimension) – unlike with an inactive transformation – is not handled separately. The increment to be traveled is evaluated in the workpiece coordinate system of the new frame –...
  • Page 442: Deselect Transformation (Trafoof)

    Transformations 6.11 Deselect transformation (TRAFOOF) 6.11 Deselect transformation (TRAFOOF) 6.11 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 443: Chained Transformations (Tracon, Trafoof)

    Transformations 6.12 Chained transformations (TRACON, TRAFOOF) 6.12 Chained transformations (TRACON, TRAFOOF) 6.12 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 444 Transformations 6.12 Chained transformations (TRACON, TRAFOOF) Syntax TRACON(trf,par) This activates a chained transformation. 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 445 Transformations 6.12 Chained transformations (TRACON, TRAFOOF) Requirements The second transformation must be "Inclined axis" (TRAANG). The first transformation can ● Orientation transformations (TRAORI), including universal milling head ● TRANSMIT ● TRACYL ● TRAANG It is a condition of using the activate command for a chained transformation that the individual transformations to be chained and the chained transformation to be activated are defined by the machine data.
  • Page 446 Transformations 6.12 Chained transformations (TRACON, TRAFOOF) Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 447: 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 448 Tool offsets 7.1 Offset memory Tool parameter Meaning of system variables Remarks number (DP) $TC_DP1 Tool type For overview see list $TC_DP2 Tool nose position only for turning tools Geometry Length compensation $TC_DP3 Length 1 Allocation to $TC_DP4 Length 2 Type and level $TC_DP5 Length 3...
  • Page 449 Tool offsets 7.1 Offset memory Comments Several entry components are available for geometric variables (e.g. length 1 or radius). These are added together to produce a value (e.g., total length 1, total radius), which is then used for the calculations. Offset values not required must be assigned the value zero.
  • Page 450 Tool offsets 7.1 Offset memory Basic value and wear value The resultant values are each a total of the basic value and wear value (e.g. $TC_DP6 + $TC_DP15 for the radius). The basic measurement ($TC_DP21 – $TC_DP23) is also added to the tool length of the first cutting edge.
  • Page 451: 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 452 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 453: 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 454: 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[<t>,<d>] DELDL[<t>]...
  • Page 455: 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 456 Tool offsets 7.3 Special handling of tool offsets References Function Manual Basic Functions; Tool Offset (W1) 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 457: Mirroring Of Tool Lengths

    Tool offsets 7.3 Special handling of tool offsets Further application options The use of orientable toolholder functionality can also be useful if there is no physical option of turning tools on the machine, even though tools with different orientations are permanently installed.
  • Page 458: Wear Sign Evaluation

    Tool offsets 7.3 Special handling of tool offsets SD42900 $SC_MIRROR_TOOL_LENGTH Setting data not equal to zero: The tool length components ($TC_DP3, $TC_DP4 and $TC_DP5) and the components of the basis dimensions ($TC_DP21, $TC_DP22 and $TC_DP23) are mirrored against their associated axes, also mirrored – by inverting the sign. The wear values are not mirrored.
  • Page 459 Tool offsets 7.3 Special handling of tool offsets In the following table, the dimensions, whose sign is inverted using SD42920 (not equal to zero), are designed using an X: Tool nose position Length 1 Length 2 Note The sign evaluation using SD42920 and SD42910 are independent of one another. If e.g. the the sign of a dimension is changed using both setting data, then the resulting sign remains unchanged.
  • Page 460: 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 461 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 TOWSTD Initial value, tool length Wear values are subject to rotation. TOWMCS Wear value in MCS.
  • Page 462 Tool offsets 7.3 Special handling of tool offsets No kinematic transformation and no orientable toolholder If neither a kinematic transformation nor an orientable toolholder is active, then all the other four coordinate systems (except for the WCS) are combined. It is then only the WCS, which is different to the other systems.
  • Page 463: Tool Length And Plane Change

    Tool offsets 7.3 Special handling of tool offsets Note Evaluation of individual wear components (assignment to geometry axes, sign evaluation) is influenced by: • The active plane • The adapter transformation • Following setting data: – SD42910 $SC_MIRROW_TOOL_WEAR – SD42920 $SC_WEAR_SIGN_CUTPOS –...
  • Page 464 Tool offsets 7.3 Special handling of tool offsets The following table shows the assignment of tool length components to geometry axes for all other tools (tool types < 400 or > 599): Operating plane Length 1 Length 2 Length 3 Each value not equal to 0, which is not equal to one of the six listed values, is evaluated as value Note For representation in tables, it is assumed that geometry axes up to 3 are designated with X,...
  • Page 465: 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 466 Tool offsets 7.4 Online tool offset (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) The online tool offset is written using various functions dependent on the timing of the dressing process: ● Continuous write, non-modal (PUTFTOCF) With PUTFTOCF, dressing is carried out at the same time as machining. The tool offset is changed continuously in the machining channel according to a polynomial function of the first, second or third order, which must have been defined previously with FCTDEF.
  • Page 467 Tool offsets 7.4 Online tool offset (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) Significance Activate online tool offset FTOCON: FTOCON must be written in the channel in which the online tool offset is to take effect. Cancel online tool offset FTOCOF: With FTOCOF, the offset is no longer applied; however, the complete value written with PUTFTOC is corrected in the cutting-edge-specific offset data.
  • Page 468 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 <function>: Type: Note: Must match the setting for FCTDEF. Variable reference value from which the offset is <reference value>: to be derived (e.g.
  • Page 469 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 470 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 471: 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 472 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Syntax CUT3DC CUT3DFS CUT3DFF CUT3DF ISD=<value> Significance CUT3DC Activation of 3D radius offset for circumferential milling CUT3DFS 3D tool offset for face milling with constant orientation. The tool orientation is determined by G17 - G19 and is not influenced by frames.
  • Page 473 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Supplementary conditions ● G450/G451 and DISC A circular block is always inserted at out corners. G450/G451 have no significance. The DISC command is not evaluated. Example Program code Comments N10 A0 B0 X0 Y0 Z0 F5000 N20 T1 D1 ;...
  • Page 474: 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 475 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Face milling For this type of 3D milling, you will require the line-by-line description of the 3D paths on the workpiece surface. The tool shape and dimensions are taken into account in the calculations –...
  • Page 476: 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 477 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Cutter type Type No. Cylindrical die-sinking milling cutter > 0 Ball end mill > 0 > R End mill, angle head cutter 120, 130 > 0 End mill, angle head cutter with corner 121, 131 >...
  • Page 478: Tool Offset Compensation On The Path, Path Curvature, Insertion Depth (Cut3Dc, Isd)

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 7.5.4 3D tool offset Compensation on the path, path curvature, insertion depth (CUT3DC, ISD) Function Compensation on path With respect to face milling, it is advisable to examine what happens when the contact point "jumps"...
  • Page 479 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Path curvature Path curvature is not monitored. In such cases, it is also advisable to use only tools of a type that do not violate the contour. Insertion depth (ISD) Insertion depth ISD is only evaluated when 3D tool radius compensation is active. Program command ISD (insertion depth) is used to program the tool insertion depth for circumferential milling operations.
  • Page 480 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 481: 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 482 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 483: Tool Offset 3D Circumferential Milling With Limitation Surfaces

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 7.5.6 3D tool offset 3D circumferential milling with limitation surfaces Adaptation of 3D circumferential milling to the conditions for CAD programs NC programs generated by CAD systems usually approximate the center path of a standard tool with a large number of short linear blocks.
  • Page 484: 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 485 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Standard tools with corner rounding Corner rounding with a standard tool is defined by the tool parameter $TC_DP7. Tool parameter $TC_DP16 describes the deviation of the corner rounding of the real tool compared with the standard tool.
  • Page 486 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Further information Tool center point path with infeed up to the limitation surface CUT3DCCD If a tool with a smaller radius than the appropriate standard tool is used, machining is continued using a milling tool, which is infed in the longitudinal direction until it reaches the bottom (base) of the pocket.
  • Page 487 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) The generated part program does not specify whether the surface to be machined is to the right or left of the path. It is therefore assumed that the radius is a positive value and the wear value of the original tool is a negative value.
  • Page 488 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) The tool actually being used may either be larger or smaller than the standard tool. However, the resulting corner radius must not be negative and the sign of the resulting tool radius must be kept.
  • Page 489: 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 490 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Programming Programming a orientation change: A change in tool orientation can be programmed by: ● Direct programming of rotary axes A, B, C (rotary axis interpolation) ●...
  • Page 491 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 492 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 and N20 , then the inserted circle block is distributed among these intermediate blocks according to the absolute changes in angle.
  • Page 493 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 494 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=… Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 495 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Further information Behavior at outer corners A circle block with the radius of the cutter is always inserted at an outside corner. The ORIC and ORID program commands are used to determine whether changes in orientation programmed between block N1 and N2 are executed before the inserted circle block is processed or at the same time.
  • Page 496 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Smoothing orientation with OSD or OST When blending with G642, the maximum variance for the contour axes and orientation axes cannot vary greatly. The smaller tolerance of the two determines the type of smoothing motion and/or angular tolerance to smooth the orientation characteristic relatively strongly without having to accept higher contour deviations.
  • Page 497: 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 498: Free Assignment Of D Numbers: Checking D Numbers (Chkdno)

    Tool offsets 7.7 Free assignment of D numbers, cutting edge numbers 7.7.2 Free assignment of D numbers: Checking D numbers (CHKDNO) Function Using the CKKDNO command, you can check whether the existing D numbers were uniquely assigned. The D numbers of all tools defined within a TO unit may not occur more than once. No allowance is made for replacement tools.
  • Page 499: Free Assignment Of D Numbers: Rename D Numbers (Getdno, Setdno)

    Tool offsets 7.7 Free assignment of D numbers, cutting edge numbers 7.7.3 Free assignment of D numbers: Rename D numbers (GETDNO, SETDNO) Function You must assign unique D numbers. Two different cutting edges of a tool must not have the same D number.
  • Page 500 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 501: 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 7.7.4 Free assignment of D numbers: Determine T number to the specified D number (GETACTTD) Function You determine the T number associated with an absolute D number using the GETACTTD command.
  • Page 502: 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 503: 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 504 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 505 Tool offsets 7.8 Tool holder kinematics Extensions of the system variables for orientable toolholders Name x component y component z component offset vector $TC_CARR18[m] $TC_CARR19[m] $TC_CARR20[m] Axis identifier Axis identifier of the rotary axes v and v (initialized with zero) rotary axis v $TC_CARR21[m] rotary axis v...
  • Page 506 Tool offsets 7.8 Tool holder kinematics Note Explanations of parameters "m" specifies the number of the toolholder to be programmed. $TC_CARR47 to $TC_CARR54 and $TC_CARR61 to $TC_CARR63 are not defined and produce an alarm if read or write access is attempted. The start/endpoints of the distance vectors on the axes can be freely selected.
  • Page 507 Tool offsets 7.8 Tool holder kinematics Parameters for the user $TC_CARR34 to $TC_CARR40 contain parameters that are freely available to users and up to SW 6.4 were as standard, not further evaluated within the NCK or had no significance. Fine offset parameters $TC_CARR41 to $TC_CARR65 include fine offset parameters that can be added to the values in the basis parameters.
  • Page 508 Tool offsets 7.8 Tool holder kinematics Program code Comments N10 $TC_CARR8[1]=1 ; Definition of the Y component of the first rotary axis of toolholder 1. N20 $TC_DP1[1,1] = 120 ; Definition of a shaft miller. N30 $TC_DP3[1,1]=20 ; Definition of a shaft miller, 20 mm long.
  • Page 509 Tool offsets 7.8 Tool holder kinematics The rotary axes consisting of: ● The two channel identifiers for the reference of the rotary axes V and V , whose position is, when required, accessed to determine the orientation of the toolholder that can be orientated.
  • Page 510: 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, TCOFRZ) 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 511 Tool offsets 7.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) Significance Request toolholder with the number "m" TCARR=[<m>]: 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 512 Tool offsets 7.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) Request toolholder (TCARR) With TCARR, the toolholder number m is requested with its geometry data (compensation memory). With m=0, the active toolholder is deselected. The geometry data of the toolholder only become active after a tool is called. The selected tool remains active after a toolholder change has taken place.
  • Page 513 Tool offsets 7.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) Note Tool orientation It is not possible for the control to check whether the rotation angles calculated by means of the frame orientation are settable on the machine. If the rotary axes of the toolholder are arranged such that the tool orientation calculated by means of the frame orientation cannot be reached, then an alarm is output.
  • Page 514: Online Tool Length Compensation (Toffon, Toffof)

    Tool offsets 7.10 Online tool length compensation (TOFFON, TOFFOF) 7.10 Online tool length compensation (TOFFON, TOFFOF) 7.10 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.
  • Page 515 Tool offsets 7.10 Online tool length compensation (TOFFON, TOFFOF) Example of tool length compensation selection Program code Comments 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 N10 TRAORI(1)
  • Page 516 Tool offsets 7.10 Online tool length compensation (TOFFON, TOFFOF) Description 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 set up.
  • Page 517: 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) 7.11 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 518 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) <value> The following values can be assigned to the CUTMOD command: The function is deactivated. The values supplied from system variables $P_AD... are the same as the corresponding tool parameters. >...
  • Page 519 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Note SD42984 $SC_CUTDIRMOD The function can be activated using the CUTMOD command replaces the function that can be activated using the setting data SD42984 $SC_CUTDIRMOD. However, this function remains available unchanged.
  • Page 520 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Program code Comments N190 $TC_CARR13[2]=30 N200 TCARR=2 N210 X0 Y0 Z0 ; 10.892 0.000 -5.134 N220 G42 Z–10 ; 8.696 0.000 –17.330 N230 Z–20 ; 8.696 0.000 –21.330 N240 X10 ;...
  • Page 521 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Further information Effectiveness of the modified cutting data The modified tool nose position and the modified tool nose reference point are immediately effective when programming, even for a tool that is already active. A tool does not have to be re-selected for this purpose.
  • Page 522 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 523 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) All main run variables ($AC_CUTMOD_ANG, $AC_CUTMOD and $AC_CUT_INV) can be read in synchronized actions. A read access operation from the preprocessing generates a preprocessing stop. Modified cutting data: If a tool rotation is active, the modified data are made available in the following system variables: System variable...
  • Page 524 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 525: 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 TANGON instruction, the tool can be positioned relative to the tangent.
  • Page 526: Path Traversing Behavior

    Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Applications Tangential control can be used in applications such as: ● Tangential positioning of a rotatable tool during nibbling ● Follow-up of workpiece alignment for a bandsaw (s. illustration). ●...
  • Page 527 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Simplified programming: A coupling factor of 1 does not have to be programmed explicitly. TANG(C, X, Y, 1, "B", "P") can be abbreviated to TANG(C, X, Y, , , "P"). As before, TANG(C, X, Y, 1, "B", "S") can be written as TANG(C, X, Y).
  • Page 528 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) TLIFT Insert intermediate block at contour corners TANGDEL Delete definition of a tangential follow-up. Example: TANGDEL (FAxis) Faxis Following axis: additional tangential following rotary axis. Laxis1, Laxis2 Leading axes: path axes, which determine the tangent for the following axis.
  • Page 529 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Example: Plane change Program code Comments N10 TANG(A, X, Y,1) ; 1. Defining the tangential tracking. N20 TANGON(A) ; Activating the coupling. N30 X10 Y20 ; Radius N80 TANGOF(A) ;...
  • Page 530 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Example: Tangential tracking with automatic optimization Automatic optimization using Dist and angular tolerance. Program code Comments N80 G0 C0 ; Y1 is geometry axis 2. N100 F=50000 N110 G1 X1000 Y500 N120 TRAORI ;...
  • Page 531 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.
  • Page 532 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) The path axis is used for turning if the following axis has been used once as the path axis. A maximum axis velocity of the following axis can be achieved with function TFGREF[ax] = 0.001.
  • Page 533 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Defining the angle change The angular change limit at which an intermediate block is automatically inserted is defined via machine data $MA_EPS_TLIFT_TANG_STEP. Effect on transformations The position of the rotary axis to which follow-up control is applied can act as the input value for a transformation.
  • Page 534: 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 535 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) Feed optimization on curved path sections Feed polynomial F=FPO and feed spline FCUB should always be traversed at constant cutting rate CFC, thereby allowing a jerk-free setpoint feed profile to be generated. This enables creation of a continuous acceleration setpoint feed profile.
  • Page 536 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 537 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 538 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) F=FPO(…,…,…) The feed characteristic is programmed directly via a polynomial. The polynomial coefficients are specified according to the same method used for polynomial interpolation. Example: F=FPO(endfeed, quadf, cubf) endfeed, quadf and cubf are previously defined variables. endfeed: Feed at block end quadf:...
  • Page 539 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 540: Program Sequence With Preprocessing Memory (Stopfifo, Startfifo, Fifoctrl, Stopre)

    Path traversing behavior 8.3 Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) 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 541 Path traversing behavior 8.3 Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) Automatic preprocessing memory control Automatic preprocessing memory control is called with the FIFOCTRL command. FIFOCTRL initially works just like STOPFIFO. Whatever the programming, processing will not start until the preprocessing memory is full.
  • Page 542 Path traversing behavior 8.3 Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) Significance STOPFIFO identifies the start of a machining step to be buffered in the STOPFIFO: preprocessing memory. STOPFIFO stops processing and fills the preprocessing memory until: • STARTFIFO or STOPRE is detected •...
  • Page 543: 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 544 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Example: Stop events In the stop delay section, a change in the feedrate and feedrate inhibit are ignored. They only become effective after the stop delay section. Stop events are divided into: "Soft"...
  • Page 545 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Explanation of the responses immediate ("hard" stop event) Stops immediately even in stop delay section. delayed ("soft" stop event) Does not stop (even short-term) until after stop delay section. Alarm 16954 Program is aborted because illegal program commands have been used in stop delay section.
  • Page 546 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Example: Program excerpt The following program block is repeated in a loop: As shown in the diagram, the user presses "Stop" in the stop delay section and the NC starts deceleration outside the stop delay section, i.e., in block N100.
  • Page 547 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Advantages of the stop delay section A program section is processed without a drop in velocity. If the user aborts the program after a stop with RESET, the aborted program block is after the protected section.
  • Page 548 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 549 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) System variables A stop delay section can be detected in the parts program with $P_DELAYFST. If bit 0 of the system variables is set to 1, parts program processing is now in a stop delay section. A stop delay section can be detected in synchronized actions with $AC_DELAYFST.
  • Page 550: Preventing Program Position For Serupro (Iptrlock, Iptrunlock)

    Path traversing behavior 8.5 Preventing program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) 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 551 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 552 Path traversing behavior 8.5 Preventing program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) Continuing from the current block The interruption pointer is placed on the current block with IPTRUNLOCK as the interruption point for the following program section. Once the search target is found a new search target can be repeated with the hold block. An interrupt pointer edited by the user must be removed again via the HMI.
  • Page 553: 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, RMI, RM 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 554 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Syntax REPOSA RMI DISPR=… REPOSA RMB REPOSA RME REPOSA RMN REPOSL RMI DISPR=… REPOSL RMB REPOSL RME REPOSL RMN REPOSQ RMI DISPR=… DISR=… REPOSQ RMB DISR=…...
  • Page 555 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RM 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 556 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) 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 557 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RM Example: Approach tool in a semicircle, REPOSH, REPOSHA The tool approaches the repositioning point along a semi-circle with a diameter of DISR=…. The control automatically calculates the necessary intermediate point between the start and repositioning point.
  • Page 558 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) 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 559 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RM Sample application: A sensor will recognize the approach to a clamp. An ASUP is initiated to bypass the clamp. Afterwards, a negative DISPR is repositioned on one point behind the clamp and the program is continued.
  • Page 560 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) 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.
  • Page 561 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RM 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 562 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) The following applies to the REPOSH and REPOSQ circular motions: The circle is traversed in the specified working planes G17 to G19. If you specify the third geometry axis (infeed direction) in the approach block, the repositioning point is approached along a helix in case the tool position and programmed position in the infeed direction do not coincide.
  • Page 563: 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 In critical program sections, it may be necessary to limit the jerk to below the maximum possible value - e.g. to reduce the level of stress on the machine. The acceleration mode SOFT must be active.
  • Page 564: Percentage Velocity Correction (Velolim)

    Path traversing behavior 8.7 Influencing the motion control 8.7.2 Percentage velocity correction (VELOLIM) Function In critical program sections, it may be necessary to limit the velocity to below the maximum possible value - e.g. for instance to reduce the level of stress on the machine or to improve the machining quality.
  • Page 565: 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 566: 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 567 Path traversing behavior 8.8 Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) ATOL Command for programming an axis-specific tolerance 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 <axis>: The value for the axis tolerance will be specified as a length or an <value>:...
  • Page 568 Path traversing behavior 8.8 Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) Example Program code Comment COMPCAD G645 G1 F10000 ; Activate COMPCAD compressor function. X... Y... Z... ; The machine and setting data is applied here. X... Y... Z... X... Y... Z... CTOL=0.02 ;...
  • Page 569 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 570 Path traversing behavior 8.8 Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) Note If no tolerance values have been programmed, the $A variables will not be differentiated sufficiently to distinguish potential differences in the tolerances of the individual functions, since they can only declare one value. Circumstances like this can occur if the machine data and the setting data set different tolerances for compressor functions, smoothing and orientation smoothing.
  • Page 571: 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 572: Axis Couplings

    Axis couplings 9.1 Coupled motion (TRAILON, TRAILOF) Significance TRAILON Command for activating and defining a coupled axis grouping Active: modal <following axis> 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 573 Axis couplings 9.1 Coupled motion (TRAILON, TRAILOF) Note Coupled axis motion is always executed in the base coordinate system (BCS). The number of coupled axis groupings which may be simultaneously activated is limited only by the maximum possible number of combinations of axes on the machine. Example The workpiece is to be machined on two sides with the axis configuration shown in the diagram.
  • Page 574 Axis couplings 9.1 Coupled motion (TRAILON, TRAILOF) Further information Axis types A coupled axis grouping can consist of any desired combinations of linear and rotary axes. A simulated axis can also be defined as a leading axis. Coupled-motion axes Up to two leading axes can be assigned simultaneously to a trailing axis. The assignment is made in different combinations of coupled axes.
  • Page 575 Axis couplings 9.1 Coupled motion (TRAILON, TRAILOF) CAUTION If a coupled axis grouping is activated: • in synchronized actions • in the part program with leading axes that are not program axes in the channel of the coupled-motion axes it is the specific responsibility of the user/machine manufacturer to take suitable action to ensure that the traversing of the leading axis will not cause the overloading of the coupled-motion axes.
  • Page 576: 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 577: 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 578 Axis couplings 9.2 Curve tables (CTAB) Significance CTABDEF( ) Start of curve table definition CTABEND End of curve table definition <following Axis whose motion is to be calculated using the curve table axis> <leading axis> Axis providing the master values for the calculation of the following axis motion <n>...
  • Page 579 Axis couplings 9.2 Curve tables (CTAB) Examples Example 1: Program section as curve table definition A program section is to be used unchanged for defining a curve table. The STOPRE command for preprocessing stop can remain and is reactivated immediately as soon as the program section is no longer being used for table definition and CTABDEF and CTABEND have been removed.
  • Page 580 Axis couplings 9.2 Curve tables (CTAB) 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 ; 1st motion operation, defines the starting values and 1st intermediate point: Master value: 0, Following value: 0 N120 X20 Y0 ;...
  • Page 581 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 582 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 583 Axis couplings 9.2 Curve tables (CTAB) Assignments to R-parameters Assignments to R-parameters in the table definition are reset after CTABEND. Example: Program code Comments R10=5 R11=20 ; R10=5 CTABDEF G1 X=10 Y=20 F1000 R10=R11+5 ; R10=25 X=R10 CTABEND ; R10=5 Activating ASPLINE, BSPLINE, CSPLINE If an ASPLINE, BSPLINE or CSPLINE is activated within a curve table definition CTABDEF ...
  • Page 584 Axis couplings 9.2 Curve tables (CTAB) A table created in the dynamic memory (DRAM) will be deleted on POWER ON and may have to be regenerated. Once created, the curve table can be applied to any axis combinations of leading and following axis and is independent of the axes used to create the curve table.
  • Page 585: Check For Presence Of Curve Table (Ctabexists)

    Axis couplings 9.2 Curve tables (CTAB) 9.2.2 Check for presence of curve table (CTABEXISTS) Function The CTABEXISTS command can be used to check if a specific curve table number is present in the NC memory. Syntax CTABEXISTS(<n>) Significance CTABEXISTS Checks for the presence of curve table number <n> in the static or dynamic NC memory.
  • Page 586 Axis couplings 9.2 Curve tables (CTAB) Significance CTABDEL Command for deleting curve tables <n> Number (ID) of the curve table to be deleted When a curve table range CTABDEL(<n>,<m>) is deleted, <n> is used to specify the number of the first curve table in the range. <m>...
  • Page 587: 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(<n>)
  • Page 588 Axis couplings 9.2 Curve tables (CTAB) <m> When a curve table range CTABLOCK(<n>,<m>)/CTABUNLOCK(<n>,<m>) is locked/unlocked, <m> is used to specify the number of the last curve table in the range. <m> has to be greater than <n>. <memory Specification of memory location (optional) location>...
  • Page 589: Curve Tables: Determine Table Properties (Ctabid, Ctabislock, Ctabmemtyp, Ctabperiod)

    Axis couplings 9.2 Curve tables (CTAB) 9.2.5 Curve tables: Determine table properties (CTABID, CTABISLOCK, CTABMEMTYP, CTABPERIOD) Function These commands can be used to poll important properties of a curve table (table number, lock state, memory location, periodicity). Syntax CTABID(<p>) CTABID(<p>,<memory location>) CTABISLOCK(<n>) CTABMEMTYP(<n>) TABPERIOD(<n>)
  • Page 590 Axis couplings 9.2 Curve tables (CTAB) CTABMEMTYP Returns the memory location of curve table number <n>: Table in the static NC memory Table in the dynamic NC memory Table does not exist CTABPERIOD Returns the periodicity of curve table number <n>: Table is not periodic Table is periodic in the leading axis Table is periodic in the leading and following axes...
  • Page 591: 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 592 Axis couplings 9.2 Curve tables (CTAB) CTAB Read following axis value for specified leading axis value (<master value>) CTABINV Read leading axis value for specified following axis value (<following value>) CTABTMIN Define following axis minimum value: • In the entire definition range of the curve table •...
  • Page 593 Axis couplings 9.2 Curve tables (CTAB) Examples Example 1: Define following axis and leading axis values at the start and end of the curve table, along with the minimum and maximum values of the following axis in the entire definition range of the curve table.
  • Page 594 Axis couplings 9.2 Curve tables (CTAB) Example 2: Determination of following axis values at the start and end of the curve segment associated with leading axis value X=30. Program code Comment N10 DEF REAL STARTPOS N20 DEF REAL ENDPOS N30 DEF REAL GRADIENT N100 CTABDEF(Y,X,1,0) ;...
  • Page 595 Axis couplings 9.2 Curve tables (CTAB) CTAB with non-periodic curve tables If the specified <master value> is outside the definition range, the upper or lower limit will be output as the following value: CTAB with periodic curve tables If the specified <master value> is outside the definition range, the master value is evaluated modulo of the definition range and the corresponding following value is output: Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 596 Axis couplings 9.2 Curve tables (CTAB) Approximate value for CTABINV The CTABINV command, therefore, requires an approximate value for the expected master value. CTABINV returns the master value that is closest to the approximate value. The approximate value can be, for example, the master value from the previous interpolation cycle.
  • Page 597: 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(<memory location>)
  • Page 598 Axis couplings 9.2 Curve tables (CTAB) CTABPOLID Determine the number of curve polynomials used by curve table number <n> CTABPOL Determine the number of curve polynomials used in the specified <memory location> CTABFPOL Determine the number of curve polynomials remaining possible in the specified <memory location>...
  • Page 599: 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.
  • Page 600 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 LEADON Activate master value coupling...
  • Page 601 Axis couplings 9.3 Axial leading value coupling (LEADON, LEADOF) Example of master value coupling from synchronous action In a pressing plant, an ordinary mechanical coupling between a leading axis (stanchion shaft) and axis of a transfer system comprising transfer axes and auxiliary axes is to be replaced by an electronic coupling system.
  • Page 602 Axis couplings 9.3 Axial leading value coupling (LEADON, LEADOF) Comments Program code Comments Defines all static synchronized actions. ****Reset marker N2 $AC_MARKER[0]=0 $AC_MARKER[1]=0 $AC_MARKER[2]=0 $AC_MARKER[3]=0 $AC_MARKER[4]=0 $AC_MARKER[5]=0 $AC_MARKER[6]=0 $AC_MARKER[7]=0 **** E1 0=>1 transfer ON N10 IDS=1 EVERY ($A_IN[1]==1) AND ($A_IN[16]==1) AND ($AC_MARKER[0]==0) DO LEADON(X,LW,1) LEADON(YL,LW,2) LEADON(ZL,LW,3) $AC_MARKER[0]=1 **** E1 0=>1 coupling roller feed ON N20 IDS=11 EVERY ($A_IN[1]==1) AND ($A_IN[5]==0) AND ($AC_MARKER[5]==0)
  • Page 603 Axis couplings 9.3 Axial leading value coupling (LEADON, LEADOF) If the following axis is not yet at the correct position when the master value coupling is activated, the synchronization run is automatically initiated as soon as the position setpoint value calculated for the following axis is approximately the real following axis position. During the synchronization procedure the following axis is traversed in the direction that is defined by the setpoint speed of the following axis (calculated from master spindle and using the CTAB curve table).
  • Page 604 Axis couplings 9.3 Axial leading value coupling (LEADON, LEADOF) Setpoint coupling is only possible if the leading and following axis are interpolated by the same NCU. With an external leading axis, the following axis can only be coupled to the leading axis via the actual values.
  • Page 605 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 606: 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 607 Axis couplings 9.4 Electronic gear (EG) Syntax EGDEF(following axis,leading axis1,coupling type1,leading axis2,coupling type2,...) Significance EGDEF Definition of an electronic gear Following axis Axis that is influenced by the leading axes Leading axis1 Axes that influence the following axis ,..., Leading axis5 Coupling type1 Coupling type ,...,...
  • Page 608: 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 609 Axis couplings 9.4 Electronic gear (EG) Version 2: Following axis Block change mode The following modes can be used: "NOC" Block change takes place immediately "FINE" Block change is performed in "Fine synchronism" "COARSE" Block change is performed in "Coarse synchronism"...
  • Page 610 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 611: Switching-In The Electronic Gearbox (Egofs, Egofc)

    Axis couplings 9.4 Electronic gear (EG) For more information about using curve tables and cascading and synchronizing electronic gears, please refer to: References: Function Manual Special Functions; Coupled Axes and ESR (M3), "Coupled Motion and Leading Value Coupling". Response of the Electronic gear at Power ON, RESET, mode change, block search ●...
  • Page 612 Axis couplings 9.4 Electronic gear (EG) Version 2: Syntax Description EGOFS(following axis,leading This command parameter axis1,…,leading axis5) setting made it possible to selectively remove the influence of the individual leading axes on the following axis' motion. At least one leading axis must be specified. The influence of the specified leading axes on the slave is selectively inhibited.
  • Page 613: Deleting The Definition Of An Electronic Gear (Egdel)

    Axis couplings 9.4 Electronic gear (EG) 9.4.4 Deleting the definition of an electronic gear (EGDEL) Function An EG axis group must be switched-out before its definition can be deleted. Programming Syntax Significance EGDEL(following The coupling definition of the axis group is deleted. Additional axis) axis groups can be defined by means of EGDEF until the maximum number of simultaneously activated axis groups is...
  • Page 614: 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 615: Synchronous Spindle: Programming (Coupdef, Coupdel, Coupon, Couponc, 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 616 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(FS,LS,TFS,TLS,block change,coupling type) COUPON(FS,LS,POSFS) COUPONC(FS,LS) COUPOF(FS,LS,POSFS,POSLS) COUPOFS(FS,LS) COUPOFS(FS,LS,POSFS) COUPRES(FS,LS) COUPDEL(FS,LS) WAITC(FS,block change,LS,block change) Note...
  • Page 617 Axis couplings 9.5 Synchronous spindle Significance COUPDEF Define/change coupling on user-specific basis COUPON Activate coupling. The following spindle and main spindle are synchronized based on the current speed COUPONC Transfer coupling when activating with previous programming of M3 S... or M4 S..A difference in speed for the following spindle is transferred immediately.
  • Page 618 Axis couplings 9.5 Synchronous spindle Optional parameters: Designation of main spindle Specification with spindle number: e.g. S2, S1 ÜFS, ÜLS Transformation ratio between FS and LS. TFS = numerator, TLS = denominator Default: TFS/TLS = 1.0; specification of denominator optional Block change Block change behavior The block change is:...
  • Page 619 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 3,000 rpm, following spindle rotates at 500 rpm N10 COUPDEF(S2,S1,1,1,"NOC","Dv") ;...
  • Page 620 Axis couplings 9.5 Synchronous spindle Example 2: Programming a difference in speed Programming Comment ; Leading spindle = master spindle = spindle 1 ; Following spindle = spindle 2 N01 M3 S500 ; Leading spindle rotates at 500 rpm N02 M2=3 S2=300 ;...
  • Page 621 Axis couplings 9.5 Synchronous spindle 3. Activate coupling with following spindle stationary with COUPON Programming Comment ; Leading spindle = master spindle = spindle 1 ; Following spindle = spindle 2 N05 SPOS=10 SPOS[2]=20 ; Following spindle S2 in positioning mode N15 COUPDEF(S2,S1,1) ;...
  • Page 622 Axis couplings 9.5 Synchronous spindle Define synchronized spindle pair Configured coupling: For the configured coupling, the leading and following spindles are defined in machine data. The configured spindles cannot be changed in the part program. The coupling can be parameterized in the part program using COUPDEF (on condition that no write protection is valid).
  • Page 623 Axis couplings 9.5 Synchronous spindle Note The transformation ratio can also be changed on-the-fly (when the coupling is active and the spindles are rotating). Block change behavior NOC, FINE, COARSE, IPOSTOP The following abbreviated notation can be used when programming the block change behavior: ●...
  • Page 624 Axis couplings 9.5 Synchronous spindle Activate synchronized mode COUPON, POS ● Activation of coupling with any angle reference between LS and FS: – COUPON(S2, S1) – COUPON(S2, S1, POS – COUPON(S2) ● Activation of coupling with angular offset POS Position-synchronized coupling for profiled workpieces. refers to the 0°...
  • Page 625 Axis couplings 9.5 Synchronous spindle Difference in speed M3 S... or M4 S... A difference in speed results from signed superimposition of two sources of speed and is programmed again for the following spindle e.g. where Sn=... or Mn=3, Mn=4 in speed control mode during an active synchronized spindle coupling.
  • Page 626 Axis couplings 9.5 Synchronous spindle Velocity, acceleration: FA, ACC, OVRA, VELOLIMA Axial velocity and acceleration of a following spindle can be programmed with: ● FA[SPI(Sn)] and FA[Sn] (axial velocity) ● ACC[SPI(Sn)] and ACC[Sn] (axial acceleration) ● OVRA[SPI(Sn)] and OVRA[Sn] (axial override) ●...
  • Page 627 Axis couplings 9.5 Synchronous spindle Deactivate coupling COUPOF COUPOF can be used to define the turn-off behavior of the coupling: ● Deactivation of coupling with immediate block change: – COUPOF(S2,S1) (with specification of leading spindle) – COUPOF(S2) (without specification of leading spindle) ●...
  • Page 628 Axis couplings 9.5 Synchronous 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[FS] Value Significance No coupling active Synchronous spindle coupling active Note Other system variable values refer to the axis operation.
  • Page 629: 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 630 Axis couplings 9.6 Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Dynamic configuration extension MASLDEF Coupling user-defined using machine data or also create/change from the part program. MASLOFS Open the coupling analog to MASLOF and automatically brake the slave spindle. MASLDEL Uncouple master/slave axis group and delete group definition.
  • Page 631 Axis couplings 9.6 Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Program code Comments N37262 $MA_MS_COUPLING_ALWAYS_ACTIVE[AX2]=0 ; Briefly switch-out the permanent coupling. N37263 NEWCONF N37264 STOPRE MASLOF(Y1) ; Temporary coupling open. N5 PRESETON(Y1,0,Z1,0,B1,0,C1,0,U1,0) ; Set the actual value of the non-referenced slave axes as these are activated with power on.
  • Page 632 Axis couplings 9.6 Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Further information General MASLOF This instruction is executed directly for spindles in speed control mode. The slave spindles rotating at this instant keep their speeds until a new speed is programmed. Dynamic configuration extension MASLDEF Definition of a master/slave group from the part program.
  • Page 633 Axis couplings 9.6 Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Coupling behavior for spindles For spindles in the open-loop speed controlled mode, the coupling behavior of MASLON, MASLOF, MASLOFS and MASLDEL are explicitly defined using machine data MD37263 $MA_MS_SPIND_COUPLING_MODE. For the default setting with MD37263 = 0, the slave axes are coupled-in and coupled-out only when the axes involved are at standstill.
  • Page 634 Axis couplings 9.6 Master/slave group (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 635: Motion Synchronous Actions

    Motion synchronous actions 10.1 Basics 10.1 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 636 Motion synchronous actions 10.1 Basics ● Optimizing runtime-critical applications (e.g. a tool change) ● Fast response to an external event ● Programming AC controls ● Setting up safety functions ● ..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.
  • Page 637 Motion synchronous actions 10.1 Basics Significance: Instruction to initiate the programmed action(s) Only effective if the <condition> is fulfilled (if programmed). → See "Actions" <action1> Action(s) to be started <action2> Examples: … • Assign variable • Start technology cycle <KEYWORD> The cyclic check of the <condition>...
  • Page 638: Area Of Validity And Machining Sequence (Id, Ids)

    Motion synchronous actions 10.1 Basics Example Program code Comments WHEN $AA_IW[Q1]>5 DO M172 H510 ; If the actual value of axis Q1 exceeds 5 mm, auxiliary functions M172 and H510 are output at the PLC interface. 10.1.1 Area of validity and machining sequence (ID, IDS) Function Area of validity The area of validity of a synchronized action is defined using the identification ID or IDS:...
  • Page 639 Motion synchronous actions 10.1 Basics Programming Syntax Significance No modal ID The synchronized action is only effective in the automatic mode. It applies only to the next executable block (block with motion statement or other machine action), is non-modal. Example: WHEN $A_IN[3]==TRUE DO $A_OUTA[4]=10 ID=<n>...
  • Page 640: 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 641 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 642 Motion synchronous actions 10.1 Basics Further information Conditions The condition is a logical expression which can be built up in any way using Boolean operators. Boolean expressions should always be given in brackets. The condition is checked in the interpolation cycle. A G code can be given before the condition.
  • Page 643: Actions (Do)

    Motion synchronous actions 10.1 Basics 10.1.3 Actions (DO) Function In synchronized actions, you can program one or more actions. All actions programmed in a block are active in the same interpolation cycle. Syntax DO <action1> <action2> ... Significance Initiates an action or a technology cycle when the condition is satisfied. <action>...
  • Page 644: Operators For Conditions And Actions

    Motion synchronous actions 10.2 Operators for conditions and actions 10.2 Operators for conditions and actions 10.2 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 645 Motion synchronous actions 10.2 Operators for conditions and actions ● Mathematical functions Programming Comments DO $AC_PARAM[3] = COS($AC_PARAM[1]) ● 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 646: 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 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 647 Motion synchronous actions 10.3 Main run variables for synchronized actions The 2nd letter is usually only used for main run variables. Preprocessing variables, such as e.g. $P_, are usually executed without the 2nd letter. An underscore and the subsequent variable name (usually an English designation or abbreviation) follow the prefix ($ followed by one or two letters).
  • Page 648: 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 649: 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 650 Motion synchronous actions 10.3 Main run variables for synchronized actions Index Data type <x> (MD18660 to MD18665) Block REAL BOOL AXIS CHAR STRING SGUD SYG_RS[ i ] SYG_IS[ i ] SYG_BS[ i ] SYG_AS[ i ] SYG_CS[ i ] SYG_SS[ i ] MGUD SYG_RM[ i ] SYG_IM[ i ]...
  • Page 651: 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 652: Synchronized Action Marker ($Ac_Marker[N])

    Motion synchronous actions 10.3 Main run variables for synchronized actions Syntax PROC UP(AXIS PAR1=NO_AXIS, AXIS PAR2=NO_AXIS) IF PAR1 <>NO_AXIS... 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)
  • Page 653: 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 654: Arithmetic Parameter ($R[N])

    Motion synchronous actions 10.3 Main run variables for synchronized actions 10.3.7 Arithmetic parameter ($R[n]) Function This static array variable is used for calculations in the part program and synchronized actions. Syntax Programming in part program: REAL R[n] REAL Rn Programming in synchronized actions: REAL $R[n] REAL $Rn Arithmetic parameters...
  • Page 655: Read And Write Nc Machine And Nc Setting Data

    Motion synchronous actions 10.3 Main run variables for synchronized actions 10.3.8 Read and write NC machine and NC setting data Function It is also possible to read and write NC machine / setting data of synchronized actions. When reading and writing machine data array elements, an index can be left out during programming.
  • Page 656 Motion synchronous actions 10.3 Main run variables for synchronized actions Write MD and SD at the main run time The currently set access authorization level must allow write access. The active states are listed for all MD and SD in References: /LIS/, Lists (Book 1). The MD and SD to be written must be addressed preceded by $$.
  • Page 657: 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 $AC_TIMER[n] Channel-specific timer of data type REAL Unit in seconds Index of timer variable Setting timers Incrementation of a timer variable is started by means of value assignment:...
  • Page 658: 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 659 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 660: 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 in the 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 661 Motion synchronous actions 10.3 Main run variables for synchronized actions $AC_BLOCKTYPE $AC_BLOCKTYPEINFO Value: Value: Not equal to 0 Meaning: Original Intermediate block Trigger for intermediate block: 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 662 Motion synchronous actions 10.3 Main run variables for synchronized actions Note $AC_BLOCKTYPEINFO also always includes the value for the block type in the thousands position (T) in the case that there is an intermediate block. The thousands position is not accepted in $AC_BLOCKTYPE not equal to 0.
  • Page 663: Actions In Synchronized Actions

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4 Actions in synchronized actions 10.4 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 664 Motion synchronous actions 10.4 Actions in synchronized actions Synchronized action Description DO $V…= Assign variable (servo-values) DO $A...= Assign variable (main-run variable) DO $AC…[n]= Special main run variable DO $AC_MARKER[n]= Read or write synchronized action markers DO $AC_PARAM[n]= Read or write synchronized action parameters DO $R[n]= Read or write arithmetic variable DO $MD...=...
  • Page 665 Motion synchronous actions 10.4 Actions in synchronized actions Synchronized action Description DO [array n, m]=SET(value, value, ...) Initialization of array variables with value lists DO [array n, m]=REP(value, value, ...) Initialization of array variables with the same values DO SETM(Marker No.) Set wait markers DO CLEARM(Marker No.) Delete wait markers...
  • Page 666: Output Of Auxiliary Functions

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.2 Output of auxiliary functions Function Output timing Auxiliary functions are output directly in the synchronized action at the output time of the action. The output timing defined in the machine data for auxiliary functions is not active. The output timing is given when the condition is fulfilled.
  • Page 667: 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 668: Cancel Preprocessing Stop (Stopreof)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.4 Cancel preprocessing stop (STOPREOF) Function In the case of an explicitly programmed preprocessing stop STOPRE or a preprocessing stop implicitly activated by an active synchronized action, STOPREOF cancels the preprocessing stop after the next machining block as soon as the condition is fulfilled. Note STOPREOF must be programmed with the keyword WHEN and non-modally (without ID number).
  • Page 669: 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 670 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 671: 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 672 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) Example of laser output control One of the possible applications of polynomial definition is the laser output control.
  • Page 673 Motion synchronous actions 10.4 Actions in synchronized actions Program code Comments $AC_FCTLL[1]=0.2 Definition of a polynomial coefficients $AC_FCTUL[1]=0.5 $AC_FCT0[1]=0.35 $AC_FCT1[1]=1.5EX-5 STOPRE ID=1 DO $AC_FCTUL[1]=$A_INA[2]*0.1 +0.35 Change upper limit online. ID=2 DO SYNFCT(1,$A_OUTA[1],$AC_VACTW) Depending on the path velocity (stored in $AC_VACTW) the laser power control is controlled via analog output 1 Note...
  • Page 674: 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 675 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 676 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 677: 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...
  • Page 678 Motion synchronous actions 10.4 Actions in synchronized actions Note Limitation of the speed of the superimposed interpolator using MD 32020: JOG_VELO with Ipo clock cycle 12 ms. Formula for the speed: Example Subprogram "AON": Clearance control on Program code Comments PROC AON $AA_OFF_LIMIT[Z]=1 ;...
  • Page 679 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 680: 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 681 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 <function>: Type: Range of values: 1 to 3 Note: Must match the setting for FCTDEF. Main run variable for which a function value is to <reference value>: be calculated using the polynomial function...
  • Page 682 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 683: 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. Thus, the number of active directions of offset is determined by the geometry axes that are active at the same time.
  • Page 684 Motion synchronous actions 10.4 Actions in synchronized actions Examples Example 1: Selecting the tool length compensation Program code Comments 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 685: 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 686: 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 DO POS Start/position command axis Axis Name of the axis to be traversed Value...
  • Page 687 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 688: 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 689: 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 690: 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 691 Motion synchronous actions 10.4 Actions in synchronized actions Example: Program sequence for axis replacement, two channels The Z axis has been declared in the first and second channels. Program sequence in the first channel: Program code Comments WHEN TRUE DO RELEASE(Z) Z axis becomes the neutral axis WHENEVER($AA_TYP[Z]==1) DO RDISABLE Read-in inhibit as long as Z axis...
  • Page 692 Motion synchronous actions 10.4 Actions in synchronized actions Program sequence in the first channel continues: Program code Comments N150 WAIM(10, 1, 2) Synchronize with channel 2 WHEN TRUE DO GET(Z) Move Z axis to this channel WHENEVER($AA_TYP[Z]==0) DO RDISABLE Read-in inhibit as long as Z axis is in another channel N160 G4 F0.1...
  • Page 693 Motion synchronous actions 10.4 Actions in synchronized actions ● 4: Neutral axis is controlled by PLC ● 5: Another channel has the interpolation right, axis is requested for NC program ● 6: Another channel has the interpolation right, axis is requested as neutral axis ●...
  • Page 694 Motion synchronous actions 10.4 Actions in synchronized actions Axis already assigned to requested channel Assignment as NC program axis with reorganize: If the requested axis has already been assigned to the requesting channel at the point of activation, and its status is that of a neutral axis (not controlled by the PLC) ($AA_AXCHANGE_TYP[<axis>]==3), it is assigned to the NC program ($AA_AXCHANGE_TYP[<axis>]==0).
  • Page 695: 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[<axis>]=<value> 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 696: 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 697: 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 698: Spindle Motions

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.20 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 699: Coupled Motion (Trailon, Trailof)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.21 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 700 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 701: Leading Value Coupling (Leadon, Leadof)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.22 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 702 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 703 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 704: Measuring (Meawa, Meac)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.23 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 705: Initialization Of Array Variables (Set, Rep)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.24 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 706: Set/Delete Wait Markers (Setm, Clearm)

    Motion synchronous actions 10.4 Actions in synchronized actions Example Program code Comments WHEN TRUE DO SYG_IS[0]=REP(0) Result: WHEN TRUE DO SYG_IS[1]=SET(3,4,5) SYG_IS[0]=0 SYG_IS[1]=3 SYG_IS[2]=4 SYG_IS[3]=5 SYG_IS[4]=0 10.4.25 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.
  • Page 707: Fault Responses (Setal)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.26 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 708: Travel To Fixed Stop (Fxs, Fxst, Fxsw, Focon, Focof)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.27 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 709 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 710 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 711: Determining The Path Tangent In Synchronized Actions

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.28 Determining the path tangent in synchronized actions Function The system variable $AC_TANEB (Tangent ANgle at End of Block), which can be read in synchronized actions, calculates the angle between the path tangent at the end of the current block and the path tangent at the start of the programmed following block.
  • Page 712: Time Use Evaluation Of Synchronized Actions

    Motion synchronous actions 10.4 Actions in synchronized actions The resulting override is provided for synchronized actions to read in the system variables: $AA_TOTAL_OVR Axial override $AC_TOTAL_OVR Path override The resulting override can be calculated as: $AA_OVR * $AA_PLC_OVR or $AC_OVR * $AC_PLC_OVR 10.4.30 Time use evaluation of synchronized actions Function...
  • Page 713: Motion Synchronous Actions

    Motion synchronous actions 10.4 Actions in synchronized actions Significance The variables only have valid values if machine data $MN_IPO_MAX_LOAD is greater than 0. Otherwise the variables for both SINUMERIK powerline and solution line systems always specify the net computing time during which the interrupts caused by HMI are no longer taken into account.
  • Page 714: Technology Cycles

    Motion synchronous actions 10.5 Technology cycles 10.5 Technology cycles 10.5 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 715 Motion synchronous actions 10.5 Technology cycles Parameter transfer Parameter transfer to technology cycles is possible. Both simple data types which are transferred as formal "Call by Value" parameters and default settings which take effect when technology cycles are called up are taken into account. These are: ●...
  • Page 716 Motion synchronous actions 10.5 Technology cycles Main program: Program code Comments ID=1 EVERY $A_IN[1]==1 DO AXIS_X ; If input 1 is 1, start axis program AXIS_X. ID=2 EVERY $A_IN[2]==1 DO AXIS_Y ; If input 2 is 1, start axis program AXIS_Y. ID=3 EVERY $A_IN[3]==1 DO AXIS_Z ;...
  • Page 717 Motion synchronous actions 10.5 Technology cycles 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. Program code PROC CYCLE N10 DEF REAL...
  • Page 718: 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 719: 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 719)").
  • Page 720: 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 721: Cascading Technology Cycles

    Motion synchronous actions 10.5 Technology cycles Example of ICYCOF processing mode Program code Comments IPO cycle PROC TECHNOCYC $R1=1 2.25 POS[X]=100 ICYCOF $R1=2 $R2=$R1+1 POS[X]=110 $R3=3 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.
  • Page 722: Technology Cycles In Non-Modal Synchronized Actions

    Motion synchronous actions 10.5 Technology cycles 10.5.6 Technology cycles in non-modal synchronized actions Function Technology cycles are also possible in non-modal synchronized actions. If the processing time of a technology cycle is longer than the processing time of the associated block, the technology cycle is aborted when the block is changed. Note A technology cycle does not prevent the block change.
  • Page 723: Jump Instructions (Goto, Gotof, Gotob)

    Motion synchronous actions 10.5 Technology cycles 10.5.8 Jump instructions (GOTO, GOTOF, GOTOB) Function Jump instructions (GOTO, GOTOF, GOTOB) are possible in technology cycles. The specified labels must be present in the subprograms to prevent alarms from being triggered. Note Labels and block numbers may only be constants. Syntax Unconditional jumps GOTO Label, block number...
  • Page 724: Lock, Unlock, Reset (Lock, Unlock, Reset)

    Motion synchronous actions 10.5 Technology cycles 10.5.9 Lock, unlock, reset (LOCK, UNLOCK, RESET) Function The sequence of a technology cycle can be locked, unlocked or reset using another modal synchronized action. Syntax LOCK(<n1>,<n2>,...) UNLOCK(<n1>,<n2>,...) RESET(<n1>,<n2>,...) Significance LOCK Command to lock synchronized actions The active action is interrupted.
  • Page 725 Motion synchronous actions 10.5 Technology cycles Examples Example 1: Lock synchronized actions (LOCK) Program code N100 ID=1 WHENEVER $A_IN[1]==1 DO M130 N200 ID=2 WHENEVER $A_IN[2]==1 DO LOCK(1) Example 2: Unlock synchronized actions (UNLOCK) Program code N100 ID=1 WHENEVER $A_IN[1]==1 DO M130 N200 ID=2 WHENEVER $A_IN[2]==1 DO LOCK(1) N250 ID=3 WHENEVER $A_IN[3]==1 DO UNLOCK(1) Example 3: Interrupt technology cycle (RESET)
  • Page 726: Delete Synchronized Action (Cancel)

    Motion synchronous actions 10.6 Delete synchronized action (CANCEL) 10.6 Delete synchronized action (CANCEL) 10.6 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 727: 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 10.7 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 728 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 729 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 730 Motion synchronous actions 10.7 Control behavior in specific operating states Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 731: Oscillation

    Oscillation 11.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, 11.1 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 732 Oscillation 11.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Significance <axis> Name of oscillating axis Activate/deactivate oscillation Value: Switch oscillation on Switch oscillation off OSP1 Define position of reversal point 1 OSP2 Define position of reversal point 2 Note: If incremental movement is active, the position will be calculated incrementally to the last corresponding reversal position programmed in the NC program.
  • Page 733 Oscillation 11.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) OSCTRL Specify setting and reset options Option values 0 to 3 encrypt the behavior at the reversal points on deactivation. One of the variants from 0 to 3 can be selected. The remaining settings can be combined at will with the selected variant.
  • Page 734 Oscillation 11.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) OSNSC Define number of sparking-out strokes Define end position (in workpiece coordinate system) to be approached after deactivation of oscillation. Note: When programming OSE option 4 becomes effective implicitly for OSCTRL. Define start position (in workpiece coordinate system) to be approached prior to activation of oscillation.
  • Page 735 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 736 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 737 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]=<value> Position of reversal point = sum of offsets + programmed value ●...
  • Page 738: Oscillation Controlled By Synchronized Actions (Oscill)

    Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) 11.2 Oscillation controlled by synchronized actions (OSCILL) 11.2 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 739 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) Axis assignment, infeed OSCILL[<oscillating axis>]=(<infeed axis 1>,<infeed axis 2>,<infeed axis 3>) POSP[<infeed axis>]=(<end position>,<partial length>,<mode>) Assign infeed axis or axes for oscillating axis OSCILL: Define complete and partial infeeds (see the "File and Program POSP: Management"...
  • Page 740 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) 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 741 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) 2. Motion-synchronous action Program code Comments 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 742 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 743 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 744 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 745 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 746 Oscillation 11.2 Oscillation controlled by synchronized actions (OSCILL) Oscillation movement restarting The purpose of this synchronized action is to continue the movement of the oscillation axis on completion of the part infeed movement. The following instructions are obtained under the given assumptions (refer above): WHENEVER Whenever the remaining distance for the partial infeed of $AA_DTEPW[X]==0 DO...
  • Page 747: Punching And Nibbling On Or Off (Spof, Son, Pon, Sons, Pons, Pdelayon, Pdelayof, Punchacc)

    Punching and nibbling 12.1 Activation, deactivation 12.1 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 748 Punching and nibbling 12.1 Activation, deactivation Travel-dependent acceleration PUNCHACC can be used to specify an acceleration characteristic defining different rates of acceleration dependent on the hole spacing. Second punching interface Machines which need to use a second punching interface (second punching unit or comparable medium) alternately can be switched over to a second pair of fast digital inputs and outputs on the control (I/O pair).
  • Page 749 Punching and nibbling 12.1 Activation, deactivation Significance Activate punching. Activate nibbling. PONS Activate punching with leader. SONS Activate nibbling with leader. SPOF Deactivate punching/nibbling. PDELAYON Activate punching with delay. PDELAYOF Deactivate punching with delay PUNCHACC Activate travel-dependent acceleration. Parameter: <Smin> Minimum hole spacing <Amin>...
  • Page 750 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 751 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 752 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 753 Punching and nibbling 12.1 Activation, deactivation Use of M commands As in earlier versions, macro technology allows special M functions to be used instead of language commands (compatibility). The M functions and equivalent language commands as used in earlier systems are as follows: M20, M23 SPOF ≙...
  • Page 754: Automatic Path Segmentation

    Punching and nibbling 12.2 Automatic path segmentation 12.2 Automatic path segmentation 12.2 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 755 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 756 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 757: 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 758 Punching and nibbling 12.2 Automatic path segmentation Example: N10 G1 G91 SON X10 Y10 N20 SPP=3.5 X15 Y15 When the total traversing distance is 15 mm and the path segment length 3.5 mm, the quotient is not an integer value (4.28). In this case, the SPP value is reduced down to the next possible integer quotient.
  • Page 759: Path Segmentation For Single Axes

    Punching and nibbling 12.2 Automatic path segmentation Note Provided that punching/nibbling functions are available in the control, then it is possible to program the automatic path segmentation function with SPN or SPP even independent of this technology. 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.
  • Page 760 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 761: Grinding

    Grinding 13.1 Grinding-specific tool monitoring in the part program (TMON, TMOF) 13.1 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 762 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 763 Grinding 13.1 Grinding-specific tool monitoring in the part program (TMON, TMOF) Working without a T or D number A standard T number and standard D number can be set per machine data, which do not have to be reprogrammed and are effective after power on/reset. Example: All machining is performed with the same grinding wheel.
  • Page 764 Grinding 13.1 Grinding-specific tool monitoring in the part program (TMON, TMOF) Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 765: Additional Functions

    Additional functions 14.1 Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, 14.1 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 766: Additional Functions

    Additional functions 14.1 Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) Significance AXNAME Converts an input string into axis identifiers; the input string must 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 767 Additional functions 14.1 Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) Examples Example 1: AXNAME, AX, ISAXIS Program code Comments OVRA[AXNAME("Transverse axis")]=10 ; Override for transverse axis AX[AXNAME("Transverse axis")]=50.2 ; End position for transverse axis OVRA[SPI(1)]=70 ; Override for spindle 1 AX[SPI(1)]=180 ;...
  • Page 768: Replaceable Geometry Axes (Geoax)

    Additional functions 14.2 Replaceable geometry axes (GEOAX) 14.2 Replaceable geometry axes (GEOAX) 14.2 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 769 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 770 Additional functions 14.2 Replaceable geometry axes (GEOAX) Example 2: Changing over the geometry axes for 6 channel axes A machine has 6 channel axes with the names XX, YY, ZZ, U, V, W. The basic setting of the geometry axis configuration via machine data is: Channel axis XX = 1st geometry axis (X axis) Channel axis YY = 2nd geometry axis (Y axis) Channel axis ZZ = 3rd geometry axis (Z axis)
  • Page 771 Additional functions 14.2 Replaceable geometry axes (GEOAX) Note Axis configuration The machine data below are used to assign the geometry axes, special axes, channel axes and machine axes as well as the names of the individual axis types: MD20050 $MC_AXCONF_GEOAX_ASIGN_TAB (assignment of geometry axis to channel axis) MD20060 $MC_AXCONF_GEOAX_NAME_TAB (name of the geometry axis in the channel) MD20070 $MC_AXCONF_MACHAX_USED (machine axis number valid in channel)
  • Page 772 Additional functions 14.2 Replaceable geometry axes (GEOAX) Supplementary conditions Axis state after replacing An axis replaced by the changeover in the geometry axis group can be programmed as supplementary axis after the changeover operation via its channel axis names. Frames, protection zones, working area limits All frames, protection zones and working area limits are deleted after changing over the geometry axes.
  • Page 773 Additional functions 14.2 Replaceable geometry axes (GEOAX) A geometry axis configuration changed using GEOAX is deleted by activating a transformation. If the machine data settings for the transformation do not match those for changing over geometry axes, then the settings in the transformation have priority. Example: One transformation active.
  • Page 774: Axis Container (Axctswe, Axctswed)

    Additional functions 14.3 Axis container (AXCTSWE, AXCTSWED) 14.3 Axis container (AXCTSWE, AXCTSWED) 14.3 Function On rotary indexing machines/multi-spindle machines, the axes holding the workpiece move from one machining unit to the next. Since the machining units are subject to different NCU channels, the axes holding the workpiece must be dynamically reassigned to the corresponding NCU channel if there is a change in station/position.
  • Page 775 Additional functions 14.3 Axis container (AXCTSWE, AXCTSWED) <axis container> Identifier of the axis container that should be moved. Possible data include: CT<container number> The number of the axis container is attached to the CT letter combination. Example: CT3 <container name> Individual name of the axis container set using MD12750 $MN_AXCT_NAME_TAB.
  • Page 776 Additional functions 14.3 Axis container (AXCTSWE, AXCTSWED) Example: After the axis container is rotated through 1, channel axis Z is assigned to axis AX5 on NCU 1 instead of axis AX1 on NCU. AXCTSWED( ) The command version AXCTSWED() can be used to simplify commissioning. The axis container rotates with just the active channel being effective through the container-specific increment saved in SD41700 $SN_AXCT_SWWIDTH[<container number>].
  • Page 777 Additional functions 14.3 Axis container (AXCTSWE, AXCTSWED) Effectiveness After an axis container rotation, all NCUs are involved in the new axis assignment whose channels refer to the rotated axis container via the logical machine axis image. Axis container revolution with implicit GET/GETD When an axis container revolution is enabled, all axis container axes assigned to the channel are assigned to the channel with GET or GETD.
  • Page 778: Check Scope Of Nc Language Present (Stringis)

    Check scope of NC language present (STRINGIS) 14.4 Function The scope of NC language generated by a SINUMERIK 840D sl, including the active GUD/macro definitions and the installed and active cycle programs, can be checked for actual availability and their program-specific characteristics using the STRINGIS command.
  • Page 779 Additional functions 14.4 Check scope of NC language present (STRINGIS) STRINGIS Checks the existing NC language scope and NC cycle names, user variables, macros and label names that specifically belong to this command: whether these exist, are valid, defined or active. The STRINGIS NC language command is an integer type variable.
  • Page 780 Additional functions 14.4 Check scope of NC language present (STRINGIS) NC language scope Scope of NC language includes: G codes of all existing G code groups such as G0, G1, G2, INVCW, POLY, ROT, KONT, SOFT, CUT2D, CDON, RMB, SPATH DIN or NC addresses such as ADIS, RNDM, SPN, SR, MEAS NC language functions such as predefined subprograms...
  • Page 781 Additional functions 14.4 Check scope of NC language present (STRINGIS) Note During a check with, STRINGIS should no other coding be found, then the corresponding NC language command can be programmed and 2xx coding applies. 2xx value ranges of the detailed information Detailed Information Significance of the test result: Interpretation not possible...
  • Page 782 Additional functions 14.4 Check scope of NC language present (STRINGIS) Note Comments on the individual return values (1) Fixed, standardized addresses are recognized as DIN addresses. The following definitions for geometry axes apply for NC addresses with adjustable identifiers: A, B, C for specified rotary axes, E is reserved for extensions and I, J, K, Q, U, V, W, X, Y, Z for specified linear axes.
  • Page 783 Additional functions 14.4 Check scope of NC language present (STRINGIS) Example of programmable auxiliary function T Programming Comments T is defined as auxiliary function and can always be programmed 400 = STRINGIS("T") 0 = STRINGIS("T3") ;Return value without address extension ;Return value with address extension Examples of other checks for the programmable scope of NC language 2xx...
  • Page 784 Additional functions 14.4 Check scope of NC language present (STRINGIS) Programming Comments 207 = STRINGIS("$TC_DP3") $TC_DP3 recognized as system variable. $TC_TP4 is a system variable for a NC system variable $TC_TP4 exists tool size tool size. 207 = STRINGIS("$TC_TP4") $TC_TP4 recognized as system variable.
  • Page 785: Function Call Isvar And Read Machine Data Array Index

    Additional functions 14.5 Function call ISVAR and read machine data array index 14.5 Function call ISVAR and read machine data array index 14.5 Function The ISVAR command is a function as defined in the NC language that has a ● Function value of type BOOL ●...
  • Page 786 Additional functions 14.5 Function call ISVAR and read machine data array index Only if all these checks have a positive result will TRUE be returned. If a check has a negative result or if a syntax error has occurred, it will return FALSE. Axial variables are accepted as an index for the axis names but not checked.
  • Page 787 Additional functions 14.5 Function call ISVAR and read machine data array index Example: Read machine data array with and without index The first element will be read for R1=$MC_EXTERN_GCODE_RESET_VALUES as previous, this corresponds to R1=$MC_EXTERN_GCODE_RESET_VALUES[0] or the first element will be read R1=$MA_POSTCTRL_GAIN[X1] The corresponds to as before R1=$MA_POSTCTRL_GAIN[0, X1]...
  • Page 788: Learn Compensation Characteristics (Qeclrnon, Qeclrnof)

    Additional functions 14.6 Learn compensation characteristics (QECLRNON, QECLRNOF) 14.6 Learn compensation characteristics (QECLRNON, QECLRNOF) 14.6 Function error! Bookmark not defined.. 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 789 Additional functions 14.6 Learn compensation characteristics (QECLRNON, QECLRNOF) Significance 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 790: Interactively Call The Window From The Part Program (Mmc)

    Additional functions 14.7 Interactively call the window from the part program (MMC) 14.7 Interactively call the window from the part program (MMC) 14.7 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 791: Program Runtime/Part Counter

    Additional functions 14.8 Program runtime/part counter 14.8 Program runtime/part counter 14.8 14.8.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 792 Additional functions 14.8 Program runtime/part counter system variables Significance Activity Channel-specific Activated via $AC_OPERATING_TIME Total runtime of NC programs in automatic mode in • MD27860 seconds. Only AUTOMATIC • The value is automatically reset to "0" every time the mode control powers up.
  • Page 793 Additional functions 14.8 Program runtime/part counter system variables Significance Activity $AC_PROG_NET_TIME_TRIGGER Only AUTOMATIC Trigger for the runtime measurement: mode Neutral state The trigger is not active. Exit Ends the measurement and copies the value from $AC_ACT_PROG_NET_TIME into $AC_OLD_PROG_NET_TIME. $AC_ACT_PROG_NET_TIME is set to "0" and then continues to run.
  • Page 794 Additional functions 14.8 Program runtime/part counter Note Residual time for a workpiece If the same workpieces are produced one after the other, then the timer values: • Processing time for the last workpiece produced (see $AC_OLD_PROG_NET_TIME) • Current processing time (see $AC_ACT_PROG_NET_TIME) can be used to determine the remaining residual time for a workpiece.
  • Page 795 Additional functions 14.8 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 796: Workpiece Counter

    Additional functions 14.8 Program runtime/part counter 14.8.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 797 Additional functions 14.8 Program runtime/part counter Note Channel-specific machine data can be used to control counter activation, counter reset timing and the counting algorithm. Note Workpiece counting with user-defined M command Machine data can be set so that the count pulses for the various workpiece counters are triggered using user-defined M commands rather than the end of the program (M2/M30).
  • Page 798: Alarms (Setal)

    <Alarm number> Type INT variable. Contains the alarm number. 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. <character When programming user cycle alarms, in addition, a character string string>...
  • Page 799 Additional functions 14.9 Alarms (SETAL) Example Program code Comments N100 SETAL (65000) ; Setting alarm No. 65000 Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 800 Additional functions 14.9 Alarms (SETAL) Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 801: User Stock Removal Programs

    User stock removal programs 15.1 Supporting functions for stock removal 15.1 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 802: User Stock Removal

    User stock removal programs 15.2 Generate contour table (CONTPRON) 15.2 Generate contour table (CONTPRON) 15.2 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 803 User stock removal programs 15.2 Generate contour table (CONTPRON) <machining direction> Parameters for the machining direction Type: Value: Contour preparation, forwards (default value) Contour preparation in both directions Example 1 Generating a contour table with: ● Name "KTAB" ● Max. 30 contour elements (circles, straight lines) ●...
  • Page 804 User stock removal programs 15.2 Generate contour table (CONTPRON) NC program: Program code Comments N10 DEF REAL KTAB[30,11] ; Contour table with the KTAB name and max. 30 contour elements, parameter value 11 (number of table columns) is a fixed quantity. N20 DEF INT ANZHINT ;...
  • Page 805 User stock removal programs 15.2 Generate contour table (CONTPRON) 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 a = 10 G90 = 0 G91 = 1...
  • Page 806 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 807 User stock removal programs 15.2 Generate contour table (CONTPRON) Program code Comments N100 G18 X100 Z100 F1000 N105 CONTPRON(KTAB,BT,HE,MODE) ; Activate contour preparation. N110 G1 G90 Z20 X20 N120 X45 N130 Z0 N140 G2 Z-15 X30 K=AC(-15) I=AC(45) N150 G1 Z-30 N160 X80 N170 Z-40 N180 EXECUTE(ERR)
  • Page 808 User stock removal programs 15.2 Generate contour table (CONTPRON) 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. Always in table line 0: 1) Predecessor: Line n contains the contour end (forwards) 2) Successor: Line n is the contour table end (forwards) Once each within the contour elements forwards:...
  • Page 809 User stock removal programs 15.2 Generate contour table (CONTPRON) Further information Permitted traversing commands, coordinate system The following G commands can be used for the contour programming: ● G group 1: G0, G1, G2, G3 In addition, the following are possible: ●...
  • Page 810: Generate Coded Contour Table (Contdcon)

    User stock removal programs 15.3 Generate coded contour table (CONTDCON) 15.3 Generate coded contour table (CONTDCON) 15.3 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 811 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] ;...
  • Page 812 User stock removal programs 15.3 Generate coded contour table (CONTDCON) Program code Comments N100 G18 G64 G90 G94 G710 N101 G1 Z100 X100 F1000 N105 CONTDCON (KTAB, MODE) ; Call contour preparation (MODE can be omitted). N110 G1 Z20 X20 F200 ;...
  • Page 813 User stock removal programs 15.3 Generate coded contour table (CONTDCON) Explanation of the column contents: Line 0 Coding for the starting point: Column 0: (units digit): G0 = 0 (tens position): G70 = 0, G71 = 1, G700 = 2, G710 = 3 Column 1: starting point of abscissa Column 2:...
  • Page 814 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 815: 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 15.4 (INTERSEC) Function INTERSEC determines the point of intersection of two normalized contour elements from the contour tables generated using CONTPRON. Syntax <Status>=INTERSEC(<contour table_1>[<contour element_1>], <contour table_2>[<contour element_2>],<intersection...
  • Page 816 User stock removal programs 15.4 Determine point of intersection between two contour elements (INTERSEC) Note Please note that the variables must be defined before they are used. 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...
  • Page 817: 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) 15.5 Function Using the command EXECTAB, you can execute the contour elements of a table – that were generated e.g.
  • Page 818: Calculate Circle Data (Calcdat)

    User stock removal programs 15.6 Calculate circle data (CALCDAT) 15.6 Calculate circle data (CALCDAT) 15.6 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 819 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 820: Deactivate Contour Preparation (Execute)

    User stock removal programs 15.7 Deactivate contour preparation (EXECUTE) 15.7 Deactivate contour preparation (EXECUTE) 15.7 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(<ERROR>) Significance EXECUTE...
  • Page 821: Tables

    Tables 16.1 List of statements 16.1 Legend: Reference to the document containing the detailed description of the operation: Programming Manual, Fundamentals Programming Manual, Job Planning Operating Manual, HMI sl Turning Operating Manual, HMI sl Milling FB1 ( ) Function Manual, Basic Functions (with the alphanumeric abbreviation of the corresponding function description in brackets) FB2 ( ) Function Manual, Extended Functions (with the alphanumeric abbreviation of the corresponding...
  • Page 822 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Operator for addition ●...
  • Page 823 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Tool orientation: Surface ●...
  • Page 824 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F ADISPOS Rounding clearance for ●...
  • Page 825 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F APWB Write access right, OPI ●...
  • Page 826 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F ATRANS Additive programmable ●...
  • Page 827 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F AXTOSPI Converts axis identifier ●...
  • Page 828 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F BAUTO Definition of the first ○...
  • Page 829 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F BSPLINE B-spline ○...
  • Page 830 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F CACP Absolute approach of the ●...
  • Page 831 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F CDON Collision detection ON ●...
  • Page 832 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F CHKDNO Check for unique D ●...
  • Page 833 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F COMPCURV Compressor ON: ○...
  • Page 834 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F COUPDEL Delete ELG group ○...
  • Page 835 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Path motion ●...
  • Page 836 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F CTAB Define following axis position according to Read curve table values leading axis position from...
  • Page 837 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F CTABFSEG Number of curve segments still possible in Curve tables: Check use of the memory...
  • Page 838 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F CTABMPOL Max. number of polynomials still possible Curve tables: Check use of in the memory...
  • Page 839 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F CTABPOL Number of polynomials already used in the Curve tables: Check use of memory...
  • Page 840 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F CTABSSV Returns the initial value of the following axis of a Read curve table values segment of the curve...
  • Page 841 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F CTABTSV Returns the value of the following axis at curve Read curve table values table start...
  • Page 842 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F CUT3DCCD 3D tool offset circumferential milling 3D tool offset Taking into with limitation surfaces...
  • Page 843 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Absolute dimensions for ●...
  • Page 844 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F FB1(P1) DIACYCOFA Axis-specific modal ●...
  • Page 845 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F DIAMONA Axis-specific modal ●...
  • Page 846 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F DISR Distance for repositioning ●...
  • Page 847 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F DYNROUGH Dynamic response for ●...
  • Page 848 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F EGONSYNE Turn on electronic gear, with specification of Switching-in the electronic approach mode...
  • Page 849 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F ENDWHILE End line of WHILE loop ●...
  • Page 850 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Feedrate value ●...
  • Page 851 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F FFWON Feedforward control ON ●...
  • Page 852 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F FILETIME Returns time of most ●...
  • Page 853 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Feedrate characteristic programmed via a Feedrate response (FNORM, polynomial...
  • Page 854 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Travel to fixed stop ON ●...
  • Page 855 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Selection of working ●...
  • Page 856 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Axial programmable work ●...
  • Page 857 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Constant cutting rate (as ●...
  • Page 858 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F G291 Switch over to ISO2/3 ●...
  • Page 859 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F G603 Block change at IPO ●...
  • Page 860 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F G751 Approach fixed point via ●...
  • Page 861 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F G973 Revolutional feedrate ●...
  • Page 862 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F FB1(W1) GETTCOR Read out tool lengths ●...
  • Page 863 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F PG/FB1(H2) H... Auxiliary function output ●...
  • Page 864 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F INIPO Initialization of variables ●...
  • Page 865 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Variable interpolation ●...
  • Page 866 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F ISNUMBER Check whether the input ●...
  • Page 867 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Subprogram number ●...
  • Page 868 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F LFWP The plane of the ●...
  • Page 869 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Spindle stop for master ●...
  • Page 870 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F MASLON Activation of a temporary ●...
  • Page 871 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F MEAWA Measurement without deletion of distance-to-go Extended measuring function (MEASA, MEAWA, MEAC)
  • Page 872 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F NC auxiliary block ●...
  • Page 873 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F OEMIPO2 OEM interpolation 2 ●...
  • Page 874 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F PGA/FB3(F3) ORICONCCW Interpolation on a circular ●...
  • Page 875 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F ORIMKS Tool orientation in the ●...
  • Page 876 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F ORIROTR Angle of rotation relative ●...
  • Page 877 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F ORIVECT Large-radius circular ●...
  • Page 878 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F OSCTRL Oscillation options Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB)
  • Page 879 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Tool orientation ●...
  • Page 880 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Number of subprogram ●...
  • Page 881 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Per minute ●...
  • Page 882 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F PONS Punching ON in interpolation cycle Punching and nibbling on or off (SPOF, SON, PON, SONS,...
  • Page 883 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Point-to-point motion ●...
  • Page 884 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F R... Arithmetic parameter also ●...
  • Page 885 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F REPEATB Repetition of a program ●...
  • Page 886 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F RESET Reset technology cycle ●...
  • Page 887 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Repositioning to the ●...
  • Page 888 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F SBLOF Suppress single block ●...
  • Page 889 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F SETAL Set alarm ●...
  • Page 890 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Sine (trigon. function) ●...
  • Page 891 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F SPATH Path reference for ●...
  • Page 892 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F SPOSA Spindle position across ●...
  • Page 893 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F STOPRE Preprocessing stop until ●...
  • Page 894 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F SUPA Suppression of current ●...
  • Page 895 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F TANG Definition of axis grouping tangential Tangential control (TANG, correction...
  • Page 896 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F TCOFRX Determine tool orientation ●...
  • Page 897 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F TMON Activate tool monitoring ●...
  • Page 898 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F TOFRAMEY Align the Y axis of the ●...
  • Page 899 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F TOWBCS Wear values in basic ●...
  • Page 900 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F Offset component of a ●...
  • Page 901 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F TRUNC Truncation of decimal ●...
  • Page 902 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F WAITC Wait for the coupling ○...
  • Page 903 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F WALCS5 Workpiece coordinate ●...
  • Page 904 Tables 16.1 List of statements Operation Meaning Description see 828D PPU260 / 261 - - - PPU280 / 281 D - - - - - F - - - - - D - - - - - F WRITE Write text to file system ●...
  • Page 905: A 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 subroutine AuxF Auxiliary function Job planning Operating mode Ready to run Binary Coded Decimals: Decimal numbers encoded In binary code Basic Coordinate System Binary files (Binary Files) BIOS...
  • Page 906 Appendix A.1 List of abbreviations Digital-to-Analog Converter Data block in the PLC Data block byte in the PLC Data block word in the PLC Data block bit in the PLC Direct Control: Movement of the rotary axis via the shortest path to the absolute position within one revolution Data Carrier Detect Dynamic Data Exchange...
  • Page 907 Appendix A.1 List of abbreviations FIFO First In First Out: Memory that works without address specification and whose data are read in the same order in which they were stored. FIPO Fine InterPOlator Function Module Floating Point Unit Frame block FRAME Data record (frame) Feed Stop...
  • Page 908 Appendix A.1 List of abbreviations Ladder diagram (PLC programming method) Liquid Crystal Display Leadscrew error compensation Light-Emitting Diode Line Feed Position controller Local User Data Megabyte Measuring circuit Machine control panel Machine coordinate system Machine data Manual Data Automatic: Manual input MLFB Machine-readable product designation Mode group...
  • Page 909 Appendix A.1 List of abbreviations Random Access Memory: Program memory that can be read and written to Reference point approach function REPOS Reposition function RISC Reduced Instruction Set Computer: Type of processor with small instruction set and ability to process instructions at high speed Rapid override: Input correction R-Parameter Active: Memory area on the NCK for R parameter numbers...
  • Page 910 Appendix A.1 List of abbreviations Workpiece coordinate system Workshop-oriented Programming Workpiece Directory Zero offset Zero Offset Active: Identifier (file type) for zero offset data µC Micro Controller Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 911: Feedback On The Documentation

    This document will be continuously improved with regard to its quality and ease of use. Please help us with this task by sending your comments and suggestions for improvement via e-mail or fax to: E-mail: mailto:docu.motioncontrol@siemens.com Fax: +49 9131 - 98 2176 Please use the fax form on the back of this page.
  • Page 912 Appendix A.2 Feedback on the documentation Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 913: Overview

    Appendix A.3 Overview Overview Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 914 Appendix A.3 Overview Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 915: 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 916 Glossary Automatic Operating mode of the control (block sequence operation according to DIN): Operating mode for NC systems in which a → subprogram is selected and executed continuously. Auxiliary functions Auxiliary functions enable → part programs to transfer → parameters to the → PLC, which then trigger reactions defined by the machine manufacturer.
  • Page 917 Glossary Backlash compensation Compensation for a mechanical machine backlash, e.g. backlash on reversal for ball screws. Backlash compensation can be entered separately for each axis. Backup battery The backup battery ensures that the → user program in the → CPU is stored so that it is safe from power failure and so that specified data areas and bit memory, timers and counters are stored retentively.
  • Page 918 Glossary Block search For debugging purposes or following a program abort, the "Block search" function can be used to select any location in the part program at which the program is to be started or resumed. Booting Loading the system program after power ON. C axis Axis around which the tool spindle describes a controlled rotational and positioning movement.
  • Page 919 Glossary Compensation memory Data range in the control, in which the tool offset data are stored. Compensation table Table containing interpolation points. It provides the compensation values of the compensation axis for selected positions on the basic axis. Compensation value Difference between the axis position measured by the encoder and the desired, programmed axis position.
  • Page 920 Glossary 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. Curvature The curvature k of a contour is the inverse of radius r of the nestling circle in a contour point (k = 1/r).
  • Page 921 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 922 Glossary Fast retraction from contour When an interrupt occurs, a motion can be initiated via the CNC machining program, enabling the tool to be quickly retracted from the workpiece contour that is currently being machined. The retraction angle and the distance retracted can also be parameterized. After fast retraction, an interrupt routine can also be executed (SINUMERIK 840D).
  • Page 923 Glossary Geometry Description of a → workpiece in the → workpiece coordinate system. Geometry axis Geometry axes are used to describe a 2- or 3-dimensional area in the workpiece coordinate system. Ground Ground is taken as the total of all linked inactive parts of a device which will not become live with a dangerous contact voltage even in the event of a malfunction.
  • Page 924 Glossary Identifier In accordance with DIN 66025, words are supplemented using identifiers (names) for variables (arithmetic variables, system variables, user variables), subroutines, key words, and words with multiple address letters. These supplements have the same meaning as the words with respect to block format. Identifiers must be unique. It is not permissible to use the same identifier for different objects.
  • Page 925 Glossary Interpolatory compensation Interpolatory compensation is a tool that enables manufacturing-related leadscrew error and measuring system error compensations (SSFK, MSFK). Interrupt routine Interrupt routines are special → subroutines that can be started by events (external signals) in the machining process. A part program block which is currently being worked through is interrupted and the position of the axes at the point of interruption is automatically saved.
  • Page 926 Glossary 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. The control uses stored deviation values for the compensation.
  • Page 927 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 928 Glossary Metric measuring system Standardized system of units: For length, e.g. mm (millimeters), m (meters). 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.
  • Page 929 Glossary Numeric robotic kernel (operating system of → NCK) NURBS The motion control and path interpolation that occurs within the control is performed based on NURBS (Non Uniform Rational B-Splines). As a result, a uniform process is available within the control for all interpolations for SINUMERIK 840D. 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.
  • Page 930 Glossary Part program block Part of a → part program that is demarcated by a line feed. There are two types: → main blocks and → subblocks. Part program management Part program management can be organized by → workpieces. The size of the user memory determines the number of programs and the amount of data that can be managed.
  • Page 931 Glossary Programmable Logic Control: → Programmable logic controller. Component of → NC: Programmable controller for processing the control logic of the machine tool. PLC program memory SINUMERIK 840D: The PLC user program, the user data and the basic PLC program are stored together in the PLC user memory.
  • Page 932 Glossary Programmable frames Programmable → frames enable dynamic definition of new coordinate system output points while the part program is being executed. A distinction is made between absolute definition using a new frame and additive definition with reference to an existing starting point. Programmable Logic Control Programmable logic controllers (PLC) are electronic controls, the function of which is stored as a program in the control unit.
  • Page 933 Glossary R parameters Arithmetic parameter that can be set or queried by the programmer of the → part program for any purpose in the program. Rapid traverse The highest traverse rate of an axis. For example, rapid traverse is used when the tool approaches the →...
  • Page 934 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 935 Glossary Spline interpolation With spline interpolation, the controller can generate a smooth curve characteristic from only a few specified interpolation points of a set contour. Transformation ratio Standard cycles Standard cycles are provided for machining operations, which are frequently repeated: ●...
  • Page 936 Glossary Synchronized axes Synchronized axes take the same time to traverse their path as the geometry axes take for their path. 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".
  • Page 937 Glossary TOA area The TOA area includes all tool and magazine data. By default, this area coincides with the → channel area with regard to the reach of the data. However, machine data can be used to specify that multiple channels share one → TOA unit so that common tool management data is then available to these channels.
  • Page 938 Glossary Transformation Additive or absolute zero offset of an axis. Traversing range The maximum permissible travel range for linear axes is ± 9 decades. The absolute value depends on the selected input and position control resolution and the unit of measurement (inch or metric).
  • Page 939 Glossary WinSCP WinSCP is a freely available open source program for Windows for the transfer of files. Working area Three-dimensional zone into which the tool tip can be moved on account of the physical design of the machine tool. See → Protection zone. Working area limitation With the aid of the working area limitation, the traversing range of the axes can be further restricted in addition to the limit switches.
  • Page 940 Glossary Zero offset Specifies a new reference point for a coordinate system through reference to an existing zero point and a → frame. 1. Settable SINUMERIK 840D: A configurable number of settable zero offsets are available for each CNC axis. The offsets - which are selected by means of G functions - take effect alternately.
  • Page 941: Index

    Index $SA_LEAD_TYPE, 604, 605 $SC_PA_ACTIV_IMMED, 251 $SN_PA_ACTIV_IMMED, 251 $TC_CARR1...14, 503 $AA_ATOL, 569 $TC_CARR18[m], 504, 508 $AA_COUP_ACT, 575, 605 $TC_DP1, 448 $AA_LEAD_SP, 605 $TC_DP10, 448 $AA_LEAD_SV, 605 $TC_DP11, 448 $AA_MOTEND, 311 $TC_DP12, 448 $AA_TOFF[ ], 683 $TC_DP13, 448 $AC_ACT_PROG_NET_TIME, 792 $TC_DP14, 448 $AC_ACTUAL_PARTS, 796 $TC_DP15, 448 $AC_BLOCKTYPE, 660...
  • Page 942 Index < < (comparison operator), 70 A spline, 271 <<, 77 A1, A2, 503 << (concatenation operator), 83 A2, 364 <= (relational operator), 70 A3, 364 <> (comparison operator), 70 A4, 364, 373 A5, 364, 373 A6, 380 A7, 380 ABS, 67 == (comparison operator), 70 ACC, 622...
  • Page 943 Index Asynchronous oscillation, 731 B7, 380 ATAN2, 67 Backlash, 788 ATOL, 566 BAUTO, 263 Automatic "GET", 143 BFRAME, 317 Automatic interrupt pointer, 552 BLOCK, 214 Automatic path segmentation, 754 Block display, 216 Auxiliary functions, 666, 754 Suppress, 187 AV, 615 BLSYNC, 126 Availability BNAT, 263...
  • Page 944 Index CLEARM, 117, 706 CSCALE, 67, 323 CLRINT, 130 CSPLINE, 263 CMIRROR, 67, 323 CT, 774 COARSE, 615 CTAB, 591 Coarse offset, 330 CTABDEF, 577 COARSEA, 309 CTABDEL, 585 COMCAD, 278 CTABEND, 577 Command axes, 685 CTABEXISTS, 585 COMPCAD, 402 CTABFNO, 597 COMPCURV, 278, 402 CTABFPOL, 597...
  • Page 945 Index Cycles ENAT, 263 Setting parameters for user cycles, 225 End angle, 391 Cylinder surface curve transformation, 412, 413 ENDFOR, 112 Offset contour normal OFFN, 420 ENDIF, 109 Cylinder surface transformation, 352 ENDLABEL, 99 Endless loop, 111 ENDLOOP, 111 End-of-motion criterion Programmable, 309 D number ENDPROC, 678...
  • Page 946 Index First basic frame in the channel, 341 G62, 308 Fixed stop, 708 G621, 308 FLIN, 534 G643, 289 FNORM, 534 GEOAX, 768 FOCOF, 708 Geometry axis FOCON, 708 Switching over, 768 Following axis, 599 GET, 138 FOR, 112 GETACTTD, 501 FPO, 534 GETD, 138 FPR, 613...
  • Page 947 Index Insertion depth, 479 Insertion depth (ISD), 471 L..., 203 INT, 24 Label, 99 Interpolation of the rotation vector, 390, 397 Laser power control, 672 Interrupt routine, 124 Laxis, 525, 599 Assign and start, 126 LEAD, 364 Deactivating/activating, 129 Lead angle, 366 Delete, 130 Leading axis, 599 Fast retraction from contour, 131...
  • Page 948 Index MEAS, 292 Offset contour normal OFFN, 420 MEASA, 295 Offset memory, 447 Measuring, 704 Offset of the rotary axes, 506 Measuring task status, 305 Online tool length compensation, 514 MEAW, 292 Online tool length offset, 683 MEAWA, 295 Operating mode Memory During measurement, 301 Preprocessing, 540...
  • Page 949 Index ORIVIRT2, 377, 397 Curve parameter, 288 ORIWKS, 374, 377 G code group, 288 OS, 731 Path axes, 290 OSB, 731 Path feed, 290 OSC, 489 Restrictions, 290 OSCILL, 738, 742 Thread blocks, 290 Oscillating motion Path segment, 754 Infeed at reversal point, 744 Path segmentation, 759 Reversal point, 742 Path segmentation for path axes, 757...
  • Page 950 Index Preprocessing Memory, 540 QEC, 788 Preprocessing stop, 668 QECDAT, 788 Preset actual value memory, 697 QECLRN, 788 Preset offset, 333 QECLRNOF, 788 PRESETON, 333, 697 QECLRNON, 788 PRIO, 126, 131 QECTEST, 788 PRLOC, 24 Quadrant error compensation Probe status, 304 Activating learning operation, 788 PROC, 174 Deactivating learning, 788...
  • Page 951 SETAL, 707, 798 Length, 86 SETDNO, 499 Operations, 79 SETINT, 126 STRING, 24 SETM, 117, 706 STRINGIS, 778 Setpoint value coupling, 618 NC addresses, 782 Setup value, 453 STRINGVAR, 90 SIEMENS cycles, 798 STRLEN, 86 Job Planning Programming Manual, 06/2009, 6FC5398-2BP20-0BA0...
  • Page 952 Index Subprogram, 165 Call with parameter transfer, 205 TAN, 67 Call without parameter transfer, 203 TANG, 525 Call, indirect, 212 TANGDEL, 525 Call, modal, 210 Tangential control, 525 Name, 166 TANGOF, 525 Programmable search path, 218 TANGON, 525 Repetition, 208 TCARR, 510 Return jump, parameterizable, 195 TCOABS, 510...
  • Page 953 Index Tool offset Transformations Compensation memory, 447 Chained, 443 Coordinate system for wear values, 460 Chained transformations, 349 Online, 465, 680 Initial tool orientation setting regardless of Tool orientation, 489 kinematics, 348 Tool radius compensation Kinematic transformations, 349 3D circumferential milling without limitation Orientation transformation, 348 surfaces, 483 Three, four and five axis transformation...
  • Page 954 Index WAIT, 117 Wait markers, 706 WAITC, 615 WAITE, 117 WAITM, 117 WAITMC, 117 Wear value, 453 WHEN, 640 WHEN-DO, 743 WHENEVER, 640 WHENEVER-DO, 743 WHILE, 114 Winlimit, 688 Work offset External zero offset, 332 PRESETON, 333 Working memory, 239 Data areas, 239 Workpiece Counter, 796...

This manual is also suitable for:

Sinumerik 828dSinumerik 840de sl

Table of Contents