Path traversing behavior Axis couplings Synchronized actions Oscillation Punching and nibbling Grinding Additional functions User stock removal programs Programming cycles Valid for externally Control Tables SINUMERIK 840D sl / 840DE sl SINUMERIK 828D Appendix Software Version CNC software 4.5 SP2 03/2013 6FC5398-2BP40-3BA1...
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.
Training For information about the range of training courses, refer under: ● www.siemens.com/sitrain SITRAIN - Siemens training for products, systems and solutions in automation technology ● www.siemens.com/sinutrain SinuTrain - training software for SINUMERIK Job Planning Programming Manual, 03/2013, 6FC5398-2BP40-3BA1...
Page 4
Preface FAQs You can find Frequently Asked Questions in the Service&Support pages under Product Support. http://support.automation.siemens.com SINUMERIK You can find information on SINUMERIK under the following link: www.siemens.com/sinumerik Target group This publication is intended for: ● Programmers ● Project engineers...
Preface Information on structure and contents "Fundamentals" and "Job planning" Programming Manual The description of the NC programming is divided into two manuals: 1. Fundamentals The "Fundamentals" Programming Manual is intended for use by skilled machine operators with the appropriate expertise in drilling, milling and turning operations. Simple programming examples are used to explain the commands and statements which are also defined according to DIN 66025.
Page 7
Table of contents Preface ..............................3 Flexible NC programming ........................17 Variables ............................17 1.1.1 System variable..........................17 1.1.2 Predefined user variables: Arithmetic parameters (R)..............20 1.1.3 Predefined user variables: Link variables ..................21 1.1.4 Definition of user variables (DEF) ....................24 1.1.5 Redefinition of system variables, user variables, and NC language commands (REDEF) ..29 1.1.6 Attribute: Initialization value ......................32 1.1.7...
Page 8
Table of contents 1.10 Program jumps and branches..................... 96 1.10.1 Return jump to the start of the program (GOTOS)..............96 1.10.2 Program jumps to jump markers (GOTOB, GOTOF, GOTO, GOTOC)........97 1.10.3 Program branch (CASE ... OF ... DEFAULT ...)................ 100 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P)..........
Page 9
Table of contents 1.24.2.6 Suppress current block display (DISPLOF, DISPLON, ACTBLOCNO)........172 1.24.2.7 Identifying subprograms with preparation (PREPRO) ...............175 1.24.2.8 Subprogram return M17......................176 1.24.2.9 RET subprogram return ......................177 1.24.2.10 Parameterizable subprogram return jump (RET ...) .............178 1.24.3 Subprogram call .........................184 1.24.3.1 Subprogram call without parameter transfer................184 1.24.3.2 Subprogram call with parameter transfer (EXTERN)..............187 1.24.3.3 Number of program repetitions (P) ....................189 1.24.3.4 Modal subprogram call (MCALL) ....................191...
Page 11
Table of contents 6.8.2 Cylinder surface transformation (TRACYL) ................349 6.8.3 Inclined axis (TRAANG)......................357 6.8.4 Inclined axis programming (G5, G7)..................360 Cartesian PTP travel........................362 6.9.1 PTP for TRANSMIT ........................366 6.10 Constraints when selecting a transformation................370 6.11 Deselecting a transformation (TRAFOOF) ................371 6.12 Chained transformations (TRACON, TRAFOOF)..............371 Kinematic chains............................
Page 12
Table of contents 9.7.4 Free assignment of D numbers: Determine T number to the specified D number (GETACTTD) ..........................426 9.7.5 Free assignment of D numbers: Invalidate D numbers (DZERO) ..........427 Toolholder kinematics ....................... 427 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ)....................
Flexible NC programming 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. The system provides three different types of variables. ●...
Flexible NC programming 1.1 Variables Preprocessing variables Preprocessing variables are system variables that are read and written in the context of preprocessing; in other words, at the point in time at which the part program block in which the system variable is programmed is interpreted. Preprocessing variables do not trigger preprocessing stops.
Page 19
Flexible NC programming 1.1 Variables 2nd letter Meaning: Visibility NCK-global variable (NCK) Channel-specific variable (Channel) Axis-specific variable (Axis) Supplementary conditions Exceptions in the prefix system The following system of variables deviate from the prefix system specified above: ● $TC_...: Here, the 2nd letter C does not refer to channel-specific system variables but to toolholder-specific system variables (TC= tool carrier).
Flexible NC programming 1.1 Variables 1.1.2 Predefined user variables: Arithmetic parameters (R) Function Arithmetic parameters or R parameters are predefined user variables with the designation R, defined as an array of the REAL data type. For historical reasons, notation both with array , and without array index, e.g.
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>] Meaning Link variable for BYTE data format (1 byte) $A_DLB Data type: UINT Range of values: 0 ... 255 Link variable for WORD data format (2 bytes) $A_DLW Data type: Range of values: -32768 ...
Page 23
Flexible NC programming 1.1 Variables The data structure in the link variables memory is illustrated in the following figure. The actual current value is transmitted in the REAL value. NCU1 NCU1 uses link variable $A_DLR[ 16 ] to write the actual current value of axis AX2 to the link variables memory cyclically in the interpolation cycle in a static synchronized action.
Flexible NC programming 1.1 Variables 1.1.4 Definition of user variables (DEF) Function 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). According to the range of validity (in other words, the range in which the variable is visible) there are the following categories of user variable: ●...
Page 25
Flexible NC programming 1.1 Variables Meaning Command for defining GUD, PUD, LUD user variables Range of validity, only relevant for GUD: <range> NC-global user variable Channel-global user variable CHAN Preprocessing stop, only relevant for GUD (optional) <PP_stop> Preprocessing stop when reading SYNR Preprocessing stop when writing SYNW...
Page 26
Flexible NC programming 1.1 Variables Name of variable <name> Note Maximum 31 characters The first two characters must be a letter and/or an underscore. The $ sign is reserved for system variables and must not be used. [<value_1>, Specification of array sizes for 1- to max.
Page 28
Flexible NC programming 1.1 Variables Program code Comment PROC SUB3 ;Subprogram SUB3 IF (VAR1==1) ;Read PUD VAR1=VAR1+1 ;Read & write PUD VAR2=1 ;Error: LUD from SUB2 not known ENDIF Example 3: Definition and use of user variables of data type AXIS Program code Comment DEF AXIS ABSCISSA...
Flexible NC programming 1.1 Variables Program-global user variables (PUD) Note Visibility of program-global user variables (PUD) Program-global 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-global user variables defined in the main program will only be visible in the main program.
Page 30
Flexible NC programming 1.1 Variables Resetting attribute values The attributes for access rights and initialization time change with can be reset to their REDEF default values by reprogramming , followed by the name of the variable or the NC REDEF language command: ●...
Page 31
Flexible NC programming 1.1 Variables Lower/upper limit <limit values> <limit value>: Lower limit value (lower limit) <limit value>: Upper limit value (upper limit) See "Attribute: Limit values (LLI, ULI) (Page 35)" Note Cannot be redefined for: System variables Global user data (GUD) of the data types: BOOL AXIS STRING...
Flexible NC programming 1.1 Variables Example Redefinitions of system variable $TC_DPC1 in the data block for machine manufacturers Program code %_N_MGUD_DEF ; GUD block: Machine manufacturer N100 REDEF $TC_DPC1 APWB 2 APWP 3 N200 REDEF $TC_DPC2 PHU 21 N300 REDEF $TC_DPC3 LLI 0 ULI 200 N400 REDEF $TC_DPC4 INIPO (100, 101, 102, 103) ;...
Page 33
Flexible NC programming 1.1 Variables Redefinition ( ) of system and user variables REDEF During redefinition an initialization value can be preassigned for the following variables: ● System data – Setting data ● User data – R parameters – Synchronized action variables ($AC_MARKER, $AC_PARAM, $AC_TIMER) –...
Flexible NC programming 1.1 Variables Initialization value: System variable For system variables, redefinition cannot be used to define user-specific initialization values. The initialization values for the system variables are specified by the system and cannot be changed. However, redefinition can be used to change the point in time ( ) at INIRE INICF...
Page 36
Flexible NC programming 1.1 Variables If the implicit initialization value is outside the definition range specified by the programmed limit values, the variable is initialized with the limit value which is closest to the implicit initialization value: ● Implicit initialization value < lower limit value (LLI) ⇒ initialization value = lower limit value ●...
Flexible NC programming 1.1 Variables 1.1.8 Attribute: Physical unit (PHU) A physical unit can only be specified for variables of the following data types: ● INT ● REAL Programmable physical units (PHU) The physical unit is specified as fixed point number: PHU <unit>...
Flexible NC programming 1.1 Variables Note Compatibility of units When using variables (assignment, comparison, calculation, etc.) the compatibility of the units involved is not checked. Should conversion be required, this is the sole responsibility of the user/machine manufacturer. See also Variables (Page 17) 1.1.9 Attribute: Access rights (APR, APW, APRP, APWP, APRB, APWB)
Flexible NC programming 1.1 Variables Redefinition ( ) of system and user variables REDEF Access rights ( .../ ...) can be redefined for the following variables: ● System data – Machine data – Setting data – FRAME – Process data –...
Flexible NC programming 1.1 Variables Redefinition ( ) of NC language commands REDEF The access or execution right ( ) can be redefined for the following NC language commands: ● G functions/Preparatory functions References: Programming Manual, Fundamentals; Section: G functions/Preparatory functions ●...
Page 42
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 43
Flexible NC programming 1.1 Variables Setting access rights using ACCESS files When using ACCESS files to assign access rights, redefinitions of access rights for system data, user data, and NC language commands may only continue to be programmed in these ACCESS files.
Flexible NC programming 1.1 Variables Subprogram calls in ACCESS files To structure access protection further, subprograms (SPF or MPF identifier) can be called in ACCESS files. The subprograms inherit the execution rights of the calling ACCESS file. Note Only access rights can be redefined in the ACCESS files. All other attributes have to continue to be programmed/redefined in the corresponding definition files.
Flexible NC programming 1.1 Variables User data Data type Init. value Limit values Physical unit Access rights R-parameters REDEF REDEF REDEF REDEF Synchronized action variable ($AC_...) REDEF REDEF REDEF REDEF REDEF REDEF REDEF REDEF Synchronized action GUD (SYG_...) EPS parameters REDEF REDEF REDEF...
Page 46
Flexible NC programming 1.1 Variables Values can be assigned by means of: ● Explicit specification of an array element ● Explicit specification of an array element as a starting element and specification of a value list ( ● Explicit specification of an array element as a starting element and specification of a value and the frequency at which it is repeated ( Note FRAME data type user variables cannot be assigned initialization values.
Page 47
Flexible NC programming 1.1 Variables Meaning Command to define variables 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 type <string length>...
Page 48
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...
Flexible NC programming 1.1 Variables See also Definition and initialization of array variables (DEF, SET, REP): Further Information (Page 49) Variables (Page 17) 1.1.12 Definition and initialization of array variables (DEF, SET, REP): Further Information Further information ( initialization during definition ●...
Page 50
Flexible NC programming 1.1 Variables Value assignment in program execution In the case of value assignment in program execution, the rules described above for definition apply. The following options are also supported: ● Expressions are also permitted as elements in the value list. ●...
Page 51
Flexible NC programming 1.1 Variables Program code Comments R10=REP(2.4,3) ; R-parameters R10 to R12 = 2.4 DEF FRAME FRM[10] ; Array definition FRM[5] = REP(CTRANS (X,5)) ; Array elements [5] to [9] = CTRANS(X,5) Further information (general) Value assignments to axial machine data In principle axial machine data have an array index of the data type.
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...
Flexible NC programming 1.1 Variables 1.1.14 Explicit data type conversions (AXTOINT, INTTOAX) Function The data type of an axis variable can be converted explicitly with the predefined functions AXTOINT and INTTOAX. Type conversion AXIS → INT Syntax: <result>=AXTOINT(<value>) Meaning: INT representation of the axis variables (≙ axis index <n>) <result>...
Flexible NC programming 1.1 Variables 1.1.15 Check availability of a variable (ISVAR) Function The predefined ISVAR function can be used to check whether a system/user variable (e.g. machine data, setting data, system variable, general variables such as GUD) is known in the NCK.
Page 55
Flexible NC programming 1.1 Variables Examples Program code Comment DEF INT VAR1 DEF BOOL IS_VAR=FALSE N10 IS_VAR=ISVAR("VAR1") ; IS_VAR is in this case TRUE. Program code Comment DEF REAL VARARRAY[10,10] DEF BOOL IS_VAR=FALSE N10 IS_VAR=ISVAR("VARARRAY[,]") ; IS_VAR is in this case TRUE, is a two- dimensional array.
Flexible NC programming 1.1 Variables 1.1.16 Read attribute values / data type (GETVARPHU, GETVARAP, GETVARLIM, GETVARDFT, GETVARTYP) The attribute values of system/user variables can be read with the predefined GETVARPHU, GETVARAP, GETVARLIM and GETVARDFT functions, the data type of a system/user variable with GETVARTYP.
Page 57
Flexible NC programming 1.1 Variables Read access right Syntax: <Result>=GETVARAP(<name>,<access>) Meaning: Protection level for the specified <access> <result> Data type: Range of 0 ... 7 See "Attribute: Access rights (APR, APW, APRP, values: APWP, APRB, APWB) (Page 39)". In case of fault The specified has not been assigned to a system <name>...
Page 58
Flexible NC programming 1.1 Variables Read limit values Syntax: <Status>=GETVARLIM(<name>,<limit value>,<result>) Meaning: Function status <Status> Data type: Range of values: No limit value defined (for variables of type AXIS, STRING, FRAME) The specified has not been assigned to a system <name>...
Page 59
Flexible NC programming 1.1 Variables Read default value Syntax: <Status>=GETVARDFT(<name>,<result>[,<index_1>,<index_2>,<index_3>]) Meaning: Function status <Status> Data type: Range of values: No default value available (e.g. because <result> has the wrong type for <name>) The specified has not been assigned to a system <name>...
Page 60
Flexible NC programming 1.1 Variables Example: Program code Comment DEF INT state=0 DEF REAL resultR=0 ; Variable to accept the default values of the types INT, REAL, BOOL, AXIS. DEF FRAME resultF=0 ; Variable to accept the default values of the type FRAME IF (GETVARTYP("$MA_MAX_AX_VELO") <>...
Flexible NC programming 1.2 Indirect programming Example: Program code Comment DEF INT result=0 DEF STRING name="R" result=GETVARTYP(name) ; Determine the type of the R parameter. IF (result < 0) GOTOF error The value 4 is returned as result. This corresponds to the REAL data type. Indirect programming 1.2.1 Indirectly programming addresses...
Page 62
Flexible NC programming 1.2 Indirect programming Examples Example 1: Indirectly programming a spindle number Direct programming: Program code Comment S1=300 ; Speed in rpm for the spindle number 1. Indirect programming: Program code Comment DEF INT SPINU=1 ; Defining variables, type INT and value assignment. S[SPINU]=300 ;...
Page 63
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 Comment DEF AXIS AXVAR1 AXVAR2 ; Defining two type AXIS variables. AXVAR1=(X1) AXVAR2=(X2) ; Assigning the axis names. AX[AXVAR1]=100 AX[AXVAR2]=200 ;...
Flexible NC programming 1.2 Indirect programming Example 7: Indirect subprogram call Program code Comment CALL "L" << R10 ; Call the program, whose number is located in R10 (string cascading). 1.2.2 Indirectly programming G codes Function Indirect programming of G codes permits cycles to be effectively programmed. Syntax G[<group>]=<number>...
Flexible NC programming 1.2 Indirect programming Examples Example 1: Settable zero offset (G function group 8) Program code Comment N1010 DEF INT INT_VAR N1020 INT_VAR=2 N1090 G[8]=INT_VAR G1 X0 Y0 ; G54 N1100 INT_VAR=INT_VAR+1 ; G code calculation N1110 G[8]=INT_VAR G1 X0 Y0 ;...
Page 66
Flexible NC programming 1.2 Indirect programming Meaning The following positioning commands can be programmed <POSITIONING COMMAND>[] together with the key word GP: POSA,SPOS SPOSA Also possible: All axis and spindle identifiers present in the channel: <axis/spindle> Variable axis/spindle identifier Axis/spindle that is to be positioned <axis/spindle>...
Page 67
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 command in the main program. SPOS Positioning is realized using the instruction in N2230 SPOS[1]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)
Flexible NC programming 1.2 Indirect programming 1.2.4 Indirectly programming part program lines (EXECSTRING) Function Using the part program command , it is possible to execute a previously EXECSTRING generated string variable as part program line. Syntax is programmed in a separate part program line: EXECSTRING EXECSTRING (<string_variable>) Meaning...
Flexible NC programming 1.3 Arithmetic functions Arithmetic functions Function The arithmetic functions are primarily for R parameters and variables (or constants and functions) of type REAL. The types INT and CHAR are also permitted. Operator / arithmetic function Meaning Addition Subtraction Multiplication Division...
Page 70
Flexible NC programming 1.3 Arithmetic functions BOUND () Variable value within the defined value range (see "Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) (Page 74)") CTRANS() Offset CROT () Rotation CSCALE() Change of scale CMIRROR() Mirroring Programming The usual mathematical notation is used for arithmetic functions. Priorities for execution are indicated by parentheses.
Flexible NC programming 1.4 Comparison and logic operations Program code Comment R14=(R1+R2)*R3 ; Parentheses are calculated first. R15=SQRT(POT(R1)+POT(R2)) ; Inner parentheses are resolved first: R15 = square root of (R1+R2) RESFRAME=FRAME1:FRAME2 ; The concatenation operator links frames to form a resulting frame or assigns values FRAME3=CTRANS(…):CROT(…) to frame components.
Page 72
Flexible NC programming 1.4 Comparison and logic operations Logic operator Meaning Negation Exclusive OR Bit-by-bit logic operator Meaning Bit-by-bit AND B_AND Bit-by-bit OR B_OR Bit-by-bit negation B_NOT Bit-by-bit 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.
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.
Flexible NC programming 1.6 Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) Synchronized actions The response described for the comparison commands also applies to synchronized actions. Examples Example 1: Precision considerations Program code Comments N40 R1=61.01 R2=61.02 R3=0.01 Assignment of initial values N41 IF ABS(R2-R1) >...
Page 75
Flexible NC programming 1.6 Variable minimum, maximum and range (MINVAL, MAXVAL and BOUND) Meaning Obtains the smaller value of two variables ( MINVAL <variable1> <variable2> Result variable for the command <smaller value> MINVAL Set to the smaller variable value. Obtains the larger value of two variables ( MAXVAL <variable1>...
Flexible NC programming 1.7 Priority of the operations Program code Comment rVar3=1.8 rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 is below the minimum limit, rRetVar is set to 10.5. rVar3=45.2 rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 is above the maximum limit, rRetVar is set to 33.7. Priority of the operations Function Each operator is assigned a priority.
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.
Flexible NC programming 1.9 String operations String operations Sting operations In addition to the classic operations "assign" and "comparison" the following string operations are possible: ● Type conversion to STRING (AXSTRING) (Page 78) ● Type conversion from STRING (NUMBER, ISNUMBER, AXNAME) (Page 79) ●...
Flexible NC programming 1.9 String operations Syntax <STRING_ERG> = << <any_type> <STRING_ERG> = AXSTRING(<axis identifier>) Significance Variable for the result of the type conversion <STRING_ERG> Type: STRING Variable types INT, REAL, CHAR, STRING and BOOL <any_type> command supplies the specified axis identifier as AXSTRING AXSTRING string.
Page 80
Flexible NC programming 1.9 String operations Meaning command returns the number represented by the NUMBER NUMBER <string> REAL value. Type STRING variable to be converted <string> Variable for the result of the type conversion with <REAL_ERG> NUMBER Type: REAL command can be used to check whether the ISNUMBER ISNUMBER <string>...
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.
Flexible NC programming 1.9 String operations Example 2: Explicit type conversion with << Program code Comment DEF REAL VALUE=3.5 <<VALUE ; The specified REAL type variable is converted into a STRING type. 1.9.4 Conversion to lower/upper case letters (TOLOWER, TOUPPER) Function The "conversion to lower/upper case letters"...
Flexible NC programming 1.9 String operations 1.9.5 Determine length of string (STRLEN) Function command can be used to determine the length of a character string. STRLEN Syntax <INT_ERG>=STRLEN("<STRING>") Meaning command determines the length of the specified character STRLEN STRLEN string. The number of characters that are not the 0 character, counting from the beginning of the string is returned.
Page 84
Flexible NC programming 1.9 String operations Semantics Search functions: It supplies the position in the string (fist parameter) where the search has been successful. If the character/string cannot be found, then the value -1 is returned. The first character has position 0. Meaning Searches for the character specified as second parameter (from the INDEX...
Flexible NC programming 1.9 String operations 1.9.7 Selection of a substring (SUBSTR) Function Arbitrary parts within a string can be read with the SUBSTRING function. Syntax <STRING_ERG>=SUBSTR(<string>,<index>,<length>) <STRING_ERG>=SUBSTR(<string>,<index>) Meaning This function returns a substring from <string>, starting with <index> with the SUBSTR specified <length>.
Page 86
Flexible NC programming 1.9 String operations Syntax <Character>=<string>[<index>] <Character>=<string_array>[<array_index>,<index>] <String>[<index>]=<character> <String_array>[<array_index>,<index>]=<character> Meaning Any string <string> Variable of type CHAR <character> Position of the character within the string. <index> First character of the string: Index = 0 Range of values: 0 ... (string length - 1) Examples Example 1: Variable message Program code...
Flexible NC programming 1.9 String operations Program code Comment EXTERN UP_REF(VAR ACHSE) Definition of subprogram with "call by reference" parameters UP_VAL(STRG[6]) Parameter transfer "by value" CHR = STRG[6] Buffer UP_REF(CHR) Parameter transfer "by reference" 1.9.9 Formatting a string (SPRINT) Function Using the pre-defined SPRINT function, character strings can be formatted and e.g.
Page 88
Flexible NC programming 1.9 String operations Format descriptions available Conversion into the "TRUE" string, if the value to be converted: Is not equal to 0. Is not an empty string (for string values). Conversion into the "FALSE" string, if the value to be converted: Is equal to 0.
Page 89
Flexible NC programming 1.9 String operations Conversion into a string with a decimal number with 6 decimal places and a total %<m>F length of at least <m> characters. Where relevant, the decimal places are rounded- off or filled with 0. Missing characters are filled up to the total length <m> using spaces, left-justified.
Page 90
Flexible NC programming 1.9 String operations Conversion into a string with a decimal number in the exponential representation %<m>E and a total length of at least <m> characters. The missing characters are filled with spaces, left-justified. The mantissa is saved, normalized with one pre-decimal place and 6 decimal places.
Page 91
Flexible NC programming 1.9 String operations Conversion into a string with a decimal number – depending on the value range – in a decimal or exponential representation: If the absolute value to be represented is less than 1.0EX-04 or greater than/equal to 1.0EX+06, then the exponential notation is selected, otherwise the decimal notation.
Page 92
Flexible NC programming 1.9 String operations Conversion into a string with a decimal number – depending on the value range – in %.<n>G a decimal or exponential representation. A maximum of <n> significant places are displayed or if required, rounded-off. If the absolute value to be represented is less than 1.0EX-04 or greater than/equal to 1.0EX(+<n>), then the exponential notation is selected, otherwise the decimal notation.
Page 93
Flexible NC programming 1.9 String operations Converting a REAL value into an INTEGER value taking into account <n> decimal %.<n>P places. The INTEGER value is output as a 32-bit binary number. If the value to be converted cannot be represented with 32 bits, then processing is interrupted with an alarm.
Page 94
Flexible NC programming 1.9 String operations Conversion of a REAL value corresponding to the setting in machine data %<m>.<n>P MD10751 $MN_SPRINT_FORMAT_P_DECIMAL into a string with: An integer of <m> + <n> places or A decimal number with a maximum of <m> pre-decimal places and precisely ...
Page 95
Flexible NC programming 1.9 String operations Inserting <n> characters of a string (starting with the first character). %.<n>S Example: N10 DEF STRING[16] STRING_VAR="ABCDEFG" N20 DEF STRING[80] RESULT N30 RESULT=SPRINT("CONTENT OF STRING_VAR:%.3S",STRING_VAR) Result: The character string "CONTENT OF STRING_VAR:ABC" is written to the string variable RESULT.
Flexible NC programming 1.10 Program jumps and branches NC data types Note The table indicates that the NC data types AXIS and FRAME cannot be directly used in the SPRINT function. However it is possible: To convert the AXIS data type into a string using the AXSTRING function – which can then be processed with SPRINT.
Flexible NC programming 1.10 Program jumps and branches Meaning Jump instruction where the destination is the beginning of the program. GOTOS The execution is controlled via the NC/PLC interface signal: DB21, to DBX384.0 (control program branching) Value: Meaning: No return jump to the beginning of the program. Program execution is resumed with the next part program block after GOTOS Return jump to the beginning of the program.
Page 98
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 99
Flexible NC programming 1.10 Program jumps and branches Note Jump markers (labels) Jump markers 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: ...
Flexible NC programming 1.10 Program jumps and branches Example 2: Indirect jump to the block number Program code Comment N5 R10=100 N10 GOTOF "N"<<R10 ; Jump to the block whose block number is located in R10. N90 ... N100 ... ;...
Page 101
Flexible NC programming 1.10 Program jumps and branches Syntax CASE(<expression>) OF <constant_1> GOTOF <jump destination_1> <constant_2> GOTOF <jump destination_2> ... DEFAULT GOTOF <jump destination_n> Meaning Jump statement CASE Variable or arithmetic function <expression> Keyword to formulate conditional program branches. First specify constant value for the variable or arithmetic function <constant_1>...
Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Example Program code N20 DEF INT VAR1 VAR2 VAR3 N30 CASE(VAR1+VAR2-VAR3) OF 7 GOTOF Label_1 9 GOTOF Label_2 DEFAULT GOTOF Label_3 N40 Label_1: G0 X1 Y1 N50 Label_2: G0 X2 Y2 N60 Label_3: G0 X3 Y3 instruction from defines the following program branch possibilities:...
Page 103
Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Syntax 1. Repeat individual program line: <jump marker>: ... REPEATB <jump marker> P=<n> 2. Repeat program section between jump marker and REPEAT statement: <jump marker>: ... REPEAT <jump marker> P=<n> 3.
Page 104
Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Meaning Command for repeating a program line REPEATB Command for repeating a program section REPEAT identifies: <jump marker> <jump marker> The program line to be repeated (in the case of REPEATB ...
Page 105
Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Examples Example 1: Repeat individual program line Program code Comment 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 107
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 is programmed during processing of a program section repetition, the repetition is canceled. The program is resumed at the block following the line.
Page 109
Flexible NC programming 1.12 Check structures Effectiveness The check structure cannot be used program-wide. Nesting depth A nesting depth of up to 16 check structures can be set up on each subprogram level. 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.
Flexible NC programming 1.12 Check structures Supplementary conditions ● Blocks with check structure elements cannot be suppressed. ● Jumper markers (labels) are not permitted in blocks with check structure elements. ● Check structures are processed interpretively. When a loop end is detected, a search is made for the loop beginning, allowing for the check structures found in the process.
Flexible NC programming 1.12 Check structures Meaning Introduces the conditional statement or branch. Introduces the alternative program block. ELSE Marks the end of the conditional statement or branch. ENDIF Logical expression that is evaluated as TRUE or FALSE. <condition> Example: Tool change subprogram Program code Comment PROC L6...
Flexible NC programming 1.12 Check structures Syntax LOOP ENDLOOP Meaning Initiates the endless loop. LOOP Marks the end of the loop and results in a return jump to the beginning of the ENDLOOP loop. Example Program code LOOP MSG ("no tool cutting edge active") STOPRE ENDLOOP 1.12.3...
Page 113
Flexible NC programming 1.12 Check structures Meaning Initiates the count loop. Marks the end of the loop and results in a return jump to the beginning ENDFOR of the loop, as long as the end value of the count has still not been reached.
Flexible NC programming 1.12 Check structures Example 2: Production of a fixed quantity of parts Program code Comment DEF INT WKPCCOUNT ; Defines type INT variable with the name "WKPCCOUNT". FOR WKPCCOUNT = 0 TO 100 ; Initiates the count loop. The "WKPCCOUNT" variable increments from the initial value "0"...
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>...
Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Program code Comment ENDWHILE ELSE ; ELSE block search MSG("No drilling during block search") ENDIF ; ENDIF $A_OUT[1] = 1 ; Next drilling plate G4 F2 ENDLOOP 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)
Page 117
Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Meaning Predefined procedure for selecting the NC program that is to be processed in the INIT specified channel Number of channel <channel no.> Type: An absolute or relative path to the NC program <path specification>...
Page 118
Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Predefined procedure to wait for a marker to be reached in the specified WAITM channels The specified marker is set by in the same channel. The previous block is WAITM terminated with exact stop.
Page 119
Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Note Channel name Instead of channel numbers, the channel names (identifiers or keywords) defined via $MC_CHAN_NAME can also be programmed (type: STRING). CAUTION Channel name The names must not already exist in the NC with a different meaning, e.g. as key words, commands, axis names etc.
Page 120
Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) ● Integer variables: Program code Comment DEF INT chanNo1, chanNo2 ; Define variables. chanNo1=CHAN_X chanNo2=CHAN_Y START(chanNo1, chanNo2) ; Perform start in the 1st and 2nd channels Example 3: INIT command with absolute path specification Program code N10 INIT(2,"/_N_WKS_DIR/_N_SHAFT1_WPD/_N_CUT1_MPF") Example 4: INIT command with relative path specification...
Flexible NC programming 1.14 Interrupt routine (ASUB) Program code Comment N70 WAITM(1,1,2) ; Wait until wait marker 1 is reached in channels 1 and 2. ; Additional processing in channel 2. N270 WAITM(2,1,2) ; Wait until wait marker 2 is reached in channels 1 and 2. ;...
Page 122
Flexible NC programming 1.14 Interrupt routine (ASUB) Function A typical example should clarify the function of an interrupt routine: The tool breaks during machining. This triggers a signal that stops the current machining process and simultaneously starts a subprogram – the so-called interrupt routine. The interrupt routine contains all the statements which are to be executed in this case.
Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.2 Creating an interrupt routine Create interrupt routine as subprogram The interrupt routine is identified as a subprogram in the definition. Example: Program code Comment PROC LIFT_Z ; Program name "ABHEB_Z" N10 ... ;...
Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.3 Assign and start interrupt routine (SETINT, PRIO, BLSYNC) Function The control has signals (inputs 1...8) that initiate that the program being executed is interrupted and a corresponding interrupt routine can be started. The assignment as to which input starts which program is realized in the part program using command.
Flexible NC programming 1.14 Interrupt routine (ASUB) Example Program code Comment N20 SETINT(3) PRIO=1 ABHEB_Z ; If input 3 switches, then interrupt routine "ABHEB_Z" should start. N90 DISABLE(3) ; The SETINT instruction from N20 is deactivated. N130 ENABLE(3) ; The SETINT instruction from N20 is reactivated.
Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.6 Fast retraction from the contour (SETINT LIFTFAST, ALF) Function For a statement with , when the input is switched, the tool is moved away SETINT LIFTFAST from the workpiece contour using fast retraction. The further sequence is then dependent on whether the statement includes an SETINT...
Page 128
Flexible NC programming 1.14 Interrupt routine (ASUB) Priority value <value> Range of values: 1 ... 128 Priority 1 corresponds to the highest priority. Name of the subprogram (interrupt routine) that is to be executed. <NAME> Command: Fast retraction from the contour LIFTFAST Command: Programmable traverse direction (in motion block) ALF=…...
Flexible NC programming 1.14 Interrupt routine (ASUB) Subprogram: Subprogram Comment PROC W_CHANGE SAVE ; Subprogram where the actual operating state is saved N10 G0 Z100 M5 ; Tool changing position, spindle stop N20 T11 M6 D1 G41 ; Change tool N30 REPOSL RMBBL M3 ;...
Page 130
Flexible NC programming 1.14 Interrupt routine (ASUB) With activated (machining direction to the left of the contour) the tool vertically moves away from the contour. Reference plane for defining the traversing direction for LFTXT At the point of application of the tool to the programmed contour, the tool is clamped at a plane which is used as a reference for specifying the retraction movement with the corresponding code number.
Page 131
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"...
Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) 1.14.8 Motion sequence for interrupt routines Interrupt routine without LIFTFAST Axis motion is braked along the path down to standstill (zero speed). The interrupt routine then starts. The standstill position is saved as interrupt position and is approached at the end of the interrupt routine for with REPOS...
Page 133
Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Machine manufacturer Please refer to the machine manufacturer's instructions. For the purpose of axis replacement, one axis must be defined uniquely in all channels in the configurable machine data and the axis replacement characteristics can also be set using machine data. Syntax RELEASE (axis name, axis name, ...) RELEASE (S1)
Page 134
Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Examples Example 1: Axis exchange between two channels Of the six 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 135
Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Example 3: Activating an axis exchange without a preprocessing stop Requirement: Axis replacement without a preprocessing stop must be configured via machine data. Programming Comment N010 M4 S100 N011 G4 F2 N020 M5 N021 SPOS=0 N022 POS[B]=1...
Page 136
Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Accept axis: GET The actual axis replacement is performed with this command. The channel for which the command is programmed takes full responsibility for the axis. Effects of GET: Axis replacement with synchronization: An axis always has to be synchronized if it has been assigned to another channel or the PLC in the meantime and has not been resynchronized with "WAITP", G74 or delete distance-to-...
Flexible NC programming 1.16 Transfer axis to another channel (AXTOCHAN) 1.16 Transfer axis to another channel (AXTOCHAN) Function language command can be used to request an axis in order to move it to a AXTOCHAN different channel. The axis can be moved to the corresponding channel both from the NC part program and from a synchronized action.
Flexible NC programming 1.17 Activate machine data (NEWCONF) Program code Comment N131 M0 N140 AXTOCHAN(Y,2) ; Move Y axis to second channel (NC program). N141 M0 Further information AXTOCHAN in the NC program is only executed in the event of the axis being requested for the NC program in the same channel (this means that the system waits for the state to actually change).
If 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 140
Flexible NC programming 1.18 Write file (WRITE) Requirement The currently set protection level must be equal to or greater than the WRITE right of the file. If this is not the case, access is denied with an error message (return value of error variable = 13).
Page 141
Flexible NC programming 1.18 Write file (WRITE) Parameter 2: The name of the file in the passive file system in which the <file name> specified block or specified data is to be added. Type: STRING The following points should be noted when specifying the file name: ...
Page 142
Flexible NC programming 1.18 Write file (WRITE) Note When writing into the passive file system of the NCK, the command implicitly inserts WRITE an "LF" character (LINE FEED = new line) at the end of the output string. This behavior does not apply for output on an external device/file. If an "LF" is also to be output, then this must be explicitly specified in the output string.
Page 143
Flexible NC programming 1.18 Write file (WRITE) Example 3: Implicit/explicit "LF" a, writing into the passive file system with implicitly generated "LF" Program code N110 DEF INT ERROR N120 WRITE(ERROR,"/_N_MPF_DIR/_N_MYPROTFILE_MPF","MY_STRING") N130 WRITE(ERROR,"/_N_MPF_DIR/_N_MYPROTFILE_MPF","MY_STRING") N140 M30 Output result: MY_STRING MY_STRING b, writing into an external file without implicitly generated "LF" Program code N200 DEF STRING[30] DEV_1 N210 DEF INT ERROR...
Flexible NC programming 1.19 Delete file (DELETE) See also Process DataShare - output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) (Page 605) 1.19 Delete file (DELETE) Function command can be used to delete all files, irrespective of whether these were DELETE created using the command or not.
Page 145
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 ≤...
Flexible NC programming 1.20 Read lines in the file (READ) 1.20 Read lines in the file (READ) Function command reads one or several lines in the specified file and stores the information READ read in an STRING type array. In this array, each read line occupies an array element. Note The file must be stored in the NCK's static user memory (passive file system).
Page 147
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 ≤...
Flexible NC programming 1.21 Check for presence of file (ISFILE) Result variable (call-by-reference parameter) <result> Variable array in which the read text is stored. Type: STRING (max. length: 255) If fewer lines are specified in the parameter than <number of lines> the array size of the result variable, the remaining array [<n>,<m>]...
Page 149
Flexible NC programming 1.21 Check for presence of file (ISFILE) Meaning Command for checking if the specified file exists in the passive file ISFILE system. Name of the file whose existence is to be checked in the passive file <file name> system.
Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) Example Program code Comment N10 DEF BOOL RESULT ; Definition of result variables. N20 RESULT=ISFILE("TESTFILE") N30 IF(RESULT==FALSE) N40 MSG("FILE DOES NOT EXIST") N50 M0 N60 ENDIF Program code Comment N10 DEF BOOL RESULT ;...
Page 151
Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) Syntax FILE..(<error>,"<file name>",<result>) Meaning Returns the date of the last write access to a file FILEDATE Returns the time of the last write access to a file FILETIME Returns the current size of a file FILESIZE...
Page 152
Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) Name of the file from which the file information is to be read out <file name> Type: CHAR[160] The following points should be noted when specifying the file name: ...
Flexible NC programming 1.23 Roundup (ROUNDUP) Example Program code Comment N10 DEF INT ERROR ; Definition of error variables. N20 STRING[32] RESULT ; Definition of result variables. N30 FILEINFO(ERROR,"/_N_MPF_DIR/_N_TESTFILE_MPF",RESULT) ; Filename with domain, file identifier and path specification. N40 IF ERROR <>0 ;...
Flexible NC programming 1.24 Subprogram technique Examples Example 1: Various input values and their rounding up results Example Rounding up result ROUNDUP(3.1) ROUNDUP(3.6) ROUNDUP(-3.1) -3.0 ROUNDUP(-3.6) -3.0 ROUNDUP(3.0) ROUNDUP(3) Example 2: ROUNDUP in the NC program Program code N10 X=ROUNDUP(3.5) Y=ROUNDUP(R2+2) N15 R2=ROUNDUP($AA_IM[Y]) N20 WHEN X=100 DO Y=ROUNDUP($AA_IM[X]) 1.24...
Flexible NC programming 1.24 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 ●...
Flexible NC programming 1.24 Subprogram technique Program name expansion The program name assigned when the program is created is expanded within the control with the addition of a prefix and a suffix. ● Prefix: _N_ ● Suffix: – Main programs: _MPF –...
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 ●...
Flexible NC programming 1.24 Subprogram technique Sequence Directory Description /_N_CUS_DIR / User cycles /_N_CMA_DIR / Manufacturer cycles /_N_CST_DIR / Standard cycles 1.24.1.5 Formal and actual parameters Formal and actual parameters occur in conjunction with the definition and calling of subprograms with parameter transfer. Formal parameter When a subprogram is defined, the parameters to be transferred to it (known as the formal parameters) have to be defined with type and parameter name.
Flexible NC programming 1.24 Subprogram technique 1.24.1.6 Parameter transfer Definition of a subprogram with parameter transfer A subprogram with parameter transfer is defined using the keyword and a complete list PROC of all the parameters expected by the subprogram. Incomplete parameter transfer When the subprogram is called, not all the parameters defined in the subprogram interface have to be transferred explicitly.
Page 160
Flexible NC programming 1.24 Subprogram technique NOTICE Call-by-reference parameter transfer Parameters transferred using call-by-reference must not be left out of the subprogram call. NOTICE AXIS data type AXIS data type parameters must not be left out of the subprogram call. Checking the transfer parameters System variable $P_SUBPAR [ n ] where n = 1, 2, etc., can be used to check whether a parameter has been transferred explicitly or left out in the subprogram.
Flexible NC programming 1.24 Subprogram technique 1.24.2 Definition of a subprogram 1.24.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...
Flexible NC programming 1.24 Subprogram technique 1.24.2.2 Subprogram with call-by-value parameter transfer (PROC) Function A subprogram with call-by-value parameter transfer is defined using the keyword PROC followed by the name of the program and a complete list of all the parameters expected by the subprogram, with type and name.
Flexible NC programming 1.24 Subprogram technique Name of the parameter <par_n> Optional value for the initialization of the parameter <init_value> If no parameter is specified when calling the subprogram, the parameter is assigned the initialization value. Example Definition of a subprogram SUB_PROG with three parameters of type REAL with default values: Program code PROC SUB_PROG(REAL LENGTH=10.0, REAL WIDTH=20.0, REAL HIGHT=30.0)
Page 164
Flexible NC programming 1.24 Subprogram technique Note A maximum of 127 parameters can be transferred. 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.
Page 165
Flexible NC programming 1.24 Subprogram technique Name of the array <array name> Array size [<m>,<n>,<o>] Currently, up to 3-dimensional arrays are possible: Array size for 1st dimension <m> Array size for 2nd dimension <n> Array size for 3rd dimension <o> Note The program name specified after the keyword must match the program name assigned...
Flexible NC programming 1.24 Subprogram technique 1.24.2.4 Save modal G functions (SAVE) Function attribute means that before the subprogram call, active modal G functions are SAVE saved and are re-activated after the end of the subprogram. NOTICE Interrupt continuous-path mode If, for active continuous-path mode, a sub-program is called with the attribute, the SAVE...
Flexible NC programming 1.24 Subprogram technique Supplementary conditions Frames The behavior of frames regarding subprograms with the attribute depends on the frame SAVE time and can be set using machine data. References Function Manual, Basic Functions; Axes, Coordinate Systems, Frames (K2), Section: "Subprogram return with SAVE"...
Page 168
Flexible NC programming 1.24 Subprogram technique Meaning First operation in a program PROC Command to deactivate single block execution SBLOF can be written in a block or alone in the block. SBLOF PROC Command to activate single block execution SBLON must be in a separate block.
Page 169
Flexible NC programming 1.24 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 Comment N100 PROC CYCLE1 DISPLOF SBLOF...
Page 170
Flexible NC programming 1.24 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 Comment N10 G0 X0 ; Stop in this part program line. N20 X10 ;...
Page 171
Flexible NC programming 1.24 Subprogram technique Program code Comment N230 UP3(0) PROC UP3(INT _NR) N300 SBLOF ; Suppress single block stop. N305 X30 N310 SBLON ; Activate single block stop. N320 X32 ; Execution is stopped in this block. N330 SBLOF ;...
Flexible NC programming 1.24 Subprogram technique Single block suppression for program nesting was programmed in the instruction in a subprogram, then execution is stopped SBLOF PROC at the subprogram return jump with . That prevents the next block in the calling program from already running.
Page 173
Flexible NC programming 1.24 Subprogram technique together with the attribute means that in the case of an ACTBLOCNO DISPLOF ACTBLOCNO alarm, the number of the actual block is output in which the alarm occurred. The also applies if only is programmed in a lower DISPLOF program level.
Page 174
Flexible NC programming 1.24 Subprogram technique Main program: Program code Comment N1000 G0 X0 Y0 Z0 N1010 ... N2050 SUBPROG1 ; Alarm output = "12080 channel K1 block N9040 syntax error for text R10=" N2060 ... N2350 SUBPROG2 ; Alarm output = "12080 channel K1 block N2350 syntax error for text R10="...
Flexible NC programming 1.24 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. ③...
Flexible NC programming 1.24 Subprogram technique Read subprogram with preparation and subprogram call The cycle directories are processed in the same order both for subprograms preprocessed with parameters during power up and during subprogram call. 1. _N_CUS_DIR user cycles 2. _N_CMA_DIR manufacturer cycles 3.
Flexible NC programming 1.24 Subprogram technique Example 1. Subprogram with in a separate block Program code Comment N10 G64 F2000 G91 X10 Y10 N20 X10 Z10 N30 M17 ; Return jump with interruption of continuous-path mode. 2. Subprogram with in the last traversing block Program code Comment N10 G64 F2000 G91 X10 Y10...
Flexible NC programming 1.24 Subprogram technique Syntax PROC <program name> 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 179
Flexible NC programming 1.24 Subprogram technique Syntax RET("<target block>") RET("<target block>",<block after target block>) RET("<target block>",<block after target block> <number of return jump levels>) RET("<target block>", ,<number of return jump levels>) RET("<target block>",<block after target 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 180
Flexible NC programming 1.24 Subprogram technique <number of Return jump parameter 3 return jump levels> Specifies the number of levels that must be jumped back in order to reach the program level in which program execution should be continued. Type: Value: The program is resumed at the "current program level - 1"...
Page 181
Flexible NC programming 1.24 Subprogram technique Supplementary conditions When making a return jump through several program levels, the statements of the SAVE individual program levels are evaluated. If, for a return jump over several program levels, a modal subprogram is active and if in one of the skipped programs the deselection command is programmed for the modal MCALL...
Page 182
Flexible NC programming 1.24 Subprogram technique Program code Comment N1420 .. N1500 lab1: iVar1=R10*44 N1510 F500 X5 N1520 ... N1550 subprog1: G1 X30 ; "subProg1" is defined here as jump marker. N1560 ... N1600 subProg3 ; Calls subprogram "subProg3" N1610 ... N1900 M30 Subprogram subProg1: Program code...
Page 183
Flexible NC programming 1.24 Subprogram technique 1st return jump parameter 1 = "N200", return jump parameter 2 = 0 After the command, program execution is continued with block in the main program. N200 2nd return jump parameter 1 = "N200", return jump parameter 2 = 1 After the command, program execution is continued with the block ( ) that follows...
Flexible NC programming 1.24 Subprogram technique 3rd return jump parameter 1 = "N220", return jump parameter 3 = 2 After the command, two program levels are jumped through and program execution is continued with block N220 1.24.3 Subprogram call 1.24.3.1 Subprogram call without parameter transfer Function A subprogram is called either with address L and subprogram number or by specifying the...
Page 185
Flexible NC programming 1.24 Subprogram technique Note Accordingly, a subprogram can also be started as a main program. Search strategy of the control: Are there any *_MPF? Are there any *_SPF? This means: if the name of the subprogram to be called is identical to the name of the main program, the main program that issued the call is called again.
Page 186
Flexible NC programming 1.24 Subprogram technique Examples Example 1: Subprogram call without parameter transfer Example 2: Calling a main program as a subprogram Job Planning Programming Manual, 03/2013, 6FC5398-2BP40-3BA1...
Flexible NC programming 1.24 Subprogram technique 1.24.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 parameters). Subprograms with parameter transfer must be declared with in the main program EXTERNAL before they are called in the main program (e.g.
Page 188
Flexible NC programming 1.24 Subprogram technique Examples Example 1: Subprogram call preceded by declaration Program code Comment 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, 03/2013, 6FC5398-2BP40-3BA1...
Flexible NC programming 1.24 Subprogram technique Example 2: Subprogram call without declaration Program code Comment 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.24.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 in the block with the subprogram call.
Page 190
Flexible NC programming 1.24 Subprogram technique Syntax <program name> P<value> Meaning Subprogram call <program name> Address to program program repetitions Number of program repetitions <value> Type: Range of values: 1 … 9999 (unsigned) Example Program code Comment N40 FRAME P3 ;...
Flexible NC programming 1.24 Subprogram technique 1.24.3.4 Modal subprogram call (MCALL) Function For a modal subprogram call with , the subprogram is automatically called and MCALL 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 192
Flexible NC programming 1.24 Subprogram technique Examples Example 1: Program code Comment N10 G0 X0 Y0 N20 MCALL L70 ; Modal subprogram call. N30 X10 Y10 ; The programmed position is approached and then subprogram L70 is executed. N40 X50 Y50 ;...
Flexible NC programming 1.24 Subprogram technique 1.24.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 the STRING type.
Flexible NC programming 1.24 Subprogram technique 1.24.3.6 Indirect subprogram call with specification of the calling program part (CALL BLOCK ... TO ...) Function and the keyword combination is used to call a subprogram indirectly and CALL BLOCK ... TO execute the program part designated by the start and end labels. Syntax CALL <program name>...
. The ISO mode set in the machine data is then activated. The original execution ISOCALL 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 References:...
Flexible NC programming 1.24 Subprogram technique 1.24.3.9 Extend search path for subprogram calls (CALLPATH) Function The search path for subprogram calls can be extended using the command. CALLPATH 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.
Flexible NC programming 1.24 Subprogram technique 4. /_N_SPF_DIR/subprogram identifier_SPF 5. /_N_WKS_DIR/_N_MYWPD_WPD/subprogram identifier_SPF 6. /N_CUS_DIR/subprogram identifier_SPF 7. /_N_CMA_DIR/subprogram identifier_SPF 8. /_N_CST_DIR/subprogram identifier_SPF Supplementary conditions ● checks whether the programmed path name actually exists. In the case of an CALLPATH error, part program execution is interrupted with correction block alarm 14009. ●...
Page 199
Flexible NC programming 1.24 Subprogram technique Default setting of the external program path The path for the external program directory can be preset with the setting data: SD42700 $SC_EXT_PROG_PATH Together with the program path and identifier specified with the call, this forms the EXTCALL entire path for the subprogram to be called.
Page 200
Flexible NC programming 1.24 Subprogram technique Subprogram "SP_1" The external subprogram "SP_1.SPF" or "SP_1.MPF" is on the local drive in the directory "/user/sinumerik/data/prog/WKS.DIR/WST1.WPD". The path for the external program directory is set with: SD42700 $SC_EXT_PROG_PATH = LOCAL_DRIVE:WKS.DIR/WST1.WPD Note Specification of the path for the call of the external subprogram: ...
Page 201
Flexible NC programming 1.24 Subprogram technique 2. If the subprogram was not found under 1., the directories of the user memory are searched. The search ends when the subprogram is found for the first time. If the subprogram is not found, the program execution is aborted with the call.
Flexible NC programming 1.24 Subprogram technique 1.24.3.11 Execute external subprogram (828D) (EXTCALL) Function A part program can be loaded from an external memory and executed with the EXTCALL command. The following are available as external memory: ● User CF card ●...
Page 203
Flexible NC programming 1.24 Subprogram technique Meaning Command for calling an external subprogram. EXTCALL Constant/variable of type STRING "<path><program name>" Absolute or relative path data <path> (optional) The program name is specified <program name> without prefix "_N_". The file extension ("MPF", "SPF") can be attached to program names using the "_"...
Page 204
Flexible NC programming 1.24 Subprogram technique Main program "MAIN" Program code N010 PROC MAIN N020 ... N030 EXTCALL("SP_1") N030 EXTCALL("USB:WKS.DIR/WST1.WPD/SP_2") N050 ... N060 M30 Further information EXTCALL call with absolute path name If the subprogram exists under the specified path, it is executed with the call.
Flexible NC programming 1.25 Macro technique (DEFINE ... AS) Note ShopMill/ShopTurn programs The contour descriptions added at the file end mean the ShopMill and ShopTurn programs must be stored completely in the read-only memory. A separate reload memory is required for external subprograms executed in parallel. Reset / end of program / power On Reset and power ON cause external subprogram calls to be interrupted and the associated load memory to be deleted.
Page 206
Flexible NC programming 1.25 Macro technique (DEFINE ... AS) Activation In order to use the macros of a macro file in the NC program, the macro file must be downloaded into the NC. Syntax Macro definition: DEFINE <Macro name> AS <statement 1> <statement 2> ... Call in the NC program: <macro name>...
Page 207
Flexible NC programming 1.25 Macro technique (DEFINE ... AS) Examples Example 1: Macro definition at the beginning of the program Program code Comment DEFINE LINE AS G1 G94 F300 ; Macro definition N70 LINE X10 Y20 ; Macro call Example 2: Macro definitions in a macro file Program code Comment DEFINE M6 AS L6...
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.
File and Program Management 2.1 Program memory Standard directories Its standard complement of directories is as follows: Directory 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 211
File and Program Management 2.1 Program memory The first time a part program is started, initialization programs are executed once, depending on the selected program (in accordance with machine data MD11280 $MN_WPD_INI_MODE). Example: The workpiece directory _N_WELLE_WPD, created for SHAFT workpiece contains the following files: File Description...
Page 212
File and Program Management 2.1 Program memory Example: Program code %_N_SHAFT_SPF File _N_WELLE_SPF is stored in directory /_N_SPF_DIR. Select workpiece for machining A workpiece directory can be selected for execution in a channel. If a main program with the same name or only a single main program (_MPF) is stored in this directory, this is automatically selected for execution.
File and Program Management 2.2 Working memory (CHANDATA, COMPLETE, INITIAL) The directories are searched for the called program in the following sequence: Directory Description name Current directory / Workpiece main directory or standard directory _N_MPF_DIR name_SPF Current directory / name_MPF Current directory / name_SPF /_N_SPF_DIR /...
Page 214
File and Program Management 2.2 Working memory (CHANDATA, COMPLETE, INITIAL) Initialization programs These are programs with which the working memory data is initialized. The following file types can be used for this: File type Description name_TEA Machine data name_SEA Setting data name_TOA Tool offsets name_UFR...
Page 215
File and Program Management 2.2 Working memory (CHANDATA, COMPLETE, INITIAL) Procedure for multi-channel controls (CHANDATA) for several channels is only permissible in the file CHANDATA(<channel number>) _N_INITIAL_INI. This is the commissioning file with which all data of the control is initialized. Program code Comment %_N_INITIAL_INI...
Page 216
File and Program Management 2.2 Working memory (CHANDATA, COMPLETE, INITIAL) Save initialization program (COMPLETE, INITIAL) The files of the working memory can be saved on an external PC and then read in again from there. ● The files are saved with COMPLETE ●...
Protection zones Defining 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 218
Protection zones 3.1 Defining the protection zones (CPROTDEF, NPROTDEF) Meaning Define local variable of the INTEGER data type DEF INT NOT_USED The required plane is selected before with G17/G18/G19 CPROTDEF NPROTDEF and must not be altered before . The G17/G18/G19 EXECUTE applicate must not be programmed between CPROTDEF...
Page 219
Protection zones 3.1 Defining the protection zones (CPROTDEF, NPROTDEF) Further information Definition of protection zones Definition of the protection zones includes the following: ● for channel-specific protection zones CPROTDEF ● for machine-specific protection zones NPROTDEF ● Contour description for protection zone ●...
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 221
Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Status parameter <state> Deactivate protection zone Preactivate protection zone Activate protection zone Preactivate protection zone with conditional stop Move defined protection zone on the geometry axes <xMov>,<yMov>,<zMov> Supplementary conditions Protection zone monitoring for active tool radius compensation For active tool radius compensation, a functioning protection zone monitoring is only possible if the plane of the tool radius compensation is identical to the plane of the protection zone definitions.
Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Program code Comment 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 223
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.
Protection zones 3.3 Checking for protection zone violation, working area limitation and software limit switches (CALCPOSI) Checking for protection zone violation, working area limitation and software limit switches (CALCPOSI) Function As of the start position, the function checks whether active limits have been CALCPOSI() violated along the traversing distance in the workpiece coordinate system (WCS) with regard to the geometry axes.
Page 225
Protection zones 3.3 Checking for protection zone violation, working area limitation and software limit switches (CALCPOSI) Units digit <Status> (Part 2) Note If several limits are violated simultaneously, the limit with the greatest restriction on the specified traversing distance is signaled. Software limit switches are limiting the traversing distance Working area limits are limiting the traversing distance Protection zones are limiting the traversing distance...
Page 226
Protection zones 3.3 Checking for protection zone violation, working area limitation and software limit switches (CALCPOSI) Hundred thousands digit <Status> (Part 5) 0xxxxx Hundred thousands digit == 0: <Dist> remains unchanged 1xxxxx A direction vector is returned in <Dist> which defines the further motion direction on the limitation surface.
Page 227
Protection zones 3.3 Checking for protection zone violation, working area limitation and software limit switches (CALCPOSI) Reference to an array of length 5. <Limit> <Limit> [0 - 2]: Minimum clearance of the geometry axes, abscissa, ordinate, applicate The first three elements include the minimum clearances of the geometry axis, which must be maintained with respect to the monitored limits.
Page 228
Protection zones 3.3 Checking for protection zone violation, working area limitation and software limit switches (CALCPOSI) Measuring system (inch/metric) for position and distance specifications (optional) <System> Data type: BOOL Default value: FALSE Value Meaning FALSE Measuring system corresponding to the currently active G function from G group 13 (G70, G71, G700, G710).
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".
Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) References ● Function Manual Expanded Functions; Indexing Axes (T1) ● Function Manual, Synchronized Actions Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Function Randomly curved workpiece contours cannot be precisely defined in an analytic form.
Page 231
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 232
Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Transitional behavior at the start of the spline curve (only A or C spline): BAUTO No specifications for the transitional behavior. The start is determined by the position of the first point.
Page 234
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 235
Special motion commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Program code Comment N60 CONTOUR ; Second subprogram call. N70 M30 ; End of program Subprogram "contour" (includes the coordinates of the points along the curve): Program code N10 X20 Y18 N20 X10 Y21...
Page 236
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 ●...
Page 237
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 238
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 239
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 link block end points with splines. For this ASPLINE BSPLINE CSPLINE...
Special motion commands 4.3 Spline group (SPLINEPATH) Combine short spline blocks Spline interpolation can result in short spline blocks, which reduce the path velocity unnecessarily. The "Combine short spline blocks" function allows you to combine these blocks such that the resulting block length is sufficient and does not reduce the path velocity. The function is activated via the channel-specific machine data: MD20488 $MC_SPLINE_MODE (setting for spline interpolation).
Special motion commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) Example: Spline group with three path axes Program code Comment 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 ;...
Page 242
Special motion commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) The following compressor functions are available: ● COMPON The block transitions are only constant in the velocity, while acceleration of the participating axes can be in jumps at block transitions. ●...
Page 243
Special motion commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) Supplementary conditions ● The NC block compression is generally executed for linear blocks ( ● Only blocks that comply with a simple syntax are compressed: ;comment All other blocks are executed unchanged (no compression). ●...
Page 245
Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Meaning Activation of polynomial interpolation with a POLY block containing POLY. Polynomial interpolation can be selected for POLYPATH both AXIS or VECT axis groups End points and polynomial coefficients PO[axis identifier/variable] Axis identifier X, Y, Z Specification of end position for the particular...
Page 246
Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) POLYPATH subprogram Using , the polynomial interpolation can be selectively released for certain axis POLYPATH( groups: Only path axes and supplementary axes: POLYPATH("AXES") Only orientation axes: POLYPATH("VECT") (when moving with orientation transformation) The axes that are not released are linearly moved.
Page 247
Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Example: Curve in the X/Y plane Programming Program code N9 X0 Y0 G90 F100 N10 POLY PO[Y]=(2) PO[X]=(4,0.25) PL=4 Shape of the curves X(p) and Y(p) Shape of the curve in the XY plane Job Planning Programming Manual, 03/2013, 6FC5398-2BP40-3BA1...
Page 248
Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Description The equation used to express the polynomial function is generally as follows: f(p)= a p + a +. . . + a with: a : Constant coefficients p: Parameter In the controller, polynomials up to a maximum of the 5th degree can be programmed: f(p)= a p + a...
Page 249
Special motion commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) X(p) and Y(p) are calculated as follows from the programmed values: X(p) = (10 - 10 * p ) / (1 + p Y(p) = 20 * p / (1 + p with 0 ≤...
Special motion commands 4.6 Settable path reference (SPATH, UPATH) Settable path reference (SPATH, UPATH) Function During polynomial interpolation, the user may require two different relationships between the velocity determining FGROUP axes and the other path axes: The latter should either be controlled, synchronized to the path S or synchronized to the curve parameter U of the FGROUP axes.
Page 251
Special motion commands 4.6 Settable path reference (SPATH, UPATH) Examples 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 the axis-specific machine data MD33100 $MA_COMPRESS_POS_TOL[<n>].
Page 252
Special motion commands 4.6 Settable path reference (SPATH, UPATH) Program code N10 G1 X0 F1000 UPATH N20 POLY PO[X]=(10,10) A10 In block , path S of the FGROUP axes is dependent on the square of curve parameter U. Therefore, different positions are obtained for the synchronous axis A along path X, according to whether SPATH or UPATH is active.
Special motion commands 4.7 Measuring with touch-trigger probe (MEAS, MEAW) Measuring 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 254
Special motion commands 4.7 Measuring with touch-trigger probe (MEAS, MEAW) Meaning Command: Measurement with delete distance-to-go MEAS Effective: Non-modal Command: Measurement without delete distance-to-go MEAW Effective: Non-modal Trigger event to initiate measurement <TE> Type: Range of values: -2, -1, 1, 2 Meaning: (+)1 Rising edge of probe 1 (measuring input 1)
Page 255
Special motion commands 4.7 Measuring with touch-trigger probe (MEAS, MEAW) Note If the program is deflected in the program, the variable is set to 1. At the start of a measurement block, the variable is automatically set to the initial state of the probe. Reading measured values The positions of all traversing path and positioning axes of the block are acquired (maximum number of axes depending on the control configuration).
Special motion commands 4.8 Axial measurement (MEASA, MEAWA, MEAC) (option) Axial measurement (MEASA, MEAWA, MEAC) (option) Function Several probes and several measuring systems can be used for the axial measuring. The keywords are available for programming the function. MEASA MEAWE MEAC With for the programmed axis, up to four measured values are acquired for...
Page 257
Special motion commands 4.8 Axial measurement (MEASA, MEAWA, MEAC) (option) Meaning Keyword: Axial measurement with delete distance-to-go MEASA Effective: Non-modal Keyword: Axial measurement without delete distance-to-go MEAWA Effective: Non-modal Keyword: Continuous axial measurement without delete distance- MEAC to-go Effective: Non-modal Name of channel axis used for measurement <axis>...
Page 258
Special motion commands 4.8 Axial measurement (MEASA, MEAWA, MEAC) (option) Examples Example 1: Axial measurement with delete distance-to-go in mode 1 (evaluation in chronological sequence) a) with 1 measuring system Program code Comment N100 MEASA[X]=(1,1,-1) G01 X100 F100 ; Measuring in mode 1 with active measuring system.
Page 259
Special motion commands 4.8 Axial measurement (MEASA, MEAWA, MEAC) (option) Example 2: Axial measurement with delete distance-to-go in mode 2 (evaluation in programmed sequence) Program code Comment N100 MEASA[X]=(2,1,-1,2,-2) G01 X100 F100 ; Measuring in mode 2 with active measuring system.
Page 260
Special motion commands 4.8 Axial measurement (MEASA, MEAWA, MEAC) (option) Program code Comment N170 MEASURED VALUE[loop]=$AC_FIFO1[0] ; Read-out measured values from $AC_FIFO1 and save. N180 ENDFOR b) Measurement with delete distance-to-go after 10 measured values Program code Comment N10 WHEN $AC_FIFO1[4]>=10 DO MEAC[x]=(0) DELDTG(x) ;...
Page 261
Special motion commands 4.8 Axial measurement (MEASA, MEAWA, MEAC) (option) Note The feed must be adjusted to suit the measuring task in hand. In the case of , the correctness of results can be only guaranteed for MEASA MEAWA feedrates at which no more than 1 trigger event of the same type and no more than 4 trigger events of different types occur in each position control cycle.
Page 262
Special motion commands 4.8 Axial measurement (MEASA, MEAWA, MEAC) (option) Operating mode The first digit (tens decade) of the operating mode selects the required measuring system. If only one measuring system is installed, but a second programmed, the installed system is automatically selected.
Page 263
Special motion commands 4.8 Axial measurement (MEASA, MEAWA, MEAC) (option) Note cannot be programmed in synchronized actions. As an alternative, plus delete MEASA MEAWA distance-to-go can be programmed as a synchronized action. If the measuring task with is started from synchronized actions, the measured values MEAWA will only be available in the machine coordinate system.
Page 264
Special motion commands 4.8 Axial measurement (MEASA, MEAWA, MEAC) (option) $AA_MM3[<axis>] $AA_MW3[<axis>] Measured value from measuring system 1 on trigger event 2 $AA_MM4[<axis>] $AA_MW4[<axis>] Measured value from measuring system 2 on trigger event 2 System variables The probe status is available in the following system variables: $A_PROBE[<n>] Value Meaning...
Page 265
Special motion commands 4.8 Axial measurement (MEASA, MEAWA, MEAC) (option) Continuous measurement (MEAC) The measured values for are available in the machine coordinate system and stored in MEAC the programmed FIFO[n] memory (circular buffer). If two probes are configured for the measurement, the measured values of the second probe are stored separately in the FIFO[n+1] memory configured especially for this purpose (defined in machine data).
Special motion commands 4.10 Feedrate reduction with corner deceleration (FENDNORM, G62, G621) Note Workpiece simulation Up to SW 4.4, no compile cycles are supported, as ofSW 4.4 only selected compile cycles (CC) are supported for the workpiece simulation. Language commands in the part program of compile cycles that are not supported ( OMA1 , own procedures and functions) - therefore result in an alarm OMA5...
Special motion commands 4.11 Programmable end of motion criteria (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Syntax FENDNORM G62 G41 G621 Meaning Automatic corner deceleration OFF FENDNORM Corner deceleration at inside corners when tool radius offset is active Corner deceleration at all corners when tool radius offset is active G621 G62 only applies to inside corners with ●...
Page 270
Special motion commands 4.11 Programmable end of motion criteria (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Example 2: Block change criterion: "Braking ramp" Program code Comment ; Default setting is effective N40 POS[X]=100 Positioning motion from X to position 100 Block change criterion: Exact stop fine N20 IPOBRKA(X,100) Block change criterion: "Braking ramp", 100% = start of the braking ramp...
Coordinate transformations (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 zero system SZS: Settable zero system...
Page 272
Coordinate transformations (frames) 5.1 Coordinate transformation via frame variables Possible frame variable: ● Basic frame (basic offset) ● Settable frames ● Programmable frame Value assignments and reading the actual values Frame variable/frame relationship A coordinate transformation can be activated by assigning the value of a frame to a frame variable.
Coordinate transformations (frames) 5.1 Coordinate transformation via frame variables 5.1.1 Predefined frame variable ($P_IFRAME, $P_BFRAME, $P_PFRAME, $P_ACTFRAME) $P_BFRAME Current basic frame variable that establishes the reference between the basic coordinate system (BCS) and the basic origin system (BOS). For the basic frame described via $P_UBFR to be immediately active in the program, either ●...
Page 274
Coordinate transformations (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). ● corresponds to $P_IFRAME $P_UIFR[$P_IFRNUM] ● After is programmed, for example, contains the translation, rotation, scaling $P_IFRAME and mirroring defined by G54.
Page 275
Coordinate transformations (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). contains the resulting frame, that results $P_PFRAME ● From the programming of TRANS/ATRANS ROT/AROT SCALE/ASCALE...
Coordinate transformations (frames) 5.1 Coordinate transformation via frame variables are changed, is recalculated. $P_IFRAME $P_BFRAME $P_PFRAME $P_ACTFRAME corresponds to $P_ACTFRAME $P_BFRAME $P_IFRAME $P_PFRAME Job Planning Programming Manual, 03/2013, 6FC5398-2BP40-3BA1...
Page 277
Coordinate transformations (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 --> (basic frame) acts $P_UBFR Bit0=1, bit5=1 --> (settable frame) acts $P_UIFR [$P_UIFRNUM] Predefined settable frames $P_UBFR The basic frame is programmed with $P_UBFR, but it is not simultaneously active in the part program.
Coordinate transformations (frames) 5.2 Frame variables / assigning values to frames Frame variables / assigning values to frames 5.2.1 Assigning direct values (axis value, angle, scale) Function You can directly assign values to frames or frame variables in the NC program. Syntax $P_PFRAME=CTRANS (X, axis value, Y, axis value, Z, axis value, …) $P_PFRAME=CROT (X, angle, Y, angle, Z, angle, …)
Page 279
Coordinate transformations (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 Comment $P_UIFR[5] = CROT(X, 0, Y, 0, Z, 0)
Coordinate transformations (frames) 5.2 Frame variables / assigning values to frames 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 281
Coordinate transformations (frames) 5.2 Frame variables / assigning values to frames Syntax R10=$P_UIFR[$P_UIFNUM,X,RT] Assign the angle of rotation RT around the X axis from the currently valid settable zero offset $P_UIFRNUM to the variable R10. R12=$P_UIFR[25,Z,TR] Assign the offset value TR in Z from the data record of set frame no.
Coordinate transformations (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.
Coordinate transformations (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.
Coordinate transformations (frames) 5.3 Coarse and fine offsets (CFINE, CTRANS) Coarse and fine offsets (CFINE, CTRANS) Function Fine offset The fine offset of a frame is programmed with the command. CFINE( Note Release of the fine offset via MD18600 $MN_MM_FRAME_FINE_TRANS = 1 Coarse offset The coarse offset of a frame is programmed with the command.
Page 285
Coordinate transformations (frames) 5.3 Coarse and fine offsets (CFINE, CTRANS) Coarse offset Using the example of the data management frame $P_UIFR: ● Complete frame – $P_UIFR[<n>] = CTRANS(<K1>,<value>) – $P_UIFR[<n>] = CTRANS(<K1>,<value>, <K2,<value>) – $P_UIFR[<n>] = CTRANS(<K1>,<value>, <K2,<value>, <K3,<value>) ● Frame component –...
Coordinate transformations (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.
Coordinate transformations (frames) 5.5 Preset offset with PRESETON Preset offset with PRESETON Function For special applications, it may be necessary to assign an already referenced machine axis a new actual value using . This corresponds to a zero offset in the machine PRESETON coordinate system.
Coordinate transformations (frames) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Example Geometry axis: A Associated machine axis: X1 Program code Comment N10 G0 A100 ;Axis A travels to position 100. N20 PRESETON(X1,50) ; At position 100, machine axis X1 receives the new actual value 50 =>...
Page 289
Coordinate transformations (frames) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Variable with which information on the quality of the FRAME <quality> calculation is returned Type: VAR REAL Value: The ideal points are almost on a straight line: The frame could not be calculated.
Page 290
Coordinate transformations (frames) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Setting measuring points: Program code Comment DEF REAL IDEAL_POINT[3,3]=SET(10.0,0.0,0.0,0.0,10.0,0.0,0.0,0.0,10.0) DEF REAL MEAS_POINT[3,3]=SET(10.1,0.2,-0.2,-0.2,10.2,0.1,-0.2,0.2,9.8) ; For test. DEF REAL FIT_QUALITY=0 DEF REAL ROT_FRAME_LIMIT=5 ; Permits max. five degree rotation of the part position DEF REAL FIT_QUALITY_LIMIT=3 ;...
Page 291
Coordinate transformations (frames) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Program code Comment N400 X=IDEAL_POINT[0,0] Y=IDEAL_POINT[0,1] Z=IDEAL_POINT[0,2] N410 SHOW_MCS_POS1[0]=$AA_IM[X] N420 SHOW_MCS_POS1[1]=$AA_IM[Y] N430 SHOW_MCS_POS1[2]=$AA_IM[Z] N500 X=IDEAL_POINT[1,0] Y=IDEAL_POINT[1,1] Z=IDEAL_POINT[1,2] N510 SHOW_MCS_POS2[0]=$AA_IM[X] N520 SHOW_MCS_POS2[1]=$AA_IM[Y] N530 SHOW_MCS_POS2[2]=$AA_IM[Z] N600 X=IDEAL_POINT[2,0] Y=IDEAL_POINT[2,1] Z=IDEAL_POINT[2,2] N610 SHOW_MCS_POS3[0]=$AA_IM[X] N620 SHOW_MCS_POS3[1]=$AA_IM[Y] N630 SHOW_MCS_POS3[2]=$AA_IM[Z]...
Coordinate transformations (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.
Coordinate transformations (frames) 5.7 NCU global frames 5.7.1 Channel-specific frames ($P_CHBFR, $P_UBFR) Function Settable frames or basic frames can be read and written via the part program and via the OPI by the operator and by the PLC. The fine offset can also be used for global frames. Suppression of global frames also takes place, as is the case with channel-specific frames, via G53, G153, SUPA and G500.
Coordinate transformations (frames) 5.7 NCU global frames 5.7.2 Frames active in the channel Function Frames active in the channel are entered from the part program via the relevant system variables of these frames. This also includes system frames. The current system frame can be read and written in the part program via these system variables.
Page 295
Coordinate transformations (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 by means of the write process in the channel.
Page 296
Coordinate transformations (frames) 5.7 NCU global frames $P_CHBFRMASK and $P_NCBFRMASK Complete basic frame The user can select which basic frames are to be included in the calculation of the "Complete" basic frame via the system variables $P_CHBFRMASK and $P_NCBFRMASK. The variables can only be programmed in the program and read via the OPI. The value of the variable is interpreted as a bit mask and specifies which basic frame field element of $P_ACTFRAME is to be included in the calculation.
Page 297
Coordinate transformations (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. corresponds to: $P_ACTFRAME $P_PARTFRAME...
Page 298
Coordinate transformations (frames) 5.7 NCU global frames Frame chaining The current frame is composed of the complete basic frame, the settable frame, the system frame and the programmable frame in accordance with current complete frame specified above. Job Planning Programming Manual, 03/2013, 6FC5398-2BP40-3BA1...
Transformations General programming of transformation types General function You can choose to program transformation types with suitable parameters in order to adapt the controller 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 300
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.
Transformations 6.1 General programming of transformation types TRAANG If the option of setting the infeed axis for inclined infeed is required (for grinding technology, for example), TRAANG can be used to program a configurable angle for the transformation declared. Cartesian PTP travel Kinematic transformation also includes the so-called "Cartesian PTP travel"...
Page 302
Transformations 6.1 General programming of transformation types Machine kinematics for three, four and five axis transformation (TRAORI) Either the tool or the tool table can be rotatable with up to two rotary axes. A combination of swivel head and rotary table (single-axis in each case) is also possible. Machine type Programming of orientation Three-axis transformation...
Page 303
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. The Two-axis swivel head with first rotary axis is moved by two Cartesian linear axes.
Page 304
Transformations 6.1 General programming of transformation types Cartesian PTP travel The machine moves in machine coordinates and is programmed with: TRAORI Activation of transformation PTP Point-to-point motion Approach position in Cartesian coordinate system (MCS) Path motion of Cartesian axes in the BCS STAT Position of the articulated joints is dependent on the transformation...
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 306
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...
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 308
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 309
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 φ...
Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.2 Three, four and five axis transformation (TRAORI) Function The user can configure two or three translatory axes and one rotary axis. The transformations assume that the rotary axis is orthogonal on the orientation plane. Orientation of the tool is possible only in the plane perpendicular to the rotary axis.
Transformations 6.2 Three, four and five axis transformation (TRAORI) Offset for orientation axes When orientation transformation is activated an additional offset can be programmed directly for the orientation axes. Parameters can be omitted if the correct sequence is used in programming. Example: ;...
Page 312
Transformations 6.2 Three, four and five axis transformation (TRAORI) Note Variants of orientation programming for three- to five-axis transformation In respect of three- to five-axis transformation, the following variants: 1. A, B, C direct entry of machine axis positions 2. A2, B2, C2 angular programming of virtual axes using Euler angle or RPY angle 3.
Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming LEAD, TILT and THETA rotations In respect of three- to five-axis transformation, tool orientation rotations are programmed with the LEAD and TILT angles. In respect of a transformation with third rotary axis, additional programming settings for C2 (rotations of the orientation vector) are permitted for both orientation with vector components and with entry of the LEAD, TILT angles.
Page 314
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 315
Transformations 6.2 Three, four and five axis transformation (TRAORI) Parameters G..Details of the rotary axis motion X Y Z Details of the linear axes A B C Details of the machine axis positions of the rotary axes A2 B2 C2 Angle programming (Euler or RPY angle) of virtual axes or orientation axes A3 B3 C3...
Page 316
Transformations 6.2 Three, four and five axis transformation (TRAORI) The type of orientation programming is defined in G code group 50: G function Orientation programming ORIEULER Via Euler angle ORIRPY Via RPY angle (rotation sequence ZYX) ORIVIRT1 Via virtual orientation axes (definition 1) ORIVIRT2 Via virtual orientation axes (definition 2) ORIAXPOS...
Page 317
Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming in RPY angles ORIRPY The values programmed with for orientation programming are interpreted as an A2, B2, C2 RPY angle (in degrees). Note In contrast to Euler angle programming, all three values here have an effect on the orientation vector.
Page 318
Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming of directional vector The components of the direction vector are programmed with . The vector points A3, B3, C3 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.
Transformations 6.2 Three, four and five axis transformation (TRAORI) Figure 6-1 Definition of tool orientation with LEAD= and TILT= 6.2.5 Face 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 will require the line-by-line description of the 3D paths on the workpiece surface.
Page 320
Transformations 6.2 Three, four and five axis transformation (TRAORI) The tool shape and dimensions are taken into account in the calculations, which are normally performed in CAM. The fully calculated NC blocks are then read into the controller via postprocessors. Programming the path curvature Surface description The path curvature is described by surface normal vectors with the following components:...
Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.6 Reference of the orientation axes (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...
Page 322
Transformations 6.2 Three, four and five axis transformation (TRAORI) Description With , the movement executed by the tool depends on the machine kinematics. In the ORIMKS 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.
Transformations 6.2 Three, four and five axis transformation (TRAORI) Singular positions are handled only with the MD $MC_TRAFO5_POLE_LIMIT References: /FB3/ Function Manual, Special Functions; 3- to 5-Axis Transformation (F2), "Singular Points and How to Deal with Them" section. 6.2.7 Programming orientation axes (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2) Function The "Orientation axes"...
Page 324
Transformations 6.2 Three, four and five axis transformation (TRAORI) Meaning Linear interpolation of machine or orientation axes ORIAXES Large-circle interpolation (identical to ORIPLANE) ORIVECT Rotation in the machine coordinate system ORIMKS Rotation in the workpiece coordinate system ORIWKS For a description, see "Reference of the orientation axes (ORIWKS, ORIMKS): (Page 321)".
Page 325
MD21150 $MC_JOG_VELO_RAPID_ORI MD21155 $MC_JOG_VELO_ORI Note SINUMERIK 840D sl with "handling transformation package" Using the "Cartesian manual traverse" function, in the JOG mode, the translation of geometry axes can be set separately from one another in the reference systems MCS, WCS and TCS.
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 327
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 328
Transformations 6.2 Three, four and five axis transformation (TRAORI) ORICONIO Interpolation on the peripheral surface of a taper A7= B7= C7= Intermediate orientation (programming as normalized vector) Angle of rotation of the orientation about the direction axis of the taper Opening angle of the taper Possible polynomials Apart from the different angles, polynomials can also be...
Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming in the ORIPLANE plane corresponds to ORIVECT The programming of large-radius circular interpolation together with angle polynomials corresponds to the linear and polynomial interpolation of contours. The tool orientation is interpolated in a plane that is defined by the start and end orientation.
Page 330
Transformations 6.2 Three, four and five axis transformation (TRAORI) Machine manufacturer Please refer to the machine manufacturer's notes on axis identifiers that can be set via machine data for programming the second orientation path of the tool. Programming This type of interpolation can be used to program points (using ) or polynomials (using ) for the two curves in space.
Transformations 6.3 Orientation polynomials (PO[angle], PO[coordinate]) Note Identifiers XH YH ZH for programming a second orientation path The identifiers must be selected such that no conflict arises with the other identifiers or linear axes X Y Z axes and rotary axes such as A2 B2 C2 Euler angle or RPY angle A3 B3 C3 direction vectors A4 B4 C4 or A5 B5 C5 surface normal vectors...
Page 332
Transformations 6.3 Orientation polynomials (PO[angle], PO[coordinate]) Type 2 orientation polynomials for coordinates N… PO[XH]=(xe, x2, x3, x4, x5) Identifiers for the coordinates of the second N… PO[YH]=(ye, y2, y3, y4, y5) orientation path for tool orientation N… PO[ZH]=(ze, z2, z3, z4, z5) In both cases, with 6-axis transformations, a polynomial can also be programmed for the rotation using N…...
Transformations 6.4 Rotations of the tool orientation (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) 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...
Page 334
Transformations 6.4 Rotations of the tool orientation (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) Syntax Only if interpolation type ORIROTA is active can the angle of rotation or rotation vector be programmed in all four modes as follows: 1. Directly as rotary axis positions A, B, C 2.
Page 335
Transformations 6.4 Rotations of the tool orientation (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) Example: Rotations of the orientations Program code Comment N10 TRAORI ; Activate orientation transformation N20 G1 X0 Y0 Z0 F5000 ; Tool orientation N30 A3=0 B3=0 C3=1 THETA=0 ;...
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-circle interpolation.
Transformations 6.5 Orientations relative to the path Meaning Various settings can be made for the interpolation of angles via machine data: LEAD TILT ● The tool-orientation reference programmed using is retained for the entire LEAD TILT block. ● Lead angle : rotation about the direction vertical to the tangent and normal vector LEAD : rotation of the orientation about the normal vector.
Page 338
Transformations 6.5 Orientations relative to the path Activating the three angles that can be rotated: N... LEAD= Angle for the programmed orientation relative to the surface normal vector N... TILT= Angle for the programmed orientation in the plane, vertical to the path tangent relative to the surface normal vector N...
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 340
Transformations 6.5 Orientations relative to the path Orientation direction of the tool for 3-axis to 5-axis transformation The orientation direction of the tool can be programmed via Euler angles, RPY angles or direction vectors as with 3-axis to 5-axis transformations. Orientation changes of the tool in space can also be achieved by programming the large-circle interpolation ORIVECT, linear interpolation of the orientation axes ORIAXES, all interpolations on the peripheral surface of a taper ORICONxx, and interpolation in addition to the curve in space with two contact points...
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.
Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) Compression of the orientation (COMPON, COMPCURV, COMPCAD) Function NC programs, in which orientation transformation ( ) is active and tool orientations are TRAORI programmed (no matter what type), can be compressed if kept within specified limits. Programming Tool orientation If orientation transformation (...
Page 343
Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) Programming tool orientation using rotary axis positions Tool orientation can be also specified using rotary axis positions, e.g. with the following structure: X=< > Y=< > Z=< > A=< > B=< >...
Transformations 6.7 Smoothing the orientation characteristic (ORISON, ORISOF) 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 345
Transformations 6.7 Smoothing the orientation characteristic (ORISON, ORISOF) Syntax ORISON ORISOF Meaning Smoothing of the orientation characteristic ON ORISON Effective: Modal Smoothing of the orientation characteristic OFF ORISOF Effective: Modal Setting data The orientation characteristic is smoothed conforming to: ● A predefined maximum tolerance (maximum angular deviation of the tool orientation in degrees) ●...
Page 346
Transformations 6.7 Smoothing the orientation characteristic (ORISON, ORISOF) Program code Comment X10 A3=–1 B3=0 C3=1 X10 A3=1 B3=0 C3=1 X10 A3=–1 B3=0 C3=1 ORISOF ; Deactivation of orientation smoothing. The orientation is pivoted through 90 degrees on the XZ plane from -45 to +45 degrees. Due to the smoothing of the orientation characteristic the orientation is no longer able to reach the maximum angle values of -45 or +45 degrees.
Transformations 6.8 Kinematic transformation Kinematic transformation 6.8.1 Milling on turned parts (TRANSMIT): Function The TRANSMIT command activates the transformation to the face side machining at lathes. Geometry axis Geometry axis Geometry axis Machine axis Machine axis Machine axis References For detailed information about the TRANSMIT function, please refer to: Function Manual, Extended Functions;...
Page 348
Transformations 6.8 Kinematic transformation Meaning Activate TRANSMIT with the first TRANSMIT data set TRANSMIT Activate TRANSMIT with the nth TRANSMIT data set TRANSMIT(n) Deactivate transformation TRAFOOF Note An active transformation is deactivated if another transformation is active in the TRANSMIT channel, e.g.
Transformations 6.8 Kinematic transformation 6.8.2 Cylinder surface transformation (TRACYL) Function The TRACYL command activates the transformation to machine grooves on cylindrical bodies. The path of the grooves is programmed with reference to the unwrapped, level surface of the cylinder. TRACYL transformation types There are three forms of cylinder surface transformation: ●...
Page 350
Transformations 6.8 Kinematic transformation Syntax TRACYL(d) TRACYL(d, n) TRACYL(d, n, k) TRAFOOF Meaning Activate TRACYL with the first TRACYL data set and working TRACYL(d) diameter d Activate TRACYL with the nth TRACYL data set and working TRACYL (d, n) diameter d Reference or working diameter The value must be greater than 1.
Page 351
Transformations 6.8 Kinematic transformation Example Tool definition Program code Comment ; Tool parameters $TC_DP1[1,1]=120 ; Tool type: Milling tool $TC_DP2[1,1]=0 ; Cutting edge position: Only for turning tools Program code Comment ; Geometry: Length compensation ; Length compensation vector: Allocation to $TC_DP3[1,1]=8.
Page 353
Transformations 6.8 Kinematic transformation Description Cylinder surface transformation without groove wall correction The controller transforms the programmed traversing movements of the cylinder coordinate system to the traversing movements of the machine axes: ● Rotary axis (Y / CM) ● Infeed axis vertical to the axis of rotation (XM) ●...
Page 354
Transformations 6.8 Kinematic transformation Cylinder surface transformation with groove wall correction The controller transforms the programmed traversing movements of the cylinder coordinate system to the traversing movements of the machine axes: ● Rotary axis (Y / CM) ● Infeed axis vertical to the axis of rotation (XM) ●...
Page 355
Transformations 6.8 Kinematic transformation Groove edges For a cylinder surface transformation without groove wall correction, the edges of the groove longitudinal to the rotary axis are only parallel if the groove width corresponds to the tool diameter. The groove edges of grooves that run parallel to the circumference (transverse grooves) are not parallel at the beginning and end.
Page 356
Transformations 6.8 Kinematic transformation A part program for milling a groove generally comprises the following steps: 1. Selecting a tool 2. Select TRACYL 3. Select suitable coordinate offset (frame) 4. Positioning 5. Program OFFN 6. Select TRC 7. Approach block (position TRC and approach groove side) 8.
Transformations 6.8 Kinematic transformation 6.8.3 Inclined axis (TRAANG) Function The oblique angle transformation or "inclined axis" (TRAANG) is used to simplify programming grinding machines with a linear axis that is not arranged at right angles to the turning center. Geometry axis Geometry axis Machine axis Machine axis...
Page 358
Transformations 6.8 Kinematic transformation Element Description Angle of the inclined axis (optional) α Note Without specifying the angle, the value parameterized in the machine data: $MC_TRAANG_ANGLE_<n>, with n = data set number is valid Range of values: -90° < < + 90° α...
Page 359
Transformations 6.8 Kinematic transformation Further information Applications Longitudinal grinding Face grinding Contour grinding Oblique plunge-cutting References For a detailed description of the function, refer to: Function Manual, Extended Functions; Chapter "M1 Kinematic Transformation" > "Oblique angle transformation TRAANG" Job Planning Programming Manual, 03/2013, 6FC5398-2BP40-3BA1...
Transformations 6.8 Kinematic transformation 6.8.4 Inclined axis programming (G5, G7) Function The G functions G7 and G5 are used to simplify the programming of oblique plunge-cutting at grinding machines with "inclined axis" (TRAANG), so that when plunge cutting, only the inclined axis is traversed.
Page 361
Transformations 6.8 Kinematic transformation Example ① Parallel to the Z axis, at a distance from the actual position of the X axis ② Parallel to the inclined axis through the programmed end position ③ Starting position ④ Plunge-cutting: Starting position, ⑤...
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 363
Transformations 6.9 Cartesian PTP travel Meaning Command Meaning Point to Point (point to point motion) Effective: Modal Continuous Path (Cartesian path motion) Effective: Modal Position of the joints. The value depends on the transformation. STAT= Effective: Modal A STAT value is only effective with vector interpolation. Axis angle Range of values: ±360 degrees Effective: Non-modal...
Page 364
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 Comment TRAORI ; Transformation CA kinematics on ; Activate PTP traversing N10 A3=0 B3=0 C3=1 ; Rotary axis positions C = 0 A = 0 N20 A3=1 B3=0 C3=1 ;...
Page 365
Transformations 6.9 Cartesian PTP travel The axes traverse by the shortest path: ● when no is programmed for a position, ● with axes that have a traversing range > ±360 degrees. Example: The target position shown in the diagram can be approached in the negative or positive direction.
Transformations 6.9 Cartesian PTP travel REPOS If the function "Cartesian PTP travel" was set during the interruption block, can also be used for repositioning. Overlaid movements DRF offset or external zero offset are only possible to a limited extent in Cartesian PTP travel.
Page 367
Transformations 6.9 Cartesian PTP travel Meaning Activates the first declared TRANSMIT function TRANSMIT (see Section "Milling on turned parts: TRANSMIT") Point to Point G0 (point-to-point motion automatic at each G0 block and then PTPG0 set CP again) Because STAT and TU are modal, the most recently programmed value always acts.
Page 368
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 Comment N001 G0 X90 Z0 F10000 T1 D1 G90 Initial setting N002 SPOS=0 N003 TRANSMIT TRANSMIT transformation N010 PTPG0 For each G0 block, automatically...
Page 369
Transformations 6.9 Cartesian PTP travel The selection of is performed in the parts program or by the deselection of PTPG0 in the machine data $MC_GCODE_RESET_VALUES[48] CAUTION Restrictions With regard to tool motions and collision, a number of restrictions and certain function exclusions apply, such as: no tool radius compensation (TRC) may be active with With...
Transformations 6.10 Constraints when selecting a transformation 6.10 Constraints when selecting a transformation Function Transformations can be selected via a parts program or MDA. Please note: ● No intermediate movement block is inserted (chamfer/radii). ● Spline block sequences must be excluded; if not, a message is displayed. ●...
Transformations 6.11 Deselecting a transformation (TRAFOOF) 6.11 Deselecting a transformation (TRAFOOF) Function command deactivates all active transformations and frames. TRAFOOF 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 372
Transformations 6.12 Chained transformations (TRACON, TRAFOOF) Machine manufacturer Take note of information provided by the machine manufacturer on any transformations predefined by the machine data. Transformations and chained transformations are options. The current catalog always provides information about the availability of specific transformations in the chain in specific controls.
Page 373
Transformations 6.12 Chained transformations (TRACON, TRAFOOF) Requirements The second transformation must be "Inclined axis" ( ). The first transformation can be: TRAANG ● Orientation transformations ( ), including universal milling head TRAORI ● 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.
Kinematic chains Deletion of components (DELOBJ) Function The following components can be deleted with the DELOBJ function: ● Elements from kinematic chains ● Protection areas and protection area elements of the geometric machine modeling ● Collision pairs ● Transformation data To do this, all component system variables are set to their default values.
Page 376
Kinematic chains 7.1 Deletion of components (DELOBJ) Meaning Deletion of elements from kinematic chains, protection areas and protection area DELOBJ elements of the geometric machine modeling, collision pairs and transformation data Function return value <RetVal> Data type: Range of 0, -1, -2, ... -7 values: Value: No error occurred.
Kinematic chains 7.2 Index determination by means of names (NAMETOINT) "TRAFO_DATA" Deletes all system variables: $NT_... "TRAFO_OBJS" Deletes all kinematic transformations not currently active. The parameters <Index1> and <Index2> are not evaluated. Start index of the components to be deleted (optional) <Index1>...
Page 378
Kinematic chains 7.2 Index determination by means of names (NAMETOINT) Syntax <RetVal>=NAMETOINT(<SysVar>,<Name>[,<NoAlarm>]) Meaning Determination of the system variable index NAMETOINT Function return value <RetVal> Data type: Range of -1 ≤ x ≤ (max. number of configured components -1) values: Value: The sought name has not been found or an error has occurred.
Collision avoidance with kinematic chains Note Protection areas The protection areas specified in the following chapters refer to the "Geometric machine modeling" function References: Function Manual, Special Functions, Chapter "Geometric machine modeling" Check for collision pair (COLLPAIR) Function In collision avoidance with kinematic chains, the COLLPAIR function can be used to determine whether two protection zones form a collision pair, i.e.
Collision avoidance with kinematic chains 8.2 Requesting a recalculation of the collision model (PROTA) Name of the first protection zone <Name_1> Data type: STRING Range of Parameterized protection zone names values: Name of the second protection zone <Name_2> Data type: STRING Range of Parameterized protection zone names...
Page 381
Collision avoidance with kinematic chains 8.2 Requesting a recalculation of the collision model (PROTA) Syntax PROTA PROTA(<Par>) Meaning Request for a recalculation of the collision model PROTA Preprocessing stop: Parameter <Par> Data type: STRING Range of "R" values: With the recalculation of the collision model, all protection zones are reset to their respective initialization status.
Collision avoidance with kinematic chains 8.3 Setting the protection zone status (PROTS) Setting the protection zone status (PROTS) Function The status of protection zones can be set for collision avoidance with kinematic chains with the PROTS procedure. Syntax PROTS(<Status>) PROTS(<Status>,<Name_1>) PROTS(<Status>,<Name_1>,...,<Name_n>) Meaning Setting the protection zone status...
Collision avoidance with kinematic chains 8.4 Determining the clearance of two protection zones (PROTD) Determining the clearance of two protection zones (PROTD) Function The clearance of two protection zones can be calculated for collision avoidance with kinematic chains with the PROTD function. Function properties: ●...
Page 384
Collision avoidance with kinematic chains 8.4 Determining the clearance of two protection zones (PROTD) Meaning Calculates the clearance of the two specified protection zones. PROTD Preprocessing stop: Alone in the block: Function return value: Absolute clearance value of the two protection zones or 0.0 <RetVal>...
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 386
Reserved Also applies with milling tools for 3D face milling For slotting saw tool type Reserved (is not used by SINUMERIK 840D sl) Remarks 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.
Page 387
Tool offsets 9.1 Offset memory Tool parameters $TC-DP1 to $TC-DP23 with contour tools Note The tool parameters not listed in the table, such as $TC_DP7, are not evaluated, i.e. their content is meaningless. Tool parameter number Meaning Cutting Dn Remark (DP) $TC_DP1 Tool type...
Tool offsets 9.2 Additive offsets Additive offsets 9.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.
Tool offsets 9.2 Additive offsets Example The same cutting edge is used for two bearing seats: Program code Comment 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...
Tool offsets 9.2 Additive offsets System variables System variable Significance $TC_SCPxy[<t>,<d>] Wear values that are assigned to the particular geometry parameters via xy, whereby x corresponds to the number of the wear value and y establishes the reference to the geometry parameter. $TC_ECPxy[<t>,<d>] Setting-up values that are assigned to the particular geometry parameter via xy, whereby x corresponds to the number of the...
Tool offsets 9.3 Special handling of tool offsets Meaning DELDL Command to delete additive offsets <t> T number of the tool <d> D number of the tool cutting edge DELDL[<t>,<d>] All additive offsets of the cutting edges of the tool are deleted.
Page 392
Tool offsets 9.3 Special handling of tool offsets Setting data Setting Data Significance SD42900 $SC_MIRROR_TOOL_LENGTH Mirroring of tool-length components and components of the tool base dimension. SD42910 $SC_MIRROR_TOOL_WEAR Mirroring of wear values of the tool-length components. SD42920 $SC_WEAR_SIGN_CUTPOS Evaluating the sign of the wear components as a function of the tool nose position.
Tool offsets 9.3 Special handling of tool offsets Note When orientable toolholders are used, it is frequently practical to define all tools for a non- mirrored basic system, even those which are only used for mirrored machining. When machining with mirrored axes, the toolholder is then rotated such that the actual position of the tool is described correctly.
Tool offsets 9.3 Special handling of tool offsets SD42910 $SC_MIRROR_TOOL_WEAR Setting data not equal to zero: The wear values of the tool length components - whose associated axes are mirrored - are also mirrored by inverting the sign. 9.3.2 Wear sign evaluation Function When setting data SD42920 $SC_WEAR_SIGN_CUTPOS and SD42930 $SC_WEAR_SIGN are set not equal to zero, then you can invert the sign evaluation of the wear components.
Tool offsets 9.3 Special handling of tool offsets SD42930 $SC_WEAR_SIGN Setting data not equal to zero: Inverts the sign of all wear dimensions. This affects both the tool length and other variables such as tool radius, rounding radius, etc. If a positive wear dimension is entered, the tool becomes "shorter" and "thinner", refer to Chapter "tool offset, special handling", activating changed setting data".
Page 396
Tool offsets 9.3 Special handling of tool offsets TOWTCS Offsets of tool length at toolholder reference point (orientable toolholder) TOWKCS Offsets of tool length at tool head (kinematic transformation) Further Information Distinguishing features The most important distinguishing features are shown in the following table: G code Wear value Active orientable toolholder...
Page 397
Tool offsets 9.3 Special handling of tool offsets Inclusion of wear values in calculation The setting data SD42935 $SC_WEAR_TRANSFORM defines which of the three wear components: ● Wear ● Total offsets fine ● Total offsets coarse should be subject to a rotation using adapter transformation or a tool holder that can be orientated if one of the following G codes is active: ●...
Tool offsets 9.3 Special handling of tool offsets 9.3.4 Tool length and plane change Function When setting data SD42940 $SC_TOOL_LENGTH_CONST is set not equal to zero, then you can assign the tool length components – such as lengths, wear and basic dimension – to the geometry axes for turning and grinding tools when changing the plane.
Tool offsets 9.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 400
Tool offsets 9.4 Online tool offset (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) Syntax Activate/deactivate online tool offset in the destination channel: FTOCON FTOCOF Write online tool offset: ● Continuous, non-modal: FCTDEF(<function>,<LLimit>,<ULimit>,<a0>,<a1>,<a2>,<a3>) PUTFTOCF(<function>,<reference value>,<tool parameter>,<channel>,<spindle>) ● Discrete: PUTFTOC(<offset value>,<tool parameter>,<channel>,<spindle>) Meaning Activate online tool offset FTOCON must be written in the channel in which the online tool offset is to take FTOCON...
Page 401
Tool offsets 9.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 to <reference value>...
Page 402
Tool offsets 9.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 403
Tool offsets 9.4 Online tool offset (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) Dressing program in channel 2: Program code Comment … 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.
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Activate 3D tool offsets (CUT3DC..., CUT3DF...) 9.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 405
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Meaning CUT3DC Activation of 3D radius offset for circumferential milling CUT3DFS D tool offset for face milling with constant orientation. The tool orientation is determined by and is not influenced by frames. CUT3DFF D tool offset for face milling with constant orientation.
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 9.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 407
Tool offsets 9.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 - which are normally performed in CAM.
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 9.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.
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Tool data Tool parameters Tool dimensions Geometry Wear $TC_DP6 $TC_DP15 $TC_DP7 $TC_DP16 $TC_DP11 $TC_DP20 Tool length offset The tool tip is the reference point for length offset (intersection longitudinal axis/surface). 3D tool offset, tool change A new tool with modified dimensions (R, r, a) or a different shaft may only be specified with the programming of (transition...
Page 410
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) This borderline case is monitored by the controller that detects abrupt changes in the machining point on the basis of angular approach motions between the tool and normal surface vectors. The controller inserts linear blocks at these positions so that the motion can be executed.
Page 411
Tool offsets 9.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.
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 9.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.
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Up to now, with tool radius compensation on the outside of the contour, circles were generally inserted to circumnavigate the outside corners. These blocks can be very short with almost tangential transitions, resulting in undesired drops in velocity. In these cases, analog to the 2 ½...
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 9.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 415
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Standard tools with corner rounding Corner rounding with a standard tool is defined by the tool parameter . Tool $TC_DP7 parameter describes the deviation of the corner rounding of the real tool compared $TC_DP16 with the standard tool.
Page 416
Tool offsets 9.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 417
Tool offsets 9.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 3D radius compensation with CUT3DCC, contour on the machining surface is active with a torus milling tool, the programmed path refers to a fictitious CUT3DCC cylindrical milling tool having the same diameter. The resulting path reference point is shown in the following diagram for a torus milling tool.
Tool offsets 9.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 419
Tool offsets 9.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Programming tool orientation: Command Meaning Orientation and path movement in parallel ORIC Orientation and path movement consecutively ORID No orientation smoothing OSOF Orientation constantly Orientation smoothing only at beginning of block Orientation smoothing at beginning and end of block OSSE Velocity of the orientation change with orientation smoothing activated in...
Page 420
Tool offsets 9.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Examples Example 1: ORIC is active and there are two or more blocks with changes in orientation (e.g. ORIC A2=... ) programmed between traversing blocks then the inserted circle B2=...
Page 421
Tool offsets 9.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Example 2: ORID is active, then all blocks between the two traversing blocks are executed at the end of ORID the first traversing block. The circle block with constant orientation is executed immediately before the second traversing block.
Page 422
Tool offsets 9.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Example 3: Changing the orientation at an inner corner Program code ORIC N10 X …Y… Z… G1 F500 N12 X …Y… Z… A2=… B2=… C2=… N15 X …Y… Z… A2=… B2=… C2=… Further Information Behavior at outer corners A circle block with the radius of the cutter is always inserted at an outside corner.
Page 423
Tool offsets 9.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) If an orientation change is required at outside corners, this can be performed either at the same time as interpolation or separately together with the path movement. When is programmed, the inserted blocks are executed first without path motion.
Tool offsets 9.7 Free assignment of D numbers, cutting edge numbers Free assignment of D numbers, cutting edge numbers 9.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.
Tool offsets 9.7 Free assignment of D numbers, cutting edge numbers Meaning state =TRUE: The D numbers are assigned uniquely to the checked areas. = FALSE: There was a D number collision or the parameters are invalid. Tno1, Tno2 and Dno return the parameters that caused the collision.
Tool offsets 9.7 Free assignment of D numbers, cutting edge numbers Example for renaming a D number Programming Comment $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.
Tool offsets 9.8 Toolholder kinematics 9.7.5 Free assignment of D numbers: Invalidate D numbers (DZERO) Function command is used for support during retooling. Compensation data sets tagged DZERO with this command are no longer verified by the command. These data sets can be CHKDNO accessed again by setting the D number once more with SETDNO...
Page 428
Tool offsets 9.8 Toolholder kinematics Function The toolholder kinematics with a maximum of two rotary axes v or v are defined using the 17 system variables $TC_CARR1[m] to $TC_CARR17[m]. The description of the toolholder consists of: ● The vectoral distance from the first rotary axis of the toolholder , the vectoral distance from the first rotary axis to the second rotary axis , the vectoral distance from the...
Page 429
Tool offsets 9.8 Toolholder kinematics Extensions of the system variables for orientable toolholders Designation 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 $TC_CARR22[m]...
Page 430
Tool offsets 9.8 Toolholder 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 431
Tool offsets 9.8 Toolholder kinematics Example The toolholder used in the following example can be fully described by a rotation around the Y axis. Program code Comment N10 $TC_CARR8[1]=1 ; Definition of the Y component of the first rotary axis of toolholder 1.
Page 432
Tool offsets 9.8 Toolholder kinematics Further information Resolved kinematics For machines with resolved kinematics (both the tool as well as the workpiece can be rotated), the system variables have been expanded by the entries up to $TC_CARR18[m] and are described as follows: $TC_CARR23[m] The rotatable tool table consisting of: ●...
Tool offsets 9.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.
Page 434
Tool offsets 9.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) Orientable toolholder from active frame with a tool pointing in the Z TCOFRZ direction Orientable toolholder from active frame with a tool pointing in the Y TCOFRY direction Orientable toolholder from active frame with a tool pointing in the X...
Page 435
Tool offsets 9.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) When the tool length compensation is calculated, the angle of rotation of the toolholder is calculated in an intermediate step. With toolholders with two rotary axes, there are generally two sets of rotation angles, which can be used to adapt the tool orientation to the active frame;...
Tool offsets 9.10 Online tool length compensation (TOFFON, TOFFOF) 9.10 Online tool length compensation (TOFFON, TOFFOF) Function Use the system variable $AA_TOFF[<n> ] to overlay the effective tool lengths in accordance with the three tool directions three-dimensionally in real time. The three geometry axis identifiers are used as index <n>.
Page 438
Tool offsets 9.10 Online tool length compensation (TOFFON, TOFFOF) Further information Block preparation During block preparation in preprocessing, the current tool length offset active in the main run is also taken into consideration. To allow extensive use to be made of the maximum permissible axis velocity, it is necessary to stop block preparation with a STOPRE preprocessing stop while a tool offset is established.
Tool offsets 9.11 Cutting data modification for tools that can be rotated (CUTMOD) 9.11 Cutting data modification for tools that can be rotated (CUTMOD) Function Using the function "cutting data modification for rotatable tools", the changed geometrical relationships, that are obtained relative to the workpiece being machined when rotating tools (predominantly turning tools, but also drilling and milling tools) can be taken into account with the tool compensation.
Page 440
Tool offsets 9.11 Cutting data modification for tools that can be rotated (CUTMOD) Meaning CUTMOD Command to switch-in the function "cutting data modification for tools that can be rotated" <value> The following values can be assigned to the command: CUTMOD The function is deactivated.
Page 441
Tool offsets 9.11 Cutting data modification for tools that can be rotated (CUTMOD) Example The following example refers to a tool with tool nose position 3 and a toolholder that can be orientated, which can rotate the tool around the B axis. The numerical values in the comments specify the end of block positions in the machine coordinates (MCS) in the sequence X, Y, Z.
Page 442
Tool offsets 9.11 Cutting data modification for tools that can be rotated (CUTMOD) Explanations: In block , initially the tool is selected for and non-rotated toolholders that can be N180 CUTMOD=0 orientated. As all offset vectors of the toolholder that can be orientated are 0, the position that corresponds to the tool lengths specified in $TC_DP3[1,1] $TC_DP4[1,1]...
Page 443
Tool offsets 9.11 Cutting data modification for tools that can be rotated (CUTMOD) System variables Meaning $P_CUTMOD / Reads the currently valid value that was last programmed using the $AC_CUTMOD command (number of the toolholder that should be activated for CUTMOD the cutting data modification).
Page 444
Tool offsets 9.11 Cutting data modification for tools that can be rotated (CUTMOD) Note The data is always modified with respect to the corresponding tool parameters ($TC_DP2[..., ...] etc.) if the function "cutting data modification for rotatable tools" was activated using the command and a toolholder that can be orientated, which causes a rotation, is CUTMOD...
Path traversing behavior 10.1 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 446
Path traversing behavior 10.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Syntax Defining tangential tracking: TANG(<following axis>,<leading axis 1>,<leading axis 2>,<coupling factor>,<KS>,<Opt>) Activating tangential control: TANGON(<following axis>,<angle>,<Dist>,<angular tolerance>) Deactivating tangential control: TANGOF(<following axis>) Activating the "Insert intermediate block at contour corners" function: TLIFT(<following axis>) operation is specified after the axis assignment with TLIFT...
Page 447
Path traversing behavior 10.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Meaning Preparatory operation for the definition of tangential tracking: TANG Activate tangential control for the specified following axis TANGON Deactivate tangential control for the specified following axis TANGOF Activate the "Insert intermediate block at contour corners" TLIFT function Delete definition of tangential tracking...
Page 448
Path traversing behavior 10.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Examples Example 1: Defining and activating tangential tracking Program code Comment N10 TANG(C,X,Y,1,"B","P") ; Definition of a tangential tracking: Rotary axis C should follow geometry axes X and Y. N20 TANGON(C,90) ;...
Page 449
Path traversing behavior 10.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Program code Comment N70 GEOAX(2, Y2) ; Y2 is the new geometry axis 2 N80 TANG(A,X,Y) ; 2nd definition of tangential tracking. N90 TANGON(A,90) ; Activate tracking with Y2. Example 4: Tangential tracking with automatic optimization Y1 is geometry axis 2.
Page 450
Path traversing behavior 10.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Limit angle using the working area limitation For path movements, which oscillate back and forth, the tangent jumps through 180° at the turning point on the path and the orientation of the following axis changes accordingly. This behavior is generally inappropriate: The return movement should be traversed at the same negative offset angle as the approach movement: To do this, limit the working area of the following axis (...
Page 451
Path traversing behavior 10.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Optimization option If the automatic optimization is selected ( ) and if the parameter smoothing <Opt> = "P" distance ( ) and angular tolerance ( ) are specified for the following <Dist>...
Path traversing behavior 10.2 Feedrate characteristic (FNORM, FLIN, FCUB, FPO) 10.2 Feedrate characteristic (FNORM, FLIN, FCUB, FPO) Function To permit flexible definition of the feed characteristic, the feed programming according to DIN 66025 has been extended by linear and cubic characteristics. The cubic characteristics can be programmed either directly or as interpolating splines.
Page 453
Path traversing behavior 10.2 Feedrate characteristic (FNORM, FLIN, FCUB, FPO) Example: Various feed profiles This example shows you the programming and graphic representation of various feed profiles. Program code Comment N1 F1000 FNORM G1 X8 G91 G64 ; Constant feedrate profile, incremental dimension data N2 F2000 X7 ;...
Page 454
Path traversing behavior 10.2 Feedrate characteristic (FNORM, FLIN, FCUB, FPO) FNORM The feed address F defines the path feedrate as a constant value according to DIN 66025. Please refer to Programming Manual "Fundamentals" for more detailed information on this subject. FLIN The feedrate characteristic is approached linearly from the current feedrate value to the programmed F value until the end of the block.
Page 455
Path traversing behavior 10.2 Feedrate characteristic (FNORM, FLIN, FCUB, FPO) FCUB The feedrate is approached according to a cubic characteristic from the current feedrate value to the programmed F value until the end of the block. The controller uses splines to connect all the feedrate values programmed non-modally that have an active FCUB.
Page 456
Path traversing behavior 10.2 Feedrate characteristic (FNORM, FLIN, FCUB, FPO) Supplementary conditions The functions for programming the path traversing characteristics apply regardless of the programmed feedrate characteristic. The programmed feedrate characteristic is always absolute regardless of Feedrate characteristic FLIN and FCUB are active with is not active with FLIN FCUB...
Path traversing behavior 10.3 Acceleration behavior 10.3 Acceleration behavior 10.3.1 Acceleration mode (BRISK, BRISKA, SOFT, SOFTA, DRIVE, DRIVEA) Function The following part program commands are available for programming the current acceleration mode: ● BRISK BRISKA The single axes or the path axes traverse with maximum acceleration until the programmed feedrate is reached (acceleration without jerk limitation).
Page 458
Path traversing behavior 10.3 Acceleration behavior Figure 10-2 Path velocity curve with DRIVE Syntax BRISK BRISKA(<axis1>,<axis2>,…) SOFT SOFTA(<axis1>,<axis2>,…) DRIVE DRIVEA(<axis1>,<axis2>,…) Meaning Command for activating the "acceleration without jerk BRISK limitation" for the path axes. Command for activating the "acceleration without jerk BRISKA limitation"...
Path traversing behavior 10.3 Acceleration behavior Supplementary conditions Changing acceleration mode during machining If the acceleration mode is changed in a part program during machining ( ↔ ), then BRISK SOFT there is a block change with exact stop at the end of the block during the transition even with continuous-path mode.
Path traversing behavior 10.3 Acceleration behavior The dynamics limits of the following axes/spindles can be manipulated using the VELOLIMA, ACCLIMA, and JERKLIMA functions from the part program or from synchronized actions, even if the axis coupling is already active. Note The JERKLIMA function is not available for all types of coupling.
Path traversing behavior 10.3 Acceleration behavior Example 2: Electronic gear Axis 4 is coupled to axis X via an "electronic gear" coupling. The acceleration capacity of the following axis is limited to 70% of the maximum acceleration. The maximum permissible velocity is limited to 50% of the maximum velocity.
Page 462
Path traversing behavior 10.3 Acceleration behavior Syntax Activate dynamic values: DYNNORM DYNPOS DYNROUGH DYNSEMIFIN DYNFINISH Note The dynamic values are already active in the block in which the associated G command is programmed. Machining is not stopped. Read or write a specific field element: R<m>=$MA...[n,X] $MA...[n,X]=<value>...
Path traversing behavior 10.5 Programmable contour accuracy (CPRECON, CPRECOF) Example Program code N10 FFWON N20 G1 X… Y… F900 SOFT 10.5 Programmable contour accuracy (CPRECON, CPRECOF) Function The "Programmable contour accuracy" function reduces the path error on curved contours through automatic adaptation of the velocity. The contour accuracy to be maintained is specified depending on the configuration of the machine (MD20470 $MC_MC_CPREC_WITH_FFW;...
Page 465
Path traversing behavior 10.5 Programmable contour accuracy (CPRECON, CPRECOF) Together CPRECON and CPRECOF form the G function group 39 (programmable contour accuracy). Note The user can specify a minimum velocity for the path feedrate via the setting data $SC_MINFEED (minimum path feedrate with CPRECON). The feedrate is not limited below this value, unless a lower F value has been programmed or the dynamic limits of the axes require a lower path velocity.
Path traversing behavior 10.6 Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) 10.6 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 467
Path traversing behavior 10.6 Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) Preprocessing stop Programming the command in a block will stop block preprocessing and buffering. STOPRE The following block is not executed until all preprocessed and saved blocks have been executed in full.
Page 468
Path traversing behavior 10.6 Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) Meaning identifies the start of a machining step to be buffered in the STOPFIFO STOPFIFO preprocessing memory. stops processing and fills the STOPFIFO preprocessing memory until: is detected ...
Path traversing behavior 10.7 Program sections that can be conditionally interrupted (DELAYFSTON, DELAYFSTOF) 10.7 Program sections that can be conditionally interrupted (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 470
Path traversing behavior 10.7 Program sections that can be conditionally interrupted (DELAYFSTON, DELAYFSTOF) Examples Example 1: Nesting stop delay sections in two program levels Program code Comment N10010 DELAYFSTON() ; Blocks with N10xxx program level 1. N10020 R1 = R1 + 1 N10030 G4 F1 ;...
Page 471
Path traversing behavior 10.7 Program sections that can be conditionally interrupted (DELAYFSTON, DELAYFSTOF) Program code N99 MY_LOOP: N100 G0 Z200 N200 G0 X0 Z200 N300 DELAYFSTON() N400 G33 Z5 K2 M3 S1000 N500 G33 Z0 X5 K3 N600 G0 X100 N700 DELAYFSTOF() N800 GOTOB MY_LOOP Further information...
Page 472
Path traversing behavior 10.7 Program sections that can be conditionally interrupted (DELAYFSTON, DELAYFSTOF) Event name Response Interruption parameters NEWCONF_PREP_STOP Alarm 16954 NC prog.: NEWCONF SYSTEM_SHUTDOWN Immediate System shutdown with 840Di sl Delayed Extended stop and retract EXT_ZERO_POINT Delayed External zero offset STOPRUN Alarm 16955 OPI: PI "_N_FINDST"...
Page 473
Path traversing behavior 10.7 Program sections that can be conditionally interrupted (DELAYFSTON, DELAYFSTOF) Example: Feedrate intervention If the override is reduced to 6% before a stop delay section, the override becomes active in the stop delay section. If the override is reduced from 100% to 6% in the stop delay section, the stop delay section is completed with 100% and beyond that the program continues with 6%.
Path traversing behavior 10.8 Prevent program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) System variables A stop delay section can be detected in the part program with $P_DELAYFST. If bit 0 of the system variables is set to 1, part program processing is now in a stop delay section. A stop delay section can be detected in synchronized actions with $AC_DELAYFST.
Page 475
Path traversing behavior 10.8 Prevent program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) Example Nesting of untraceable program sections in two program levels with implicit IPTRUNLOCK Implicit in subprogram 1 ends the untraceable section. IPTRUNLOCK Program code Comment N10010 IPTRLOCK() N10020 R1 = R1 + 1 N10030 G4 F1 ;...
Path traversing behavior 10.9 Repositioning to the contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMIBL, RMBBL, RMEBL, RMNBL) Rules for nesting The following features regulate the interaction between NC commands IPTRLOCK with nesting and end of subroutine: IPTRUNLOCK is activated implicitly at the end of the subroutine in which is called.
Path traversing behavior 10.9 Repositioning to the contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMIB For information on interrupting program runs, see also "Interrupt routine (ASUB) (Page 121)". Syntax REPOSA RMIBL DISPR=… REPOSA RMBBL REPOSA RMEBL REPOSA RMNBL REPOSL RMIBL DISPR=…...
Page 478
Path traversing behavior 10.9 Repositioning to the contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMIBL, RMBBL, RMEBL, RMNBL) Repositioning point Approach interruption point RMIBL Entry point at distance DISPR in mm/inch in front of interruption point RMIBL DISPR=… Approach block start point RMBBL Approach end of block...
Page 479
Path traversing behavior 10.9 Repositioning to the contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMIB Example: Approach in circle quadrant, REPOSQ, REPOSQA The tool approaches the repositioning point along a quadrant with a radius of . The DISR=… control automatically calculates the necessary intermediate point between the start and repositioning point.
Page 480
Path traversing behavior 10.9 Repositioning to the contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMIBL, RMBBL, RMEBL, RMNBL) Specifying the repositioning point (not for SERUPRO approaching with RMNBL) 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 481
Path traversing behavior 10.9 Repositioning to the contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMIB SERUPRO approach with RMNBL If an abort is forced during machining at any position, the shortest path from the abort point is approached with SERUPRO approach and RMNBL so that afterward only the distance-to- go is processed.
Page 482
Path traversing behavior 10.9 Repositioning to the contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMIBL, RMBBL, RMEBL, RMNBL) Approach from the nearest path point RMNBL When REPOSA is interpreted, the repositioning block with RMNBL is not started again in full after an interruption, but only the distance-to-go processed.
Page 483
Path traversing behavior 10.9 Repositioning to the contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMIB 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.
Path traversing behavior 10.10 Influencing the motion control In the following cases, there is an automatic switchover to linear approach REPOSL: ● You have not specified a value for DISR. ● No defined approach direction is available (program interruption in a block without travel information).
Page 485
Path traversing behavior 10.10 Influencing the motion control Effectiveness The function is effective: ● In the AUTOMATIC operating modes. ● Only on path axes. Syntax JERKLIM[<axis>]=<value> Meaning Command for jerk correction JERKLIM Machine axis whose jerk limit value is to be adapted. <axis>...
Path traversing behavior 10.10 Influencing the motion control 10.10.2 Percentage velocity correction (VELOLIM) Function The maximum possible velocity of an axis or the maximum possible gear-stage-dependent speed of a spindle set via machine data can be reduce with the command in the part VELOLIM program or synchronized action.
Page 487
Path traversing behavior 10.10 Influencing the motion control Note Behavior at the end of the part program and for a channel reset The behavior of at the end of the part program and channel reset can be set via the VELOLIM machine data: MD32320 $MA_DYN_LIMIT_RESET_MASK, bit 0 Detection of an active speed limitation in spindle operation...
Path traversing behavior 10.11 Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) 10.10.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 489
Path traversing behavior 10.11 Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) Meaning CTOL Command for programming the contour tolerance is valid for: CTOL All compressor functions All rounding types except G641 and G644 The value for the contour tolerance is specified as a length. <value>...
Page 490
Path traversing behavior 10.11 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 491
Path traversing behavior 10.11 Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) $AA_ATOL[<axis>] Axis tolerance effective when the current main run record was preprocessed. If no contour tolerance is active, $AA_ATOL[<geometry will return the contour tolerance divided by the axis>] root of the number of geometry axes. If an orientation tolerance and an orientation transformation are active $AA_ATOL[<orientation...
Path traversing behavior 10.12 Tolerance for G0 motion (STOLF) 10.12 Tolerance for G0 motion (STOLF) G0 tolerance factor G0 motion (rapid traverse, infeed motion), contrary to workpiece machining, can be implemented with a higher tolerance. This has the advantage that the execution times for G0 motion are shortened.
Page 493
Path traversing behavior 10.12 Tolerance for G0 motion (STOLF) System variables The G0 tolerance factor, effective in the part program or in the actual IPO block, can be read using system variables. ● In synchronized actions or with preprocessing stop in the part program via system variable: $AC_STOLF Active G0 tolerance factor...
Path traversing behavior 10.13 Block change behavior with active coupling (CPBC) 10.13 Block change behavior with active coupling (CPBC) Function command specifies the block change criterion that must be satisfied so that a block CPBC change can be executed in the part program with active coupling. Syntax CPBC[<following axis>] = <criterion>...
Axis couplings 11.1 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 ●...
Axis couplings 11.1 Coupled motion (TRAILON, TRAILOF) Meaning TRAILON Command for activating and defining a coupled axis grouping Effective: 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 497
Axis couplings 11.1 Coupled motion (TRAILON, TRAILOF) Example The workpiece is to be machined on two sides with the axis configuration shown in the diagram. To do this, you create two combinations of coupled axes. Program code Comment … N100 TRAILON(V,Y) ;...
Page 498
Axis couplings 11.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 499
Axis couplings 11.1 Coupled motion (TRAILON, TRAILOF) Coupling status The coupling status of an axis can be checked in the part program with the system variable: $AA_COUP_ACT[<axis>] Value Meaning No coupling active Coupled motion active Display of distance-to-go of the coupled-motion axis for modulo rotary axes If the leading and coupled-motion axes are modulo rotary axes, traversing movements in the leading axis from n * 360°...
Axis couplings 11.2 Curve tables (CTAB) 11.2 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.
Axis couplings 11.2 Curve tables (CTAB) 11.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 at the end. CTABEND Within this part program section, unique following axis positions are assigned to individual positions of the leading axis using motion operations;...
Page 502
Axis couplings 11.2 Curve tables (CTAB) <n> Number (ID) of curve table The number of a curve table is unique and independent of the memory location. It is not possible for there to be tables with the same number in the static and dynamic NC memory. <periodicity>...
Page 503
Axis couplings 11.2 Curve tables (CTAB) Example 2: Definition of a non-periodic curve table Program code Comment 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 504
Axis couplings 11.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 Comment N10 DEF REAL DEPPOS...
Page 505
Axis couplings 11.2 Curve tables (CTAB) Available language scope Within the definition of the curve table, you have use of the entire NC language. Note The following entries are not permitted in curve table definitions: Preprocessing stop Jumps in the leading axis movement (e.g. on changing transformations) ...
Page 506
Axis couplings 11.2 Curve tables (CTAB) Program code ASPLINE X=5 Y=10 X10 Y40 CTABEND Repeated use of curve tables The functional relationship between the leading axis and the following axis calculated using the curve table will be retained under the selected table number after the end of the part program and POWER OFF if the table has been saved to the static NC memory (SRAM).
Axis couplings 11.2 Curve tables (CTAB) 11.2.2 Check for presence of curve table (CTABEXISTS) Function command can be used to check if a specific curve table number is present in CTABEXISTS the NC memory. Syntax CTABEXISTS(<n>) Meaning CTABEXISTS Checks for the presence of curve table number in the static or <n>...
Page 508
Axis couplings 11.2 Curve tables (CTAB) Meaning CTABDEL Command for deleting curve tables <n> Number (ID) of the curve table to be deleted When a curve table range is deleted, is used to CTABDEL(<n>,<m>) <n> specify the number of the first curve table in the range. <m>...
Axis couplings 11.2 Curve tables (CTAB) 11.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>)
Axis couplings 11.2 Curve tables (CTAB) <memory location> Specification of memory location (optional) In the case of locking/unlocking without a memory location being specified, the specified curve tables are locked/unlocked in the static and the dynamic NC memory. In the case of locking/unlocking with a memory location being specified, of the specified curve tables, only those located in the specified memory location are locked/unlocked.
Page 511
Axis couplings 11.2 Curve tables (CTAB) Meaning CTABID Returns the table number entered as the th curve table in the <p> specified memory. Example: returns the number of the first curve table in the CTABID(1,"SRAM") static NC memory. In this context the first curve table is the curve table with the highest table number.
Axis couplings 11.2 Curve tables (CTAB) 11.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 513
Axis couplings 11.2 Curve tables (CTAB) Define following axis minimum value: CTABTMIN In the entire definition range of the curve table In a defined interval <a> <b> Define following axis maximum value: CTABTMAX In the entire definition range of the curve table ...
Page 514
Axis couplings 11.2 Curve tables (CTAB) Program code Comment N60 DEF REAL MAXVAL N70 DEF REAL GRADIENT N100 CTABDEF(Y,X,1,0) ; Start of table definition N110 X0 Y10 ; Start position 1st table segment N120 X30 Y40 ; End position 1st table segment = start position 2nd table segment N130 X60 Y5 ;...
Page 515
Axis couplings 11.2 Curve tables (CTAB) Further information Use in synchronized actions All commands for reading curve table values can also be used in synchronized actions (see also the chapter titled "Motion-synchronous actions"). When using the , and commands, make sure that: CTABINV CTABTMIN CTABTMAX...
Page 516
Axis couplings 11.2 Curve tables (CTAB) CTAB with periodic curve tables If the specified is outside the definition range, the master value is evaluated <master value> modulo of the definition range and the corresponding following value is output: Approximate value for CTABINV command, therefore, requires an approximate value for the expected master CTABINV value.
Axis couplings 11.2 Curve tables (CTAB) 11.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>)
Axis couplings 11.3 Axial master value coupling (LEADON, LEADOF) <memory location> Specification of memory location (optional) "SRAM" Static NC memory "DRAM" Dynamic NC memory Note: If a value is not programmed for this parameter, the default memory location set with MD20905 $MC_CTAB_DEFAULT_MEMORY_TYPE is used.
Page 519
Axis couplings 11.3 Axial master value coupling (LEADON, LEADOF) The leading axis is the axis which supplies the input values for the curve table. The following axis is the axis, which takes the positions calculated by means of the curve table. Actual value and setpoint coupling The following can be used as the master value, i.e.
Page 520
Axis couplings 11.3 Axial master value coupling (LEADON, LEADOF) From the leading axis LV (stanchion shaft), transfer axes and auxiliary axes are controlled as following axes that are defined via curve tables. Following axes X feed or longitudinal axis YL closing or transverse axis ZL lifting axis U roll feed, auxiliary axis V guide head, auxiliary axis...
Page 521
Axis couplings 11.3 Axial master value coupling (LEADON, LEADOF) Program code Comment N22 IDS=13 EVERY ($A_IN[1]==1) AND ($A_IN[5]==0) AND ($AC_MARKER[7]==0) DO LEADON(W,LW,4) PRESETON(W,0) $AC_MARKER[7]=1 **** E2 0=>1 coupling OFF N30 IDS=3 EVERY ($A_IN[2]==1) DO LEADOF(X,LW) LEADOF(YL,LW) LEADOF(ZL,LW) LEADOF(U,LW) LEADOF(V,LW) LEADOF(W,LW) $AC_MARKER[0]=0 $AC_MARKER[1]=0 $AC_MARKER[3]=0 $AC_MARKER[4]=0 $AC_MARKER[5]=0 $AC_MARKER[6]=0 $AC_MARKER[7]=0 ..
Page 522
Axis couplings 11.3 Axial master value coupling (LEADON, LEADOF) Actual value and setpoint coupling Setpoint coupling provides better synchronization of the leading and following axis than actual value coupling and is therefore set by default. Setpoint coupling is only possible if the leading and following axis are interpolated by the same NCU.
Axis couplings 11.4 Electronic gear (EG) 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 Before you use these variables, the setting data $SA_LEAD_TYPE = 2 must be set.
Axis couplings 11.4 Electronic gear (EG) The following axis movement can be optionally derived from ● Setpoints of the leading axes, as well as ● Actual values of leading axes. Non-linear relationships between each leading axis and the following axis can also be realized as extension using curve tables (see "Path traversing behavior"...
Axis couplings 11.4 Electronic gear (EG) Note The coupling factors are preset to zero when the EG axis grouping is defined. Note triggers preprocessing stop. The gearbox definition with should also be used EGDEF EGDEF unaltered if, for systems, one or more leading axes affect the following axis via a curve table. Example Program code Comment...
Page 526
Axis couplings 11.4 Electronic gear (EG) Meaning Variant 1: 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 527
Axis couplings 11.4 Electronic gear (EG) Variant 3: The parameters correspond to those of variant 2 plus: Approach mode The following modes can be used: "NTGT" Approach next tooth gap time-optimized "NTGP" Approach next tooth gap path-optimized "ACN" Traverse rotary axis in negative direction absolute "ACP"...
Page 528
Axis couplings 11.4 Electronic gear (EG) Curve tables If a curve table is used for one of the leading axes: The denominator of the coupling factor for linear coupling must be set to 0. (Denominator 0 would be illegal for linear couplings.) Denominator zero tells the control that is the number of the curve table to use.
Axis couplings 11.4 Electronic gear (EG) 11.4.3 Switching-in the electronic gearbox (EGOFS, EGOFC) Function There are 3 different ways to switch-out an active EG axis group. Programming Variant 1: Syntax Meaning EGOFS(following axis) The electronic gear is deactivated. The following axis is braked to a standstill.
Axis couplings 11.4 Electronic gear (EG) 11.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 Meaning EGDEL(following axis) The coupling definition of the axis group is deleted. Additional axis groups can be defined by means of until the EGDEF...
Axis couplings 11.5 Synchronous spindle 11.5 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 532
Axis couplings 11.5 Synchronous spindle Application examples: ● Flying workpiece transfer, e.g. to machine the rear side, transformation ratio: 1:1 ① Synchronize the speed ② Transfer the workpiece ③ Machine the rear side ● Multi-edge machining (polygonal turning), speed synchronism, transformation ratio: n Syntax COUPDEF(<FS>,<LS>,<ZFS>,<NLS>,<block change>,<coupling type>) COUPON(<FS>,<LS>,<POSFS>)
Page 533
Axis couplings 11.5 Synchronous spindle Note Abbreviated notation , and statements support abbreviated notation without COUPOF COUPOFS COUPRES COUPDEL specification of the leading spindle. Meaning Define/change coupling on user-specific basis COUPDEF Activate coupling. The following spindle synchronizes to the leading COUPON spindle based on the actual speed Coupling when activating with previous programming of...
Page 534
Axis couplings 11.5 Synchronous spindle Block change behavior <block change> The block change is: "NOC" Immediately "FINE" On reaching "Synchronism fine" "COARSE" On reaching "Synchronism coarse" "IPOSTOP" On reaching IPOSTOP; in other words, after setpoint-based synchronism (default) The block change behavior is effective modally. Coupling type: Coupling between FS and LS <coupling type>...
Page 535
Axis couplings 11.5 Synchronous spindle Program code Comment N215 SPOS[2]=IC(180) Traverse with 180 degree overlay in the positive direction. N220 G4 S50 Dwell time = 50 revolutions of the master spindle N225 FA[S2]=0 Activate configured velocity (MD). N230 SPOS[2]=IC(-7200) 20 revolutions. Move with configured velocity in the negative direction.
Page 536
Axis couplings 11.5 Synchronous spindle 2. Activate coupling during previous programming of following spindle with COUPONC Program code Comment Leading spindle = master spindle = spindle 1 Following spindle = spindle 2 N05 M3 S100 M2=3 S2=200 Leading spindle rotates at 100 rpm, following spindle at 200 rpm.
Page 537
Axis couplings 11.5 Synchronous spindle Further information Configured coupling For the configured coupling, the LS and FS are defined via machine data. The configured spindles cannot be changed in the part program. The coupling can be parameterized in the part program using (on condition that no write protection is valid).
Page 538
Axis couplings 11.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 539
Axis couplings 11.5 Synchronous spindle Differential speed A speed difference results in speed control mode and active synchronous spindle coupling through signed overlay of an FS speed because of LS movement and an FS speed because of spindle programming: ● Synchronous spindle coupling with COUPONC ●...
Page 540
Axis couplings 11.5 Synchronous spindle Programmable block change behavior WAITC can be used to define block change behavior, for example after a change to coupling WAITC parameters or positioning actions, with a variety of synchronism conditions (coarse, fine, ). If no synchronism conditions are specified, the block change behavior specified in IPOSTOP definition will apply.
Axis couplings 11.6 Generic coupling (CP...) System variables ● Current coupling status of following spindle The current coupling status of a following spindle can be read bit-coded via: <value> = $AA_COUP_ACT[<FS>] <value> Meaning No coupling active Synchronous spindle coupling active Note All other values refer to axis mode ...
Page 542
Axis couplings 11.6 Generic coupling (CP...) ● Later use of additional coupling properties is possible. ● The coordinate reference system of the following axis (base coordinate system or machine coordinate system) is programmable. ● Certain coupling properties can also be programmed with synchronous actions. References: Synchronized Actions Function Manual Note Previous coupling calls for coupled motion (TRAIL*), Master value coupling (LEAD*),...
Page 543
Axis couplings 11.6 Generic coupling (CP...) Keyword Coupling characteristics / Syntax meaning CPLSETVAL Coupling reference CPLSETVAL[FAx,LAx]="<coupling reference>" "<coupling "CMDPOS" Setpoint value coupling reference>" "CMDVEL" Speed coupling "ACTPOS" Actual value coupling CPFRS Coordinate reference system CPFRS[FAx]="<coordinate reference>" "<coordinate "BCS" Basic Coordinate System reference>"...
Page 544
Axis couplings 11.6 Generic coupling (CP...) Keyword Coupling characteristics / Syntax meaning The next segment is "NRGP" approached in a path- optimized manner, in accordance with the ratio of the number of gears to the number of teeth. For rotary axes only! "ACN"...
Page 545
Axis couplings 11.6 Generic coupling (CP...) Keyword Coupling characteristics / Syntax meaning CPFMOF Behavior of the following axis CPFMOF[FAx]="<switch-off behavior>" "<switch-off "STOP" Stop of a following at complete switch-off behavior>" axis/spindle. An active overlaid motion is also braked to standstill. The coupling is then opened "CONT"...
Page 546
Axis couplings 11.6 Generic coupling (CP...) Keyword Coupling characteristics / Syntax meaning "OFC" Possible only in spindles! The following spindle continues to traverse at the speed/velocity that applied at the instant of deactivation. The coupling is switched off. When the relevant coupling module was created without an explicit definition (CPDEF),...
Page 547
Axis couplings 11.6 Generic coupling (CP...) Keyword Coupling characteristics / Syntax meaning Coupling response at part CPMPRT CPMPRT[FAx]="<start behavior>" program start under search run "<start behavior>" CPMSTART via program test Offset value of the input value CPLINTR CPLINTR[FAx,LAx]=<value> of a leading axis Scaling factor of the input value CPLINSC CPLINSC[FAx,LAx]=<value>...
Page 548
Axis couplings 11.6 Generic coupling (CP...) Note Coupling characteristics, which are not explicitly programmed (in part program of synchronous actions), become effective with their default settings. Depending on the settings of the keyword instead of the default settings CPSETTYPE ) preset coupling characteristics can become effective. CPSETTYPE="CP"...
Axis couplings 11.7 Master/slave coupling (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) 11.7 Master/slave coupling (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Function The "master/slave coupling" enables: ● The coupling of the slave axes to their master axis, when the axes involved are at standstill.
Page 550
Axis couplings 11.7 Master/slave coupling (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Separate master/slave coupling and delete the definition of the grouping MASLDEL Slave axes <slave_1>,... Note: The master/slave definitions configured in the machine data are retained. Note Coupling behavior for spindles in speed control mode For spindles in the speed control mode, the coupling behavior of MASLON MASLOF...
Page 551
Axis couplings 11.7 Master/slave coupling (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Examples Example 1: Dynamic configuration of a master/slave coupling Dynamic configuration of a master/slave coupling from the part program. The axis relevant after axis container rotation is to become the master axis. Program code Comment MASLDEF(AUX,S3)
Page 552
Axis couplings 11.7 Master/slave coupling (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) Example 3: Coupling sequence, position 3 / container CT1 To enable coupling with another spindle after container rotation, the previous coupling must be uncoupled, the configuration cleared, and a new coupling configured. Initial situation: After rotation by one slot: Job Planning...
Synchronized actions 12.1 Definition of a synchronized action A synchronized action is defined in a block of a part program. Any further commands that are not part of the synchronized action, may not be programmed within this block. A synchronized action consists of the following components: Condition part Action part Optional...
Page 554
Synchronized actions 12.1 Definition of a synchronized action Job Planning Programming Manual, 03/2013, 6FC5398-2BP40-3BA1...
Oscillation 13.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Function An oscillating axis travels back and forth between two reversal points 1 and 2 at a defined feedrate, until the oscillating motion is deactivated. Other axes can be interpolated as desired during the oscillating motion. A continuous infeed can be achieved via a path movement or with a positioning axis, however, there is no relationship between the oscillating movement and the infeed movement.
Page 556
Oscillation 13.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Meaning <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 557
Oscillation 13.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) New feed is only active after the next reversal point FA equal to 0, FA = 0: Path overlay is active FA not equal to 0, FA <> 0: Speed overlay is active For rotary axis DC (shortest path) The sparking-out stroke is a dual stroke (default).
Page 558
Oscillation 13.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Program code Comment OST1[Z]=0 OST2[Z]=–1 Stopping time at U1: Exact stop fine Stopping time at U2: Exact stop coarse FA[Z]=250 FA[X]=1 ; Feedrate for oscillating axis, feedrate for infeed axis.
Page 559
Oscillation 13.1 Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) Further information Oscillating axis The following apply to the oscillating axis: ● Every axis may be used as an oscillation axis. ● Several oscillation axes can be active at the same time (maximum: the number of the positioning axes).
Oscillation 13.2 Oscillation controlled by synchronized actions (OSCILL) Oscillation with motion-synchronous actions and stopping times Once the set stop times have expired, the internal block change is executed during oscillation (indicated by the new distances to go of the axes). The deactivation function is checked when the block changes.
Page 561
Oscillation 13.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 Section "File and Program POSP Management") End position for the infeed axis after all partial infeeds have been...
Page 562
Oscillation 13.2 Oscillation controlled by synchronized actions (OSCILL) 1. Parameters for oscillation Program code Comment DEF INT ii2 Define variable for reversal area 2 OSP1[Z]=10 OSP2[Z]=60 Define reversal points 1 and 2 OST1[Z]=0 OST2[Z]=0 Reversal point 1: Exact stop fine Reversal point 2: Exact stop fine FA[Z]=150 FA[X]=0.5 Oscillating axis Z feedrate, infeed axis X feedrate...
Page 563
Oscillation 13.2 Oscillation controlled by synchronized actions (OSCILL) 3. Start oscillation Program code Comment OSCILL[Z]=(X) POSP[X]=(5,1,1) Start the axes Oscillating axis Z is assigned axis X as infeed axis. Up to end position 5, axis X should travel in steps of 1. End of program Description 1.
Page 564
Oscillation 13.2 Oscillation controlled by synchronized actions (OSCILL) Define infeeds: POSP POSP[infeed axis] = (End pos, partial length, mode) The following are declared to the controller with the command: POSP ● Complete infeed (with reference to end position) ● The length of the partial infeed at the reversal point or in the reversal area ●...
Page 565
Oscillation 13.2 Oscillation controlled by synchronized actions (OSCILL) The following assumptions are made for all examples of synchronized actions presented here: ● Reversal point 1 < reversal point 2 ● Z = oscillating axis ● X = infeed axis Note For more details, see the "Motion-synchronous actions"...
Page 566
Oscillation 13.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 567
Oscillation 13.2 Oscillation controlled by synchronized actions (OSCILL) Next partial infeed When infeed is complete, a premature start of the next partial infeed must be inhibited. A channel-specific marker ( ) is used for this purpose. It is enabled at the $AC_MARKER[Index] end of the partial infeed (partial distance-to-go ≡...
Punching and nibbling 14.1 Activation, deactivation 14.1.1 Punching and nibbling on or off (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) Function Activate/deactivate punching and nibbling are used to activate the punching and nibble functions. terminates all SPOF punching- and nibble-specific functions. Modal commands are mutually exclusive, i.e.
Page 570
Punching and nibbling 14.1 Activation, deactivation 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 controller (I/O pair). Full punching/nibbling functionality is available on both interfaces.
Page 571
Punching and nibbling 14.1 Activation, deactivation SPIF1 Activate first punching interface. The stroke is controlled using the first pair of fast I/O. SPIF2 Activate second punching interface. The stroke is controlled using the second pair of fast I/O. Note: The first punch interface is always active after a RESET or control system power up.
Page 572
Punching and nibbling 14.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. can only be activated in one channel at a time. PONS SONS Travel-dependent acceleration (PUNCHACC) Example: PUNCHACC(2,50,10,100)
Page 573
Punching and nibbling 14.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.
Punching and nibbling 14.2 Automatic path segmentation 14.2 Automatic path segmentation Function Segmentation into path segments When punching or nibbling is activated, both SPP as well as also SPN segment the total traversing section programmed for the path axes into a number of path segments with the same length (equidistant path segmentation).
Page 575
Punching and nibbling 14.2 Automatic path segmentation Example 1 The programmed nibbling segments should be automatically split-up into path segments. Program code Comment 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...
Page 576
Punching and nibbling 14.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 Comment N100 G90 X75 Y75 F60 PON Position to starting point 1;...
Punching and nibbling 14.2 Automatic path segmentation 14.2.1 Path segmentation for path axes Length of SPP path segment 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 SPP=0...
Page 578
Punching and nibbling 14.2 Automatic path segmentation Number of SPN path segments defines the number of path segments to be generated from the total traversing distance. The length of the segments is calculated automatically. Since is non-modal, punching or nibbling must be activated beforehand with respectively.
Punching and nibbling 14.2 Automatic path segmentation 14.2.2 Path segmentation for single axes If single axes are defined as punching/nibbling axes in addition to path axes, then the automatic path segmentation function can be activated for them. Response of single axis to SPP The programmed path segment length ( ) basically refers to the path axes.
Page 580
Punching and nibbling 14.2 Automatic path segmentation 2. With/without path segmentation The response of the single axis depends on the interpolation of the path axes: ● Circular interpolation: Path segmentation ● Linear interpolation: No path segmentation Response to SPN The programmed number of path segments is applicable even if a path axis is not programmed in the same block.
Grinding 15.1 Grinding-specific tool monitoring in the part program (TMON, TMOF) Function With the command, you can activate geometry and speed monitoring for grinding tools TMON (type 400 - 499) in the NC part program. Monitoring remains active until deactivated in the part program using the command.
Page 582
Grinding 15.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...
Additional functions 16.1 Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) Function is used e.g. to generate cycles that are generally valid, if the names of the axes are AXNAME not known. 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 is used if axis functions are programmed for a spindle, e.g.
Additional functions 16.1 Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) Meaning 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.
Additional functions 16.2 Replaceable geometry axes (GEOAX) Example 2: AXSTRING When programming with AXSTRING[SPI(n)], the axis index of the axis, which is assigned to the spindle, is no longer output as spindle number, but instead the string is output. "Sn" Program code Comment AXSTRING[SPI(2)]...
Page 586
Additional functions 16.2 Replaceable geometry axes (GEOAX) Meaning GEOAX(...) Command to change over (replace) the geometry axes Note: without any parameter calls the basic configuration of the GEOAX() geometry axes. <n> This parameter is used to specify the number of the geometry axis that should be assigned to the subsequently specified channel axis.
Page 587
Additional functions 16.2 Replaceable geometry axes (GEOAX) Axes Z1 an Z2 should now be used, alternating, as geometry axis Z in the part program: Program code Comment N100 GEOAX(3,Z2) ; Channel axis Z2 acts as 3rd geometry axis (Z). N110 G1 ... N120 GEOAX(3,Z1) ;...
Page 588
Additional functions 16.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 589
Additional functions 16.2 Replaceable geometry axes (GEOAX) Frames, protection zones, working area limits All frames, protection zones and working area limits are deleted after changing over the geometry axes. Polar coordinates Replacing the geometry axes with sets analog to a level change with , the GEOAX modal polar coordinates to a value of 0.
Additional functions 16.3 Axis container (AXCTSWE, AXCTSWED, AXCTSWEC) 16.3 Axis container (AXCTSWE, AXCTSWED, AXCTSWEC) Function command is use to enable the rotation of the specified axis AXCTSWE AXCTSWED container. An already set enable for axis container rotation is cancelled via the command.
Page 591
Additional functions 16.3 Axis container (AXCTSWE, AXCTSWED, AXCTSWEC) Note Increment The increment of a axis container rotation is set via the setting data: SD41700 $SN_AXCT_SWWIDTH Further information Diagnostics The current status of a axis container can be read via the following system variables: System variable Type Description...
Additional functions 16.4 Wait for valid axis position (WAITENC) 16.4 Wait for valid axis position (WAITENC) Function Using the language command , the NC program waits until the synchronized or WAITENC restored axis positions are available for the axes configured with MD34800 $MA_WAIT_ENC_VALID = 1.
Additional functions 16.5 Programmable parameter set changeover (SCPARA) Program code Comment ENDIF ENDIF The tool can then be retracted in JOG mode by means of a retraction movement towards the tool axis. 16.5 Programmable parameter set changeover (SCPARA) Function The changeover to a specific parameter set can be requested for an axis with the SCPARA command.
Additional functions 16.6 Check scope of NC language present (STRINGIS) Meaning Command: Change parameter set SCPARA Axis identifier (channel axis) <axis> Type: AXIS Parameter set number: 1, 2, 3, ... max. parameter set number <value> Example Program code Comment N110 SCPARA[X]= 3 ;...
Page 595
Additional functions 16.6 Check scope of NC language present (STRINGIS) Syntax STRINGIS(<Name>) Meaning Function with return value STRINGIS Name of the NC programming language element to be checked <name> Return value: The return value format is yxx (decimal). Elements of the NC programming language The following elements of the NC programming language can be checked: ●...
Page 596
No specific assignment possible 1) Depending on the control, under certain circumstances, only a subset of the Siemens NC language commands are known, e.g. SINUMERIK 802D sl. For these controls, for strings that are principally Siemens NC language commands, a value of 0 is returned.
Page 597
Additional functions 16.6 Check scope of NC language present (STRINGIS) 3. String "A2" is defined as address with extension: 201 == STRINGIS("A") 201 == STRINGIS("A2") 4. String "INVCW" is defined as named G code: 202 == STRINGIS("INVCW") 5. String "$MC_GCODE_RESET_VALUES" is defined as machine data: 206 == STRINGIS("$MC_GCODE_RESET_VALUES") 6.
Additional functions 16.7 Interactively call the window from the part program (MMC) ISO mode If the "ISO mode" function is active: ● MD18800 $MN_MM_EXTERN_LANGUAGE (activation, external NC languages) ● MD10880 $MN_ MM_EXTERN_CNC_SYSTEM (control system to be adapted) STRINGIS checks the specified string initially as SINUMERIK G-Code. If the string is not a SINUMERIK G code, then it is subsequently checked as ISO G code.
Page 599
Additional functions 16.7 Interactively call the window from the part program (MMC) Syntax MMC(<command>,<acknowledgement mode>) Meaning Subprogram identifier Parameter of the STRING type <command> Contains the MMC command, e.g. in the following form: "CYCLES,PICTURE_ON,T_SK.COM,PICTURE,MGUD.DEF,PICTURE_3.AWB,T EST_1,A1" Operating area in which the configured user CYCLES dialog boxes are implemented.
Additional functions 16.8 Program runtime/part counter Asynchronous acknowledgement "A" The program execution is continued after the command is issued. The acknowledgement is stored in an acknowledgement variable (pre-defined system variable) and must be explicitly queried from the program. The parameter following the acknowledgement mode is the number of the acknowledgement variable.
Page 601
Additional functions 16.8 Program runtime/part counter System variable Meaning Activity NC-specific $AN_SETUP_TIME Time since the last control power up with default Always active values ("cold restart") in minutes. Is automatically reset to "0" every time the control powers up with default values. $AN_POWERON_TIME Time since the last normal control power up ("warm restart") in minutes.
Page 602
Additional functions 16.8 Program runtime/part counter System variable Meaning Activity $AC_PROG_NET_TIME_TRIGGER Trigger for the runtime measurement: Only AUTOMATIC 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 603
Additional functions 16.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.
Additional functions 16.8 Program runtime/part counter After the program has processed line , the net runtime of "mySubProgrammA" is located in $AC_OLD_PROG_NET_TIME. The value from $AC_OLD_PROG_NET_TIME: ● is kept beyond ● is updated each time the loop is run through. Example 2: Measuring the duration of "mySubProgrammA"...
Additional functions 16.9 Process DataShare - output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) System variable Meaning $AC_ACTUAL_PARTS Number of completed workpieces (actual workpiece total) This counter registers the total number of all workpieces produced since the start time. On condition that $AC_REQUIRED_PARTS > 0, the counter is automatically reset to "0"...
Page 606
Additional functions 16.9 Process DataShare - output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) Output to an external device/file is realized in three steps: 1. Open the external device/file The external device/file is opened for the channel for writing using the command.
Page 607
Additional functions 16.9 Process DataShare - output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) Meaning Command to open an external device/file EXTOPEN Parameter 1: Variable for returning the error value <error> By using the error value, it can be evaluated in the program as to whether the operation was successful and processing is then appropriately continued.
Page 608
Additional functions 16.9 Process DataShare - output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) Reserved drive name for use "CYC_DRIVE" in SIEMENS cycles (pre- defined) ,... Available network drives "/dev/ext/1" Note: "/dev/ext/9" It is necessary to configure in the extdev.ini file! Reserved drive names for use "/dev/cyc/1"...
Page 609
Additional functions 16.9 Process DataShare - output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) Values: Synchronous writing "SYN" Program execution is stopped until the write operation has been completed. Successfully completing the synchronous write operation can be checked by evaluating the error variables of the WRITE command.
Page 610
Additional functions 16.9 Process DataShare - output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) Command to write output data WRITE For a description, see "Write file (WRITE) (Page 139)"! Command to close an external device/file that has been opened EXTCLOSE Parameter 1: Variable for returning the error value <error>...
Page 611
SINUMERIK 828D, the user CompactFlash Card. Note For SINUMERIK 840D sl, the option "Additional xxx MB HMI user memory on CF card of the NCU" is required for output to the LOCAL_DRIVE device. For SINUMERIK 828D a user CompactFlash Card must be available and an option is not required here.
Page 612
Optionally, the write mode ("O" = Overwrite, "A" = Append) can be defined using the LOCAL_DRIVE_FILE_MODE data. The default value is "A". Note A copy template for the extdev.ini configuration file is available in directory /siemens/sinumerik/nck. Note Changes to the extdev.ini file only become effective after an NCK restart/boot. Job Planning...
Page 613
"/dev/ext/x" For SINUMERIK 840D sl, only statically connected USB interfaces of a TCU can be configured as USB devices. The configuration is realized using the SERVER:/PATH type as specification for "Server" in the sense above, whereby SERVER is the TCU name and /PATH designates the USB interface.
Maximum number of opened external devices A maximum of 10 output devices can be simultaneously opened across all NC channels. In addition, there are two entries reserved for Siemens cycles. A maximum of 5 tasks can be simultaneously active for these devices.
Page 615
<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. When programming user cycle alarms, in addition, a character string <character string>...
Additional functions 16.11 Extended stop and retract (ESR) 16.11 Extended stop and retract (ESR) Function The extended stop and retract function - subsequently called ESR - offers the possibility of flexibly responding when a fault situation occurs as a function of the process: ●...
Additional functions 16.11 Extended stop and retract (ESR) Activation Function enable The functions generator operation, shutdown, retraction are released by setting the corresponding control signal $AA_ESR_ENABLE. This control signal can be changed by synchronized actions. Function triggering ESR is triggered jointly for all enabled axes by setting the system variable $AC_ESR_TRIGGER.
Page 618
Additional functions 16.11 Extended stop and retract (ESR) Syntax POLF(<axis>)=<position> POLFA(<axis>,<type>,<position>) POLFMASK(<axis_1>,<axis_2>,...) POLFMLIN(<axis_1>,<axis_2>,...) The following abbreviated forms are permitted for POLFA POLFA(<axis>,<type>) ; Abbreviated form for single axis retraction POLFA(axis,0/1/2) ; Quick deactivation or activation POLFA(axis,0,$AA_POLFA[axis]) ; Causes a preprocessing stop POLFA(axis,0) ;...
Page 619
Additional functions 16.11 Extended stop and retract (ESR) Predefined subprogram call for selection of the axes that are to be retracted POLFMASK after tripping of rapid lift independently of one another. Names of the axes that are to be traversed to their <axis_1>,…...
Page 620
Additional functions 16.11 Extended stop and retract (ESR) Example Retracting an individual axis: Program code Comment MD37500 $MA_ESR_REACTION[AX1]=21 ; NC-controlled retraction. $AA_ESR_ENABLE[AX1]=1 POLFA(AX1,1,20.0) ; AX1 is assigned the axial retraction position 20.0 (absolute). $AA_ESR_TRIGGER[AX1]=1 ; Retraction starts from here. Further information Requirements for NC-controlled retraction ●...
Additional functions 16.11 Extended stop and retract (ESR) Note Retraction initiated via $AC_ESR_TRIGGER is locked, in order to prevent multiple retractions. Single axis retraction With single axis retraction, the retraction position of the single axis must have been programmed with and the following conditions must be satisfied: POLFA ●...
Additional functions 16.11 Extended stop and retract (ESR) Requirements ● A stopping axis is configured for the NC-controlled stopping in the channel: MD37500 $MA_ESR_REACTION = 22 ● ESR must be must be enabled for this axis: $AA_ESR_ENABLE = 1 ● Delay times are defined: MD21380 $MC_ESR_DELAY_TIME1 (delay time, ESR axes) MD21381 $MC_ESR_DELAY_TIME2 (ESR time for interpolatory braking) Outlet...
Additional functions 16.11 Extended stop and retract (ESR) Meaning Function to write to the drive parameters for the ESR function ESRS(...) "stopping" The function: Must be alone in the block. Triggers a preprocessing stop. Cannot be used in synchronized actions. <axis_1>, Axis for which drive-integrated stopping should be configured ...,...
Page 624
Additional functions 16.11 Extended stop and retract (ESR) Meaning Function to write to the drive parameters for the ESR function ESRR(...) "retract" The function: Must be alone in the block. Triggers a preprocessing stop. Cannot be used in synchronized actions. <axis_1>, Axis for which drive-integrated retraction should be ...,...
User stock removal programs 17.1 Supporting functions for stock removal Functions Preprogrammed stock removal programs are provided for stock removal. Beyond this, you have the possibility of generating your own stock removal programs using the following listed functions: ● Generate contour table (CONTPRON) ●...
User stock removal programs 17.2 Generate contour table (CONTPRON) 17.2 Generate contour table (CONTPRON) Function Contour preparation is activated using the command . The NC blocks that are CONTPRON subsequently called are not executed, but are split-up into individual movements and stored in the contour table.
Page 627
User stock removal programs 17.2 Generate contour table (CONTPRON) Example 1 Generating a contour table with: ● Name "KTAB" ● Max. 30 contour elements (circles, straight lines) ● One variable for the number of relief cut elements that occur ● One variable for fault messages NC program: Program code Comment...
Page 628
User stock removal programs 17.2 Generate contour table (CONTPRON) Contour table KTAB: Index Column Line (10) 82.40535663 -1111 104.0362435 146.3099325 116.5650512 Explanation of the column contents: Pointer to next contour element (to the row number of that column) Pointer to previous contour element Coding the contour mode for motion Possible values for X = abc a = 10...
Page 629
User stock removal programs 17.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 Comment N10 DEF REAL KTAB[92,11]...
Page 630
User stock removal programs 17.2 Generate contour table (CONTPRON) Program code Comment N160 X80 N170 Z-40 N180 EXECUTE(ERR) ; End filling the contour table, change over to normal program operation. Contour table KTAB: After contour preparation is finished, the contour is available in both directions. Index Column Line...
Page 631
User stock removal programs 17.2 Generate contour table (CONTPRON) Always in line contour table end (forwards) +1: 5) Predecessor: Number of relief cuts (forwards) 6) Successor: Number of relief cuts (backwards) Once each within the contour elements backwards: 7) Successor: Contour end (backwards) 8) Predecessor: Contour start (backwards) Always in last line of table: 9) Predecessor: Line n is the contour table start (backwards)
User stock removal programs 17.3 Generate coded contour table (CONTDCON) 17.3 Generate coded contour table (CONTDCON) Function With the contour preparation activated with , the following NC blocks that are called CONTDCON 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 633
User stock removal programs 17.3 Generate coded contour table (CONTDCON) NC program: Program code Comment N10 DEF REAL KTAB[9,6] ; Contour table with name KTAB and 9 table cells. These allow 8 contour sets. The parameter value 6 (column number in table) is a fixed size.
Page 634
User stock removal programs 17.3 Generate coded contour table (CONTDCON) Contour table KTAB: Column index Line index Contour End point End point Center point Center point Feedrate mode abscissa ordinate abscissa ordinate 11031 111031 11031 11032 11031 11031 11031 Explanation of the column contents: Line 0 Coding for the starting point: Column 0: (units digit): G0 = 0...
User stock removal programs 17.4 Determine point of intersection between two contour elements (INTERSEC) Further Information Permitted traversing commands, coordinate system The following G groups and G commands can be used for the contour programming: G group 1: G group 10: G641 G642 G group 11:...
Page 636
User stock removal programs 17.4 Determine point of intersection between two contour elements (INTERSEC) Meaning INTERSEC Key word to determine the point of intersection between two contour elements from the contour tables generated with CONTPRON <status> Variable for the point of intersection status Type: BOOL Value:...
User stock removal programs 17.5 Execute the contour elements of a table block-by-block (EXECTAB) Example Calculate the intersection of contour element 3 in table TABNAME1 and contour element 7 in table TABNAME2. The intersection coordinates in the active plane are stored in the variables ISCOORD (1st element = abscissa, 2nd element = ordinate).
User stock removal programs 17.6 Calculate circle data (CALCDAT) Example Contour elements 0 to 2 in table KTAB should be executed block-by-block. Program code Comment N10 EXECTAB(KTAB[0]) ; Traverse element 0 of table KTAB. N20 EXECTAB(KTAB[1]) ; Traverse element 1 of table KTAB. N30 EXECTAB(KTAB[2]) ;...
Page 639
User stock removal programs 17.6 Calculate circle data (CALCDAT) Note Please note that the variables must be defined before they are used. Example Using three points it should be determined as to whether they are located on a circle segment. Program code Comment N10 DEF REAL PT[3,2]=(20,50,50,40,65,20)
User stock removal programs 17.7 Deactivate contour preparation (EXECUTE) 17.7 Deactivate contour preparation (EXECUTE) Function The command is used to deactivate the contour preparation and at the same time EXECUTE the system returns to the normal execution mode. Syntax EXECUTE(<ERROR>) Meaning EXECUTE Command to terminate contour preparation...
Programming cycles externally 18.1 Technology cycles 18.1.1 Introduction Contents This chapter describes the technology cycles from version 2.6 onwards for creating external NC programs. Structure The documentation is structured as follows: ● Programming Cycle name and call sequence of the transfer parameters ●...
The technology cycles from version 2.6 onwards are a further development of the cycle packages for SINUMERIK 840D sl up to GIV 1.5 (cycles up to version 7.5). NC programs with cycle calls for these earlier software versions will still run.
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal Feedrate during retraction _GMODE Reserved _DMODE Display mode UNITS: Machining plane G17/G18/G19 0 = Compatibility, the plane effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) _AMODE...
Page 646
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _DAM Amount/percentage for each additional infeed (degression amount/percentage), see _AMODE Dwell time at drilling depth, see _AMODE Dwell time at start point (for chip removal only), see _AMODE Percentage for the feedrate for the first infeed, see _AMODE VARI Machining type UNITS: Chip breaking/removal...
Page 647
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _AMODE Alternative mode UNITS: Drilling depth = Final drilling depth Z1 (abs/inc) 0 = Compatibility, from DP/DPR programming 1 = Incremental 2 = Absolute TENS: Dwell time at drilling depth DTB in seconds/revolutions 0 = Compatibility from DTB sign (>...
Programming cycles externally 18.1 Technology cycles 18.1.6 Boring - CYCLE86 Programming CYCLE86(REAL RTP, REAL RFP, REAL SDIS, REAL DP, REAL DPR, REAL DTB, INT SDIR, REAL RPA, REAL RPO, REAL RPAP, REAL POSS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param Param Explanation...
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal 0 = Compatibility, from DT sign (> 0 seconds or < 0 revolutions) 1 = In seconds 2 = In revolutions 18.1.7 Tapping without compensating chuck - CYCLE84 Programming CYCLE84(REAL RTP, REAL RFP, REAL SDIS, REAL DP, REAL DPR, REAL DTB, INT SDAC, REAL MPIT, REAL PIT, REAL POSS, REAL SST, REAL SST1, INT _AXN, INT _PITA, INT _TECHNO, INT _VARI, REAL _DAM, REAL _VRT,...
Page 650
UNITS: 0 = 1 cut 1 = Chip breaking (deep hole tapping) 2 = Chip removal (deep hole tapping) THOUSANDS: ISO/SIEMENS mode not relevant for input mask 1 = Call from ISO compatibility 0 = Call from SIEMENS context _DAM...
Page 651
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _DMODE Display mode UNITS: Machining plane G17/G18/G19 0 = Compatibility, the plane effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) TENS: Reserved HUNDREDS: Reserved...
Programming cycles externally 18.1 Technology cycles 18.1.8 Tapping with compensating chuck - CYCLE840 Programming CYCLE840(REAL RTP, REAL RFP, REAL SDIS, REAL DP, REAL DPR, REAL DTB, INT SDR, INT SDAC, INT ENC, REAL MPIT, REAL PIT, INT _AXN, INT _PITA, INT _TECHNO, STRING[15] _PITM, STRING[5] _PTAB, STRING[20] _PTABA, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param...
Page 653
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _PITA Pitch unit (evaluation of PIT and MPIT) 0 = Pitch in mm - evaluation of MPIT/PIT 1 = Pitch in mm - evaluation of PIT 2 = Pitch in TPI - evaluation of PIT (threads per inch) 3 = Pitch in inches - evaluation of PIT...
Programming cycles externally 18.1 Technology cycles 18.1.9 Thread milling - CYCLE78 Programming CYCLE78(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _ADPR, REAL _FDPR, REAL _LDPR, REAL _DIAM, REAL _PIT, INT _PITA, REAL _DAM, REAL _MDEP, INT _VARI, INT _CDIR, REAL _GE, REAL _FFD, REAL _FRDP, REAL _FFR, REAL _FFP2, INT _FFA, STRING[15] _PITM, STRING[20] _PTAB, STRING[20] _PTABA, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
Page 655
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal TEN THOUSANDS: 0 = No predrilling with reduced feedrate 1 = Predrilling with reduced feedrate Predrilling feed rate = 0.3 F1, if F1< 0.15 mm/rev Predrilling feedrate = 0.1 mm/rev, if F1 ≥ 0.15 mm/rev _CDIR Milling direction 0 = Down-cut...
Programming cycles externally 18.1 Technology cycles Note Parameters 21, 22 and 23 are only used for thread selection in the input mask thread tables. The thread tables cannot be accessed via cycle definition in the cycle run time. 18.1.10 Freely programmable positions - CYCLE802 Programming CYCLE802(INT _XA, INT _YA, REAL _X0, REAL _Y0, REAL _X1, REAL _Y1, REAL _X2, REAL _Y2, REAL _X3, REAL _Y3, REAL _X4, REAL _Y4, REAL...
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask intern 7th position X 7th position Y 8th position X 8th position Y 9th position X 9th position Y _VARI Reserved _UMODE Reserved _DMODE Display mode UNITS: Machining plane G17/18/19 0 = Compatibility, the plane effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle)
Programming cycles externally 18.1 Technology cycles 18.1.14 Face milling - CYCLE61 Programming CYCLE61(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _PA, REAL _PO, REAL _LENG, REAL _WID, REAL _MID, REAL _MIDA, REAL _FALD, REAL _FFP1, INT _VARI, INT _LIM, INT _DMODE, INT _AMODE) Parameters Param Param...
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal THOUSANDS: Limit 2nd axis positive 0 = No 1 = Yes _DMODE Display mode UNITS: Machining plane G17/18/19 0 = Compatibility, the plane effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle)
Page 663
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _SDIS Safety clearance (to be added to reference point, enter without sign) Pocket depth (abs/inc), see _AMODE) _LENG Pocket length (inc, to be entered with sign) _WID Pocket width (inc, to be entered with sign) _CRAD Corner radius of pocket Reference point, 1st axis (abs)
Page 664
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _GMODE Geometrical mode UNITS: Reserved TENS: Reserved HUNDREDS: Select machining/only calculation of start point 0 = Compatibility mode 1 = Normal machining THOUSANDS: Dimensioning via center/corner 0 = Compatibility mode 1 = Dimensioning via center 2 = Dimensioning of corner point, pocket position +LENG/+WID 3 = Dimensioning of corner point, pocket position -LENG/+WID...
Programming cycles externally 18.1 Technology cycles 18.1.16 Milling a circular pocket - POCKET4 Programming POCKET4(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _CDIAM, REAL _PA, REAL _PO, REAL _MID, REAL _FAL, REAL _FALD, REAL _FFP1, REAL _FFD, INT _CDIR, INT _VARI, REAL _MIDA, REAL _AP1, REAL _AD, REAL _RAD1, REAL _DP1, INT _UMODE, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
Page 666
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _AP1 Diameter/radius of premachining (inc) ∅ Depth of premachining (inc) _RAD1 Radius of helical path on helical insertion _DP1 Helical pitch on insertion on helical path _UMODE Reserved Chamfer width (inc) _ZFS Insertion depth (tool tip) on chamfering (abs/inc), see _AMODE _GMODE...
Programming cycles externally 18.1 Technology cycles 18.1.17 Rectangular spigot milling - CYCLE76 Programming CYCLE76(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _DPR, REAL _LENG, REAL _WID, REAL _CRAD, REAL _PA, REAL _PO, REAL _STA, REAL _MID, REAL _FAL, REAL _FALD, REAL _FFP1, REAL _FFD, INT _CDIR, INT _VARI, REAL _AP1, REAL _AP2, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
Page 668
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _GMODE Mode for evaluation of programmed geometrical data UNITS: Reserved TENS: Reserved HUNDREDS: Select machining or just calculation of start point 0 = Compatibility mode 1 = Normal machining THOUSANDS: Dimensioning of spigot acc.
Programming cycles externally 18.1 Technology cycles 18.1.18 Circular spigot milling - CYCLE77 Programming CYCLE77(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _DPR, REAL _CDIAM, REAL _PA, REAL _PO, REAL _MID, REAL _FAL, REAL _FALD, REAL _FFP1, REAL _FFD, INT _CDIR, INT _VARI, REAL _AP1, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param...
Page 670
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _GMODE Mode for evaluation of programmed geometrical data UNITS: Reserved TENS: Reserved HUNDREDS: Select machining/only calculation of start point 0 = Compatibility mode 1 = Normal machining THOUSANDS: Reserved TEN THOUSANDS: Complete machining/remachining 0 = Compatibility mode (process _AP1 as before) 1 = Complete machining...
Programming cycles externally 18.1 Technology cycles 18.1.19 Multiple-edge - CYCLE79 Programming CYCLE79(REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, INT _NUM, REAL _SWL, REAL _PA, REAL _PO, REAL _STA, REAL _RC, REAL _AP1, REAL _MIDA, REAL _MID, REAL _FAL, REAL _FALD, REAL _FFP1, INT _CDIR, INT _VARI, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters Param...
Programming cycles externally 18.1 Technology cycles 18.1.20 Longitudinal slot - SLOT1 Programming SLOT1 (REAL RTP, REAL RFP, REAL SDIS, REAL _DP, REAL _DPR, INT NUM, REAL LENG, REAL WID, REAL _CPA, REAL _CPO, REAL RAD, REAL STA1, REAL INDA, REAL FFD, REAL FFP1, REAL _MID, INT CDIR, REAL _FAL, INT VARI, REAL _MIDF, REAL FFP2, REAL SSF, REAL _FALD, REAL _STA2, REAL _DP1, INT _UMODE, REAL _FS, REAL _ZFS, INT _GMODE, INT _DMODE, INT _AMODE) Parameters...
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _AMODE Alternative mode UNITS: Final depth Z1 (abs/inc) 0 = Compatibility 1 = Z1 (inc) 2 = Z1 (abs) TENS: Reserved HUNDREDS: Insertion depth for chamfering ZFS 0 = ZFS (abs) 1 = ZFS (inc) Note The cycle is provided with new functions that are not on earlier software versions.
Page 676
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _CPA Reference point = Center point of circle, 1st axis of the plane _CPO Reference point = Center point of circle, 2nd axis of the plane Radius of the circle α0 STA1 Starting angle...
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _DMODE Display mode UNITS: Machining plane G17/18/19 0 = Compatibility, the levels effective before cycle call remain active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) TENS: Reserved HUNDREDS: Reserved...
Page 678
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal Reference/start point 1st axis (abs) Reference/start point 2nd axis (abs) α0 _STA Angle of rotation with respect to 1st axis _MID Maximum infeed depth (inc), for vortex milling only _MIDA Maximum plane infeed, see _AMODE _FAL...
Programming cycles externally 18.1 Technology cycles Note The cycle is provided with new functions that are not on earlier software versions. Consequently certain parameters in the input mask ( ) are no longer displayed. NUM, RAD INDA Multiple slots on one position pattern can be programmed using "MCALL" and calling the desired position pattern, e.g.
Page 682
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal αS _NSP Start angle (multi-start thread) _VARI Machining type UNITS: 1 = Roughing 2 = Finishing TENS: 1 = From top to bottom 2 = From bottom to top HUNDREDS: 0 = Right-hand thread 1 = Left-hand thread...
Programming cycles externally 18.1 Technology cycles 18.1.25 Engraving cycle - CYCLE60 Programming CYCLE60(STRING[200] _TEXT, REAL _RTP, REAL _RFP, REAL _SDIS, REAL _DP, REAL _DPR, REAL _PA, REAL _PO, REAL _STA, REAL _CP1, REAL _CP2, REAL _WID, REAL _DF, REAL _FFD, REAL _FFP1, INT _VARI, INT _CODEP, INT _UMODE, INT _GMODE, INT _DMODE, INT _AMODE) Parameter Param...
Page 684
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal 0: Left 1: Center 2: Right TEN THOUSANDS: Reference point of the text, vertical 0: Bottom 1: Center 2: Top HUNDRED THOUSANDS: Text length 0: Character spacing 1: Overall text width (linear text only) 2: Opening angle (only for circular text) MILLION: Circle center 0: Right-angled (Cartesian)
Programming cycles externally 18.1 Technology cycles 18.1.26 Contour call - CYCLE62 Programming CYCLE62(STRING[140] _KNAME, INT _TYPE, STRING[32] _LAB1, STRING[32] _LAB2) Parameters Param Param Explanation mask internal PRG/ _KNAME Contour name or subprogram name does not have to be programmed in _TYPE = 2 _TYPE Determination of contour input...
Page 686
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _FALD Finishing allowance depth (inc), allowance at base (enter without sign) _FFP1 Feedrate on contour _FFD Feedrate for depth infeed (or spatial infeed) _VARI Machining type UNITS: Machining 1 = Roughing 2 = Finishing 5 = Chamfer TENS:...
Page 687
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _AS2 Contour approach movement (not vertical approach/retract) UNITS: 1 = Straight line 2 = Quarter-circle 3 = Semi-circle TENS: 0 = Last movement, in the plane 1 = Last movement, spatial _LP2 Retract path or retract radius (inc, to be entered without sign) _UMODE...
Programming cycles externally 18.1 Technology cycles Note If the following transfer parameters are programmed indirectly (as parameters), the input mask is not reset: _VARI _AS1 _AS2 _UMODE _GMODE _DMODE _AMODE 18.1.28 Predrilling a contour pocket - CYCLE64 Programming CYCLE64(STRING[100] _PRG, INT _VARI, REAL _RP, REAL _Z0, REAL _SC, REAL _Z1, REAL _F, REAL _DXY, REAL _UXY, REAL _UZ, INT _CDIR, STRING[20] _TR, INT _DR, INT _UMODE, INT _GMODE, INT _DMODE, INT _AMODE)
Programming cycles externally 18.1 Technology cycles 18.1.30 Stock removal - CYCLE951 Programming CYCLE951(REAL _SPD, REAL _SPL, REAL _EPD, REAL _EPL, REAL _ZPD, REAL _ZPL, INT _LAGE, REAL _MID, REAL _FALX, REAL _FALZ, INT _VARI, REAL _RF1, REAL _RF2, REAL _RF3, REAL _SDIS, REAL _FF1, INT _NR, INT _DMODE, INT _AMODE) Parameters Param...
Page 693
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal R1/FS1 _RF1 Rounding radius or chamfer width 1, see _AMODE (TEN THOUSANDS) R2/FS2 _RF2 Rounding radius or chamfer width 2, see _AMODE (HUNDRED THOUSANDS) R3/FS3 _RF3 Rounding radius or chamfer width 3, see _AMODE (ONE MILLION) _SDIS Safety clearance _FF1...
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal ONE MILLION: Radius/chamfer 3 0 = Radius 1 = Chamfer 18.1.31 Groove - CYCLE930 Programming CYCLE930(REAL _SPD, REAL _SPL, REAL _WIDG, REAL _WIDG2, REAL _DIAG, REAL _DIAG2, REAL _STA, REAL _ANG1, REAL _ANG2, REAL _RCO1, REAL _RCI1, REAL _RCI2, REAL _RCO2, REAL _FAL, REAL _IDEP1, REAL _SDIS, INT _VARI, INT _DN, INT _NUM, REAL _DBH, REAL _FF1, INT _NR, REAL _FALX, REAL _FALZ, INT _DMODE, INT _AMODE)
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _AMODE Alternative mode UNITS: Dimensioning for top of groove (for interface only) 0 = At reference point 1 = Opposite the reference point TENS: Depth 0 = Absolute 1 = Incremental HUNDREDS: Dimensioning for width (for interface only) 0 = At outer diameter (top) 1 = At inner diameter (bottom)
Page 697
Programming cycles externally 18.1 Technology cycles Parameters Param Param Prog. for form Explanation mask internal _SPD Reference point in the plane axis (always diameter) _SPL Reference point on longitudinal axis (abs) FORM _FORM Form of undercut (capital letters, e.g. "T") Selection, table from which the undercut values should be taken A = External, reference DIN76, A = normal B = External, reference DIN76, B = short...
Page 698
Programming cycles externally 18.1 Technology cycles Prog. for form _FALX Finishing allowance X _FALZ Finishing allowance Z _PITI Select pitch, form A-D, corresponds to M1 ... M68 0 = 0.20 6 = 0.50 12 = 1.25 18 = 3.50 1 = 0.25 7 = 0.60 13 = 1.50 19 = 4.00...
Programming cycles externally 18.1 Technology cycles 18.1.33 Thread turning - CYCLE99 Programming CYCLE99(REAL _SPL, REAL _SPD, REAL _FPL, REAL _FPD, REAL _APP, REAL _ROP, REAL _TDEP, REAL _FAL, REAL _IANG, REAL _NSP, INT _NRC, INT _NID, REAL _PIT, INT _VARI, INT _NUMTH, REAL _SDIS, REAL _MID, REAL _GDEP, REAL _PIT1, REAL _FDEP, INT _GST, INT _GUD, REAL _IFLANK, INT _PITA, STRING[15] _PITM, STRING[20] _PTAB, STRING[20] _PTABA, INT _DMODE, INT _AMODE)
Page 700
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal TEN THOUSANDS: Alternative depth infeed 0 = Preset number of roughing cuts (_NRC) 1 = Preset value for 1st infeed (_MID) HUNDRED THOUSANDS: Machining type 1 = Roughing 2 = Finishing 3 = Roughing and finishing ONE MILLION: Machining sequence for multistart thread 0 = In ascending order of threads...
Page 701
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _DMODE Display mode UNITS: Machining plane G17/G18/G19 0 = Compatibility, the plane effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle) TENS: Type of thread 0 = Longitudinal thread...
Programming cycles externally 18.1 Technology cycles 18.1.34 Thread chain - CYCLE98 Programming CYCLE98(REAL _PO1, REAL _DM1, REAL _PO2, REAL _DM2, REAL _PO3, REAL _DM3, REAL _PO4, REAL _DM4, REAL APP, REAL ROP, REAL TDEP, REAL FAL, REAL _IANG, REAL NSP, INT NRC, INT NID, REAL _PP1, REAL _PP2, REAL _PP3, INT _VARI, INT _NUMTH, REAL _VRT, REAL _MID, REAL _GDEP, REAL _IFLANK, INT _PITA, STRING[15] _PITM1, STRING[15] _PITM2, STRING[15] _PITM3, INT _DMODE,INT _AMODE)
Page 703
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal Number of roughing cuts, see _VARI (TEN THOUSANDS) Number of non-cuts _PP1 Pitch for 1st section of thread, see _PITA _PP2 Pitch for 2nd section of thread, see _PITA _PP3 Pitch for 3rd section of thread, see _PITA _VARI...
Page 704
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal _PITA Evaluation of thread pitch 0 = Compatibility mode for pitch, Evaluation _PP1 to _PP3 as previously, according to active system (metric/inch) 1 = Pitch in mm 2 = Pitch in TPI (threads per inch) 3 = Pitch in inches 4 = MODULE _PITM1...
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal TEN MILLIONS: Single/multiple thread 0 = Compatibility mode (starting angle _NSP is evaluated) 1 = Single thread (with starting angle offset _NSP) 2 = Multiple thread 18.1.35 Cut-off - CYCLE92 Programming CYCLE92(REAL _SPD, REAL _SPL, REAL _DIAG1, REAL _DIAG2, REAL _RC, REAL _SDIS, REAL _SV1, REAL _SV2, INT _SDAC, REAL _FF1, REAL _FF2,...
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal D number for 2nd edge of tool; if not programmed ⇒ D+1 _DMODE Display mode UNITS: Machining plane G17/G18/G19 0 = Compatibility, the plane effective before cycle call remains active 1 = G17 (only active in the cycle) 2 = G18 (only active in the cycle) 3 = G19 (only active in the cycle)
Programming cycles externally 18.1 Technology cycles 18.1.37 Contour grooving - CYCLE952 Programming CYCLE952(STRING[100] _PRG, STRING[100] _CON, STRING[100] _CONR, INT _VARI, REAL _F, REAL _FR, REAL _RP, REAL _D, REAL _DX, REAL _DZ, REAL _UX, REAL _UZ, REAL _U, REAL _U1, INT _BL, REAL _XD, REAL _ZD, REAL _XA, REAL _ZA, REAL _XB, REAL _ZB, REAL _XDA, REAL _XDB, INT _N, REAL _DP, REAL _DI, REAL _SC, INT _DN, INT _GMODE, INT _DMODE, INT _AMODE, INT _PK, REAL _DCH)
Page 709
Programming cycles externally 18.1 Technology cycles No. Param Param Explanation mask internal HUNDRED THOUSANDS: Rounding 0 = Compatibility, automatic rounding 1 = With rounding at the contour 2 = Without rounding 3 = Automatic rounding ONE MILLION: Relief cuts 0 = Position is not evaluated during grooving, - residual and groove turning, - remainder 1 = Machine relief cuts 2 = No machining of relief cuts TEN MILLION: Behind/in front of turning center...
Page 710
Programming cycles externally 18.1 Technology cycles No. Param Param Explanation mask internal Distance for interruption of infeed 0 = No interruption > 0 = With interruption Safety clearance for avoiding obstacles, incremental D number for 2nd edge of tool; if not programmed ⇒ D+1 _GMODE Geometrical mode (evaluation of programmed geometrical data) UNITS: Reserved...
Programming cycles externally 18.1 Technology cycles 18.1.38 Swiveling - CYCLE800 Programming CYCLE800(INT _FR, STRING[32] _TC, INT _ST, INT _MODE, REAL _X0, REAL _Y0, REAL _Z0, REAL _A, REAL _B, REAL _C, REAL _X1, REAL _Y1, REAL _Z1, INT _DIR, REAL _FR_I, INT _DMODE) Parameters Param Param...
Programming cycles externally 18.1 Technology cycles Note If the following transfer parameters are programmed indirectly (as parameters), the input mask is not reset: _FR, _ST, _TC, _MODE, _DIR Can be selected when function is set up in IBN SWIVEL Can be selected if direction reference to rotary axis 1 or 2 is set in IBN SWIVEL If direction reference is "no"...
Page 715
Programming cycles externally 18.1 Technology cycles Param Param Explanation mask internal S_TOLM Machining type (technology) UNITS: 0 = Deselection 1 = Finishing 2 = Semi-finishing 3 = Roughing TENS: 0 = Compatibility or no orientation tolerance 1 = Orientation tolerance in the 3rd parameter To improve the readability of the cycle call, the "Machining mode"...
Page 716
Programming cycles externally 18.1 Technology cycles Examples Example 1: CYCLE832 on 3-axis machine without orientation transformation a) Cycle call with plain text input Program code Comment G710 ; Dimension system is metric. CYCLE832(0.004,_FINISH,1) ; CYCLE832 call with: Contour tolerance = 0.004 mm, machining type: Finishing ;...
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl NC main block number, jump label termination, concatenation Arithmetic functions (Page 69) operator PGAsl Operator for multiplication Arithmetic functions (Page 69) PGAsl Operator for addition Arithmetic functions (Page 69)
Page 718
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl Tool orientation: Surface normal vector for beginning of block Face milling (A4, B4, C4, A5, B5, C5) (Page 319) PGAsl Tool orientation: Surface normal vector for end of block Face milling (A4, B4, C4, A5, B5, C5)
Page 719
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGsl Contour angle PGsl Polar angle PGAsl Read/show access protection Attribute: Access rights (APR, APW, APRP, APWP, APRB, APWB) (Page 39) PGAsl APRB Read access right, OPI...
Page 720
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl ATOL Axis-specific tolerance for compressor functions, orientation Programmable contour/orientation smoothing and smoothing types tolerance (CTOL, OTOL, ATOL) (Page 488) PGsl ATRANS Additive programmable translation FB1sl (H2)
Page 721
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl AXTOSPI Converts axis identifier into a spindle index Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) (Page 583) PGAsl Axis name Programming the tool orientation (A..., B..., C..., LEAD, TILT) (Page 313)
Page 722
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl BNAT Natural transition to first spline block Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Page 230) PGAsl BOOL...
Page 723
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl Absolute position approach Approaching coded positions (CAC, CIC, CDC, CACP, CACN) (Page 229) PGAsl CACN Absolute approach of the value listed in the table in negative Approaching coded positions (CAC, CIC, direction...
Page 724
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl CHANDATA Set channel number for channel data access Working memory (CHANDATA, COMPLETE, INITIAL) (Page 213) PGAsl CHAR Data type: ASCII character Definition of user variables (DEF) (Page 24) PGsl...
Page 725
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) COMPLETE Control instruction for reading and PGAsl writing data Working memory (CHANDATA, COMPLETE, INITIAL) (Page 213) PGAsl COMPOF Compressor OFF NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) (Page 241) PGAsl...
Page 726
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl COUPONC Transfer activation of ELG group/synchronous spindle pair Synchronous spindle: Programming with previous programming (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) (Page 531) PGAsl COUPRES...
Page 727
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) FB3sl (M3) CPLOF Generic coupling: Switching off a leading axis of a coupling module FB3sl (M3) CPLON Generic coupling: Switching on a leading axis of a coupling module FB3sl (M3) CPLOUTSC...
Page 728
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) FB3sl (M3) CPSETTYPE Generic coupling: Coupling type FB3sl (M3) CPSYNCOP Generic coupling: Threshold value of position synchronism "Coarse" FB3sl (M3) CPSYNCOP2 Generic coupling: Threshold value of position synchronism "Coarse"...
Page 729
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl CTABEXISTS Checks the curve table with number n Check for presence of curve table (CTABEXISTS) (Page 507) PGAsl CTABFNO Number of curve tables still possible in the memory Curve tables: Check use of resources (CTABNO, CTABNOMEM, CTABFNO,...
Page 730
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl CTABMPOL Max. number of polynomials still possible in the memory Curve tables: Check use of resources (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Page 517) PGAsl...
Page 731
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl CTABSEV Returns the final value of the following axis of a segment of the Read curve table values (CTABTSV, curve table CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX)
Page 732
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl CTABUNLOCK Revoke delete and overwrite lock Locking curve tables to prevent deletion and overwriting (CTABLOCK, CTABUNLOCK) (Page 509) PGAsl CTOL Contour tolerance for compressor functions, orientation smoothing Programmable contour/orientation...
Page 733
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl CYCLE62 Contour call Contour call - CYCLE62 (Page 685) PGAsl CYCLE63 Contour pocket milling Milling a contour pocket - CYCLE63 (Page 689) PGAsl CYCLE64...
Page 734
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl CYCLE99 Thread cutting Thread turning - CYCLE99 (Page 699) PGAsl CYCLE800 Swiveling Swiveling - CYCLE800 (Page 712) PGAsl CYCLE801 Grid or frame Grid or frame - CYCLE801 (Page 658) PGAsl CYCLE802...
Page 735
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl DELAYFSTON Define the start of a stop delay section Program branch (CASE ... OF ... DEFAULT ...) (Page 100) PGAsl DELDL Delete additive offsets Delete additive offsets (DELDL)
Page 736
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGsl DIAMONA Axis-specific modal diameter programming: ON Activation, see machine manufacturer PGsl Relative non-modal axis-specific diameter programming PGsl DILF Retraction path (length) PGAsl DISABLE Interrupt OFF...
Page 737
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) FBSY Keyword for synchronized action, triggers action when condition is fulfilled PGsl DRFOF Deactivation of handwheel offsets (DRF) PGAsl DRIVE Velocity-dependent path acceleration Acceleration mode (BRISK, BRISKA, SOFT, SOFTA, DRIVE, DRIVEA)
Page 738
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl EGDEF Definition of an electronic gear Defining an electronic gear (EGDEF) (Page 524) PGAsl EGDEL Delete coupling definition for the following axis Deleting the definition of an electronic gear (EGDEL) (Page 530)
Page 739
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) ENDPROC End line of program with start line PROC PGAsl ENDWHILE End line of WHILE loop Program loop with condition at start of loop (WHILE, ENDWHILE) (Page 114) PGAsl ESRR...
Page 740
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl EXTOPEN Opening external device / file for the channel for writing Process DataShare - output to an external device/file (EXTOPEN, WRITE, EXTCLOSE) (Page 605) PGsl Feedrate value...
Page 741
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl FIFOCTRL Control of preprocessing buffer Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) (Page 466) PGAsl FILEDATE Returns date of most recent write access to file Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT,...
Page 742
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGsl Fixed point: Number of fixed point to be approached PGAsl Feedrate characteristic programmed via a polynomial Feedrate characteristic (FNORM, FLIN, FCUB, FPO) (Page 452) PGsl Rotary axis identifier...
Page 743
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGsl Selection of working plane X/Y PGsl Selection of working plane Z/X PGsl Selection of working plane Y/Z PGsl Lower working area limitation PGsl Upper working area limitation PGsl...
Page 744
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGsl Linear feedrate F in mm/min or inch/min and degree/min PGsl Revolutional feedrate F in mm/rev or inch/rev PGsl Constant cutting rate (as for G95) PGsl Constant cutting rate (as for G95) G110...
Page 745
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGsl G460 Activation of collision detection for the approach and retraction block PGsl G461 Insertion of a circle into the TRC block PGsl G462...
Page 746
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl G820 , ..., G group reserved for the OEM G829 user Special functions for OEM users (OMA1 ... OMA5, OEMIPO1, OEMIPO2, G810 ...
Page 747
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) FBWsl GETT Get T number for tool name FB1sl (W1) GETTCOR Read out tool lengths and/or tool length components FB1sl (W1) GETTENV Read T, D and DL numbers GETVARAP...
Page 748
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl GOTOS Jump back to beginning of program Return jump to the start of the program (GOTOS) (Page 96) PGAsl Keyword for the indirect programming of position attributes Indirectly programming position attributes (GP) (Page 65)
Page 749
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl INIT Selection of a particular NC program for execution in a Program coordination (INIT, START, particular channel WAITM, WAITMC, WAITE, SETM, CLEARM) (Page 116) PGAsl INITIAL...
Page 750
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl ISNUMBER Check whether the input string can be converted to a number Type conversion from STRING (NUMBER, ISNUMBER, AXNAME) (Page 79) PGAsl ISOCALL Indirect call of a program...
Page 751
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGsl LFOF Fast retraction for thread cutting PGsl LFON Fast retraction for thread cutting PGsl LFPOS Retraction of the axis declared with POLFMASK or POLFMLIN to the absolute axis position programmed with POLF...
Page 752
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGsl End of program, main program (as M2) PGsl Automatic gear change PGsl M41 ... M45 Gear stage 1 ... 5 PGsl Transition to axis mode PGAsl...
Page 753
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl MEASA Axial measurement with delete distance-to-go Axial measurement (MEASA, MEAWA, MEAC) (option) (Page 256) FB1sl (M5) MEASURE Calculation method for workpiece and tool measurement Measuring with touch-trigger probe (MEAS, MEAW) (Page 253)
Page 754
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl Specify validity range for data Definition of user variables (DEF) (Page 24) PGAsl NEWCONF Apply modified machine data (corresponds to "Activate machine Activate machine data (NEWCONF) data") (Page 138)
Page 755
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl OMA3 OEM address 3 Special functions for OEM users (OMA1 ... OMA5, OEMIPO1, OEMIPO2, G810 ... G829) (Page 266) PGAsl OMA4 OEM address 4 Special functions for OEM users (OMA1...
Page 756
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl/FB3sl (F5) ORICONTO Interpolation on circular peripheral surface in tangential transition Orientation programming along the (final orientation) peripheral surface of a taper (ORIPLANE, ORICONCW, ORICONCCW, ORICONTO, ORICONIO) (Page 326)
Page 757
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl ORIROTR Angle of rotation relative to the plane between the start and end Rotations of the tool orientation orientation (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) (Page 333) PGAsl ORIROTT...
Page 758
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl Oscillation on/off Asynchronous oscillation (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) (Page 555) FB1sl (P5) Oscillating: Starting point PGAsl Continuous tool orientation smoothing...
Page 759
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl OSSE Tool orientation smoothing at start and end of block Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) (Page 418) PGAsl Smoothing of tool orientation by...
Page 760
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl Angle of rotation of the orientation around the direction axis of the Orientation programming along the taper peripheral surface of a taper (ORIPLANE, ORICONCW, ORICONCCW, ORICONTO, ORICONIO) (Page 326)
Page 761
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl PONS Punching ON in interpolation cycle Punching and nibbling on or off (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) (Page 569) PGsl Axis positioning PGsl...
Page 762
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl Opening angle of the taper Orientation programming along the peripheral surface of a taper (ORIPLANE, ORICONCW, ORICONCCW, ORICONTO, ORICONIO) (Page 326) PGAsl Point-to-point motion Cartesian PTP travel (Page 362)
Page 763
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl RELEASE Release machine axes for axis exchange Axis replacement, spindle replacement (RELEASE, GET, GETD) (Page 132) PGAsl Keyword for initialization of all elements of an array with the Definition and initialization of array same value...
Page 764
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) FBSY RESET Reset technology cycle FBWsl RESETMON Language command for setpoint activation PGAsl End of subprogram Parameterizable subprogram return jump (RET ...) (Page 178) PGsl Relative non-modal axis-specific radius programming...
Page 765
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl RMIBL Repositioning to interrupt point Repositioning to the contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMIBL, RMBBL, RMEBL, RMNBL) (Page 476) PGAsl Repositioning to the nearest path...
Page 766
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl SBLON Revoke suppression of single block Suppress single block execution (SBLOF, SBLON) (Page 167) PGAsl Parameter for access to frame data: Scaling Reading and changing frame components (TR, FI, RT, SC, MI)
Page 767
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) FB1sl (W1) SETTCOR Modification of tool components taking all supplementary conditions into account FBWsl SETTIA Deactivate tool from wear group PGsl Starting point offset for thread cutting PGAsl...
Page 768
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl Converts spindle number into axis identifier Axis functions (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) (Page 583) FB2sl (N4) SPIF1 Fast NCK inputs/outputs for punching/nibbling byte 1...
Page 769
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl STARTFIFO Execute; fill preprocessing memory simultaneously Program sequence with preprocessing memory (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) (Page 466) PGAsl STAT Position of joints Cartesian PTP travel (Page 362) PGAsl STOLF...
Page 770
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl SYNRW The variable is read and written synchronously, i.e. at the time of Definition of user variables (DEF) execution (Page 24) PGAsl SYNW The variable is written...
Page 771
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl TCOFRX Determine tool orientation of an active frame on selection of tool, Tool length compensation for orientable tool points in X direction toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) (Page 433)
Page 773
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl TOWKCS Wear values in the coordinate system of the tool head for kinetic Coordinate system of the active transformation (differs from machining operation (TOWSTD, machine coordinate system TOWMCS, TOWWCS, TOWBCS,...
Page 774
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl TRANSMIT Pole transformation (face machining) Milling on turned parts (TRANSMIT): (Page 347) PGAsl TRAORI 4-axis, 5-axis transformation, generic transformation Three, four and five axis transformation (TRAORI) (Page 310) PGAsl TRUE...
Page 775
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGAsl WAITENC Wait for synchronized or restored axis positions Wait for valid axis position (WAITENC) (Page 592) PGAsl WAITM Wait for marker in specified channel;...
Page 776
Tables 19.1 Operations Operation Type Meaning Description see for explanations, see legend (Page 776). 1) 2) 3) 4) 5) PGsl WALIMON BCS working area limitation ON FBSY WHEN The action is executed cyclically when the condition is fulfilled. FBSY WHENEVER The action is executed once whenever the condition is fulfilled.
Page 777
Tables 19.1 Operations Predefined procedure (does not supply a return value) Program attribute Program attributes are at the end of the definition line of a subprogram: PROC <program name>(...) <program attribute> They determine the behavior during execution of the subprogram. Effectiveness of the operation: Modal Non-modal...
Tables 19.2 Operations: Availability for SINUMERIK 828D 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available ●...
Page 779
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available APRB ● ● ● ● ●...
Page 780
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available BAUTO ○ ○ ○ BLOCK ●...
Page 781
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available ● ● ● ● ● ●...
Page 782
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available CPLNUM ● ● ● ● ●...
Page 783
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available CTABFNO CTABFPOL CTABFSEG CTABID CTABINV CTABISLOCK CTABLOCK CTABMEMTYP...
Page 784
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available CUTMOD ● ● ● ● ●...
Page 785
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available DISR ● ● ● ● ●...
Page 786
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available EXECTAB ● ● ● ● ●...
Page 787
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available FPRAOF ● ● ● ● ●...
Page 788
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available ● ● ● ● ● ●...
Page 789
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available G462 ● ● ● ● ●...
Page 790
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available GETVARPHU ● ● ● ● ●...
Page 791
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available ISFILE ● ● ● ● ●...
Page 792
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available ● ● ● ● ● ●...
Page 793
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available NEWT ● ● ● ● ●...
Page 794
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available ORISON ORIVECT ORIVIRT1 ORIVIRT2 ORIWKS OSCILL OSCTRL OSNSC...
Page 795
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available POCKET4 ● ● ● ● ●...
Page 796
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available RELEASE ● ● ● ● ●...
Page 797
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available ● ● ● ● ● ●...
Page 798
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available START STARTFIFO ● ● ● ●...
Page 799
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available TLIFT ● ● ● ● ●...
Page 800
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available TRAORI ● ● ● TRUE ●...
Page 801
Tables 19.2 Operations: Availability for SINUMERIK 828D Operation 828D control version ● Standard PPU240.2 / 241.2 PPU260.2 / 261.2 PPU280.2 / 281.2 ○ Option BASIC T BASIC M Turning Milling Turning Milling - not available ● ● ● ● ● ●...
Tables 19.3 Currently set language in the HMI 19.3 Currently set language in the HMI The table below lists all of the languages available at the user interface. The currently set language can be queried in the part program and in the synchronized actions using the following system variable: $AN_LANGUAGE_ON_HMI = <value>...
Appendix List of abbreviations Adaptive Control ADI4 (Analog drive interface for 4 axes) Active Line Module Rotating induction motor ASCII American Standard Code for Information Interchange ASIC Application-Specific Integrated Circuit: User switching circuit ASUB Asynchronous subprogram AuxF Auxiliary Function AUXFU Auxiliary Function Mode Mode group...
Page 804
Appendix A.1 List of abbreviations Communication Communication Processor Compiler Projecting Data: Configuring data of the compiler Central Processing Unit Carriage Return Cutter Radius Compensation Cathode Ray Tube picture tube Central Service Board: PLC module Clear To Send: Ready to send signal for serial data interfaces Control Unit CUTCOM Cutter radius Compensation: Tool radius compensation...
Page 805
Appendix A.1 List of abbreviations European standard Encoder: Actual value encoder EnDat Encoder interface EPROM Erasable Programmable Read Only Memory: Erasable, electrically programmable read-only memory ePS Network Services Services for Internet-based remote machine maintenance Designation for an absolute encoder with 2048 sine signals per revolution Engineering System Electrostatic Sensitive Devices Extended Stop and Retract...
Page 806
Appendix A.1 List of abbreviations Abbreviation for hexadecimal number Hydraulic linear drive Human Machine Interface: SINUMERIK user interface Hardware Input Input/Output Commissioning Interpolatory compensation Interface Module Interconnection module Interface Module Receive: Interface module for receiving data Interface Module Send: Interface module for sending data Increment Initializing Data Interpolator...
Page 807
Appendix A.1 List of abbreviations Position controller Least Significant Bit Local User Data Media Access Control MAIN Main program (OB1, PLC) Megabyte Motion Control Interface MCIS Motion Control Information System Machine Control Panel Machine Control Panel Machine Coordinate System Machine Data Manual Data Automatic: Manual input MLFB Machine-readable product code...
Page 808
Appendix A.1 List of abbreviations Personal Computer PCIN Name of the SW for data exchange with the controller PCMCIA Personal Computer Memory Card International Association: Plug-in memory card standardization PC Unit: PC box (computer unit) Programming device Process Image Input Process Image Output Parameter identification: Value (parameterizing part of a PPO) Parameter identification: Part of a PIV...
Page 809
Appendix A.1 List of abbreviations 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, arithmetic parameter, predefined user variable R Parameter Active: Memory area on the NCK for R parameter numbers Roll Pitch Yaw: Rotation type of a coordinate system RTCP Real Time Control Protocol...
Page 810
Appendix A.1 List of abbreviations Software System Files SYNACT SYNchronized ACTion Tool Terminal Board (SINAMICS) Tool change Tool Center Point: Tool tip TCP/IP Transport Control Protocol / Internet Protocol Thin Client Unit Testing Data Active: Identifier for machine data Totally Integrated Automation Tool Length Compensation Terminal Module (SINAMICS) Tool Management...
Page 811
Appendix A.1 List of abbreviations Workpiece Coordinate System Workshop-Oriented Programming Workpiece Directory Extensible Markup Language Zero Offset Zero Offset Active: Identifier for zero offsets Status word (of drive) Job Planning Programming Manual, 03/2013, 6FC5398-2BP40-3BA1...
Glossary Absolute dimensions A destination for an axis motion 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 814
Glossary Auxiliary functions Auxiliary functions enable → part programs to transfer → parameters to the → PLC, which then trigger reactions defined by the machine manufacturer. Axes In accordance with their functional scope, the CNC axes are subdivided into: ● Axes: Interpolating path axes ●...
Page 815
Glossary Baud rate Rate of data transfer (bits/s). Blank Workpiece as it is before it is machined. Block "Block" is the term given to any files required for creating and processing programs. 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.
Page 816
Glossary Component of the NC for the implementation and coordination of communication. Compensation axis Axis with a setpoint or actual value modified by the compensation value Compensation 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 817
Glossary Cycles Protected subprograms for execution of repetitive machining operations on the → workpiece. Data block 1. Data unit of the → PLC that → HIGHSTEP programs can access. 2. Data unit of the → NC: Data modules contain data definitions for global user data. This data can be initialized directly when it is defined.
Page 818
Glossary Exact stop When an exact stop statement is programmed, the position specified in a block is approached exactly and, if necessary, very slowly. To reduce the approach time, → exact stop limits are defined for rapid traverse and feed. Exact stop limit When all path axes reach their exact stop limits, the controller responds as if it had reached its precise destination point.
Page 819
Glossary Geometry Description of a → workpiece in the → workpiece coordinate system. Geometry axis The geometry axes form the 2 or 3-dimensional → workpiece coordinate system in which, in → part programs, the geometry of the workpiece is programmed. 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 820
Glossary Identifier In accordance with DIN 66025, words are supplemented using identifiers (names) for variables (arithmetic variables, system variables, user variables), subprograms, 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 821
Glossary Interrupt routine Interrupt routines are special → subprograms 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. Inverse-time feedrate The time required for the path of a block to be traversed can also be programmed for the axis motion instead of the feed velocity (G93).
Page 822
Glossary Limit speed Maximum/minimum (spindle) speed: The maximum speed of a spindle can be limited by specifying machine data, the → PLC or → setting data. Linear axis In contrast to a rotary axis, a linear axis describes a straight line. Linear interpolation The tool travels along a straight line to the destination point while machining the workpiece.
Page 823
Glossary Macro techniques Grouping of a set of statements under a single identifier. The identifier represents the set of consolidated statements in the program. Main block A block prefixed by ":" introductory block, containing all the parameters required to start execution of a ->...
Page 824
Glossary Numerical Control: Numerical control (NC) includes all components of machine tool control: → NCK, → PLC, HMI, → COM. Note A more correct term for SINUMERIK controllers would be: Computerized Numerical Control Numerical Control Kernel: Component of NC that executes the → part programs and basically coordinates the motion operations for the machine tool.
Page 825
Glossary Oriented tool retraction : If machining is interrupted (e.g. when a tool breaks), a program command can be RETTOOL used to retract the tool in a user-specified orientation by a defined distance. Overall reset In the event of an overall reset, the following memories of the → CPU are deleted: ●...
Page 826
Programmable Logic Controller: → Programmable logic controller. Component of → NC: Programmable control for processing the control logic of the machine tool. PLC program memory SINUMERIK 840D sl: The PLC user program, the user data and the basic PLC program are stored together in the PLC user memory. PLC programming The PLC is programmed using the STEP 7 software.
Page 827
Glossary Positioning axis Axis that performs an auxiliary motion on a machine tool (e.g. tool magazine, pallet transport). Positioning axes are axes that do not interpolate with → path axes. Pre-coincidence Block change occurs already when the path distance approaches an amount equal to a specifiable delta of the end position.
Page 828
Glossary Quadrant error compensation Contour errors at quadrant transitions, which arise as a result of changing friction conditions on the guideways, can be virtually entirely eliminated with the quadrant error compensation. Parameterization of the quadrant error compensation is performed by means of a circuit test. R parameters Arithmetic parameter that can be set or queried by the programmer of the →...
Page 829
Glossary Scaling Component of a → frame that implements axis-specific scale modifications. Setting data Data which communicates the properties of the machine tool to the NC as defined by the system software. Softkey A key, whose name appears on an area of the screen. The choice of softkeys displayed is dynamically adapted to the operating situation.
Glossary Synchronization Statements in → part programs for coordination of sequences in different → channels at certain machining points. Synchronized actions 1. Auxiliary function output During workpiece machining, technological functions (→ auxiliary functions) can be output from the CNC program to the PLC. For example, these auxiliary functions are used to control additional equipment for the machine tool, such as quills, grabbers, clamping chucks, etc.
Page 831
Glossary Text editor See → Editor TOA area The TOA area includes all tool and magazine data. By default, this area coincides with the → channel area with regard to the access of the data. However, machine data can be used to specify that multiple channels share one →...
Page 832
Glossary User interface The user interface (UI) is the display medium for a CNC in the form of a screen. It features horizontal and vertical softkeys. User memory All programs and data, such as part programs, subprograms, comments, tool offsets, and zero offsets/frames, as well as channel and program user data, can be stored in the shared CNC user memory.
Page 833
Glossary 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. One value pair per axis may be used to describe the protected working area. Working memory The working memory is a RAM in the →...
Page 844
Index PO[XH] Jumps, 97 for orientation specification of two contact Memory, 210 points, 329 Repetition, 189 Orientation polynomials, 332 Runtimes, 600 PO[YH] Program loop for orientation specification of two contact Count loop, 112 points, 329 End of loop, 111 Orientation polynomials, 332 IF loop, 110 PO[ZH] REPEAT loop, 115...