Download  Print this page
   
1
2
3
4
5
6
Table of Contents
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822

Advertisement

SINUMERIK
SINUMERIK 828D
Job planning
Programming Manual
Valid for:
CNC system software Version 4.3
07/2010
6FC5398-2BP40-0BA0
Flexible NC programming
File and Program
Management
Coordinate transformation
(FRAMES)
Tool offsets
Path traversing behavior
Axis couplings
Motion synchronous actions
User stock removal
programs
Appendix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
A

Advertisement

   Summary of Contents for Siemens SINUMERIK 828D

  • Page 1 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 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

    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

    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

    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

    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

    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

    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

    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: Table Of Contents

    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: Variables

    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: System Variables

    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: Protection Zones

    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: Transformations

    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: Tables

    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 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: Indirectly Programming Position Attributes (bp)

    Flexible NC programming 1.2 Indirect programming Example 2: Level selection (G function group 6) Program code Comment N2010 R10=$P_GG[6] ; Read active G function of G function group 6 N2090 G[6]=R10 References For information on the G function groups, refer to: Programming Manual, Fundamentals;...
  • Page 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 ... Of ... Default ...)

    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 ... To ..., Endfor)

    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 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 ... As)

    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 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 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 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: Spline Interpolation (aspline, Bspline, Cspline, Bauto, Bnat, Btan, Eauto Enat, Etan, Pw, Sd, Pl)

    Special Motion Commands 4.2 Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Spline interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) Function Random curved workpiece contours cannot be precisely defined in an analytic form. This is the reason that these type of contours are approximated using a limit number of points along curves, e.g.
  • Page 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) 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: General Programming Of Transformation Types

    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 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..., B..., C..., Lead, Tilt)

    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: Offset Memory

    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..., Cut3df...)

    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: D 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: D 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: D 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: D 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: D 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: D 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 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: Tangential Control (tang, Tangon, Tangof, Tlift, Tangdel)

    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 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,