Download Print this page

Siemens SINUMERIK 828D Programming Manual

Hide thumbs

Advertisement

SINUMERIK
SINUMERIK 828D
Valid for:
CNC system software Version 4.3
07/2010
6FC5398-2BP40-0BA0
Preface
Transformations
Oscillation
Grinding
programs
Tables
Appendix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
A

Advertisement

loading

  Summary of Contents for Siemens SINUMERIK 828D

  • Page 1: Table Of Contents

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

    ● Researching documentation online Information on DOConCD and direct access to the publications in DOConWeb. ● Compiling individual documentation on the basis of Siemens contents with the My Documentation Manager (MDM), refer to http://www.siemens.com/mdm. My Documentation Manager provides you with a range of features for generating your own machine documentation.
  • Page 4 Technical Support If you have any questions, please contact our hotline: Europe / Africa Phone +49 (0) 911 895 7222 +49 (0) 911 895 7223 Internet http://www.siemens.de/automation/support-request America Phone +1 423 262 2522 +1 423 262 2200 E-mail mailto:techsupport.sea@siemens.com Asia/Pacific...
  • Page 5: Job Planning

    Availability of the described NC language elements All NC language elements described in the manual are available for the SINUMERIK 840D sl. The availability regarding SINUMERIK 828D can be found in table "Operations: Availability for SINUMERIK 828D (Page 758)". Job planning...
  • Page 6 Preface Job planning Programming Manual, 07/2010, 6FC5398-2BP40-0BA0...
  • Page 7 Table of contents Preface ..............................3 Flexible NC programming ........................15 Variables ............................15 1.1.1 General information about variables....................15 1.1.2 System variables..........................16 1.1.3 Predefined user variables: Arithmetic parameters (R)..............19 1.1.4 Predefined user variables: Link variables ..................20 1.1.5 Definition of user variables (DEF) ....................23 1.1.6 Redefinition of system variables, user variables, and NC language commands (REDEF) ..30 1.1.7...
  • Page 8 Table of contents 1.12 Check structures ......................... 98 1.12.1 Program loop with alternative (IF, ELSE, ENDIF)............... 99 1.12.2 Continuous program loop (LOOP, ENDLOOP)................. 101 1.12.3 Count loop (FOR ... TO ..., ENDFOR) ..................102 1.12.4 Program loop with condition at start of loop (WHILE, ENDWHILE).......... 103 1.12.5 Program loop with condition at the end of the loop (REPEAT, UNTIL) ........
  • Page 9 Table of contents 1.25.3.2 Subprogram call with parameter transfer (EXTERN)..............183 1.25.3.3 Number of program repetitions (P) ....................186 1.25.3.4 Modal subprogram call (MCALL) ....................188 1.25.3.5 Indirect subprogram call (CALL) ....................190 1.25.3.6 Indirect subprogram call with specification of the calling program part (CALL BLOCK ...
  • Page 10 Table of contents 5.2.2 Reading and changing frame components (TR, FI, RT, SC, MI)..........290 5.2.3 Linking complete frames ......................291 5.2.4 Defining new frames (DEF FRAME) ..................292 Coarse and fine offsets (CFINE, CTRANS) ................293 External zero offset ........................295 Preset offset (PRESETON).......................
  • Page 11 Table of contents 6.12 Chained transformations (TRACON, TRAFOOF)..............387 Tool offsets ............................389 Offset memory..........................389 Additive offsets...........................392 7.2.1 Selecting additive offsets (DL) ....................392 7.2.2 Specify wear and setup values ($TC_SCPxy[t,d], $TC_ECPxy[t,d]) .........394 7.2.3 Delete additive offsets (DELDL)....................395 Special handling of tool offsets ....................396 7.3.1 Mirroring of tool lengths ......................398 7.3.2...
  • Page 12 Table of contents 8.7.1 Percentage jerk correction (JERKLIM) ..................485 8.7.2 Percentage velocity correction (VELOLIM)................486 8.7.3 Program example for JERKLIM and VELOLIM................. 489 Programmable contour/orientation tolerance (CTOL, OTOL, ATOL) ........490 Tolerance for G0 motion (STOLF) .................... 494 Axis couplings............................497 Coupled motion (TRAILON, TRAILOF)..................
  • Page 13 Table of contents 10.3.11 Information about block types in the interpolator ($AC_BLOCKTYPE, $AC_BLOCKTYPEINFO, $AC_SPLITBLOCK)................571 10.4 Actions in synchronized actions....................574 10.4.1 Overview of possible actions in synchronized actions...............574 10.4.2 Output of auxiliary functions.......................576 10.4.3 Set read-in disable (RDISABLE)....................577 10.4.4 Cancel preprocessing stop (STOPREOF) .................578 10.4.5 Delete distance-to-go (DELDTG)....................579 10.4.6...
  • Page 14: Punching And Nibbling

    15.7 Deactivate contour preparation (EXECUTE) ................707 Tables..............................709 16.1 Instructions ..........................709 16.2 Operations: Availability for SINUMERIK 828D................758 Appendix..............................779 List of abbreviations ........................779 Feedback on the documentation....................784 Overview ........................... 786 A.3.1 828D document tree........................786 Glossary ..............................
  • Page 15: Flexible Nc Programming

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

    Flexible NC programming 1.1 Variables See also System variables (Page 16) Predefined user variables: Arithmetic parameters (R) (Page 19) Predefined user variables: Link variables (Page 20) Attribute: Initialization value (Page 33) Attribute: Limit values (LLI, ULI) (Page 36) Attribute: Physical unit (PHU) (Page 38) Attribute: Access rights (APR, APW, APRP, APWP, APRB, APWB) (Page 40) Overview of definable and redefinable attributes (Page 45) Definition and initialization of array variables (DEF, SET, REP) (Page 46)
  • Page 17 Flexible NC programming 1.1 Variables Prefix system In order that they can be specifically identified, the names of system variables are usually preceded by a prefix comprising the $ sign followed by one or two letters and an underscore. $ + 1st letter Significance: Data type System variables which are read/written during preprocessing Machine data...
  • Page 18 Flexible NC programming 1.1 Variables General conditions Exceptions to the rules of the prefix system The following system variables deviate from the rules of the prefix system described above: ● $TC_...: Here, the second letter C does not refer to channel-specific system variables but to toolholder-specific system variables (TC= tool carrier).
  • Page 19: Predefined User Variables: Arithmetic Parameters (R)

    Flexible NC programming 1.1 Variables 1.1.3 Predefined user variables: Arithmetic parameters (R) Function Arithmetic parameters or R-parameters are predefined user variables with the designation R, defined as an array of the data type. For historical reasons, notation both with array REAL index, e.g.
  • Page 20: Predefined User Variables: Link Variables

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

    Flexible NC programming 1.1 Variables 1.1.5 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 range of validity (in other words, the range in which the variable is visible) there are the following categories of user variable: ●...
  • Page 24 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 Data type: <type> Integer with sign Real number (LONG REAL to IEEE) REAL Truth value TRUE (1)/FALSE (0) BOOL...
  • Page 25 Flexible NC programming 1.1 Variables Access rights for reading/writing GUD via part program or OPI <access rights> (optional) <protection Read: Part program APRP level>: <protection Write: Part program APWP level>: <protection Read: OPI APRB level>: <protection Write: OPI APWB level>: Protection Range of values: 0 ...
  • Page 26 ; Access rights: Part program: Write/read = 3 = end user OPI: Write = 0 = Siemens, read = 3 = end user ; Initialization value: ZEIT_1 = 12.0, ZEIT_2 = 45.0 DEF NCK APWP 3 APRP 3 APWB 0 APRB 3 STRING[5] GUD5_NAME = "COUNTER"...
  • Page 27 Flexible NC programming 1.1 Variables Example 2: Program-global and program-local user variables (PUD/LUD) Program code Comment PROC MAIN ; Main program DEF INT VAR1 ; PUD definition SUB2 ; Subprogram call Program code Comment PROC SUB2 ; Subprogram SUB2 DEF INT VAR2 ;...
  • Page 28 Number of configurable GUD of the AXIS data type 18664 MM_NUM_SYNACT_GUD_CHAR Number of configurable GUD of the CHAR data type 18665 MM_NUM_SYNACT_GUD_STRING Number of configurable GUD of the STRING data type Not available for SINUMERIK 828D. Job planning Programming Manual, 07/2010, 6FC5398-2BP40-0BA0...
  • Page 29 Flexible NC programming 1.1 Variables Program-global user variables (PUD) NOTICE Visibility of program-local user variables (PUD) Program-local user variables (PUD) defined in the main program will only be visible in subprograms if the following machine data is set: MD11120 $MN_LUD_EXTENDED_SCOPE = 1 If MD11120 = 0 the program-local user variables defined in the main program will only be visible in the main program.
  • Page 30: Redefinition Of System Variables, User Variables, And Nc Language Commands (Redef)

    Flexible NC programming 1.1 Variables 1.1.6 Redefinition of system variables, user variables, and NC language commands (REDEF) Function command can be used to change system variable, user variable and NC language REDEF command attributes. A fundamental condition of redefinition is that it has to post-date the corresponding definition.
  • Page 31 Flexible NC programming 1.1 Variables Lower and/or upper limit value <limit values> <limit value>: Lower limit value (lower limit) <limit value>: Upper limit value (upper limit) See "Attribute: Limit values (LLI, ULI) (Page 36)" Note Cannot be redefined for: • System variables •...
  • Page 32 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 $PATH=/_N_DEF_DIR REDEF $TC_DPC1 APWB 2 APWP 3 REDEF $TC_DPC1 PHU 21 REDEF $TC_DPC1 LLI 0 ULI 200 REDEF $TC_DPC1 INIPO (100, 101, 102, 103) ;...
  • Page 33: Attribute: Initialization Value

    Flexible NC programming 1.1 Variables 1.1.7 Attribute: Initialization value Definition ( ) of user variables During definition an initialization value can be preassigned for the following user variables: ● Global user variables (GUD) ● Program-global user variables (PUD) ● Local user variables (LUD) Redefinition ( ) of system and user variables REDEF...
  • Page 34 Flexible NC programming 1.1 Variables Table 1- 1 Programmable setting data Number Identifier G command 42000 $SC_THREAD_START_ANGLE 42010 $SC_THREAD_RAMP_DISP DITS DITE 42400 $SA_PUNCH_DWELLTIME PDELAYON 42800 $SA_SPIND_ASSIGN_TAB SETMS 43210 $SA_SPIND_MIN_VELO_G25 43220 $SA_SPIND_MAX_VELO_G26 43230 $SA_SPIND_MAX_VELO_LIMS LIMS 43300 $SA_ASSIGN_FEED_PER_REV_SOURCE FPRAON 43420 $SA_WORKAREA_LIMIT_PLUS 43430 $SA_WORKAREA_LIMIT_MINUS 43510 $SA_FIXED_STOP_TORQUE...
  • Page 35 Flexible NC programming 1.1 Variables Initialization value: STRING data type In the case of variables of the data type, the character string must be enclosed in STRING quotation marks, e.g..= "MACHINE_1" Initialization value: AXIS data type In the case of variables of the data type, for an extended address notation, the axis AXIS identifier must be enclosed in brackets, e.g.
  • Page 36: Attribute: Limit Values (Lli, Uli)

    Flexible NC programming 1.1 Variables 1.1.8 Attribute: Limit values (LLI, ULI) An upper and a lower limit of the definition range can only be defined for the following data types: ● INT ● REAL ● CHAR Definition (DEF) of user variables: Limit values and implicit initialization values If no explicit initialization value is defined when defining a user variable of one of the above data types, the variable is set to the data type's implicit initialization value.
  • Page 37 Flexible NC programming 1.1 Variables Redefinition (REDEF) of user variables: Limit values and current actual values If, when the limit values of a user variable are redefined, they change to the extent that the current actual value is outside the new definition range, an alarm will be issued and the limit values will be rejected.
  • Page 38: Attribute: Physical Unit (Phu)

    Flexible NC programming 1.1 Variables 1.1.9 Attribute: Physical unit (PHU) A physical unit can only be specified for variables of the following data types: ● INT ● REAL Programmable physical units (PHU) The physical unit is specified as fixed point number: PHU <unit>...
  • Page 39 Flexible NC programming 1.1 Variables <unit> Meaning Physical unit Inductance [ mH ] Torque [ Nm ] Torque constant [ Nm/A ] Current controller gain [ V/A ] Speed controller gain [ Nm/(rad*s) ] Speed [ rpm ] Power [ kW ] Current, low [ μA ] Torque, low...
  • Page 40: Attribute: Access Rights (Apr, Apw, Aprp, Apwp, Aprb, Apwb)

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

    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 –...
  • Page 42 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: /PG/ Programming Manual, Fundamentals; Chapter: G functions/Preparatory functions ●...
  • Page 43 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 44 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.
  • Page 45: Overview Of Definable And Redefinable Attributes

    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.
  • Page 46: Definition And Initialization Of Array Variables (Def, Set, Rep)

    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 47 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 48 Flexible NC programming 1.1 Variables Significance 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 <string length>...
  • Page 49 Flexible NC programming 1.1 Variables Number of array elements to be written with the <number_array_elements> specified . The following apply to the <value> remaining array elements, dependent on the point in time: • Initialization when defining the array: → Zero is written to the remaining array elements. •...
  • Page 50 Flexible NC programming 1.1 Variables corresponding to: FOR n=0 TO 1 FOR m=0 TO 2 FOR o=0 TO 3 FELD[n,m,o] = 1 ENDFOR ENDFOR ENDFOR Example: Initializing complete variable arrays For the actual assignment, refer to the diagram. Program code N10 DEF REAL FELD1[10,3]=SET(0,0,0,10,11,12,20,20,20,30,30,30,40,40,40,) N20 ARRAY1[0,0] = REP(100) N30 ARRAY1[5,0] = REP(-100)
  • Page 51: Definition And Initialization Of Array Variables (Def, Set, Rep): Further Information

    Flexible NC programming 1.1 Variables See also Definition and initialization of array variables (DEF, SET, REP): Further Information (Page 51) General information about variables (Page 15) 1.1.13 Definition and initialization of array variables (DEF, SET, REP): Further Information Further information ( Initialization during definition ●...
  • Page 52 Flexible NC programming 1.1 Variables Further information ( Initialization during definition ● All or the optionally specified number of array elements are initialized with the specified value (constant). ● Variables of the FRAME data type cannot be initialized. Example: Program code Comments DEF REAL varName[10]=REP(3.5,4) ;...
  • Page 53: Data Types

    Flexible NC programming 1.1 Variables NOTICE Value assignments to axial machine data In the case of value assignments to axial machine data using , the data type AXIS array index is ignored or not processed. Memory requirements Data type Memory requirement per element BOOL 1 byte CHAR...
  • Page 54 Flexible NC programming 1.1 Variables Implicit data type conversions The following data type conversions are possible and are performed implicitly during assignments and parameter transfers: from ↓/ to → REAL BOOL REAL & & BOOL x : Possible without restrictions o: Data loss possible due to the range of values being overshot ⇒...
  • Page 55: Indirect Programming

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

    Flexible NC programming 1.2 Indirect programming 1.2.2 Indirectly programming G codes Function Indirect programming of G codes permits cycles to be effectively programmed. Syntax G[<group>]=<number> Meaning G command with extension (index) G[...] Index parameter: G function group <group> Type: Variable for the G code number <number>...
  • Page 59: Programming Manual

    Flexible NC programming 1.2 Indirect programming Example 2: Level selection (G function group 6) Program code Comment N2010 R10=$P_GG[6] ; Read active G function of G function group 6 N2090 G[6]=R10 References For information on the G function groups, refer to: Programming Manual, Fundamentals;...
  • Page 60 Flexible NC programming 1.2 Indirect programming Significance The following positioning commands can be <POSITIONING COMMAND>[] programmed together with the key word BP: 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 61 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)
  • Page 62: Indirectly Programming Part Program Lines (Execstring)

    Flexible NC programming 1.2 Indirect programming 1.2.4 Indirectly programming part program lines (EXECSTRING) Function Using the part program command , 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...
  • Page 63: Arithmetic Functions

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

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

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

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

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

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

    Flexible NC programming 1.9 String operations String operations Sting operations In addition to the classic operations "assign" and "comparison" the following string operations are possible: ● Type conversion to STRING (AXSTRING) ● Type conversion from STRING (NUMBER, ISNUMBER, AXNAME) ● Concatenation of strings (<<) ●...
  • Page 75: Type Conversion To String (Axstring)

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

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

    Flexible NC programming 1.9 String operations Example Program code Comments DEF BOOL BOOL_ERG DEF REAL REAL_ERG DEF AXIS AXIS_ERG BOOL_ERG=ISNUMBER("1234.9876Ex-7") ; BOOL_ERG == TRUE BOOL_ERG=ISNUMBER("1234XYZ") ; BOOL_ERG == FALSE REAL_ERG=NUMBER("1234.9876Ex-7") ; REAL_ERG == 1234.9876Ex-7 AXIS_ERG=AXNAME("X") ; AXIS_ERG == X 1.9.3 Concatenation of strings (<<) Function The function "concatenation strings"...
  • Page 78 Flexible NC programming 1.9 String operations CAUTION The intermediate results of string concatenation must not exceed the maximum string length. Note The FRAME and AXIS types cannot be used together with the operator "<<". Examples Example 1: Concatenation of strings Program code Comments DEF INT IDX=2...
  • Page 79: Conversion To Lower/Upper Case Letters (Tolower, Toupper)

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

    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>") Significance 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 81: Search For Character/String In The String (Index, Rindex, Mindex, Match)

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

    Flexible NC programming 1.9 String operations Example Breaking up an input into path and block names Program code Comments DEF INT PFADIDX, PROGIDX DEF STRING[26] INPUT DEF INT LISTIDX INPUT = "/_N_MPF_DIR/_N_EXECUTE_MPF" LISTIDX = MINDEX (INPUT, "M,N,O,P") + 1 The value returned in LISTIDX is 3; because "N"...
  • Page 83: Selection Of A Single Character (Stringvar, Stringfeld)

    Flexible NC programming 1.9 String operations Example Program code Comments DEF STRING[29] ERG ERG = SUBSTR ("ACK:10 to 99", 10, 2) ; Therefore the following applies: ERG == "10" 1.9.8 Selection of a single character (STRINGVAR, STRINGFELD) Function This functionality selects a single character from a string. This applies both to read access and write access operations.
  • Page 84 Flexible NC programming 1.9 String operations Examples Example 1: Single character access to system data, machine data, etc. Program code Comments DEF STRING [50] STRG DEF CHAR ACK … STRG = $P_MMCA ACK = STRG [0] Evaluating the acknowledgement components Example 2: Single character access with call-by-reference parameter Program code Comments...
  • Page 85: Program Jumps And Branches

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

    Flexible NC programming 1.10 Program jumps and branches 1.10.2 Program jumps to jump markers (GOTOB, GOTOF, GOTO, GOTOC) Function Jump markers (labels) can be set in a program, that can be jumped to from another location within the same program using the commands .
  • Page 87 Flexible NC programming 1.10 Program jumps and branches Keyword to formulate the jump condition. The jump condition permits all comparison and logical operations (result: TRUE or FALSE). The program jump is executed if the result of this operation is TRUE. Note Jump markers (labels) Jump markers (labels) are always located at the beginning of a block.
  • Page 88 Flexible NC programming 1.10 Program jumps and branches Examples Example 1: Jumps to jump markers Program code Comments N10 … N20 GOTOF Label_1 ; Jump towards the end of the program to the jump marker "Label_1". N30 … N40 Label_0: R1=R2+R3 ;...
  • Page 89: Program Branch (Case

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

    Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Function Program section repetition allows you to repeat existing program sections within a program in any order. The program lines or program sections to be repeated are identified by jump markers (labels).
  • Page 92 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) 3. Repeat section between two jump markers: <start jump marker>: ... <end jump marker>: ... REPEAT <start jump marker> <end jump marker> P=<n> Note It is not possible to nest the statement with the two jump markers in parentheses.
  • Page 93 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Significance Command for repeating a program line REPEATB Command for repeating a program section REPEAT identifies: <jump marker> <jump marker> • the program line to be repeated (in the case of REPEATB •...
  • Page 94 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Examples Example 1: Repeat individual program line Program code Comments N10 POSITION1: X10 Y20 N20 POSITION2: CYCLE(0,,9,8) ; Position cycle N30 ... N40 REPEATB POSITION1 P=5 ; Execute BLOCK N10 five times. N50 REPEATB POSITION2 ;...
  • Page 95 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Example 4: Repeat section between jump marker and ENDLABEL Program code Comments N10 G1 F300 Z-10 N20 BEGIN1: N30 X10 N40 Y10 N50 BEGIN2: N60 X20 N70 Y30 N80 ENDLABEL: Z10 N90 X0 Y0 Z0 N100 Z-10 N110 BEGIN3: X20...
  • Page 96 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 97 Flexible NC programming 1.11 Repeat program section (REPEAT, REPEATB, ENDLABEL, P) Example: Program code N10 G1 F300 Z-10 N20 BEGIN1: N30 X=10 N40 Y=10 N50 GOTOF BEGIN2 N60 ENDLABEL: N70 BEGIN2: N80 X20 N90 Y30 N100 ENDLABEL: Z10 N110 X0 Y0 Z0 N120 Z-10 N130 REPEAT BEGIN1 P=2 N140 Z10...
  • Page 98: Check Structures

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

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

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

    Flexible NC programming 1.12 Check structures 1.12.3 Count loop (FOR ... TO ..., ENDFOR) Function The count loop is used if an operation must be repeated with a fixed number of runs. Syntax FOR <variable> = <initial value> TO <end value> ENDFOR Significance Initiates the count loop.
  • Page 103: Program Loop With Condition At Start Of Loop (While, Endwhile)

    Flexible NC programming 1.12 Check structures R parameter as count variable: Program code Comments R11=6 FOR R10=R12-R20*R1 TO R11 ; Count variable = R parameter (real variable) R20=R21*R22+R33 ENDFOR Example 2: Production of a fixed quantity of parts Program code Comments DEF INT WKPCCOUNT ;...
  • Page 104: Program Loop With Condition At The End Of The Loop (Repeat, Until)

    Flexible NC programming 1.12 Check structures Example Program code Comments WHILE $AA_IW[DRILL_AXIS] > -10 ; Call the WHILE loop under the following condition: The actual WCS setpoint for the drilling axis must be greater than -10. G1 G91 F250 AX[DRILL_AXIS] = -1 ENDWHILE 1.12.5 Program loop with condition at the end of the loop (REPEAT, UNTIL)
  • Page 105: Program Example With Nested Check Structures

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

    Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Function Channels A channel can process its own program independently of other channels. It can control the axes and spindles temporarily assigned to it via the program.
  • Page 107 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) ● Relative path specification The same rules apply to relative path definition Example: as for program calls. INIT(2,"DRESS") INIT(3,"UNDER_1_SPF") With subprogram calls "_SPF" must be added to the program name. Parameters Variables, which all channels can access (NCK-specific global variables), can be used for data exchange between programs.
  • Page 108 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) CLEARM (marker No., marker No., Deletes the markers "Marker No." in the same channel without affecting current processing. All markers can be deleted with CLEARM(). CLEARM (0) deletes the marker "0".
  • Page 109 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Example: Program coordination Channel 1: _N_MPF100_MPF Program code Comments N10 INIT(2,"MPF200") N11 START(2) ; Processing in channel 2 N80 WAITM(1,1,2) ; Wait for WAIT marker 1 in channel 1 and in channel 2 additional processing in channel 1 N180 WAITM(2,1,2) ;...
  • Page 110 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Example: Program from workpiece Program code N10 INIT(2,"/_N_WKS_DIR/_N_SHAFT1_WPD/_N_CUT1_MPF") Example: INIT command with relative path specification Program is selected in channel 1 /_N_MPF_DIR/_N_MAIN_MPF Program code Comments N10 INIT(2,"MYPROG") ;...
  • Page 111 Flexible NC programming 1.13 Program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) Example: Channel name and channel number with integer variable "CHAN_X" ;name of 1st channel $MC_CHAN_NAME[0]= "CHAN_Y" ;name of 2nd channel $MC_CHAN_NAME[1]= Program code Comments START(1, 2) ; Execute start in the 1st and 2nd channels Similar to this, programming with the channel identifiers: Program code Comments...
  • Page 112: Interrupt Routine (Asub)

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

    Flexible NC programming 1.14 Interrupt routine (ASUB) References Function Manual, Basic Functions; BAG, Channel, Program Operation, Reset Response (K1),Chapter: "Asynchronous subprograms (ASUBs), interrupt routines" 1.14.2 Creating an interrupt routine Create interrupt routine as subprogram The interrupt routine is identified as a subprogram in the definition. Example: Program code Comments...
  • Page 114: Assign And Start Interrupt Routine (Setint, Prio, Blsync)

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

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

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

    Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.6 Fast retraction from the contour (SETINT LIFTFAST, ALF) Function For a instruction 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 instruction includes an SETINT...
  • Page 119 Flexible NC programming 1.14 Interrupt routine (ASUB) Significance Command: Assign input <n> to an interrupt routine. The assigned SETINT(<n>) interrupt routine starts when input <n> switches. <n>: Parameter: Input number Type: Range of values: 1 ... 8 Defining the priority PRIO= Priority value <value>...
  • Page 120 Flexible NC programming 1.14 Interrupt routine (ASUB) Example A broken tool should be automatically replaced by a daughter tool. Machining is then continued with the new tool. Main program: Main program Comments N10 SETINT(1) PRIO=1 W_WECHS LIFTFAST When input 1 is switched, the tool is immediately retracted from the contour with rapid lift (code No.
  • Page 121: Traversing Direction For Fast Retraction From The Contour

    Flexible NC programming 1.14 Interrupt routine (ASUB) 1.14.7 Traversing direction for fast retraction from the contour Retraction movement The following G code defines the retraction movement plane: ● LFTXT The retraction movement plane is defined by the path tangent and the tool direction (default setting).
  • Page 122 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 liftoff movement with the corresponding code number.
  • Page 123 Flexible NC programming 1.14 Interrupt routine (ASUB) Code numbers with traversing direction for LFTXT Starting from the reference plane, you will find the code numbers with traversing directions in the following diagram. The retraction in the tool direction is defined for ALF=1 The "fast retraction"...
  • Page 124: Motion Sequence For Interrupt Routines

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

    Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Function One or more axes or spindles can only ever be interpolated in one channel. If an axis has to alternate between two different channels (e.g., pallet changer) it must first be enabled in the current channel and then transferred to the other channel.
  • Page 126 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) GET request without preprocessing stop If, following a GET request without preprocessing stop, the axis is enabled again with , a subsequent will induce a with preprocessing stop. RELEASE(axis) WAITP(axis) CAUTION An axis or spindle accepted with GET remains assigned to this channel even after a key or...
  • Page 127 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Example 2: Axis exchange without synchronization If the axis does not have to be synchronized no preprocessing stop is generated by GET. Programming Comments N01 G0 X0 N02 RELEASE(AX5) N03 G64 X10 N04 X20 N05 GET(AX5)
  • Page 128 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Requirements Preconditions for axis replacement ● The axis must be defined in all channels that use the axis in the machine data. ● It is necessary to define to which channel the axis will be assigned after POWER ON in the axis-specific machine data.
  • Page 129 Flexible NC programming 1.15 Axis replacement, spindle replacement (RELEASE, GET, GETD) Varying the axis replacement behavior The transfer point of axes can be set as follows using machine data: ● Automatic axis replacement between two channels then also takes place when the axis has been brought to a neutral state by WAITP (response as before) ●...
  • Page 130: Transfer Axis To Another Channel (Axtochan)

    Flexible NC programming 1.16 Transfer axis to another channel (AXTOCHAN) 1.16 Transfer axis to another channel (AXTOCHAN) Function 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.
  • Page 131 Flexible NC programming 1.16 Transfer axis to another channel (AXTOCHAN) Example AXTOCHAN in the NC program Axes X and Y have been declared in the first and second channels. Currently, channel 1 has the interpolation right and the following program is started in that channel. Program code Comments N110 AXTOCHAN(Y,2)
  • Page 132: Activate Machine Data (Newconf)

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

    Flexible NC programming 1.18 Write file (WRITE) 1.18 Write file (WRITE) Function command can be used to write blocks/data from the part program to the end of a WRITE specific file (log file) or to the end of the part program currently being executed. The blocks/data are/is inserted at the end of the file, i.e.
  • Page 134 Flexible NC programming 1.18 Write file (WRITE) The name of the file in which the specified block or specified data is to <file name> be added. Type: STRING The following points should be noted when specifying the file name: • The specified file name must not contain any blank spaces or control characters (characters with ASCII code ≤...
  • Page 135 Flexible NC programming 1.18 Write file (WRITE) General conditions ● Maximum file size (→ machine manufacturer) The maximum possible file size of log files is set with the machine data: MD11420 $MN_LEN_PROTOCOL_FILE The maximum file length is applicable for all files created using the command.
  • Page 136: Delete File (Delete)

    Flexible NC programming 1.19 Delete file (DELETE) 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. Files that were created using a higher access WRITE authorization can also be deleted with DELETE...
  • Page 137 Flexible NC programming 1.19 Delete file (DELETE) Name of the file to be deleted <file name> Type: STRING The following points should be noted when specifying the file name: • The specified file name must not contain any blank spaces or control characters (characters with ASCII code ≤...
  • Page 138: Read Lines In The File (Read)

    Flexible NC programming 1.20 Read lines in the file (READ) 1.20 Read lines in the file (READ) Function 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 139 Flexible NC programming 1.20 Read lines in the file (READ) Name of the file to be read (call-by-value parameter) <file name> Type: STRING The following points should be noted when specifying the file name: • The specified file name must not contain any blank spaces or control characters (characters with ASCII code ≤...
  • Page 140 Flexible NC programming 1.20 Read lines in the file (READ) 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 141: Check For Presence Of File (Isfile)

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

    Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) Function , and commands can be used to read FILEDATE FILETIME FILESIZE FILESTAT FILEINFO out specific file information such as date/time of the last write access, current file size, file status or all of this information.
  • Page 144 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: STRING The following points should be noted when specifying the file name: •...
  • Page 145 Flexible NC programming 1.22 Read out file information (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) Example Program code Comments 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.
  • Page 146: Checksum Calculation Using An Array (Checksum)

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

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

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

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

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

    4 program levels it requires (14 to 17) will be available to it. Siemens cycles Siemens cycles need 3 program levels. Therefore, a Siemens cycle must be called at the latest in: ● Part program processing: program level 12 ●...
  • Page 153: Formal And Actual Parameters

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

    Flexible NC programming 1.25 Subprogram technique 1.25.1.6 Parameter transfer Definition of a subprogram with parameter transfer A subprogram with parameter transfer is defined using the 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 155 Flexible NC programming 1.25 Subprogram technique CAUTION Call-by-reference parameter transfer Parameters transferred using call-by-reference must not be left out of the subprogram call. CAUTION AXIS data type AXIS data type parameters must not be left out of the subprogram call. Checking the transfer parameters System variable $P_SUBPAR [ n ] where n = 1, 2, etc., can be used to check whether a parameter has been transferred explicitly or left out in the subprogram.
  • Page 156: Definition Of A Subprogram

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

    Flexible NC programming 1.25 Subprogram technique 1.25.2.2 Subprogram with call-by-value parameter transfer (PROC) Function A subprogram with call-by-value parameter transfer is defined using the 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.
  • Page 158 Flexible NC programming 1.25 Subprogram technique Significance Definition operation at the beginning of a program PROC Name of the program <program name> Data type of the parameter (e.g. REAL, INT, BOOL) <parameter type> Name of the parameter <parameter name> NOTICE The program name specified after the keyword must match the program name PROC...
  • Page 159: Subprogram With Call-By-Reference Parameter Transfer (Proc, Var)

    Flexible NC programming 1.25 Subprogram technique 1.25.2.3 Subprogram with call-by-reference parameter transfer (PROC, VAR) Function A subprogram with call-by-reference parameter transfer is defined using the keyword PROC followed by the name of the program and a complete list of all the parameters expected by the subprogram, with the keyword, type and name.
  • Page 160 Flexible NC programming 1.25 Subprogram technique Syntax PROC <program name> (VAR <parameter type> <parameter name>, etc.) PROC <program name> (VAR <array type> <array name>, [<m>,<n>,<o>], etc.) Significance Definition operation at the beginning of a program PROC Keyword for parameter transfer via reference Name of the program <program name>...
  • Page 161: Save Modal G Functions (Save)

    Flexible NC programming 1.25 Subprogram technique 1.25.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. CAUTION Interrupt continuous-path mode If, for active continuous-path mode, a sub-program is called with the attribute, the SAVE...
  • Page 162: Suppress Single Block Execution (Sblof, Sblon)

    Flexible NC programming 1.25 Subprogram technique General 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), Chapter: "Subprogram return with SAVE"...
  • Page 163 Flexible NC programming 1.25 Subprogram technique Significance First instruction 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 164 Flexible NC programming 1.25 Subprogram technique Example 2: A cycle is to act like a command for a user Main program: Program code N10 G1 X10 G90 F200 N20 X-4 Y6 N30 CYCLE1 N40 G1 X0 N50 M30 Cycle CYCLE1: Program code Comments N100 PROC CYCLE1 DISPLOF SBLOF...
  • Page 165 Flexible NC programming 1.25 Subprogram technique Example 4: Is not stopped with MD10702 Bit 12 = 1 Initial situation: ● Single block execution is active. ● MD10702 $MN_IGNORE_SINGLEBLOCK_MASK Bit12 = 1 Main program: Program code Comments N10 G0 X0 ; Stop in this part program line. N20 X10 ;...
  • Page 166 Flexible NC programming 1.25 Subprogram technique Example 5: Single block suppression for program nesting Initial situation: Single block execution is active. Program nesting: Program code Comments N10 X0 F1000 ; Execution is stopped in this block. N20 UP1(0) PROC UP1(INT _NR) SBLOF ;...
  • Page 167 Flexible NC programming 1.25 Subprogram technique Further information Single block disable for unsynchronized subprograms In order to execute an ASUB in one step, a instruction must be programmed in the PROC ASUB with . This also applies to the function "Editable system ASUB" (MD11610 SBLOF $MN_ASUP_EDITABLE).
  • Page 168: Suppress Current Block Display (Displof, Displon, Actblocno)

    Flexible NC programming 1.25 Subprogram technique 1.25.2.6 Suppress current block display (DISPLOF, DISPLON, ACTBLOCNO) Function The current program block is displayed as standard in the block display. The display of the current block can be suppressed in cycles and subprograms using the command.
  • Page 169 Flexible NC programming 1.25 Subprogram technique Examples Example 1: Suppress current block display in the cycle Program code Comments PROC CYCLE (AXIS TOMOV, REAL POSITION) SAVE DISPLOF ; Suppress current block display Instead, the cycle call should be displayed, e.g.: CYCLE(X,100.0) DEF REAL DIFF ;...
  • Page 170 Flexible NC programming 1.25 Subprogram technique Main program: Program code Comments 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="...
  • Page 171: Identifying Subprograms With Preparation (Prepro)

    Flexible NC programming 1.25 Subprogram technique Example 4: Display response in the case of different DISPLON/DISPLOF combinations ① The part program lines from program level 0 are displayed in the current block display. ② The part program lines from program level 3 are displayed in the current block display. ③...
  • Page 172: Subprogram Return M17

    Flexible NC programming 1.25 Subprogram technique Significance Keyword for identifying all files (of the NC programs stored in the cycle PREPRO directories) prepared during power up 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.
  • Page 173: Ret Subprogram Return

    Flexible NC programming 1.25 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...
  • Page 174: Parameterizable Subprogram Return Jump (Ret

    Flexible NC programming 1.25 Subprogram technique Example Main program: Program code Comment PROC MAIN_PROGRAM ; Beginning of the program N50 SUB_PROG ; Subprogram call: SUB_PROG N60 ... N100 M30 ; End of program Subprogram: Program code Comment PROC SUB_PROG N100 RET ;...
  • Page 175 Flexible NC programming 1.25 Subprogram technique Significance Subprogram end (use instead of Return jump parameter 1 <destination block> Declares as jump destination the block where program execution should be resumed. If the return jump parameter 3 is not programmed, then the jump destination is in the program from which the current subprogram was called.
  • Page 176 Flexible NC programming 1.25 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 177 Flexible NC programming 1.25 Subprogram technique General conditions When making a return jump through several program levels, the instructions 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 de-selection command is programmed for the modal MCALL...
  • Page 178 Flexible NC programming 1.25 Subprogram technique Example 2: Character string (string>) to specify the destination block search Main program: Program code Comments PROC MAIN_PROGRAM N1000 DEF INT iVar1=1, iVar2=4 N1010 ... N1200 subProg1 ; Calls subprogram "subProg1" N1210 M2 S1000 X10 F1000 N1220 ..
  • Page 179 Flexible NC programming 1.25 Subprogram technique Subprogram subProg3: Program code Comments PROC subProg3 N2000 R10=R20+100 N2010 ... N2200 RET("subProg1") ; Return jump into the main program at block N1550 Further information The different effects of return jump parameters 1 to 3 are explained in the following graphics. 1st return jump parameter 1 = "N200", return jump parameter 2 = 0 After the command, program execution is continued with block...
  • Page 180 Flexible NC programming 1.25 Subprogram technique 2nd return jump parameter 1 = "N200", return jump parameter 2 = 1 After the command, program execution is continued with the block ( ) that follows N210 block in the main program. N200 3rd return jump parameter 1 = "N220", return jump parameter 3 = 2 After the command, two program levels are jumped through and program execution is...
  • Page 181: Subprogram Call

    Flexible NC programming 1.25 Subprogram technique 1.25.3 Subprogram call 1.25.3.1 Subprogram call without parameter transfer Function A subprogram is called either with address L and subprogram number or by specifying the program name. A main program can also be called as a subprogram. The end of program set in the main program is evaluated as in this case (end of program with return to the calling...
  • Page 182 Flexible NC programming 1.25 Subprogram technique Meaning Address for the subprogram call Name of the subprogram <number> Type: Value: Maximum 7 decimal places Notice: Leading zeros are significant in names (⇒ L123, L0123 and L00123 are three different subprograms). Name of the subprogram (or main program) <program name>...
  • Page 183: Subprogram Call With Parameter Transfer (Extern)

    Flexible NC programming 1.25 Subprogram technique Example 2: Calling a main program as a subprogram 1.25.3.2 Subprogram call with parameter transfer (EXTERN) Function For a subprogram call with parameter transfer, variables or values can be transferred directly (but not parameters). Subprograms with parameter transfer must be declared with in the main program EXTERNAL...
  • Page 184 Flexible NC programming 1.25 Subprogram technique Syntax EXTERNAL <program name>(<type_Par1>,<type_Par2>,<type_Par3>) <program name>(<value_Par1>,<value_Par2>,<value_Par3>) CAUTION The subprogram call must always be programmed in a separate NC block. Significance Name of subprogram <program name> Keyword to declare a subprogram with EXTERN parameter transfer. Note: You only have to specify if the...
  • Page 185 Flexible NC programming 1.25 Subprogram technique Examples Example 1: Subprogram call preceded by declaration Program code Comments N10 EXTERNAL BORDERS(REAL,REAL,REAL) ; Specify the subprogram. N40 BORDER(15.3,20.2,5) ; Call the subprogram with parameter transfer. Job planning Programming Manual, 07/2010, 6FC5398-2BP40-0BA0...
  • Page 186: Number Of Program Repetitions (P)

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

    Flexible NC programming 1.25 Subprogram technique 1.25.3.4 Modal subprogram call (MCALL) Function For a modal subprogram call with , 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 189 Flexible NC programming 1.25 Subprogram technique Examples Example 1: Program code Comment N10 G0 X0 Y0 N20 MCALL L70 ; Modal subroutine call. N30 X10 Y10 ; The programmed position is approached and then subprogram L70 is executed. N40 X50 Y50 ;...
  • Page 190: Indirect Subprogram Call (Call)

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

    Flexible NC programming 1.25 Subprogram technique 1.25.3.6 Indirect subprogram call with specification of the calling program part (CALL BLOCK ... TO ...) Function 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>...
  • Page 192: Indirect Call Of A Program Programmed In Iso Language (Isocall)

    . 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:...
  • Page 193: Calling Subroutine With Path Specification And Parameters (Pcall)

    N1010 G1 X10 Z20 N1020 X30 R5 N1030 Z50 C10 N1040 X50 N1050 M99 N0010 DEF STRING[5] PROGNAME = “0122“ Siemens part program (cycle) N2000 R11 = $AA_IW[X] N2010 ISOCALL PROGNAME N2020 R10 = R10+1 Execute program 0122.spf in the ISO...
  • Page 194: Extend Search Path For Subprogram Calls (Callpath)

    Flexible NC programming 1.25 Subprogram technique Example Program code PCALL/_N_WKS_DIR/_N_WELLE_WPD/WELLE(parameter1,parameter2,…) 1.25.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.
  • Page 195: Execute External Subroutine (Extcall)

    Flexible NC programming 1.25 Subprogram technique Example Program code CALLPATH ("/_N_WKS_DIR/_N_MYWPD_WPD") This means that the following search path is set (position 5. is new): 1. Current directory / subprogram name 2. Current directory / subprogram identifier_SPF 3. Current directory / subprogram identifier_MPF 4.
  • Page 196 Flexible NC programming 1.25 Subprogram technique Syntax EXTCALL("<path/><program name>") 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 197 Flexible NC programming 1.25 Subprogram technique Example Execute from local drive Main program: Program code N010 PROC MAIN N020 ... N030 EXTCALL ("ROUGHING") N040 ... N050 M30 External subprogram: Program code N010 PROC ROUGHING N020 G1 F1000 N030 X= ... Y= ... Z= ... N040 ...
  • Page 198 Flexible NC programming 1.25 Subprogram technique Further information EXTCALL call with absolute path name If the subprogram exists at the specified path, it will be executed following the call. EXTCALL If it does not exist, program execution is cancelled. EXTCALL call with relative path name/without path name In the event of an call with a relative path name or without a path name, the EXTCALL...
  • Page 199: Cycles

    Flexible NC programming 1.25 Subprogram technique 1.25.4 Cycles 1.25.4.1 Cycles: Setting parameters for user cycles Function You can use the cov.com and uc.com files to parameterize your own cycles. The cov.com file is included with the standard cycles at delivery and is to be expanded accordingly.
  • Page 200 Flexible NC programming 1.25 Subprogram technique Example: uc.com file - user cycle description The explanation is based on the continuation of the example: For the following two cycles a cycle parameterization is to be newly created: Programming Comments PROC MY_CYCLE_1 (REAL PAR1, INT PAR2, CHAR PAR3, STRING[10] PAR4) The cycle has the following transfer parameters: PAR1: ;...
  • Page 201 Flexible NC programming 1.25 Subprogram technique Example: Both cycles Display screen for cycle MY_CYCLE_1 Display screen for cycle SPECIAL CYCLE Job planning Programming Manual, 07/2010, 6FC5398-2BP40-0BA0...
  • Page 202 Flexible NC programming 1.25 Subprogram technique Syntax description for the uc.com file - user cycle description Header line for each cycle: as in the cov.com file preceded by "//" //C <number> (<cycle_name>) comment_text Example: //C25(MY_CYCLE_1) usercycle_ Line for description for each parameter: (<data_type_id>...
  • Page 203: Macro Technique (Define

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

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

    File and Program Management 2.1 Program memory Standard directories Its standard complement of directories is as follows: Folder Contents _N_DEF_DIR Data modules and macro modules _N_CST_DIR Standard cycles _N_CMA_DIR Manufacturer cycles _N_CUS_DIR User cycles _N_WKS_DIR Workpieces _N_SPF_DIR Global subprograms _N_MPF_DIR Main programs _N_COM_DIR Comments...
  • Page 209 File and Program Management 2.1 Program memory Example: The workpiece directory _N_WELLE_WPD, created for SHAFT workpiece contains the following files: File Significance _N_SHAFT_MPF Main program _N_PART2_MPF Main program _N_PART1_SPF Subprogram _N_PART2_SPF Subprogram _N_SHAFT_INI General initialization program for the data of the workpiece _N_SHAFT_SEA Setting data initialization program _N_PART2_INI...
  • Page 210 File and Program Management 2.1 Program memory 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.
  • Page 211 File and Program Management 2.1 Program memory Programming search paths for subprogram call (CALLPATH) part program command is used to extend the search path of a subprogram CALLPATH call. Example: Program code CALLPATH ("/_N_WKS_DIR/_N_MYWPD_WPD") The search path is stored in front of position 5 (user cycle) in accordance with the specified programming.
  • Page 212: Working Memory (Chandata, Complete, Initial)

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

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

    Protection zones Definition of the protection zones (CPROTDEF, NPROTDEF) Function You can use protection zones to protect various elements on the machine, their components and the workpiece against incorrect movements. Tool-oriented protection zones: For parts that belong to the tool (e.g. tool, toolholder) Workpiece-oriented protection zones: For parts that belong to the workpiece (e.g.
  • Page 218 Protection zones 3.1 Definition of the protection zones (CPROTDEF, NPROTDEF) Meaning Define local variable, data type INTEGER DEF INT NOT_USED (see Chapter "Motion synchronous actions (Page 549)") The required plane is selected before G17/G18/G19 CPROTDEF NPROTDEF with and must not be altered before .
  • Page 219 Protection zones 3.1 Definition of 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 ●...
  • Page 220 Protection zones 3.1 Definition of the protection zones (CPROTDEF, NPROTDEF) Tool-related protection zones Tool-related protection zones must always be convex. If a concave protected zone is desired, this should be subdivided into several convex protection zones. Job planning Programming Manual, 07/2010, 6FC5398-2BP40-0BA0...
  • Page 221: Activating/Deactivating Protection Zones (Cprot, Nprot)

    Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Activating/deactivating protection zones (CPROT, NPROT) Function Activating and preactivating previously defined protection zones for collision monitoring and deactivating protection zones. The maximum number of protection zones, which can be active simultaneously on the same channel, is defined in machine data.
  • Page 222 Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Example Possible collision of a milling cutter with the measuring probe is to be monitored on a milling machine. The position of the measuring probe is to be defined by an offset when the function is activated.
  • Page 223 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 224 Protection zones 3.2 Activating/deactivating protection zones (CPROT, NPROT) Further information Activation status (<state>) ● <state>=2 A protection zone is generally activated in the part program with status = 2. The status is always channel-specific even for machine-oriented protection zones. ● <state>=1 If a PLC user program provides for a protection zone to be effectively set by a PLC user program, the required preactivation is implemented with status = 1.
  • Page 225: Checking For Protection Zone Violation, Working Area Limitation And Software Limits (Calcposi)

    Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Function The CALCPOSI function is for checking whether, starting from a defined starting point, the geometry axes can traverse a defined path without violating the axis limits (software limits), working area limitations, or protection zones.
  • Page 226 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Hundreds digit 100: The positive limit value is violated (only if the units digit is 1 or 2, i.e. for software limits and working area limits) 100: An NCK protection zone is violated (only if the units digit is 3).
  • Page 227 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) FALSE or parameters not specified: _BASE_SYS When evaluating the position and length data, the G code of group 13 (G70, G71, G700, G710; inch/metric) is evaluated. If G70 is active and the basic system is metric (or G71 is active and inch), the WCS system variables $AA_IW[X] and $AA_MW[X]) are provided in the basic system and must, if...
  • Page 228 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Example In the example (refer to the diagram), X software limits and working area limits are shown. In addition, three protection zones are defined, the two channel-specific protection zones C2 and C4 and well as the NCK protection zone N3.
  • Page 229 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Program code Comments N10 def real _STARTPOS[3] N20 def real _MOVDIST[3] N30 def real _DLIMIT[5] N40 def real _MAXDIST[3] N50 def int _SB N60 def int _STATUS N70 cprotdef(2, true, 0) Toolrelated protection zone N80 g17 g1 x–y0...
  • Page 230 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Program code Comments ;Various function calls Other starting point N420 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST) N430 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,3) N440 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,1) N450 _STARTPOS[0] = 5.
  • Page 231 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) Results of the tests in the example: Block No. _STATUS _MAXDIST _MAXDIST Remarks N... [0] (= X) [1] (= Y) 3123 8.040 4.594 Protection zone SB N3 violated. 1122 20.000 11.429...
  • Page 232 Protection zones 3.3 Checking for protection zone violation, working area limitation and software limits (CALCPOSI) It is not guaranteed that the separation to the protection zones specified in _DLIMIT[3] can always be maintained for a movement on the specified traversal path. Therefore if the end point returned in _MOVDIST is lengthened by this distance, no protection zone is violated, even though the straight line may pass extremely close to a protection zone.
  • Page 233: Special Motion Commands

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

    Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Function Random curved workpiece contours cannot be precisely defined in an analytic form. This is the reason that these type of contours are approximated using a limit number of points along curves, e.g.
  • Page 235 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 236 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Distance between nodes (only B spline): The distances between nodes are suitably calculated internally. The control can also machine pre-defined node clearances that are specified in the so-called parameter-interval-length using the command.
  • Page 237 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Supplementary conditions ● Tool radius compensation may be used. ● Collision monitoring is carried out in the projection in the plane. Examples Example 1: B spline Program code 1 (all weights 1) N10 G1 X0 Y0 F300 G64...
  • Page 238 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 239 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Example 3: Spline interpolation (A spline) and coordinate transformation (ROT) Main program: Program code Comments N10 G00 X20 Y18 F300 G64 ; Approach starting point N20 ASPLINE ;...
  • Page 240 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) In addition to the spline curve, resulting from the example program (ASPLINE), the following diagram also contains the spline curves that would have been obtained when activating either B or C spline interpolation (BSPLINE, CSPLINE): Further Information Advantages of spline interpolation...
  • Page 241 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Properties and use of the various spline types Spline type Properties and use A spline Properties: The passes precisely through the specified intermediate points along the •...
  • Page 242 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 243 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 244 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...
  • Page 245 Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Combine short spline blocks Spline interpolation can result in short spline blocks, which reduce the path velocity unnecessarily. The "Combine short spline blocks" function allows you to combine these blocks such that the resulting block length is sufficient and does not reduce the path velocity.
  • Page 246: Spline Grouping (Splinepath)

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

    Special Motion Commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) Function CAD/CAM systems normally produce linear blocks, which meet the configured accuracy specifications. In the case of complex contours, a large volume of data and short path sections can result.
  • Page 249 Special Motion Commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) Note The rounding function and jerk limitation can be used to achieve further G642 SOFT improvements in surface quality. These commands must be written at the beginning of the program.
  • Page 250 Special Motion Commands 4.4 NC block compression (COMPON, COMPCURV, COMPCAD, COMPOF) Example 2: COMPCAD Program code Comment G00 X30 Y6 Z40 G1 F10000 G642 ; Blending function G642 on. SOFT ; Jerk limiting SOFT on. COMPCAD ; Compressor function COMPCAD on. STOPFIFO N24050 Z32.499 N24051 X41.365 Z32.500...
  • Page 251: Polynomial Interpolation (Poly, Polypath, Po, Pl)

    Special Motion Commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Polynomial interpolation (POLY, POLYPATH, PO, PL) Function It actually involves a polynomial interpolation ( ) and not a spline interpolation type. Its POLY main purpose is to act as an interface for programming externally generated spline curves where the spline sections can be programmed directly.
  • Page 252 Special Motion Commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Length of the parameter interval where polynomials are defined (definition range of the function f(p)). The interval always starts at 0, p can assume values from 0 to PL. Theoretical value range for PL: 0,0001 …...
  • Page 253 Special Motion Commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Example Program code Comment N10 G1 X… Y… Z… F600 N11 POLY PO[X]=(1,2.5,0.7) PO[Y]=(0.3,1,3.2) PL=1.5 ; Polynomial interpolation on N12 PO[X]=(0,2.5,1.7) PO[Y]=(2.3,1.7) PL=3 N20 M8 H126 … N25 X70 PO[Y]=(9.3,1,7.67) PL=5 ;...
  • Page 254 Special Motion Commands 4.5 Polynomial interpolation (POLY, POLYPATH, PO, PL) Shape of the curves X(p) and Y(p) Shape of the curve in the XY plane Job planning Programming Manual, 07/2010, 6FC5398-2BP40-0BA0...
  • Page 255 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 control, polynomials up to a maximum of the 5th degree can be programmed: f(p)= a p + a...
  • Page 256 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 ≤...
  • Page 257: Settable Path Reference (Spath, Upath)

    Special Motion Commands 4.6 Settable path reference (SPATH, UPATH) Settable path reference (SPATH, UPATH) Function During polynomial interpolation, the user may require two different relationships between the velocity determining FGROUP axes and the other path axes: The latter should either be controlled, synchronized to the path S or synchronized to the curve parameter U of the FGROUP axes.
  • Page 258 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 259 Special Motion Commands 4.6 Settable path reference (SPATH, UPATH) Program code N10 G1 X0 A0 F1000 SPATH N20 POLY PO[X]=(10,10) A10 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.
  • Page 260: Measurements With Touch Trigger Probe (Meas, Meaw)

    Special Motion Commands 4.7 Measurements with touch trigger probe (MEAS, MEAW) Measurements with touch trigger probe (MEAS, MEAW) Function The "Measure with touch-trigger probe" is used to approach actual positions on the work- piece. On the probe's switching edge, the positions for all axes programmed in the measure- ment block are measured and written to the appropriate memory cell for each axis.
  • Page 261 Special Motion Commands 4.7 Measurements with touch trigger probe (MEAS, MEAW) No internal preprocessing stop is generated when these variables are read. Note A preprocessing stop must be programmed with at the appropriate position in the STOPRE program. The system will otherwise read false values. Syntax MEAS=<TE>...
  • Page 262 Special Motion Commands 4.7 Measurements with touch trigger probe (MEAS, MEAW) Further Information Measuring job status If an evaluation of whether or not the probe has been triggered is required in the program, status variable (n= number of the measuring probe) can be checked: $AC_MEA[n] Value Significance...
  • Page 263: Extended Measuring Function (Measa, Meawa, Meac) (Option)

    Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Extended measuring function (MEASA, MEAWA, MEAC) (option) Function Several probes and several measuring systems can be used for the axial measuring. command can be used to acquire up to four measures values for the MEASA MEAWA respective programmed axis;...
  • Page 264 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Note are non-modal; they can be programmed together in one block. However, if MEASA MEAWA is programmed together with in the same block, an error message is MEASA MEAWA MEAS MEAW output.
  • Page 265 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Examples Example 1: Axial measurement with deletion of distance-to-go in mode 1 (evaluation in chronological sequence) a) with 1 measuring system Program code Comments N100 MEASA[X]=(1,1,-1) G01 X100 F100 ;...
  • Page 266 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Example 2: Axial measurement with deletion of distance-to-go in mode 2 (evaluation in programmed sequence) Program code Comments N100 MEASA[X]=(2,1,-1,2,-2) G01 X100 F100 ; Measuring in mode 2 with active measuring system.
  • Page 267 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) b) Measuring with deletion of distance-to-go after 10 measured values Program code Comments N10 WHEN $AC_FIFO1[4]>=10 DO MEAC[x]=(0) DELDTG(x) ; Delete distance-to- N20 MEAC[x]=(1,1,1,-1) G01 X100 F500 N30 MEAC [X]=(0) N40 R1 = $AC_FIFO1[4] ;...
  • Page 268 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Operating mode The first digit (tens decade) of the operating mode selects the required measuring system. If only one measuring system is installed, but a second programmed, the installed system is automatically selected.
  • Page 269 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Note cannot be programmed in synchronized actions. As an alternative, plus the MEASA MEAWA deletion of 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 270 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Measurement job with two measuring systems If a measuring job is executed by two measuring systems, each of the two possible trigger events of both measuring systems of the relevant axis is acquired. The assignment of the reserved variables is therefore preset: $AA_MM1[<axis>] $AA_MW1[<axis>]...
  • Page 271 Special Motion Commands 4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option) Note FIFO contents can be read only once from the circulating storage. If these measured data are to be used multiply, they must be buffered in user data. If the number of measured values for the FIFO memory exceeds the maximum value defined in machine data, the measurement is automatically terminated.
  • Page 272: Special Functions For Oem Users (Oemipo1, Oemipo2, G810 To G829)

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

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

    Special Motion Commands 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Function Similar to the block change criterion for path interpolation (G601, G602, and G603) it is also possible to program the end-of-motion criterion for singleaxis interpolation in a part program or in synchronized actions for command/PLC axes.
  • Page 275 Special Motion Commands 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Examples Example 1: End-of-motion on reaching the interpolator stop Program code Comments N110 G01 POS[X]=100 FA[X]=1000 ACC[X]=90 IPOENDA[X] Traversing to position X100 when input 1 is active, with a path velocity of 1000 rpm, an acceleration value of 90% and end-of-motion on...
  • Page 276 Special Motion Commands 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Example 3: Block change criterion, braking ramp in synchronized actions Program code Comments ; In the technology cycle: FINEA ; End of motion criteria, exact stop fine. POS[X]=100 ;...
  • Page 277 Special Motion Commands 4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) Additional tolerance window for IPOBRKA A second block change criterion, "tolerance window", can be selected in addition to the existing block change criterion in the braking ramp. It will only be enabled if the axis: ●...
  • Page 278: Programmable Servo Parameter Set (Scpara)

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

    Coordinate transformation (FRAMES) Coordinate transformation via frame variables Function In addition to the programming options already described in the Programming Guide "Fundamentals", you can also define coordinate systems with predefined frame variables. The following coordinate systems are defined: MCS: Machine coordinate system BCS: Basic coordinate system BZS: Basic origin system SZS: Settable zero system...
  • Page 280 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables Value assignments and reading the actual values Frame variable/frame relationship A coordinate transformation can be activated by assigning the value of a frame to a frame variable. Example: $P_PFRAME=CTRANS(X,10) Frame variable: means: current programmable frame.
  • Page 281: Predefined Frame Variable ($P_Bframe, $P_Iframe, $P_Pframe, $P_Actframe)

    Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables 5.1.1 Predefined frame variable ($P_BFRAME, $P_IFRAME, $P_PFRAME, $P_ACTFRAME) $P_BFRAME Current basic frame variable that establishes the reference between the basic coordinate system (BCS) and the basic origin system (BOS). For the basic frame described via $P_UBFR to be immediately active in the program, either ●...
  • Page 282 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables $P_IFRAME Current, settable frame variable that establishes the reference between the basic origin system (BOS) and the settable zero system (SZS). ● 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 283 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables $P_PFRAME Current, programmable frame variable that establishes the reference between the settable zero system (SZS) and the workpiece coordinate system (WCS). contains the resulting frame, that results $P_PFRAME ● from the programming of TRANS/ATRANS ROT/AROT SCALE/ASCALE...
  • Page 284: Coordinate Transformation (Frames)

    Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables $P_ACTFRAME Current, resulting complete frame that results from chaining ● the current basic frame variable $P_BFRAME ● the currently settable frame variable with system frames and $P_IFRAME ● the currently programmable frame variable with system frames.
  • Page 285 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables Basic frame and settable frame are effective after Reset if MD 20110 RESET_MODE_MASK is set as follows: Bit0=1, bit14=1 --> (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 parts program.
  • Page 286 Coordinate transformation (FRAMES) 5.1 Coordinate transformation via frame variables Assignment to G commands As standard, five settable frames or five equivalent G commands $P_UIFR[0]... $P_UIFR[4] – , can be saved using their address values. G500 corresponds to $P_IFRAME=$P_UIFR[0] G500 corresponds to $P_IFRAME=$P_UIFR[1] corresponds to $P_IFRAME=$P_UIFR[2]...
  • Page 287: Frame Variables / Assigning Values To Frames

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

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

    Coordinate transformation (FRAMES) 5.2 Frame variables / assigning values to frames Description Calling frame By specifying the system variable $P_UIFRNUM you can access the current zero offset set with $P_UIFR or G54, G55, ... ($P_UIFRNUM contains the number of the currently set frame). All other stored settable $P_UIFR frames are called up by specifying the appropriate number $P_UIFR[n].
  • Page 292: Defining New Frames (Def Frame)

    Coordinate transformation (FRAMES) 5.2 Frame variables / assigning values to frames Syntax Assigning frames DEF FRAME SETTING1 Assign the values of the user frame SETTING1=CTRANS(X,10) SETTING1 to the current programmable $P_PFRAME=SETTING1 frame. DEF FRAME SETTING4 The current programmable frame is stored SETTING4=$P_PFRAME temporarily and can be recalled.
  • Page 293: Coarse And Fine Offsets (Cfine, Ctrans)

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

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

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

    Coordinate transformation (FRAMES) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Frame calculation from three measuring points in space (MEAFRAME) Function MEAFRAME is an extension of the 840D language used for supporting measuring cycles. The function MEAFRAME calculates the frame from three ideal and the corresponding measured points.
  • Page 299 Coordinate transformation (FRAMES) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Note Quality of the measurement In order to map the measured coordinates onto the ideal coordinates using a rotation and a translation, the triangle formed by the measured points must be congruent to the ideal triangle.
  • Page 300 Coordinate transformation (FRAMES) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Program code Comments N100 G01 G90 F5000 N110 X0 Y0 Z0 N200 CORR_FRAME=MEAFRAME(IDEAL_POINT,MEAS _POINT,FIT_QUALITY) N230 IF FIT_QUALITY < 0 SETAL(65000) GOTOF NO_FRAME ENDIF N240 IF FIT_QUALITY > FIT_QUALITY_LIMIT SETAL(65010) GOTOF NO_FRAME ENDIF...
  • Page 301 Coordinate transformation (FRAMES) 5.6 Frame calculation from three measuring points in space (MEAFRAME) Program code Comments N700 G500 Deactivate settable frame as with zero frame (no value entered, pre-assigned). No_FRAME Deactivate settable frame, as pre-assigned with zero frame (no value entered). Example of concatenating frames Chaining of MEAFRAME for offsets function provides an offset frame.
  • Page 302: Ncu Global Frames

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

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

    Coordinate transformation (FRAMES) 5.7 NCU global frames 5.7.2 Frames active in the channel Function Frames active in the channel are entered from the parts program via the associated system variables of these frames. System frames also belong here. The current system frame can be read and written via these system variables in the parts program.
  • Page 305 Coordinate transformation (FRAMES) 5.7 NCU global frames $P_CHBFRAME[n] Current channel basic frames System variable can be used to read and write the current channel basic $P_CHBFRAME[n] frame field elements. The resulting complete basic frame is calculated in the channel as a result of the write operation.
  • Page 306 Coordinate transformation (FRAMES) 5.7 NCU global frames $P_CHBFRMASK and $P_NCBFRMASK complete basic frame The system variables can be used to select, which basic $P_CHBFRMASK $P_NCBFRMASK frames to include in the calculation of the "complete" basic frame. The variables can only be programmed in the program and read via the operator panel interface.
  • Page 307 Coordinate transformation (FRAMES) 5.7 NCU global frames Job planning Programming Manual, 07/2010, 6FC5398-2BP40-0BA0...
  • Page 308 Coordinate transformation (FRAMES) 5.7 NCU global frames Frame chaining The current frame consists of the total basic frame, the settable frame, the system frame, and the programmable frame according to the current total frame mentioned above. Job planning Programming Manual, 07/2010, 6FC5398-2BP40-0BA0...
  • Page 309: Transformations

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

    Transformations 6.1 General programming of transformation types 6.1.1 Orientation movements for transformations Travel movements and orientation movements The traversing movements of the programmed orientations are determined primarily by the type of machine. For three-, four-, and five-axis type transformations with TRAORI, the rotary axes or pivoting linear axes describe the orientation movements of the tool.
  • Page 313 Transformations 6.1 General programming of transformation types Machine type Programming of orientation Three-axis transformation Programming of tool orientation only in the plane, which is machine types 1 and 2 perpendicular to the rotary axis. There are two translatory axes (linear axes) and one axis of rotation (rotary axis).
  • Page 314 Transformations 6.1 General programming of transformation types Kinematic transformations TRANSMIT, TRACYL and TRAANG For milling on turning machines or an axis that can be set for inclined infeed during grinding, the following axis arrangements apply by default in accordance with the transformation declared: TRANSMIT Activation of polar transformation...
  • Page 315: Overview Of Orientation Transformation Traori

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

    Transformations 6.2 Three, four and five axis transformation (TRAORI) Three, four and five axis transformation (TRAORI) 6.2.1 General relationships of universal tool head Function To obtain optimum cutting conditions when machining surfaces with a three-dimensional curve, it must be possible to vary the setting angle of the tool. The machine design to achieve this is stored in the axis data.
  • Page 318 Transformations 6.2 Three, four and five axis transformation (TRAORI) 5-Axis Transformation Cardanic tool head Three linear axes (X, Y, Z) and two orientation axes (C, A) define the setting angle and the operating point of the tool here. One of the two orientation axes is created as an inclined axis, in our example A' - in many cases, placed at 45°.
  • Page 319 Transformations 6.2 Three, four and five axis transformation (TRAORI) In this example, A' lies below the angle φ to the X axis. 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 φ...
  • Page 320: Three, Four And Five Axis Transformation (Traori)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.2 Three, four and five axis transformation (TRAORI) Function The user can configure two or three translatory axes and one rotary axis. The trans- formations assume that the rotary axis is orthogonal on the orientation plane. Orientation of the tool is possible only in the plane perpendicular to the rotary axis.
  • Page 321 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 322: Variants Of Orientation Programming And Initial Setting (Orireset)

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

    Transformations 6.2 Three, four and five axis transformation (TRAORI) Examples 1. Example of machine kinematics CA (channel axis names C, A) ORIRESET(90, 45) ;C at 90 degrees, A at 45 degrees ORIRESET(, 30) ;C at $MC_TRAFO5_ROT_AX_OFFSET_1/2[0], A at 30 degrees ORIRESET( ) ;C at $MC_TRAFO5_ROT_AX_OFFSET_1/2[0], ;A at $MC_TRAFO5_ROT_AX_OFFSET_1/2[1]...
  • Page 324 Transformations 6.2 Three, four and five axis transformation (TRAORI) Note In all cases, orientation programming is only permissible if an orientation transformation is active. Advantage: These programs can be transferred to any machine kinematics. Definition of tool orientation via G code Note Machine manufacturer Machine data can be used to switch between Euler or RPY angles.
  • Page 325 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 326 Transformations 6.2 Three, four and five axis transformation (TRAORI) Description 5-axis programs are usually generated by CAD/CAM systems and not entered at the control. So the following explanations are directed mainly at programmers of postprocessors. The type of orientation programming is defined in G code group 50: via Euler angle ORIEULER via RPY angle (rotation sequence ZYX)
  • Page 327 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 328 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.
  • Page 329 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming the tool orientation with LEAD= and TILT= The resultant tool orientation is determined from: ● Path tangent ● Surface normal vector at the start of the block and at the end of the block A4, B4, C4 A5, B6, C5 ●...
  • Page 330: Face Milling (3D-Milling A4, B4, C4, A5, B5, C5)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) 6.2.5 Face milling (3D-milling A4, B4, C4, A5, B5, C5) Function Face milling is used to machine curved surfaces of any kind. For this type of 3D milling, you require line-by-line definition of 3D paths on the workpiece surface.
  • Page 331: Orientation Axis Reference (Oriwks, Orimks)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming the path curvature Surface description The path curvature is described by surface normal vectors with the following components: Start vector at block start A4, B4, C4 End vector at block end A5, B5, C5 If a block only contains the start vector, the surface normal vector will remain constant throughout the block.
  • Page 332 Transformations 6.2 Three, four and five axis transformation (TRAORI) Syntax ORIMKS=... ORIWKS=... Significance ORIMKS Rotation in the machine coordinate system ORIWKS Rotation in the workpiece coordinate system Note ORIWKS is the basic setting. In the case of a 5-axis program, if it is not immediately obvious on which machine it is to run, ORIWKS must always be selected.
  • Page 333: Programming Orientation Axes (Oriaxes, Orivect, Orieuler, Orirpy, Orirpy2, Orivirt1, Orivirt2)

    Transformations 6.2 Three, four and five axis transformation (TRAORI) Singular positions Note ORIWKS Orientation movements in the singular setting area of the 5-axis machine require vast movements of the machine axes. (For example, with a rotary swivel head with C as the rotary axis and A as the swivel axis, all positions with A = 0 are singular.) Machine manufacturer To avoid overloading the machine axes, the velocity control vastly reduces the tool path...
  • Page 334 Transformations 6.2 Three, four and five axis transformation (TRAORI) Programming Axis identifiers A2, B2 and C2 are used to program the orientation axes. Linear or large-radius circular interpolation N... ORIAXES ORIVECT N... G1 X Y Z A B C orientation interpolation of the plane N...
  • Page 335 Transformations 6.2 Three, four and five axis transformation (TRAORI) Description Machine manufacturer MD $MC_ORI_DEF_WITH_G_CODE is used to specify how the programmed angles A2, B2, are defined: The definition is according to MD $MC_ORIENTATION_IS_EULER (standard) or the definition is according to G group 50 ( ORIEULER ORIRPY ORIVIRT1...
  • Page 336: Orientation Programming Along The Peripheral Surface Of A Taper (Oriplane, Oriconcw, Oriconccw, Oriconto, Oriconio)

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

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

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

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

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

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

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

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

    Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) Compression of the orientation (COMPON, COMPCURV, COMPCAD) Function NC programs, in which orientation transformation ( ) is active, and the orientation is TRAORI programmed using direction vectors, can be compressed if kept within specified limits. Note The orientation movement is only compressed if large-radius circular interpolation is active and depends, therefore, on the G code for orientation interpolation.
  • Page 355 Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) General structure of an NC block that be compressed The general structure of an NC block that can be compressed can therefore look like this: X=< > Y=< > Z=< > A3=< >...
  • Page 356 Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) Activation/deactivation Compressor functions are activated using the modal G codes COMPON COMPCURV COMPCAD terminates the compressor function. COMPOF See "NC block compression (COMPON, COMPCURV, COMPCAD) (Page 248)". Note Orientation motion is only compressed when large radius circular interpolation is active (i.e. tool orientation is changed in the plane which is determined by start and end orientation).
  • Page 357 Transformations 6.6 Compression of the orientation (COMPON, COMPCURV, COMPCAD) Example In the example program below, a circle approached by a polygon definition is compressed. The tool orientation moves on the outside of the taper at the same time. Although the programmed orientation changes are executed one after the other, but in an unsteady way, the compressor function generates a smooth motion of the orientation.
  • Page 358: Smoothing The Orientation Characteristic (Orison, Orisof)

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

    Transformations 6.8 Kinematic transformation Kinematic transformation 6.8.1 Milling on turned parts (TRANSMIT) Function The TRANSMIT function enables the following: ● Face machining on turned parts in the turning clamp (drill-holes, contours). ● A cartesian coordinate system can be used to program these machining operations. ●...
  • Page 361 Transformations 6.8 Kinematic transformation TRANSMIT transformation types The TRANSMIT machining operations have two parameterizable forms: ● in the standard case with (TRAFO_TYPE_n = 256) TRANSMIT ● with additional Y linear axis (TRAFO_TYPE_n = 257) TRANSMIT The extended transformation type 257 can be used, for example, to compensate clamping compensations of a tool with real Y axis.
  • Page 362 Transformations 6.8 Kinematic transformation Example Program code Comments N10 T1 D1 G54 G17 G90 F5000 G94 Tool selection N20 G0 X20 Z10 SPOS=45 Approach the starting position N30 TRANSMIT Activate TRANSMIT function N40 ROT RPL=–45 Set frame N50 ATRANS X–2 Y10 N60 G1 X10 Y–10 G41 OFFN=1OFFN Square roughing;...
  • Page 363: Cylinder Surface Transformation (Tracyl)

    Transformations 6.8 Kinematic transformation Description Pole There are two ways of passing through the pole: ● Traversal along linear axis ● Traverse to the pole, rotate the rotary axis at the pole and traveling away from the pole Make the selection using MD 24911 and 24951. TRANSMIT with additional Y linear axis (transformation type 257): This transformation variant of the polar transformation makes use of the redundancy for a machine with another linear axis in order to perform an improved tool compensation.
  • Page 364 Transformations 6.8 Kinematic transformation TRACYL transformation types There are three forms of cylinder surface coordinate transformation: ● without groove wall offset (TRAFO_TYPE_n=512) TRACYL ● with groove wall offset: (TRAFO_TYPE_n=513) TRACYL ● with additional linear axis and groove wall offset: (TRAFO_TYPE_n=514) TRACYL The groove wall offset is parameterized with using the third parameter.
  • Page 365 Transformations 6.8 Kinematic transformation Significance Activates the first TRACYL function specified in the channel TRACYL(d) machine data. d is the parameter for the working diameter. Activates the n-th TRACYL function specified in the channel TRACYL (d, n) machine data. The maximum for n is 2, TRACYL(d,1) corresponds to TRACYL(d).
  • Page 366 Transformations 6.8 Kinematic transformation Program code Comments Geometry Radius $TC_DP6[1,1]=6. Radius Tool radius $TC_DP7[1,1]=0 Slot width b for slotting saw, rounding radius for milling tools $TC_DP8[1,1]=0 Projection k For slotting saw only $TC_DP9[1,1]=0 $TC_DP10[1,1]=0 $TC_DP11[1,1]=0 Angle for taper milling tools Program code Comments Wear...
  • Page 367 Transformations 6.8 Kinematic transformation Machining a hook-shaped groove: Program code Comments N60 G1 X20 Infeed tool to groove base N70 OFFN=12 Define 12 mm groove side spacing relative to groove center line N80 G1 Z100 G42 Approach right side of groove N90 G1 Z50 Groove cut parallel to cylinder axis N100 G1 Y10...
  • Page 368 Transformations 6.8 Kinematic transformation Description Without groove wall offset (transformation type 512): The control transforms the programmed traversing movements of the cylinder coordinate system to the traversing movements of the real machine axes: ● Rotary axis ● Infeed axis perpendicular to rotary axis ●...
  • Page 369 Transformations 6.8 Kinematic transformation With groove wall offset (transformation type 513): Kinematics as above, but an additional longitudinal axis parallel to the peripheral direction The linear axes are positioned perpendicular to one another. The velocity control makes allowance for the limits defined for the rotations. Groove traversing-section In the case of axis configuration 1, longitudinal grooves along the rotary axis are subject to parallel limits only if the groove width corresponds exactly to the tool radius.
  • Page 370 Transformations 6.8 Kinematic transformation With additional linear axis and groove wall offset (transformation type 514): On a machine with a second linear axis, this transformation variant makes use of redun- dancy in order to perform improved tool compensation. The following conditions then apply to the second linear axis: ●...
  • Page 371 Transformations 6.8 Kinematic transformation A parts program for milling a groove generally comprises the following steps: 1. Selecting a tool 2. Select TRACYL 3. Select suitable coordinate offset (frame) 4. Position 5. Program OFFN 6. Select TRC 7. Approach block (position TRC and approach groove side) 8.
  • Page 372: Inclined Axis (Traang)

    Transformations 6.8 Kinematic transformation 6.8.3 Inclined axis (TRAANG) Function The inclined axis function is intended for grinding technology and facilitates the following performance: ● Machining with an oblique infeed axis ● A Cartesian coordinate system can be used for programming purposes. ●...
  • Page 373 Transformations 6.8 Kinematic transformation Significance Activate transformation with the parameterization of the previous TRAANG( ) or selection. TRAANG( ,n) Activates the first specified inclined axis transformation TRAANG(α) Activates the nth agreed inclined axis transformation. The maximum TRAANG(α,n) value of n is 2. TRAANG(α,1) corresponds to TRAANG(α). Angle of the inclined axis αA Permissible values for α...
  • Page 374 Transformations 6.8 Kinematic transformation Program code Comments N10 G0 G90 Z0 MU=10 G54 F5000 -> ; Tool selection, clamping compensation, -> G18 G64 T1 D1 Plane selection N20 TRAANG(45) ; Activate inclined axis transformation N30 G0 Z10 X5 ; Approach the starting position N40 WAITP(Z) ;...
  • Page 375: Inclined Axis Programming (G05, G07)

    Transformations 6.8 Kinematic transformation Machine manufacturer The following settings are defined in machine data: ● The angle between a machine axis and the oblique axis, ● The position of the zero point of the tool relative to the origin of the coordinate system specified by the "inclined axis"...
  • Page 376 Transformations 6.8 Kinematic transformation Syntax The commands are used to make it easier to program the inclined axes. Positions G07/G05 can be programmed and displayed in the Cartesian coordinate system. Tool compensation and zero offset are included in Cartesian coordinates. After the angle for the inclined axis is programmed in the NC program, the starting position can be approached ( ) and then the oblique plunge-cutting (...
  • Page 377: Cartesian Ptp Travel

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

    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 382 Transformations 6.9 Cartesian PTP travel Significance 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 383 Transformations 6.9 Cartesian PTP travel Example of the retraction from the pole with PTP and TRANSMIT N070 X20 Y2 N060 X0 Y0 N050 X10 Y0 Programming Comments N001 G0 X90 Z0 F10000 T1 D1 G90 Initial setting N002 SPOS=0 N003 TRANSMIT Transformation TRANSMIT N010 PTPG0 For each G0 block, automatically...
  • Page 384 Transformations 6.9 Cartesian PTP travel Description PTP and PTPG0 is considered for all transformations that can process is not relevant is all PTPG0 PTPG0 other cases. G0 blocks are processed in CP mode. The selection of is performed in the parts program or by the deselection of PTPG0 in the machine data $MC_GCODE_RESET_VALUES[48]...
  • Page 385: Constraints When Selecting A Transformation

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

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

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

    Tool offsets Offset memory Function Structure of the offset memory Every data field can be invoked with a T and D number (except "Flat D No."); in addition to the geometrical data for the tool, it contains other information such as the tool type. Flat D number structure The "Flat D No.
  • Page 390 Tool offsets 7.1 Offset memory Tool parameter Meaning of system variables Remarks number (DP) $TC_DP1 Tool type For overview see list $TC_DP2 Tool nose position only for turning tools Geometry Length compensation $TC_DP3 Length 1 Allocation to $TC_DP4 Length 2 Type and level $TC_DP5 Length 3...
  • Page 391 Tool offsets 7.1 Offset memory Tool parameters $TC-DP1 to $TC-DP23 with contour tools Note The tool parameters not listed in the table, such as $TC_DP7, are not evaluated, i.e. their content is meaningless. Tool parameter number Significance Cutting Dn Remarks (DP) $TC_DP1 Tool type...
  • Page 392: Additive Offsets

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

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

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

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

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

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

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

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

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

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

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 7.5.2 3D tool offset: Peripheral milling, face milling Circumferential milling The type of milling used here is implemented by defining a path (guide line) and the corresponding orientation. In this type of machining, the shape of the tool on the path is not relevant.
  • Page 412 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Face milling For this type of 3D milling, you will require the line-by-line description of the 3D paths on the workpiece surface. The tool shape and dimensions are taken into account in the calculations –...
  • Page 413: 3D Tool Offset: Tool Shapes And Tool Data For Face Milling

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

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

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

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

    Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) 7.5.7 3D tool offset: Taking into consideration a limitation surface (CUT3DCC, CUT3DCCD) Function 3D circumferential milling with real tools In 3D circumferential milling with a continuous or constant change in tool orientation, the tool center point path is frequently programmed for a defined standard tool.
  • Page 420 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Example Tool dimensions of a toroidal miller with reduced radius as compared with the standard tool. Tool type R = shank radius r = corner radius Standard tool with corner rounding R = $TC_DP6 r = $TC_DP7 Real tool with corner rounding:...
  • Page 421 Tool offsets 7.5 Activate 3D tool offsets (CUT3DC..., CUT3DF...) Further Information Tool center point path with infeed up to the limitation surface CUT3DCCD If a tool with a smaller radius than the appropriate standard tool is used, machining is continued using a milling tool, which is infed in the longitudinal direction until it reaches the bottom (base) of the pocket.
  • Page 422 Tool offsets 7.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.
  • Page 423: Tool Orientation (Oric, Orid, Osof, Osc, Oss, Osse, Oris, Osd, Ost)

    Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Function The term tool orientation describes the geometric alignment of the tool in space. The tool orientation on a 5-axis machine tool can be set by means of program commands.
  • Page 424 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Programming Programming a orientation change: A change in tool orientation can be programmed by: ● Direct programming of rotary axes (rotary axis interpolation) ● Euler or RPY angle ●...
  • Page 425 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Note All commands for smoothing the tool orientation ( , and ) are OSOF OSSE summarized in G function group 34. They are modal; in other words, only one of these commands can ever be effective at the same time.
  • Page 426 Tool offsets 7.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 427 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Example 3: Changing the orientation at an inner corner Program code ORIC N10 X …Y… Z… G1 F500 N12 X …Y… Z… A2=… B2=… C2=… N15 X …Y… Z… A2=… B2=… C2=… Job planning Programming Manual, 07/2010, 6FC5398-2BP40-0BA0...
  • Page 428 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Further information Behavior at outer corners A circle block with the radius of the cutter is always inserted at an outside corner. program commands are used to determine whether changes in ORIC ORID orientation programmed between block...
  • Page 429 Tool offsets 7.6 Tool orientation (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) Smoothing orientation with OSD or OST When blending with , the maximum variance for the contour axes and orientation axes G642 cannot vary greatly. The smaller tolerance of the two determines the type of smoothing motion and/or angular tolerance to smooth the orientation characteristic relatively strongly without having to accept higher contour deviations.
  • Page 430: Free Assignment Of D Numbers, Cutting Edge Numbers

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

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

    Tool offsets 7.7 Free assignment of D numbers, cutting edge numbers Significance D number of the tool edge T number of the tool Cutting edge number (CE number) of the tool Indicates whether the command could be executed (TRUE or FALSE). state Example for renaming a D number Programming...
  • Page 433: Free Assignment Of D Numbers: Invalidate D Numbers (Dzero)

    Tool offsets 7.7 Free assignment of D numbers, cutting edge numbers Significance D number for which the T number shall be searched. T number found status Value: Significance: The T number has been found. Tno contains the value of the T number.
  • Page 434: Tool Holder Kinematics

    Tool offsets 7.8 Tool holder kinematics Tool holder kinematics Prerequisites A toolholder can only orientate a tool in all possible directions in space if ● two rotary axes are present. ● the rotary axes are mutually orthogonal. ● the tool longitudinal axis is perpendicular to the second rotary axis In addition, the following requirement is applicable to machines for which all possible orientations have to be settable: ●...
  • Page 435 Tool offsets 7.8 Tool holder kinematics Parameters Function of the system variables for orientable toolholders Designation x component y component y component offset vector $TC_CARR1[m] $TC_CARR2[m] $TC_CARR3[m] offset vector $TC_CARR4[m] $TC_CARR5[m] $TC_CARR6[m] rotary axis $TC_CARR7[m] $TC_CARR8[m] $TC_CARR9[m] rotary axis $TC_CARR10[m] $TC_CARR11[m] $TC_CARR12[m] α...
  • Page 436 Tool offsets 7.8 Tool holder kinematics Extensions of the system variables for orientable toolholders Fine Parameters that can be added to the values offset in the basic parameters. Offset vector $TC_CARR41[m] $TC_CARR42[m] $TC_CARR43[m] Offset vector $TC_CARR44[m] $TC_CARR45[m] $TC_CARR46[m] Offset vector $TC_CARR55[m] $TC_CARR56[m] $TC_CARR57[m]...
  • Page 437 Tool offsets 7.8 Tool holder kinematics Fine offset parameters $TC_CARR41 to $TC_CARR65 include fine offset parameters that can be added to the values in the basis parameters. The fine offset value assigned to a basic parameter is obtained when the value 40 is added to the parameter number. Example The toolholder used in the following example can be fully described by a rotation around the Y axis.
  • Page 438 Tool offsets 7.8 Tool holder kinematics Further Information Resolved kinematics For machines with resolved kinematics (both the tool as well as the workpiece can be rotated), the system variables have been expanded by the entries up to $TC_CARR18[m] and are described as follows: $TC_CARR23[m] The rotatable tool table consisting of: ●...
  • Page 439: Tool Length Compensation For Orientable Toolholders (Tcarr, Tcoabs, Tcofr, Tcofrx, Tcofry, Tcofrz)

    Tool offsets 7.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) Function When the spatial orientation of the tool changes, its tool length components also change. After a reset, e.g., through manual setting or change of the toolholder with a fixed spatial orientation, the tool length components also have to be determined again.
  • Page 440 Tool offsets 7.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) Significance Request toolholder with the number "m" TCARR=[<m>] Determine tool length components from the orientation of the current TCOABS toolholder Determine tool length components from the orientation of the active frame TCOFR Orientable toolholder from active frame with a tool pointing in the Z TCOFRZ...
  • Page 441 Tool offsets 7.9 Tool length compensation for orientable toolholders (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) Note The tool orientation must be manually adapted to the active frame. When the tool length compensation is calculated, the angle of rotation of the toolholder is calculated in an intermediate step.
  • Page 442: Online Tool Length Compensation (Toffon, Toffof)

    Tool offsets 7.10 Online tool length compensation (TOFFON, TOFFOF) 7.10 Online tool length compensation (TOFFON, TOFFOF) Function Use the system variable $AA_TOFF[<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 443 Tool offsets 7.10 Online tool length compensation (TOFFON, TOFFOF) Examples Example 1: Selecting the tool length compensation Program code Comment MD21190 $MC_TOFF_MODE = 1 ; Absolute values are approached. MD21194 $MC_TOFF_VELO[0] =1000 MD21196 $MC_TOFF_VELO[1] =1000 MD21194 $MC_TOFF_VELO[2] =1000 MD21196 $MC_TOFF_ACCEL[0] =1 MD21196 $MC_TOFF_ACCEL[1] =1 MD21196 $MC_TOFF_ACCEL[2] =1 N5 DEF REAL XOFFSET...
  • Page 444 Tool offsets 7.10 Online tool length compensation (TOFFON, TOFFOF) Further information Block preparation During block preparation in preprocessing, the current tool length offset active in the main run is also taken into consideration. To allow extensive use to be made of the maximum permissible axis velocity, it is necessary to stop block preparation with a prepro- STOPRE...
  • Page 445: Cutting Data Modification For Tools That Can Be Rotated (Cutmod)

    Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Function Using the function "cutting data modification for rotatable tools", the changed geometrical relationships, that are obtained relative to the workpiece being machined when rotating tools (predominantly turning tools, but also drilling and milling tools) can be taken into account with the tool compensation.
  • Page 446 Tool offsets 7.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 447 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Example The following example refers to a tool with tool nose position 3 and a toolholder that can be orientated, which can rotate the tool around the B axis. The numerical values in the comments specify the end of block positions in the machine coordinates (MCS) in the sequence X, Y, Z.
  • Page 448 Tool offsets 7.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 449 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) System variables Significance $P_CUT_INV / Supplies the value TRUE if the tool is rotated so that the spindle direction $AC_CUT_INV of rotation must be inverted. To do this, the following four conditions must be fulfilled in the block to which the read operations refer: 1.
  • Page 450 Tool offsets 7.11 Cutting data modification for tools that can be rotated (CUTMOD) Job planning Programming Manual, 07/2010, 6FC5398-2BP40-0BA0...
  • Page 451: Path Traversing Behavior

    Path traversing behavior Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Function The following axis follows the path of the leading axis along the tangent. This allows align- ment 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 452: Path Traversing Behavior

    Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Application Tangential control can e.g. be used in the applications: ● Tangential positioning of a rotatable tool during nibbling ● Tracking the workpiece alignment for a bandsaw (see the following diagram). ●...
  • Page 453 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Meaning Preparatory operation for the definition of tangential TANG tracking: 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 454 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Examples Example 1: Defining and activating tangential tracking Program code Comment N10 TANG(C,X,Y,1,"B","P") ; Definition of a tangential tracking: Rotary axis C should follow geometry axes X and Y. N20 TANGON(C,90) ;...
  • Page 455 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Example 4: Tangential tracking with automatic optimization Y1 is geometry axis 2. Program code Comment N80 G0 C0 N100 F=50000 N110 G1 X1000 Y500 N120 TRAORI N130 G642 ; Smoothing and maintaining the maximum permitted path deviation: N171 TRANS X50 Y50...
  • Page 456 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Further information Defining following axis and leading axis is used to define the following and leading axes. TANG A coupling factor specifies the relationship between an angle change on the tangent and the following axis.
  • Page 457 Path traversing behavior 8.1 Tangential control (TANG, TANGON, TANGOF, TLIFT, TANGDEL) Optimization possibility If the automatic optimization is selected ( ) and if the parameter smoothing distance <Opt>="P" ) and angular tolerance ( ) are specified for the following axis, <Dist>...
  • Page 458: Feedrate Response (Fnorm, Flin, Fcub, Fpo)

    Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) Feedrate response (FNORM, FLIN, FCUB, FPO) Function To permit flexible definition of the feed characteristic, the feed programming according to DIN 66205 has been extended by linear and cubic characteristics. The cubic characteristics can be programmed either directly or as interpolating splines.
  • Page 459 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) Example: Various feed profiles This example shows you the programming and graphic representation of various feed profiles. Program code Comments N1 F1000 FNORM G1 X8 G91 G64 ; Constant feedrate profile, incremental dimension data N2 F2000 X7 ;...
  • Page 460 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) FNORM The feed address F defines the path feed as a constant value according to DIN 66025. Please refer to Programming Manual "Fundamentals" for more detailed information on this subject. FLIN The feed characteristic is approached linearly from the current feed value to the programmed F value until the end of the block.
  • Page 461 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) FCUB The feed is approached according to a cubic characteristic from the current feed value to the programmed F value until the end of the block. The control uses splines to connect all the feed values programmed non-modally that have an active FCUB.
  • Page 462 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) F=FPO(…,…,…) The feed characteristic is programmed directly via a polynomial. The polynomial coefficients are specified according to the same method used for polynomial interpolation. Example: F=FPO(endfeed, quadf, cubf) endfeed, quadf and cubf are previously defined variables. endfeed: Feed at block end quadf:...
  • Page 463 Path traversing behavior 8.2 Feedrate response (FNORM, FLIN, FCUB, FPO) Active compressor COMPON With an active compressor the following applies when several blocks are joined to COMPON form a spline segment: FNORM: The F word of the last block in the group applies to the spline segment. FLIN: The F word of the last block in the group applies to the spline segment.
  • Page 464: Program Sequence With Preprocessing Memory (Stopfifo, Startfifo, Fifoctrl, Stopre)

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

    Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Function Conditionally interruptible part program sections are called stop delay sections. No stopping should occur and the feed should not be changed within certain program sections. Essentially, short program sections - e.g.
  • Page 468 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Selection of a number of stop events, which induce at least short stopping: Event name Response interruption parameters RESET immediate IS: DB21,… DBX7.7 and DB11, … DBX20.7 PROG_END Alarm 16954 NC prog.: M30 INTERRUPT delayed...
  • Page 469 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Example: Nesting stop delay sections in two program levels Program code Comments N10010 DELAYFSTON() ; Blocks with N10xxx program level 1. N10020 R1 = R1 + 1 N10030 G4 F1 ;...
  • Page 470 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Program code Comments 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 Details on SERUPRO type block searches and feeds in conjunction with Feed for...
  • Page 471 Path traversing behavior 8.4 Conditionally interruptible program sections (DELAYFSTON, DELAYFSTOF) Overlapping/nesting: If two stop delay sections overlap, one from the NC commands and the other from machine data , the largest possible stop delay section will be generated. MD 11550: STOP_MODE_MASK The following features regulate the interaction between NC commands DELAYFSTON with nesting and end of subroutine:...
  • Page 472: Preventing Program Position For Serupro (Iptrlock, Iptrunlock)

    Path traversing behavior 8.5 Preventing program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) Preventing program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) Function For some complicated mechanical situations on the machine it is necessary to the stop block search SERUPRO. By using a programmable interruption pointer it is possible to intervene before an untraceable point with "Search at point of interruption".
  • Page 473 Path traversing behavior 8.5 Preventing program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) Example Nesting of untraceable program sections in two program levels with implicit IPTRUNLOCK Implicit in subprogram 1 ends the untraceable section. IPTRUNLOCK Program code Comment N10010 IPTRLOCK() N10020 R1 = R1 + 1 N10030 G4 F1 ;...
  • Page 474 Path traversing behavior 8.5 Preventing program position for SERUPRO (IPTRLOCK, IPTRUNLOCK) 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.
  • Page 475: Repositioning To A Contour (Reposa, Reposl, Reposq, Reposqa, Reposh, Reposha, Disr, Dispr, Rmi, Rmb, Rme, Rmn)

    Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Function If you interrupt the program run and retract the tool during the machining operation because, for example, the tool has broken or you wish to check a measurement, you can reposition at any selected point on the contour under control by the program.
  • Page 476 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Syntax REPOSA RMI DISPR=… REPOSA RMB REPOSA RME REPOSA RMN REPOSL RMI DISPR=… REPOSL RMB REPOSL RME REPOSL RMN REPOSQ RMI DISPR=… DISR=… REPOSQ RMB DISR=…...
  • Page 477 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Example: Approach along a straight line, REPOSA, REPOSL The tool approaches the repositioning point along a straight line. All axes are automatically traversed with command REPOSA. With REPOSL you can specify which axes are to be moved.
  • Page 478 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Example: Approach in circle quadrant, REPOSQ, REPOSQA The tool approaches the repositioning point along a quadrant with a radius of .
  • Page 479 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Example: Approach tool in a semicircle, REPOSH, REPOSHA The tool approaches the repositioning point along a semi-circle with a diameter of DISR=…...
  • Page 480 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Specifying the repositioning point (not for SERUPRO approaching with RMN) With reference to the NC block in which the program run has been interrupted, it is possible to select one of three different repositioning points: ●...
  • Page 481 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) SERUPRO approach with RMN If abort is forced during machining at any position, the shortest path from the abort point is approached with SERUPRO approach and so that afterward only the distance-to-go is processed.
  • Page 482 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Approach from the nearest path point RMN When is interpreted, the repositioning block with is not started again in full after REPOSA an interruption, but only the distance-to-go processed.
  • Page 483 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) Approaching with a new tool The following applies if you have stopped the program run due to tool breakage: When the new D number is programmed, the machining program is continued with modified tool offset values at the repositioning point.
  • Page 484 Path traversing behavior 8.6 Repositioning to a contour (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) The following applies to the REPOSH and REPOSQ circular motions: The circle is traversed in the specified working planes If you specify the third geometry axis (infeed direction) in the approach block, the repositioning point is approached along a helix in case the tool position and programmed position in the infeed direction do not coincide.
  • Page 485: Influencing The Motion Control

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

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

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

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

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

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

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

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

    Axis couplings 9.2 Curve tables (CTAB) 9.2.1 Define curve tables (CTABDEF, CATBEND) Function A curve table represents a part program or a section of a part program enclosed by CTABDEF at the start and 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 503 Axis couplings 9.2 Curve tables (CTAB) Significance CTABDEF( ) Start of curve table definition CTABEND End of curve table definition <following axis> Axis whose motion is to be calculated using the curve table <leading axis> Axis providing the master values for the calculation of the following axis motion <n>...
  • Page 504 Axis couplings 9.2 Curve tables (CTAB) Examples Example 1: Program section as curve table definition A program section is to be used unchanged for defining a curve table. The command STOPRE for preprocessing stop can remain and is reactivated immediately as soon as the program section is no longer being used for table definition and have been CTABDEF...
  • Page 505 Axis couplings 9.2 Curve tables (CTAB) Program code Comments N140 X150 Y6 ; 4th intermediate point: Master value: 100…150, Following value: 6 to 6 N150 X180 Y0 ; 5th intermediate point: Master value: 150…180, Following value: 6 to 0 N200 CTABEND ;...
  • Page 506 Axis couplings 9.2 Curve tables (CTAB) Further information Starting and end value of the curve table The starting value for the beginning of the definition range of the curve table are the first associated axis positions specified (the first traverse statement) within the curve table definition.
  • Page 507 Axis couplings 9.2 Curve tables (CTAB) Example: Program code CTABDEF(Y,X,1,0) X0 Y0 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).
  • Page 508: Check For Presence Of Curve Table (Ctabexists)

    Axis couplings 9.2 Curve tables (CTAB) 9.2.2 Check for presence of curve table (CTABEXISTS) Function command can be used to check if a specific curve table number is present in CTABEXISTS the NC memory. Syntax CTABEXISTS(<n>) Significance CTABEXISTS Checks for the presence of curve table number in the static or <n>...
  • Page 509 Axis couplings 9.2 Curve tables (CTAB) Significance CTABDEL Command for deleting curve tables <n> Number (ID) of the curve table to be deleted When a curve table range is deleted, is used CTABDEL(<n>,<m>) <n> to specify the number of the first curve table in the range. <m>...
  • Page 510: Locking Curve Tables To Prevent Deletion And Overwriting (Ctablock, Ctabunlock)

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

    Axis couplings 9.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 512 Axis couplings 9.2 Curve tables (CTAB) Significance 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.
  • Page 513: Read Curve Table Values (Ctabtsv, Ctabtev, Ctabtsp, Ctabtep, Ctabssv, Ctabsev, Ctab, Ctabinv, Ctabtmin, Ctabtmax)

    Axis couplings 9.2 Curve tables (CTAB) 9.2.6 Read curve table values (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) Function The following curve table values can be read in the part program: ● Following axis and leading axis values at the start and end of a curve table ●...
  • Page 514 Axis couplings 9.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 515 Axis couplings 9.2 Curve tables (CTAB) Examples Example 1: Define following axis and leading axis values at the start and end of the curve table, along with the minimum and maximum values of the following axis in the entire definition range of the curve table.
  • Page 516 Axis couplings 9.2 Curve tables (CTAB) Example 2: Determination of following axis values at the start and end of the curve segment associated with leading axis value X=30. Program code Comment N10 DEF REAL STARTPOS N20 DEF REAL ENDPOS N30 DEF REAL GRADIENT N100 CTABDEF(Y,X,1,0) ;...
  • Page 517 Axis couplings 9.2 Curve tables (CTAB) CTAB with non-periodic curve tables If the specified is outside the definition range, the upper or lower limit will be <master value> output as the following value: CTAB with periodic curve tables If the specified is outside the definition range, the master value is evaluated <master value>...
  • Page 518: Curve Tables: Check Use Of Resources (Ctabno, Ctabnomem, Ctabfno, Ctabsegid, Ctabseg, Ctabfseg, Ctabmseg, Ctabpolid, Ctabpol, Ctabfpol, Ctabmpol)

    Axis couplings 9.2 Curve tables (CTAB) Approximate value for CTABINV command, therefore, requires an approximate value for the expected master CTABINV value. returns the master value that is closest to the approximate value. The CTABINV approximate value can be, for example, the master value from the previous interpolation cycle.
  • Page 519 Axis couplings 9.2 Curve tables (CTAB) Significance CTABNO Determine total number of defined curve tables (in the static and the dynamic NC memory) CTABNOMEM Determine the number of defined curve tables in the specified <memory location> CTABFNO Determine the number of curve tables remaining possible in the specified <memory location>...
  • Page 520: Axial Leading Value Coupling (Leadon, Leadof)

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

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

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

    Axis couplings 9.4 Electronic gear (EG) System variables of the electronic gear By means of the electronic gear's system variables, the part program can determine the current states of an EG axis grouping and react to them if required. The system variables of the electronic gearbox are designated as follows: $AA_EG_ ...
  • Page 532: Deleting The Definition Of An Electronic Gear (Egdel)

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

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

    Axis couplings 9.5 Synchronous spindle 9.5.1 Synchronous spindle: Programming (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) Function The synchronous spindle function facilitates synchronous traversing of two spindles (following spindle FS and leading spindle LS), e.g. for workpiece transfer on-the-fly. The function supports the following modes: ●...
  • Page 535 Axis couplings 9.5 Synchronous spindle Multi-edge machining can even be supported by means of the specification of a transformation ratio not equal to 1 between the leading and following spindles. Syntax COUPDEF(<FS>,<LS>,<TFS>,<TLS>,<block change>,<coupling type>) COUPON(<FS>,<LS>,<POSFS>) COUPONC(<FS>,<LS>) COUPOF(<FS>,<LS>,<POSFS>,<POSLS>) COUPOFS(<FS>,<LS>) COUPOFS(<FS>,<LS>,<POSFS>) COUPRES(<FS>,<LS>) COUPDEL(<FS>,<LS>) WAITC(<FS>,<block change>,<LS>,<block change>) Note...
  • Page 536 Axis couplings 9.5 Synchronous spindle Deactivating a coupling with stop of following spindle. COUPOFS Block change as quickly as possible with immediate block change: COUPOFS(<S2>,<S1>) Block change only after passing the switch-off position: COUPOFS(<S2>,<S1>,<POSFS>) Reset coupling parameters to configured MD and SD COUPRES Delete user-defined coupling COUPDEL...
  • Page 537 Axis couplings 9.5 Synchronous spindle Examples Example 1: Machining with leading and following spindles Programming Comment ; Leading spindle = master spindle = spindle 1 ; Following spindle = spindle 2 N05 M3 S3000 M2=4 S2=500 ; Leading spindle rotates at 3000 rpm, following spindle at 500 rpm.
  • Page 538 Axis couplings 9.5 Synchronous spindle Example 2: Programming a difference in speed Programming Comment ; Leading spindle = master spindle = spindle 1 ; Following spindle = spindle 2 N01 M3 S500 ; Leading spindle rotates at 500 rpm. N02 M2=3 S2=300 ;...
  • Page 539 Axis couplings 9.5 Synchronous spindle 3. Activate coupling with following spindle stationary with COUPON Programming Comment ; Leading spindle = master spindle = spindle 1 ; Following spindle = spindle 2 N05 SPOS=10 SPOS[2]=20 ; Following spindle S2 in positioning mode. N15 COUPDEF(S2,S1,1) ;...
  • Page 540 Axis couplings 9.5 Synchronous spindle Following spindle (FS) and leading spindle (LS) The coupling is uniquely defined using the axis names for the following spindle (FS) and the leading spindle (LS). The axis names have to be programmed with every operation.
  • Page 541 Axis couplings 9.5 Synchronous spindle Type of coupling DV, AV CAUTION The coupling type may be changed only when the coupling is deactivated! Activate synchronized mode COUPON, POSFS ● Activation of coupling with any angle reference between LS and FS: –...
  • Page 542 Axis couplings 9.5 Synchronous spindle Difference in speed for COUPONC Transfer of a movement for difference in speed When a synchronous spindle coupling is activated with a currently active speed is COUPONC overlaid on the following spindle ( M3 S... M4 S...
  • Page 543 Axis couplings 9.5 Synchronous spindle Deactivate coupling COUPOF can be used to define the turn-off behavior of the coupling: COUPOF ● Deactivation of coupling with immediate block change: – (with specification of leading spindle) COUPOF(S2,S1) – (without specification of leading spindle) COUPOF(S2) ●...
  • Page 544 Axis couplings 9.5 Synchronous spindle Current angular offset The current angular offset of a following spindle in relation to the leading spindle can be read using the following system variable: ● (angular offset on the setpoint side) $AA_COUP_OFFS[<FS>] ● (angular offset on the actual value side) $VA_COUP_OFFS[<FS>] Note When the controller has been disabled and subsequently re-enabled during active...
  • Page 545: Master/Slave Group (Masldef, Masldel, Maslon, Maslof, Maslofs)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Motion synchronous actions 10.3 Main run variables for synchronized actions 10.3.11 Information about block types in the interpolator ($AC_BLOCKTYPE, $AC_BLOCKTYPEINFO, $AC_SPLITBLOCK) Function The following system variables are available for synchronized actions to provide information about a block current executing in the main run: ●...
  • Page 572 Motion synchronous actions 10.3 Main run variables for synchronized actions $AC_BLOCKTYPE $AC_BLOCKTYPEINFO Value: Value: Not equal to 0 Meaning: Original Intermediate block Trigger for intermediate block: block TLIFT block with: Linear movement of tangential axis and without lift motion Nonlinear movement of tangential axis (polynomial) and without lift motion Lift movement, tangential axis movement and lift movement start simultaneously...
  • Page 573 Motion synchronous actions 10.3 Main run variables for synchronized actions Example: Counting blending blocks Program code Comments $AC_MARKER[0]=0 $AC_MARKER[1]=0 $AC_MARKER[2]=0 ; Definition of synchronized actions with which blending blocks are counted. ; All blending blocks are counted in $AC_MARKER[0]: ID=1 WHENEVER ($AC_TIMEC==0) AND ($AC_BLOCKTYPE==5) DO $AC_MARKER[0]=$AC_MARKER[0]+1 ;...
  • Page 574: Actions In Synchronized Actions

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

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

    Motion synchronous actions 10.4 Actions in synchronized actions Example Program code Comments WHEN $AA_IW[Q1]>5 DO M172 H510 ; If the actual value of the Q1 axis exceeds 5 mm, output help functions M172 and H510 at the PLC. 10.4.3 Set read-in disable (RDISABLE) Function Using , when the condition is fulfilled, the additional block processing is held in the...
  • Page 578: Cancel Preprocessing Stop (Stopreof)

    Motion synchronous actions 10.4 Actions in synchronized actions General conditions Effect of RDISABLE for axis interchange If RDISABLE acts on a block, in which also an axis interchange is executed, then RDISABLE also acts on the REPOSA block initiated by the axis interchange. Sample program: Program code N100 G0 G60 X300 Y300...
  • Page 579: Delete Distance-To-Go (Deldtg)

    Motion synchronous actions 10.4 Actions in synchronized actions Example Fast program branch at end of block. Program code Comments WHEN $AC_DTEB<5 DO STOPREOF If the distance to the end of the block is less than 5 mm, withdraw preprocessing stop. G01 X100 After executing linear interpolation, the preprocessing...
  • Page 580 Motion synchronous actions 10.4 Actions in synchronized actions Example of fast deletion of distance-to-go path Program code Comments WHEN $A_IN[1]==1 DO DELDTG N100 G01 X100 Y100 F1000 If the input is set, motion is interrupted N110 G01 X… IF $AA_DELT>50… Example of fast axial deletion of distance-to-go Program code Comments...
  • Page 581: Polynomial Definition (Fctdef)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.6 Polynomial definition (FCTDEF) Function FCTDEF can be used to define 3rd order polynomials in the form y=a These polynomials are used by the online tool offset (FTOC) and the evaluation function (SYNFCT).
  • Page 582 Motion synchronous actions 10.4 Actions in synchronized actions Example of a polynomial for straight section With upper limit 1000, lower limit -1000, ordinate section and linear gradient 1 =$AA_IM[X] the polynomial is: FCTDEF(1, -1000,1000,$AA_IM[X],1) Example of laser output control One of the possible applications of polynomial definition is the laser output control. Laser output control means: Influencing the analog output in dependence on, for example, the path velocity.
  • Page 583: Synchronized Function (Synfct)

    Motion synchronous actions 10.4 Actions in synchronized actions Program code Comments $AC_FCTLL[1]=0.2 ; Definition of a polynomial coefficients $AC_FCTUL[1]=0.5 $AC_FCT0[1]=0.35 $AC_FCT1[1]=1.5EX-5 STOPRE ID=1 DO $AC_FCTUL[1]=$A_INA[2]*0.1 +0.35 ; Change upper limit online. ID=2 DO SYNFCT(1,$A_OUTA[1],$AC_VACTW) ; Depending on the path velocity (stored in $AC_VACTW) the laser power control is controlled via analog output 1 Note...
  • Page 584 Motion synchronous actions 10.4 Actions in synchronized actions DO SYNFCT Activation of the evaluation function Polynomial No. With polynomial defined with FCTDEF (see Subsection "Polynomial definition"). Write main run variable Main run variable output Read main run variable Main run variable input
...
  • Page 585 Motion synchronous actions 10.4 Actions in synchronized actions 2. Activate AC control ID=1 DO SYNFCT(1,$AC_VC,$AA_LOAD[x]) ;Read the current axis load (% of the max. drive current) via $AA_LOAD[x] calculate the path feedrate override with the polynomial defined above. Example of adaptive control (multiplicative) Influence the programmed feedrate by multiplication The aim is to influence the programmed feedrate by multiplication.
  • Page 586: Closed-Loop Clearance Control With Limited Correction ($Aa_Off_Mode)

    10.4.8 Closed-loop clearance control with limited correction ($AA_OFF_MODE) Note This function is not available for SINUMERIK 828D! Function The integrating calculation of the clearance values is realized with a limit range check: $AA_OFF_MODE = 1...
  • Page 587 Motion synchronous actions 10.4 Actions in synchronized actions NOTICE The loop gain of the higher-level control loop depends on the setting of the interpolation cycle. Remedy: Read-in the MD for IPO clock cycle and take this into account. Note Limiting of the velocity of the higher-level interpolator using MD32020 JOG_VELO for a 12 ms Ipo cycle.
  • Page 588 Motion synchronous actions 10.4 Actions in synchronized actions Main program "MAIN" Program code Comment ; Clearance control on G1 X100 F1000 AOFF ; Clearance control off Further information Position offset in the basic coordinate system Using the system variable $AA_OFF[axis] motion can be superimposed on every axis in the channel.
  • Page 589: Online Tool Offset (Ftoc)

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

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

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.11 Positioning movements Function Axes can be positioned completely unsynchonized with respect to the parts program from synchronized actions. Programming positioning axes from synchronized actions is advisable for cyclic sequences or operations that are strongly dependent on events. Axes programmed from synchronized actions are called command axes.
  • Page 595 Motion synchronous actions 10.4 Actions in synchronized actions Examples Example 1: Program code Comments ID=1 EVERY $AA_IM[B]>75 DO POS[U]=100 ; Axis U traverses, dependent on the traversing mode, incrementally through 100 (inch/mm) or to position 100 (inch/mm) from the control zero. ;...
  • Page 596: Position In Specified Reference Range (Posrange)

    Motion synchronous actions 10.4 Actions in synchronized actions If axis motion is not to be started at the beginning of the block, the override for the axis can be held at 0 from a synchronized action up to the required starting instant: Program code Comments WHENEVER $A_IN[1]==0 DO $AA_OVR[W]=0 G01 X10 Y25 F750 POS[W]=1500 FA=1000...
  • Page 597: Start/Stop Axis (Mov)

    Motion synchronous actions 10.4 Actions in synchronized actions Function value Current setpoint depending on position details in specified coordinates system Function value: TRUE if Refpos(Coord) - abs(Winlimit) ≤ Actpos(Coord) Function value: FALSE ≤ Refpos(Coord) + abs(Winlimit) otherwise 10.4.14 Start/stop axis (MOV) Function With MOV[axis]=value it is possible to start a command axis without specifying an end position.
  • Page 598: Axis Replacement (Release, Get)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.15 Axis replacement (RELEASE, GET) Function For a tool change, the corresponding command axes can be requested as an action of a synchronized action using GET(axis). The axis type assigned to this channel and the interpolation right thus linked to this time can be queried using the $AA_AXCHANGE_TYPE system variable.
  • Page 599 Motion synchronous actions 10.4 Actions in synchronized actions Program sequence in the second channel: Program code Comments WHEN TRUE DO GET(Z) Move Z axis to second channel WHENEVER($AA_TYP[Z]==0) DO RDISABLE Read-in disable as long as Z axis is in other channel N210 G4 F0.1 WHEN TRUE DO GET(Z) Z axis is NC program axis...
  • Page 600 Motion synchronous actions 10.4 Actions in synchronized actions Sequence The axis that is requested at the time the action is activated can be read with GET (axis) respect to axis type for an axis replacement via the system variable ($AA_AXCHANGE_TYP[<axis>]: ●...
  • Page 601: Axial Feed (Fa)

    Motion synchronous actions 10.4 Actions in synchronized actions Axis in neutral axis status controlled by the PLC If the axis is in neutral axis status controlled by the PLC ($AA_AXCHANGE_TYP[<axis>]==4), the axis is requested as a neutral axis ($AA_AXCHANGE_TYP[<axis>] == 8). This locks the axis for automatic axis replacement between channels in accordance with the value of bit 0 in MD 10722: AXCHANGE_MASK (bit 0 == 0).
  • Page 602: Software Limit Switch

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.17 Software limit switch Function The working area limitation programmed with G25/G26 is taken into account for the command axes depending on the setting data $SA_WORKAREA_PLUS_ENABLE. Switching the working area limitation on and off with G functions WALIMON/WALIMOF in the parts program has no effect on the command axes.
  • Page 603: Set Actual Values (Preseton)

    Motion synchronous actions 10.4 Actions in synchronized actions Example of changing traverse command for the same axis: Program code Comments ID=1 EVERY $A_IN[1]>=1 DO POS[V]=100 FA[V]=560 Start positioning from synchronized action, if digital >= 1 ID=2 EVERY $A_IN[2]>=1 DO POS[V]=$AA_IM[V] FA[V]=790 Axis tracks, the 2nd input is set, i.e.
  • Page 604: Spindle Motions

    Motion synchronous actions 10.4 Actions in synchronized actions Example Moving the control zero of an axis Program code Comments WHEN $AA_IM[a] >= 89.5 DO PRESETON(a4,10.5) Shift the control zero of the axis a through 10.5 length units (inch or mm) in the positive axis direction 10.4.20 Spindle motions...
  • Page 605: Coupled Motion (Trailon, Trailof)

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.21 Coupled motion (TRAILON, TRAILOF) Function When the coupling is activated from the synchronized action, the leading axis can be in motion. In this case the following axis is accelerated up to the set velocity. The position of the leading axis at the time of synchronization of the velocity is the starting position for coupled-axis motion.
  • Page 606: Leading Value Coupling (Leadon, Leadof)

    10.4.22 Leading value coupling (LEADON, LEADOF) Note This function is not available for SINUMERIK 828D! Function The axial leading value coupling can be programmed in synchronized actions without restriction. The changing of a curve table for an existing coupling without a previous resynchronization is optionally possible only in synchronized actions.
  • Page 607 Motion synchronous actions 10.4 Actions in synchronized actions Significance Activate axial leading value coupling: with: ...DO LEADON(FA, LA, NR, OVW) FA: Following axis LA: Leading axis NR: Number of the stored curve table OVW: Permit overwriting an existing coupling with changed curve table Deactivate axial leading value coupling: ...DO LEADOF(FA, LA)
  • Page 608 Motion synchronous actions 10.4 Actions in synchronized actions Program code Comments N100 R3=1500 ; Length of a part to be cut off N200 R2=100000 R13=R2/300 N300 R4=100000 N400 R6=30 ; Start position Y axis N500 R1=1 ; Start condition for conveyor axis N600 LEADOF(Y,X) ;...
  • Page 609: Measuring (Meawa, Meac)

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

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

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

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

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

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

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.29 Determining the current override Function The current override (NC component) can be read and written with system variables: Axial override $AA_OVR Path override $AC_OVR in synchronized actions. The override defined by the PLC is provided for synchronized actions to read in the system variables: Axial override $AA_PLC_OVR...
  • Page 617: Time Use Evaluation Of Synchronized Actions

    Motion synchronous actions 10.4 Actions in synchronized actions 10.4.30 Time use evaluation of synchronized actions Function In a interpolation cycle, synchronized actions have to be both interpreted and motions calculated by the NC. The system variables presented below provide synchronized actions with information about the current time shares that synchronized actions have of the interpolation cycle and about the computation time of the position controllers.
  • Page 618 Motion synchronous actions 10.4 Actions in synchronized actions $AN_SYNC_MAX_LOAD longest computing time for synchronized actions over all channels $AN_SYNC_TO_IPO percentage share that the synchronized actions have of the complete IPO computer time (over all channels) $AC_SYNC_ACT_LOAD current computing time for synchronized actions in the channel $AC_SYNC_MAX_LOAD longest computing time for synchronized actions in the channel $AC_SYNC_AVERAGE_LOAD...
  • Page 619: Technology Cycles

    Motion synchronous actions 10.5 Technology cycles 10.5 Technology cycles Function As an action in synchronized actions, you can invoke programs. These must consist only of functions that are permissible as actions in synchronized actions. Programs structured in this way are called technology cycles. Technology cycles are stored in the control as subprograms.
  • Page 620 Motion synchronous actions 10.5 Technology cycles Examples Example 1: Axis programs are started by setting digital inputs Main program: Program code Comments ID=1 EVERY $A_IN[1]==1 DO AXIS_X ; If input 1 is 1, start axis program AXIS_X. ID=2 EVERY $A_IN[2]==1 DO AXIS_Y ;...
  • Page 621 Motion synchronous actions 10.5 Technology cycles Axis program AXIS_Z: Program code POS[Z]=90 FA[Z]=250 POS[Z]=-90 Example 2: Various program sequences in the technology cycle Program code PROC CYCLE N10 DEF REAL VALUE=12.3 N15 DEFINE ABC AS G01 Both blocks are read over without the variables and/or macros being set-up. Program code PROC CYCLE N10 DEF REAL...
  • Page 622: Context Variable ($P_Teccycle)

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

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

    Motion synchronous actions 10.5 Technology cycles 10.5.4 Control processing of technology cycles (ICYCOF, ICYCON) Function The ICYCOF and ICYCON language commands are used t